Lines Matching refs:rai

49 			       const struct rdma_addrinfo *rai)
52 if (rai->ai_flags & RAI_PASSIVE)
54 if (rai->ai_flags & RAI_NUMERICHOST)
56 if (rai->ai_family != AF_IB)
57 ai->ai_family = rai->ai_family;
59 switch (rai->ai_qp_type) {
71 switch (rai->ai_port_space) {
87 if (rai->ai_flags & RAI_PASSIVE) {
88 ai->ai_addrlen = rai->ai_src_len;
89 ai->ai_addr = rai->ai_src_addr;
91 ai->ai_addrlen = rai->ai_dst_len;
92 ai->ai_addr = rai->ai_dst_addr;
94 ai->ai_canonname = rai->ai_dst_canonname;
144 static int ucma_convert_to_rai(struct rdma_addrinfo *rai,
151 rai->ai_qp_type = hints->ai_qp_type;
155 rai->ai_qp_type = IBV_QPT_RC;
158 rai->ai_qp_type = IBV_QPT_UD;
164 rai->ai_port_space = hints->ai_port_space;
168 rai->ai_port_space = RDMA_PS_TCP;
171 rai->ai_port_space = RDMA_PS_UDP;
177 rai->ai_flags = RAI_PASSIVE;
179 rai->ai_src_canonname = strdup(ai->ai_canonname);
183 rai->ai_family = AF_IB;
184 ret = ucma_convert_in6(rai->ai_port_space,
185 (struct sockaddr_ib **) &rai->ai_src_addr,
186 &rai->ai_src_len,
190 rai->ai_family = ai->ai_family;
191 ret = ucma_copy_addr(&rai->ai_src_addr, &rai->ai_src_len,
196 rai->ai_dst_canonname = strdup(ai->ai_canonname);
200 rai->ai_family = AF_IB;
201 ret = ucma_convert_in6(rai->ai_port_space,
202 (struct sockaddr_ib **) &rai->ai_dst_addr,
203 &rai->ai_dst_len,
207 rai->ai_family = ai->ai_family;
208 ret = ucma_copy_addr(&rai->ai_dst_addr, &rai->ai_dst_len,
217 struct rdma_addrinfo *rai)
232 ret = ucma_convert_to_rai(rai, hints, ai);
241 struct rdma_addrinfo *rai;
251 rai = calloc(1, sizeof(*rai));
252 if (!rai)
259 ret = ucma_getaddrinfo(node, service, hints, rai);
261 rai->ai_flags = hints->ai_flags;
262 rai->ai_family = hints->ai_family;
263 rai->ai_qp_type = hints->ai_qp_type;
264 rai->ai_port_space = hints->ai_port_space;
266 ret = ucma_copy_addr(&rai->ai_dst_addr, &rai->ai_dst_len,
273 if (!rai->ai_src_len && hints->ai_src_len) {
274 ret = ucma_copy_addr(&rai->ai_src_addr, &rai->ai_src_len,
280 if (!(rai->ai_flags & RAI_PASSIVE))
281 ucma_ib_resolve(&rai, hints);
283 *res = rai;
287 rdma_freeaddrinfo(rai);
293 struct rdma_addrinfo *rai;
296 rai = res;
299 if (rai->ai_connect)
300 free(rai->ai_connect);
302 if (rai->ai_route)
303 free(rai->ai_route);
305 if (rai->ai_src_canonname)
306 free(rai->ai_src_canonname);
308 if (rai->ai_dst_canonname)
309 free(rai->ai_dst_canonname);
311 if (rai->ai_src_addr)
312 free(rai->ai_src_addr);
314 if (rai->ai_dst_addr)
315 free(rai->ai_dst_addr);
317 free(rai);