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

From: Loktionov, Aleksandr

Date: Tue Nov 25 2025 - 03:54:19 EST




> -----Original Message-----
> From: Slepecki, Jakub <jakub.slepecki@xxxxxxxxx>
> Sent: Tuesday, November 25, 2025 9:35 AM
> To: intel-wired-lan@xxxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; Kitszel,
> Przemyslaw <przemyslaw.kitszel@xxxxxxxxx>; Nguyen, Anthony L
> <anthony.l.nguyen@xxxxxxxxx>; michal.swiatkowski@xxxxxxxxxxxxxxx; Slepecki,
> Jakub <jakub.slepecki@xxxxxxxxx>; Loktionov, Aleksandr
> <aleksandr.loktionov@xxxxxxxxx>
> 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@xxxxxxxxx>
>
> ---
> 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@xxxxxxxxx>


> 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(-)
>