| from tests.base import RCResources, UDResources, XRCResources |
| from tests.test_mr import MRExRes |
| from tests.utils import traffic, xrc_traffic, rdma_traffic |
| from tests.base import RDMATestCase |
| from pyverbs.mr import MR |
| from pyverbs.libibverbs_enums import ibv_access_flags, ibv_wr_opcode |
| |
| class RoUD(UDResources): |
| def create_mr(self): |
| self.mr = MR(self.pd, self.msg_size + self.GRH_SIZE, |
| ibv_access_flags.IBV_ACCESS_LOCAL_WRITE | ibv_access_flags.IBV_ACCESS_RELAXED_ORDERING) |
| |
| |
| class RoRC(RCResources): |
| def create_mr(self): |
| self.mr = MR(self.pd, self.msg_size, |
| ibv_access_flags.IBV_ACCESS_LOCAL_WRITE | ibv_access_flags.IBV_ACCESS_RELAXED_ORDERING) |
| |
| |
| class RoXRC(XRCResources): |
| def create_mr(self): |
| self.mr = MR(self.pd, self.msg_size, |
| ibv_access_flags.IBV_ACCESS_LOCAL_WRITE | ibv_access_flags.IBV_ACCESS_RELAXED_ORDERING) |
| |
| |
| class RoTestCase(RDMATestCase): |
| def setUp(self): |
| super(RoTestCase, self).setUp() |
| self.iters = 100 |
| |
| def test_ro_rc_traffic(self): |
| self.create_players(RoRC) |
| traffic(**self.traffic_args) |
| |
| def test_ro_ud_traffic(self): |
| self.create_players(RoUD) |
| traffic(**self.traffic_args) |
| |
| def test_ro_xrc_traffic(self): |
| self.create_players(RoXRC) |
| xrc_traffic(self.client, self.server) |
| |
| def test_ro_mr_ex_traffic(self): |
| access = (ibv_access_flags.IBV_ACCESS_LOCAL_WRITE | |
| ibv_access_flags.IBV_ACCESS_REMOTE_WRITE | |
| ibv_access_flags.IBV_ACCESS_RELAXED_ORDERING) |
| self.create_players(MRExRes, mr_access=access) |
| rdma_traffic(**self.traffic_args, send_op=ibv_wr_opcode.IBV_WR_RDMA_WRITE) |