Lines Matching refs:vif

66 int xenvif_schedulable(struct xenvif *vif)  in xenvif_schedulable()  argument
68 return netif_running(vif->dev) && in xenvif_schedulable()
69 test_bit(VIF_STATUS_CONNECTED, &vif->status) && in xenvif_schedulable()
70 !vif->disabled; in xenvif_schedulable()
93 if (unlikely(queue->vif->disabled)) { in xenvif_poll()
127 struct net_device *dev = queue->vif->dev; in xenvif_queue_stopped()
134 struct net_device *dev = queue->vif->dev; in xenvif_wake_queue()
141 struct xenvif *vif = netdev_priv(dev); in xenvif_start_xmit() local
143 unsigned int num_queues = vif->num_queues; in xenvif_start_xmit()
157 index, vif->dev->name); in xenvif_start_xmit()
160 queue = &vif->queues[index]; in xenvif_start_xmit()
165 !xenvif_schedulable(vif)) in xenvif_start_xmit()
169 cb->expires = jiffies + vif->drain_timeout; in xenvif_start_xmit()
177 vif->dev->stats.tx_dropped++; in xenvif_start_xmit()
184 struct xenvif *vif = netdev_priv(dev); in xenvif_get_stats() local
186 unsigned int num_queues = vif->num_queues; in xenvif_get_stats()
193 if (vif->queues == NULL) in xenvif_get_stats()
198 queue = &vif->queues[index]; in xenvif_get_stats()
206 vif->dev->stats.rx_bytes = rx_bytes; in xenvif_get_stats()
207 vif->dev->stats.rx_packets = rx_packets; in xenvif_get_stats()
208 vif->dev->stats.tx_bytes = tx_bytes; in xenvif_get_stats()
209 vif->dev->stats.tx_packets = tx_packets; in xenvif_get_stats()
211 return &vif->dev->stats; in xenvif_get_stats()
214 static void xenvif_up(struct xenvif *vif) in xenvif_up() argument
217 unsigned int num_queues = vif->num_queues; in xenvif_up()
221 queue = &vif->queues[queue_index]; in xenvif_up()
230 static void xenvif_down(struct xenvif *vif) in xenvif_down() argument
233 unsigned int num_queues = vif->num_queues; in xenvif_down()
237 queue = &vif->queues[queue_index]; in xenvif_down()
248 struct xenvif *vif = netdev_priv(dev); in xenvif_open() local
249 if (test_bit(VIF_STATUS_CONNECTED, &vif->status)) in xenvif_open()
250 xenvif_up(vif); in xenvif_open()
257 struct xenvif *vif = netdev_priv(dev); in xenvif_close() local
258 if (test_bit(VIF_STATUS_CONNECTED, &vif->status)) in xenvif_close()
259 xenvif_down(vif); in xenvif_close()
266 struct xenvif *vif = netdev_priv(dev); in xenvif_change_mtu() local
267 int max = vif->can_sg ? 65535 - VLAN_ETH_HLEN : ETH_DATA_LEN; in xenvif_change_mtu()
278 struct xenvif *vif = netdev_priv(dev); in xenvif_fix_features() local
280 if (!vif->can_sg) in xenvif_fix_features()
282 if (~(vif->gso_mask | vif->gso_prefix_mask) & GSO_BIT(TCPV4)) in xenvif_fix_features()
284 if (~(vif->gso_mask | vif->gso_prefix_mask) & GSO_BIT(TCPV6)) in xenvif_fix_features()
286 if (!vif->ip_csum) in xenvif_fix_features()
288 if (!vif->ipv6_csum) in xenvif_fix_features()
339 struct xenvif *vif = netdev_priv(dev); in xenvif_get_ethtool_stats() local
340 unsigned int num_queues = vif->num_queues; in xenvif_get_ethtool_stats()
347 void *vif_stats = &vif->queues[queue_index].stats; in xenvif_get_ethtool_stats()
391 struct xenvif *vif; in xenvif_alloc() local
408 vif = netdev_priv(dev); in xenvif_alloc()
410 vif->domid = domid; in xenvif_alloc()
411 vif->handle = handle; in xenvif_alloc()
412 vif->can_sg = 1; in xenvif_alloc()
413 vif->ip_csum = 1; in xenvif_alloc()
414 vif->dev = dev; in xenvif_alloc()
415 vif->disabled = false; in xenvif_alloc()
416 vif->drain_timeout = msecs_to_jiffies(rx_drain_timeout_msecs); in xenvif_alloc()
417 vif->stall_timeout = msecs_to_jiffies(rx_stall_timeout_msecs); in xenvif_alloc()
420 vif->queues = NULL; in xenvif_alloc()
421 vif->num_queues = 0; in xenvif_alloc()
423 spin_lock_init(&vif->lock); in xenvif_alloc()
456 return vif; in xenvif_alloc()
489 netdev_err(queue->vif->dev, "Could not reserve mmap_pages\n"); in xenvif_init_queue()
504 void xenvif_carrier_on(struct xenvif *vif) in xenvif_carrier_on() argument
507 if (!vif->can_sg && vif->dev->mtu > ETH_DATA_LEN) in xenvif_carrier_on()
508 dev_set_mtu(vif->dev, ETH_DATA_LEN); in xenvif_carrier_on()
509 netdev_update_features(vif->dev); in xenvif_carrier_on()
510 set_bit(VIF_STATUS_CONNECTED, &vif->status); in xenvif_carrier_on()
511 if (netif_running(vif->dev)) in xenvif_carrier_on()
512 xenvif_up(vif); in xenvif_carrier_on()
535 netif_napi_add(queue->vif->dev, &queue->napi, xenvif_poll, in xenvif_connect()
541 queue->vif->domid, tx_evtchn, xenvif_interrupt, 0, in xenvif_connect()
552 queue->vif->domid, tx_evtchn, xenvif_tx_interrupt, 0, in xenvif_connect()
562 queue->vif->domid, rx_evtchn, xenvif_rx_interrupt, 0, in xenvif_connect()
609 void xenvif_carrier_off(struct xenvif *vif) in xenvif_carrier_off() argument
611 struct net_device *dev = vif->dev; in xenvif_carrier_off()
614 if (test_and_clear_bit(VIF_STATUS_CONNECTED, &vif->status)) { in xenvif_carrier_off()
617 xenvif_down(vif); in xenvif_carrier_off()
622 void xenvif_disconnect(struct xenvif *vif) in xenvif_disconnect() argument
625 unsigned int num_queues = vif->num_queues; in xenvif_disconnect()
628 xenvif_carrier_off(vif); in xenvif_disconnect()
631 queue = &vif->queues[queue_index]; in xenvif_disconnect()
669 void xenvif_free(struct xenvif *vif) in xenvif_free() argument
672 unsigned int num_queues = vif->num_queues; in xenvif_free()
675 unregister_netdev(vif->dev); in xenvif_free()
678 queue = &vif->queues[queue_index]; in xenvif_free()
682 vfree(vif->queues); in xenvif_free()
683 vif->queues = NULL; in xenvif_free()
684 vif->num_queues = 0; in xenvif_free()
686 free_netdev(vif->dev); in xenvif_free()