[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <98e96407-95be-493b-844e-66c33e59aef1@intel.com>
Date: Fri, 16 Feb 2024 14:50:35 -0800
From: Jacob Keller <jacob.e.keller@...el.com>
To: Tony Nguyen <anthony.l.nguyen@...el.com>, <davem@...emloft.net>,
<kuba@...nel.org>, <pabeni@...hat.com>, <edumazet@...gle.com>,
<netdev@...r.kernel.org>
CC: Ivan Vecera <ivecera@...hat.com>, Wojciech Drewek
<wojciech.drewek@...el.com>, Pucha Himasekhar Reddy
<himasekharx.reddy.pucha@...el.com>, Simon Horman <horms@...nel.org>
Subject: Re: [PATCH net-next 5/5] i40e: Remove VEB recursion
On 2/16/2024 1:42 PM, Tony Nguyen wrote:
> From: Ivan Vecera <ivecera@...hat.com>
>
> The VEB (virtual embedded switch) as a switch element can be
> connected according datasheet though its uplink to:
> - Physical port
> - Port Virtualizer (not used directly by i40e driver but can
> be present in MFP mode where the physical port is shared
> between PFs)
> - No uplink (aka floating VEB)
>
> But VEB uplink cannot be connected to another VEB and any attempt
> to do so results in:
>
> "i40e 0000:02:00.0: couldn't add VEB, err -EIO aq_err I40E_AQ_RC_ENOENT"
>
> that indicates "the uplink SEID does not point to valid element".
>
> Remove this logic from the driver code this way:
>
> 1) For debugfs only allow to build floating VEB (uplink_seid == 0)
> or main VEB (uplink_seid == mac_seid)
> 2) Do not recurse in i40e_veb_link_event() as no VEB cannot have
> sub-VEBs
> 3) Ditto for i40e_veb_rebuild() + simplify the function as we know
> that the VEB for rebuild can be only the main LAN VEB or some
> of the floating VEBs
> 4) In i40e_rebuild() there is no need to check veb->uplink_seid
> as the possible ones are 0 and MAC SEID
> 5) In i40e_vsi_release() do not take into account VEBs whose
> uplink is another VEB as this is not possible
> 6) Remove veb_idx field from i40e_veb as a VEB cannot have
> sub-VEBs
>
Reviewed-by: Jacob Keller <jacob.e.keller@...el.com>
Powered by blists - more mailing lists