diff options
| author | Ingo Molnar <mingo@kernel.org> | 2015-02-24 02:41:07 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2015-02-24 02:41:07 -0500 |
| commit | 2ae79026818e7d49fead82b79b1a543e3b9c8a23 (patch) | |
| tree | c7ee7bd8b37b0880918d361839fd95988fac2dac /include/uapi/linux/virtio_net.h | |
| parent | 1a99367023f6ac664365a37fa508b059e31d0e88 (diff) | |
| parent | c517d838eb7d07bbe9507871fab3931deccff539 (diff) | |
Merge tag 'v4.0-rc1' into locking/core, to refresh the tree before merging new changes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/uapi/linux/virtio_net.h')
| -rw-r--r-- | include/uapi/linux/virtio_net.h | 42 |
1 files changed, 33 insertions, 9 deletions
diff --git a/include/uapi/linux/virtio_net.h b/include/uapi/linux/virtio_net.h index b5f1677b291c..7bbee79ca293 100644 --- a/include/uapi/linux/virtio_net.h +++ b/include/uapi/linux/virtio_net.h | |||
| @@ -35,7 +35,6 @@ | |||
| 35 | #define VIRTIO_NET_F_CSUM 0 /* Host handles pkts w/ partial csum */ | 35 | #define VIRTIO_NET_F_CSUM 0 /* Host handles pkts w/ partial csum */ |
| 36 | #define VIRTIO_NET_F_GUEST_CSUM 1 /* Guest handles pkts w/ partial csum */ | 36 | #define VIRTIO_NET_F_GUEST_CSUM 1 /* Guest handles pkts w/ partial csum */ |
| 37 | #define VIRTIO_NET_F_MAC 5 /* Host has given MAC address. */ | 37 | #define VIRTIO_NET_F_MAC 5 /* Host has given MAC address. */ |
| 38 | #define VIRTIO_NET_F_GSO 6 /* Host handles pkts w/ any GSO type */ | ||
| 39 | #define VIRTIO_NET_F_GUEST_TSO4 7 /* Guest can handle TSOv4 in. */ | 38 | #define VIRTIO_NET_F_GUEST_TSO4 7 /* Guest can handle TSOv4 in. */ |
| 40 | #define VIRTIO_NET_F_GUEST_TSO6 8 /* Guest can handle TSOv6 in. */ | 39 | #define VIRTIO_NET_F_GUEST_TSO6 8 /* Guest can handle TSOv6 in. */ |
| 41 | #define VIRTIO_NET_F_GUEST_ECN 9 /* Guest can handle TSO[6] w/ ECN in. */ | 40 | #define VIRTIO_NET_F_GUEST_ECN 9 /* Guest can handle TSO[6] w/ ECN in. */ |
| @@ -56,6 +55,10 @@ | |||
| 56 | * Steering */ | 55 | * Steering */ |
| 57 | #define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */ | 56 | #define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */ |
| 58 | 57 | ||
| 58 | #ifndef VIRTIO_NET_NO_LEGACY | ||
| 59 | #define VIRTIO_NET_F_GSO 6 /* Host handles pkts w/ any GSO type */ | ||
| 60 | #endif /* VIRTIO_NET_NO_LEGACY */ | ||
| 61 | |||
| 59 | #define VIRTIO_NET_S_LINK_UP 1 /* Link is up */ | 62 | #define VIRTIO_NET_S_LINK_UP 1 /* Link is up */ |
| 60 | #define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */ | 63 | #define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */ |
| 61 | 64 | ||
| @@ -71,19 +74,39 @@ struct virtio_net_config { | |||
| 71 | __u16 max_virtqueue_pairs; | 74 | __u16 max_virtqueue_pairs; |
| 72 | } __attribute__((packed)); | 75 | } __attribute__((packed)); |
| 73 | 76 | ||
| 77 | /* | ||
| 78 | * This header comes first in the scatter-gather list. If you don't | ||
| 79 | * specify GSO or CSUM features, you can simply ignore the header. | ||
| 80 | * | ||
| 81 | * This is bitwise-equivalent to the legacy struct virtio_net_hdr_mrg_rxbuf, | ||
| 82 | * only flattened. | ||
| 83 | */ | ||
| 84 | struct virtio_net_hdr_v1 { | ||
| 85 | #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 /* Use csum_start, csum_offset */ | ||
| 86 | #define VIRTIO_NET_HDR_F_DATA_VALID 2 /* Csum is valid */ | ||
| 87 | __u8 flags; | ||
| 88 | #define VIRTIO_NET_HDR_GSO_NONE 0 /* Not a GSO frame */ | ||
| 89 | #define VIRTIO_NET_HDR_GSO_TCPV4 1 /* GSO frame, IPv4 TCP (TSO) */ | ||
| 90 | #define VIRTIO_NET_HDR_GSO_UDP 3 /* GSO frame, IPv4 UDP (UFO) */ | ||
| 91 | #define VIRTIO_NET_HDR_GSO_TCPV6 4 /* GSO frame, IPv6 TCP */ | ||
| 92 | #define VIRTIO_NET_HDR_GSO_ECN 0x80 /* TCP has ECN set */ | ||
| 93 | __u8 gso_type; | ||
| 94 | __virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ | ||
| 95 | __virtio16 gso_size; /* Bytes to append to hdr_len per frame */ | ||
| 96 | __virtio16 csum_start; /* Position to start checksumming from */ | ||
| 97 | __virtio16 csum_offset; /* Offset after that to place checksum */ | ||
| 98 | __virtio16 num_buffers; /* Number of merged rx buffers */ | ||
| 99 | }; | ||
| 100 | |||
| 101 | #ifndef VIRTIO_NET_NO_LEGACY | ||
| 74 | /* This header comes first in the scatter-gather list. | 102 | /* This header comes first in the scatter-gather list. |
| 75 | * If VIRTIO_F_ANY_LAYOUT is not negotiated, it must | 103 | * For legacy virtio, if VIRTIO_F_ANY_LAYOUT is not negotiated, it must |
| 76 | * be the first element of the scatter-gather list. If you don't | 104 | * be the first element of the scatter-gather list. If you don't |
| 77 | * specify GSO or CSUM features, you can simply ignore the header. */ | 105 | * specify GSO or CSUM features, you can simply ignore the header. */ |
| 78 | struct virtio_net_hdr { | 106 | struct virtio_net_hdr { |
| 79 | #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 // Use csum_start, csum_offset | 107 | /* See VIRTIO_NET_HDR_F_* */ |
| 80 | #define VIRTIO_NET_HDR_F_DATA_VALID 2 // Csum is valid | ||
| 81 | __u8 flags; | 108 | __u8 flags; |
| 82 | #define VIRTIO_NET_HDR_GSO_NONE 0 // Not a GSO frame | 109 | /* See VIRTIO_NET_HDR_GSO_* */ |
| 83 | #define VIRTIO_NET_HDR_GSO_TCPV4 1 // GSO frame, IPv4 TCP (TSO) | ||
| 84 | #define VIRTIO_NET_HDR_GSO_UDP 3 // GSO frame, IPv4 UDP (UFO) | ||
| 85 | #define VIRTIO_NET_HDR_GSO_TCPV6 4 // GSO frame, IPv6 TCP | ||
| 86 | #define VIRTIO_NET_HDR_GSO_ECN 0x80 // TCP has ECN set | ||
| 87 | __u8 gso_type; | 110 | __u8 gso_type; |
| 88 | __virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ | 111 | __virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ |
| 89 | __virtio16 gso_size; /* Bytes to append to hdr_len per frame */ | 112 | __virtio16 gso_size; /* Bytes to append to hdr_len per frame */ |
| @@ -97,6 +120,7 @@ struct virtio_net_hdr_mrg_rxbuf { | |||
| 97 | struct virtio_net_hdr hdr; | 120 | struct virtio_net_hdr hdr; |
| 98 | __virtio16 num_buffers; /* Number of merged rx buffers */ | 121 | __virtio16 num_buffers; /* Number of merged rx buffers */ |
| 99 | }; | 122 | }; |
| 123 | #endif /* ...VIRTIO_NET_NO_LEGACY */ | ||
| 100 | 124 | ||
| 101 | /* | 125 | /* |
| 102 | * Control virtqueue data structures | 126 | * Control virtqueue data structures |
