diff options
| author | David S. Miller <davem@davemloft.net> | 2018-08-07 22:15:03 +0300 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2018-08-07 22:15:03 +0300 |
| commit | 50ee42b9ccb39c7a5c41eaae3199675a6ced9d49 (patch) | |
| tree | b04915ba327521bbc905befce6789aecca34de90 /include | |
| parent | 1ba982806ce58baac44c52e6c7812245afad27c8 (diff) | |
| parent | bb9051a2b23005a18826a2c33c98e5d977332352 (diff) | |
| download | linux-50ee42b9ccb39c7a5c41eaae3199675a6ced9d49.tar.xz | |
Merge branch 'WoL-filters'
Florian Fainelli says:
====================
net: Support Wake-on-LAN using filters
This is technically a v2, but this patch series builds on your feedback
and defines the following:
- a new WAKE_* bit: WAKE_FILTER which can be enabled alongside other type
of Wake-on-LAN to support waking up on a programmed filter (match + action)
- a new RX_CLS_FLOW_WAKE flow action which can be specified by an user when
inserting a flow using ethtool::rxnfc, similar to the existing RX_CLS_FLOW_DISC
The bcm_sf2 and bcmsysport drivers are updated accordingly to work in concert to
allow matching packets at the switch level, identified by their filter location
to be used as a match by the SYSTEM PORT (CPU/management controller) during
Wake-on-LAN.
Let me know if this looks better than the previous incarnation of the patch
series.
Attached is also the ethtool patch that I would be submitting once the uapi
changes are committed.
Thank you!
Changes in v2:
- bail out earlier in bcm_sf2_cfp's get_rxnfc if an error is
encountered (Andrew)
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
| -rw-r--r-- | include/uapi/linux/ethtool.h | 5 |
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 { * includes the %FLOW_EXT or %FLOW_MAC_EXT flag * (see &struct ethtool_flow_ext description). * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC - * if packets should be discarded + * if packets should be discarded, or %RX_CLS_FLOW_WAKE if the + * packets should be used for Wake-on-LAN with %WAKE_FILTER * @location: Location of rule in the table. Locations must be * numbered such that a flow matching multiple rules will be * classified according to the first (lowest numbered) rule. @@ -1634,6 +1635,7 @@ static inline int ethtool_validate_duplex(__u8 duplex) #define WAKE_ARP (1 << 4) #define WAKE_MAGIC (1 << 5) #define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */ +#define WAKE_FILTER (1 << 7) /* L2-L4 network traffic flow types */ #define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */ @@ -1671,6 +1673,7 @@ static inline int ethtool_validate_duplex(__u8 duplex) #define RXH_DISCARD (1 << 31) #define RX_CLS_FLOW_DISC 0xffffffffffffffffULL +#define RX_CLS_FLOW_WAKE 0xfffffffffffffffeULL /* Special RX classification rule insert location values */ #define RX_CLS_LOC_SPECIAL 0x80000000 /* flag */ |
