On Wed, Jan 20, 2021 at 04:28:43PM +0100, Martin Wilck wrote: > > If your use case that work was creating a rxe on a upper vlan device > > and relying on the tx of vlan layer to stuff the vlan, then the > > problem is how the core code manages the gid table. > > My use case was creating RXE on the physical device, creating VLANs on > top of the same physical device, and create RDMA connections over these > VLANs. This is what used to work. Hurm. So, since rxe never touches the vlan on the tx path, I always thought it was busted here. But, it extracts the netdev from the gid_attr and uses that netdev to tx the skb, which does stuff the correct vlan. And the rx path, though it is hard to find, does check the gid table with the vlan, again indirectly through the netdev So the removed hunk in do_complete is OK The hunk in rxe_udp_encap_recv is finding the ib_device to use from an uppser, also OK The stuff with rxe_dma_device is wrong, just delete that hunk completely. So sure, lets apply this - with the rxe_dma_device() part removed though. Jason