Add a new character 'f' which can be used to configure an Ethernet controller to support Wake-on-LAN using filters programmed with the ethtool::rxnfc and the special action -2 (wake-up filter). This is useful in particular in the context of devices that must support wake-up on more complex patterns such as multicast DNS packets.
Signed-off-by: Florian Fainelli <f.faine...@gmail.com> --- ethtool.8.in | 4 +++- ethtool.c | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ethtool.8.in b/ethtool.8.in index 0a366aa536ae..97c7330fd373 100644 --- a/ethtool.8.in +++ b/ethtool.8.in @@ -58,7 +58,7 @@ .\" .\" \(*WO - wol flags .\" -.ds WO \fBp\fP|\fBu\fP|\fBm\fP|\fBb\fP|\fBa\fP|\fBg\fP|\fBs\fP|\fBd\fP... +.ds WO \fBp\fP|\fBu\fP|\fBm\fP|\fBb\fP|\fBa\fP|\fBg\fP|\fBs\fP|\fBf|\fBd\fP... .\" .\" \(*FL - flow type values .\" @@ -679,6 +679,7 @@ b Wake on broadcast messages a Wake on ARP g Wake on MagicPacket\[tm] s Enable SecureOn\[tm] password for MagicPacket\[tm] +f Wake on filter(s) d T{ Disable (wake on nothing). This option clears all previous options. T} @@ -870,6 +871,7 @@ Specifies the Rx queue to send packets to, or some other action. nokeep; lB l. -1 Drop the matched flow +-2 Use the matched flow as a Wake-on-LAN filter 0 or higher Rx queue to route the flow .TE .TP diff --git a/ethtool.c b/ethtool.c index fb93ae898312..aa2bbe9e4c65 100644 --- a/ethtool.c +++ b/ethtool.c @@ -931,6 +931,9 @@ static int parse_wolopts(char *optstr, u32 *data) case 's': *data |= WAKE_MAGICSECURE; break; + case 'f': + *data |= WAKE_FILTER; + break; case 'd': *data = 0; break; @@ -964,6 +967,8 @@ static char *unparse_wolopts(int wolopts) *p++ = 'g'; if (wolopts & WAKE_MAGICSECURE) *p++ = 's'; + if (wolopts & WAKE_FILTER) + *p++ = 'f'; } else { *p = 'd'; } -- 2.17.1