RE: [PATCH iwl-next v2 5/8] ice: update mac,vlan rules when toggling between VEB and VEPA

Loktionov, Aleksandr
2025-11-25T08:52:57Z

> -----Original Message-----
> From: Slepecki, Jakub <jakub.slepecki@intel.com>
> Sent: Tuesday, November 25, 2025 9:35 AM
> To: intel-wired-lan@lists.osuosl.org
> Cc: linux-kernel@vger.kernel.org; netdev@vger.kernel.org; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>; michal.swiatkowski@linux.intel.com; Slepecki,
> Jakub <jakub.slepecki@intel.com>; Loktionov, Aleksandr
> <aleksandr.loktionov@intel.com>
> Subject: [PATCH iwl-next v2 5/8] ice: update mac,vlan rules when toggling
> between VEB and VEPA
>
> When changing into VEPA mode MAC rules are modified to forward all traffic
> to the wire instead of allowing some packets to go into the loopback.
> MAC,VLAN rules may and will also be used to forward loopback traffic in VEB,
> so when we switch to VEPA, we want them to behave similarly to MAC-only
> rules.
>
> ice_vsi_update_bridge_mode() will now attempt a rollback of switch filters
> in case an update fails. If the rollback also fails, we will now return the
> rollback error instead of the initial error.
>
> Signed-off-by: Jakub Slepecki <jakub.slepecki@intel.com>
>
> ---
> Testing hints:
> MAC,VLAN rules are created only if entire series is applied.
> The easiest way to test that rules were adjusted is to run traffic
> and observe what packets are sent to LAN. VEPA is expected to behave
> same as before the series. VEB is expected to (a) behave like VEPA
> if loopback traffic would cross VLANs, or (b) behave as before.
> Traffic from/to external hosts is expected to remain unchanged.
>
Better to provide exact bash commands.
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>

> Dropping reviewed-by Michał due to changes.
>
> Changes in v2:
> - Close open parenthesis in ice_vsi_update_bridge_mode() description.
> - Explain returns in ice_vsi_update_bridge_mode().
> ---
> drivers/net/ethernet/intel/ice/ice_main.c | 48 +++++++++++++++++----
> drivers/net/ethernet/intel/ice/ice_switch.c | 8 ++--
> drivers/net/ethernet/intel/ice/ice_switch.h | 3 +-
> 3 files changed, 46 insertions(+), 13 deletions(-)
>