Lines Matching refs:xnbp
90 xnbo_to_mac(xnb_t *xnbp, mblk_t *mp) in xnbo_to_mac() argument
92 xnbo_t *xnbop = xnbp->xnb_flavour_data; in xnbo_to_mac()
97 xnbp->xnb_stat_tx_too_early++; in xnbo_to_mac()
103 xnbp->xnb_stat_mac_full++; in xnbo_to_mac()
117 xnbo_cksum_from_peer(xnb_t *xnbp, mblk_t *mp, uint16_t flags) in xnbo_cksum_from_peer() argument
119 xnbo_t *xnbop = xnbp->xnb_flavour_data; in xnbo_cksum_from_peer()
137 mp = xnb_process_cksum_flags(xnbp, mp, capab); in xnbo_cksum_from_peer()
148 xnbo_cksum_to_peer(xnb_t *xnbp, mblk_t *mp) in xnbo_cksum_to_peer() argument
150 _NOTE(ARGUNUSED(xnbp)); in xnbo_cksum_to_peer()
198 xnb_t *xnbp = arg; in xnbo_from_mac() local
200 mp = xnb_copy_to_peer(xnbp, mp); in xnbo_from_mac()
216 xnb_t *xnbp = arg; in xnbo_from_mac_filter() local
217 xnbo_t *xnbop = xnbp->xnb_flavour_data; in xnbo_from_mac_filter()
246 if (bcmp(hdr_info.mhi_daddr, xnbp->xnb_mac_addr, in xnbo_from_mac_filter()
247 sizeof (xnbp->xnb_mac_addr)) == 0) { in xnbo_from_mac_filter()
257 xnbo_from_mac(xnbp, mrh, keep_head, B_FALSE); in xnbo_from_mac_filter()
264 xnbo_open_mac(xnb_t *xnbp, char *mac) in xnbo_open_mac() argument
266 xnbo_t *xnbop = xnbp->xnb_flavour_data; in xnbo_open_mac()
287 i_xnbo_close_mac(xnbp, B_TRUE); in xnbo_open_mac()
294 i_xnbo_close_mac(xnbp, B_TRUE); in xnbo_open_mac()
302 i_xnbo_close_mac(xnbp, B_TRUE); in xnbo_open_mac()
320 i_xnbo_close_mac(xnbp, B_TRUE); in xnbo_open_mac()
331 xnbp); in xnbo_open_mac()
335 i_xnbo_close_mac(xnbp, B_TRUE); in xnbo_open_mac()
340 rx_fn, xnbp, &xnbop->o_mphp, MAC_PROMISC_FLAGS_NO_TX_LOOP | in xnbo_open_mac()
346 i_xnbo_close_mac(xnbp, B_TRUE); in xnbo_open_mac()
353 err = mac_unicast_primary_set(xnbop->o_mh, xnbp->xnb_mac_addr); in xnbo_open_mac()
356 bcopy(xnbp->xnb_mac_addr, ea.ether_addr_octet, in xnbo_open_mac()
374 xnbo_close_mac(xnb_t *xnbp) in xnbo_close_mac() argument
376 i_xnbo_close_mac(xnbp, B_FALSE); in xnbo_close_mac()
380 i_xnbo_close_mac(xnb_t *xnbp, boolean_t locked) in i_xnbo_close_mac() argument
382 xnbo_t *xnbop = xnbp->xnb_flavour_data; in i_xnbo_close_mac()
385 ASSERT(!locked || MUTEX_HELD(&xnbp->xnb_state_lock)); in i_xnbo_close_mac()
394 mutex_enter(&xnbp->xnb_state_lock); in i_xnbo_close_mac()
398 mutex_exit(&xnbp->xnb_state_lock); in i_xnbo_close_mac()
405 (void *), xnbp, in i_xnbo_close_mac()
443 xnbo_start_connect(xnb_t *xnbp) in xnbo_start_connect() argument
445 xnbo_t *xnbop = xnbp->xnb_flavour_data; in xnbo_start_connect()
447 return (xnbo_open_mac(xnbp, xnbop->o_link_name)); in xnbo_start_connect()
457 xnbo_peer_connected(xnb_t *xnbp) in xnbo_peer_connected() argument
461 xnbo_t *xnbop = xnbp->xnb_flavour_data; in xnbo_peer_connected()
463 oename = xvdi_get_oename(xnbp->xnb_devinfo); in xnbo_peer_connected()
478 xnbo_peer_disconnected(xnb_t *xnbp) in xnbo_peer_disconnected() argument
480 xnbo_close_mac(xnbp); in xnbo_peer_disconnected()
489 xnbo_hotplug_connected(xnb_t *xnbp) in xnbo_hotplug_connected() argument
492 xnbo_t *xnbop = xnbp->xnb_flavour_data; in xnbo_hotplug_connected()
495 xsname = xvdi_get_xsname(xnbp->xnb_devinfo); in xnbo_hotplug_connected()
522 xnbo_mcast_find(xnb_t *xnbp, ether_addr_t *addr, boolean_t remove) in xnbo_mcast_find() argument
524 xnbo_t *xnbop = xnbp->xnb_flavour_data; in xnbo_mcast_find()
527 ASSERT(MUTEX_HELD(&xnbp->xnb_state_lock)); in xnbo_mcast_find()
556 (void *), xnbp, in xnbo_mcast_find()
569 xnbo_mcast_add(xnb_t *xnbp, ether_addr_t *addr) in xnbo_mcast_add() argument
571 xnbo_t *xnbop = xnbp->xnb_flavour_data; in xnbo_mcast_add()
576 mutex_enter(&xnbp->xnb_state_lock); in xnbo_mcast_add()
578 if (xnbo_mcast_find(xnbp, addr, B_FALSE)) { in xnbo_mcast_add()
586 (void *), xnbp, in xnbo_mcast_add()
598 mutex_exit(&xnbp->xnb_state_lock); in xnbo_mcast_add()
607 xnbo_mcast_del(xnb_t *xnbp, ether_addr_t *addr) in xnbo_mcast_del() argument
611 mutex_enter(&xnbp->xnb_state_lock); in xnbo_mcast_del()
612 r = xnbo_mcast_find(xnbp, addr, B_TRUE); in xnbo_mcast_del()
613 mutex_exit(&xnbp->xnb_state_lock); in xnbo_mcast_del()
651 xnb_t *xnbp = ddi_get_driver_private(dip); in xnbo_detach() local
652 xnbo_t *xnbop = xnbp->xnb_flavour_data; in xnbo_detach()
663 mutex_enter(&xnbp->xnb_tx_lock); in xnbo_detach()
664 mutex_enter(&xnbp->xnb_rx_lock); in xnbo_detach()
666 if (!xnbp->xnb_detachable || xnbp->xnb_connected || in xnbo_detach()
667 (xnbp->xnb_tx_buf_count > 0)) { in xnbo_detach()
668 mutex_exit(&xnbp->xnb_rx_lock); in xnbo_detach()
669 mutex_exit(&xnbp->xnb_tx_lock); in xnbo_detach()
674 mutex_exit(&xnbp->xnb_rx_lock); in xnbo_detach()
675 mutex_exit(&xnbp->xnb_tx_lock); in xnbo_detach()
677 xnbo_close_mac(xnbp); in xnbo_detach()