All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Jiri Pirko <jiri@resnulli.us>, Ido Schimmel <idosch@idosch.org>,
	Vladimir Oltean <vladimir.oltean@nxp.com>,
	Vlad Buslov <vladbu@nvidia.com>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>,
	netdev@vger.kernel.org,
	Wojciech Drewek <wojciech.drewek@intel.com>,
	Simon Horman <horms@kernel.org>,
	Sujai Buvaneswaran <sujai.buvaneswaran@intel.com>
Subject: Re: [PATCH net-next 2/7] ice: Support untagged VLAN traffic in br offload
Date: Wed, 2 Aug 2023 19:31:42 -0700	[thread overview]
Message-ID: <20230802193142.59fe5bf3@kernel.org> (raw)
In-Reply-To: <20230801173112.3625977-3-anthony.l.nguyen@intel.com>

On Tue,  1 Aug 2023 10:31:07 -0700 Tony Nguyen wrote:
> From: Wojciech Drewek <wojciech.drewek@intel.com>
> 
> When driver receives SWITCHDEV_FDB_ADD_TO_DEVICE notification
> with vid = 1, it means that we have to offload untagged traffic.
> This is achieved by adding vlan metadata lookup.

Paul already asked about this behavior but it's unclear to me from the
answer whether this is a local custom or legit switchdev behavior.
Could someone with switchdev knowledge glance over this?

> diff --git a/drivers/net/ethernet/intel/ice/ice_eswitch_br.c b/drivers/net/ethernet/intel/ice/ice_eswitch_br.c
> index 67bfd1f61cdd..5b425260b0eb 100644
> --- a/drivers/net/ethernet/intel/ice/ice_eswitch_br.c
> +++ b/drivers/net/ethernet/intel/ice/ice_eswitch_br.c
> @@ -104,13 +104,18 @@ ice_eswitch_br_rule_delete(struct ice_hw *hw, struct ice_rule_query_data *rule)
>  static u16
>  ice_eswitch_br_get_lkups_cnt(u16 vid)
>  {
> -	return ice_eswitch_br_is_vid_valid(vid) ? 2 : 1;
> +	/* if vid == 0 then we need only one lookup (ICE_MAC_OFOS),
> +	 * otherwise we need both mac and vlan
> +	 */
> +	return vid == 0 ? 1 : 2;
>  }
>  
>  static void
>  ice_eswitch_br_add_vlan_lkup(struct ice_adv_lkup_elem *list, u16 vid)
>  {
> -	if (ice_eswitch_br_is_vid_valid(vid)) {
> +	if (vid == 1) {
> +		ice_rule_add_vlan_metadata(&list[1]);
> +	} else if (vid > 1) {
>  		list[1].type = ICE_VLAN_OFOS;
>  		list[1].h_u.vlan_hdr.vlan = cpu_to_be16(vid & VLAN_VID_MASK);
>  		list[1].m_u.vlan_hdr.vlan = cpu_to_be16(0xFFFF);
> @@ -400,7 +405,6 @@ ice_eswitch_br_fdb_entry_create(struct net_device *netdev,
>  	unsigned long event;
>  	int err;
>  
> -	/* untagged filtering is not yet supported */
>  	if (!(bridge->flags & ICE_ESWITCH_BR_VLAN_FILTERING) && vid)
>  		return;
>  
> diff --git a/drivers/net/ethernet/intel/ice/ice_eswitch_br.h b/drivers/net/ethernet/intel/ice/ice_eswitch_br.h
> index 85a8fadb2928..cf7b0e5acfcb 100644
> --- a/drivers/net/ethernet/intel/ice/ice_eswitch_br.h
> +++ b/drivers/net/ethernet/intel/ice/ice_eswitch_br.h
> @@ -103,15 +103,6 @@ struct ice_esw_br_vlan {
>  		     struct ice_esw_br_fdb_work, \
>  		     work)
>  
> -static inline bool ice_eswitch_br_is_vid_valid(u16 vid)
> -{
> -	/* In trunk VLAN mode, for untagged traffic the bridge sends requests
> -	 * to offload VLAN 1 with pvid and untagged flags set. Since these
> -	 * flags are not supported, add a MAC filter instead.
> -	 */
> -	return vid > 1;
> -}
> -
>  void
>  ice_eswitch_br_offloads_deinit(struct ice_pf *pf);
>  int


  reply	other threads:[~2023-08-03  2:31 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-01 17:31 [PATCH net-next 0/7][pull request] Intel Wired LAN Driver Updates 2023-08-01 (ice) Tony Nguyen
2023-08-01 17:31 ` [PATCH net-next 1/7] ice: Accept LAG netdevs in bridge offloads Tony Nguyen
2023-08-01 17:31 ` [PATCH net-next 2/7] ice: Support untagged VLAN traffic in br offload Tony Nguyen
2023-08-03  2:31   ` Jakub Kicinski [this message]
2023-08-03 15:58     ` Vladimir Oltean
2023-08-04  9:32       ` Drewek, Wojciech
2023-08-04 18:02         ` Tony Nguyen
2023-08-01 17:31 ` [PATCH net-next 3/7] ice: Add direction metadata Tony Nguyen
2023-08-01 17:31 ` [PATCH net-next 4/7] ice: Rename enum ice_pkt_flags values Tony Nguyen
2023-08-01 17:31 ` [PATCH net-next 5/7] ice: Add get C827 PHY index function Tony Nguyen
2023-08-03  2:28   ` Jakub Kicinski
2023-08-01 17:31 ` [PATCH net-next 6/7] ice: add FW load wait Tony Nguyen
2023-08-01 17:31 ` [PATCH net-next 7/7] ice: clean up __ice_aq_get_set_rss_lut() Tony Nguyen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230802193142.59fe5bf3@kernel.org \
    --to=kuba@kernel.org \
    --cc=anthony.l.nguyen@intel.com \
    --cc=horms@kernel.org \
    --cc=idosch@idosch.org \
    --cc=jiri@resnulli.us \
    --cc=netdev@vger.kernel.org \
    --cc=sujai.buvaneswaran@intel.com \
    --cc=vladbu@nvidia.com \
    --cc=vladimir.oltean@nxp.com \
    --cc=wojciech.drewek@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.