1212from tests .base import UDResources , RCResources , RDMATestCase , XRCResources
1313import tests .utils as u
1414
15-
16- def create_qp_ex (agr_obj , qp_type , send_flags ):
17- if qp_type == e .IBV_QPT_XRC_SEND :
18- cap = QPCap (max_send_wr = agr_obj .num_msgs , max_recv_wr = 0 , max_recv_sge = 0 ,
19- max_send_sge = 1 )
20- else :
21- cap = QPCap (max_send_wr = agr_obj .num_msgs , max_recv_wr = agr_obj .num_msgs ,
22- max_recv_sge = 1 , max_send_sge = 1 )
23- qia = QPInitAttrEx (cap = cap , qp_type = qp_type , scq = agr_obj .cq ,
24- rcq = agr_obj .cq , pd = agr_obj .pd , send_ops_flags = send_flags ,
25- comp_mask = e .IBV_QP_INIT_ATTR_PD |
26- e .IBV_QP_INIT_ATTR_SEND_OPS_FLAGS )
27- qp_attr = QPAttr (port_num = agr_obj .ib_port )
28- if qp_type == e .IBV_QPT_UD :
29- qp_attr .qkey = agr_obj .UD_QKEY
30- qp_attr .pkey_index = agr_obj .UD_PKEY_INDEX
31- if qp_type == e .IBV_QPT_RC :
32- qp_attr .qp_access_flags = e .IBV_ACCESS_REMOTE_WRITE | \
33- e .IBV_ACCESS_REMOTE_READ | \
34- e .IBV_ACCESS_REMOTE_ATOMIC | \
35- e .IBV_ACCESS_FLUSH_GLOBAL | \
36- e .IBV_ACCESS_FLUSH_PERSISTENT
37- try :
38- # We don't have capability bits for this
39- qp = QPEx (agr_obj .ctx , qia , qp_attr )
40- except PyverbsRDMAError as ex :
41- if ex .error_code == errno .EOPNOTSUPP :
42- raise unittest .SkipTest ('Extended QP is not supported on this device' )
43- raise ex
44- if qp_type != e .IBV_QPT_XRC_SEND :
45- agr_obj .qps .append (qp )
46- agr_obj .qps_num .append (qp .qp_num )
47- agr_obj .psns .append (random .getrandbits (24 ))
48- else :
49- return qp
50-
51-
5215class QpExUDSend (UDResources ):
5316 def create_qps (self ):
54- create_qp_ex (self , e .IBV_QPT_UD , e .IBV_QP_EX_WITH_SEND )
17+ u . create_qp_ex (self , e .IBV_QPT_UD , e .IBV_QP_EX_WITH_SEND )
5518
5619
5720class QpExRCSend (RCResources ):
5821 def create_qps (self ):
59- create_qp_ex (self , e .IBV_QPT_RC , e .IBV_QP_EX_WITH_SEND )
22+ u . create_qp_ex (self , e .IBV_QPT_RC , e .IBV_QP_EX_WITH_SEND )
6023
6124
6225class QpExXRCSend (XRCResources ):
@@ -72,20 +35,20 @@ def create_qps(self):
7235 recv_qp = QP (self .ctx , attr_ex , qp_attr )
7336 self .rqp_lst .append (recv_qp )
7437
75- send_qp = create_qp_ex (self , e .IBV_QPT_XRC_SEND , e .IBV_QP_EX_WITH_SEND )
38+ send_qp = u . create_qp_ex (self , e .IBV_QPT_XRC_SEND , e .IBV_QP_EX_WITH_SEND )
7639 self .sqp_lst .append (send_qp )
7740 self .qps_num .append ((recv_qp .qp_num , send_qp .qp_num ))
7841 self .psns .append (random .getrandbits (24 ))
7942
8043
8144class QpExUDSendImm (UDResources ):
8245 def create_qps (self ):
83- create_qp_ex (self , e .IBV_QPT_UD , e .IBV_QP_EX_WITH_SEND_WITH_IMM )
46+ u . create_qp_ex (self , e .IBV_QPT_UD , e .IBV_QP_EX_WITH_SEND_WITH_IMM )
8447
8548
8649class QpExRCSendImm (RCResources ):
8750 def create_qps (self ):
88- create_qp_ex (self , e .IBV_QPT_RC , e .IBV_QP_EX_WITH_SEND_WITH_IMM )
51+ u . create_qp_ex (self , e .IBV_QPT_RC , e .IBV_QP_EX_WITH_SEND_WITH_IMM )
8952
9053
9154class QpExXRCSendImm (XRCResources ):
@@ -101,7 +64,7 @@ def create_qps(self):
10164 recv_qp = QP (self .ctx , attr_ex , qp_attr )
10265 self .rqp_lst .append (recv_qp )
10366
104- send_qp = create_qp_ex (self , e .IBV_QPT_XRC_SEND ,
67+ send_qp = u . create_qp_ex (self , e .IBV_QPT_XRC_SEND ,
10568 e .IBV_QP_EX_WITH_SEND_WITH_IMM )
10669 self .sqp_lst .append (send_qp )
10770 self .qps_num .append ((recv_qp .qp_num , send_qp .qp_num ))
@@ -112,7 +75,7 @@ class QpExRCFlush(RCResources):
11275 ptype = e .IBV_FLUSH_GLOBAL
11376 level = e .IBV_FLUSH_RANGE
11477 def create_qps (self ):
115- create_qp_ex (self , e .IBV_QPT_RC , e .IBV_QP_EX_WITH_FLUSH | e .IBV_QP_EX_WITH_RDMA_WRITE )
78+ u . create_qp_ex (self , e .IBV_QPT_RC , e .IBV_QP_EX_WITH_FLUSH | e .IBV_QP_EX_WITH_RDMA_WRITE )
11679
11780 def create_mr (self ):
11881 try :
@@ -125,23 +88,23 @@ def create_mr(self):
12588
12689class QpExRCAtomicWrite (RCResources ):
12790 def create_qps (self ):
128- create_qp_ex (self , e .IBV_QPT_RC , e .IBV_QP_EX_WITH_ATOMIC_WRITE )
91+ u . create_qp_ex (self , e .IBV_QPT_RC , e .IBV_QP_EX_WITH_ATOMIC_WRITE )
12992
13093 def create_mr (self ):
13194 self .mr = u .create_custom_mr (self , e .IBV_ACCESS_REMOTE_WRITE )
13295
13396
13497class QpExRCRDMAWrite (RCResources ):
13598 def create_qps (self ):
136- create_qp_ex (self , e .IBV_QPT_RC , e .IBV_QP_EX_WITH_RDMA_WRITE )
99+ u . create_qp_ex (self , e .IBV_QPT_RC , e .IBV_QP_EX_WITH_RDMA_WRITE )
137100
138101 def create_mr (self ):
139102 self .mr = u .create_custom_mr (self , e .IBV_ACCESS_REMOTE_WRITE )
140103
141104
142105class QpExRCRDMAWriteImm (RCResources ):
143106 def create_qps (self ):
144- create_qp_ex (self , e .IBV_QPT_RC ,
107+ u . create_qp_ex (self , e .IBV_QPT_RC ,
145108 e .IBV_QP_EX_WITH_RDMA_WRITE_WITH_IMM )
146109
147110 def create_mr (self ):
@@ -150,29 +113,29 @@ def create_mr(self):
150113
151114class QpExRCRDMARead (RCResources ):
152115 def create_qps (self ):
153- create_qp_ex (self , e .IBV_QPT_RC , e .IBV_QP_EX_WITH_RDMA_READ )
116+ u . create_qp_ex (self , e .IBV_QPT_RC , e .IBV_QP_EX_WITH_RDMA_READ )
154117
155118 def create_mr (self ):
156119 self .mr = u .create_custom_mr (self , e .IBV_ACCESS_REMOTE_READ )
157120
158121
159122class QpExRCAtomicCmpSwp (RCResources ):
160123 def create_qps (self ):
161- create_qp_ex (self , e .IBV_QPT_RC ,
124+ u . create_qp_ex (self , e .IBV_QPT_RC ,
162125 e .IBV_QP_EX_WITH_ATOMIC_CMP_AND_SWP )
163126 self .mr = u .create_custom_mr (self , e .IBV_ACCESS_REMOTE_ATOMIC )
164127
165128
166129class QpExRCAtomicFetchAdd (RCResources ):
167130 def create_qps (self ):
168- create_qp_ex (self , e .IBV_QPT_RC ,
131+ u . create_qp_ex (self , e .IBV_QPT_RC ,
169132 e .IBV_QP_EX_WITH_ATOMIC_FETCH_AND_ADD )
170133 self .mr = u .create_custom_mr (self , e .IBV_ACCESS_REMOTE_ATOMIC )
171134
172135
173136class QpExRCBindMw (RCResources ):
174137 def create_qps (self ):
175- create_qp_ex (self , e .IBV_QPT_RC , e .IBV_QP_EX_WITH_RDMA_WRITE |
138+ u . create_qp_ex (self , e .IBV_QPT_RC , e .IBV_QP_EX_WITH_RDMA_WRITE |
176139 e .IBV_QP_EX_WITH_BIND_MW )
177140
178141 def create_mr (self ):
0 commit comments