diff options
Diffstat (limited to 'include/linux/virtio_net.h')
-rw-r--r-- | include/linux/virtio_net.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h new file mode 100644 index 000000000000..ae469ae55d36 --- /dev/null +++ b/include/linux/virtio_net.h | |||
@@ -0,0 +1,36 @@ | |||
1 | #ifndef _LINUX_VIRTIO_NET_H | ||
2 | #define _LINUX_VIRTIO_NET_H | ||
3 | #include <linux/virtio_config.h> | ||
4 | |||
5 | /* The ID for virtio_net */ | ||
6 | #define VIRTIO_ID_NET 1 | ||
7 | |||
8 | /* The bitmap of config for virtio net */ | ||
9 | #define VIRTIO_CONFIG_NET_F 0x40 | ||
10 | #define VIRTIO_NET_F_NO_CSUM 0 | ||
11 | #define VIRTIO_NET_F_TSO4 1 | ||
12 | #define VIRTIO_NET_F_UFO 2 | ||
13 | #define VIRTIO_NET_F_TSO4_ECN 3 | ||
14 | #define VIRTIO_NET_F_TSO6 4 | ||
15 | |||
16 | /* The config defining mac address. */ | ||
17 | #define VIRTIO_CONFIG_NET_MAC_F 0x41 | ||
18 | |||
19 | /* This is the first element of the scatter-gather list. If you don't | ||
20 | * specify GSO or CSUM features, you can simply ignore the header. */ | ||
21 | struct virtio_net_hdr | ||
22 | { | ||
23 | #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 // Use csum_start, csum_offset | ||
24 | __u8 flags; | ||
25 | #define VIRTIO_NET_HDR_GSO_NONE 0 // Not a GSO frame | ||
26 | #define VIRTIO_NET_HDR_GSO_TCPV4 1 // GSO frame, IPv4 TCP (TSO) | ||
27 | /* FIXME: Do we need this? If they said they can handle ECN, do they care? */ | ||
28 | #define VIRTIO_NET_HDR_GSO_TCPV4_ECN 2 // GSO frame, IPv4 TCP w/ ECN | ||
29 | #define VIRTIO_NET_HDR_GSO_UDP 3 // GSO frame, IPv4 UDP (UFO) | ||
30 | #define VIRTIO_NET_HDR_GSO_TCPV6 4 // GSO frame, IPv6 TCP | ||
31 | __u8 gso_type; | ||
32 | __u16 gso_size; | ||
33 | __u16 csum_start; | ||
34 | __u16 csum_offset; | ||
35 | }; | ||
36 | #endif /* _LINUX_VIRTIO_NET_H */ | ||