Lines Matching defs:dev
84 static void tun_default_link_ksettings(struct net_device *dev,
185 struct net_device *dev;
271 netif_napi_add_tx(tun->dev, &tfile->napi, tun_napi_poll);
386 netif_info(tun, tx_queued, tun->dev,
402 netif_info(tun, tx_queued, tun->dev, "delete flow: hash %u index %u\n",
561 static u16 tun_select_queue(struct net_device *dev, struct sk_buff *skb,
564 struct tun_struct *tun = netdev_priv(dev);
580 struct net *net = dev_net(tun->dev);
589 netif_set_real_num_tx_queues(tun->dev, tun->numqueues);
590 netif_set_real_num_rx_queues(tun->dev, tun->numqueues);
681 netif_carrier_off(tun->dev);
684 tun->dev->reg_state == NETREG_REGISTERED)
685 unregister_netdevice(tun->dev);
696 struct net_device *dev;
700 dev = tun ? tun->dev : NULL;
702 if (dev)
703 netdev_state_change(dev);
710 static void tun_detach_all(struct net_device *dev)
712 struct tun_struct *tun = netdev_priv(dev);
759 struct net_device *dev = tun->dev;
791 ptr_ring_resize(&tfile->tx_ring, dev->tx_queue_len,
809 tun->dev, tfile->queue_index, 0);
856 dev_hold(tun->dev);
864 dev_put(tun->dev);
975 static int tun_net_init(struct net_device *dev)
977 struct tun_struct *tun = netdev_priv(dev);
981 dev->tstats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats);
982 if (!dev->tstats)
989 free_percpu(dev->tstats);
995 dev->hw_features = NETIF_F_SG | NETIF_F_FRAGLIST |
998 dev->features = dev->hw_features | NETIF_F_LLTX;
999 dev->vlan_features = dev->features &
1012 free_percpu(dev->tstats);
1019 static void tun_net_uninit(struct net_device *dev)
1021 tun_detach_all(dev);
1025 static int tun_net_open(struct net_device *dev)
1027 netif_tx_start_all_queues(dev);
1033 static int tun_net_close(struct net_device *dev)
1035 netif_tx_stop_all_queues(dev);
1071 static netdev_tx_t tun_net_xmit(struct sk_buff *skb, struct net_device *dev)
1073 struct tun_struct *tun = netdev_priv(dev);
1092 netif_info(tun, tx_queued, tun->dev, "%s %d\n", __func__, skb->len);
1139 queue = netdev_get_tx_queue(dev, txq);
1151 dev_core_stats_tx_dropped_inc(dev);
1158 static void tun_net_mclist(struct net_device *dev)
1167 static netdev_features_t tun_net_fix_features(struct net_device *dev,
1170 struct tun_struct *tun = netdev_priv(dev);
1175 static void tun_set_headroom(struct net_device *dev, int new_hr)
1177 struct tun_struct *tun = netdev_priv(dev);
1186 tun_net_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
1188 struct tun_struct *tun = netdev_priv(dev);
1190 dev_get_tstats64(dev, stats);
1196 static int tun_xdp_set(struct net_device *dev, struct bpf_prog *prog,
1199 struct tun_struct *tun = netdev_priv(dev);
1226 static int tun_xdp(struct net_device *dev, struct netdev_bpf *xdp)
1230 return tun_xdp_set(dev, xdp->prog, xdp->extack);
1236 static int tun_net_change_carrier(struct net_device *dev, bool new_carrier)
1239 struct tun_struct *tun = netdev_priv(dev);
1244 netif_carrier_on(dev);
1246 netif_carrier_off(dev);
1272 static int tun_xdp_xmit(struct net_device *dev, int n,
1275 struct tun_struct *tun = netdev_priv(dev);
1307 dev_core_stats_tx_dropped_inc(dev);
1321 static int tun_xdp_tx(struct net_device *dev, struct xdp_buff *xdp)
1329 nxmit = tun_xdp_xmit(dev, 1, &frame, XDP_XMIT_FLUSH);
1377 static void tun_net_initialize(struct net_device *dev)
1379 struct tun_struct *tun = netdev_priv(dev);
1383 dev->netdev_ops = &tun_netdev_ops;
1384 dev->header_ops = &ip_tunnel_header_ops;
1387 dev->hard_header_len = 0;
1388 dev->addr_len = 0;
1389 dev->mtu = 1500;
1392 dev->type = ARPHRD_NONE;
1393 dev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST;
1397 dev->netdev_ops = &tap_netdev_ops;
1399 ether_setup(dev);
1400 dev->priv_flags &= ~IFF_TX_SKB_SHARING;
1401 dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
1403 eth_hw_addr_random(dev);
1406 dev->xdp_features = NETDEV_XDP_ACT_BASIC |
1413 dev->min_mtu = MIN_MTU;
1414 dev->max_mtu = MAX_MTU - dev->hard_header_len;
1421 return (tun->dev->flags & IFF_UP) && sock_writeable(sk);
1454 if (tun->dev->reg_state != NETREG_REGISTERED)
1633 err = xdp_do_redirect(tun->dev, xdp, xdp_prog);
1635 dev_core_stats_rx_dropped_inc(tun->dev);
1638 dev_sw_netstats_rx_add(tun->dev, xdp->data_end - xdp->data);
1641 err = tun_xdp_tx(tun->dev, xdp);
1643 dev_core_stats_rx_dropped_inc(tun->dev);
1646 dev_sw_netstats_rx_add(tun->dev, xdp->data_end - xdp->data);
1651 bpf_warn_invalid_xdp_action(tun->dev, xdp_prog, act);
1654 trace_xdp_exception(tun->dev, xdp_prog, act);
1657 dev_core_stats_rx_dropped_inc(tun->dev);
1899 skb->dev = tun->dev;
1907 skb->protocol = eth_type_trans(skb, tun->dev);
1951 if (unlikely(!(tun->dev->flags & IFF_UP))) {
1963 headlen = eth_get_headlen(tun->dev, skb->data,
1969 dev_core_stats_rx_dropped_inc(tun->dev);
2016 dev_sw_netstats_rx_add(tun->dev, len);
2026 dev_core_stats_rx_dropped_inc(tun->dev);
2085 dev_sw_netstats_tx_add(tun->dev, 1, ret);
2176 dev_sw_netstats_tx_add(tun->dev, 1, skb->len + vlan_hlen);
2315 static void tun_free_netdev(struct net_device *dev)
2317 struct tun_struct *tun = netdev_priv(dev);
2321 free_percpu(dev->tstats);
2328 static void tun_setup(struct net_device *dev)
2330 struct tun_struct *tun = netdev_priv(dev);
2334 tun_default_link_ksettings(dev, &tun->link_ksettings);
2336 dev->ethtool_ops = &tun_ethtool_ops;
2337 dev->needs_free_netdev = true;
2338 dev->priv_destructor = tun_free_netdev;
2340 dev->tx_queue_len = TUN_READQ_SIZE;
2354 static size_t tun_get_size(const struct net_device *dev)
2371 static int tun_fill_info(struct sk_buff *skb, const struct net_device *dev)
2373 struct tun_struct *tun = netdev_priv(dev);
2515 skb->protocol = eth_type_trans(skb, tun->dev);
2553 dev_sw_netstats_rx_add(tun->dev, datasize);
2700 static ssize_t tun_flags_show(struct device *dev, struct device_attribute *attr,
2703 struct tun_struct *tun = netdev_priv(to_net_dev(dev));
2707 static ssize_t owner_show(struct device *dev, struct device_attribute *attr,
2710 struct tun_struct *tun = netdev_priv(to_net_dev(dev));
2717 static ssize_t group_show(struct device *dev, struct device_attribute *attr,
2720 struct tun_struct *tun = netdev_priv(to_net_dev(dev));
2746 struct net_device *dev;
2761 dev = __dev_get_by_name(net, ifr->ifr_name);
2762 if (dev) {
2765 if ((ifr->ifr_flags & IFF_TUN) && dev->netdev_ops == &tun_netdev_ops)
2766 tun = netdev_priv(dev);
2767 else if ((ifr->ifr_flags & IFF_TAP) && dev->netdev_ops == &tap_netdev_ops)
2768 tun = netdev_priv(dev);
2793 netdev_state_change(dev);
2800 netdev_state_change(dev);
2813 /* Set dev type */
2828 dev = alloc_netdev_mqs(sizeof(struct tun_struct), name,
2832 if (!dev)
2835 dev_net_set(dev, net);
2836 dev->rtnl_link_ops = &tun_link_ops;
2837 dev->ifindex = tfile->ifindex;
2838 dev->sysfs_groups[0] = &tun_attr_group;
2840 tun = netdev_priv(dev);
2841 tun->dev = dev;
2855 tun_net_initialize(dev);
2857 err = register_netdevice(tun->dev);
2859 free_netdev(dev);
2869 netif_carrier_off(tun->dev);
2871 netif_carrier_on(tun->dev);
2876 if (netif_running(tun->dev))
2877 netif_tx_wake_all_queues(tun->dev);
2879 strcpy(ifr->ifr_name, tun->dev->name);
2885 strcpy(ifr->ifr_name, tun->dev->name);
2928 tun->dev->wanted_features &= ~TUN_USER_FEATURES;
2929 tun->dev->wanted_features |= features;
2930 netdev_update_features(tun->dev);
3010 netdev_state_change(tun->dev);
3037 /* Return correct value for tun->dev->addr_len based on tun->dev->type. */
3155 netif_info(tun, drv, tun->dev, "tun_chr_ioctl cmd %u\n", cmd);
3157 net = dev_net(tun->dev);
3176 netif_info(tun, drv, tun->dev, "ignored: set checksum %s\n",
3195 netif_info(tun, drv, tun->dev, "persist %s\n",
3208 netif_info(tun, drv, tun->dev, "owner set to %u\n",
3221 netif_info(tun, drv, tun->dev, "group set to %u\n",
3227 if (tun->dev->flags & IFF_UP) {
3228 netif_info(tun, drv, tun->dev,
3233 tun->dev);
3236 netif_info(tun, drv, tun->dev,
3240 tun->dev->type = (int) arg;
3241 tun->dev->addr_len = tun_get_addr_len(tun->dev->type);
3242 netif_info(tun, drv, tun->dev, "linktype set to %d\n",
3243 tun->dev->type);
3245 tun->dev);
3267 dev_get_mac_address(&ifr.ifr_hwaddr, net, tun->dev->name);
3274 ret = dev_set_mac_address_user(tun->dev, &ifr.ifr_hwaddr, NULL);
3385 ret = tun_net_change_carrier(tun->dev, (bool)carrier);
3401 netdev_state_change(tun->dev);
3560 static void tun_default_link_ksettings(struct net_device *dev,
3572 static int tun_get_link_ksettings(struct net_device *dev,
3575 struct tun_struct *tun = netdev_priv(dev);
3581 static int tun_set_link_ksettings(struct net_device *dev,
3584 struct tun_struct *tun = netdev_priv(dev);
3590 static void tun_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
3592 struct tun_struct *tun = netdev_priv(dev);
3607 static u32 tun_get_msglevel(struct net_device *dev)
3609 struct tun_struct *tun = netdev_priv(dev);
3614 static void tun_set_msglevel(struct net_device *dev, u32 value)
3616 struct tun_struct *tun = netdev_priv(dev);
3621 static int tun_get_coalesce(struct net_device *dev,
3626 struct tun_struct *tun = netdev_priv(dev);
3633 static int tun_set_coalesce(struct net_device *dev,
3638 struct tun_struct *tun = netdev_priv(dev);
3663 struct net_device *dev = tun->dev;
3681 dev->tx_queue_len, GFP_KERNEL,
3691 struct net_device *dev = netdev_notifier_info_to_dev(ptr);
3692 struct tun_struct *tun = netdev_priv(dev);
3695 if (dev->rtnl_link_ops != &tun_link_ops)