Lines Matching refs:vif

72 int xenvif_schedulable(struct xenvif *vif)  in xenvif_schedulable()  argument
74 return netif_running(vif->dev) && in xenvif_schedulable()
75 test_bit(VIF_STATUS_CONNECTED, &vif->status) && in xenvif_schedulable()
76 !vif->disabled; in xenvif_schedulable()
99 if (unlikely(queue->vif->disabled)) { in xenvif_poll()
133 struct net_device *dev = queue->vif->dev; in xenvif_queue_stopped()
140 struct net_device *dev = queue->vif->dev; in xenvif_wake_queue()
147 struct xenvif *vif = netdev_priv(dev); in xenvif_start_xmit() local
149 unsigned int num_queues = vif->num_queues; in xenvif_start_xmit()
163 index, vif->dev->name); in xenvif_start_xmit()
166 queue = &vif->queues[index]; in xenvif_start_xmit()
171 !xenvif_schedulable(vif)) in xenvif_start_xmit()
174 if (vif->multicast_control && skb->pkt_type == PACKET_MULTICAST) { in xenvif_start_xmit()
177 if (!xenvif_mcast_match(vif, eth->h_dest)) in xenvif_start_xmit()
182 cb->expires = jiffies + vif->drain_timeout; in xenvif_start_xmit()
190 vif->dev->stats.tx_dropped++; in xenvif_start_xmit()
197 struct xenvif *vif = netdev_priv(dev); in xenvif_get_stats() local
199 unsigned int num_queues = vif->num_queues; in xenvif_get_stats()
206 if (vif->queues == NULL) in xenvif_get_stats()
211 queue = &vif->queues[index]; in xenvif_get_stats()
219 vif->dev->stats.rx_bytes = rx_bytes; in xenvif_get_stats()
220 vif->dev->stats.rx_packets = rx_packets; in xenvif_get_stats()
221 vif->dev->stats.tx_bytes = tx_bytes; in xenvif_get_stats()
222 vif->dev->stats.tx_packets = tx_packets; in xenvif_get_stats()
224 return &vif->dev->stats; in xenvif_get_stats()
227 static void xenvif_up(struct xenvif *vif) in xenvif_up() argument
230 unsigned int num_queues = vif->num_queues; in xenvif_up()
234 queue = &vif->queues[queue_index]; in xenvif_up()
243 static void xenvif_down(struct xenvif *vif) in xenvif_down() argument
246 unsigned int num_queues = vif->num_queues; in xenvif_down()
250 queue = &vif->queues[queue_index]; in xenvif_down()
261 struct xenvif *vif = netdev_priv(dev); in xenvif_open() local
262 if (test_bit(VIF_STATUS_CONNECTED, &vif->status)) in xenvif_open()
263 xenvif_up(vif); in xenvif_open()
270 struct xenvif *vif = netdev_priv(dev); in xenvif_close() local
271 if (test_bit(VIF_STATUS_CONNECTED, &vif->status)) in xenvif_close()
272 xenvif_down(vif); in xenvif_close()
279 struct xenvif *vif = netdev_priv(dev); in xenvif_change_mtu() local
280 int max = vif->can_sg ? 65535 - VLAN_ETH_HLEN : ETH_DATA_LEN; in xenvif_change_mtu()
291 struct xenvif *vif = netdev_priv(dev); in xenvif_fix_features() local
293 if (!vif->can_sg) in xenvif_fix_features()
295 if (~(vif->gso_mask | vif->gso_prefix_mask) & GSO_BIT(TCPV4)) in xenvif_fix_features()
297 if (~(vif->gso_mask | vif->gso_prefix_mask) & GSO_BIT(TCPV6)) in xenvif_fix_features()
299 if (!vif->ip_csum) in xenvif_fix_features()
301 if (!vif->ipv6_csum) in xenvif_fix_features()
352 struct xenvif *vif = netdev_priv(dev); in xenvif_get_ethtool_stats() local
353 unsigned int num_queues = vif->num_queues; in xenvif_get_ethtool_stats()
360 void *vif_stats = &vif->queues[queue_index].stats; in xenvif_get_ethtool_stats()
404 struct xenvif *vif; in xenvif_alloc() local
421 vif = netdev_priv(dev); in xenvif_alloc()
423 vif->domid = domid; in xenvif_alloc()
424 vif->handle = handle; in xenvif_alloc()
425 vif->can_sg = 1; in xenvif_alloc()
426 vif->ip_csum = 1; in xenvif_alloc()
427 vif->dev = dev; in xenvif_alloc()
428 vif->disabled = false; in xenvif_alloc()
429 vif->drain_timeout = msecs_to_jiffies(rx_drain_timeout_msecs); in xenvif_alloc()
430 vif->stall_timeout = msecs_to_jiffies(rx_stall_timeout_msecs); in xenvif_alloc()
433 vif->queues = NULL; in xenvif_alloc()
434 vif->num_queues = 0; in xenvif_alloc()
436 spin_lock_init(&vif->lock); in xenvif_alloc()
437 INIT_LIST_HEAD(&vif->fe_mcast_addr); in xenvif_alloc()
470 return vif; in xenvif_alloc()
503 netdev_err(queue->vif->dev, "Could not reserve mmap_pages\n"); in xenvif_init_queue()
518 void xenvif_carrier_on(struct xenvif *vif) in xenvif_carrier_on() argument
521 if (!vif->can_sg && vif->dev->mtu > ETH_DATA_LEN) in xenvif_carrier_on()
522 dev_set_mtu(vif->dev, ETH_DATA_LEN); in xenvif_carrier_on()
523 netdev_update_features(vif->dev); in xenvif_carrier_on()
524 set_bit(VIF_STATUS_CONNECTED, &vif->status); in xenvif_carrier_on()
525 if (netif_running(vif->dev)) in xenvif_carrier_on()
526 xenvif_up(vif); in xenvif_carrier_on()
549 netif_napi_add(queue->vif->dev, &queue->napi, xenvif_poll, in xenvif_connect()
555 queue->vif->domid, tx_evtchn, xenvif_interrupt, 0, in xenvif_connect()
566 queue->vif->domid, tx_evtchn, xenvif_tx_interrupt, 0, in xenvif_connect()
576 queue->vif->domid, rx_evtchn, xenvif_rx_interrupt, 0, in xenvif_connect()
623 void xenvif_carrier_off(struct xenvif *vif) in xenvif_carrier_off() argument
625 struct net_device *dev = vif->dev; in xenvif_carrier_off()
628 if (test_and_clear_bit(VIF_STATUS_CONNECTED, &vif->status)) { in xenvif_carrier_off()
631 xenvif_down(vif); in xenvif_carrier_off()
636 void xenvif_disconnect(struct xenvif *vif) in xenvif_disconnect() argument
639 unsigned int num_queues = vif->num_queues; in xenvif_disconnect()
642 xenvif_carrier_off(vif); in xenvif_disconnect()
645 queue = &vif->queues[queue_index]; in xenvif_disconnect()
673 xenvif_mcast_addr_list_free(vif); in xenvif_disconnect()
685 void xenvif_free(struct xenvif *vif) in xenvif_free() argument
688 unsigned int num_queues = vif->num_queues; in xenvif_free()
691 unregister_netdev(vif->dev); in xenvif_free()
694 queue = &vif->queues[queue_index]; in xenvif_free()
698 vfree(vif->queues); in xenvif_free()
699 vif->queues = NULL; in xenvif_free()
700 vif->num_queues = 0; in xenvif_free()
702 free_netdev(vif->dev); in xenvif_free()