aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2018-08-07 13:50:20 -0400
committerDavid S. Miller <davem@davemloft.net>2018-08-07 15:15:03 -0400
commit6cfef793b558eee47bac720574aff0d36b89d20a (patch)
tree928a0f46fe66db558ea12387f8393ba5b648e55b /include/uapi/linux
parent1ba982806ce58baac44c52e6c7812245afad27c8 (diff)
ethtool: Add WAKE_FILTER and RX_CLS_FLOW_WAKE
Add the ability to specify through ethtool::rxnfc that a rule location is special and will be used to participate in Wake-on-LAN, by e.g: having a specific pattern be matched. When this is the case, fs->ring_cookie must be set to the special value RX_CLS_FLOW_WAKE. We also define an additional ethtool::wolinfo flag: WAKE_FILTER which can be used to configure an Ethernet adapter to allow Wake-on-LAN using previously programmed filters. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/ethtool.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h
index 813282cc8af6..dc69391d2bba 100644
--- a/include/uapi/linux/ethtool.h
+++ b/include/uapi/linux/ethtool.h
@@ -870,7 +870,8 @@ struct ethtool_flow_ext {
870 * includes the %FLOW_EXT or %FLOW_MAC_EXT flag 870 * includes the %FLOW_EXT or %FLOW_MAC_EXT flag
871 * (see &struct ethtool_flow_ext description). 871 * (see &struct ethtool_flow_ext description).
872 * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC 872 * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC
873 * if packets should be discarded 873 * if packets should be discarded, or %RX_CLS_FLOW_WAKE if the
874 * packets should be used for Wake-on-LAN with %WAKE_FILTER
874 * @location: Location of rule in the table. Locations must be 875 * @location: Location of rule in the table. Locations must be
875 * numbered such that a flow matching multiple rules will be 876 * numbered such that a flow matching multiple rules will be
876 * classified according to the first (lowest numbered) rule. 877 * classified according to the first (lowest numbered) rule.
@@ -1634,6 +1635,7 @@ static inline int ethtool_validate_duplex(__u8 duplex)
1634#define WAKE_ARP (1 << 4) 1635#define WAKE_ARP (1 << 4)
1635#define WAKE_MAGIC (1 << 5) 1636#define WAKE_MAGIC (1 << 5)
1636#define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */ 1637#define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */
1638#define WAKE_FILTER (1 << 7)
1637 1639
1638/* L2-L4 network traffic flow types */ 1640/* L2-L4 network traffic flow types */
1639#define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */ 1641#define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */
@@ -1671,6 +1673,7 @@ static inline int ethtool_validate_duplex(__u8 duplex)
1671#define RXH_DISCARD (1 << 31) 1673#define RXH_DISCARD (1 << 31)
1672 1674
1673#define RX_CLS_FLOW_DISC 0xffffffffffffffffULL 1675#define RX_CLS_FLOW_DISC 0xffffffffffffffffULL
1676#define RX_CLS_FLOW_WAKE 0xfffffffffffffffeULL
1674 1677
1675/* Special RX classification rule insert location values */ 1678/* Special RX classification rule insert location values */
1676#define RX_CLS_LOC_SPECIAL 0x80000000 /* flag */ 1679#define RX_CLS_LOC_SPECIAL 0x80000000 /* flag */