• Florian Fainelli's avatar
    net: dsa: bcm_sf2: Fix IPv6 rules and chain ID · 6c05561c
    Florian Fainelli authored
    We had several issues that would make the programming of IPv6 rules both
    inconsistent and error prone:
    
    - the chain ID that we would be asking the hardware to put in the
      packet's Broadcom tag would be off by one, it would return one of the
      two indexes, but not the one user-space specified
    
    - when an user specified a particular location to insert a CFP rule at,
      we would not be returning the same index, which would be confusing if
      nothing else
    
    - finally, like IPv4, it would be possible to overflow the last entry by
      re-programming it
    
    Fix this by swapping the usage of rule_index[0] and rule_index[1] where
    relevant in order to return a consistent and correct user-space
    experience.
    
    Fixes: ba0696c2 ("net: dsa: bcm_sf2: Add support for IPv6 CFP rules")
    Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6c05561c
bcm_sf2_cfp.c 31.6 KB