• Vladimir Oltean's avatar
    net: dsa: convert denying bridge VLAN with existing 8021q upper to PRECHANGEUPPER · 1ce39f0e
    Vladimir Oltean authored
    This is checking for the following order of operations, and makes sure
    to deny that configuration:
    
    ip link add link swp2 name swp2.100 type vlan id 100
    ip link add br0 type bridge vlan_filtering 1
    ip link set swp2 master br0
    bridge vlan add dev swp2 vid 100
    
    Instead of using vlan_for_each(), which looks at the VLAN filters
    installed with vlan_vid_add(), just track the 8021q uppers. This has the
    advantage of freeing up the vlan_vid_add() call for actual VLAN
    filtering.
    
    There is another change in this patch. The check is moved in slave.c,
    from switch.c. I don't think it makes sense to have this 8021q upper
    check for each switch port that gets notified of that VLAN addition
    (these include DSA links and CPU ports, we know those can't have 8021q
    uppers because they don't have a net_device registered for them), so
    just do it in slave.c, for that one slave interface.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1ce39f0e
slave.c 53.2 KB