mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-05 00:20:32 +00:00
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>
This commit is contained in:
parent
1ba982806c
commit
6cfef793b5
1 changed files with 4 additions and 1 deletions
|
@ -870,7 +870,8 @@ struct ethtool_flow_ext {
|
||||||
* includes the %FLOW_EXT or %FLOW_MAC_EXT flag
|
* includes the %FLOW_EXT or %FLOW_MAC_EXT flag
|
||||||
* (see &struct ethtool_flow_ext description).
|
* (see &struct ethtool_flow_ext description).
|
||||||
* @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC
|
* @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
|
* @location: Location of rule in the table. Locations must be
|
||||||
* numbered such that a flow matching multiple rules will be
|
* numbered such that a flow matching multiple rules will be
|
||||||
* classified according to the first (lowest numbered) rule.
|
* 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_ARP (1 << 4)
|
||||||
#define WAKE_MAGIC (1 << 5)
|
#define WAKE_MAGIC (1 << 5)
|
||||||
#define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */
|
#define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */
|
||||||
|
#define WAKE_FILTER (1 << 7)
|
||||||
|
|
||||||
/* L2-L4 network traffic flow types */
|
/* L2-L4 network traffic flow types */
|
||||||
#define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */
|
#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 RXH_DISCARD (1 << 31)
|
||||||
|
|
||||||
#define RX_CLS_FLOW_DISC 0xffffffffffffffffULL
|
#define RX_CLS_FLOW_DISC 0xffffffffffffffffULL
|
||||||
|
#define RX_CLS_FLOW_WAKE 0xfffffffffffffffeULL
|
||||||
|
|
||||||
/* Special RX classification rule insert location values */
|
/* Special RX classification rule insert location values */
|
||||||
#define RX_CLS_LOC_SPECIAL 0x80000000 /* flag */
|
#define RX_CLS_LOC_SPECIAL 0x80000000 /* flag */
|
||||||
|
|
Loading…
Reference in a new issue