usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
2912
vrrp_intf_t *vif;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
2931
vif = vr->vvr_vif;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
2932
TAILQ_FOREACH(ip, &vif->vvi_iplist, vip_next) {
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
2965
TAILQ_FOREACH(ip, &vif->vvi_iplist, vip_next) {
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3010
vrrp_intf_t *vif = vr->vvr_vif;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3012
int af = vif->vvi_af;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3021
TAILQ_FOREACH(vip, &vif->vvi_iplist, vip_next) {
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3747
vrrp_intf_t *vif;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3759
if ((vif = vrrpd_lookup_if(vr->vvr_vnic, af)) == NULL) {
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3765
vr->vvr_vif = vif;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3783
(void) close(vif->vvi_sockfd);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3784
vif->vvi_sockfd = -1;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3799
vrrp_intf_t *vif; /* VNIC interface used to send packets */
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3806
vif = vr->vvr_vif;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3808
assert(vif != NULL);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3811
vr->vvr_conf.vvc_name, vif->vvi_ifname);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3813
if (vif->vvi_sockfd != -1) {
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3815
"over %s", vr->vvr_conf.vvc_name, vif->vvi_ifname);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3819
vif->vvi_sockfd = socket(vif->vvi_af, SOCK_RAW, IPPROTO_VRRP);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3820
if (vif->vvi_sockfd < 0) {
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3830
if (setsockopt(vif->vvi_sockfd, IPPROTO_IP, IP_HDRINCL, (char *)&on,
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3841
if (setsockopt(vif->vvi_sockfd, IPPROTO_IP, IP_MULTICAST_LOOP, &off,
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3850
vip = TAILQ_FIRST(&vif->vvi_iplist);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3852
VRRPADDR2STR(vif->vvi_af, &vip->vip_addr, abuf, INET6_ADDRSTRLEN,
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3858
if (setsockopt(vif->vvi_sockfd, IPPROTO_IP, IP_MULTICAST_IF,
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3870
(void) close(vif->vvi_sockfd);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3871
vif->vvi_sockfd = -1;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3885
vrrp_intf_t *vif; /* VNIC interface used to send packets */
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3889
vif = vr->vvr_vif;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3891
assert(vif != NULL);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3894
vr->vvr_conf.vvc_name, vif->vvi_ifname);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3896
if (vif->vvi_sockfd != -1) {
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3898
"over %s", vr->vvr_conf.vvc_name, vif->vvi_ifname);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3902
vif->vvi_sockfd = socket(vif->vvi_af, SOCK_RAW, IPPROTO_VRRP);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3903
if (vif->vvi_sockfd < 0) {
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3913
if (setsockopt(vif->vvi_sockfd, IPPROTO_IPV6, IPV6_MULTICAST_LOOP,
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3925
if (setsockopt(vif->vvi_sockfd, IPPROTO_IPV6, IPV6_MULTICAST_HOPS,
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3937
if (setsockopt(vif->vvi_sockfd, IPPROTO_IPV6, IPV6_MULTICAST_IF,
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3938
&vif->vvi_ifindex, sizeof (uint32_t)) < 0) {
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3940
"failed: %s", vr->vvr_conf.vvc_name, vif->vvi_ifindex,
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3945
" succeed", vr->vvr_conf.vvc_name, vif->vvi_ifindex);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3950
(void) close(vif->vvi_sockfd);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3951
vif->vvi_sockfd = -1;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3964
vrrp_intf_t *vif = vr->vvr_vif;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3968
if (vif != NULL) {
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3971
(void) close(vif->vvi_sockfd);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
3972
vif->vvi_sockfd = -1;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4272
vrrp_intf_t *vif = vr->vvr_vif;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4283
if (vif == NULL)
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4287
vif->vvi_ifname, vrrp_state2str(vr->vvr_state));
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4289
s = (vif->vvi_af == AF_INET) ? vrrpd_ctlsock_fd : vrrpd_ctlsock6_fd;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4290
(void) strncpy(lifr.lifr_name, vif->vvi_ifname,
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4296
vif->vvi_ifname, strerror(errno));
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4313
lifr.lifr_flags, vif->vvi_ifname,
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4323
vrrpd_virtualip_updateone(vrrp_intf_t *vif, vrrp_ip_t *ip, boolean_t checkonly)
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4325
vrrp_state_t state = vif->vvi_vr_state;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4328
int af = vif->vvi_af;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4332
assert(IS_VIRTUAL_INTF(vif));
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4337
vif->vvi_ifname, abuf, checkonly ? ", checkonly" : "");
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4346
vif->vvi_ifname, lifr.lifr_name, abuf,
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4370
vif->vvi_ifname, vrrp_state2str(state),
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4383
vrrp_intf_t *vif = vr->vvr_vif;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4390
vif->vvi_ifname, checkonly ? " checkonly" : "");
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4393
assert(vif != NULL);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4394
assert(IS_VIRTUAL_INTF(vif));
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4395
assert(vif->vvi_vr_state != state);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4396
vif->vvi_vr_state = state;
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4397
for (ip = TAILQ_FIRST(&vif->vvi_iplist); ip != NULL; ip = nextip) {
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4399
err = vrrpd_virtualip_updateone(vif, ip, _B_FALSE);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4402
VRRPADDR2STR(vif->vvi_af, &ip->vip_addr, abuf,
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4405
"%s over %s failed", abuf, vif->vvi_ifname);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4406
vrrpd_delete_ip(vif, ip);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4414
if (!checkonly && TAILQ_EMPTY(&vif->vvi_iplist)) {
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4416
"no IP left over %s", vif->vvi_ifname);
usr/src/cmd/cmd-inet/usr.lib/vrrpd/vrrpd.c
4417
vrrpd_delete_if(vif, _B_TRUE);
usr/src/uts/common/inet/ip/ip_mroute.c
1043
del_vifp(struct vif *vifp)
usr/src/uts/common/inet/ip/ip_mroute.c
1106
struct vif *vifp = ipst->ips_vifs + *vifip;
usr/src/uts/common/inet/ip/ip_mroute.c
180
static void del_vifp(struct vif *);
usr/src/uts/common/inet/ip/ip_mroute.c
181
static void encap_send(ipha_t *, mblk_t *, struct vif *, ipaddr_t);
usr/src/uts/common/inet/ip/ip_mroute.c
193
static void phyint_send(ipha_t *, mblk_t *, struct vif *, ipaddr_t);
usr/src/uts/common/inet/ip/ip_mroute.c
195
static void register_send(ipha_t *, mblk_t *, struct vif *, ipaddr_t);
usr/src/uts/common/inet/ip/ip_mroute.c
1984
struct vif *vifp;
usr/src/uts/common/inet/ip/ip_mroute.c
201
static int priority(struct vif *, ipha_t *);
usr/src/uts/common/inet/ip/ip_mroute.c
202
static void tbf_control(struct vif *, mblk_t *, ipha_t *);
usr/src/uts/common/inet/ip/ip_mroute.c
203
static int tbf_dq_sel(struct vif *, ipha_t *);
usr/src/uts/common/inet/ip/ip_mroute.c
204
static void tbf_process_q(struct vif *);
usr/src/uts/common/inet/ip/ip_mroute.c
205
static void tbf_queue(struct vif *, mblk_t *);
usr/src/uts/common/inet/ip/ip_mroute.c
207
static void tbf_send_packet(struct vif *, mblk_t *);
usr/src/uts/common/inet/ip/ip_mroute.c
208
static void tbf_update_tokens(struct vif *);
usr/src/uts/common/inet/ip/ip_mroute.c
2170
phyint_send(ipha_t *ipha, mblk_t *mp, struct vif *vifp, ipaddr_t dst)
usr/src/uts/common/inet/ip/ip_mroute.c
2202
register_send(ipha_t *ipha, mblk_t *mp, struct vif *vifp, ipaddr_t dst)
usr/src/uts/common/inet/ip/ip_mroute.c
2543
encap_send(ipha_t *ipha, mblk_t *mp, struct vif *vifp, ipaddr_t dst)
usr/src/uts/common/inet/ip/ip_mroute.c
2620
struct vif *vifp;
usr/src/uts/common/inet/ip/ip_mroute.c
2670
struct vif *vife;
usr/src/uts/common/inet/ip/ip_mroute.c
2834
tbf_control(struct vif *vifp, mblk_t *mp, ipha_t *ipha)
usr/src/uts/common/inet/ip/ip_mroute.c
2941
tbf_queue(struct vif *vifp, mblk_t *mp)
usr/src/uts/common/inet/ip/ip_mroute.c
2975
tbf_process_q(struct vif *vifp)
usr/src/uts/common/inet/ip/ip_mroute.c
3025
struct vif *vifp = arg;
usr/src/uts/common/inet/ip/ip_mroute.c
3055
tbf_dq_sel(struct vif *vifp, ipha_t *ipha)
usr/src/uts/common/inet/ip/ip_mroute.c
3104
tbf_send_packet(struct vif *vifp, mblk_t *mp)
usr/src/uts/common/inet/ip/ip_mroute.c
3207
tbf_update_tokens(struct vif *vifp)
usr/src/uts/common/inet/ip/ip_mroute.c
3251
priority(struct vif *vifp, ipha_t *ipha)
usr/src/uts/common/inet/ip/ip_mroute.c
586
ipst->ips_vifs = kmem_zalloc(sizeof (struct vif) * (MAXVIFS+1),
usr/src/uts/common/inet/ip/ip_mroute.c
655
struct vif *vifp = ipst->ips_vifs + vifi;
usr/src/uts/common/inet/ip/ip_mroute.c
772
kmem_free(ipst->ips_vifs, sizeof (struct vif) * (MAXVIFS+1));
usr/src/uts/common/inet/ip/ip_mroute.c
806
unlock_good_vif(struct vif *vifp)
usr/src/uts/common/inet/ip/ip_mroute.c
814
lock_good_vif(struct vif *vifp)
usr/src/uts/common/inet/ip/ip_mroute.c
842
struct vif *vifp = ipst->ips_vifs + vifcp->vifc_vifi;
usr/src/uts/common/inet/ip_stack.h
341
struct vif *ips_vifs;
usr/src/uts/common/inet/ip_stack.h
349
struct vif *ips_last_encap_vif;
usr/src/uts/common/io/bnxe/577xx/drivers/common/lm/fw/5710_hsi.h
5760
u16_t vif /* VIF */;
usr/src/uts/common/io/qede/579xx/drivers/ecore/ecore_hsi_fcoe.h
116
__le16 vif /* VIF */;
usr/src/uts/common/io/qede/579xx/drivers/ecore/hsi_repository/ecore_hsi_fcoe.h
116
__le16 vif /* VIF */;
usr/src/uts/common/io/vioif/vioif.c
1010
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1011
vioif_txbuf_free(vif, tb);
usr/src/uts/common/io/vioif/vioif.c
1012
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1021
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1022
vif->vif_stat_tx_reclaim += num_reclaimed;
usr/src/uts/common/io/vioif/vioif.c
1023
if (vif->vif_tx_corked) {
usr/src/uts/common/io/vioif/vioif.c
1030
vif->vif_tx_corked = B_FALSE;
usr/src/uts/common/io/vioif/vioif.c
1031
virtio_queue_no_interrupt(vif->vif_tx_vq, B_TRUE);
usr/src/uts/common/io/vioif/vioif.c
1035
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1037
mac_tx_update(vif->vif_mac_handle);
usr/src/uts/common/io/vioif/vioif.c
1047
vioif_t *vif = arg;
usr/src/uts/common/io/vioif/vioif.c
1050
num_reclaimed = vioif_reclaim_used_tx(vif);
usr/src/uts/common/io/vioif/vioif.c
1052
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1053
vif->vif_tx_reclaim_tid = 0;
usr/src/uts/common/io/vioif/vioif.c
1059
if (num_reclaimed != 0 || virtio_queue_nactive(vif->vif_tx_vq) != 0) {
usr/src/uts/common/io/vioif/vioif.c
1061
if (!vif->vif_tx_drain) {
usr/src/uts/common/io/vioif/vioif.c
1062
vioif_reclaim_restart(vif);
usr/src/uts/common/io/vioif/vioif.c
1065
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1069
vioif_reclaim_restart(vioif_t *vif)
usr/src/uts/common/io/vioif/vioif.c
1071
VERIFY(MUTEX_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
1072
VERIFY(!vif->vif_tx_drain);
usr/src/uts/common/io/vioif/vioif.c
1074
if (vif->vif_tx_reclaim_tid == 0) {
usr/src/uts/common/io/vioif/vioif.c
1075
vif->vif_tx_reclaim_tid = timeout(vioif_reclaim_periodic, vif,
usr/src/uts/common/io/vioif/vioif.c
1081
vioif_tx_drain(vioif_t *vif)
usr/src/uts/common/io/vioif/vioif.c
1083
VERIFY(MUTEX_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
1084
VERIFY3S(vif->vif_runstate, ==, VIOIF_RUNSTATE_STOPPING);
usr/src/uts/common/io/vioif/vioif.c
1086
vif->vif_tx_drain = B_TRUE;
usr/src/uts/common/io/vioif/vioif.c
1088
if (vif->vif_tx_reclaim_tid != 0) {
usr/src/uts/common/io/vioif/vioif.c
1089
timeout_id_t tid = vif->vif_tx_reclaim_tid;
usr/src/uts/common/io/vioif/vioif.c
1098
vif->vif_tx_reclaim_tid = 0;
usr/src/uts/common/io/vioif/vioif.c
1099
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1101
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1103
virtio_queue_no_interrupt(vif->vif_tx_vq, B_TRUE);
usr/src/uts/common/io/vioif/vioif.c
1109
while (vif->vif_ntxbufs_alloc > 0) {
usr/src/uts/common/io/vioif/vioif.c
1110
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1111
(void) vioif_reclaim_used_tx(vif);
usr/src/uts/common/io/vioif/vioif.c
1113
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1115
VERIFY(!vif->vif_tx_corked);
usr/src/uts/common/io/vioif/vioif.c
1116
VERIFY3U(vif->vif_tx_reclaim_tid, ==, 0);
usr/src/uts/common/io/vioif/vioif.c
1117
VERIFY3U(virtio_queue_nactive(vif->vif_tx_vq), ==, 0);
usr/src/uts/common/io/vioif/vioif.c
1121
vioif_tx_inline(vioif_t *vif, vioif_txbuf_t *tb, mblk_t *mp, size_t msg_size)
usr/src/uts/common/io/vioif/vioif.c
1123
VERIFY(MUTEX_NOT_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
1142
vioif_tx_external(vioif_t *vif, vioif_txbuf_t *tb, mblk_t *mp, size_t msg_size)
usr/src/uts/common/io/vioif/vioif.c
1144
VERIFY(MUTEX_NOT_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
1161
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1162
vif->vif_txfail_indirect_limit++;
usr/src/uts/common/io/vioif/vioif.c
1163
vif->vif_notxbuf++;
usr/src/uts/common/io/vioif/vioif.c
1164
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1173
virtio_dma_alloc_nomem(vif->vif_virtio,
usr/src/uts/common/io/vioif/vioif.c
1175
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1176
vif->vif_notxbuf++;
usr/src/uts/common/io/vioif/vioif.c
1177
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1186
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1187
vif->vif_txfail_dma_bind++;
usr/src/uts/common/io/vioif/vioif.c
1188
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1198
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1199
vif->vif_txfail_indirect_limit++;
usr/src/uts/common/io/vioif/vioif.c
1200
vif->vif_notxbuf++;
usr/src/uts/common/io/vioif/vioif.c
1201
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1231
vioif_send(vioif_t *vif, mblk_t *mp)
usr/src/uts/common/io/vioif/vioif.c
1233
VERIFY(MUTEX_NOT_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
1251
if (vif->vif_tx_tso4 || vif->vif_tx_tso6) {
usr/src/uts/common/io/vioif/vioif.c
1256
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1257
if ((tb = vioif_txbuf_alloc(vif)) == NULL) {
usr/src/uts/common/io/vioif/vioif.c
1258
vif->vif_notxbuf++;
usr/src/uts/common/io/vioif/vioif.c
1261
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1271
if (vif->vif_rxbuf_hdrlen >
usr/src/uts/common/io/vioif/vioif.c
1283
virtio_dma_cookie_pa(tb->tb_dma, 0), vif->vif_rxbuf_hdrlen,
usr/src/uts/common/io/vioif/vioif.c
1285
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1286
vif->vif_notxbuf++;
usr/src/uts/common/io/vioif/vioif.c
1301
ASSERT(vif->vif_tx_csum);
usr/src/uts/common/io/vioif/vioif.c
1341
if (meo.meoi_l3proto == ETHERTYPE_IP && vif->vif_tx_tso4) {
usr/src/uts/common/io/vioif/vioif.c
1344
vif->vif_tx_tso6) {
usr/src/uts/common/io/vioif/vioif.c
1393
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1395
vif->vif_brdcstxmt++;
usr/src/uts/common/io/vioif/vioif.c
1397
vif->vif_multixmt++;
usr/src/uts/common/io/vioif/vioif.c
1399
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1407
if (msg_size < vif->vif_txcopy_thresh) {
usr/src/uts/common/io/vioif/vioif.c
1408
ret = vioif_tx_inline(vif, tb, mp, msg_size);
usr/src/uts/common/io/vioif/vioif.c
1410
ret = vioif_tx_external(vif, tb, mp, msg_size);
usr/src/uts/common/io/vioif/vioif.c
1414
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1420
vif->vif_opackets++;
usr/src/uts/common/io/vioif/vioif.c
1421
vif->vif_obytes += msg_size;
usr/src/uts/common/io/vioif/vioif.c
1422
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1430
vif->vif_oerrors++;
usr/src/uts/common/io/vioif/vioif.c
1432
vioif_txbuf_free(vif, tb);
usr/src/uts/common/io/vioif/vioif.c
1434
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1442
vioif_t *vif = arg;
usr/src/uts/common/io/vioif/vioif.c
1449
if (virtio_queue_nactive(vif->vif_tx_vq) != 0) {
usr/src/uts/common/io/vioif/vioif.c
1450
(void) vioif_reclaim_used_tx(vif);
usr/src/uts/common/io/vioif/vioif.c
1457
if (!vioif_send(vif, mp)) {
usr/src/uts/common/io/vioif/vioif.c
1464
if (vioif_reclaim_used_tx(vif) != 0) {
usr/src/uts/common/io/vioif/vioif.c
1474
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1475
vif->vif_tx_corked = B_TRUE;
usr/src/uts/common/io/vioif/vioif.c
1476
virtio_queue_no_interrupt(vif->vif_tx_vq, B_FALSE);
usr/src/uts/common/io/vioif/vioif.c
1477
vioif_reclaim_restart(vif);
usr/src/uts/common/io/vioif/vioif.c
1478
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1485
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1486
vioif_reclaim_restart(vif);
usr/src/uts/common/io/vioif/vioif.c
1487
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1495
vioif_t *vif = arg;
usr/src/uts/common/io/vioif/vioif.c
1497
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1499
VERIFY3S(vif->vif_runstate, ==, VIOIF_RUNSTATE_STOPPED);
usr/src/uts/common/io/vioif/vioif.c
1500
vif->vif_runstate = VIOIF_RUNSTATE_RUNNING;
usr/src/uts/common/io/vioif/vioif.c
1502
virtio_queue_no_interrupt(vif->vif_rx_vq, B_FALSE);
usr/src/uts/common/io/vioif/vioif.c
1509
vif->vif_tx_drain = B_FALSE;
usr/src/uts/common/io/vioif/vioif.c
1516
(void) vioif_add_rx(vif);
usr/src/uts/common/io/vioif/vioif.c
1518
vioif_get_data(vif);
usr/src/uts/common/io/vioif/vioif.c
1520
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1527
vioif_t *vif = arg;
usr/src/uts/common/io/vioif/vioif.c
1529
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1531
VERIFY3S(vif->vif_runstate, ==, VIOIF_RUNSTATE_RUNNING);
usr/src/uts/common/io/vioif/vioif.c
1532
vif->vif_runstate = VIOIF_RUNSTATE_STOPPING;
usr/src/uts/common/io/vioif/vioif.c
1535
vioif_tx_drain(vif);
usr/src/uts/common/io/vioif/vioif.c
1537
virtio_queue_no_interrupt(vif->vif_rx_vq, B_TRUE);
usr/src/uts/common/io/vioif/vioif.c
1539
vif->vif_runstate = VIOIF_RUNSTATE_STOPPED;
usr/src/uts/common/io/vioif/vioif.c
1540
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1568
vioif_t *vif = arg;
usr/src/uts/common/io/vioif/vioif.c
1572
*val = vif->vif_ierrors;
usr/src/uts/common/io/vioif/vioif.c
1575
*val = vif->vif_oerrors;
usr/src/uts/common/io/vioif/vioif.c
1578
*val = vif->vif_multircv;
usr/src/uts/common/io/vioif/vioif.c
1581
*val = vif->vif_brdcstrcv;
usr/src/uts/common/io/vioif/vioif.c
1584
*val = vif->vif_multixmt;
usr/src/uts/common/io/vioif/vioif.c
1587
*val = vif->vif_brdcstxmt;
usr/src/uts/common/io/vioif/vioif.c
1590
*val = vif->vif_ipackets;
usr/src/uts/common/io/vioif/vioif.c
1593
*val = vif->vif_rbytes;
usr/src/uts/common/io/vioif/vioif.c
1596
*val = vif->vif_opackets;
usr/src/uts/common/io/vioif/vioif.c
1599
*val = vif->vif_obytes;
usr/src/uts/common/io/vioif/vioif.c
1602
*val = vif->vif_norecvbuf;
usr/src/uts/common/io/vioif/vioif.c
1605
*val = vif->vif_notxbuf;
usr/src/uts/common/io/vioif/vioif.c
1608
if (vif->vif_speed == VIRTIO_NET_CONFIG_SPEED_UNKNOWN)
usr/src/uts/common/io/vioif/vioif.c
1611
*val = vif->vif_speed * 1000000ULL;
usr/src/uts/common/io/vioif/vioif.c
1614
*val = vioif_spec_to_duplex(vif->vif_duplex);
usr/src/uts/common/io/vioif/vioif.c
1628
vioif_t *vif = arg;
usr/src/uts/common/io/vioif/vioif.c
1639
if (mtu < ETHERMIN || mtu > vif->vif_mtu_max) {
usr/src/uts/common/io/vioif/vioif.c
1643
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1644
if ((r = mac_maxsdu_update(vif->vif_mac_handle, mtu)) == 0) {
usr/src/uts/common/io/vioif/vioif.c
1645
vif->vif_mtu = mtu;
usr/src/uts/common/io/vioif/vioif.c
1647
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1659
resp = &vif->vif_txcopy_thresh;
usr/src/uts/common/io/vioif/vioif.c
1662
resp = &vif->vif_rxcopy_thresh;
usr/src/uts/common/io/vioif/vioif.c
1676
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1678
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1692
vioif_t *vif = arg;
usr/src/uts/common/io/vioif/vioif.c
1700
duplex = vioif_spec_to_duplex(vif->vif_duplex);
usr/src/uts/common/io/vioif/vioif.c
1709
speed = (uint64_t)vif->vif_speed * 1000000ULL;
usr/src/uts/common/io/vioif/vioif.c
1718
state = vioif_spec_to_state(vif->vif_status);
usr/src/uts/common/io/vioif/vioif.c
1725
bcopy(&vif->vif_mtu, pr_val, sizeof (uint32_t));
usr/src/uts/common/io/vioif/vioif.c
1731
value = vif->vif_txcopy_thresh;
usr/src/uts/common/io/vioif/vioif.c
1733
value = vif->vif_rxcopy_thresh;
usr/src/uts/common/io/vioif/vioif.c
1756
vioif_t *vif = arg;
usr/src/uts/common/io/vioif/vioif.c
1769
mac_prop_info_set_range_uint32(prh, ETHERMIN, vif->vif_mtu_max);
usr/src/uts/common/io/vioif/vioif.c
1796
vioif_t *vif = arg;
usr/src/uts/common/io/vioif/vioif.c
1800
if (!vif->vif_tx_csum) {
usr/src/uts/common/io/vioif/vioif.c
1810
if (!vif->vif_tx_tso4) {
usr/src/uts/common/io/vioif/vioif.c
1828
vioif_has_feature(vioif_t *vif, uint64_t feature)
usr/src/uts/common/io/vioif/vioif.c
1830
return (virtio_features_present(vif->vif_virtio, feature));
usr/src/uts/common/io/vioif/vioif.c
1839
vioif_get_mac(vioif_t *vif)
usr/src/uts/common/io/vioif/vioif.c
1841
VERIFY(MUTEX_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
1843
if (vioif_has_feature(vif, VIRTIO_NET_F_MAC)) {
usr/src/uts/common/io/vioif/vioif.c
1844
uint8_t gen = virtio_dev_getgen(vif->vif_virtio);
usr/src/uts/common/io/vioif/vioif.c
1847
vif->vif_mac[i] =
usr/src/uts/common/io/vioif/vioif.c
1848
virtio_dev_get8(vif->vif_virtio,
usr/src/uts/common/io/vioif/vioif.c
1851
} while (gen != virtio_dev_getgen(vif->vif_virtio));
usr/src/uts/common/io/vioif/vioif.c
1853
vif->vif_mac_from_host = 1;
usr/src/uts/common/io/vioif/vioif.c
1858
(void) random_get_pseudo_bytes(vif->vif_mac, ETHERADDRL);
usr/src/uts/common/io/vioif/vioif.c
1860
vif->vif_mac[0] &= ~1;
usr/src/uts/common/io/vioif/vioif.c
1862
vif->vif_mac[1] |= 2;
usr/src/uts/common/io/vioif/vioif.c
1868
virtio_dev_put8(vif->vif_virtio, VIRTIO_NET_CONFIG_MAC + i,
usr/src/uts/common/io/vioif/vioif.c
1869
vif->vif_mac[i]);
usr/src/uts/common/io/vioif/vioif.c
1871
vif->vif_mac_from_host = 0;
usr/src/uts/common/io/vioif/vioif.c
1873
dev_err(vif->vif_dip, CE_NOTE, "!Generated a random MAC address: "
usr/src/uts/common/io/vioif/vioif.c
1875
(uint_t)vif->vif_mac[0], (uint_t)vif->vif_mac[1],
usr/src/uts/common/io/vioif/vioif.c
1876
(uint_t)vif->vif_mac[2], (uint_t)vif->vif_mac[3],
usr/src/uts/common/io/vioif/vioif.c
1877
(uint_t)vif->vif_mac[4], (uint_t)vif->vif_mac[5]);
usr/src/uts/common/io/vioif/vioif.c
1881
vioif_get_data(vioif_t *vif)
usr/src/uts/common/io/vioif/vioif.c
1885
VERIFY(MUTEX_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
1887
orig_state = vioif_spec_to_state(vif->vif_status);
usr/src/uts/common/io/vioif/vioif.c
1888
if (vioif_has_feature(vif, VIRTIO_NET_F_STATUS)) {
usr/src/uts/common/io/vioif/vioif.c
1889
vif->vif_status = virtio_dev_get16(vif->vif_virtio,
usr/src/uts/common/io/vioif/vioif.c
1892
vif->vif_status = VIRTIO_NET_CONFIG_STATUS_LINK_UP;
usr/src/uts/common/io/vioif/vioif.c
1894
new_state = vioif_spec_to_state(vif->vif_status);
usr/src/uts/common/io/vioif/vioif.c
1897
if (vioif_has_feature(vif, VIRTIO_NET_F_SPEED_DUPLEX)) {
usr/src/uts/common/io/vioif/vioif.c
1898
vif->vif_speed = virtio_dev_get32(vif->vif_virtio,
usr/src/uts/common/io/vioif/vioif.c
1900
vif->vif_duplex = virtio_dev_get8(vif->vif_virtio,
usr/src/uts/common/io/vioif/vioif.c
1903
vif->vif_speed = VIRTIO_NET_CONFIG_SPEED_UNKNOWN;
usr/src/uts/common/io/vioif/vioif.c
1904
vif->vif_duplex = VIRTIO_NET_CONFIG_DUPLEX_FULL;
usr/src/uts/common/io/vioif/vioif.c
1907
vif->vif_speed = 0;
usr/src/uts/common/io/vioif/vioif.c
1908
vif->vif_duplex = VIRTIO_NET_CONFIG_DUPLEX_UNKNOWN;
usr/src/uts/common/io/vioif/vioif.c
1916
if (vif->vif_speed > INT32_MAX)
usr/src/uts/common/io/vioif/vioif.c
1917
vif->vif_speed = VIRTIO_NET_CONFIG_SPEED_UNKNOWN;
usr/src/uts/common/io/vioif/vioif.c
1920
mac_link_update(vif->vif_mac_handle, new_state);
usr/src/uts/common/io/vioif/vioif.c
1929
vioif_t *vif = (vioif_t *)arg0;
usr/src/uts/common/io/vioif/vioif.c
1931
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1932
(void) vioif_process_rx(vif);
usr/src/uts/common/io/vioif/vioif.c
1939
(void) vioif_add_rx(vif);
usr/src/uts/common/io/vioif/vioif.c
1940
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
1948
vioif_t *vif = (vioif_t *)arg0;
usr/src/uts/common/io/vioif/vioif.c
1954
(void) vioif_reclaim_used_tx(vif);
usr/src/uts/common/io/vioif/vioif.c
1960
vioif_check_features(vioif_t *vif)
usr/src/uts/common/io/vioif/vioif.c
1962
VERIFY(MUTEX_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
1964
vif->vif_tx_csum = 0;
usr/src/uts/common/io/vioif/vioif.c
1965
vif->vif_tx_tso4 = 0;
usr/src/uts/common/io/vioif/vioif.c
1966
vif->vif_tx_tso6 = 0;
usr/src/uts/common/io/vioif/vioif.c
1968
if (vioif_has_feature(vif, VIRTIO_NET_F_CSUM)) {
usr/src/uts/common/io/vioif/vioif.c
1972
vif->vif_tx_csum = 1;
usr/src/uts/common/io/vioif/vioif.c
1978
boolean_t gso = vioif_has_feature(vif, VIRTIO_NET_F_GSO);
usr/src/uts/common/io/vioif/vioif.c
1979
boolean_t tso4 = vioif_has_feature(vif, VIRTIO_NET_F_HOST_TSO4);
usr/src/uts/common/io/vioif/vioif.c
1980
boolean_t tso6 = vioif_has_feature(vif, VIRTIO_NET_F_HOST_TSO6);
usr/src/uts/common/io/vioif/vioif.c
1981
boolean_t ecn = vioif_has_feature(vif, VIRTIO_NET_F_HOST_ECN);
usr/src/uts/common/io/vioif/vioif.c
1991
vif->vif_tx_tso4 = 1;
usr/src/uts/common/io/vioif/vioif.c
1992
vif->vif_tx_tso6 = 1;
usr/src/uts/common/io/vioif/vioif.c
1995
vif->vif_tx_tso4 = 1;
usr/src/uts/common/io/vioif/vioif.c
1998
vif->vif_tx_tso6 = 1;
usr/src/uts/common/io/vioif/vioif.c
2002
if (vioif_has_feature(vif, VIRTIO_NET_F_CTRL_VQ)) {
usr/src/uts/common/io/vioif/vioif.c
2003
vif->vif_has_ctrlq = 1;
usr/src/uts/common/io/vioif/vioif.c
2009
if (vioif_has_feature(vif, VIRTIO_NET_F_CTRL_RX))
usr/src/uts/common/io/vioif/vioif.c
2010
vif->vif_has_ctrlq_rx = 1;
usr/src/uts/common/io/vioif/vioif.c
2057
vioif_t *vif = (vioif_t *)arg0;
usr/src/uts/common/io/vioif/vioif.c
2063
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
2064
vioif_get_data(vif);
usr/src/uts/common/io/vioif/vioif.c
2065
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
2074
vioif_t *vif;
usr/src/uts/common/io/vioif/vioif.c
2096
vif = kmem_zalloc(sizeof (*vif), KM_SLEEP);
usr/src/uts/common/io/vioif/vioif.c
2097
vif->vif_dip = dip;
usr/src/uts/common/io/vioif/vioif.c
2098
vif->vif_virtio = vio;
usr/src/uts/common/io/vioif/vioif.c
2099
vif->vif_runstate = VIOIF_RUNSTATE_STOPPED;
usr/src/uts/common/io/vioif/vioif.c
2100
ddi_set_driver_private(dip, vif);
usr/src/uts/common/io/vioif/vioif.c
2102
if ((vif->vif_rx_vq = virtio_queue_alloc(vio, VIRTIO_NET_VIRTQ_RX,
usr/src/uts/common/io/vioif/vioif.c
2103
"rx", vioif_rx_handler, vif, B_FALSE, VIOIF_MAX_SEGS)) == NULL ||
usr/src/uts/common/io/vioif/vioif.c
2104
(vif->vif_tx_vq = virtio_queue_alloc(vio, VIRTIO_NET_VIRTQ_TX,
usr/src/uts/common/io/vioif/vioif.c
2105
"tx", vioif_tx_handler, vif, B_FALSE, VIOIF_MAX_SEGS)) == NULL) {
usr/src/uts/common/io/vioif/vioif.c
2109
if (vioif_has_feature(vif, VIRTIO_NET_F_CTRL_VQ) &&
usr/src/uts/common/io/vioif/vioif.c
2110
(vif->vif_ctrl_vq = virtio_queue_alloc(vio,
usr/src/uts/common/io/vioif/vioif.c
2111
VIRTIO_NET_VIRTQ_CONTROL, "ctrlq", NULL, vif,
usr/src/uts/common/io/vioif/vioif.c
2116
virtio_register_cfgchange_handler(vio, vioif_cfgchange, vif);
usr/src/uts/common/io/vioif/vioif.c
2124
virtio_queue_no_interrupt(vif->vif_rx_vq, B_TRUE);
usr/src/uts/common/io/vioif/vioif.c
2125
virtio_queue_no_interrupt(vif->vif_tx_vq, B_TRUE);
usr/src/uts/common/io/vioif/vioif.c
2126
if (vif->vif_ctrl_vq != NULL)
usr/src/uts/common/io/vioif/vioif.c
2127
virtio_queue_no_interrupt(vif->vif_ctrl_vq, B_TRUE);
usr/src/uts/common/io/vioif/vioif.c
2129
mutex_init(&vif->vif_mutex, NULL, MUTEX_DRIVER, virtio_intr_pri(vio));
usr/src/uts/common/io/vioif/vioif.c
2130
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
2132
vioif_get_mac(vif);
usr/src/uts/common/io/vioif/vioif.c
2133
vif->vif_duplex = VIRTIO_NET_CONFIG_DUPLEX_UNKNOWN;
usr/src/uts/common/io/vioif/vioif.c
2134
vif->vif_speed = VIRTIO_NET_CONFIG_SPEED_UNKNOWN;
usr/src/uts/common/io/vioif/vioif.c
2136
vif->vif_rxcopy_thresh = VIOIF_MACPROP_RXCOPY_THRESH_DEF;
usr/src/uts/common/io/vioif/vioif.c
2137
vif->vif_txcopy_thresh = VIOIF_MACPROP_TXCOPY_THRESH_DEF;
usr/src/uts/common/io/vioif/vioif.c
2138
vif->vif_rxbuf_hdrlen = VIRTIO_NET_HDR_LEN(virtio_modern(vio));
usr/src/uts/common/io/vioif/vioif.c
2140
if (vioif_has_feature(vif, VIRTIO_NET_F_MTU)) {
usr/src/uts/common/io/vioif/vioif.c
2141
vif->vif_mtu_max = virtio_dev_get16(vio, VIRTIO_NET_CONFIG_MTU);
usr/src/uts/common/io/vioif/vioif.c
2143
vif->vif_mtu_max = ETHERMTU;
usr/src/uts/common/io/vioif/vioif.c
2146
vif->vif_mtu = ETHERMTU;
usr/src/uts/common/io/vioif/vioif.c
2147
if (vif->vif_mtu > vif->vif_mtu_max) {
usr/src/uts/common/io/vioif/vioif.c
2148
vif->vif_mtu = vif->vif_mtu_max;
usr/src/uts/common/io/vioif/vioif.c
2151
vioif_check_features(vif);
usr/src/uts/common/io/vioif/vioif.c
2153
if (vioif_alloc_bufs(vif) != 0) {
usr/src/uts/common/io/vioif/vioif.c
2154
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
2159
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
2172
macp->m_driver = vif;
usr/src/uts/common/io/vioif/vioif.c
2174
macp->m_src_addr = vif->vif_mac;
usr/src/uts/common/io/vioif/vioif.c
2177
macp->m_max_sdu = vif->vif_mtu;
usr/src/uts/common/io/vioif/vioif.c
2181
if ((ret = mac_register(macp, &vif->vif_mac_handle)) != 0) {
usr/src/uts/common/io/vioif/vioif.c
2187
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
2188
vioif_get_data(vif);
usr/src/uts/common/io/vioif/vioif.c
2189
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
2196
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
2197
vioif_free_bufs(vif);
usr/src/uts/common/io/vioif/vioif.c
2198
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
2201
kmem_free(vif, sizeof (*vif));
usr/src/uts/common/io/vioif/vioif.c
2209
vioif_t *vif;
usr/src/uts/common/io/vioif/vioif.c
2215
if ((vif = ddi_get_driver_private(dip)) == NULL) {
usr/src/uts/common/io/vioif/vioif.c
2219
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
2220
if (vif->vif_runstate != VIOIF_RUNSTATE_STOPPED) {
usr/src/uts/common/io/vioif/vioif.c
2222
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
2230
VERIFY3U(vif->vif_ntxbufs_alloc, ==, 0);
usr/src/uts/common/io/vioif/vioif.c
2237
if (vif->vif_nrxbufs_onloan > 0) {
usr/src/uts/common/io/vioif/vioif.c
2239
"cannot detach", vif->vif_nrxbufs_onloan);
usr/src/uts/common/io/vioif/vioif.c
2240
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
2244
if ((r = mac_unregister(vif->vif_mac_handle)) != 0) {
usr/src/uts/common/io/vioif/vioif.c
2253
virtio_shutdown(vif->vif_virtio);
usr/src/uts/common/io/vioif/vioif.c
2257
if ((vic = virtio_queue_evacuate(vif->vif_rx_vq)) == NULL) {
usr/src/uts/common/io/vioif/vioif.c
2262
vioif_rxbuf_free(vif, rb);
usr/src/uts/common/io/vioif/vioif.c
2270
vioif_free_bufs(vif);
usr/src/uts/common/io/vioif/vioif.c
2271
(void) virtio_fini(vif->vif_virtio, B_FALSE);
usr/src/uts/common/io/vioif/vioif.c
2273
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
2274
mutex_destroy(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
2276
kmem_free(vif, sizeof (*vif));
usr/src/uts/common/io/vioif/vioif.c
2284
vioif_t *vif;
usr/src/uts/common/io/vioif/vioif.c
2286
if ((vif = ddi_get_driver_private(dip)) == NULL)
usr/src/uts/common/io/vioif/vioif.c
2289
return (virtio_quiesce(vif->vif_virtio));
usr/src/uts/common/io/vioif/vioif.c
263
vioif_txbuf_alloc(vioif_t *vif)
usr/src/uts/common/io/vioif/vioif.c
267
VERIFY(MUTEX_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
269
if ((tb = list_remove_head(&vif->vif_txbufs)) != NULL) {
usr/src/uts/common/io/vioif/vioif.c
270
vif->vif_ntxbufs_alloc++;
usr/src/uts/common/io/vioif/vioif.c
277
vioif_txbuf_free(vioif_t *vif, vioif_txbuf_t *tb)
usr/src/uts/common/io/vioif/vioif.c
279
VERIFY(MUTEX_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
281
VERIFY3U(vif->vif_ntxbufs_alloc, >, 0);
usr/src/uts/common/io/vioif/vioif.c
282
vif->vif_ntxbufs_alloc--;
usr/src/uts/common/io/vioif/vioif.c
285
list_insert_head(&vif->vif_txbufs, tb);
usr/src/uts/common/io/vioif/vioif.c
289
vioif_rxbuf_alloc(vioif_t *vif)
usr/src/uts/common/io/vioif/vioif.c
293
VERIFY(MUTEX_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
295
if ((rb = list_remove_head(&vif->vif_rxbufs)) != NULL) {
usr/src/uts/common/io/vioif/vioif.c
296
vif->vif_nrxbufs_alloc++;
usr/src/uts/common/io/vioif/vioif.c
303
vioif_rxbuf_free(vioif_t *vif, vioif_rxbuf_t *rb)
usr/src/uts/common/io/vioif/vioif.c
305
VERIFY(MUTEX_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
307
VERIFY3U(vif->vif_nrxbufs_alloc, >, 0);
usr/src/uts/common/io/vioif/vioif.c
308
vif->vif_nrxbufs_alloc--;
usr/src/uts/common/io/vioif/vioif.c
311
list_insert_head(&vif->vif_rxbufs, rb);
usr/src/uts/common/io/vioif/vioif.c
318
vioif_t *vif = rb->rb_vioif;
usr/src/uts/common/io/vioif/vioif.c
320
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
325
vioif_rxbuf_free(vif, rb);
usr/src/uts/common/io/vioif/vioif.c
327
VERIFY3U(vif->vif_nrxbufs_onloan, >, 0);
usr/src/uts/common/io/vioif/vioif.c
328
vif->vif_nrxbufs_onloan--;
usr/src/uts/common/io/vioif/vioif.c
336
(void) vioif_add_rx(vif);
usr/src/uts/common/io/vioif/vioif.c
338
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
342
vioif_ctrlbuf_alloc(vioif_t *vif)
usr/src/uts/common/io/vioif/vioif.c
346
VERIFY(MUTEX_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
348
if ((cb = list_remove_head(&vif->vif_ctrlbufs)) != NULL) {
usr/src/uts/common/io/vioif/vioif.c
349
vif->vif_nctrlbufs_alloc++;
usr/src/uts/common/io/vioif/vioif.c
356
vioif_ctrlbuf_free(vioif_t *vif, vioif_ctrlbuf_t *cb)
usr/src/uts/common/io/vioif/vioif.c
358
VERIFY(MUTEX_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
360
VERIFY3U(vif->vif_nctrlbufs_alloc, >, 0);
usr/src/uts/common/io/vioif/vioif.c
361
vif->vif_nctrlbufs_alloc--;
usr/src/uts/common/io/vioif/vioif.c
364
list_insert_head(&vif->vif_ctrlbufs, cb);
usr/src/uts/common/io/vioif/vioif.c
368
vioif_free_bufs(vioif_t *vif)
usr/src/uts/common/io/vioif/vioif.c
370
VERIFY(MUTEX_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
372
VERIFY3U(vif->vif_ntxbufs_alloc, ==, 0);
usr/src/uts/common/io/vioif/vioif.c
373
for (uint_t i = 0; i < vif->vif_txbufs_capacity; i++) {
usr/src/uts/common/io/vioif/vioif.c
374
vioif_txbuf_t *tb = &vif->vif_txbufs_mem[i];
usr/src/uts/common/io/vioif/vioif.c
380
list_remove(&vif->vif_txbufs, tb);
usr/src/uts/common/io/vioif/vioif.c
412
VERIFY(list_is_empty(&vif->vif_txbufs));
usr/src/uts/common/io/vioif/vioif.c
413
if (vif->vif_txbufs_mem != NULL) {
usr/src/uts/common/io/vioif/vioif.c
414
kmem_free(vif->vif_txbufs_mem,
usr/src/uts/common/io/vioif/vioif.c
415
sizeof (vioif_txbuf_t) * vif->vif_txbufs_capacity);
usr/src/uts/common/io/vioif/vioif.c
416
vif->vif_txbufs_mem = NULL;
usr/src/uts/common/io/vioif/vioif.c
417
vif->vif_txbufs_capacity = 0;
usr/src/uts/common/io/vioif/vioif.c
420
VERIFY3U(vif->vif_nrxbufs_alloc, ==, 0);
usr/src/uts/common/io/vioif/vioif.c
421
for (uint_t i = 0; i < vif->vif_rxbufs_capacity; i++) {
usr/src/uts/common/io/vioif/vioif.c
422
vioif_rxbuf_t *rb = &vif->vif_rxbufs_mem[i];
usr/src/uts/common/io/vioif/vioif.c
428
list_remove(&vif->vif_rxbufs, rb);
usr/src/uts/common/io/vioif/vioif.c
440
VERIFY(list_is_empty(&vif->vif_rxbufs));
usr/src/uts/common/io/vioif/vioif.c
441
if (vif->vif_rxbufs_mem != NULL) {
usr/src/uts/common/io/vioif/vioif.c
442
kmem_free(vif->vif_rxbufs_mem,
usr/src/uts/common/io/vioif/vioif.c
443
sizeof (vioif_rxbuf_t) * vif->vif_rxbufs_capacity);
usr/src/uts/common/io/vioif/vioif.c
444
vif->vif_rxbufs_mem = NULL;
usr/src/uts/common/io/vioif/vioif.c
445
vif->vif_rxbufs_capacity = 0;
usr/src/uts/common/io/vioif/vioif.c
448
if (vif->vif_has_ctrlq) {
usr/src/uts/common/io/vioif/vioif.c
449
VERIFY3U(vif->vif_nctrlbufs_alloc, ==, 0);
usr/src/uts/common/io/vioif/vioif.c
450
for (uint_t i = 0; i < vif->vif_ctrlbufs_capacity; i++) {
usr/src/uts/common/io/vioif/vioif.c
451
vioif_ctrlbuf_t *cb = &vif->vif_ctrlbufs_mem[i];
usr/src/uts/common/io/vioif/vioif.c
457
list_remove(&vif->vif_ctrlbufs, cb);
usr/src/uts/common/io/vioif/vioif.c
469
VERIFY(list_is_empty(&vif->vif_ctrlbufs));
usr/src/uts/common/io/vioif/vioif.c
470
if (vif->vif_ctrlbufs_mem != NULL) {
usr/src/uts/common/io/vioif/vioif.c
471
kmem_free(vif->vif_ctrlbufs_mem,
usr/src/uts/common/io/vioif/vioif.c
473
vif->vif_ctrlbufs_capacity);
usr/src/uts/common/io/vioif/vioif.c
474
vif->vif_ctrlbufs_mem = NULL;
usr/src/uts/common/io/vioif/vioif.c
475
vif->vif_ctrlbufs_capacity = 0;
usr/src/uts/common/io/vioif/vioif.c
481
vioif_alloc_bufs(vioif_t *vif)
usr/src/uts/common/io/vioif/vioif.c
483
VERIFY(MUTEX_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
490
vif->vif_txbufs_capacity = MIN(VIRTIO_NET_TX_BUFS,
usr/src/uts/common/io/vioif/vioif.c
491
virtio_queue_size(vif->vif_tx_vq));
usr/src/uts/common/io/vioif/vioif.c
492
vif->vif_txbufs_mem = kmem_zalloc(
usr/src/uts/common/io/vioif/vioif.c
493
sizeof (vioif_txbuf_t) * vif->vif_txbufs_capacity, KM_SLEEP);
usr/src/uts/common/io/vioif/vioif.c
494
list_create(&vif->vif_txbufs, sizeof (vioif_txbuf_t),
usr/src/uts/common/io/vioif/vioif.c
497
vif->vif_rxbufs_capacity = MIN(VIRTIO_NET_RX_BUFS,
usr/src/uts/common/io/vioif/vioif.c
498
virtio_queue_size(vif->vif_rx_vq));
usr/src/uts/common/io/vioif/vioif.c
499
vif->vif_rxbufs_mem = kmem_zalloc(
usr/src/uts/common/io/vioif/vioif.c
500
sizeof (vioif_rxbuf_t) * vif->vif_rxbufs_capacity, KM_SLEEP);
usr/src/uts/common/io/vioif/vioif.c
501
list_create(&vif->vif_rxbufs, sizeof (vioif_rxbuf_t),
usr/src/uts/common/io/vioif/vioif.c
504
if (vif->vif_has_ctrlq) {
usr/src/uts/common/io/vioif/vioif.c
505
vif->vif_ctrlbufs_capacity = MIN(VIRTIO_NET_CTRL_BUFS,
usr/src/uts/common/io/vioif/vioif.c
506
virtio_queue_size(vif->vif_ctrl_vq));
usr/src/uts/common/io/vioif/vioif.c
507
vif->vif_ctrlbufs_mem = kmem_zalloc(
usr/src/uts/common/io/vioif/vioif.c
508
sizeof (vioif_ctrlbuf_t) * vif->vif_ctrlbufs_capacity,
usr/src/uts/common/io/vioif/vioif.c
511
list_create(&vif->vif_ctrlbufs, sizeof (vioif_ctrlbuf_t),
usr/src/uts/common/io/vioif/vioif.c
518
vif->vif_nrxbufs_onloan_max = vif->vif_rxbufs_capacity / 2;
usr/src/uts/common/io/vioif/vioif.c
524
for (uint_t i = 0; i < vif->vif_txbufs_capacity; i++) {
usr/src/uts/common/io/vioif/vioif.c
525
list_insert_tail(&vif->vif_txbufs, &vif->vif_txbufs_mem[i]);
usr/src/uts/common/io/vioif/vioif.c
527
for (uint_t i = 0; i < vif->vif_rxbufs_capacity; i++) {
usr/src/uts/common/io/vioif/vioif.c
528
list_insert_tail(&vif->vif_rxbufs, &vif->vif_rxbufs_mem[i]);
usr/src/uts/common/io/vioif/vioif.c
530
for (uint_t i = 0; i < vif->vif_ctrlbufs_capacity; i++) {
usr/src/uts/common/io/vioif/vioif.c
531
list_insert_tail(&vif->vif_ctrlbufs, &vif->vif_ctrlbufs_mem[i]);
usr/src/uts/common/io/vioif/vioif.c
547
for (vioif_txbuf_t *tb = list_head(&vif->vif_txbufs); tb != NULL;
usr/src/uts/common/io/vioif/vioif.c
548
tb = list_next(&vif->vif_txbufs, tb)) {
usr/src/uts/common/io/vioif/vioif.c
549
if ((tb->tb_dma = virtio_dma_alloc(vif->vif_virtio,
usr/src/uts/common/io/vioif/vioif.c
556
if ((tb->tb_chain = virtio_chain_alloc(vif->vif_tx_vq,
usr/src/uts/common/io/vioif/vioif.c
572
for (vioif_ctrlbuf_t *cb = list_head(&vif->vif_ctrlbufs); cb != NULL;
usr/src/uts/common/io/vioif/vioif.c
573
cb = list_next(&vif->vif_ctrlbufs, cb)) {
usr/src/uts/common/io/vioif/vioif.c
574
if ((cb->cb_dma = virtio_dma_alloc(vif->vif_virtio,
usr/src/uts/common/io/vioif/vioif.c
581
if ((cb->cb_chain = virtio_chain_alloc(vif->vif_ctrl_vq,
usr/src/uts/common/io/vioif/vioif.c
595
for (vioif_rxbuf_t *rb = list_head(&vif->vif_rxbufs); rb != NULL;
usr/src/uts/common/io/vioif/vioif.c
596
rb = list_next(&vif->vif_rxbufs, rb)) {
usr/src/uts/common/io/vioif/vioif.c
597
if ((rb->rb_dma = virtio_dma_alloc(vif->vif_virtio,
usr/src/uts/common/io/vioif/vioif.c
603
if ((rb->rb_chain = virtio_chain_alloc(vif->vif_rx_vq,
usr/src/uts/common/io/vioif/vioif.c
623
rb->rb_vioif = vif;
usr/src/uts/common/io/vioif/vioif.c
631
vioif_free_bufs(vif);
usr/src/uts/common/io/vioif/vioif.c
636
vioif_ctrlq_req(vioif_t *vif, uint8_t class, uint8_t cmd, void *data,
usr/src/uts/common/io/vioif/vioif.c
657
VERIFY(vif->vif_has_ctrlq);
usr/src/uts/common/io/vioif/vioif.c
659
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
660
cb = vioif_ctrlbuf_alloc(vif);
usr/src/uts/common/io/vioif/vioif.c
662
vif->vif_noctrlbuf++;
usr/src/uts/common/io/vioif/vioif.c
663
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
667
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
670
vif->vif_ctrlbuf_toosmall++;
usr/src/uts/common/io/vioif/vioif.c
734
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
735
while ((vic = virtio_queue_poll(vif->vif_ctrl_vq)) == NULL) {
usr/src/uts/common/io/vioif/vioif.c
736
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
738
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
743
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
750
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
751
vioif_ctrlbuf_free(vif, cb);
usr/src/uts/common/io/vioif/vioif.c
752
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
774
vioif_t *vif = arg;
usr/src/uts/common/io/vioif/vioif.c
777
if (!vif->vif_has_ctrlq_rx) {
usr/src/uts/common/io/vioif/vioif.c
784
return (vioif_ctrlq_req(vif, VIRTIO_NET_CTRL_RX,
usr/src/uts/common/io/vioif/vioif.c
795
vioif_add_rx(vioif_t *vif)
usr/src/uts/common/io/vioif/vioif.c
797
VERIFY(MUTEX_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
799
if (vif->vif_runstate != VIOIF_RUNSTATE_RUNNING) {
usr/src/uts/common/io/vioif/vioif.c
810
while ((rb = vioif_rxbuf_alloc(vif)) != NULL) {
usr/src/uts/common/io/vioif/vioif.c
818
virtio_dma_cookie_pa(rb->rb_dma, 0), vif->vif_rxbuf_hdrlen,
usr/src/uts/common/io/vioif/vioif.c
844
vioif_rxbuf_free(vif, rb);
usr/src/uts/common/io/vioif/vioif.c
845
vif->vif_norecvbuf++;
usr/src/uts/common/io/vioif/vioif.c
850
virtio_queue_flush(vif->vif_rx_vq);
usr/src/uts/common/io/vioif/vioif.c
857
vioif_process_rx(vioif_t *vif)
usr/src/uts/common/io/vioif/vioif.c
863
VERIFY(MUTEX_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
865
while ((vic = virtio_queue_poll(vif->vif_rx_vq)) != NULL) {
usr/src/uts/common/io/vioif/vioif.c
880
if (vif->vif_runstate != VIOIF_RUNSTATE_RUNNING) {
usr/src/uts/common/io/vioif/vioif.c
881
vioif_rxbuf_free(vif, rb);
usr/src/uts/common/io/vioif/vioif.c
885
if (len < vif->vif_rxbuf_hdrlen) {
usr/src/uts/common/io/vioif/vioif.c
886
vif->vif_rxfail_chain_undersize++;
usr/src/uts/common/io/vioif/vioif.c
887
vif->vif_ierrors++;
usr/src/uts/common/io/vioif/vioif.c
888
vioif_rxbuf_free(vif, rb);
usr/src/uts/common/io/vioif/vioif.c
891
len -= vif->vif_rxbuf_hdrlen;
usr/src/uts/common/io/vioif/vioif.c
898
if (len < vif->vif_rxcopy_thresh ||
usr/src/uts/common/io/vioif/vioif.c
899
vif->vif_nrxbufs_onloan >= vif->vif_nrxbufs_onloan_max) {
usr/src/uts/common/io/vioif/vioif.c
900
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
902
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
903
vif->vif_norecvbuf++;
usr/src/uts/common/io/vioif/vioif.c
904
vif->vif_ierrors++;
usr/src/uts/common/io/vioif/vioif.c
906
vioif_rxbuf_free(vif, rb);
usr/src/uts/common/io/vioif/vioif.c
919
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
920
vioif_rxbuf_free(vif, rb);
usr/src/uts/common/io/vioif/vioif.c
923
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
927
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
928
vif->vif_norecvbuf++;
usr/src/uts/common/io/vioif/vioif.c
929
vif->vif_ierrors++;
usr/src/uts/common/io/vioif/vioif.c
931
vioif_rxbuf_free(vif, rb);
usr/src/uts/common/io/vioif/vioif.c
936
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
937
vif->vif_nrxbufs_onloan++;
usr/src/uts/common/io/vioif/vioif.c
946
vif->vif_multircv++;
usr/src/uts/common/io/vioif/vioif.c
948
vif->vif_brdcstrcv++;
usr/src/uts/common/io/vioif/vioif.c
951
vif->vif_rbytes += len;
usr/src/uts/common/io/vioif/vioif.c
952
vif->vif_ipackets++;
usr/src/uts/common/io/vioif/vioif.c
964
if (vif->vif_runstate == VIOIF_RUNSTATE_RUNNING) {
usr/src/uts/common/io/vioif/vioif.c
965
mutex_exit(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
966
mac_rx(vif->vif_mac_handle, NULL, mphead);
usr/src/uts/common/io/vioif/vioif.c
967
mutex_enter(&vif->vif_mutex);
usr/src/uts/common/io/vioif/vioif.c
981
vioif_reclaim_used_tx(vioif_t *vif)
usr/src/uts/common/io/vioif/vioif.c
986
VERIFY(MUTEX_NOT_HELD(&vif->vif_mutex));
usr/src/uts/common/io/vioif/vioif.c
988
while ((vic = virtio_queue_poll(vif->vif_tx_vq)) != NULL) {