• George McCollister's avatar
    drivers: net: cpsw: Set SECURE for dual_emac ucast · 56887149
    George McCollister authored
    Prior to this patch, sending a packet with the source MAC address of one
    of the CPSW interfaces to one of the CPSW slave ports while it's configured in
    dual_emac mode would update the port_num field of the VLAN/Unicast Address
    Table Entry. This would cause it to discard all incoming traffic addressed to
    that MAC address, essentially rendering the port useless until the ALE table is
    cleared (by starting and stopping the interface or rebooting.)
    
    For example, if eth0 has a MAC address of 90:59:af:8f:43:e9 it will have
    an ALE table entry:
    
    00 00 00 00 59 90 02 30 e9 43 8f af
    (VLAN Addr vlan_id=2 unicast type=0 port_num=0 addr=90:59:af:8f:43:e9)
    
    If you configure another device with the same MAC address and connect it
    to the first CPSW slave port and send some traffic the ALE table entry
    becomes:
    
    04 00 00 00 59 90 02 30 e9 43 8f af
    (VLAN Addr vlan_id=2 unicast type=0 port_num=1 addr=90:59:af:8f:43:e9)
    
    >From this point forward all incoming traffic addressed to
    90:59:af:8f:43:e9 will be dropped.
    
    Setting the SECURE bit for the VLAN/Unicast address table entry for each
    interface's MAC address corrects the problem.
    Signed-off-by: default avatarGeorge McCollister <george.mccollister@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    56887149
cpsw.c 69 KB