On Tue, Aug 11, 2020 at 06:04:15PM +0300, Mohammad Heib wrote: > Creating rxe device on top of vlan interface will create a non-functional device > that has an empty gids table and can't be used for rdma cm communication. > > This is caused by the logic in enum_all_gids_of_dev_cb()/is_eth_port_of_netdev(), > which only considers networks connected to "upper devices" of the configured > network device, resulting in an empty set of gids for a vlan interface, > and attempts to connect via this rdma device fail in cm_init_av_for_response > because no gids can be resolved. > > apparently, this behavior was implemented to fit the HW-RoCE devices that create > RoCE device per port, therefore RXE must behave the same like HW-RoCE devices > and create rxe device per real device only. > > In order to communicate via a vlan interface, the user must use the gid index of > the vlan address instead of creating rxe over vlan. > > Signed-off-by: Mohammad Heib <goody698@xxxxxxxxx> > --- > drivers/infiniband/sw/rxe/rxe.c | 6 ++++++ > drivers/infiniband/sw/rxe/rxe_sysfs.c | 6 ++++++ > 2 files changed, 12 insertions(+) It would be better to somehow fix things so the gid table was properly populated, but until that is done, blocking it is a reasonable thing to do. Applied to for-next, thanks Jason