Files
Centos-kernel-stream-10/net/switchdev
Mohammad Heib 9a5eca1916 bridge: No DEV_PATH_BR_VLAN_UNTAG_HW for dsa foreign
JIRA: https://issues.redhat.com/browse/RHEL-171990

commit 96450df197bda7de927b51372c13f1002d0e76e3
Author: Eric Woudstra <ericwouds@gmail.com>
Date:   Tue Mar 17 12:03:47 2026 +0100

    bridge: No DEV_PATH_BR_VLAN_UNTAG_HW for dsa foreign

    In network setup as below:

                 fastpath bypass
     .----------------------------------------.
    /                                          \
    |                        IP - forwarding    |
    |                       /                \  v
    |                      /                  wan ...
    |                     /
    |                     |
    |                     |
    |                   brlan.1
    |                     |
    |    +-------------------------------+
    |    |           vlan 1              |
    |    |                               |
    |    |     brlan (vlan-filtering)    |
    |    |               +---------------+
    |    |               |  DSA-SWITCH   |
    |    |    vlan 1     |               |
    |    |      to       |               |
    |    |   untagged    1     vlan 1    |
    |    +---------------+---------------+
    .         /                   \
     ----->wlan1                 lan0
           .                       .
           .                       ^
           ^                     vlan 1 tagged packets
         untagged packets

    br_vlan_fill_forward_path_mode() sets DEV_PATH_BR_VLAN_UNTAG_HW when
    filling in from brlan.1 towards wlan1. But it should be set to
    DEV_PATH_BR_VLAN_UNTAG in this case. Using BR_VLFLAG_ADDED_BY_SWITCHDEV
    is not correct. The dsa switchdev adds it as a foreign port.

    The same problem for all foreignly added dsa vlans on the bridge.

    First add the vlan, trying only native devices.
    If this fails, we know this may be a vlan from a foreign device.

    Use BR_VLFLAG_TAGGING_BY_SWITCHDEV to make sure DEV_PATH_BR_VLAN_UNTAG_HW
    is set only when there if no foreign device involved.

    Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
    Signed-off-by: Eric Woudstra <ericwouds@gmail.com>
    Link: https://patch.msgid.link/20260317110347.363875-1-ericwouds@gmail.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>

Signed-off-by: Mohammad Heib <mheib@redhat.com>
2026-05-12 11:09:45 +03:00
..