Lines Matching refs:dev

50 	struct net_device __rcu *dev;  member
53 static int l2tp_eth_dev_init(struct net_device *dev) in l2tp_eth_dev_init() argument
55 eth_hw_addr_random(dev); in l2tp_eth_dev_init()
56 eth_broadcast_addr(dev->broadcast); in l2tp_eth_dev_init()
57 netdev_lockdep_set_classes(dev); in l2tp_eth_dev_init()
62 static void l2tp_eth_dev_uninit(struct net_device *dev) in l2tp_eth_dev_uninit() argument
64 struct l2tp_eth *priv = netdev_priv(dev); in l2tp_eth_dev_uninit()
68 RCU_INIT_POINTER(spriv->dev, NULL); in l2tp_eth_dev_uninit()
74 static netdev_tx_t l2tp_eth_dev_xmit(struct sk_buff *skb, struct net_device *dev) in l2tp_eth_dev_xmit() argument
76 struct l2tp_eth *priv = netdev_priv(dev); in l2tp_eth_dev_xmit()
90 static void l2tp_eth_get_stats64(struct net_device *dev, in l2tp_eth_get_stats64() argument
93 struct l2tp_eth *priv = netdev_priv(dev); in l2tp_eth_get_stats64()
115 static void l2tp_eth_dev_setup(struct net_device *dev) in l2tp_eth_dev_setup() argument
117 SET_NETDEV_DEVTYPE(dev, &l2tpeth_type); in l2tp_eth_dev_setup()
118 ether_setup(dev); in l2tp_eth_dev_setup()
119 dev->priv_flags &= ~IFF_TX_SKB_SHARING; in l2tp_eth_dev_setup()
120 dev->features |= NETIF_F_LLTX; in l2tp_eth_dev_setup()
121 dev->netdev_ops = &l2tp_eth_netdev_ops; in l2tp_eth_dev_setup()
122 dev->needs_free_netdev = true; in l2tp_eth_dev_setup()
128 struct net_device *dev; in l2tp_eth_dev_recv() local
146 dev = rcu_dereference(spriv->dev); in l2tp_eth_dev_recv()
147 if (!dev) in l2tp_eth_dev_recv()
150 priv = netdev_priv(dev); in l2tp_eth_dev_recv()
151 if (dev_forward_skb(dev, skb) == NET_RX_SUCCESS) { in l2tp_eth_dev_recv()
170 struct net_device *dev; in l2tp_eth_delete() local
176 dev = rtnl_dereference(spriv->dev); in l2tp_eth_delete()
177 if (dev) { in l2tp_eth_delete()
178 unregister_netdevice(dev); in l2tp_eth_delete()
191 struct net_device *dev; in l2tp_eth_show() local
194 dev = rcu_dereference(spriv->dev); in l2tp_eth_show()
195 if (!dev) { in l2tp_eth_show()
199 dev_hold(dev); in l2tp_eth_show()
202 seq_printf(m, " interface %s\n", dev->name); in l2tp_eth_show()
204 dev_put(dev); in l2tp_eth_show()
209 struct net_device *dev) in l2tp_eth_adjust_mtu() argument
218 dev->needed_headroom += sizeof(struct udphdr); in l2tp_eth_adjust_mtu()
239 if (mtu < dev->min_mtu || mtu > dev->max_mtu) in l2tp_eth_adjust_mtu()
240 dev->mtu = ETH_DATA_LEN - overhead; in l2tp_eth_adjust_mtu()
242 dev->mtu = mtu; in l2tp_eth_adjust_mtu()
244 dev->needed_headroom += session->hdr_len; in l2tp_eth_adjust_mtu()
252 struct net_device *dev; in l2tp_eth_create() local
274 dev = alloc_netdev(sizeof(*priv), name, name_assign_type, in l2tp_eth_create()
276 if (!dev) { in l2tp_eth_create()
281 dev_net_set(dev, net); in l2tp_eth_create()
282 dev->min_mtu = 0; in l2tp_eth_create()
283 dev->max_mtu = ETH_MAX_MTU; in l2tp_eth_create()
284 l2tp_eth_adjust_mtu(tunnel, session, dev); in l2tp_eth_create()
286 priv = netdev_priv(dev); in l2tp_eth_create()
310 rc = register_netdevice(dev); in l2tp_eth_create()
315 free_netdev(dev); in l2tp_eth_create()
320 strscpy(session->ifname, dev->name, IFNAMSIZ); in l2tp_eth_create()
321 rcu_assign_pointer(spriv->dev, dev); in l2tp_eth_create()
333 free_netdev(dev); in l2tp_eth_create()