• Oleksandr Mazur's avatar
    net: marvell: prestera: implement software MDB entries allocation · deef0d6a
    Oleksandr Mazur authored
    Define bridge MDB entry (software entry):
      - entry that get's created upon receiving MDB management events
        (create/delete), that inherently defines a software entry,
        which can be enabled (offloaded to the HW) or disabled (removed
        from HW).
        This separation is done to achieve a better highlevel
        management of HW resources - software MDB entry could exist,
        while it's not necessarily should be configured on the HW.
        For example: by default, the Linux behavior would not replicate
        multicast traffic to multicast group members if there's no
        active multicast router and thus - no actual multicast traffic
        can be received/sent. So, until multicast router appears on the
        system no HW configuration should be applied, although SW MDB entries
        should be tracked.
        Another example would be altering state of 'multicast enabled' on
        the bridge: MC_DISABLED should invoke disabling / clearing multicast
        groups of specified bridge on the HW, yet upon receiving 'multicast
        enabled' event, driver should reconfigure any existing software MDB
        groups on the HW.
        Keeping track of software MDB entries in such way makes it possible
        to properly react on such events.
    Define bridge MDB port entry (software entry):
      - entry that helps keeping track (on software - driver - level) of which
        bridge mebemer interface joined any give MDB group;
    Co-developed-by: default avatarYevhen Orlov <yevhen.orlov@plvision.eu>
    Signed-off-by: default avatarYevhen Orlov <yevhen.orlov@plvision.eu>
    Signed-off-by: default avatarOleksandr Mazur <oleksandr.mazur@plvision.eu>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    deef0d6a
prestera_switchdev.c 45.5 KB