Lines Matching refs:mcip
172 mac_client_impl_t *mcip = buf; in i_mac_client_impl_ctor() local
175 mutex_init(&mcip->mci_tx_cb_lock, NULL, MUTEX_DRIVER, NULL); in i_mac_client_impl_ctor()
176 mcip->mci_tx_notify_cb_info.mcbi_lockp = &mcip->mci_tx_cb_lock; in i_mac_client_impl_ctor()
180 mutex_init(&mcip->mci_tx_pcpu[i].pcpu_tx_lock, NULL, in i_mac_client_impl_ctor()
183 cv_init(&mcip->mci_tx_cv, NULL, CV_DRIVER, NULL); in i_mac_client_impl_ctor()
193 mac_client_impl_t *mcip = buf; in i_mac_client_impl_dtor() local
195 ASSERT(mcip->mci_promisc_list == NULL); in i_mac_client_impl_dtor()
196 ASSERT(mcip->mci_unicast_list == NULL); in i_mac_client_impl_dtor()
197 ASSERT(mcip->mci_state_flags == 0); in i_mac_client_impl_dtor()
198 ASSERT(mcip->mci_tx_flag == 0); in i_mac_client_impl_dtor()
200 mutex_destroy(&mcip->mci_tx_cb_lock); in i_mac_client_impl_dtor()
204 ASSERT(mcip->mci_tx_pcpu[i].pcpu_tx_refcnt == 0); in i_mac_client_impl_dtor()
205 mutex_destroy(&mcip->mci_tx_pcpu[i].pcpu_tx_lock); in i_mac_client_impl_dtor()
207 cv_destroy(&mcip->mci_tx_cv); in i_mac_client_impl_dtor()
275 mac_client_impl_t *mcip; in mac_vnic_lower() local
278 mcip = cap.mcv_mac_client_handle(cap.mcv_arg); in mac_vnic_lower()
280 return (mcip); in mac_vnic_lower()
302 mac_client_impl_t *mcip; in mac_primary_client_handle() local
309 for (mcip = mip->mi_clients_list; mcip != NULL; in mac_primary_client_handle()
310 mcip = mcip->mci_client_next) { in mac_primary_client_handle()
311 if (MCIP_DATAPATH_SETUP(mcip) && mac_is_primary_client(mcip)) in mac_primary_client_handle()
312 return (mcip); in mac_primary_client_handle()
488 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_client_vid() local
491 if (mcip->mci_nflents == 0) in mac_client_vid()
494 ASSERT(MCIP_DATAPATH_SETUP(mcip) && mac_client_single_rcvr(mcip)); in mac_client_vid()
496 mac_flow_get_desc(mcip->mci_flent, &flow_desc); in mac_client_vid()
509 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_client_is_vlan_vnic() local
511 return (((mcip->mci_state_flags & MCIS_IS_VNIC) != 0) && in mac_client_is_vlan_vnic()
512 ((mcip->mci_flent->fe_type & FLOW_PRIMARY_MAC) != 0)); in mac_client_is_vlan_vnic()
529 mac_client_ifspeed(mac_client_impl_t *mcip) in mac_client_ifspeed() argument
531 mac_impl_t *mip = mcip->mci_mip; in mac_client_ifspeed()
541 if (MCIP_RESOURCE_PROPS_MASK(mcip) & MRP_MAXBW) in mac_client_ifspeed()
542 policy_limit = MCIP_RESOURCE_PROPS_MAXBW(mcip); in mac_client_ifspeed()
557 mac_client_link_state(mac_client_impl_t *mcip) in mac_client_link_state() argument
559 mac_impl_t *mip = mcip->mci_mip; in mac_client_link_state()
570 rw_enter(&mcip->mci_rw_lock, RW_READER); in mac_client_link_state()
571 for (mui_list = mcip->mci_unicast_list; mui_list != NULL; in mac_client_link_state()
576 if (mci_list == mcip) in mac_client_link_state()
582 rw_exit(&mcip->mci_rw_lock); in mac_client_link_state()
588 rw_exit(&mcip->mci_rw_lock); in mac_client_link_state()
614 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_client_stat_get() local
615 mac_impl_t *mip = mcip->mci_mip; in mac_client_stat_get()
616 flow_entry_t *flent = mcip->mci_flent; in mac_client_stat_get()
625 old_rx_stat = &mcip->mci_misc_stat.mms_defunctrxlanestats; in mac_client_stat_get()
626 old_tx_stat = &mcip->mci_misc_stat.mms_defuncttxlanestats; in mac_client_stat_get()
630 val = mac_client_link_state(mcip); in mac_client_stat_get()
633 val = (mac_client_link_state(mcip) == LINK_STATE_UP); in mac_client_stat_get()
642 val = mac_client_ifspeed(mcip); in mac_client_stat_get()
645 val = mcip->mci_misc_stat.mms_multircv; in mac_client_stat_get()
648 val = mcip->mci_misc_stat.mms_brdcstrcv; in mac_client_stat_get()
651 val = mcip->mci_misc_stat.mms_multixmt; in mac_client_stat_get()
654 val = mcip->mci_misc_stat.mms_brdcstxmt; in mac_client_stat_get()
847 mac_unicast_update_client_flow(mac_client_impl_t *mcip) in mac_unicast_update_client_flow() argument
849 mac_impl_t *mip = mcip->mci_mip; in mac_unicast_update_client_flow()
850 flow_entry_t *flent = mcip->mci_flent; in mac_unicast_update_client_flow()
851 mac_address_t *map = mcip->mci_unicast; in mac_unicast_update_client_flow()
867 mac_protect_update_mac_token(mcip); in mac_unicast_update_client_flow()
877 for (flent = mcip->mci_flent_list; flent != NULL; in mac_unicast_update_client_flow()
895 mac_client_impl_t *mcip; in mac_unicast_update_clients() local
903 for (mcip = mip->mi_clients_list; mcip != NULL; in mac_unicast_update_clients()
904 mcip = mcip->mci_client_next) { in mac_unicast_update_clients()
908 if (map != mcip->mci_unicast) in mac_unicast_update_clients()
914 mac_unicast_update_client_flow(mcip); in mac_unicast_update_clients()
932 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_vnic_unicast_set() local
933 mac_impl_t *mip = mcip->mci_mip; in mac_vnic_unicast_set()
934 mac_address_t *map = mcip->mci_unicast; in mac_vnic_unicast_set()
938 ASSERT(mcip->mci_state_flags & MCIS_IS_VNIC); in mac_vnic_unicast_set()
939 ASSERT(mcip->mci_flags != MAC_CLIENT_FLAGS_PRIMARY); in mac_vnic_unicast_set()
992 mac_unicast_update_client_flow(mcip); in mac_vnic_unicast_set()
1101 mac_client_impl_t *mcip = (mac_client_impl_t *)mh; in mac_unicast_secondary_get() local
1103 ASSERT(mcip->mci_unicast != NULL); in mac_unicast_secondary_get()
1104 bcopy(mcip->mci_unicast->ma_addr, addr, mcip->mci_unicast->ma_len); in mac_unicast_secondary_get()
1173 mac_client_add(mac_client_impl_t *mcip) in mac_client_add() argument
1175 mac_impl_t *mip = mcip->mci_mip; in mac_client_add()
1181 mcip->mci_client_next = mip->mi_clients_list; in mac_client_add()
1182 mip->mi_clients_list = mcip; in mac_client_add()
1192 mac_client_remove(mac_client_impl_t *mcip) in mac_client_remove() argument
1194 mac_impl_t *mip = mcip->mci_mip; in mac_client_remove()
1202 while (cclient != NULL && cclient != mcip) { in mac_client_remove()
1213 mac_client_find_vid(mac_client_impl_t *mcip, uint16_t vid) in mac_client_find_vid() argument
1215 mac_unicast_impl_t *muip = mcip->mci_unicast_list; in mac_client_find_vid()
1266 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_addr_random() local
1267 mac_impl_t *mip = mcip->mci_mip; in mac_addr_random()
1301 #define MAC_CLIENT_SET_PRIORITY_RANGE(mcip, pri) { \ argument
1302 (mcip)->mci_min_pri = FLOW_MIN_PRIORITY(MINCLSYSPRI, \
1304 (mcip)->mci_max_pri = FLOW_MAX_PRIORITY(MINCLSYSPRI, \
1305 MAXCLSYSPRI, (mcip)->mci_min_pri); \
1318 mac_client_impl_t *mcip; in mac_client_open() local
1335 mcip = mac_vnic_lower(mip); in mac_client_open()
1342 mcip->mci_state_flags |= MCIS_EXCLUSIVE; in mac_client_open()
1345 mcip->mci_flags |= MAC_CLIENT_FLAGS_MULTI_PRIMARY; in mac_client_open()
1347 mip->mi_clients_list = mcip; in mac_client_open()
1349 *mchp = (mac_client_handle_t)mcip; in mac_client_open()
1352 mcip->mci_mip, mac_client_impl_t *, mcip); in mac_client_open()
1357 mcip = kmem_cache_alloc(mac_client_impl_cache, KM_SLEEP); in mac_client_open()
1359 mcip->mci_mip = mip; in mac_client_open()
1360 mcip->mci_upper_mip = NULL; in mac_client_open()
1361 mcip->mci_rx_fn = mac_rx_def; in mac_client_open()
1362 mcip->mci_rx_arg = NULL; in mac_client_open()
1363 mcip->mci_rx_p_fn = NULL; in mac_client_open()
1364 mcip->mci_rx_p_arg = NULL; in mac_client_open()
1365 mcip->mci_p_unicast_list = NULL; in mac_client_open()
1366 mcip->mci_direct_rx_fn = NULL; in mac_client_open()
1367 mcip->mci_direct_rx_arg = NULL; in mac_client_open()
1368 mcip->mci_vidcache = MCIP_VIDCACHE_INVALID; in mac_client_open()
1370 mcip->mci_unicast_list = NULL; in mac_client_open()
1373 mcip->mci_state_flags |= MCIS_IS_VNIC; in mac_client_open()
1376 mcip->mci_state_flags |= MCIS_EXCLUSIVE; in mac_client_open()
1379 mcip->mci_state_flags |= MCIS_IS_AGGR_PORT; in mac_client_open()
1382 mcip->mci_state_flags |= MCIS_IS_AGGR_CLIENT; in mac_client_open()
1392 if ((err = dls_mgmt_get_linkinfo(linkid, mcip->mci_name, NULL, in mac_client_open()
1398 (void) strlcpy(mcip->mci_name, mip->mi_name, in mac_client_open()
1399 sizeof (mcip->mci_name)); in mac_client_open()
1405 mcip->mci_state_flags |= MCIS_USE_DATALINK_NAME; in mac_client_open()
1412 (void) strlcpy(mcip->mci_name, name, sizeof (mcip->mci_name)); in mac_client_open()
1416 mcip->mci_flags |= MAC_CLIENT_FLAGS_MULTI_PRIMARY; in mac_client_open()
1419 mcip->mci_state_flags |= MCIS_NO_UNICAST_ADDR; in mac_client_open()
1421 mac_protect_init(mcip); in mac_client_open()
1424 mcip->mci_subflow_tab = NULL; in mac_client_open()
1426 mcip->mci_misc_stat.mms_multircv = 0; in mac_client_open()
1427 mcip->mci_misc_stat.mms_brdcstrcv = 0; in mac_client_open()
1428 mcip->mci_misc_stat.mms_multixmt = 0; in mac_client_open()
1429 mcip->mci_misc_stat.mms_brdcstxmt = 0; in mac_client_open()
1433 err = mac_flow_create(NULL, NULL, mcip->mci_name, NULL, in mac_client_open()
1434 mcip->mci_state_flags & MCIS_IS_VNIC ? FLOW_VNIC_MAC : in mac_client_open()
1438 mcip->mci_flent = flent; in mac_client_open()
1440 flent->fe_mcip = mcip; in mac_client_open()
1454 mac_client_add(mcip); in mac_client_open()
1456 mcip->mci_share = 0; in mac_client_open()
1458 i_mac_share_alloc(mcip); in mac_client_open()
1465 if (mcip->mci_state_flags & MCIS_NO_UNICAST_ADDR) { in mac_client_open()
1466 if ((err = mac_client_datapath_setup(mcip, VLAN_ID_NONE, in mac_client_open()
1473 mcip->mci_mip, mac_client_impl_t *, mcip); in mac_client_open()
1475 *mchp = (mac_client_handle_t)mcip; in mac_client_open()
1481 mcip->mci_state_flags = 0; in mac_client_open()
1482 mcip->mci_tx_flag = 0; in mac_client_open()
1483 kmem_cache_free(mac_client_impl_cache, mcip); in mac_client_open()
1493 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_client_close() local
1494 mac_impl_t *mip = mcip->mci_mip; in mac_client_close()
1500 mcip->mci_state_flags &= ~MCIS_EXCLUSIVE; in mac_client_close()
1502 if ((mcip->mci_state_flags & MCIS_IS_VNIC) && in mac_client_close()
1515 if (mcip->mci_state_flags & MCIS_NO_UNICAST_ADDR) { in mac_client_close()
1516 mac_client_datapath_teardown((mac_client_handle_t)mcip, NULL, in mac_client_close()
1517 mcip->mci_flent); in mac_client_close()
1518 mcip->mci_state_flags &= ~MCIS_NO_UNICAST_ADDR; in mac_client_close()
1524 flent = mcip->mci_flent; in mac_client_close()
1525 mcip->mci_flent = NULL; in mac_client_close()
1532 ASSERT(mcip->mci_unicast_list == NULL); in mac_client_close()
1533 ASSERT(mcip->mci_promisc_list == NULL); in mac_client_close()
1534 ASSERT(mcip->mci_tx_notify_cb_list == NULL); in mac_client_close()
1536 i_mac_share_free(mcip); in mac_client_close()
1537 mac_protect_fini(mcip); in mac_client_close()
1538 mac_client_remove(mcip); in mac_client_close()
1541 mcip->mci_subflow_tab = NULL; in mac_client_close()
1542 mcip->mci_state_flags = 0; in mac_client_close()
1543 mcip->mci_tx_flag = 0; in mac_client_close()
1554 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_rx_bypass_set() local
1555 mac_impl_t *mip = mcip->mci_mip; in mac_rx_bypass_set()
1564 if (mcip->mci_nvids > 1) in mac_rx_bypass_set()
1571 mcip->mci_direct_rx_fn = rx_fn; in mac_rx_bypass_set()
1572 mcip->mci_direct_rx_arg = arg1; in mac_rx_bypass_set()
1598 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_rx_set() local
1599 mac_impl_t *mip = mcip->mci_mip; in mac_rx_set()
1600 mac_impl_t *umip = mcip->mci_upper_mip; in mac_rx_set()
1612 mcip->mci_rx_fn = rx_fn; in mac_rx_set()
1613 mcip->mci_rx_arg = arg; in mac_rx_set()
1640 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_rx_barrier() local
1641 mac_impl_t *mip = mcip->mci_mip; in mac_rx_barrier()
1646 if (mcip->mci_rx_fn != mac_rx_def) { in mac_rx_barrier()
1652 if (mcip->mci_promisc_list != NULL || mip->mi_promisc_list != NULL) { in mac_rx_barrier()
1691 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_secondary_cleanup() local
1692 flow_entry_t *flent = mcip->mci_flent; in mac_secondary_cleanup()
1696 mcip->mci_promisc_list = NULL; in mac_secondary_cleanup()
1710 mac_update_subflow_priority(mac_client_impl_t *mcip) in mac_update_subflow_priority() argument
1712 (void) mac_flow_walk(mcip->mci_subflow_tab, in mac_update_subflow_priority()
1713 mac_update_subflow_priority_cb, mcip); in mac_update_subflow_priority()
1725 mac_client_set_rings_prop(mac_client_impl_t *mcip, mac_resource_props_t *mrp, in mac_client_set_rings_prop() argument
1728 mac_impl_t *mip = mcip->mci_mip; in mac_client_set_rings_prop()
1729 flow_entry_t *flent = mcip->mci_flent; in mac_client_set_rings_prop()
1735 mac_resource_props_t *cmrp = MCIP_RESOURCE_PROPS(mcip); in mac_client_set_rings_prop()
1739 if (mcip->mci_share != 0) in mac_client_set_rings_prop()
1797 mcip, group, in mac_client_set_rings_prop()
1810 (void) mac_group_ring_modify(mcip, in mac_client_set_rings_prop()
1829 if (mac_check_macaddr_shared(mcip->mci_unicast)) in mac_client_set_rings_prop()
1832 ngrp = mac_reserve_rx_group(mcip, mac_addr, in mac_client_set_rings_prop()
1838 if (mac_rx_switch_group(mcip, defgrp, ngrp) != in mac_client_set_rings_prop()
1861 if (mac_check_macaddr_shared(mcip->mci_unicast)) in mac_client_set_rings_prop()
1864 ngrp = mac_reserve_rx_group(mcip, mac_addr, B_TRUE); in mac_client_set_rings_prop()
1869 if (mac_rx_switch_group(mcip, defgrp, ngrp) != 0) { in mac_client_set_rings_prop()
1870 mac_release_rx_group(mcip, ngrp); in mac_client_set_rings_prop()
1880 if (mac_rx_switch_group(mcip, group, defgrp) != 0) in mac_client_set_rings_prop()
1892 err = mac_group_ring_modify(mcip, group, defgrp); in mac_client_set_rings_prop()
1957 mcip); in mac_client_set_rings_prop()
1958 mac_tx_switch_group(mcip, in mac_client_set_rings_prop()
1962 mcip); in mac_client_set_rings_prop()
1969 (void) mac_group_ring_modify(mcip, in mac_client_set_rings_prop()
1987 ngrp = mac_reserve_tx_group(mcip, B_TRUE); in mac_client_set_rings_prop()
1991 (mac_client_handle_t)mcip); in mac_client_set_rings_prop()
1992 mac_tx_switch_group(mcip, defgrp, ngrp); in mac_client_set_rings_prop()
1994 (mac_client_handle_t)mcip); in mac_client_set_rings_prop()
2007 ngrp = mac_reserve_tx_group(mcip, B_TRUE); in mac_client_set_rings_prop()
2010 mac_tx_client_quiesce((mac_client_handle_t)mcip); in mac_client_set_rings_prop()
2011 mac_tx_switch_group(mcip, defgrp, ngrp); in mac_client_set_rings_prop()
2012 mac_tx_client_restart((mac_client_handle_t)mcip); in mac_client_set_rings_prop()
2021 mac_tx_client_quiesce((mac_client_handle_t)mcip); in mac_client_set_rings_prop()
2022 mac_tx_switch_group(mcip, group, defgrp); in mac_client_set_rings_prop()
2023 mac_tx_client_restart((mac_client_handle_t)mcip); in mac_client_set_rings_prop()
2034 err = mac_group_ring_modify(mcip, group, defgrp); in mac_client_set_rings_prop()
2072 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_resource_ctl_set() local
2073 mac_impl_t *mip = (mac_impl_t *)mcip->mci_mip; in mac_resource_ctl_set()
2074 mac_impl_t *umip = mcip->mci_upper_mip; in mac_resource_ctl_set()
2076 flow_entry_t *flent = mcip->mci_flent; in mac_resource_ctl_set()
2077 mac_resource_props_t *omrp, *nmrp = MCIP_RESOURCE_PROPS(mcip); in mac_resource_ctl_set()
2081 err = mac_validate_props(mcip->mci_state_flags & MCIS_IS_VNIC ? in mac_resource_ctl_set()
2082 mcip->mci_upper_mip : mip, mrp); in mac_resource_ctl_set()
2094 mac_update_resources(mrp, MCIP_RESOURCE_PROPS(mcip), B_FALSE); in mac_resource_ctl_set()
2095 if (MCIP_DATAPATH_SETUP(mcip)) { in mac_resource_ctl_set()
2103 if ((err = mac_client_set_rings_prop(mcip, mrp, in mac_resource_ctl_set()
2137 if (mac_is_primary_client(mcip)) { in mac_resource_ctl_set()
2139 MCIP_RESOURCE_PROPS(mcip)); in mac_resource_ctl_set()
2147 MAC_CLIENT_SET_PRIORITY_RANGE(mcip, in mac_resource_ctl_set()
2150 MAC_CLIENT_SET_PRIORITY_RANGE(mcip, in mac_resource_ctl_set()
2157 mac_update_subflow_priority(mcip); in mac_resource_ctl_set()
2170 mac_unicast_flow_create(mac_client_impl_t *mcip, uint8_t *mac_addr, in mac_unicast_flow_create() argument
2174 mac_impl_t *mip = (mac_impl_t *)mcip->mci_mip; in mac_unicast_flow_create()
2187 (mcip->mci_state_flags & MCIS_NO_UNICAST_ADDR)); in mac_unicast_flow_create()
2230 bcopy(mcip->mci_name, flowname, MAXFLOWNAMELEN); in mac_unicast_flow_create()
2232 (void) sprintf(flowname, "%s%u", mcip->mci_name, vid); in mac_unicast_flow_create()
2242 (*flent)->fe_mcip = mcip; in mac_unicast_flow_create()
2261 mac_client_impl_t *mcip = flent->fe_mcip; in mac_client_update_mcast() local
2274 return (mac_bcast_add(mcip, addrp, vid, in mac_client_update_mcast()
2277 mac_bcast_delete(mcip, addrp, vid); in mac_client_update_mcast()
2319 mac_client_datapath_setup(mac_client_impl_t *mcip, uint16_t vid, in mac_client_datapath_setup() argument
2323 mac_impl_t *mip = mcip->mci_mip; in mac_client_datapath_setup()
2331 no_unicast = mcip->mci_state_flags & MCIS_NO_UNICAST_ADDR; in mac_client_datapath_setup()
2340 err = mac_bcast_add(mcip, mip->mi_type->mt_brdcst_addr, vid, in mac_client_datapath_setup()
2352 flent = (mcip->mci_nflents == 0) ? mcip->mci_flent : NULL; in mac_client_datapath_setup()
2355 if (!MCIP_DATAPATH_SETUP(mcip)) { in mac_client_datapath_setup()
2358 MAC_CLIENT_SET_PRIORITY_RANGE(mcip, in mac_client_datapath_setup()
2362 if ((err = mac_unicast_flow_create(mcip, mac_addr, vid, in mac_client_datapath_setup()
2373 if ((err = mac_datapath_setup(mcip, flent, SRST_LINK)) != 0) in mac_client_datapath_setup()
2381 ASSERT(mcip->mci_unicast != NULL); in mac_client_datapath_setup()
2388 mac_link_init_flows((mac_client_handle_t)mcip); in mac_client_datapath_setup()
2390 mac_address_t *map = mcip->mci_unicast; in mac_client_datapath_setup()
2416 if ((err = mac_unicast_flow_create(mcip, mac_addr, vid, in mac_client_datapath_setup()
2426 mac_client_bcast_refresh(mcip, mac_client_update_mcast, in mac_client_datapath_setup()
2432 muip->mui_map = mcip->mci_unicast; in mac_client_datapath_setup()
2434 rw_enter(&mcip->mci_rw_lock, RW_WRITER); in mac_client_datapath_setup()
2435 muip->mui_next = mcip->mci_unicast_list; in mac_client_datapath_setup()
2436 mcip->mci_unicast_list = muip; in mac_client_datapath_setup()
2437 rw_exit(&mcip->mci_rw_lock); in mac_client_datapath_setup()
2446 mac_client_add_to_flow_list(mcip, flent); in mac_client_datapath_setup()
2478 if ((mcip->mci_state_flags & MCIS_IS_AGGR_PORT) == 0) in mac_client_datapath_setup()
2481 mac_tx_client_unblock(mcip); in mac_client_datapath_setup()
2485 mac_bcast_delete(mcip, mip->mi_type->mt_brdcst_addr, vid); in mac_client_datapath_setup()
2505 mac_client_impl_t *mcip; in mac_get_passive_primary_client() local
2507 for (mcip = mip->mi_clients_list; mcip != NULL; in mac_get_passive_primary_client()
2508 mcip = mcip->mci_client_next) { in mac_get_passive_primary_client()
2509 if (mac_is_primary_client(mcip) && in mac_get_passive_primary_client()
2510 (mcip->mci_flags & MAC_CLIENT_FLAGS_PASSIVE_PRIMARY) != 0) { in mac_get_passive_primary_client()
2511 return (mcip); in mac_get_passive_primary_client()
2535 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in i_mac_unicast_add() local
2536 mac_impl_t *mip = mcip->mci_mip; in i_mac_unicast_add()
2562 if (mcip->mci_state_flags & MCIS_NO_UNICAST_ADDR) in i_mac_unicast_add()
2575 if (!(mcip->mci_state_flags & MCIS_IS_VNIC) && is_primary && in i_mac_unicast_add()
2577 mcip->mci_flags |= MAC_CLIENT_FLAGS_PRIMARY; in i_mac_unicast_add()
2585 if ((mcip->mci_state_flags & MCIS_IS_VNIC) && is_primary && in i_mac_unicast_add()
2599 ASSERT(mcip->mci_unicast != NULL); in i_mac_unicast_add()
2603 mcip->mci_state_flags |= MCIS_TAG_DISABLE; in i_mac_unicast_add()
2606 mcip->mci_state_flags |= MCIS_STRIP_DISABLE; in i_mac_unicast_add()
2609 mcip->mci_state_flags |= MCIS_DISABLE_TX_VID_CHECK; in i_mac_unicast_add()
2617 if ((mcip->mci_flags & MAC_CLIENT_FLAGS_VNIC_PRIMARY) != 0) { in i_mac_unicast_add()
2618 if ((mcip->mci_flags & in i_mac_unicast_add()
2620 (mcip->mci_flags & in i_mac_unicast_add()
2624 mcip->mci_flags |= MAC_CLIENT_FLAGS_PASSIVE_PRIMARY; in i_mac_unicast_add()
2628 mcip->mci_flags |= MAC_CLIENT_FLAGS_VNIC_PRIMARY; in i_mac_unicast_add()
2657 if (mcip->mci_state_flags & MCIS_IS_VNIC) { in i_mac_unicast_add()
2678 if (mcip->mci_state_flags & MCIS_EXCLUSIVE) { in i_mac_unicast_add()
2691 if (is_primary && !(mcip->mci_state_flags & (MCIS_IS_VNIC | in i_mac_unicast_add()
2701 } else if (mcip->mci_state_flags & MCIS_IS_VNIC) { in i_mac_unicast_add()
2712 vmrp = MCIP_RESOURCE_PROPS(mcip); in i_mac_unicast_add()
2734 bcopy(MCIP_RESOURCE_PROPS(mcip), mrp, sizeof (*mrp)); in i_mac_unicast_add()
2772 if (!MCIP_DATAPATH_SETUP(mcip)) { in i_mac_unicast_add()
2780 mcip->mci_state_flags |= MCIS_UNICAST_HW; in i_mac_unicast_add()
2785 mcip->mci_state_flags |= MCIS_TAG_DISABLE; in i_mac_unicast_add()
2788 mcip->mci_state_flags |= MCIS_STRIP_DISABLE; in i_mac_unicast_add()
2791 mcip->mci_state_flags |= MCIS_DISABLE_TX_VID_CHECK; in i_mac_unicast_add()
2798 (mcip->mci_state_flags & MCIS_TAG_DISABLE) != 0) || in i_mac_unicast_add()
2800 (mcip->mci_state_flags & MCIS_TAG_DISABLE) == 0)); in i_mac_unicast_add()
2803 (mcip->mci_state_flags & MCIS_STRIP_DISABLE) != 0) || in i_mac_unicast_add()
2805 (mcip->mci_state_flags & MCIS_STRIP_DISABLE) == 0)); in i_mac_unicast_add()
2808 (mcip->mci_state_flags & MCIS_DISABLE_TX_VID_CHECK) != 0) || in i_mac_unicast_add()
2810 (mcip->mci_state_flags & MCIS_DISABLE_TX_VID_CHECK) == 0)); in i_mac_unicast_add()
2817 if (((mcip->mci_state_flags & MCIS_UNICAST_HW) != 0 && in i_mac_unicast_add()
2819 ((mcip->mci_state_flags & MCIS_UNICAST_HW) == 0 && in i_mac_unicast_add()
2842 if ((mcip->mci_flags & MAC_CLIENT_FLAGS_MULTI_PRIMARY) == 0 || in i_mac_unicast_add()
2843 (mcip->mci_flags & MAC_CLIENT_FLAGS_PRIMARY) == 0 || in i_mac_unicast_add()
2849 ASSERT((mcip->mci_flags & in i_mac_unicast_add()
2851 mcip->mci_flags |= MAC_CLIENT_FLAGS_PASSIVE_PRIMARY; in i_mac_unicast_add()
2858 mcip->mci_p_unicast_list = muip; in i_mac_unicast_add()
2863 err = mac_client_datapath_setup(mcip, vid, mac_addr, mrp, in i_mac_unicast_add()
2875 if (mcip->mci_state_flags & MCIS_EXCLUSIVE) { in i_mac_unicast_add()
2900 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_unicast_add_set_rx() local
2908 mcip->mci_rx_p_fn = rx_fn; in mac_unicast_add_set_rx()
2909 mcip->mci_rx_p_arg = arg; in mac_unicast_add_set_rx()
2936 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_client_datapath_teardown() local
2937 mac_impl_t *mip = mcip->mci_mip; in mac_client_datapath_teardown()
2944 no_unicast = mcip->mci_state_flags & MCIS_NO_UNICAST_ADDR; in mac_client_datapath_teardown()
2963 mac_datapath_teardown(mcip, mcip->mci_flent, SRST_LINK); in mac_client_datapath_teardown()
2971 flent = mcip->mci_flent; in mac_client_datapath_teardown()
2972 mac_client_remove_flow_from_list(mcip, flent); in mac_client_datapath_teardown()
2974 if (mcip->mci_state_flags & MCIS_DESC_LOGGED) in mac_client_datapath_teardown()
2975 mcip->mci_state_flags &= ~MCIS_DESC_LOGGED; in mac_client_datapath_teardown()
3012 mac_bcast_delete(mcip, mip->mi_type->mt_brdcst_addr, in mac_client_datapath_teardown()
3021 if (mcip->mci_state_flags & MCIS_EXCLUSIVE) { in mac_client_datapath_teardown()
3028 mcip->mci_state_flags &= ~MCIS_UNICAST_HW; in mac_client_datapath_teardown()
3030 if (mcip->mci_state_flags & MCIS_TAG_DISABLE) in mac_client_datapath_teardown()
3031 mcip->mci_state_flags &= ~MCIS_TAG_DISABLE; in mac_client_datapath_teardown()
3033 if (mcip->mci_state_flags & MCIS_STRIP_DISABLE) in mac_client_datapath_teardown()
3034 mcip->mci_state_flags &= ~MCIS_STRIP_DISABLE; in mac_client_datapath_teardown()
3036 if (mcip->mci_state_flags & MCIS_DISABLE_TX_VID_CHECK) in mac_client_datapath_teardown()
3037 mcip->mci_state_flags &= ~MCIS_DISABLE_TX_VID_CHECK; in mac_client_datapath_teardown()
3041 mac_protect_cancel_timer(mcip); in mac_client_datapath_teardown()
3042 mac_protect_flush_dynamic(mcip); in mac_client_datapath_teardown()
3044 bzero(&mcip->mci_misc_stat, sizeof (mcip->mci_misc_stat)); in mac_client_datapath_teardown()
3048 if (mcip->mci_state_flags & MCIS_IS_VNIC) in mac_client_datapath_teardown()
3059 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_unicast_remove() local
3062 mac_impl_t *mip = mcip->mci_mip; in mac_unicast_remove()
3067 if (mcip->mci_flags & MAC_CLIENT_FLAGS_VNIC_PRIMARY) { in mac_unicast_remove()
3078 mac_tx_client_flush(mcip); in mac_unicast_remove()
3080 if ((mcip->mci_flags & MAC_CLIENT_FLAGS_PASSIVE_PRIMARY) != 0) { in mac_unicast_remove()
3081 mcip->mci_flags &= ~MAC_CLIENT_FLAGS_PASSIVE_PRIMARY; in mac_unicast_remove()
3082 if (mcip->mci_rx_p_fn != NULL) { in mac_unicast_remove()
3083 mac_rx_set(mch, mcip->mci_rx_p_fn, in mac_unicast_remove()
3084 mcip->mci_rx_p_arg); in mac_unicast_remove()
3085 mcip->mci_rx_p_fn = NULL; in mac_unicast_remove()
3086 mcip->mci_rx_p_arg = NULL; in mac_unicast_remove()
3092 mcip->mci_flags &= ~MAC_CLIENT_FLAGS_VNIC_PRIMARY; in mac_unicast_remove()
3094 if (mcip->mci_state_flags & MCIS_TAG_DISABLE) in mac_unicast_remove()
3095 mcip->mci_state_flags &= ~MCIS_TAG_DISABLE; in mac_unicast_remove()
3097 if (mcip->mci_state_flags & MCIS_STRIP_DISABLE) in mac_unicast_remove()
3098 mcip->mci_state_flags &= ~MCIS_STRIP_DISABLE; in mac_unicast_remove()
3100 if (mcip->mci_state_flags & MCIS_DISABLE_TX_VID_CHECK) in mac_unicast_remove()
3101 mcip->mci_state_flags &= ~MCIS_DISABLE_TX_VID_CHECK; in mac_unicast_remove()
3114 if ((mcip->mci_flags & MAC_CLIENT_FLAGS_PASSIVE_PRIMARY) != 0) { in mac_unicast_remove()
3116 ASSERT((mcip->mci_flent->fe_flags & FE_MC_NO_DATAPATH) != 0); in mac_unicast_remove()
3117 ASSERT(mcip->mci_p_unicast_list == muip); in mac_unicast_remove()
3119 mcip->mci_flags &= ~MAC_CLIENT_FLAGS_PASSIVE_PRIMARY; in mac_unicast_remove()
3121 mcip->mci_p_unicast_list = NULL; in mac_unicast_remove()
3122 mcip->mci_rx_p_fn = NULL; in mac_unicast_remove()
3123 mcip->mci_rx_p_arg = NULL; in mac_unicast_remove()
3125 mcip->mci_state_flags &= ~MCIS_UNICAST_HW; in mac_unicast_remove()
3127 if (mcip->mci_state_flags & MCIS_TAG_DISABLE) in mac_unicast_remove()
3128 mcip->mci_state_flags &= ~MCIS_TAG_DISABLE; in mac_unicast_remove()
3130 if (mcip->mci_state_flags & MCIS_STRIP_DISABLE) in mac_unicast_remove()
3131 mcip->mci_state_flags &= ~MCIS_STRIP_DISABLE; in mac_unicast_remove()
3133 if (mcip->mci_state_flags & MCIS_DISABLE_TX_VID_CHECK) in mac_unicast_remove()
3134 mcip->mci_state_flags &= ~MCIS_DISABLE_TX_VID_CHECK; in mac_unicast_remove()
3144 pre = mcip->mci_unicast_list; in mac_unicast_remove()
3146 mcip->mci_unicast_list = muip->mui_next; in mac_unicast_remove()
3151 rw_enter(&mcip->mci_rw_lock, RW_WRITER); in mac_unicast_remove()
3153 rw_exit(&mcip->mci_rw_lock); in mac_unicast_remove()
3156 if (!mac_client_single_rcvr(mcip)) { in mac_unicast_remove()
3166 flent = mac_client_get_flow(mcip, muip); in mac_unicast_remove()
3174 if (flent == mcip->mci_flent) in mac_unicast_remove()
3175 flent = mac_client_swap_mciflent(mcip); in mac_unicast_remove()
3176 mac_client_remove_flow_from_list(mcip, flent); in mac_unicast_remove()
3185 mac_client_bcast_refresh(mcip, mac_client_update_mcast, in mac_unicast_remove()
3189 mac_bcast_delete(mcip, mip->mi_type->mt_brdcst_addr, in mac_unicast_remove()
3194 ASSERT(!(mcip->mci_state_flags & MCIS_EXCLUSIVE)); in mac_unicast_remove()
3199 if (mcip->mci_state_flags & MCIS_IS_VNIC) in mac_unicast_remove()
3209 if ((mcip->mci_flags & MAC_CLIENT_FLAGS_PRIMARY) && in mac_unicast_remove()
3211 mcip->mci_flags &= ~MAC_CLIENT_FLAGS_PRIMARY; in mac_unicast_remove()
3221 mcip = mac_get_passive_primary_client(mip); in mac_unicast_remove()
3222 if (mcip != NULL) { in mac_unicast_remove()
3226 mcip->mci_flags &= ~MAC_CLIENT_FLAGS_PASSIVE_PRIMARY; in mac_unicast_remove()
3235 ASSERT(mcip->mci_p_unicast_list != NULL); in mac_unicast_remove()
3236 muip = mcip->mci_p_unicast_list; in mac_unicast_remove()
3237 mcip->mci_p_unicast_list = NULL; in mac_unicast_remove()
3238 if (mac_client_datapath_setup(mcip, VLAN_ID_NONE, in mac_unicast_remove()
3240 if (mcip->mci_rx_p_fn != NULL) { in mac_unicast_remove()
3241 mac_rx_set(mch, mcip->mci_rx_p_fn, in mac_unicast_remove()
3242 mcip->mci_rx_p_arg); in mac_unicast_remove()
3243 mcip->mci_rx_p_fn = NULL; in mac_unicast_remove()
3244 mcip->mci_rx_p_arg = NULL; in mac_unicast_remove()
3261 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_multicast_add() local
3262 mac_impl_t *mip = mcip->mci_mip; in mac_multicast_add()
3263 flow_entry_t *flent = mcip->mci_flent_list; in mac_multicast_add()
3290 flent = mcip->mci_flent_list; in mac_multicast_add()
3307 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_multicast_remove() local
3308 mac_impl_t *mip = mcip->mci_mip; in mac_multicast_remove()
3313 for (flent = mcip->mci_flent_list; flent != NULL; in mac_multicast_remove()
3346 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_promisc_add() local
3347 mac_impl_t *mip = mcip->mci_mip; in mac_promisc_add()
3359 if ((mcip->mci_state_flags & MCIS_IS_VNIC) && in mac_promisc_add()
3361 (mcip->mci_protect_flags & MPT_FLAG_PROMISC_FILTERED)) { in mac_promisc_add()
3392 mpip->mpi_mcip = mcip; in mac_promisc_add()
3402 mac_callback_add(&mip->mi_promisc_cb_info, &mcip->mci_promisc_list, in mac_promisc_add()
3411 if (mcip->mci_state_flags & MCIS_IS_VNIC) { in mac_promisc_add()
3412 mac_impl_t *umip = mcip->mci_upper_mip; in mac_promisc_add()
3430 mac_client_impl_t *mcip = mpip->mpi_mcip; in mac_promisc_remove() local
3431 mac_impl_t *mip = mcip->mci_mip; in mac_promisc_remove()
3453 &mcip->mci_promisc_list, &mpip->mpi_mci_link)); in mac_promisc_remove()
3459 if (mcip->mci_state_flags & MCIS_IS_VNIC) { in mac_promisc_remove()
3460 mac_impl_t *umip = mcip->mci_upper_mip; in mac_promisc_remove()
3484 #define MAC_TX_TRY_HOLD(mcip, mytx, error) \ argument
3487 (mytx) = &(mcip)->mci_tx_pcpu[CPU->cpu_seqid & mac_tx_percpu_cnt]; \
3489 if (!((mcip)->mci_tx_flag & MCI_TX_QUIESCE)) { \
3502 #define MAC_TX_RELE(mcip, mytx) { \ argument
3505 (mcip)->mci_tx_flag & MCI_TX_QUIESCE) { \
3507 mutex_enter(&(mcip)->mci_tx_pcpu[0].pcpu_tx_lock); \
3508 cv_signal(&(mcip)->mci_tx_cv); \
3509 mutex_exit(&(mcip)->mci_tx_pcpu[0].pcpu_tx_lock); \
3528 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_tx() local
3529 mac_impl_t *mip = mcip->mci_mip; in mac_tx()
3536 MAC_TX_TRY_HOLD(mcip, mytx, error); in mac_tx()
3547 if ((mcip->mci_flent-> in mac_tx()
3552 if (mcip->mci_subflow_tab != NULL && in mac_tx()
3553 mcip->mci_subflow_tab->ft_flow_count > 0 && in mac_tx()
3554 mac_flow_lookup(mcip->mci_subflow_tab, mp_chain, in mac_tx()
3566 flent = mcip->mci_flent; in mac_tx()
3597 if (MAC_VID_CHECK_NEEDED(mcip)) { in mac_tx()
3600 MAC_VID_CHECK(mcip, mp_chain, err); in mac_tx()
3603 mcip->mci_misc_stat.mms_txerrors++; in mac_tx()
3607 if (MAC_TAG_NEEDED(mcip)) { in mac_tx()
3611 mcip->mci_misc_stat.mms_txerrors++; in mac_tx()
3621 mcip); in mac_tx()
3709 MAC_TX_RELE(mcip, mytx); in mac_tx()
3726 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_tx_is_flow_blocked() local
3743 MAC_TX_TRY_HOLD(mcip, mytx, err); in mac_tx_is_flow_blocked()
3747 if ((mac_srs = MCIP_TX_SRS(mcip)) == NULL) { in mac_tx_is_flow_blocked()
3748 MAC_TX_RELE(mcip, mytx); in mac_tx_is_flow_blocked()
3783 MAC_TX_RELE(mcip, mytx); in mac_tx_is_flow_blocked()
3791 mac_is_primary_client(mac_client_impl_t *mcip) in mac_is_primary_client() argument
3793 return (mcip->mci_flags & MAC_CLIENT_FLAGS_PRIMARY); in mac_is_primary_client()
3935 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_resource_set_common() local
3937 mcip->mci_resource_add = add; in mac_resource_set_common()
3938 mcip->mci_resource_remove = remove; in mac_resource_set_common()
3939 mcip->mci_resource_quiesce = quiesce; in mac_resource_set_common()
3940 mcip->mci_resource_restart = restart; in mac_resource_set_common()
3941 mcip->mci_resource_bind = bind; in mac_resource_set_common()
3942 mcip->mci_resource_arg = arg; in mac_resource_set_common()
3959 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_client_poll_enable() local
3964 flent = mcip->mci_flent; in mac_client_poll_enable()
3967 mcip->mci_state_flags |= MCIS_CLIENT_POLL_CAPABLE; in mac_client_poll_enable()
3970 ASSERT(mac_srs->srs_mcip == mcip); in mac_client_poll_enable()
3971 mac_srs_client_poll_enable(mcip, mac_srs); in mac_client_poll_enable()
3982 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_client_poll_disable() local
3987 flent = mcip->mci_flent; in mac_client_poll_disable()
3990 mcip->mci_state_flags &= ~MCIS_CLIENT_POLL_CAPABLE; in mac_client_poll_disable()
3993 ASSERT(mac_srs->srs_mcip == mcip); in mac_client_poll_disable()
3994 mac_srs_client_poll_disable(mcip, mac_srs); in mac_client_poll_disable()
4004 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_cpu_set() local
4005 mac_impl_t *mip = mcip->mci_mip; in mac_cpu_set()
4010 if ((err = mac_validate_props(mcip->mci_state_flags & MCIS_IS_VNIC ? in mac_cpu_set()
4011 mcip->mci_upper_mip : mip, mrp)) != 0) { in mac_cpu_set()
4014 if (MCIP_DATAPATH_SETUP(mcip)) in mac_cpu_set()
4015 mac_flow_modify(mip->mi_flow_tab, mcip->mci_flent, mrp); in mac_cpu_set()
4017 mac_update_resources(mrp, MCIP_RESOURCE_PROPS(mcip), B_FALSE); in mac_cpu_set()
4027 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_client_set_resources() local
4028 mac_impl_t *mip = mcip->mci_mip; in mac_client_set_resources()
4065 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_client_get_resources() local
4066 mac_resource_props_t *mcip_mrp = MCIP_RESOURCE_PROPS(mcip); in mac_client_get_resources()
4079 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_client_get_effective_resources() local
4080 mac_resource_props_t *mcip_mrp = MCIP_EFFECTIVE_PROPS(mcip); in mac_client_get_effective_resources()
4229 mac_promisc_client_dispatch(mac_client_impl_t *mcip, mblk_t *mp_chain) in mac_promisc_client_dispatch() argument
4231 mac_impl_t *mip = mcip->mci_mip; in mac_promisc_client_dispatch()
4246 for (mcb = mcip->mci_promisc_list; mcb != NULL; in mac_promisc_client_dispatch()
4651 mac_client_impl_t *mcip; in i_mac_set_resources() local
4686 mcip = mac_primary_client_handle(mip); in i_mac_set_resources()
4687 if (mcip != NULL && (mcip->mci_state_flags & MCIS_IS_AGGR_PORT) == 0) { in i_mac_set_resources()
4688 err = mac_client_set_resources((mac_client_handle_t)mcip, tmrp); in i_mac_set_resources()
4801 mac_client_impl_t *mcip; in mac_get_resources() local
4803 mcip = mac_primary_client_handle(mip); in mac_get_resources()
4804 if (mcip != NULL) { in mac_get_resources()
4805 mac_client_get_resources((mac_client_handle_t)mcip, mrp); in mac_get_resources()
4819 mac_client_impl_t *mcip; in mac_get_effective_resources() local
4821 mcip = mac_primary_client_handle(mip); in mac_get_effective_resources()
4822 if (mcip != NULL) { in mac_get_effective_resources()
4823 mac_client_get_effective_resources((mac_client_handle_t)mcip, in mac_get_effective_resources()
4834 mac_client_impl_t *mcip; in mac_set_pvid() local
4839 for (mcip = mip->mi_clients_list; mcip != NULL; in mac_set_pvid()
4840 mcip = mcip->mci_client_next) { in mac_set_pvid()
4841 for (muip = mcip->mci_unicast_list; muip != NULL; in mac_set_pvid()
4896 mac_client_impl_t *mcip = mac_vnic_lower(mip); in mac_rename_primary() local
4898 mac_rename_flow_names(mcip, new_name); in mac_rename_primary()
4899 mac_stat_rename(mcip); in mac_rename_primary()
4961 mac_rename_flow_names(mac_client_impl_t *mcip, const char *new_name) in mac_rename_flow_names() argument
4966 mac_impl_t *mip = mcip->mci_mip; in mac_rename_flow_names()
4975 (void) strlcpy(mcip->mci_name, new_name, sizeof (mcip->mci_name)); in mac_rename_flow_names()
4978 mac_rename_flow(mcip->mci_flent, new_name); in mac_rename_flow_names()
4980 if (mcip->mci_nflents == 1) in mac_rename_flow_names()
4987 for (flent = mcip->mci_flent_list; flent != NULL; in mac_rename_flow_names()
4989 if (flent != mcip->mci_flent) { in mac_rename_flow_names()
5003 mac_client_add_to_flow_list(mac_client_impl_t *mcip, flow_entry_t *flent) in mac_client_add_to_flow_list() argument
5005 ASSERT(MAC_PERIM_HELD((mac_handle_t)mcip->mci_mip)); in mac_client_add_to_flow_list()
5010 rw_enter(&mcip->mci_rw_lock, RW_WRITER); in mac_client_add_to_flow_list()
5012 mcip->mci_vidcache = MCIP_VIDCACHE_INVALID; in mac_client_add_to_flow_list()
5015 flent->fe_client_next = mcip->mci_flent_list; in mac_client_add_to_flow_list()
5016 mcip->mci_flent_list = flent; in mac_client_add_to_flow_list()
5017 mcip->mci_nflents++; in mac_client_add_to_flow_list()
5024 mcip->mci_nvids++; in mac_client_add_to_flow_list()
5026 rw_exit(&mcip->mci_rw_lock); in mac_client_add_to_flow_list()
5033 mac_client_remove_flow_from_list(mac_client_impl_t *mcip, flow_entry_t *flent) in mac_client_remove_flow_from_list() argument
5035 flow_entry_t *fe = mcip->mci_flent_list; in mac_client_remove_flow_from_list()
5038 ASSERT(MAC_PERIM_HELD((mac_handle_t)mcip->mci_mip)); in mac_client_remove_flow_from_list()
5043 rw_enter(&mcip->mci_rw_lock, RW_WRITER); in mac_client_remove_flow_from_list()
5044 mcip->mci_vidcache = MCIP_VIDCACHE_INVALID; in mac_client_remove_flow_from_list()
5054 mcip->mci_flent_list = fe->fe_client_next; in mac_client_remove_flow_from_list()
5058 mcip->mci_nflents--; in mac_client_remove_flow_from_list()
5061 mcip->mci_nvids--; in mac_client_remove_flow_from_list()
5063 rw_exit(&mcip->mci_rw_lock); in mac_client_remove_flow_from_list()
5070 mac_client_check_flow_vid(mac_client_impl_t *mcip, uint16_t vid) in mac_client_check_flow_vid() argument
5074 uint32_t cache = mcip->mci_vidcache; in mac_client_check_flow_vid()
5084 rw_enter(&mcip->mci_rw_lock, RW_WRITER); in mac_client_check_flow_vid()
5085 for (flent = mcip->mci_flent_list; flent != NULL; in mac_client_check_flow_vid()
5089 mcip->mci_vidcache = MCIP_VIDCACHE_CACHE(vid, B_TRUE); in mac_client_check_flow_vid()
5090 rw_exit(&mcip->mci_rw_lock); in mac_client_check_flow_vid()
5095 mcip->mci_vidcache = MCIP_VIDCACHE_CACHE(vid, B_FALSE); in mac_client_check_flow_vid()
5096 rw_exit(&mcip->mci_rw_lock); in mac_client_check_flow_vid()
5104 mac_client_get_flow(mac_client_impl_t *mcip, mac_unicast_impl_t *muip) in mac_client_get_flow() argument
5106 mac_address_t *map = mcip->mci_unicast; in mac_client_get_flow()
5111 ASSERT(MAC_PERIM_HELD((mac_handle_t)mcip->mci_mip)); in mac_client_get_flow()
5113 mac_flow_get_desc(mcip->mci_flent, &flow_desc); in mac_client_get_flow()
5117 for (flent = mcip->mci_flent_list; flent != NULL; in mac_client_get_flow()
5134 mac_client_swap_mciflent(mac_client_impl_t *mcip) in mac_client_swap_mciflent() argument
5136 flow_entry_t *flent = mcip->mci_flent; in mac_client_swap_mciflent()
5143 ASSERT(MAC_PERIM_HELD((mac_handle_t)mcip->mci_mip)); in mac_client_swap_mciflent()
5144 ASSERT(mcip->mci_nflents > 1); in mac_client_swap_mciflent()
5147 flent1 = mcip->mci_flent_list->fe_client_next; in mac_client_swap_mciflent()
5194 mac_client_single_rcvr(mac_client_impl_t *mcip) in mac_client_single_rcvr() argument
5196 return (mcip->mci_nflents == 1); in mac_client_single_rcvr()
5382 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_set_upper_mac() local
5385 mcip->mci_upper_mip = mip; in mac_set_upper_mac()
5503 mac_grp_client_t *mcip; in mac_get_hwrxgrp_info() local
5527 for (mcip = mip->mi_rx_groups[grp_index].mrg_clients; mcip != NULL; in mac_get_hwrxgrp_info()
5528 mcip = mcip->mgc_next) { in mac_get_hwrxgrp_info()
5529 int name_len = strlen(mcip->mgc_client->mci_name); in mac_get_hwrxgrp_info()
5543 bcopy(mcip->mgc_client->mci_name, &(clnts_name[index]), in mac_get_hwrxgrp_info()
5566 mac_grp_client_t *mcip; in mac_get_hwtxgrp_info() local
5591 for (mcip = mip->mi_tx_groups[grp_index].mrg_clients; mcip != NULL; in mac_get_hwtxgrp_info()
5592 mcip = mcip->mgc_next) { in mac_get_hwtxgrp_info()
5593 int name_len = strlen(mcip->mgc_client->mci_name); in mac_get_hwtxgrp_info()
5607 bcopy(mcip->mgc_client->mci_name, &(clnts_name[index]), in mac_get_hwtxgrp_info()
5735 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_client_set_rings() local
5736 mac_resource_props_t *mrp = MCIP_RESOURCE_PROPS(mcip); in mac_client_set_rings()
5752 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_get_promisc_filtered() local
5754 return (mcip->mci_protect_flags & MPT_FLAG_PROMISC_FILTERED); in mac_get_promisc_filtered()
5760 mac_client_impl_t *mcip = (mac_client_impl_t *)mch; in mac_set_promisc_filtered() local
5762 ASSERT(MAC_PERIM_HELD((mac_handle_t)mcip->mci_mip)); in mac_set_promisc_filtered()
5764 mcip->mci_protect_flags |= MPT_FLAG_PROMISC_FILTERED; in mac_set_promisc_filtered()
5766 mcip->mci_protect_flags &= ~MPT_FLAG_PROMISC_FILTERED; in mac_set_promisc_filtered()