1*8d67ca89SAndroid Build Coastguard Worker /* 2*8d67ca89SAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*8d67ca89SAndroid Build Coastguard Worker * 4*8d67ca89SAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*8d67ca89SAndroid Build Coastguard Worker * for more information. 6*8d67ca89SAndroid Build Coastguard Worker */ 7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_VIRTIO_NET_H 8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_LINUX_VIRTIO_NET_H 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #include <linux/virtio_ids.h> 11*8d67ca89SAndroid Build Coastguard Worker #include <linux/virtio_config.h> 12*8d67ca89SAndroid Build Coastguard Worker #include <linux/virtio_types.h> 13*8d67ca89SAndroid Build Coastguard Worker #include <linux/if_ether.h> 14*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_CSUM 0 15*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_GUEST_CSUM 1 16*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_CTRL_GUEST_OFFLOADS 2 17*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_MTU 3 18*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_MAC 5 19*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_GUEST_TSO4 7 20*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_GUEST_TSO6 8 21*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_GUEST_ECN 9 22*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_GUEST_UFO 10 23*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_HOST_TSO4 11 24*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_HOST_TSO6 12 25*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_HOST_ECN 13 26*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_HOST_UFO 14 27*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_MRG_RXBUF 15 28*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_STATUS 16 29*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_CTRL_VQ 17 30*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_CTRL_RX 18 31*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_CTRL_VLAN 19 32*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_CTRL_RX_EXTRA 20 33*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_GUEST_ANNOUNCE 21 34*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_MQ 22 35*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_CTRL_MAC_ADDR 23 36*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_DEVICE_STATS 50 37*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_VQ_NOTF_COAL 52 38*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_NOTF_COAL 53 39*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_GUEST_USO4 54 40*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_GUEST_USO6 55 41*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_HOST_USO 56 42*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_HASH_REPORT 57 43*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_GUEST_HDRLEN 59 44*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_RSS 60 45*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_RSC_EXT 61 46*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_STANDBY 62 47*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_SPEED_DUPLEX 63 48*8d67ca89SAndroid Build Coastguard Worker #ifndef VIRTIO_NET_NO_LEGACY 49*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_F_GSO 6 50*8d67ca89SAndroid Build Coastguard Worker #endif 51*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_S_LINK_UP 1 52*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_S_ANNOUNCE 2 53*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_RSS_HASH_TYPE_IPv4 (1 << 0) 54*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_RSS_HASH_TYPE_TCPv4 (1 << 1) 55*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_RSS_HASH_TYPE_UDPv4 (1 << 2) 56*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_RSS_HASH_TYPE_IPv6 (1 << 3) 57*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_RSS_HASH_TYPE_TCPv6 (1 << 4) 58*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_RSS_HASH_TYPE_UDPv6 (1 << 5) 59*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_RSS_HASH_TYPE_IP_EX (1 << 6) 60*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_RSS_HASH_TYPE_TCP_EX (1 << 7) 61*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_RSS_HASH_TYPE_UDP_EX (1 << 8) 62*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_config { 63*8d67ca89SAndroid Build Coastguard Worker __u8 mac[ETH_ALEN]; 64*8d67ca89SAndroid Build Coastguard Worker __virtio16 status; 65*8d67ca89SAndroid Build Coastguard Worker __virtio16 max_virtqueue_pairs; 66*8d67ca89SAndroid Build Coastguard Worker __virtio16 mtu; 67*8d67ca89SAndroid Build Coastguard Worker __le32 speed; 68*8d67ca89SAndroid Build Coastguard Worker __u8 duplex; 69*8d67ca89SAndroid Build Coastguard Worker __u8 rss_max_key_size; 70*8d67ca89SAndroid Build Coastguard Worker __le16 rss_max_indirection_table_length; 71*8d67ca89SAndroid Build Coastguard Worker __le32 supported_hash_types; 72*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 73*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_hdr_v1 { 74*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 75*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HDR_F_DATA_VALID 2 76*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HDR_F_RSC_INFO 4 77*8d67ca89SAndroid Build Coastguard Worker __u8 flags; 78*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HDR_GSO_NONE 0 79*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HDR_GSO_TCPV4 1 80*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HDR_GSO_UDP 3 81*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HDR_GSO_TCPV6 4 82*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HDR_GSO_UDP_L4 5 83*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HDR_GSO_ECN 0x80 84*8d67ca89SAndroid Build Coastguard Worker __u8 gso_type; 85*8d67ca89SAndroid Build Coastguard Worker __virtio16 hdr_len; 86*8d67ca89SAndroid Build Coastguard Worker __virtio16 gso_size; 87*8d67ca89SAndroid Build Coastguard Worker union { 88*8d67ca89SAndroid Build Coastguard Worker struct { 89*8d67ca89SAndroid Build Coastguard Worker __virtio16 csum_start; 90*8d67ca89SAndroid Build Coastguard Worker __virtio16 csum_offset; 91*8d67ca89SAndroid Build Coastguard Worker }; 92*8d67ca89SAndroid Build Coastguard Worker struct { 93*8d67ca89SAndroid Build Coastguard Worker __virtio16 start; 94*8d67ca89SAndroid Build Coastguard Worker __virtio16 offset; 95*8d67ca89SAndroid Build Coastguard Worker } csum; 96*8d67ca89SAndroid Build Coastguard Worker struct { 97*8d67ca89SAndroid Build Coastguard Worker __le16 segments; 98*8d67ca89SAndroid Build Coastguard Worker __le16 dup_acks; 99*8d67ca89SAndroid Build Coastguard Worker } rsc; 100*8d67ca89SAndroid Build Coastguard Worker }; 101*8d67ca89SAndroid Build Coastguard Worker __virtio16 num_buffers; 102*8d67ca89SAndroid Build Coastguard Worker }; 103*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_hdr_v1_hash { 104*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_hdr_v1 hdr; 105*8d67ca89SAndroid Build Coastguard Worker __le32 hash_value; 106*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HASH_REPORT_NONE 0 107*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HASH_REPORT_IPv4 1 108*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HASH_REPORT_TCPv4 2 109*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HASH_REPORT_UDPv4 3 110*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HASH_REPORT_IPv6 4 111*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HASH_REPORT_TCPv6 5 112*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HASH_REPORT_UDPv6 6 113*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HASH_REPORT_IPv6_EX 7 114*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HASH_REPORT_TCPv6_EX 8 115*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_HASH_REPORT_UDPv6_EX 9 116*8d67ca89SAndroid Build Coastguard Worker __le16 hash_report; 117*8d67ca89SAndroid Build Coastguard Worker __le16 padding; 118*8d67ca89SAndroid Build Coastguard Worker }; 119*8d67ca89SAndroid Build Coastguard Worker #ifndef VIRTIO_NET_NO_LEGACY 120*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_hdr { 121*8d67ca89SAndroid Build Coastguard Worker __u8 flags; 122*8d67ca89SAndroid Build Coastguard Worker __u8 gso_type; 123*8d67ca89SAndroid Build Coastguard Worker __virtio16 hdr_len; 124*8d67ca89SAndroid Build Coastguard Worker __virtio16 gso_size; 125*8d67ca89SAndroid Build Coastguard Worker __virtio16 csum_start; 126*8d67ca89SAndroid Build Coastguard Worker __virtio16 csum_offset; 127*8d67ca89SAndroid Build Coastguard Worker }; 128*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_hdr_mrg_rxbuf { 129*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_hdr hdr; 130*8d67ca89SAndroid Build Coastguard Worker __virtio16 num_buffers; 131*8d67ca89SAndroid Build Coastguard Worker }; 132*8d67ca89SAndroid Build Coastguard Worker #endif 133*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_ctrl_hdr { 134*8d67ca89SAndroid Build Coastguard Worker __u8 __linux_class; 135*8d67ca89SAndroid Build Coastguard Worker __u8 cmd; 136*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 137*8d67ca89SAndroid Build Coastguard Worker typedef __u8 virtio_net_ctrl_ack; 138*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_OK 0 139*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_ERR 1 140*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_RX 0 141*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_RX_PROMISC 0 142*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_RX_ALLMULTI 1 143*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_RX_ALLUNI 2 144*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_RX_NOMULTI 3 145*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_RX_NOUNI 4 146*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_RX_NOBCAST 5 147*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_ctrl_mac { 148*8d67ca89SAndroid Build Coastguard Worker __virtio32 entries; 149*8d67ca89SAndroid Build Coastguard Worker __u8 macs[][ETH_ALEN]; 150*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 151*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_MAC 1 152*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_MAC_TABLE_SET 0 153*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_MAC_ADDR_SET 1 154*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_VLAN 2 155*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_VLAN_ADD 0 156*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_VLAN_DEL 1 157*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_ANNOUNCE 3 158*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_ANNOUNCE_ACK 0 159*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_MQ 4 160*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_ctrl_mq { 161*8d67ca89SAndroid Build Coastguard Worker __virtio16 virtqueue_pairs; 162*8d67ca89SAndroid Build Coastguard Worker }; 163*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET 0 164*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN 1 165*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX 0x8000 166*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_rss_config { 167*8d67ca89SAndroid Build Coastguard Worker __le32 hash_types; 168*8d67ca89SAndroid Build Coastguard Worker __le16 indirection_table_mask; 169*8d67ca89SAndroid Build Coastguard Worker __le16 unclassified_queue; 170*8d67ca89SAndroid Build Coastguard Worker __le16 indirection_table[1]; 171*8d67ca89SAndroid Build Coastguard Worker __le16 max_tx_vq; 172*8d67ca89SAndroid Build Coastguard Worker __u8 hash_key_length; 173*8d67ca89SAndroid Build Coastguard Worker __u8 hash_key_data[]; 174*8d67ca89SAndroid Build Coastguard Worker }; 175*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG 1 176*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_hash_config { 177*8d67ca89SAndroid Build Coastguard Worker __le32 hash_types; 178*8d67ca89SAndroid Build Coastguard Worker __le16 reserved[4]; 179*8d67ca89SAndroid Build Coastguard Worker __u8 hash_key_length; 180*8d67ca89SAndroid Build Coastguard Worker __u8 hash_key_data[]; 181*8d67ca89SAndroid Build Coastguard Worker }; 182*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_MQ_HASH_CONFIG 2 183*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_GUEST_OFFLOADS 5 184*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET 0 185*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_NOTF_COAL 6 186*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_ctrl_coal_tx { 187*8d67ca89SAndroid Build Coastguard Worker __le32 tx_max_packets; 188*8d67ca89SAndroid Build Coastguard Worker __le32 tx_usecs; 189*8d67ca89SAndroid Build Coastguard Worker }; 190*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_NOTF_COAL_TX_SET 0 191*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_ctrl_coal_rx { 192*8d67ca89SAndroid Build Coastguard Worker __le32 rx_max_packets; 193*8d67ca89SAndroid Build Coastguard Worker __le32 rx_usecs; 194*8d67ca89SAndroid Build Coastguard Worker }; 195*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_NOTF_COAL_RX_SET 1 196*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_NOTF_COAL_VQ_SET 2 197*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_NOTF_COAL_VQ_GET 3 198*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_ctrl_coal { 199*8d67ca89SAndroid Build Coastguard Worker __le32 max_packets; 200*8d67ca89SAndroid Build Coastguard Worker __le32 max_usecs; 201*8d67ca89SAndroid Build Coastguard Worker }; 202*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_ctrl_coal_vq { 203*8d67ca89SAndroid Build Coastguard Worker __le16 vqn; 204*8d67ca89SAndroid Build Coastguard Worker __le16 reserved; 205*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_ctrl_coal coal; 206*8d67ca89SAndroid Build Coastguard Worker }; 207*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_STATS 8 208*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_STATS_QUERY 0 209*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_CTRL_STATS_GET 1 210*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_capabilities { 211*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_CVQ (1ULL << 32) 212*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_RX_BASIC (1ULL << 0) 213*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_RX_CSUM (1ULL << 1) 214*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_RX_GSO (1ULL << 2) 215*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_RX_SPEED (1ULL << 3) 216*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_TX_BASIC (1ULL << 16) 217*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_TX_CSUM (1ULL << 17) 218*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_TX_GSO (1ULL << 18) 219*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_TX_SPEED (1ULL << 19) 220*8d67ca89SAndroid Build Coastguard Worker __le64 supported_stats_types[1]; 221*8d67ca89SAndroid Build Coastguard Worker }; 222*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_ctrl_queue_stats { 223*8d67ca89SAndroid Build Coastguard Worker struct { 224*8d67ca89SAndroid Build Coastguard Worker __le16 vq_index; 225*8d67ca89SAndroid Build Coastguard Worker __le16 reserved[3]; 226*8d67ca89SAndroid Build Coastguard Worker __le64 types_bitmap[1]; 227*8d67ca89SAndroid Build Coastguard Worker } stats[1]; 228*8d67ca89SAndroid Build Coastguard Worker }; 229*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_reply_hdr { 230*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_REPLY_CVQ 32 231*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_REPLY_RX_BASIC 0 232*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_REPLY_RX_CSUM 1 233*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_REPLY_RX_GSO 2 234*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_REPLY_RX_SPEED 3 235*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_REPLY_TX_BASIC 16 236*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_REPLY_TX_CSUM 17 237*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_REPLY_TX_GSO 18 238*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_NET_STATS_TYPE_REPLY_TX_SPEED 19 239*8d67ca89SAndroid Build Coastguard Worker __u8 type; 240*8d67ca89SAndroid Build Coastguard Worker __u8 reserved; 241*8d67ca89SAndroid Build Coastguard Worker __le16 vq_index; 242*8d67ca89SAndroid Build Coastguard Worker __le16 reserved1; 243*8d67ca89SAndroid Build Coastguard Worker __le16 size; 244*8d67ca89SAndroid Build Coastguard Worker }; 245*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_cvq { 246*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_reply_hdr hdr; 247*8d67ca89SAndroid Build Coastguard Worker __le64 command_num; 248*8d67ca89SAndroid Build Coastguard Worker __le64 ok_num; 249*8d67ca89SAndroid Build Coastguard Worker }; 250*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_rx_basic { 251*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_reply_hdr hdr; 252*8d67ca89SAndroid Build Coastguard Worker __le64 rx_notifications; 253*8d67ca89SAndroid Build Coastguard Worker __le64 rx_packets; 254*8d67ca89SAndroid Build Coastguard Worker __le64 rx_bytes; 255*8d67ca89SAndroid Build Coastguard Worker __le64 rx_interrupts; 256*8d67ca89SAndroid Build Coastguard Worker __le64 rx_drops; 257*8d67ca89SAndroid Build Coastguard Worker __le64 rx_drop_overruns; 258*8d67ca89SAndroid Build Coastguard Worker }; 259*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_tx_basic { 260*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_reply_hdr hdr; 261*8d67ca89SAndroid Build Coastguard Worker __le64 tx_notifications; 262*8d67ca89SAndroid Build Coastguard Worker __le64 tx_packets; 263*8d67ca89SAndroid Build Coastguard Worker __le64 tx_bytes; 264*8d67ca89SAndroid Build Coastguard Worker __le64 tx_interrupts; 265*8d67ca89SAndroid Build Coastguard Worker __le64 tx_drops; 266*8d67ca89SAndroid Build Coastguard Worker __le64 tx_drop_malformed; 267*8d67ca89SAndroid Build Coastguard Worker }; 268*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_rx_csum { 269*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_reply_hdr hdr; 270*8d67ca89SAndroid Build Coastguard Worker __le64 rx_csum_valid; 271*8d67ca89SAndroid Build Coastguard Worker __le64 rx_needs_csum; 272*8d67ca89SAndroid Build Coastguard Worker __le64 rx_csum_none; 273*8d67ca89SAndroid Build Coastguard Worker __le64 rx_csum_bad; 274*8d67ca89SAndroid Build Coastguard Worker }; 275*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_tx_csum { 276*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_reply_hdr hdr; 277*8d67ca89SAndroid Build Coastguard Worker __le64 tx_csum_none; 278*8d67ca89SAndroid Build Coastguard Worker __le64 tx_needs_csum; 279*8d67ca89SAndroid Build Coastguard Worker }; 280*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_rx_gso { 281*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_reply_hdr hdr; 282*8d67ca89SAndroid Build Coastguard Worker __le64 rx_gso_packets; 283*8d67ca89SAndroid Build Coastguard Worker __le64 rx_gso_bytes; 284*8d67ca89SAndroid Build Coastguard Worker __le64 rx_gso_packets_coalesced; 285*8d67ca89SAndroid Build Coastguard Worker __le64 rx_gso_bytes_coalesced; 286*8d67ca89SAndroid Build Coastguard Worker }; 287*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_tx_gso { 288*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_reply_hdr hdr; 289*8d67ca89SAndroid Build Coastguard Worker __le64 tx_gso_packets; 290*8d67ca89SAndroid Build Coastguard Worker __le64 tx_gso_bytes; 291*8d67ca89SAndroid Build Coastguard Worker __le64 tx_gso_segments; 292*8d67ca89SAndroid Build Coastguard Worker __le64 tx_gso_segments_bytes; 293*8d67ca89SAndroid Build Coastguard Worker __le64 tx_gso_packets_noseg; 294*8d67ca89SAndroid Build Coastguard Worker __le64 tx_gso_bytes_noseg; 295*8d67ca89SAndroid Build Coastguard Worker }; 296*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_rx_speed { 297*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_reply_hdr hdr; 298*8d67ca89SAndroid Build Coastguard Worker __le64 rx_ratelimit_packets; 299*8d67ca89SAndroid Build Coastguard Worker __le64 rx_ratelimit_bytes; 300*8d67ca89SAndroid Build Coastguard Worker }; 301*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_tx_speed { 302*8d67ca89SAndroid Build Coastguard Worker struct virtio_net_stats_reply_hdr hdr; 303*8d67ca89SAndroid Build Coastguard Worker __le64 tx_ratelimit_packets; 304*8d67ca89SAndroid Build Coastguard Worker __le64 tx_ratelimit_bytes; 305*8d67ca89SAndroid Build Coastguard Worker }; 306*8d67ca89SAndroid Build Coastguard Worker #endif 307