aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/ethtool.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/linux/ethtool.h')
-rw-r--r--include/uapi/linux/ethtool.h25
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 */
506struct ethtool_flow_ext { 517struct 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)