Lines Matching defs:mcip
785 * 'mcip' threaded by mpi_mi_link and mpi_mci_link respectively. However there
857 mac_client_impl_t *mcip;
864 mcip = mac_vnic_lower(mip);
865 mip = mcip->mci_mip;
919 mac_client_impl_t *mcip;
926 mcip = mac_vnic_lower(mip);
927 mip = mcip->mci_mip;
948 mac_client_impl_t *mcip;
955 mcip = mac_vnic_lower(mip);
956 mip = mcip->mci_mip;
1326 mac_client_impl_t *mcip = (mac_client_impl_t *)mch;
1327 mac_impl_t *mip = mcip->mci_mip;
1367 mip->mi_factory_addr[*slot-1].mfa_client = mcip;
1381 mac_client_impl_t *mcip = (mac_client_impl_t *)mch;
1382 mac_impl_t *mip = mcip->mci_mip;
1490 mac_client_impl_t *mcip = (mac_client_impl_t *)mch;
1491 flow_entry_t *flent = mcip->mci_flent;
1517 (mcip == MAC_GROUP_ONLY_CLIENT(grp)));
1678 mac_client_impl_t *mcip = (mac_client_impl_t *)mch;
1679 mac_impl_t *mip = mcip->mci_mip;
1681 MAC_TX(mip, rh, mp, mcip);
1809 mac_tx_lock_all(mac_client_impl_t *mcip)
1814 mutex_enter(&mcip->mci_tx_pcpu[i].pcpu_tx_lock);
1818 mac_tx_unlock_all(mac_client_impl_t *mcip)
1823 mutex_exit(&mcip->mci_tx_pcpu[i].pcpu_tx_lock);
1827 mac_tx_unlock_allbutzero(mac_client_impl_t *mcip)
1832 mutex_exit(&mcip->mci_tx_pcpu[i].pcpu_tx_lock);
1836 mac_tx_sum_refcnt(mac_client_impl_t *mcip)
1842 refcnt += mcip->mci_tx_pcpu[i].pcpu_tx_refcnt;
1853 mac_tx_client_block(mac_client_impl_t *mcip)
1855 mac_tx_lock_all(mcip);
1856 mcip->mci_tx_flag |= MCI_TX_QUIESCE;
1857 while (mac_tx_sum_refcnt(mcip) != 0) {
1858 mac_tx_unlock_allbutzero(mcip);
1859 cv_wait(&mcip->mci_tx_cv, &mcip->mci_tx_pcpu[0].pcpu_tx_lock);
1860 mutex_exit(&mcip->mci_tx_pcpu[0].pcpu_tx_lock);
1861 mac_tx_lock_all(mcip);
1863 mac_tx_unlock_all(mcip);
1867 mac_tx_client_unblock(mac_client_impl_t *mcip)
1869 mac_tx_lock_all(mcip);
1870 mcip->mci_tx_flag &= ~MCI_TX_QUIESCE;
1871 mac_tx_unlock_all(mcip);
1877 i_mac_notify(mcip->mci_mip, MAC_NOTE_TX);
2094 mac_client_impl_t *mcip = (mac_client_impl_t *)mch;
2095 flow_entry_t *flent = mcip->mci_flent;
2096 mac_impl_t *mip = mcip->mci_mip;
2119 mac_client_impl_t *mcip = (mac_client_impl_t *)mch;
2120 mac_impl_t *mip = mcip->mci_mip;
2124 if (MCIP_DATAPATH_SETUP(mcip)) {
2125 (void) mac_rx_classify_flow_quiesce(mcip->mci_flent,
2127 (void) mac_flow_walk_nolock(mcip->mci_subflow_tab,
2135 mac_client_impl_t *mcip = (mac_client_impl_t *)mch;
2136 mac_impl_t *mip = mcip->mci_mip;
2140 if (MCIP_DATAPATH_SETUP(mcip)) {
2141 (void) mac_rx_classify_flow_restart(mcip->mci_flent, NULL);
2142 (void) mac_flow_walk_nolock(mcip->mci_subflow_tab,
2155 mac_client_impl_t *mcip = srs->srs_mcip;
2157 ASSERT(MAC_PERIM_HELD((mac_handle_t)mcip->mci_mip));
2222 mac_client_impl_t *mcip = (mac_client_impl_t *)mch;
2224 ASSERT(MAC_PERIM_HELD((mac_handle_t)mcip->mci_mip));
2226 mac_tx_client_block(mcip);
2227 if (MCIP_TX_SRS(mcip) != NULL) {
2228 mac_tx_srs_quiesce(MCIP_TX_SRS(mcip), srs_quiesce_flag);
2229 (void) mac_flow_walk_nolock(mcip->mci_subflow_tab,
2249 mac_client_impl_t *mcip = (mac_client_impl_t *)mch;
2251 ASSERT(MAC_PERIM_HELD((mac_handle_t)mcip->mci_mip));
2253 mac_tx_client_unblock(mcip);
2254 if (MCIP_TX_SRS(mcip) != NULL) {
2255 mac_tx_srs_restart(MCIP_TX_SRS(mcip));
2256 (void) mac_flow_walk_nolock(mcip->mci_subflow_tab,
2262 mac_tx_client_flush(mac_client_impl_t *mcip)
2264 ASSERT(MAC_PERIM_HELD((mac_handle_t)mcip->mci_mip));
2266 mac_tx_client_quiesce((mac_client_handle_t)mcip);
2267 mac_tx_client_restart((mac_client_handle_t)mcip);
2271 mac_client_quiesce(mac_client_impl_t *mcip)
2273 mac_rx_client_quiesce((mac_client_handle_t)mcip);
2274 mac_tx_client_quiesce((mac_client_handle_t)mcip);
2278 mac_client_restart(mac_client_impl_t *mcip)
2280 mac_rx_client_restart((mac_client_handle_t)mcip);
2281 mac_tx_client_restart((mac_client_handle_t)mcip);
2336 mac_client_impl_t *mcip;
2371 mcip = mac_primary_client_handle(mip);
2372 if ((mcip != NULL) && mac_link_has_flows((mac_client_handle_t)mcip)) {
2445 mac_client_impl_t *mcip;
2453 if ((mcip = flent->fe_mcip) != NULL &&
2454 mcip->mci_flent != flent) {
2456 flent = mcip->mci_flent;
4528 mac_client_impl_t *mcip;
4530 mcip = MAC_GROUP_ONLY_CLIENT(group);
4536 if (mcip != NULL) {
4537 flent = mcip->mci_flent;
4539 mac_rx_srs_group_setup(mcip, flent, SRST_LINK);
4540 mac_fanout_setup(mcip, flent,
4541 MCIP_RESOURCE_PROPS(mcip), mac_rx_deliver,
4542 mcip, NULL, NULL);
4551 mac_client_impl_t *mcip;
4569 mcip = mgcp->mgc_client;
4570 flent = mcip->mci_flent;
4571 is_aggr = (mcip->mci_state_flags & MCIS_IS_AGGR);
4572 mac_srs = MCIP_TX_SRS(mcip);
4574 mac_tx_client_quiesce((mac_client_handle_t)mcip);
4596 mac_fanout_setup(mcip, flent, MCIP_RESOURCE_PROPS(mcip),
4597 mac_rx_deliver, mcip, NULL, NULL);
4598 mac_tx_client_restart((mac_client_handle_t)mcip);
4668 mac_client_impl_t *mcip;
4695 mac_client_impl_t *mcip;
4713 mcip = MAC_GROUP_ONLY_CLIENT(group);
4714 ASSERT(mcip != NULL);
4715 ASSERT(mcip->mci_state_flags & MCIS_IS_AGGR);
4716 mac_srs = MCIP_TX_SRS(mcip);
4726 mac_tx_invoke_callbacks(mcip, (mac_tx_cookie_t)sringp);
4727 mac_tx_client_quiesce((mac_client_handle_t)mcip);
4729 mac_tx_client_restart((mac_client_handle_t)mcip);
4744 mcip = mgcp->mgc_client;
4745 mac_srs = MCIP_TX_SRS(mcip);
4747 mac_tx_client_quiesce((mac_client_handle_t)mcip);
4755 mac_tx_invoke_callbacks(mcip,
4771 mac_tx_invoke_callbacks(mcip,
4797 mac_tx_client_restart((mac_client_handle_t)mcip);
5271 mac_write_flow_desc(flow_entry_t *flent, mac_client_impl_t *mcip)
5296 ndesc->nd_devname = mcip->mci_name;
5371 mac_write_link_desc(mac_client_impl_t *mcip)
5375 flow_entry_t *flent = mcip->mci_flent;
5386 ndesc->nd_name = mcip->mci_name;
5387 ndesc->nd_devname = mcip->mci_name;
5407 mac_write_link_stats(mac_client_impl_t *mcip)
5426 nstat->ns_name = mcip->mci_name;
5427 flent = mcip->mci_flent;
5442 mac_srs = (mac_soft_ring_set_t *)(mcip->mci_flent->fe_tx_srs);
5477 mac_client_impl_t *mcip = flent->fe_mcip;
5481 if (mcip == NULL)
5501 if ((ninfo = mac_write_flow_desc(flent, mcip)) == NULL)
5517 if (mcip != NULL && !(mcip->mci_state_flags & MCIS_DESC_LOGGED))
5536 mac_client_impl_t *mcip;
5550 for (mcip = mip->mi_clients_list; mcip != NULL;
5551 mcip = mcip->mci_client_next) {
5552 if (!MCIP_DATAPATH_SETUP(mcip))
5555 if (!(mcip->mci_state_flags & MCIS_DESC_LOGGED)) {
5556 ninfo = mac_write_link_desc(mcip);
5576 mcip->mci_state_flags |= MCIS_DESC_LOGGED;
5581 ninfo = mac_write_link_stats(mcip);
5589 mcip->mci_state_flags &= ~MCIS_DESC_LOGGED;
5592 if (mcip->mci_subflow_tab != NULL) {
5594 mcip->mci_subflow_tab, mac_log_flowinfo,
5826 mac_flow_update_priority(mac_client_impl_t *mcip, flow_entry_t *flent)
5837 pri = FLOW_PRIORITY(mcip->mci_min_pri,
5838 mcip->mci_max_pri,
5841 pri = mcip->mci_max_pri;
5894 mac_client_impl_t *mcip;
5920 mcip = mgcp->mgc_client;
5921 mac_tx_client_quiesce((mac_client_handle_t)mcip);
5922 srs = MCIP_TX_SRS(mcip);
5924 mac_tx_invoke_callbacks(mcip,
5928 mac_tx_client_restart((mac_client_handle_t)mcip);
5940 mac_client_impl_t *mcip;
5943 mcip = mgcp->mgc_client;
5944 if (mcip->mci_flent->fe_type & FLOW_PRIMARY_MAC)
5945 return (mcip);
5965 mac_client_impl_t *mcip;
5972 mcip = MAC_GROUP_ONLY_CLIENT(group);
5973 if (mcip == NULL)
5974 mcip = mac_get_grp_primary(group);
5975 ASSERT(mcip != NULL);
5976 ASSERT(mcip->mci_share == NULL);
5978 mrp = MCIP_RESOURCE_PROPS(mcip);
5983 if (mac_rx_switch_group(mcip, group, defgrp) != 0)
6032 mcip = MAC_GROUP_ONLY_CLIENT(tgrp);
6033 if (mcip == NULL)
6034 mcip = mac_get_grp_primary(tgrp);
6035 ASSERT(mcip != NULL);
6036 mrp = MCIP_RESOURCE_PROPS(mcip);
6051 (mac_client_handle_t)mcip);
6052 mac_tx_switch_group(mcip, tgrp,
6055 (mac_client_handle_t)mcip);
6091 mcip = MAC_GROUP_ONLY_CLIENT(group);
6092 if (mcip == NULL)
6093 mcip = mac_get_grp_primary(group);
6094 ASSERT(mcip != NULL);
6095 mrp = MCIP_RESOURCE_PROPS(mcip);
6096 mac_tx_client_quiesce((mac_client_handle_t)mcip);
6100 mac_tx_switch_group(mcip, group, defgrp);
6122 mac_tx_client_restart((mac_client_handle_t)mcip);
6126 mac_tx_client_restart((mac_client_handle_t)mcip);
6131 mac_tx_client_restart((mac_client_handle_t)mcip);
6135 mac_tx_client_restart((mac_client_handle_t)mcip);
6284 mac_group_add_client(mac_group_t *grp, mac_client_impl_t *mcip)
6289 if (mgcp->mgc_client == mcip)
6296 mgcp->mgc_client = mcip;
6303 mac_group_remove_client(mac_group_t *grp, mac_client_impl_t *mcip)
6309 if (mgcp->mgc_client == mcip)
6329 mac_reserve_rx_group(mac_client_impl_t *mcip, uint8_t *mac_addr, boolean_t move)
6331 mac_share_handle_t share = mcip->mci_share;
6332 mac_impl_t *mip = mcip->mci_mip;
6337 mac_resource_props_t *mrp = MCIP_RESOURCE_PROPS(mcip);
6352 isprimary = mcip->mci_flent->fe_type & FLOW_PRIMARY_MAC;
6368 if (mcip->mci_state_flags & MCIS_EXCLUSIVE)
6511 (mac_client_handle_t)mcip,
6514 if (mac_is_primary_client(mcip) && !rxhw)
6598 (mac_client_handle_t)mcip,
6627 mac_release_rx_group(mac_client_impl_t *mcip, mac_group_t *group)
6629 mac_impl_t *mip = mcip->mci_mip;
6659 if (mcip->mci_share != NULL) {
6660 mip->mi_share_capab.ms_sremove(mcip->mci_share,
6695 mac_rx_move_macaddr_prim(mac_client_impl_t *mcip, mac_group_t *grp,
6698 mac_impl_t *mip = mcip->mci_mip;
6703 prim = (mcip->mci_state_flags & MCIS_UNICAST_HW) != 0;
6709 * check if the unicast address matches mcip's unicast.
6713 if (gmcip != mcip &&
6715 mcip->mci_unicast == gmcip->mci_unicast)) {
6719 (void) mac_remove_macaddr(mcip->mci_unicast);
6736 mac_rx_move_macaddr(mac_client_impl_t *mcip, mac_group_t *fgrp,
6739 mac_impl_t *mip = mcip->mci_mip;
6745 mac_rx_client_quiesce((mac_client_handle_t)mcip);
6746 ASSERT(mcip->mci_unicast != NULL);
6747 bcopy(mcip->mci_unicast->ma_addr, maddr, mcip->mci_unicast->ma_len);
6749 prim = (mcip->mci_state_flags & MCIS_UNICAST_HW) != 0;
6750 if (mcip->mci_unicast->ma_nusers > 1) {
6751 mac_rx_move_macaddr_prim(mcip, fgrp, NULL, maddr, B_FALSE);
6754 ASSERT(mcip->mci_unicast->ma_nusers == 1);
6755 err = mac_remove_macaddr(mcip->mci_unicast);
6757 mac_rx_client_restart((mac_client_handle_t)mcip);
6759 mac_rx_move_macaddr_prim(mcip, fgrp, fgrp, maddr,
6777 " to group %p failed!!", (void *)mcip,
6780 mac_rx_client_restart((mac_client_handle_t)mcip);
6782 mac_rx_move_macaddr_prim(mcip, fgrp, fgrp, maddr,
6787 mcip->mci_unicast = mac_find_macaddr(mip, maddr);
6788 mac_rx_client_restart((mac_client_handle_t)mcip);
6790 mac_rx_move_macaddr_prim(mcip, fgrp, tgrp, maddr, B_TRUE);
6802 mac_rx_switch_group(mac_client_impl_t *mcip, mac_group_t *fgrp,
6809 mac_impl_t *mip = mcip->mci_mip;
6812 ASSERT(fgrp == mcip->mci_flent->fe_rx_ring_group);
6814 if ((err = mac_rx_move_macaddr(mcip, fgrp, tgrp)) != 0)
6823 mac_rx_srs_group_teardown(mcip->mci_flent, B_TRUE);
6834 mac_release_rx_group(mcip, fgrp);
6838 mac_group_remove_client(fgrp, mcip);
6839 mac_group_add_client(tgrp, mcip);
6840 mcip->mci_flent->fe_rx_ring_group = tgrp;
6845 if (mcip->mci_unicast->ma_nusers > 1) {
6854 if (mcip->mci_unicast == gmcip->mci_unicast) {
6878 mac_rx_srs_group_setup(mcip, mcip->mci_flent, SRST_LINK);
6879 mac_fanout_setup(mcip, mcip->mci_flent,
6880 MCIP_RESOURCE_PROPS(mcip), mac_rx_deliver, mcip, NULL,
6894 mac_reserve_tx_group(mac_client_impl_t *mcip, boolean_t move)
6896 mac_impl_t *mip = mcip->mci_mip;
6902 mac_share_handle_t share = mcip->mci_share;
6903 mac_resource_props_t *mrp = MCIP_RESOURCE_PROPS(mcip);
6915 isprimary = mcip->mci_flent->fe_type & FLOW_PRIMARY_MAC;
7070 (mac_client_handle_t)mcip, -1,
7103 mac_client_set_rings((mac_client_handle_t)mcip, -1,
7111 mac_release_tx_group(mac_client_impl_t *mcip, mac_group_t *grp)
7113 mac_impl_t *mip = mcip->mci_mip;
7114 mac_share_handle_t share = mcip->mci_share;
7116 mac_soft_ring_set_t *srs = MCIP_TX_SRS(mcip);
7125 mac_tx_invoke_callbacks(mcip,
7155 mac_client_impl_t *mcip = flent->fe_mcip;
7173 mac_tx_invoke_callbacks(mcip,
7188 mac_tx_switch_group(mac_client_impl_t *mcip, mac_group_t *fgrp,
7192 mac_impl_t *mip = mcip->mci_mip;
7193 flow_entry_t *flent = mcip->mci_flent;
7207 mac_group_remove_client(fgrp, mcip);
7209 if (mcip->mci_unicast->ma_nusers > 1) {
7214 if (mcip->mci_unicast != gmcip->mci_unicast)
7278 if (gmcip == mcip)
7298 mac_group_remove_client(fgrp, mcip);
7299 mac_release_tx_group(mcip, fgrp);
7304 mac_group_add_client(tgrp, mcip);
7309 mac_tx_srs_group_setup(mcip, flent, SRST_LINK);
7310 mac_fanout_setup(mcip, flent, MCIP_RESOURCE_PROPS(mcip),
7311 mac_rx_deliver, mcip, NULL, NULL);
7321 mac_client_tx_notify_add(mac_client_impl_t *mcip,
7327 ASSERT(MAC_PERIM_HELD((mac_handle_t)mcip->mci_mip));
7336 mcbi = &mcip->mci_tx_notify_cb_info;
7338 mac_callback_add(mcbi, &mcip->mci_tx_notify_cb_list, &mtnfp->mtnf_link);
7344 mac_client_tx_notify_remove(mac_client_impl_t *mcip, mac_tx_notify_cb_t *mtnfp)
7349 ASSERT(MAC_PERIM_HELD((mac_handle_t)mcip->mci_mip));
7351 if (!mac_callback_find(&mcip->mci_tx_notify_cb_info,
7352 &mcip->mci_tx_notify_cb_list, &mtnfp->mtnf_link)) {
7355 "found, mcip 0x%p mtnfp 0x%p", (void *)mcip, (void *)mtnfp);
7359 mcbi = &mcip->mci_tx_notify_cb_info;
7360 cblist = &mcip->mci_tx_notify_cb_list;
7365 mac_callback_remove_wait(&mcip->mci_tx_notify_cb_info);
7377 mac_client_impl_t *mcip = (mac_client_impl_t *)mch;
7380 i_mac_perim_enter(mcip->mci_mip);
7384 mtnfp = mac_client_tx_notify_add(mcip, callb_func, ptr);
7386 mac_client_tx_notify_remove(mcip, (mac_tx_notify_cb_t *)ptr);
7388 i_mac_perim_exit(mcip->mci_mip);
7502 mac_group_ring_modify(mac_client_impl_t *mcip, mac_group_t *group,
7505 mac_resource_props_t *mrp = MCIP_RESOURCE_PROPS(mcip);
7510 mac_impl_t *mip = mcip->mci_mip;
7534 ASSERT(mcip->mci_share == NULL);
7543 ASSERT(mac_is_primary_client(mcip));
7604 mcip = MAC_GROUP_ONLY_CLIENT(tgrp);
7605 if (mcip == NULL)
7606 mcip = mac_get_grp_primary(tgrp);
7607 ASSERT(mcip != NULL);
7608 mrp = MCIP_RESOURCE_PROPS(mcip);
7615 if (mac_rx_switch_group(mcip, tgrp,
7625 mcip = MAC_GROUP_ONLY_CLIENT(tgrp);
7626 if (mcip == NULL)
7627 mcip = mac_get_grp_primary(tgrp);
7628 mrp = MCIP_RESOURCE_PROPS(mcip);
7637 (mac_client_handle_t)mcip);
7638 mac_tx_switch_group(mcip, tgrp, defgrp);
7640 (mac_client_handle_t)mcip);
7647 group, mcip->mci_share, modify)) != 0) {
7747 mac_client_impl_t *mcip;
7756 for (mcip = mip->mi_clients_list; mcip != NULL;
7757 mcip = mcip->mci_client_next) {
7761 mac_client_get_resources((mac_client_handle_t)mcip, mrp);
7762 emrp = MCIP_EFFECTIVE_PROPS(mcip);
7812 if (MCIP_DATAPATH_SETUP(mcip)) {
7815 mac_fanout_setup(mcip, mcip->mci_flent, mrp,
7816 mac_rx_deliver, mcip, NULL, cpupart);
7821 mac_update_resources(mrp, MCIP_RESOURCE_PROPS(mcip),
7830 if (MCIP_DATAPATH_SETUP(mcip)) {
7833 mac_fanout_setup(mcip, mcip->mci_flent, mrp,
7834 mac_rx_deliver, mcip, NULL, NULL);
7836 mac_update_resources(mrp, MCIP_RESOURCE_PROPS(mcip),
7907 mac_set_rings_effective(mac_client_impl_t *mcip)
7909 mac_impl_t *mip = mcip->mci_mip;
7912 flow_entry_t *flent = mcip->mci_flent;
7913 mac_resource_props_t *emrp = MCIP_EFFECTIVE_PROPS(mcip);
7989 emrp = MCIP_EFFECTIVE_PROPS(mcip);
8003 mac_check_primary_relocation(mac_client_impl_t *mcip, boolean_t rxhw)
8005 mac_impl_t *mip = mcip->mci_mip;
8007 flow_entry_t *flent = mcip->mci_flent;
8008 mac_resource_props_t *mrp = MCIP_RESOURCE_PROPS(mcip);
8036 ngrp = mac_reserve_rx_group(mcip, mac_addr, B_TRUE);
8039 if (mac_rx_switch_group(mcip, defgrp, ngrp) != 0) {
8043 return (mcip);