Lines Matching refs:dev

48 	struct net_device	*dev;
77 static netdev_tx_t ifb_xmit(struct sk_buff *skb, struct net_device *dev);
78 static int ifb_open(struct net_device *dev);
79 static int ifb_close(struct net_device *dev);
95 txq = netdev_get_tx_queue(txp->dev, txp->txqnum);
115 skb->dev = dev_get_by_index_rcu(dev_net(txp->dev), skb->skb_iif);
116 if (!skb->dev) {
119 txp->dev->stats.tx_dropped++;
125 skb->skb_iif = txp->dev->ifindex;
154 static void ifb_stats64(struct net_device *dev,
157 struct ifb_dev_private *dp = netdev_priv(dev);
163 for (i = 0; i < dev->num_tx_queues; i++,txp++) {
180 stats->rx_dropped = dev->stats.rx_dropped;
181 stats->tx_dropped = dev->stats.tx_dropped;
184 static int ifb_dev_init(struct net_device *dev)
186 struct ifb_dev_private *dp = netdev_priv(dev);
190 txp = kcalloc(dev->num_tx_queues, sizeof(*txp), GFP_KERNEL);
194 for (i = 0; i < dev->num_tx_queues; i++,txp++) {
196 txp->dev = dev;
202 netif_tx_start_queue(netdev_get_tx_queue(dev, i));
207 static void ifb_get_strings(struct net_device *dev, u32 stringset, u8 *buf)
214 for (i = 0; i < dev->real_num_rx_queues; i++)
219 for (i = 0; i < dev->real_num_tx_queues; i++)
228 static int ifb_get_sset_count(struct net_device *dev, int sset)
232 return IFB_Q_STATS_LEN * (dev->real_num_rx_queues +
233 dev->real_num_tx_queues);
258 static void ifb_get_ethtool_stats(struct net_device *dev,
261 struct ifb_dev_private *dp = netdev_priv(dev);
265 for (i = 0; i < dev->real_num_rx_queues; i++) {
270 for (i = 0; i < dev->real_num_tx_queues; i++) {
296 static void ifb_dev_free(struct net_device *dev)
298 struct ifb_dev_private *dp = netdev_priv(dev);
302 for (i = 0; i < dev->num_tx_queues; i++,txp++) {
310 static void ifb_setup(struct net_device *dev)
313 dev->netdev_ops = &ifb_netdev_ops;
314 dev->ethtool_ops = &ifb_ethtool_ops;
317 ether_setup(dev);
318 dev->tx_queue_len = TX_Q_LIMIT;
320 dev->features |= IFB_FEATURES;
321 dev->hw_features |= dev->features;
322 dev->hw_enc_features |= dev->features;
323 dev->vlan_features |= IFB_FEATURES & ~(NETIF_F_HW_VLAN_CTAG_TX |
326 dev->flags |= IFF_NOARP;
327 dev->flags &= ~IFF_MULTICAST;
328 dev->priv_flags &= ~IFF_TX_SKB_SHARING;
329 netif_keep_dst(dev);
330 eth_hw_addr_random(dev);
331 dev->needs_free_netdev = true;
332 dev->priv_destructor = ifb_dev_free;
334 dev->min_mtu = 0;
335 dev->max_mtu = 0;
338 static netdev_tx_t ifb_xmit(struct sk_buff *skb, struct net_device *dev)
340 struct ifb_dev_private *dp = netdev_priv(dev);
347 dev->stats.rx_dropped++;
351 if (skb_queue_len(&txp->rq) >= dev->tx_queue_len)
352 netif_tx_stop_queue(netdev_get_tx_queue(dev, txp->txqnum));
363 static int ifb_close(struct net_device *dev)
365 netif_tx_stop_all_queues(dev);
369 static int ifb_open(struct net_device *dev)
371 netif_tx_start_all_queues(dev);