• Mohammad Heib's avatar
    RDMA/rxe: prevent rxe creation on top of vlan interface · fd49ddaf
    Mohammad Heib authored
    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.
    
    Link: https://lore.kernel.org/r/20200811150415.3693-1-goody698@gmail.comSigned-off-by: default avatarMohammad Heib <goody698@gmail.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
    fd49ddaf
rxe_sysfs.c 3.68 KB