Lines Matching refs:ss

87 eib_vnic_create(eib_t *ss, uint8_t *macaddr, uint16_t vlan, eib_vnic_t **vnicp,  in eib_vnic_create()  argument
94 eib_vnic_modify_enter(ss, EIB_VN_BEING_CREATED); in eib_vnic_create()
104 if (eib_data_lookup_vnic(ss, macaddr, vlan, vnicp, in eib_vnic_create()
106 EIB_DPRINTF_WARN(ss->ei_instance, "eib_vnic_create: " in eib_vnic_create()
112 eib_vnic_modify_exit(ss, EIB_VN_BEING_CREATED); in eib_vnic_create()
115 EIB_DPRINTF_WARN(ss->ei_instance, "eib_vnic_create: " in eib_vnic_create()
123 eib_vnic_modify_exit(ss, EIB_VN_BEING_CREATED); in eib_vnic_create()
132 vnic->vn_ss = ss; in eib_vnic_create()
142 if (eib_vnic_get_instance(ss, &vnic->vn_instance) != EIB_E_SUCCESS) { in eib_vnic_create()
157 vnic->vn_id = (uint16_t)EIB_VNIC_ID(ss->ei_instance, vnic->vn_instance); in eib_vnic_create()
162 if (eib_vnic_create_common(ss, vnic, err) != EIB_E_SUCCESS) in eib_vnic_create()
174 eib_vnic_modify_exit(ss, EIB_VN_BEING_CREATED); in eib_vnic_create()
178 eib_rb_vnic_create(ss, vnic, progress); in eib_vnic_create()
179 eib_vnic_modify_exit(ss, EIB_VN_BEING_CREATED); in eib_vnic_create()
184 eib_vnic_delete(eib_t *ss, eib_vnic_t *vnic) in eib_vnic_delete() argument
186 eib_vnic_modify_enter(ss, EIB_VN_BEING_DELETED); in eib_vnic_delete()
187 eib_rb_vnic_create(ss, vnic, ~0); in eib_vnic_delete()
188 eib_vnic_modify_exit(ss, EIB_VN_BEING_DELETED); in eib_vnic_delete()
193 eib_vnic_wait_for_login_ack(eib_t *ss, eib_vnic_t *vnic, int *err) in eib_vnic_wait_for_login_ack() argument
224 eib_vnic_login_ack(eib_t *ss, eib_login_data_t *ld) in eib_vnic_login_ack() argument
252 mutex_enter(&ss->ei_vnic_lock); in eib_vnic_login_ack()
253 if ((vnic = ss->ei_vnic_pending) == NULL) { in eib_vnic_login_ack()
254 mutex_exit(&ss->ei_vnic_lock); in eib_vnic_login_ack()
257 mutex_exit(&ss->ei_vnic_lock); in eib_vnic_login_ack()
260 mutex_exit(&ss->ei_vnic_lock); in eib_vnic_login_ack()
296 EIB_DPRINTF_WARN(ss->ei_instance, "eib_vnic_login_ack: " in eib_vnic_login_ack()
299 } else if (ld->ld_vhub_mtu > (ss->ei_props->ep_mtu - hdrs_sz)) { in eib_vnic_login_ack()
300 EIB_DPRINTF_WARN(ss->ei_instance, "eib_vnic_login_ack: " in eib_vnic_login_ack()
302 ld->ld_vhub_mtu, ss->ei_props->ep_mtu); in eib_vnic_login_ack()
305 EIB_DPRINTF_WARN(ss->ei_instance, "eib_vnic_login_ack: " in eib_vnic_login_ack()
317 EIB_DPRINTF_WARN(ss->ei_instance, "eib_vnic_login_ack: " in eib_vnic_login_ack()
324 EIB_DPRINTF_WARN(ss->ei_instance, "eib_vnic_login_ack: " in eib_vnic_login_ack()
335 EIB_DPRINTF_WARN(ss->ei_instance, "eib_vnic_login_ack: " in eib_vnic_login_ack()
360 eib_vnic_wait_for_table(eib_t *ss, eib_vnic_t *vnic, int *err) in eib_vnic_wait_for_table() argument
372 deadline = ddi_get_lbolt() + ss->ei_gw_props->pp_gw_ka_ticks; in eib_vnic_wait_for_table()
417 eib_vnic_join_data_mcg(eib_t *ss, eib_vnic_t *vnic, uint8_t *mcast_mac, in eib_vnic_join_data_mcg() argument
445 EIB_DPRINTF_WARN(ss->ei_instance, "eib_vnic_join_data_mcg: " in eib_vnic_join_data_mcg()
455 EIB_DPRINTF_WARN(ss->ei_instance, "eib_vnic_join_data_mcg: " in eib_vnic_join_data_mcg()
464 mcg->mg_rgid = ss->ei_props->ep_sgid; in eib_vnic_join_data_mcg()
484 EIB_DPRINTF_WARN(ss->ei_instance, "eib_vnic_join_data_mcg: " in eib_vnic_join_data_mcg()
504 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_join_data_mcg()
587 eib_t *ss = vnic->vn_ss; in eib_vnic_setup_dest() local
588 eib_stats_t *stats = ss->ei_stats; in eib_vnic_setup_dest()
601 EIB_DPRINTF_WARN(ss->ei_instance, "eib_vnic_setup_dest: " in eib_vnic_setup_dest()
616 if ((av = eib_ibt_hold_avect(ss, ucast.mp_lid, in eib_vnic_setup_dest()
618 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_setup_dest()
628 eib_ibt_release_avect(ss, av); in eib_vnic_setup_dest()
631 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_setup_dest()
647 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_setup_dest()
659 eib_vnic_leave_data_mcg(eib_t *ss, eib_vnic_t *vnic, uint8_t *mcast_mac) in eib_vnic_leave_data_mcg() argument
661 eib_rb_vnic_join_data_mcg(ss, vnic, mcast_mac); in eib_vnic_leave_data_mcg()
666 eib_vnic_init_tables(eib_t *ss, eib_vnic_t *vnic) in eib_vnic_init_tables() argument
686 eib_vnic_fini_tables(eib_t *ss, eib_vnic_t *vnic, boolean_t clobber) in eib_vnic_fini_tables() argument
805 eib_vnic_get_data_chan(eib_t *ss, int vinst) in eib_vnic_get_data_chan() argument
811 mutex_enter(&ss->ei_vnic_lock); in eib_vnic_get_data_chan()
812 if ((vnic = ss->ei_vnic[vinst]) != NULL) in eib_vnic_get_data_chan()
814 mutex_exit(&ss->ei_vnic_lock); in eib_vnic_get_data_chan()
821 eib_vnic_need_new(eib_t *ss, uint8_t *mac, uint16_t vlan) in eib_vnic_need_new() argument
825 EIB_INCR_COUNTER(&ss->ei_stats->st_noxmitbuf); in eib_vnic_need_new()
832 EIB_DPRINTF_WARN(ss->ei_instance, "eib_vnic_need_new: " in eib_vnic_need_new()
841 eib_vnic_enqueue_req(ss, vrq); in eib_vnic_need_new()
845 eib_vnic_enqueue_req(eib_t *ss, eib_vnic_req_t *vrq) in eib_vnic_enqueue_req() argument
855 EIB_DPRINTF_DEBUG(ss->ei_instance, "eib_vnic_enqueue_req: " in eib_vnic_enqueue_req()
860 mutex_enter(&ss->ei_vnic_req_lock); in eib_vnic_enqueue_req()
866 if (ss->ei_vnic_req) { in eib_vnic_enqueue_req()
867 if (ss->ei_vnic_req->vr_req == EIB_CR_REQ_DIE) { in eib_vnic_enqueue_req()
868 mutex_exit(&ss->ei_vnic_req_lock); in eib_vnic_enqueue_req()
875 vrq->vr_next = ss->ei_vnic_req; in eib_vnic_enqueue_req()
876 ss->ei_vnic_req = vrq; in eib_vnic_enqueue_req()
883 if ((elem = ss->ei_pending_vnic_req) != NULL) { in eib_vnic_enqueue_req()
884 EIB_DPRINTF_DEBUG(ss->ei_instance, in eib_vnic_enqueue_req()
891 EIB_DPRINTF_DEBUG(ss->ei_instance, in eib_vnic_enqueue_req()
897 mutex_exit(&ss->ei_vnic_req_lock); in eib_vnic_enqueue_req()
900 EIB_DPRINTF_DEBUG(ss->ei_instance, in eib_vnic_enqueue_req()
906 EIB_DPRINTF_DEBUG(ss->ei_instance, in eib_vnic_enqueue_req()
916 for (elem = ss->ei_vnic_req; elem; elem = elem->vr_next) { in eib_vnic_enqueue_req()
926 EIB_DPRINTF_DEBUG(ss->ei_instance, in eib_vnic_enqueue_req()
933 mutex_exit(&ss->ei_vnic_req_lock); in eib_vnic_enqueue_req()
936 EIB_DPRINTF_DEBUG(ss->ei_instance, in eib_vnic_enqueue_req()
944 EIB_DPRINTF_DEBUG(ss->ei_instance, in eib_vnic_enqueue_req()
958 ss->ei_vnic_req = vrq; in eib_vnic_enqueue_req()
962 cv_signal(&ss->ei_vnic_req_cv); in eib_vnic_enqueue_req()
963 mutex_exit(&ss->ei_vnic_req_lock); in eib_vnic_enqueue_req()
965 EIB_DPRINTF_DEBUG(ss->ei_instance, in eib_vnic_enqueue_req()
970 eib_vnic_update_failed_macs(eib_t *ss, uint8_t *old_mac, uint16_t old_vlan, in eib_vnic_update_failed_macs() argument
979 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_update_failed_macs()
989 mutex_enter(&ss->ei_vnic_req_lock); in eib_vnic_update_failed_macs()
997 for (elem = ss->ei_failed_vnic_req; elem; elem = elem->vr_next) { in eib_vnic_update_failed_macs()
1003 ss->ei_failed_vnic_req = elem->vr_next; in eib_vnic_update_failed_macs()
1019 vrq->vr_next = ss->ei_failed_vnic_req; in eib_vnic_update_failed_macs()
1020 ss->ei_failed_vnic_req = vrq; in eib_vnic_update_failed_macs()
1023 mutex_exit(&ss->ei_vnic_req_lock); in eib_vnic_update_failed_macs()
1027 eib_vnic_resurrect_zombies(eib_t *ss, uint8_t *vn0_mac) in eib_vnic_resurrect_zombies() argument
1035 while ((inst = EIB_FIND_LSB_SET(ss->ei_zombie_vnics)) != -1) { in eib_vnic_resurrect_zombies()
1036 EIB_DPRINTF_DEBUG(ss->ei_instance, in eib_vnic_resurrect_zombies()
1040 eib_vnic_restart(ss, inst, vn0_mac); in eib_vnic_resurrect_zombies()
1042 EIB_DPRINTF_DEBUG(ss->ei_instance, in eib_vnic_resurrect_zombies()
1049 eib_vnic_restart(eib_t *ss, int inst, uint8_t *vn0_mac) in eib_vnic_restart() argument
1058 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_restart()
1064 eib_vnic_modify_enter(ss, EIB_VN_BEING_MODIFIED); in eib_vnic_restart()
1065 if ((vnic = ss->ei_vnic[inst]) != NULL) { in eib_vnic_restart()
1074 eib_rb_vnic_create_common(ss, vnic, ~0); in eib_vnic_restart()
1075 ret = eib_vnic_create_common(ss, vnic, &err); in eib_vnic_restart()
1077 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_restart()
1101 EIB_DPRINTF_VERBOSE(ss->ei_instance, in eib_vnic_restart()
1108 eib_vnic_update_failed_macs(ss, old_mac, vnic->vn_vlan, in eib_vnic_restart()
1115 mutex_enter(&ss->ei_vnic_lock); in eib_vnic_restart()
1116 ss->ei_zombie_vnics &= (~((uint64_t)1 << inst)); in eib_vnic_restart()
1117 ss->ei_rejoin_vnics &= (~((uint64_t)1 << inst)); in eib_vnic_restart()
1118 mutex_exit(&ss->ei_vnic_lock); in eib_vnic_restart()
1120 eib_vnic_modify_exit(ss, EIB_VN_BEING_MODIFIED); in eib_vnic_restart()
1124 eib_vnic_rejoin_mcgs(eib_t *ss) in eib_vnic_rejoin_mcgs() argument
1133 mutex_enter(&ss->ei_vnic_lock); in eib_vnic_rejoin_mcgs()
1134 while ((inst = EIB_FIND_LSB_SET(ss->ei_rejoin_vnics)) != -1) { in eib_vnic_rejoin_mcgs()
1135 if ((vnic = ss->ei_vnic[inst]) != NULL) { in eib_vnic_rejoin_mcgs()
1136 eib_vnic_reattach_ctl_mcgs(ss, vnic); in eib_vnic_rejoin_mcgs()
1137 eib_vnic_rejoin_data_mcgs(ss, vnic); in eib_vnic_rejoin_mcgs()
1139 ss->ei_rejoin_vnics &= (~((uint64_t)1 << inst)); in eib_vnic_rejoin_mcgs()
1141 mutex_exit(&ss->ei_vnic_lock); in eib_vnic_rejoin_mcgs()
1145 eib_rb_vnic_create(eib_t *ss, eib_vnic_t *vnic, uint_t progress) in eib_rb_vnic_create() argument
1148 eib_rb_vnic_create_common(ss, vnic, ~0); in eib_rb_vnic_create()
1152 eib_vnic_ret_instance(ss, vnic->vn_instance); in eib_rb_vnic_create()
1171 eib_vnic_get_instance(eib_t *ss, int *vinst) in eib_vnic_get_instance() argument
1176 mutex_enter(&ss->ei_vnic_lock); in eib_vnic_get_instance()
1185 nval = ~(ss->ei_active_vnics); in eib_vnic_get_instance()
1198 ss->ei_active_vnics |= ((uint64_t)1 << bitpos); in eib_vnic_get_instance()
1201 mutex_exit(&ss->ei_vnic_lock); in eib_vnic_get_instance()
1207 eib_vnic_ret_instance(eib_t *ss, int vinst) in eib_vnic_ret_instance() argument
1209 mutex_enter(&ss->ei_vnic_lock); in eib_vnic_ret_instance()
1212 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_ret_instance()
1215 } else if ((ss->ei_active_vnics & ((uint64_t)1 << vinst)) == 0) { in eib_vnic_ret_instance()
1216 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_ret_instance()
1220 ss->ei_active_vnics &= (~((uint64_t)1 << vinst)); in eib_vnic_ret_instance()
1223 mutex_exit(&ss->ei_vnic_lock); in eib_vnic_ret_instance()
1227 eib_vnic_modify_enter(eib_t *ss, uint_t op) in eib_vnic_modify_enter() argument
1229 mutex_enter(&ss->ei_vnic_lock); in eib_vnic_modify_enter()
1230 while (ss->ei_vnic_state & EIB_VN_BEING_MODIFIED) in eib_vnic_modify_enter()
1231 cv_wait(&ss->ei_vnic_cv, &ss->ei_vnic_lock); in eib_vnic_modify_enter()
1233 ss->ei_vnic_state |= op; in eib_vnic_modify_enter()
1234 mutex_exit(&ss->ei_vnic_lock); in eib_vnic_modify_enter()
1238 eib_vnic_modify_exit(eib_t *ss, uint_t op) in eib_vnic_modify_exit() argument
1240 mutex_enter(&ss->ei_vnic_lock); in eib_vnic_modify_exit()
1241 ss->ei_vnic_state &= (~op); in eib_vnic_modify_exit()
1242 cv_broadcast(&ss->ei_vnic_cv); in eib_vnic_modify_exit()
1243 mutex_exit(&ss->ei_vnic_lock); in eib_vnic_modify_exit()
1247 eib_vnic_create_common(eib_t *ss, eib_vnic_t *vnic, int *err) in eib_vnic_create_common() argument
1258 mutex_enter(&ss->ei_vnic_lock); in eib_vnic_create_common()
1259 ASSERT(ss->ei_vnic_pending == NULL); in eib_vnic_create_common()
1260 ss->ei_vnic_pending = vnic; in eib_vnic_create_common()
1261 mutex_exit(&ss->ei_vnic_lock); in eib_vnic_create_common()
1266 if (eib_ctl_create_qp(ss, vnic, err) != EIB_E_SUCCESS) { in eib_vnic_create_common()
1267 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_create_common()
1278 if (eib_data_create_qp(ss, vnic, err) != EIB_E_SUCCESS) { in eib_vnic_create_common()
1279 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_create_common()
1290 if (eib_fip_login(ss, vnic, err) != EIB_E_SUCCESS) { in eib_vnic_create_common()
1291 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_create_common()
1303 if (eib_vnic_set_partition(ss, vnic, err) != EIB_E_SUCCESS) { in eib_vnic_create_common()
1304 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_create_common()
1315 if (eib_chan_post_rx(ss, vnic->vn_ctl_chan, NULL) != EIB_E_SUCCESS) { in eib_vnic_create_common()
1316 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_create_common()
1329 if (eib_chan_post_rx(ss, vnic->vn_data_chan, NULL) != EIB_E_SUCCESS) { in eib_vnic_create_common()
1330 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_create_common()
1343 if (eib_vnic_attach_ctl_mcgs(ss, vnic, err) != EIB_E_SUCCESS) { in eib_vnic_create_common()
1344 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_create_common()
1355 if (eib_fip_vhub_table(ss, vnic, err) != EIB_E_SUCCESS) { in eib_vnic_create_common()
1356 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_create_common()
1368 eib_vnic_start_keepalives(ss, vnic); in eib_vnic_create_common()
1369 eib_rb_vnic_attach_vhub_table(ss, vnic); in eib_vnic_create_common()
1379 if (eib_vnic_join_data_mcg(ss, vnic, eib_broadcast_mac, B_TRUE, in eib_vnic_create_common()
1381 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_create_common()
1389 mutex_enter(&ss->ei_vnic_lock); in eib_vnic_create_common()
1390 if (ss->ei_vnic[vnic->vn_instance] == NULL) { in eib_vnic_create_common()
1391 ss->ei_vnic[vnic->vn_instance] = vnic; in eib_vnic_create_common()
1393 ss->ei_vnic_pending = NULL; in eib_vnic_create_common()
1394 mutex_exit(&ss->ei_vnic_lock); in eib_vnic_create_common()
1399 eib_rb_vnic_create_common(ss, vnic, progress); in eib_vnic_create_common()
1404 eib_vnic_set_partition(eib_t *ss, eib_vnic_t *vnic, int *err) in eib_vnic_set_partition() argument
1411 ret = eib_ibt_modify_chan_pkey(ss, vnic->vn_ctl_chan, in eib_vnic_set_partition()
1414 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_set_partition()
1429 ret = eib_ibt_modify_chan_pkey(ss, vnic->vn_data_chan, in eib_vnic_set_partition()
1432 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_set_partition()
1488 eib_vnic_attach_ctl_mcgs(eib_t *ss, eib_vnic_t *vnic, int *err) in eib_vnic_attach_ctl_mcgs() argument
1494 eib_vnic_init_tables(ss, vnic); in eib_vnic_attach_ctl_mcgs()
1496 if (eib_vnic_attach_vhub_update(ss, vnic) != EIB_E_SUCCESS) { in eib_vnic_attach_ctl_mcgs()
1497 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_attach_ctl_mcgs()
1503 eib_vnic_fini_tables(ss, vnic, B_TRUE); in eib_vnic_attach_ctl_mcgs()
1507 if (eib_vnic_attach_vhub_table(ss, vnic) != EIB_E_SUCCESS) { in eib_vnic_attach_ctl_mcgs()
1508 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_attach_ctl_mcgs()
1514 eib_rb_vnic_attach_vhub_update(ss, vnic); in eib_vnic_attach_ctl_mcgs()
1515 eib_vnic_fini_tables(ss, vnic, B_TRUE); in eib_vnic_attach_ctl_mcgs()
1523 eib_vnic_attach_vhub_table(eib_t *ss, eib_vnic_t *vnic) in eib_vnic_attach_vhub_table() argument
1547 ret = ibt_query_mcg(ss->ei_props->ep_sgid, &mcg_attr, 1, in eib_vnic_attach_vhub_table()
1550 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_attach_vhub_table()
1563 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_attach_vhub_table()
1573 mcg->mg_rgid = ss->ei_props->ep_sgid; in eib_vnic_attach_vhub_table()
1590 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_attach_vhub_table()
1607 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_attach_vhub_table()
1628 eib_vnic_attach_vhub_update(eib_t *ss, eib_vnic_t *vnic) in eib_vnic_attach_vhub_update() argument
1652 ret = ibt_query_mcg(ss->ei_props->ep_sgid, &mcg_attr, 1, in eib_vnic_attach_vhub_update()
1655 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_attach_vhub_update()
1668 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_attach_vhub_update()
1679 mcg->mg_rgid = ss->ei_props->ep_sgid; in eib_vnic_attach_vhub_update()
1696 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_attach_vhub_update()
1713 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_attach_vhub_update()
1734 eib_vnic_start_keepalives(eib_t *ss, eib_vnic_t *vnic) in eib_vnic_start_keepalives() argument
1748 (void) eib_fip_heartbeat(ss, vnic, &err); in eib_vnic_start_keepalives()
1750 mutex_enter(&ss->ei_ka_vnics_lock); in eib_vnic_start_keepalives()
1751 for (elem = ss->ei_ka_vnics; elem; elem = elem->ka_next) { in eib_vnic_start_keepalives()
1758 ss->ei_ka_vnics = kav; in eib_vnic_start_keepalives()
1760 mutex_exit(&ss->ei_ka_vnics_lock); in eib_vnic_start_keepalives()
1768 eib_t *ss = vnic->vn_ss; in eib_vnic_lookup_dest() local
1845 EIB_DPRINTF_WARN(ss->ei_instance, "eib_vnic_lookup_dest: " in eib_vnic_lookup_dest()
1860 eib_vnic_leave_all_data_mcgs(eib_t *ss, eib_vnic_t *vnic) in eib_vnic_leave_all_data_mcgs() argument
1885 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_leave_all_data_mcgs()
1896 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_leave_all_data_mcgs()
1911 eib_vnic_rejoin_data_mcgs(eib_t *ss, eib_vnic_t *vnic) in eib_vnic_rejoin_data_mcgs() argument
1940 if (eib_vnic_join_data_mcg(ss, vnic, mcg->mg_mac, B_TRUE, in eib_vnic_rejoin_data_mcgs()
1945 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_rejoin_data_mcgs()
1959 eib_vnic_reattach_ctl_mcgs(eib_t *ss, eib_vnic_t *vnic) in eib_vnic_reattach_ctl_mcgs() argument
1968 eib_rb_vnic_attach_vhub_table(ss, vnic); in eib_vnic_reattach_ctl_mcgs()
1969 eib_rb_vnic_attach_vhub_update(ss, vnic); in eib_vnic_reattach_ctl_mcgs()
1971 if (eib_vnic_attach_vhub_update(ss, vnic) != EIB_E_SUCCESS) { in eib_vnic_reattach_ctl_mcgs()
1972 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_reattach_ctl_mcgs()
1978 if (eib_vnic_attach_vhub_table(ss, vnic) != EIB_E_SUCCESS) { in eib_vnic_reattach_ctl_mcgs()
1979 EIB_DPRINTF_WARN(ss->ei_instance, in eib_vnic_reattach_ctl_mcgs()
1984 eib_rb_vnic_attach_vhub_update(ss, vnic); in eib_vnic_reattach_ctl_mcgs()
1989 eib_rb_vnic_create_common(eib_t *ss, eib_vnic_t *vnic, uint_t progress) in eib_rb_vnic_create_common() argument
1993 mutex_enter(&ss->ei_vnic_lock); in eib_rb_vnic_create_common()
1994 ss->ei_vnic[vnic->vn_instance] = NULL; in eib_rb_vnic_create_common()
1995 ss->ei_vnic_pending = NULL; in eib_rb_vnic_create_common()
1996 mutex_exit(&ss->ei_vnic_lock); in eib_rb_vnic_create_common()
1999 eib_vnic_leave_all_data_mcgs(ss, vnic); in eib_rb_vnic_create_common()
2003 eib_rb_vnic_start_keepalives(ss, vnic); in eib_rb_vnic_create_common()
2007 eib_rb_vnic_attach_ctl_mcgs(ss, vnic); in eib_rb_vnic_create_common()
2011 (void) eib_fip_logout(ss, vnic, &err); in eib_rb_vnic_create_common()
2015 eib_rb_data_create_qp(ss, vnic); in eib_rb_vnic_create_common()
2019 eib_rb_ctl_create_qp(ss, vnic); in eib_rb_vnic_create_common()
2024 eib_rb_vnic_attach_ctl_mcgs(eib_t *ss, eib_vnic_t *vnic) in eib_rb_vnic_attach_ctl_mcgs() argument
2031 eib_rb_vnic_attach_vhub_table(ss, vnic); in eib_rb_vnic_attach_ctl_mcgs()
2032 eib_rb_vnic_attach_vhub_update(ss, vnic); in eib_rb_vnic_attach_ctl_mcgs()
2033 eib_vnic_fini_tables(ss, vnic, B_TRUE); in eib_rb_vnic_attach_ctl_mcgs()
2038 eib_rb_vnic_attach_vhub_table(eib_t *ss, eib_vnic_t *vnic) in eib_rb_vnic_attach_vhub_table() argument
2057 EIB_DPRINTF_WARN(ss->ei_instance, in eib_rb_vnic_attach_vhub_table()
2068 EIB_DPRINTF_WARN(ss->ei_instance, in eib_rb_vnic_attach_vhub_table()
2084 eib_rb_vnic_attach_vhub_update(eib_t *ss, eib_vnic_t *vnic) in eib_rb_vnic_attach_vhub_update() argument
2103 EIB_DPRINTF_WARN(ss->ei_instance, in eib_rb_vnic_attach_vhub_update()
2114 EIB_DPRINTF_WARN(ss->ei_instance, in eib_rb_vnic_attach_vhub_update()
2130 eib_rb_vnic_start_keepalives(eib_t *ss, eib_vnic_t *vnic) in eib_rb_vnic_start_keepalives() argument
2140 mutex_enter(&ss->ei_ka_vnics_lock); in eib_rb_vnic_start_keepalives()
2143 for (elem = ss->ei_ka_vnics; elem; elem = elem->ka_next) { in eib_rb_vnic_start_keepalives()
2150 EIB_DPRINTF_DEBUG(ss->ei_instance, in eib_rb_vnic_start_keepalives()
2158 ss->ei_ka_vnics = elem->ka_next; in eib_rb_vnic_start_keepalives()
2162 mutex_exit(&ss->ei_ka_vnics_lock); in eib_rb_vnic_start_keepalives()
2167 eib_rb_vnic_join_data_mcg(eib_t *ss, eib_vnic_t *vnic, uint8_t *mcast_mac) in eib_rb_vnic_join_data_mcg() argument
2206 EIB_DPRINTF_WARN(ss->ei_instance, in eib_rb_vnic_join_data_mcg()
2217 EIB_DPRINTF_WARN(ss->ei_instance, in eib_rb_vnic_join_data_mcg()