Lines Matching defs:ibchanp

102 	ibcma_chan_t		*ibchanp;
107 ibchanp = &(chanp->chan_ib);
109 if (ibchanp->chan_mcast_cnt) {
116 entry = remove_genlist_head(&ibchanp->chan_mcast_list);
121 status = ibt_leave_mcg(ibchanp->chan_devp->dev_sgid,
129 entry = remove_genlist_head(&ibchanp->chan_mcast_list);
132 if (ibchanp->chan_devp) {
133 kmem_free(ibchanp->chan_devp, sizeof (ibcma_dev_t));
134 ibchanp->chan_devp = NULL;
136 if (ibchanp->chan_pathp) {
137 kmem_free(ibchanp->chan_pathp, ibchanp->chan_path_size);
138 ibchanp->chan_pathp = NULL;
148 ibcma_chan_t *ibchanp;
155 ibchanp = &(chanp->chan_ib);
157 sockaddr2ibtaddr_port(idp, addr, &ibchanp->chan_local_addr, &port);
158 ibchanp->chan_addr_flag = IBCMA_LOCAL_ADDR_SET_FLAG;
165 ibchanp->chan_port = port;
166 ibchanp->chan_addr_flag |= IBCMA_LOCAL_ADDR_IFADDRANY;
170 ret = ibcma_query_local_ip(idp, chanp, ibchanp);
172 init_genlist(&ibchanp->chan_mcast_list);
173 ibchanp->chan_sid = ibt_get_ip_sid(idp->ps, port);
176 ibchanp->chan_sid, idp->ps, port);
177 ibchanp->chan_port = port;
191 ibcma_chan_t *ibchanp;
199 ibchanp = &(chanp->chan_ib);
205 if ((ibchanp->chan_addr_flag & IBCMA_LOCAL_ADDR_SET_FLAG) == 0 &&
207 sockaddr2ibtaddr_port(idp, src_addr, &ibchanp->chan_local_addr,
209 ibchanp->chan_addr_flag |= IBCMA_LOCAL_ADDR_SET_FLAG;
211 ibchanp->chan_sid = ibt_get_ip_sid(idp->ps, port);
214 ibchanp->chan_sid, idp->ps, port);
215 ibchanp->chan_port = port;
219 sockaddr2ibtaddr_port(idp, dst_addr, &ibchanp->chan_remote_addr,
221 ibchanp->chan_addr_flag |= IBCMA_REMOTE_ADDR_SET_FLAG;
222 if (ibchanp->chan_sid == 0) {
224 ibchanp->chan_sid = ibt_get_ip_sid(idp->ps, port);
225 ibchanp->chan_port = port;
227 "SID %llx , ps %x, port %x", ibchanp->chan_sid,
229 init_genlist(&ibchanp->chan_mcast_list);
237 remote_addr = htonl((ibchanp->chan_remote_addr).un.ip4addr);
238 if ((ibchanp->chan_remote_addr).family == AF_INET &&
240 if (ibchanp->chan_devp) {
251 ibchanp->chan_devp->dev_node_guid));
257 if ((ret = ibcma_get_paths(idp, chanp, ibchanp)) == 0)
292 ibcma_chan_t *ibchanp;
298 ibchanp = &chanp->chan_ib;
302 if (ibchanp->chan_qpmodifyflag == 1) {
312 devp = ibchanp->chan_devp;
336 ibt_addsvect2ah(&ibchanp->chan_rcreq_addr, &qpattr->ah_attr);
338 ((ibchanp->chan_rtr_data).req_path_mtu);
339 qpattr->dest_qp_num = ibchanp->chan_rcreq_qpn;
340 qpattr->rq_psn = (ibchanp->chan_rtr_data).req_rq_psn;
341 qpattr->max_dest_rd_atomic = ibchanp->chan_rcreq_ra_in;
343 (ibchanp->chan_rtr_data).req_rnr_nak_time;
361 ibcma_chan_t *ibchanp;
366 ibchanp = &chanp->chan_ib;
371 if (ibchanp->chan_devp == NULL || ibchanp->chan_pathp == NULL) {
376 ASSERT(ibchanp->chan_devp);
378 ibchanp->chan_qpmodifyflag = 1;
380 ret = ibcma_tcp_connect(idp, ibchanp, conn_param);
382 ret = ibcma_udp_connect(idp, ibchanp, conn_param);
622 ibcma_chan_t *ibchanp;
629 ibchanp = &chanp->chan_ib;
644 ibchanp->chan_qpmodifyflag = 1;
875 ibcma_chan_t *ibchanp;
884 ibchanp = &chanp->chan_ib;
885 devp = ibchanp->chan_devp;
938 status = ibt_join_mcg(ibchanp->chan_devp->dev_sgid,
947 (void) add_genlist(&ibchanp->chan_mcast_list, (uintptr_t)ibmcastp,
949 ibchanp->chan_mcast_cnt++;
958 ibcma_chan_t *ibchanp;
964 ibchanp = &chanp->chan_ib;
965 genlist_for_each(entry, &ibchanp->chan_mcast_list) {
970 delete_genlist(&ibchanp->chan_mcast_list, entry);
980 ibchanp->chan_mcast_cnt--;
982 status = ibt_leave_mcg(ibchanp->chan_devp->dev_sgid,
993 ibcma_tcp_connect(struct rdma_cm_id *idp, ibcma_chan_t *ibchanp,
1003 ibchanp, conn_paramp);
1008 args.oc_path = ibchanp->chan_pathp;
1009 (args.oc_path)->pi_sid = ibchanp->chan_sid;
1018 bcopy(&ibchanp->chan_local_addr, &ipcm_info.src_addr,
1020 bcopy(&ibchanp->chan_remote_addr, &ipcm_info.dst_addr,
1022 ipcm_info.src_port = ibchanp->chan_port;
1089 ibcma_udp_connect(struct rdma_cm_id *idp, ibcma_chan_t *ibchanp,
1100 devp = ibchanp->chan_devp;
1104 pathp = ibchanp->chan_pathp;
1121 bcopy((void *)&ibchanp->chan_local_addr, &ipcm_info.src_addr,
1123 bcopy((void *)&ibchanp->chan_remote_addr, &ipcm_info.dst_addr,
1125 ipcm_info.src_port = ibchanp->chan_port;
1135 attr.ud_sid = ibchanp->chan_sid;
1155 ibcma_init_devinfo(struct rdma_cm_id *idp, ibcma_chan_t *ibchanp,
1164 if (ibchanp->chan_devp)
1185 ibchanp->chan_devp = devp;
1199 ibcma_chan_t *ibchanp)
1206 if (ibchanp->chan_pathp != NULL) {
1209 local_addrp = &ibchanp->chan_local_addr;
1225 if (ibcma_init_devinfo(idp, ibchanp, &local_path)) {
1248 ibcma_chan_t *ibchanp = &(chanp->chan_ib);
1259 ibchanp->chan_path_size = 2 * sizeof (ibt_path_info_t);
1260 ibchanp->chan_pathp = kmem_zalloc(ibchanp->chan_path_size, KM_SLEEP);
1261 bcopy(pathp, ibchanp->chan_pathp, num_paths *
1263 ibchanp->chan_numpaths = num_paths;
1265 if (ibchanp->chan_devp == NULL && src_ip_p) {
1268 bcopy(&(src_ip_p[0].ip_primary), &ibchanp->chan_local_addr,
1271 ibchanp, pathp)) {
1272 kmem_free(ibchanp->chan_pathp,
1273 ibchanp->chan_path_size);
1280 if (ibchanp->chan_devp == NULL) {
1286 devp = ibchanp->chan_devp;
1287 (idp->route).num_paths = ibchanp->chan_numpaths;
1289 ibchanp->chan_numpaths, KM_SLEEP);
1292 for (i = 0; i < ibchanp->chan_numpaths; i++)
1293 ibt_path2sa_path(&((ibchanp->chan_pathp)[i]),
1302 ibcma_chan_t *ibchanp)
1308 ASSERT(ibchanp);
1311 ibchanp);
1314 bcopy(&ibchanp->chan_remote_addr, dst_addrp, sizeof (ibt_ip_addr_t));
1316 bcopy(&ibchanp->chan_local_addr, &path_attr.ipa_src_ip,
1350 ibcma_chan_t *ibchanp, *event_ibchanp;
1362 ibchanp = &chanp->chan_ib;
1485 ibt_path2ah(ibchanp->chan_pathp, &ud_paramp->ah_attr);
1527 ibcma_chan_t *event_ibchanp, *ibchanp;
1543 ibchanp = &chanp->chan_ib;
1597 bcopy(&info.dst_addr, &ibchanp->chan_remote_addr,
2161 ibcma_chan_t *ibchanp;
2169 ibchanp = &(chanp->chan_ib);
2181 ibchanp->chan_devp = devp;
2420 ibcma_chan_t *ibchanp, *new_ibchanp;
2428 ibchanp = &chanp->chan_ib;
2429 if (ibchanp->chan_devp) {
2435 bcopy(ibchanp->chan_devp, devp, sizeof (ibcma_dev_t));
2438 if (ibchanp->chan_pathp && ibchanp->chan_numpaths &&
2439 ibchanp->chan_path_size) {
2441 ibchanp->chan_path_size, KM_SLEEP);
2442 bcopy(ibchanp->chan_pathp, new_ibchanp->chan_pathp,
2443 ibchanp->chan_path_size);
2444 new_ibchanp->chan_path_size = ibchanp->chan_path_size;
2445 new_ibchanp->chan_numpaths = ibchanp->chan_numpaths;
2447 bcopy(&ibchanp->chan_local_addr, &new_ibchanp->chan_local_addr,
2449 bcopy(&ibchanp->chan_remote_addr, &new_ibchanp->chan_remote_addr,
2451 new_ibchanp->chan_port = ibchanp->chan_port;
2452 new_ibchanp->chan_sid = ibchanp->chan_sid;