OSDN Git Service

Merge branch 'marvell-prestera-lag'
authorDavid S. Miller <davem@davemloft.net>
Thu, 10 Jun 2021 21:20:44 +0000 (14:20 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 10 Jun 2021 21:20:44 +0000 (14:20 -0700)
commit1b6c2151dbff7978198ff02ac2448954becd976f
treecabb174fe27fda3bce7b1d8a7734262a1665a973
parent950fd045d76c96ada8c7a6e80f1f4e40de4beb17
parent255213ca688767662a23d14f3fbf099c0e0b755d
Merge branch 'marvell-prestera-lag'

Vadym Kochan says:

====================
net: marvell: prestera: add LAG support

The following features are supported:

    - LAG basic operations
        - create/delete LAG
        - add/remove a member to LAG
        - enable/disable member in LAG
    - LAG Bridge support
    - LAG VLAN support
    - LAG FDB support

Limitations:

    - Only HASH lag tx type is supported
    - The Hash parameters are not configurable. They are applied
      during the LAG creation stage.
    - Enslaving a port to the LAG device that already has an
      upper device is not supported.

Changes extracted from:

    https://lkml.org/lkml/2021/2/3/877

and marked with "v2".

v2:

    There are 2 additional preparation patches which simplifies the
    netdev topology handling.

    1) Initialize 'lag' with NULL in prestera_lag_create()             [suggested by Vladimir Oltean]

    2) Use -ENOSPC in prestera_lag_port_add() if max lag               [suggested by Vladimir Oltean]
       numbers were reached.

    3) Do not propagate netdev events to prestera_switchdev            [suggested by Vladimir Oltean]
       but call bridge specific funcs. It simplifies the code.

    4) Check on info->link_up in prestera_netdev_port_lower_event()    [suggested by Vladimir Oltean]

    5) Return -EOPNOTSUPP in prestera_netdev_port_event() in case      [suggested by Vladimir Oltean]
       LAG hashing mode is not supported.

    6) Do not pass "lower" netdev to bridge join/leave functions.      [suggested by Vladimir Oltean]
       It is not need as offloading settings applied on particular
       physical port. It requires to do extra upper dev lookup
       in case port is in the LAG which is in the bridge on vlans add/del.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>