diff options
Diffstat (limited to 'libc/kernel/uapi/linux/virtio_net.h')
-rw-r--r-- | libc/kernel/uapi/linux/virtio_net.h | 75 |
1 files changed, 7 insertions, 68 deletions
diff --git a/libc/kernel/uapi/linux/virtio_net.h b/libc/kernel/uapi/linux/virtio_net.h index 2d92904e3..07afd06cc 100644 --- a/libc/kernel/uapi/linux/virtio_net.h +++ b/libc/kernel/uapi/linux/virtio_net.h @@ -45,9 +45,6 @@ #define VIRTIO_NET_F_GUEST_ANNOUNCE 21 #define VIRTIO_NET_F_MQ 22 #define VIRTIO_NET_F_CTRL_MAC_ADDR 23 -#define VIRTIO_NET_F_HASH_REPORT 57 -#define VIRTIO_NET_F_RSS 60 -#define VIRTIO_NET_F_RSC_EXT 61 #define VIRTIO_NET_F_STANDBY 62 #define VIRTIO_NET_F_SPEED_DUPLEX 63 #ifndef VIRTIO_NET_NO_LEGACY @@ -55,30 +52,17 @@ #endif #define VIRTIO_NET_S_LINK_UP 1 #define VIRTIO_NET_S_ANNOUNCE 2 -#define VIRTIO_NET_RSS_HASH_TYPE_IPv4 (1 << 0) -#define VIRTIO_NET_RSS_HASH_TYPE_TCPv4 (1 << 1) -#define VIRTIO_NET_RSS_HASH_TYPE_UDPv4 (1 << 2) -#define VIRTIO_NET_RSS_HASH_TYPE_IPv6 (1 << 3) -#define VIRTIO_NET_RSS_HASH_TYPE_TCPv6 (1 << 4) -#define VIRTIO_NET_RSS_HASH_TYPE_UDPv6 (1 << 5) -#define VIRTIO_NET_RSS_HASH_TYPE_IP_EX (1 << 6) -#define VIRTIO_NET_RSS_HASH_TYPE_TCP_EX (1 << 7) -#define VIRTIO_NET_RSS_HASH_TYPE_UDP_EX (1 << 8) struct virtio_net_config { __u8 mac[ETH_ALEN]; - __virtio16 status; - __virtio16 max_virtqueue_pairs; - __virtio16 mtu; - __le32 speed; + __u16 status; + __u16 max_virtqueue_pairs; + __u16 mtu; + __u32 speed; __u8 duplex; - __u8 rss_max_key_size; - __le16 rss_max_indirection_table_length; - __le32 supported_hash_types; } __attribute__((packed)); struct virtio_net_hdr_v1 { #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 #define VIRTIO_NET_HDR_F_DATA_VALID 2 -#define VIRTIO_NET_HDR_F_RSC_INFO 4 __u8 flags; #define VIRTIO_NET_HDR_GSO_NONE 0 #define VIRTIO_NET_HDR_GSO_TCPV4 1 @@ -88,38 +72,10 @@ struct virtio_net_hdr_v1 { __u8 gso_type; __virtio16 hdr_len; __virtio16 gso_size; - union { - struct { - __virtio16 csum_start; - __virtio16 csum_offset; - }; - struct { - __virtio16 start; - __virtio16 offset; - } csum; - struct { - __le16 segments; - __le16 dup_acks; - } rsc; - }; + __virtio16 csum_start; + __virtio16 csum_offset; __virtio16 num_buffers; }; -struct virtio_net_hdr_v1_hash { - struct virtio_net_hdr_v1 hdr; - __le32 hash_value; -#define VIRTIO_NET_HASH_REPORT_NONE 0 -#define VIRTIO_NET_HASH_REPORT_IPv4 1 -#define VIRTIO_NET_HASH_REPORT_TCPv4 2 -#define VIRTIO_NET_HASH_REPORT_UDPv4 3 -#define VIRTIO_NET_HASH_REPORT_IPv6 4 -#define VIRTIO_NET_HASH_REPORT_TCPv6 5 -#define VIRTIO_NET_HASH_REPORT_UDPv6 6 -#define VIRTIO_NET_HASH_REPORT_IPv6_EX 7 -#define VIRTIO_NET_HASH_REPORT_TCPv6_EX 8 -#define VIRTIO_NET_HASH_REPORT_UDPv6_EX 9 - __le16 hash_report; - __le16 padding; -}; #ifndef VIRTIO_NET_NO_LEGACY struct virtio_net_hdr { __u8 flags; @@ -160,30 +116,13 @@ struct virtio_net_ctrl_mac { #define VIRTIO_NET_CTRL_VLAN_DEL 1 #define VIRTIO_NET_CTRL_ANNOUNCE 3 #define VIRTIO_NET_CTRL_ANNOUNCE_ACK 0 -#define VIRTIO_NET_CTRL_MQ 4 struct virtio_net_ctrl_mq { __virtio16 virtqueue_pairs; }; +#define VIRTIO_NET_CTRL_MQ 4 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET 0 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN 1 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX 0x8000 -struct virtio_net_rss_config { - __le32 hash_types; - __le16 indirection_table_mask; - __le16 unclassified_queue; - __le16 indirection_table[1]; - __le16 max_tx_vq; - __u8 hash_key_length; - __u8 hash_key_data[]; -}; -#define VIRTIO_NET_CTRL_MQ_RSS_CONFIG 1 -struct virtio_net_hash_config { - __le32 hash_types; - __le16 reserved[4]; - __u8 hash_key_length; - __u8 hash_key_data[]; -}; -#define VIRTIO_NET_CTRL_MQ_HASH_CONFIG 2 #define VIRTIO_NET_CTRL_GUEST_OFFLOADS 5 #define VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET 0 #endif |