Lines Matching refs:vnetp

79 static void vnet_force_link_state(vnet_t *vnetp, queue_t *q, mblk_t *mp);
101 static int vnet_unattach(vnet_t *vnetp);
102 static void vnet_ring_grp_init(vnet_t *vnetp);
103 static void vnet_ring_grp_uninit(vnet_t *vnetp);
105 static int vnet_read_mac_address(vnet_t *vnetp);
108 static int vnet_bind_hwrings(vnet_t *vnetp);
109 static void vnet_unbind_hwrings(vnet_t *vnetp);
118 static void vnet_fdb_create(vnet_t *vnetp);
119 static void vnet_fdb_destroy(vnet_t *vnetp);
120 static vnet_res_t *vnet_fdbe_find(vnet_t *vnetp, struct ether_addr *addrp);
122 void vnet_fdbe_add(vnet_t *vnetp, vnet_res_t *vresp);
123 static void vnet_fdbe_del(vnet_t *vnetp, vnet_res_t *vresp);
129 static void vnet_start_resources(vnet_t *vnetp);
130 static void vnet_stop_resources(vnet_t *vnetp);
131 static void vnet_dispatch_res_task(vnet_t *vnetp);
134 static void vnet_add_resource(vnet_t *vnetp, vnet_res_t *vresp);
135 static vnet_res_t *vnet_rem_resource(vnet_t *vnetp, vnet_res_t *vresp);
139 int vnet_mtu_update(vnet_t *vnetp, uint32_t mtu);
140 void vnet_link_update(vnet_t *vnetp, link_state_t link_state);
141 void vnet_dds_cleanup_hio(vnet_t *vnetp);
150 int vnet_send_dds_msg(vnet_t *vnetp, void *dmsg);
151 int vnet_hio_mac_init(vnet_t *vnetp, char *ifname);
152 void vnet_hio_mac_cleanup(vnet_t *vnetp);
155 extern int vgen_init(void *vnetp, uint64_t regprop, dev_info_t *vnetdip,
167 extern int vdds_init(vnet_t *vnetp);
168 extern void vdds_cleanup(vnet_t *vnetp);
169 extern void vdds_process_dds_msg(vnet_t *vnetp, vio_dds_msg_t *dmsg);
171 extern void vdds_cleanup_hio(vnet_t *vnetp);
345 vnet_t *vnetp = (vnet_t *)arg; in debug_printf() local
348 if (vnetp == NULL) { in debug_printf()
352 (void) sprintf(bufp, "vnet%d:%s: ", vnetp->instance, fname); in debug_printf()
413 vnet_t *vnetp; in vnetattach() local
435 vnetp = kmem_zalloc(sizeof (vnet_t), KM_SLEEP); in vnetattach()
436 vnetp->dip = dip; in vnetattach()
437 vnetp->instance = instance; in vnetattach()
438 rw_init(&vnetp->vrwlock, NULL, RW_DRIVER, NULL); in vnetattach()
439 rw_init(&vnetp->vsw_fp_rw, NULL, RW_DRIVER, NULL); in vnetattach()
442 vnet_ring_grp_init(vnetp); in vnetattach()
445 status = vdds_init(vnetp); in vnetattach()
452 ddi_set_driver_private(dip, (caddr_t)vnetp); in vnetattach()
455 status = vnet_read_mac_address(vnetp); in vnetattach()
466 vnetp->reg = reg; in vnetattach()
468 vnet_fdb_create(vnetp); in vnetattach()
472 if ((vnetp->taskqp = ddi_taskq_create(dip, qname, 1, in vnetattach()
482 vnetp->nextp = vnet_headp; in vnetattach()
483 vnet_headp = vnetp; in vnetattach()
503 status = vgen_init(vnetp, reg, vnetp->dip, in vnetattach()
504 (uint8_t *)vnetp->curr_macaddr, &vnetp->vgenhdl); in vnetattach()
506 DERR(vnetp, "vgen_init() failed\n"); in vnetattach()
511 status = vnet_mac_register(vnetp); in vnetattach()
515 vnetp->link_state = LINK_STATE_UNKNOWN; in vnetattach()
518 status = vgen_init_mdeg(vnetp->vgenhdl); in vnetattach()
524 vnetp->attach_progress = attach_progress; in vnetattach()
530 vnetp->attach_progress = attach_progress; in vnetattach()
531 status = vnet_unattach(vnetp); in vnetattach()
542 vnet_t *vnetp; in vnetdetach() local
548 vnetp = ddi_get_driver_private(dip); in vnetdetach()
549 if (vnetp == NULL) { in vnetdetach()
562 if (vnet_unattach(vnetp) != 0) { in vnetdetach()
579 vnet_unattach(vnet_t *vnetp) in vnet_unattach() argument
583 attach_progress = vnetp->attach_progress; in vnet_unattach()
596 if (mac_disable(vnetp->mh) != 0) { in vnet_unattach()
609 vdds_cleanup(vnetp); in vnet_unattach()
618 vgen_uninit(vnetp->vgenhdl); in vnet_unattach()
625 ddi_taskq_destroy(vnetp->taskqp); in vnet_unattach()
631 vnet_fdb_destroy(vnetp); in vnet_unattach()
642 if (*vnetpp == vnetp) { in vnet_unattach()
643 *vnetpp = vnetp->nextp; in vnet_unattach()
652 vnet_ring_grp_uninit(vnetp); in vnet_unattach()
657 VERIFY(mac_unregister(vnetp->mh) == 0); in vnet_unattach()
658 vnetp->mh = NULL; in vnet_unattach()
663 rw_destroy(&vnetp->vrwlock); in vnet_unattach()
664 rw_destroy(&vnetp->vsw_fp_rw); in vnet_unattach()
666 KMEM_FREE(vnetp); in vnet_unattach()
676 vnet_t *vnetp = arg; in vnet_m_start() local
678 DBG1(vnetp, "enter\n"); in vnet_m_start()
680 WRITE_ENTER(&vnetp->vrwlock); in vnet_m_start()
681 vnetp->flags |= VNET_STARTED; in vnet_m_start()
682 vnet_start_resources(vnetp); in vnet_m_start()
683 RW_EXIT(&vnetp->vrwlock); in vnet_m_start()
685 DBG1(vnetp, "exit\n"); in vnet_m_start()
694 vnet_t *vnetp = arg; in vnet_m_stop() local
696 DBG1(vnetp, "enter\n"); in vnet_m_stop()
698 WRITE_ENTER(&vnetp->vrwlock); in vnet_m_stop()
699 if (vnetp->flags & VNET_STARTED) { in vnet_m_stop()
706 vnetp->flags &= ~VNET_STARTED; in vnet_m_stop()
707 vnetp->flags |= VNET_STOPPING; in vnet_m_stop()
708 vnet_stop_resources(vnetp); in vnet_m_stop()
709 vnetp->flags &= ~VNET_STOPPING; in vnet_m_stop()
711 RW_EXIT(&vnetp->vrwlock); in vnet_m_stop()
713 DBG1(vnetp, "exit\n"); in vnet_m_stop()
722 vnet_t *vnetp = arg; in vnet_m_unicst()
724 DBG1(vnetp, "enter\n"); in vnet_m_unicst()
728 DBG1(vnetp, "exit\n"); in vnet_m_unicst()
739 vnet_t *vnetp = arg; in vnet_m_multicst()
745 DBG1(vnetp, "enter\n"); in vnet_m_multicst()
747 READ_ENTER(&vnetp->vsw_fp_rw); in vnet_m_multicst()
748 if (vnetp->vsw_fp == NULL) { in vnet_m_multicst()
749 RW_EXIT(&vnetp->vsw_fp_rw); in vnet_m_multicst()
752 VNET_FDBE_REFHOLD(vnetp->vsw_fp); in vnet_m_multicst()
753 RW_EXIT(&vnetp->vsw_fp_rw); in vnet_m_multicst()
755 vresp = vnetp->vsw_fp; in vnet_m_multicst()
760 VNET_FDBE_REFRELE(vnetp->vsw_fp); in vnet_m_multicst()
762 DBG1(vnetp, "exit(%d)\n", rv); in vnet_m_multicst()
772 vnet_t *vnetp = arg; in vnet_m_promisc()
773 DBG1(vnetp, "enter\n"); in vnet_m_promisc()
777 DBG1(vnetp, "exit\n"); in vnet_m_promisc()
791 vnet_t *vnetp; in vnet_tx_ring_send() local
805 vnetp = (vnet_t *)tx_ringp->vnetp; in vnet_tx_ring_send()
806 DBG1(vnetp, "enter\n"); in vnet_tx_ring_send()
809 is_pvid = (vnetp->pvid != vnetp->default_vlan_id) ? B_TRUE : B_FALSE; in vnet_tx_ring_send()
824 vresp = vnet_fdbe_find(vnetp, &ehp->ether_dhost); in vnet_tx_ring_send()
855 READ_ENTER(&vnetp->vsw_fp_rw); in vnet_tx_ring_send()
857 if ((is_unicast) && (vnetp->hio_fp != NULL)) { in vnet_tx_ring_send()
858 vresp = vnetp->hio_fp; in vnet_tx_ring_send()
861 vresp = vnetp->vsw_fp; in vnet_tx_ring_send()
868 RW_EXIT(&vnetp->vsw_fp_rw); in vnet_tx_ring_send()
877 RW_EXIT(&vnetp->vsw_fp_rw); in vnet_tx_ring_send()
895 vnetp->pvid); in vnet_tx_ring_send()
927 DBG1(vnetp, "exit\n"); in vnet_tx_ring_send()
935 vnet_t *vnetp = arg; in vnet_m_stat() local
941 DBG1(vnetp, "enter\n"); in vnet_m_stat()
952 READ_ENTER(&vnetp->vrwlock); in vnet_m_stat()
953 for (vresp = vnetp->vres_list; vresp != NULL; vresp = vresp->nextp) { in vnet_m_stat()
959 RW_EXIT(&vnetp->vrwlock); in vnet_m_stat()
963 DBG1(vnetp, "exit\n"); in vnet_m_stat()
968 vnet_ring_grp_init(vnet_t *vnetp) in vnet_ring_grp_init() argument
976 tx_grp = &vnetp->tx_grp[0]; in vnet_ring_grp_init()
989 rx_grp = &vnetp->rx_grp[0]; in vnet_ring_grp_init()
1018 vnet_ring_grp_uninit(vnet_t *vnetp) in vnet_ring_grp_uninit() argument
1024 tx_grp = &vnetp->tx_grp[0]; in vnet_ring_grp_uninit()
1044 rx_grp = &vnetp->rx_grp[0]; in vnet_ring_grp_uninit()
1055 vnet_alloc_pseudo_rx_ring(vnet_t *vnetp) in vnet_alloc_pseudo_rx_ring() argument
1061 rx_grp = &vnetp->rx_grp[0]; in vnet_alloc_pseudo_rx_ring()
1085 vnet_free_pseudo_rx_ring(vnet_t *vnetp, vnet_pseudo_rx_ring_t *ringp) in vnet_free_pseudo_rx_ring() argument
1090 rx_grp = &vnetp->rx_grp[0]; in vnet_free_pseudo_rx_ring()
1104 vnet_mac_register(vnet_t *vnetp) in vnet_mac_register() argument
1112 macp->m_driver = vnetp; in vnet_mac_register()
1113 macp->m_dip = vnetp->dip; in vnet_mac_register()
1114 macp->m_src_addr = vnetp->curr_macaddr; in vnet_mac_register()
1117 macp->m_max_sdu = vnetp->mtu; in vnet_mac_register()
1126 err = mac_register(macp, &vnetp->mh); in vnet_mac_register()
1133 vnet_read_mac_address(vnet_t *vnetp) in vnet_read_mac_address() argument
1139 rv = ddi_prop_lookup_byte_array(DDI_DEV_T_ANY, vnetp->dip, in vnet_read_mac_address()
1142 DWARN(vnetp, "prop_lookup failed(%s) err(%d)\n", in vnet_read_mac_address()
1146 bcopy(macaddr, (caddr_t)vnetp->vendor_addr, ETHERADDRL); in vnet_read_mac_address()
1147 bcopy(macaddr, (caddr_t)vnetp->curr_macaddr, ETHERADDRL); in vnet_read_mac_address()
1154 vnet_fdb_create(vnet_t *vnetp) in vnet_fdb_create() argument
1159 vnetp->instance); in vnet_fdb_create()
1160 vnetp->fdb_nchains = vnet_fdb_nchains; in vnet_fdb_create()
1161 vnetp->fdb_hashp = mod_hash_create_ptrhash(hashname, vnetp->fdb_nchains, in vnet_fdb_create()
1166 vnet_fdb_destroy(vnet_t *vnetp) in vnet_fdb_destroy() argument
1169 if (vnetp->fdb_hashp != NULL) { in vnet_fdb_destroy()
1170 mod_hash_destroy_hash(vnetp->fdb_hashp); in vnet_fdb_destroy()
1171 vnetp->fdb_hashp = NULL; in vnet_fdb_destroy()
1172 vnetp->fdb_nchains = 0; in vnet_fdb_destroy()
1180 vnet_fdbe_add(vnet_t *vnetp, vnet_res_t *vresp) in vnet_fdbe_add() argument
1202 rv = mod_hash_insert(vnetp->fdb_hashp, (mod_hash_key_t)addr, in vnet_fdbe_add()
1205 DWARN(vnetp, "Duplicate macaddr key(%lx)\n", addr); in vnet_fdbe_add()
1212 WRITE_ENTER(&vnetp->vsw_fp_rw); in vnet_fdbe_add()
1213 if (vnetp->vsw_fp == NULL) in vnet_fdbe_add()
1214 vnetp->vsw_fp = vresp; in vnet_fdbe_add()
1215 RW_EXIT(&vnetp->vsw_fp_rw); in vnet_fdbe_add()
1218 WRITE_ENTER(&vnetp->vsw_fp_rw); in vnet_fdbe_add()
1219 if (vnetp->hio_fp == NULL) in vnet_fdbe_add()
1220 vnetp->hio_fp = vresp; in vnet_fdbe_add()
1221 RW_EXIT(&vnetp->vsw_fp_rw); in vnet_fdbe_add()
1229 vnet_fdbe_del(vnet_t *vnetp, vnet_res_t *vresp) in vnet_fdbe_del() argument
1243 rv = mod_hash_remove(vnetp->fdb_hashp, (mod_hash_key_t)addr, in vnet_fdbe_del()
1256 WRITE_ENTER(&vnetp->vsw_fp_rw); in vnet_fdbe_del()
1258 ASSERT(tmp == vnetp->vsw_fp); in vnet_fdbe_del()
1259 vnetp->vsw_fp = NULL; in vnet_fdbe_del()
1261 RW_EXIT(&vnetp->vsw_fp_rw); in vnet_fdbe_del()
1263 WRITE_ENTER(&vnetp->vsw_fp_rw); in vnet_fdbe_del()
1265 vnetp->hio_fp = NULL; in vnet_fdbe_del()
1267 RW_EXIT(&vnetp->vsw_fp_rw); in vnet_fdbe_del()
1286 vnet_fdbe_find(vnet_t *vnetp, struct ether_addr *addrp) in vnet_fdbe_find() argument
1294 rv = mod_hash_find_cb(vnetp->fdb_hashp, (mod_hash_key_t)key, in vnet_fdbe_find()
1373 vnet_t *vnetp = vresp->vnetp; in vnet_rx() local
1376 if ((vnetp == NULL) || (vnetp->mh == 0)) { in vnet_rx()
1382 mac_rx_ring(vnetp->mh, ringp->handle, mp, ringp->gen_num); in vnet_rx()
1389 vnet_t *vnetp = vresp->vnetp; in vnet_tx_update() local
1394 if (vnetp == NULL || vnetp->mh == NULL) { in vnet_tx_update()
1419 tx_grp = &vnetp->tx_grp[0]; in vnet_tx_update()
1422 mac_tx_ring_update(vnetp->mh, tx_ringp->handle); in vnet_tx_update()
1443 vnet_t *vnetp; in vnet_tx_notify_thread() local
1459 vnetp = tx_ringp->vnetp; in vnet_tx_notify_thread()
1460 mac_tx_ring_update(vnetp->mh, tx_ringp->handle); in vnet_tx_notify_thread()
1475 vnet_t *vnetp = (vnet_t *)arg1; in vnet_tx_ring_update() local
1480 tx_grp = &vnetp->tx_grp[0]; in vnet_tx_ring_update()
1498 vnet_mtu_update(vnet_t *vnetp, uint32_t mtu) in vnet_mtu_update() argument
1502 if (vnetp == NULL || vnetp->mh == NULL) { in vnet_mtu_update()
1506 WRITE_ENTER(&vnetp->vrwlock); in vnet_mtu_update()
1508 if (vnetp->flags & VNET_STARTED) { in vnet_mtu_update()
1509 RW_EXIT(&vnetp->vrwlock); in vnet_mtu_update()
1512 vnetp->instance); in vnet_mtu_update()
1517 rv = mac_maxsdu_update(vnetp->mh, mtu); in vnet_mtu_update()
1519 RW_EXIT(&vnetp->vrwlock); in vnet_mtu_update()
1522 vnetp->instance); in vnet_mtu_update()
1526 vnetp->mtu = mtu; in vnet_mtu_update()
1528 RW_EXIT(&vnetp->vrwlock); in vnet_mtu_update()
1537 vnet_link_update(vnet_t *vnetp, link_state_t link_state) in vnet_link_update() argument
1539 if (vnetp == NULL || vnetp->mh == NULL) { in vnet_link_update()
1543 WRITE_ENTER(&vnetp->vrwlock); in vnet_link_update()
1544 if (vnetp->link_state == link_state) { in vnet_link_update()
1545 RW_EXIT(&vnetp->vrwlock); in vnet_link_update()
1548 vnetp->link_state = link_state; in vnet_link_update()
1549 RW_EXIT(&vnetp->vrwlock); in vnet_link_update()
1551 mac_link_update(vnetp->mh, link_state); in vnet_link_update()
1571 vnet_t *vnetp; in vio_net_resource_reg() local
1583 vnetp = vnet_headp; in vio_net_resource_reg()
1584 while (vnetp != NULL) { in vio_net_resource_reg()
1585 if (VNET_MATCH_RES(vresp, vnetp)) { in vio_net_resource_reg()
1586 vresp->vnetp = vnetp; in vio_net_resource_reg()
1595 vnetp->instance); in vio_net_resource_reg()
1598 vnet_add_resource(vnetp, vresp); in vio_net_resource_reg()
1601 vnetp = vnetp->nextp; in vio_net_resource_reg()
1604 if (vresp->vnetp == NULL) { in vio_net_resource_reg()
1617 (void) vnet_rem_resource(vnetp, vresp); in vio_net_resource_reg()
1624 vnet_dispatch_res_task(vnetp); in vio_net_resource_reg()
1635 vnet_t *vnetp = vresp->vnetp; in vio_net_resource_unreg() local
1639 ASSERT(vnetp != NULL); in vio_net_resource_unreg()
1644 vnet_fdbe_del(vnetp, vresp); in vio_net_resource_unreg()
1649 (void) vnet_rem_resource(vnetp, vresp); in vio_net_resource_unreg()
1656 vnet_add_resource(vnet_t *vnetp, vnet_res_t *vresp) in vnet_add_resource() argument
1658 WRITE_ENTER(&vnetp->vrwlock); in vnet_add_resource()
1659 vresp->nextp = vnetp->vres_list; in vnet_add_resource()
1660 vnetp->vres_list = vresp; in vnet_add_resource()
1661 RW_EXIT(&vnetp->vrwlock); in vnet_add_resource()
1665 vnet_rem_resource(vnet_t *vnetp, vnet_res_t *vresp) in vnet_rem_resource() argument
1669 WRITE_ENTER(&vnetp->vrwlock); in vnet_rem_resource()
1670 if (vresp == vnetp->vres_list) { in vnet_rem_resource()
1671 vnetp->vres_list = vresp->nextp; in vnet_rem_resource()
1673 vrp = vnetp->vres_list; in vnet_rem_resource()
1682 vresp->vnetp = NULL; in vnet_rem_resource()
1685 RW_EXIT(&vnetp->vrwlock); in vnet_rem_resource()
1696 vnet_t *vnetp = arg; in vnet_dds_rx() local
1697 vdds_process_dds_msg(vnetp, dmsg); in vnet_dds_rx()
1705 vnet_send_dds_msg(vnet_t *vnetp, void *dmsg) in vnet_send_dds_msg() argument
1709 if (vnetp->vgenhdl != NULL) { in vnet_send_dds_msg()
1710 rv = vgen_dds_tx(vnetp->vgenhdl, dmsg); in vnet_send_dds_msg()
1719 vnet_dds_cleanup_hio(vnet_t *vnetp) in vnet_dds_cleanup_hio() argument
1721 vdds_cleanup_hio(vnetp); in vnet_dds_cleanup_hio()
1735 vnet_t *vnetp = vresp->vnetp; in vnet_handle_res_err() local
1737 if (vnetp == NULL) { in vnet_handle_res_err()
1745 vdds_cleanup_hio(vnetp); in vnet_handle_res_err()
1752 vnet_dispatch_res_task(vnet_t *vnetp) in vnet_dispatch_res_task() argument
1762 rv = ddi_taskq_dispatch(vnetp->taskqp, vnet_res_start_task, in vnet_dispatch_res_task()
1763 vnetp, DDI_NOSLEEP); in vnet_dispatch_res_task()
1767 vnetp->instance); in vnet_dispatch_res_task()
1777 vnet_t *vnetp = arg; in vnet_res_start_task() local
1779 WRITE_ENTER(&vnetp->vrwlock); in vnet_res_start_task()
1780 if (vnetp->flags & VNET_STARTED) { in vnet_res_start_task()
1781 vnet_start_resources(vnetp); in vnet_res_start_task()
1783 RW_EXIT(&vnetp->vrwlock); in vnet_res_start_task()
1791 vnet_start_resources(vnet_t *vnetp) in vnet_start_resources() argument
1798 DBG1(vnetp, "enter\n"); in vnet_start_resources()
1800 ASSERT(RW_WRITE_HELD(&vnetp->vrwlock)); in vnet_start_resources()
1802 for (vresp = vnetp->vres_list; vresp != NULL; vresp = vresp->nextp) { in vnet_start_resources()
1816 vnet_fdbe_add(vnetp, vresp); in vnet_start_resources()
1820 DBG1(vnetp, "exit\n"); in vnet_start_resources()
1828 vnet_stop_resources(vnet_t *vnetp) in vnet_stop_resources() argument
1834 DBG1(vnetp, "enter\n"); in vnet_stop_resources()
1836 ASSERT(RW_WRITE_HELD(&vnetp->vrwlock)); in vnet_stop_resources()
1838 for (vresp = vnetp->vres_list; vresp != NULL; ) { in vnet_stop_resources()
1860 RW_EXIT(&vnetp->vrwlock); in vnet_stop_resources()
1864 WRITE_ENTER(&vnetp->vrwlock); in vnet_stop_resources()
1870 DBG1(vnetp, "exit\n"); in vnet_stop_resources()
1882 vnet_t *vnetp = vresp->vnetp; in vnet_hio_setup_kstats() local
1886 ASSERT(vnetp != NULL); in vnet_hio_setup_kstats()
1888 ksp = kstat_create(ks_mod, vnetp->instance, ks_name, "net", in vnet_hio_setup_kstats()
1945 vnet_t *vnetp; in vnet_hio_update_kstats() local
1951 vnetp = vresp->vnetp; in vnet_hio_update_kstats()
1955 READ_ENTER(&vnetp->vsw_fp_rw); in vnet_hio_update_kstats()
1956 if (vnetp->hio_fp == NULL) { in vnet_hio_update_kstats()
1958 RW_EXIT(&vnetp->vsw_fp_rw); in vnet_hio_update_kstats()
1961 VNET_FDBE_REFHOLD(vnetp->hio_fp); in vnet_hio_update_kstats()
1962 RW_EXIT(&vnetp->vsw_fp_rw); in vnet_hio_update_kstats()
1963 vnet_hio_get_stats(vnetp->hio_fp, &statsp); in vnet_hio_update_kstats()
1964 VNET_FDBE_REFRELE(vnetp->hio_fp); in vnet_hio_update_kstats()
2072 vnet_t *vnetp = (vnet_t *)arg; in vnet_m_capab() local
2074 if (vnetp == NULL) { in vnet_m_capab()
2170 cap_rings->mr_rnum = vnetp->rx_grp[0].ring_cnt; in vnet_m_capab()
2185 cap_rings->mr_rnum = vnetp->tx_grp[0].ring_cnt; in vnet_m_capab()
2217 vnet_t *vnetp = arg; in vnet_get_ring() local
2229 rx_grp = &vnetp->rx_grp[g_index]; in vnet_get_ring()
2244 rx_ringp->vnetp = vnetp; in vnet_get_ring()
2280 tx_grp = &vnetp->tx_grp[0]; in vnet_get_ring()
2291 tx_ringp->vnetp = vnetp; in vnet_get_ring()
2322 vnet_t *vnetp = (vnet_t *)arg; in vnet_get_group() local
2333 rx_grp = &vnetp->rx_grp[index]; in vnet_get_group()
2336 rx_grp->vnetp = vnetp; in vnet_get_group()
2355 tx_grp = &vnetp->tx_grp[index]; in vnet_get_group()
2358 tx_grp->vnetp = vnetp; in vnet_get_group()
2454 vnet_t *vnetp = (vnet_t *)rx_ringp->vnetp; in vnet_rx_ring_stat() local
2464 READ_ENTER(&vnetp->vsw_fp_rw); in vnet_rx_ring_stat()
2465 if (vnetp->hio_fp == NULL) { in vnet_rx_ring_stat()
2466 RW_EXIT(&vnetp->vsw_fp_rw); in vnet_rx_ring_stat()
2470 VNET_FDBE_REFHOLD(vnetp->hio_fp); in vnet_rx_ring_stat()
2471 RW_EXIT(&vnetp->vsw_fp_rw); in vnet_rx_ring_stat()
2473 VNET_FDBE_REFRELE(vnetp->hio_fp); in vnet_rx_ring_stat()
2604 vnet_t *vnetp = rx_ringp->vnetp; in vnet_rx_poll() local
2620 if (vnetp->pvid != vnetp->default_vlan_id) { in vnet_rx_poll()
2621 vnet_rx_frames_untag(vnetp->pvid, &mp); in vnet_rx_poll()
2635 vnet_t *vnetp = (vnet_t *)arg; in vnet_hio_rx_cb() local
2646 if (vnetp->pvid != vnetp->default_vlan_id) { in vnet_hio_rx_cb()
2647 vnet_rx_frames_untag(vnetp->pvid, &mp); in vnet_hio_rx_cb()
2652 mac_rx_ring(vnetp->mh, ringp->handle, mp, ringp->gen_num); in vnet_hio_rx_cb()
2659 vnet_t *vnetp; in vnet_addmac() local
2661 vnetp = rx_grp->vnetp; in vnet_addmac()
2663 if (bcmp(mac_addr, vnetp->curr_macaddr, ETHERADDRL) == 0) { in vnet_addmac()
2668 vnetp->instance, __func__); in vnet_addmac()
2676 vnet_t *vnetp; in vnet_remmac() local
2678 vnetp = rx_grp->vnetp; in vnet_remmac()
2680 if (bcmp(mac_addr, vnetp->curr_macaddr, ETHERADDRL) == 0) { in vnet_remmac()
2685 vnetp->instance, __func__, ether_sprintf((void *)mac_addr)); in vnet_remmac()
2690 vnet_hio_mac_init(vnet_t *vnetp, char *ifname) in vnet_hio_mac_init() argument
2722 vnetp->hio_mh = mh; in vnet_hio_mac_init()
2724 (void) snprintf(client_name, MAXNAMELEN, "vnet%d-%s", vnetp->instance, in vnet_hio_mac_init()
2730 vnetp->hio_mch = mch; in vnet_hio_mac_init()
2732 rv = mac_unicast_add(mch, vnetp->curr_macaddr, mac_flags, &muh, 0, in vnet_hio_mac_init()
2737 vnetp->hio_muh = muh; in vnet_hio_mac_init()
2740 macp->m_driver = vnetp; in vnet_hio_mac_init()
2748 vnetp->curr_macaddr, rem_addr, &vnetp->hio_vhp, &vcb); in vnet_hio_mac_init()
2755 mac_rx_set(vnetp->hio_mch, vnet_hio_rx_cb, vnetp); in vnet_hio_mac_init()
2761 vnet_hio_mac_cleanup(vnetp); in vnet_hio_mac_init()
2766 vnet_hio_mac_cleanup(vnet_t *vnetp) in vnet_hio_mac_cleanup() argument
2768 if (vnetp->hio_vhp != NULL) { in vnet_hio_mac_cleanup()
2769 vio_net_resource_unreg(vnetp->hio_vhp); in vnet_hio_mac_cleanup()
2770 vnetp->hio_vhp = NULL; in vnet_hio_mac_cleanup()
2773 if (vnetp->hio_muh != NULL) { in vnet_hio_mac_cleanup()
2774 (void) mac_unicast_remove(vnetp->hio_mch, vnetp->hio_muh); in vnet_hio_mac_cleanup()
2775 vnetp->hio_muh = NULL; in vnet_hio_mac_cleanup()
2778 if (vnetp->hio_mch != NULL) { in vnet_hio_mac_cleanup()
2779 mac_client_close(vnetp->hio_mch, 0); in vnet_hio_mac_cleanup()
2780 vnetp->hio_mch = NULL; in vnet_hio_mac_cleanup()
2783 if (vnetp->hio_mh != NULL) { in vnet_hio_mac_cleanup()
2784 mac_close(vnetp->hio_mh); in vnet_hio_mac_cleanup()
2785 vnetp->hio_mh = NULL; in vnet_hio_mac_cleanup()
2791 vnet_bind_hwrings(vnet_t *vnetp) in vnet_bind_hwrings() argument
2803 mac_perim_enter_by_mh(vnetp->hio_mh, &mph1); in vnet_bind_hwrings()
2806 hw_ring_cnt = mac_hwrings_get(vnetp->hio_mch, &vnetp->rx_hwgh, hw_rh, in vnet_bind_hwrings()
2813 vnetp->instance, hw_ring_cnt); in vnet_bind_hwrings()
2817 if (vnetp->rx_hwgh != NULL) { in vnet_bind_hwrings()
2825 mac_rx_client_quiesce(vnetp->hio_mch); in vnet_bind_hwrings()
2826 mac_srs_perm_quiesce(vnetp->hio_mch, B_TRUE); in vnet_bind_hwrings()
2835 rx_grp = &vnetp->rx_grp[0]; in vnet_bind_hwrings()
2859 hw_ring_cnt = mac_hwrings_get(vnetp->hio_mch, &vnetp->tx_hwgh, hw_rh, in vnet_bind_hwrings()
2866 vnetp->instance, hw_ring_cnt); in vnet_bind_hwrings()
2876 tx_grp = &vnetp->tx_grp[0]; in vnet_bind_hwrings()
2883 mac_client_tx_notify(vnetp->hio_mch, vnet_tx_ring_update, vnetp); in vnet_bind_hwrings()
2890 vnet_unbind_hwrings(vnetp); in vnet_bind_hwrings()
2896 vnet_unbind_hwrings(vnet_t *vnetp) in vnet_unbind_hwrings() argument
2905 mac_perim_enter_by_mh(vnetp->hio_mh, &mph1); in vnet_unbind_hwrings()
2907 tx_grp = &vnetp->tx_grp[0]; in vnet_unbind_hwrings()
2915 (void) mac_client_tx_notify(vnetp->hio_mch, NULL, in vnet_unbind_hwrings()
2918 rx_grp = &vnetp->rx_grp[0]; in vnet_unbind_hwrings()
2931 if (vnetp->rx_hwgh != NULL) { in vnet_unbind_hwrings()
2932 vnetp->rx_hwgh = NULL; in vnet_unbind_hwrings()
2937 mac_srs_perm_quiesce(vnetp->hio_mch, B_FALSE); in vnet_unbind_hwrings()
2938 mac_rx_client_restart(vnetp->hio_mch); in vnet_unbind_hwrings()
2948 vnet_t *vnetp; in vnet_bind_vgenring() local
2955 vnetp = vresp->vnetp; in vnet_bind_vgenring()
2957 rx_grp = &vnetp->rx_grp[0]; in vnet_bind_vgenring()
2974 mac_perim_enter_by_mh(vnetp->mh, &mph1); in vnet_bind_vgenring()
2976 rx_ringp = vnet_alloc_pseudo_rx_ring(vnetp); in vnet_bind_vgenring()
2979 vnetp->instance); in vnet_bind_vgenring()
3000 vnet_free_pseudo_rx_ring(vnetp, rx_ringp); in vnet_bind_vgenring()
3015 vnet_t *vnetp; in vnet_unbind_vgenring() local
3021 vnetp = vresp->vnetp; in vnet_unbind_vgenring()
3023 rx_grp = &vnetp->rx_grp[0]; in vnet_unbind_vgenring()
3044 mac_perim_enter_by_mh(vnetp->mh, &mph1); in vnet_unbind_vgenring()
3057 vnet_free_pseudo_rx_ring(vnetp, rx_ringp); in vnet_unbind_vgenring()
3074 vnet_unbind_hwrings(vresp->vnetp); in vnet_unbind_rings()
3096 rv = vnet_bind_hwrings(vresp->vnetp); in vnet_bind_rings()
3112 vnet_t *vnetp = (vnet_t *)arg; in vnet_hio_stat() local
3114 *val = mac_stat_get(vnetp->hio_mh, stat); in vnet_hio_stat()
3173 vnet_t *vnetp; in vnet_m_ioctl() local
3177 vnetp = (vnet_t *)arg; in vnet_m_ioctl()
3179 if (vnetp == NULL) { in vnet_m_ioctl()
3188 vnet_force_link_state(vnetp, q, mp); in vnet_m_ioctl()
3200 vnet_force_link_state(vnet_t *vnetp, queue_t *q, mblk_t *mp) in vnet_force_link_state() argument
3206 READ_ENTER(&vnetp->vsw_fp_rw); in vnet_force_link_state()
3208 vresp = vnetp->vsw_fp; in vnet_force_link_state()
3210 RW_EXIT(&vnetp->vsw_fp_rw); in vnet_force_link_state()
3218 RW_EXIT(&vnetp->vsw_fp_rw); in vnet_force_link_state()
3226 vnet_t *vnetp; in vnet_m_ioctl() local
3228 vnetp = (vnet_t *)arg; in vnet_m_ioctl()
3230 if (vnetp == NULL) { in vnet_m_ioctl()