I think I figured out why the create/destroy_ah test cases are failing for rxe. The test_addr.py test uses sgid_index = 0 which is supposed to "always work", but when the device is created the rdma core fills in the first entry with the link local IPV6 address based on the port guid which is the swizzled MAC address. This doesn't match any of the interface addresses. Once RC traffic has passed the address gets replaced with a 'better' address and create_ah works. The test runs of you just pick sgid_index = 1 instead. This behavior is determined by the core not the driver. The driver doesn't manage the gid table AFAIK.