diff options
Diffstat (limited to 'include/uapi/linux/ethtool.h')
| -rw-r--r-- | include/uapi/linux/ethtool.h | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h index d3eaaaf1009e..0c9b44871df0 100644 --- a/include/uapi/linux/ethtool.h +++ b/include/uapi/linux/ethtool.h | |||
| @@ -500,13 +500,26 @@ union ethtool_flow_union { | |||
| 500 | struct ethtool_ah_espip4_spec esp_ip4_spec; | 500 | struct ethtool_ah_espip4_spec esp_ip4_spec; |
| 501 | struct ethtool_usrip4_spec usr_ip4_spec; | 501 | struct ethtool_usrip4_spec usr_ip4_spec; |
| 502 | struct ethhdr ether_spec; | 502 | struct ethhdr ether_spec; |
| 503 | __u8 hdata[60]; | 503 | __u8 hdata[52]; |
| 504 | }; | 504 | }; |
| 505 | 505 | ||
| 506 | /** | ||
| 507 | * struct ethtool_flow_ext - additional RX flow fields | ||
| 508 | * @h_dest: destination MAC address | ||
| 509 | * @vlan_etype: VLAN EtherType | ||
| 510 | * @vlan_tci: VLAN tag control information | ||
| 511 | * @data: user defined data | ||
| 512 | * | ||
| 513 | * Note, @vlan_etype, @vlan_tci, and @data are only valid if %FLOW_EXT | ||
| 514 | * is set in &struct ethtool_rx_flow_spec @flow_type. | ||
| 515 | * @h_dest is valid if %FLOW_MAC_EXT is set. | ||
| 516 | */ | ||
| 506 | struct ethtool_flow_ext { | 517 | struct ethtool_flow_ext { |
| 507 | __be16 vlan_etype; | 518 | __u8 padding[2]; |
| 508 | __be16 vlan_tci; | 519 | unsigned char h_dest[ETH_ALEN]; |
| 509 | __be32 data[2]; | 520 | __be16 vlan_etype; |
| 521 | __be16 vlan_tci; | ||
| 522 | __be32 data[2]; | ||
| 510 | }; | 523 | }; |
| 511 | 524 | ||
| 512 | /** | 525 | /** |
| @@ -517,7 +530,8 @@ struct ethtool_flow_ext { | |||
| 517 | * @m_u: Masks for flow field bits to be matched | 530 | * @m_u: Masks for flow field bits to be matched |
| 518 | * @m_ext: Masks for additional field bits to be matched | 531 | * @m_ext: Masks for additional field bits to be matched |
| 519 | * Note, all additional fields must be ignored unless @flow_type | 532 | * Note, all additional fields must be ignored unless @flow_type |
| 520 | * includes the %FLOW_EXT flag. | 533 | * includes the %FLOW_EXT or %FLOW_MAC_EXT flag |
| 534 | * (see &struct ethtool_flow_ext description). | ||
| 521 | * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC | 535 | * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC |
| 522 | * if packets should be discarded | 536 | * if packets should be discarded |
| 523 | * @location: Location of rule in the table. Locations must be | 537 | * @location: Location of rule in the table. Locations must be |
| @@ -1027,6 +1041,7 @@ enum ethtool_sfeatures_retval_bits { | |||
| 1027 | #define ETHER_FLOW 0x12 /* spec only (ether_spec) */ | 1041 | #define ETHER_FLOW 0x12 /* spec only (ether_spec) */ |
| 1028 | /* Flag to enable additional fields in struct ethtool_rx_flow_spec */ | 1042 | /* Flag to enable additional fields in struct ethtool_rx_flow_spec */ |
| 1029 | #define FLOW_EXT 0x80000000 | 1043 | #define FLOW_EXT 0x80000000 |
| 1044 | #define FLOW_MAC_EXT 0x40000000 | ||
| 1030 | 1045 | ||
| 1031 | /* L3-L4 network traffic flow hash options */ | 1046 | /* L3-L4 network traffic flow hash options */ |
| 1032 | #define RXH_L2DA (1 << 1) | 1047 | #define RXH_L2DA (1 << 1) |
