IB/core: Delete lower netdevice default GID entries in bonding scenario
authorParav Pandit <parav@mellanox.com>
Tue, 14 Aug 2018 07:36:17 +0000 (10:36 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Wed, 15 Aug 2018 19:33:19 +0000 (13:33 -0600)
commit408f1242d940773e9e97a544803b0dcf28b70d17
treebf5a3d30afc1c9921ee063f85c74cc8a75e1b063
parentb9f09866e0e964ab04968d44602fa3d9de5076f3
IB/core: Delete lower netdevice default GID entries in bonding scenario

When NETDEV_CHANGEUPPER event occurs, lower device is not yet established
as slave of the master, and when upper device is bond device, default GID
entries not deleted.

Due to this, when bond device is fully configured, default GID entries of
bond device cannot be added as default GID entries are occupied by the
lower netdevice. This is incorrect.

Default GID entries should really be of bond netdevice because in all RoCE
GIDs (default or IP), MAC address of the bond device will be used.  It is
confusing to have default GID of netdevice which is not really used for
any purpose.

Therefore, as first step, implement
(a) filter function which filters if a CHANGEUPPER event netdevice and
    associated upper device is master device or not.
(b) callback function which deletes the default GIDs of lower (event
    netdevice).

Signed-off-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/roce_gid_mgmt.c