From: Leon Romanovsky <leonro@xxxxxxxxxxxx> >From Parav: Currently RoCE LAG/Bonding has following issues. 1. When NETDEV_CHANGEUPPER occurs, netdevice_event_changeupper() attempts to delete default GID entries of the upper device, but they are actually added based on lower netdev, so bonding_default_del_cmd() fails to delete such entries. 2. Due to that when master bond device is fully setup, its default GID entries cannot be added because old entries exist. This is incorrect and confusing; when using bonding/lag mode, always add the default GID entries for the master bond device. So implement a filter, callback function to detect the master-slave relationship in bonding mode and delete the lower netdev's default GIDs and add master bond device's default GIDs. 3. When FAILOVER event occurs, it cannot delete the master bond device's default GIDs they are of lower netdevice during NETDEV_UP event handling. So always add default GIDs of master bond netdevice if bonding is used for rdma device's netdevice. 4. When MAC address is changed, it only updates the default GID entries. IP based GIDs are untouched, but it is incorrect. Some HCAs such as mlx5 GIDs contains the MAC address as well at HCA hardware level. Therefore update (delete/add) IP based GIDs as well. Thanks Parav Pandit (7): IB/core: Add comment for change upper netevent handling IB/core: Avoid confusing del_netdev_default_ips IB/core: Delete lower netdevice default GID entries in bonding scenario IB/core: Consider adding default GIDs of bond device IB/core: Add default GIDs of the bond master netdev IB/core: Update GID entries for netdevice whose mac address changes IB/core: Change filter function return type from int to bool drivers/infiniband/core/core_priv.h | 4 +- drivers/infiniband/core/roce_gid_mgmt.c | 301 +++++++++++++++++++++++--------- 2 files changed, 220 insertions(+), 85 deletions(-) -- 2.14.4 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html