Go to the documentation of this file. 1 #ifndef _LINUX_VIRTIO_NET_H
2 #define _LINUX_VIRTIO_NET_H
28 #include <linux/types.h>
30 #include <linux/virtio_config.h>
31 #include <linux/if_ether.h>
34 #define VIRTIO_NET_F_CSUM 0
35 #define VIRTIO_NET_F_GUEST_CSUM 1
36 #define VIRTIO_NET_F_MAC 5
37 #define VIRTIO_NET_F_GSO 6
38 #define VIRTIO_NET_F_GUEST_TSO4 7
39 #define VIRTIO_NET_F_GUEST_TSO6 8
40 #define VIRTIO_NET_F_GUEST_ECN 9
41 #define VIRTIO_NET_F_GUEST_UFO 10
42 #define VIRTIO_NET_F_HOST_TSO4 11
43 #define VIRTIO_NET_F_HOST_TSO6 12
44 #define VIRTIO_NET_F_HOST_ECN 13
45 #define VIRTIO_NET_F_HOST_UFO 14
46 #define VIRTIO_NET_F_MRG_RXBUF 15
47 #define VIRTIO_NET_F_STATUS 16
48 #define VIRTIO_NET_F_CTRL_VQ 17
49 #define VIRTIO_NET_F_CTRL_RX 18
50 #define VIRTIO_NET_F_CTRL_VLAN 19
51 #define VIRTIO_NET_F_CTRL_RX_EXTRA 20
52 #define VIRTIO_NET_F_GUEST_ANNOUNCE 21
55 #define VIRTIO_NET_S_LINK_UP 1
56 #define VIRTIO_NET_S_ANNOUNCE 2
68 #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 // Use csum_start, csum_offset
69 #define VIRTIO_NET_HDR_F_DATA_VALID 2 // Csum is valid
71 #define VIRTIO_NET_HDR_GSO_NONE 0 // Not a GSO frame
72 #define VIRTIO_NET_HDR_GSO_TCPV4 1 // GSO frame, IPv4 TCP (TSO)
73 #define VIRTIO_NET_HDR_GSO_UDP 3 // GSO frame, IPv4 UDP (UFO)
74 #define VIRTIO_NET_HDR_GSO_TCPV6 4 // GSO frame, IPv6 TCP
75 #define VIRTIO_NET_HDR_GSO_ECN 0x80 // TCP has ECN set
104 #define VIRTIO_NET_OK 0
105 #define VIRTIO_NET_ERR 1
114 #define VIRTIO_NET_CTRL_RX 0
115 #define VIRTIO_NET_CTRL_RX_PROMISC 0
116 #define VIRTIO_NET_CTRL_RX_ALLMULTI 1
117 #define VIRTIO_NET_CTRL_RX_ALLUNI 2
118 #define VIRTIO_NET_CTRL_RX_NOMULTI 3
119 #define VIRTIO_NET_CTRL_RX_NOUNI 4
120 #define VIRTIO_NET_CTRL_RX_NOBCAST 5
142 #define VIRTIO_NET_CTRL_MAC 1
143 #define VIRTIO_NET_CTRL_MAC_TABLE_SET 0
154 #define VIRTIO_NET_CTRL_VLAN 2
155 #define VIRTIO_NET_CTRL_VLAN_ADD 0
156 #define VIRTIO_NET_CTRL_VLAN_DEL 1
166 #define VIRTIO_NET_CTRL_ANNOUNCE 3
167 #define VIRTIO_NET_CTRL_ANNOUNCE_ACK 0