Message ID | 20200818185503.664-1-vishal@chelsio.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net-next] ethtool: allow flow-type ether without IP protocol field | expand |
From: Vishal Kulkarni <vishal@chelsio.com> Date: Wed, 19 Aug 2020 00:25:03 +0530 > Set IP protocol mask only when IP protocol field is set. > This will allow flow-type ether with vlan rule which don't have > protocol field to apply. > > ethtool -N ens5f4 flow-type ether proto 0x8100 vlan 0x600\ > m 0x1FFF action 3 loc 16 > > Signed-off-by: Vishal Kulkarni <vishal@chelsio.com> Michal, please review. > --- > net/ethtool/ioctl.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c > index 441794e0034f..e6f5cf52023c 100644 > --- a/net/ethtool/ioctl.c > +++ b/net/ethtool/ioctl.c > @@ -3025,13 +3025,14 @@ ethtool_rx_flow_rule_create(const struct ethtool_rx_flow_spec_input *input) > case TCP_V4_FLOW: > case TCP_V6_FLOW: > match->key.basic.ip_proto = IPPROTO_TCP; > + match->mask.basic.ip_proto = 0xff; > break; > case UDP_V4_FLOW: > case UDP_V6_FLOW: > match->key.basic.ip_proto = IPPROTO_UDP; > + match->mask.basic.ip_proto = 0xff; > break; > } > - match->mask.basic.ip_proto = 0xff; > > match->dissector.used_keys |= BIT(FLOW_DISSECTOR_KEY_BASIC); > match->dissector.offset[FLOW_DISSECTOR_KEY_BASIC] = > -- > 2.21.1 >
On Wed, Aug 19, 2020 at 12:25:03AM +0530, Vishal Kulkarni wrote: > Set IP protocol mask only when IP protocol field is set. > This will allow flow-type ether with vlan rule which don't have > protocol field to apply. > > ethtool -N ens5f4 flow-type ether proto 0x8100 vlan 0x600\ > m 0x1FFF action 3 loc 16 > > Signed-off-by: Vishal Kulkarni <vishal@chelsio.com> > --- > net/ethtool/ioctl.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c > index 441794e0034f..e6f5cf52023c 100644 > --- a/net/ethtool/ioctl.c > +++ b/net/ethtool/ioctl.c > @@ -3025,13 +3025,14 @@ ethtool_rx_flow_rule_create(const struct ethtool_rx_flow_spec_input *input) > case TCP_V4_FLOW: > case TCP_V6_FLOW: > match->key.basic.ip_proto = IPPROTO_TCP; > + match->mask.basic.ip_proto = 0xff; > break; > case UDP_V4_FLOW: > case UDP_V6_FLOW: > match->key.basic.ip_proto = IPPROTO_UDP; > + match->mask.basic.ip_proto = 0xff; > break; > } > - match->mask.basic.ip_proto = 0xff; > > match->dissector.used_keys |= BIT(FLOW_DISSECTOR_KEY_BASIC); > match->dissector.offset[FLOW_DISSECTOR_KEY_BASIC] = > -- > 2.21.1 > This is certainly correct. We should also handle SCTP_V4_FLOW and SCTP_V6_FLOW in the same way as {TCP,UDP}_V{4,6}_FLOW but that is an unrelated problem which should be handled separately (and also needs to be addressed in the switch statement above this one). Reviewed-by: Michal Kubecek <mkubecek@suse.cz>
From: Vishal Kulkarni <vishal@chelsio.com> Date: Wed, 19 Aug 2020 00:25:03 +0530 > Set IP protocol mask only when IP protocol field is set. > This will allow flow-type ether with vlan rule which don't have > protocol field to apply. > > ethtool -N ens5f4 flow-type ether proto 0x8100 vlan 0x600\ > m 0x1FFF action 3 loc 16 > > Signed-off-by: Vishal Kulkarni <vishal@chelsio.com> Applied, thank you.
diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c index 441794e0034f..e6f5cf52023c 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -3025,13 +3025,14 @@ ethtool_rx_flow_rule_create(const struct ethtool_rx_flow_spec_input *input) case TCP_V4_FLOW: case TCP_V6_FLOW: match->key.basic.ip_proto = IPPROTO_TCP; + match->mask.basic.ip_proto = 0xff; break; case UDP_V4_FLOW: case UDP_V6_FLOW: match->key.basic.ip_proto = IPPROTO_UDP; + match->mask.basic.ip_proto = 0xff; break; } - match->mask.basic.ip_proto = 0xff; match->dissector.used_keys |= BIT(FLOW_DISSECTOR_KEY_BASIC); match->dissector.offset[FLOW_DISSECTOR_KEY_BASIC] =
Set IP protocol mask only when IP protocol field is set. This will allow flow-type ether with vlan rule which don't have protocol field to apply. ethtool -N ens5f4 flow-type ether proto 0x8100 vlan 0x600\ m 0x1FFF action 3 loc 16 Signed-off-by: Vishal Kulkarni <vishal@chelsio.com> --- net/ethtool/ioctl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)