blob: 3a6b18a9c87bd134902cb4ad0bb4ed1437d2d543 [file] [log] [blame]
import unittest
import errno
from tests.base import RCResources, UDResources, XRCResources
from tests.utils import traffic, xrc_traffic
from tests.base import RDMATestCase
from pyverbs.mr import MR
import pyverbs.enums as e
from pyverbs.pyverbs_error import PyverbsRDMAError
class RoUD(UDResources):
def create_mr(self):
self.mr = MR(self.pd, self.msg_size + self.GRH_SIZE,
e.IBV_ACCESS_LOCAL_WRITE | e.IBV_ACCESS_RELAXED_ORDERING)
class RoRC(RCResources):
def create_mr(self):
self.mr = MR(self.pd, self.msg_size,
e.IBV_ACCESS_LOCAL_WRITE | e.IBV_ACCESS_RELAXED_ORDERING)
class RoXRC(XRCResources):
def create_mr(self):
self.mr = MR(self.pd, self.msg_size,
e.IBV_ACCESS_LOCAL_WRITE | e.IBV_ACCESS_RELAXED_ORDERING)
class RoTestCase(RDMATestCase):
def setUp(self):
super(RoTestCase, self).setUp()
self.iters = 100
self.qp_dict = {'rc': RoRC, 'ud': RoUD, 'xrc': RoXRC}
def create_players(self, qp_type):
try:
client = self.qp_dict[qp_type](self.dev_name, self.ib_port,
self.gid_index)
server = self.qp_dict[qp_type](self.dev_name, self.ib_port,
self.gid_index)
except PyverbsRDMAError as ex:
if ex.error_code == errno.EOPNOTSUPP:
raise unittest.SkipTest('Create player with attrs {} is not supported'.format(qp_type))
raise ex
client.pre_run(server.psns, server.qps_num)
server.pre_run(client.psns, client.qps_num)
return client, server
def test_ro_rc_traffic(self):
client, server = self.create_players('rc')
traffic(client, server, self.iters, self.gid_index, self.ib_port)
def test_ro_ud_traffic(self):
client, server = self.create_players('ud')
traffic(client, server, self.iters, self.gid_index, self.ib_port)
def test_ro_xrc_traffic(self):
client, server = self.create_players('xrc')
xrc_traffic(client, server)