• Vlad Yasevich's avatar
    bridge: Check if vlan filtering is enabled only once. · 20adfa1a
    Vlad Yasevich authored
    The bridge code checks if vlan filtering is enabled on both
    ingress and egress.   When the state flip happens, it
    is possible for the bridge to currently be forwarding packets
    and forwarding behavior becomes non-deterministic.  Bridge
    may drop packets on some interfaces, but not others.
    
    This patch solves this by caching the filtered state of the
    packet into skb_cb on ingress.  The skb_cb is guaranteed to
    not be over-written between the time packet entres bridge
    forwarding path and the time it leaves it.  On egress, we
    can then check the cached state to see if we need to
    apply filtering information.
    Signed-off-by: default avatarVladislav Yasevich <vyasevic@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    20adfa1a
br_vlan.c 11.9 KB