* [iwl-next v2 0/2] ice: extend tc flower offload @ 2024-02-22 12:39 Michal Swiatkowski 2024-02-22 12:39 ` [iwl-next v2 1/2] ice: tc: check src_vsi in case of traffic from VF Michal Swiatkowski 2024-02-22 12:39 ` [iwl-next v2 2/2] ice: tc: allow ip_proto matching Michal Swiatkowski 0 siblings, 2 replies; 9+ messages in thread From: Michal Swiatkowski @ 2024-02-22 12:39 UTC (permalink / raw) To: intel-wired-lan Cc: netdev, marcin.szycik, sridhar.samudrala, wojciech.drewek, pmenzel, Michal Swiatkowski Extend hardware support for tc flower to match ip_proto field (patch 2) and source VSI metadata when the packets are sent from VF (patch 1). v1 --> v2: [1] * fix commit message, add more examples [1] https://lore.kernel.org/netdev/20240220105950.6814-1-michal.swiatkowski@linux.intel.com/ Michal Swiatkowski (2): ice: tc: check src_vsi in case of traffic from VF ice: tc: allow ip_proto matching drivers/net/ethernet/intel/ice/ice_tc_lib.c | 25 +++++++++++++++++++-- drivers/net/ethernet/intel/ice/ice_tc_lib.h | 1 + 2 files changed, 24 insertions(+), 2 deletions(-) -- 2.42.0 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [iwl-next v2 1/2] ice: tc: check src_vsi in case of traffic from VF 2024-02-22 12:39 [iwl-next v2 0/2] ice: extend tc flower offload Michal Swiatkowski @ 2024-02-22 12:39 ` Michal Swiatkowski 2024-02-26 13:34 ` Simon Horman 2024-03-08 7:39 ` [Intel-wired-lan] " Buvaneswaran, Sujai 2024-02-22 12:39 ` [iwl-next v2 2/2] ice: tc: allow ip_proto matching Michal Swiatkowski 1 sibling, 2 replies; 9+ messages in thread From: Michal Swiatkowski @ 2024-02-22 12:39 UTC (permalink / raw) To: intel-wired-lan Cc: netdev, marcin.szycik, sridhar.samudrala, wojciech.drewek, pmenzel, Michal Swiatkowski, Jedrzej Jagielski In case of traffic going from the VF (so ingress for port representor) source VSI should be consider during packet classification. It is needed for hardware to not match packets from different ports with filters added on other port. It is only for "from VF" traffic, because other traffic direction doesn't have source VSI. Set correct ::src_vsi in rule_info to pass it to the hardware filter. For example this rule should drop only ipv4 packets from eth10, not from the others VF PRs. It is needed to check source VSI in this case. $tc filter add dev eth10 ingress protocol ip flower skip_sw action drop Reviewed-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com> Reviewed-by: Sridhar Samudrala <sridhar.samudrala@intel.com> Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> --- drivers/net/ethernet/intel/ice/ice_tc_lib.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/net/ethernet/intel/ice/ice_tc_lib.c b/drivers/net/ethernet/intel/ice/ice_tc_lib.c index b890410a2bc0..49ed5fd7db10 100644 --- a/drivers/net/ethernet/intel/ice/ice_tc_lib.c +++ b/drivers/net/ethernet/intel/ice/ice_tc_lib.c @@ -28,6 +28,8 @@ ice_tc_count_lkups(u32 flags, struct ice_tc_flower_lyr_2_4_hdrs *headers, * - ICE_TC_FLWR_FIELD_VLAN_TPID (present if specified) * - Tunnel flag (present if tunnel) */ + if (fltr->direction == ICE_ESWITCH_FLTR_EGRESS) + lkups_cnt++; if (flags & ICE_TC_FLWR_FIELD_TENANT_ID) lkups_cnt++; @@ -363,6 +365,11 @@ ice_tc_fill_rules(struct ice_hw *hw, u32 flags, /* Always add direction metadata */ ice_rule_add_direction_metadata(&list[ICE_TC_METADATA_LKUP_IDX]); + if (tc_fltr->direction == ICE_ESWITCH_FLTR_EGRESS) { + ice_rule_add_src_vsi_metadata(&list[i]); + i++; + } + rule_info->tun_type = ice_sw_type_from_tunnel(tc_fltr->tunnel_type); if (tc_fltr->tunnel_type != TNL_LAST) { i = ice_tc_fill_tunnel_outer(flags, tc_fltr, list, i); @@ -820,6 +827,7 @@ ice_eswitch_add_tc_fltr(struct ice_vsi *vsi, struct ice_tc_flower_fltr *fltr) /* specify the cookie as filter_rule_id */ rule_info.fltr_rule_id = fltr->cookie; + rule_info.src_vsi = vsi->idx; ret = ice_add_adv_rule(hw, list, lkups_cnt, &rule_info, &rule_added); if (ret == -EEXIST) { -- 2.42.0 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [iwl-next v2 1/2] ice: tc: check src_vsi in case of traffic from VF 2024-02-22 12:39 ` [iwl-next v2 1/2] ice: tc: check src_vsi in case of traffic from VF Michal Swiatkowski @ 2024-02-26 13:34 ` Simon Horman 2024-03-14 10:59 ` Michal Swiatkowski 2024-03-08 7:39 ` [Intel-wired-lan] " Buvaneswaran, Sujai 1 sibling, 1 reply; 9+ messages in thread From: Simon Horman @ 2024-02-26 13:34 UTC (permalink / raw) To: Michal Swiatkowski Cc: intel-wired-lan, netdev, marcin.szycik, sridhar.samudrala, wojciech.drewek, pmenzel, Jedrzej Jagielski On Thu, Feb 22, 2024 at 01:39:55PM +0100, Michal Swiatkowski wrote: > In case of traffic going from the VF (so ingress for port representor) > source VSI should be consider during packet classification. It is > needed for hardware to not match packets from different ports with > filters added on other port. > > It is only for "from VF" traffic, because other traffic direction > doesn't have source VSI. > > Set correct ::src_vsi in rule_info to pass it to the hardware filter. > > For example this rule should drop only ipv4 packets from eth10, not from > the others VF PRs. It is needed to check source VSI in this case. > $tc filter add dev eth10 ingress protocol ip flower skip_sw action drop > > Reviewed-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com> > Reviewed-by: Sridhar Samudrala <sridhar.samudrala@intel.com> > Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> Hi Michal, Should this be treated as a fix: have a Fixes tag; be targeted at 'iwl'? That notwithstanding, this look good to me. Reviewed-by: Simon Horman <horms@kernel.org> ... ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [iwl-next v2 1/2] ice: tc: check src_vsi in case of traffic from VF 2024-02-26 13:34 ` Simon Horman @ 2024-03-14 10:59 ` Michal Swiatkowski 0 siblings, 0 replies; 9+ messages in thread From: Michal Swiatkowski @ 2024-03-14 10:59 UTC (permalink / raw) To: Simon Horman Cc: intel-wired-lan, netdev, marcin.szycik, sridhar.samudrala, wojciech.drewek, pmenzel, Jedrzej Jagielski On Mon, Feb 26, 2024 at 01:34:48PM +0000, Simon Horman wrote: > On Thu, Feb 22, 2024 at 01:39:55PM +0100, Michal Swiatkowski wrote: > > In case of traffic going from the VF (so ingress for port representor) > > source VSI should be consider during packet classification. It is > > needed for hardware to not match packets from different ports with > > filters added on other port. > > > > It is only for "from VF" traffic, because other traffic direction > > doesn't have source VSI. > > > > Set correct ::src_vsi in rule_info to pass it to the hardware filter. > > > > For example this rule should drop only ipv4 packets from eth10, not from > > the others VF PRs. It is needed to check source VSI in this case. > > $tc filter add dev eth10 ingress protocol ip flower skip_sw action drop > > > > Reviewed-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com> > > Reviewed-by: Sridhar Samudrala <sridhar.samudrala@intel.com> > > Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> > > Hi Michal, > > Should this be treated as a fix: have a Fixes tag; be targeted at 'iwl'? > > That notwithstanding, this look good to me. > > Reviewed-by: Simon Horman <horms@kernel.org> > > ... Thanks Simon, you are right, it will go to net with correct fixes tag. Thanks, Michal ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [Intel-wired-lan] [iwl-next v2 1/2] ice: tc: check src_vsi in case of traffic from VF 2024-02-22 12:39 ` [iwl-next v2 1/2] ice: tc: check src_vsi in case of traffic from VF Michal Swiatkowski 2024-02-26 13:34 ` Simon Horman @ 2024-03-08 7:39 ` Buvaneswaran, Sujai 1 sibling, 0 replies; 9+ messages in thread From: Buvaneswaran, Sujai @ 2024-03-08 7:39 UTC (permalink / raw) To: Michal Swiatkowski, intel-wired-lan@lists.osuosl.org Cc: pmenzel@molgen.mpg.de, Drewek, Wojciech, Szycik, Marcin, netdev@vger.kernel.org, Jagielski, Jedrzej, Samudrala, Sridhar > -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of > Michal Swiatkowski > Sent: Thursday, February 22, 2024 6:10 PM > To: intel-wired-lan@lists.osuosl.org > Cc: pmenzel@molgen.mpg.de; Drewek, Wojciech > <wojciech.drewek@intel.com>; Szycik, Marcin <marcin.szycik@intel.com>; > netdev@vger.kernel.org; Jagielski, Jedrzej <jedrzej.jagielski@intel.com>; > Samudrala, Sridhar <sridhar.samudrala@intel.com>; Michal Swiatkowski > <michal.swiatkowski@linux.intel.com> > Subject: [Intel-wired-lan] [iwl-next v2 1/2] ice: tc: check src_vsi in case of > traffic from VF > > In case of traffic going from the VF (so ingress for port representor) source > VSI should be consider during packet classification. It is needed for hardware > to not match packets from different ports with filters added on other port. > > It is only for "from VF" traffic, because other traffic direction doesn't have > source VSI. > > Set correct ::src_vsi in rule_info to pass it to the hardware filter. > > For example this rule should drop only ipv4 packets from eth10, not from the > others VF PRs. It is needed to check source VSI in this case. > $tc filter add dev eth10 ingress protocol ip flower skip_sw action drop > > Reviewed-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com> > Reviewed-by: Sridhar Samudrala <sridhar.samudrala@intel.com> > Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> > --- > drivers/net/ethernet/intel/ice/ice_tc_lib.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > Tested-by: Sujai Buvaneswaran <sujai.buvaneswaran@intel.com> ^ permalink raw reply [flat|nested] 9+ messages in thread
* [iwl-next v2 2/2] ice: tc: allow ip_proto matching 2024-02-22 12:39 [iwl-next v2 0/2] ice: extend tc flower offload Michal Swiatkowski 2024-02-22 12:39 ` [iwl-next v2 1/2] ice: tc: check src_vsi in case of traffic from VF Michal Swiatkowski @ 2024-02-22 12:39 ` Michal Swiatkowski 2024-02-26 13:33 ` Simon Horman ` (2 more replies) 1 sibling, 3 replies; 9+ messages in thread From: Michal Swiatkowski @ 2024-02-22 12:39 UTC (permalink / raw) To: intel-wired-lan Cc: netdev, marcin.szycik, sridhar.samudrala, wojciech.drewek, pmenzel, Michal Swiatkowski, Jedrzej Jagielski Add new matching type for ip_proto. Use it in the same lookup type as for TTL. In hardware it has the same protocol ID, but different offset. Example command to add filter with ip_proto: $tc filter add dev eth10 ingress protocol ip flower ip_proto icmp \ skip_sw action mirred egress redirect dev eth0 Reviewed-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com> Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> --- drivers/net/ethernet/intel/ice/ice_tc_lib.c | 17 +++++++++++++++-- drivers/net/ethernet/intel/ice/ice_tc_lib.h | 1 + 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/intel/ice/ice_tc_lib.c b/drivers/net/ethernet/intel/ice/ice_tc_lib.c index 49ed5fd7db10..f7c0f62fb730 100644 --- a/drivers/net/ethernet/intel/ice/ice_tc_lib.c +++ b/drivers/net/ethernet/intel/ice/ice_tc_lib.c @@ -78,7 +78,8 @@ ice_tc_count_lkups(u32 flags, struct ice_tc_flower_lyr_2_4_hdrs *headers, ICE_TC_FLWR_FIELD_DEST_IPV6 | ICE_TC_FLWR_FIELD_SRC_IPV6)) lkups_cnt++; - if (flags & (ICE_TC_FLWR_FIELD_IP_TOS | ICE_TC_FLWR_FIELD_IP_TTL)) + if (flags & (ICE_TC_FLWR_FIELD_IP_TOS | ICE_TC_FLWR_FIELD_IP_TTL | + ICE_TC_FLWR_FIELD_IP_PROTO)) lkups_cnt++; /* are L2TPv3 options specified? */ @@ -530,7 +531,8 @@ ice_tc_fill_rules(struct ice_hw *hw, u32 flags, } if (headers->l2_key.n_proto == htons(ETH_P_IP) && - (flags & (ICE_TC_FLWR_FIELD_IP_TOS | ICE_TC_FLWR_FIELD_IP_TTL))) { + (flags & (ICE_TC_FLWR_FIELD_IP_TOS | ICE_TC_FLWR_FIELD_IP_TTL | + ICE_TC_FLWR_FIELD_IP_PROTO))) { list[i].type = ice_proto_type_from_ipv4(inner); if (flags & ICE_TC_FLWR_FIELD_IP_TOS) { @@ -545,6 +547,13 @@ ice_tc_fill_rules(struct ice_hw *hw, u32 flags, headers->l3_mask.ttl; } + if (flags & ICE_TC_FLWR_FIELD_IP_PROTO) { + list[i].h_u.ipv4_hdr.protocol = + headers->l3_key.ip_proto; + list[i].m_u.ipv4_hdr.protocol = + headers->l3_mask.ip_proto; + } + i++; } @@ -1515,7 +1524,11 @@ ice_parse_cls_flower(struct net_device *filter_dev, struct ice_vsi *vsi, headers->l2_key.n_proto = cpu_to_be16(n_proto_key); headers->l2_mask.n_proto = cpu_to_be16(n_proto_mask); + + if (match.key->ip_proto) + fltr->flags |= ICE_TC_FLWR_FIELD_IP_PROTO; headers->l3_key.ip_proto = match.key->ip_proto; + headers->l3_mask.ip_proto = match.mask->ip_proto; } if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_ETH_ADDRS)) { diff --git a/drivers/net/ethernet/intel/ice/ice_tc_lib.h b/drivers/net/ethernet/intel/ice/ice_tc_lib.h index 65d387163a46..856f371d0687 100644 --- a/drivers/net/ethernet/intel/ice/ice_tc_lib.h +++ b/drivers/net/ethernet/intel/ice/ice_tc_lib.h @@ -34,6 +34,7 @@ #define ICE_TC_FLWR_FIELD_VLAN_PRIO BIT(27) #define ICE_TC_FLWR_FIELD_CVLAN_PRIO BIT(28) #define ICE_TC_FLWR_FIELD_VLAN_TPID BIT(29) +#define ICE_TC_FLWR_FIELD_IP_PROTO BIT(30) #define ICE_TC_FLOWER_MASK_32 0xFFFFFFFF -- 2.42.0 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [iwl-next v2 2/2] ice: tc: allow ip_proto matching 2024-02-22 12:39 ` [iwl-next v2 2/2] ice: tc: allow ip_proto matching Michal Swiatkowski @ 2024-02-26 13:33 ` Simon Horman 2024-03-08 7:40 ` [Intel-wired-lan] " Buvaneswaran, Sujai 2024-03-14 11:03 ` Michal Swiatkowski 2 siblings, 0 replies; 9+ messages in thread From: Simon Horman @ 2024-02-26 13:33 UTC (permalink / raw) To: Michal Swiatkowski Cc: intel-wired-lan, netdev, marcin.szycik, sridhar.samudrala, wojciech.drewek, pmenzel, Jedrzej Jagielski On Thu, Feb 22, 2024 at 01:39:56PM +0100, Michal Swiatkowski wrote: > Add new matching type for ip_proto. > > Use it in the same lookup type as for TTL. In hardware it has the same > protocol ID, but different offset. > > Example command to add filter with ip_proto: > $tc filter add dev eth10 ingress protocol ip flower ip_proto icmp \ > skip_sw action mirred egress redirect dev eth0 > > Reviewed-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com> > Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> Reviewed-by: Simon Horman <horms@kernel.org> ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [Intel-wired-lan] [iwl-next v2 2/2] ice: tc: allow ip_proto matching 2024-02-22 12:39 ` [iwl-next v2 2/2] ice: tc: allow ip_proto matching Michal Swiatkowski 2024-02-26 13:33 ` Simon Horman @ 2024-03-08 7:40 ` Buvaneswaran, Sujai 2024-03-14 11:03 ` Michal Swiatkowski 2 siblings, 0 replies; 9+ messages in thread From: Buvaneswaran, Sujai @ 2024-03-08 7:40 UTC (permalink / raw) To: Michal Swiatkowski, intel-wired-lan@lists.osuosl.org Cc: pmenzel@molgen.mpg.de, Drewek, Wojciech, Szycik, Marcin, netdev@vger.kernel.org, Jagielski, Jedrzej, Samudrala, Sridhar > -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of > Michal Swiatkowski > Sent: Thursday, February 22, 2024 6:10 PM > To: intel-wired-lan@lists.osuosl.org > Cc: pmenzel@molgen.mpg.de; Drewek, Wojciech > <wojciech.drewek@intel.com>; Szycik, Marcin <marcin.szycik@intel.com>; > netdev@vger.kernel.org; Jagielski, Jedrzej <jedrzej.jagielski@intel.com>; > Samudrala, Sridhar <sridhar.samudrala@intel.com>; Michal Swiatkowski > <michal.swiatkowski@linux.intel.com> > Subject: [Intel-wired-lan] [iwl-next v2 2/2] ice: tc: allow ip_proto matching > > Add new matching type for ip_proto. > > Use it in the same lookup type as for TTL. In hardware it has the same > protocol ID, but different offset. > > Example command to add filter with ip_proto: > $tc filter add dev eth10 ingress protocol ip flower ip_proto icmp \ skip_sw > action mirred egress redirect dev eth0 > > Reviewed-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com> > Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> > --- > drivers/net/ethernet/intel/ice/ice_tc_lib.c | 17 +++++++++++++++-- > drivers/net/ethernet/intel/ice/ice_tc_lib.h | 1 + > 2 files changed, 16 insertions(+), 2 deletions(-) > Tested-by: Sujai Buvaneswaran <sujai.buvaneswaran@intel.com> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [iwl-next v2 2/2] ice: tc: allow ip_proto matching 2024-02-22 12:39 ` [iwl-next v2 2/2] ice: tc: allow ip_proto matching Michal Swiatkowski 2024-02-26 13:33 ` Simon Horman 2024-03-08 7:40 ` [Intel-wired-lan] " Buvaneswaran, Sujai @ 2024-03-14 11:03 ` Michal Swiatkowski 2 siblings, 0 replies; 9+ messages in thread From: Michal Swiatkowski @ 2024-03-14 11:03 UTC (permalink / raw) To: intel-wired-lan Cc: netdev, marcin.szycik, sridhar.samudrala, wojciech.drewek, pmenzel, Jedrzej Jagielski On Thu, Feb 22, 2024 at 01:39:56PM +0100, Michal Swiatkowski wrote: > Add new matching type for ip_proto. > > Use it in the same lookup type as for TTL. In hardware it has the same > protocol ID, but different offset. > > Example command to add filter with ip_proto: > $tc filter add dev eth10 ingress protocol ip flower ip_proto icmp \ > skip_sw action mirred egress redirect dev eth0 > > Reviewed-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com> > Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> > --- > drivers/net/ethernet/intel/ice/ice_tc_lib.c | 17 +++++++++++++++-- > drivers/net/ethernet/intel/ice/ice_tc_lib.h | 1 + > 2 files changed, 16 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/intel/ice/ice_tc_lib.c b/drivers/net/ethernet/intel/ice/ice_tc_lib.c > index 49ed5fd7db10..f7c0f62fb730 100644 > --- a/drivers/net/ethernet/intel/ice/ice_tc_lib.c > +++ b/drivers/net/ethernet/intel/ice/ice_tc_lib.c > @@ -78,7 +78,8 @@ ice_tc_count_lkups(u32 flags, struct ice_tc_flower_lyr_2_4_hdrs *headers, > ICE_TC_FLWR_FIELD_DEST_IPV6 | ICE_TC_FLWR_FIELD_SRC_IPV6)) > lkups_cnt++; > > - if (flags & (ICE_TC_FLWR_FIELD_IP_TOS | ICE_TC_FLWR_FIELD_IP_TTL)) > + if (flags & (ICE_TC_FLWR_FIELD_IP_TOS | ICE_TC_FLWR_FIELD_IP_TTL | > + ICE_TC_FLWR_FIELD_IP_PROTO)) > lkups_cnt++; There is an issue here. In case of ipv6 it shouldn't be count as there is no support for next header in ipv6. Example command to reproduce the problem: tc filter add dev eth0 ingress protocol ipv6 prio 103 flower skip_sw \ dst_mac fa:16:3e:13:e9:a1 ip_proto udp src_port 547 dst_port 546 \ dst_ip fe80::/64 action drop Filter won't be added because of mismatch between filled and counted lookups. I will send v3 with fix. Thanks, Michal > > /* are L2TPv3 options specified? */ > @@ -530,7 +531,8 @@ ice_tc_fill_rules(struct ice_hw *hw, u32 flags, > } > > if (headers->l2_key.n_proto == htons(ETH_P_IP) && > - (flags & (ICE_TC_FLWR_FIELD_IP_TOS | ICE_TC_FLWR_FIELD_IP_TTL))) { > + (flags & (ICE_TC_FLWR_FIELD_IP_TOS | ICE_TC_FLWR_FIELD_IP_TTL | > + ICE_TC_FLWR_FIELD_IP_PROTO))) { > list[i].type = ice_proto_type_from_ipv4(inner); > > if (flags & ICE_TC_FLWR_FIELD_IP_TOS) { > @@ -545,6 +547,13 @@ ice_tc_fill_rules(struct ice_hw *hw, u32 flags, > headers->l3_mask.ttl; > } > > + if (flags & ICE_TC_FLWR_FIELD_IP_PROTO) { > + list[i].h_u.ipv4_hdr.protocol = > + headers->l3_key.ip_proto; > + list[i].m_u.ipv4_hdr.protocol = > + headers->l3_mask.ip_proto; > + } > + > i++; > } > > @@ -1515,7 +1524,11 @@ ice_parse_cls_flower(struct net_device *filter_dev, struct ice_vsi *vsi, > > headers->l2_key.n_proto = cpu_to_be16(n_proto_key); > headers->l2_mask.n_proto = cpu_to_be16(n_proto_mask); > + > + if (match.key->ip_proto) > + fltr->flags |= ICE_TC_FLWR_FIELD_IP_PROTO; > headers->l3_key.ip_proto = match.key->ip_proto; > + headers->l3_mask.ip_proto = match.mask->ip_proto; > } > > if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_ETH_ADDRS)) { > diff --git a/drivers/net/ethernet/intel/ice/ice_tc_lib.h b/drivers/net/ethernet/intel/ice/ice_tc_lib.h > index 65d387163a46..856f371d0687 100644 > --- a/drivers/net/ethernet/intel/ice/ice_tc_lib.h > +++ b/drivers/net/ethernet/intel/ice/ice_tc_lib.h > @@ -34,6 +34,7 @@ > #define ICE_TC_FLWR_FIELD_VLAN_PRIO BIT(27) > #define ICE_TC_FLWR_FIELD_CVLAN_PRIO BIT(28) > #define ICE_TC_FLWR_FIELD_VLAN_TPID BIT(29) > +#define ICE_TC_FLWR_FIELD_IP_PROTO BIT(30) > > #define ICE_TC_FLOWER_MASK_32 0xFFFFFFFF > > -- > 2.42.0 > ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-03-14 11:03 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-02-22 12:39 [iwl-next v2 0/2] ice: extend tc flower offload Michal Swiatkowski 2024-02-22 12:39 ` [iwl-next v2 1/2] ice: tc: check src_vsi in case of traffic from VF Michal Swiatkowski 2024-02-26 13:34 ` Simon Horman 2024-03-14 10:59 ` Michal Swiatkowski 2024-03-08 7:39 ` [Intel-wired-lan] " Buvaneswaran, Sujai 2024-02-22 12:39 ` [iwl-next v2 2/2] ice: tc: allow ip_proto matching Michal Swiatkowski 2024-02-26 13:33 ` Simon Horman 2024-03-08 7:40 ` [Intel-wired-lan] " Buvaneswaran, Sujai 2024-03-14 11:03 ` Michal Swiatkowski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).