Lines Matching refs:ifr

214 	struct ifreq *ifr;  member
977 struct ifreq *ifr = tun->ifr; in tun_net_init() local
1003 (ifr->ifr_flags & TUN_FEATURES); in tun_net_init()
1006 err = tun_attach(tun, tun->file, false, ifr->ifr_flags & IFF_NAPI, in tun_net_init()
1007 ifr->ifr_flags & IFF_NAPI_FRAGS, false); in tun_net_init()
2735 static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr) in tun_set_iff() argument
2745 if ((ifr->ifr_flags & IFF_NAPI_FRAGS)) { in tun_set_iff()
2749 if (!(ifr->ifr_flags & IFF_NAPI) || in tun_set_iff()
2750 (ifr->ifr_flags & TUN_TYPE_MASK) != IFF_TAP) in tun_set_iff()
2754 dev = __dev_get_by_name(net, ifr->ifr_name); in tun_set_iff()
2756 if (ifr->ifr_flags & IFF_TUN_EXCL) in tun_set_iff()
2758 if ((ifr->ifr_flags & IFF_TUN) && dev->netdev_ops == &tun_netdev_ops) in tun_set_iff()
2760 else if ((ifr->ifr_flags & IFF_TAP) && dev->netdev_ops == &tap_netdev_ops) in tun_set_iff()
2765 if (!!(ifr->ifr_flags & IFF_MULTI_QUEUE) != in tun_set_iff()
2775 err = tun_attach(tun, file, ifr->ifr_flags & IFF_NOFILTER, in tun_set_iff()
2776 ifr->ifr_flags & IFF_NAPI, in tun_set_iff()
2777 ifr->ifr_flags & IFF_NAPI_FRAGS, true); in tun_set_iff()
2791 (ifr->ifr_flags & TUN_FEATURES); in tun_set_iff()
2797 int queues = ifr->ifr_flags & IFF_MULTI_QUEUE ? in tun_set_iff()
2807 if (ifr->ifr_flags & IFF_TUN) { in tun_set_iff()
2811 } else if (ifr->ifr_flags & IFF_TAP) { in tun_set_iff()
2818 if (*ifr->ifr_name) in tun_set_iff()
2819 name = ifr->ifr_name; in tun_set_iff()
2845 tun->ifr = ifr; in tun_set_iff()
2861 if (ifr->ifr_flags & IFF_NO_CARRIER) in tun_set_iff()
2872 strcpy(ifr->ifr_name, tun->dev->name); in tun_set_iff()
2876 static void tun_get_iff(struct tun_struct *tun, struct ifreq *ifr) in tun_get_iff() argument
2878 strcpy(ifr->ifr_name, tun->dev->name); in tun_get_iff()
2880 ifr->ifr_flags = tun_flags(tun); in tun_get_iff()
2974 static int tun_set_queue(struct file *file, struct ifreq *ifr) in tun_set_queue() argument
2982 if (ifr->ifr_flags & IFF_ATTACH_QUEUE) { in tun_set_queue()
2993 } else if (ifr->ifr_flags & IFF_DETACH_QUEUE) { in tun_set_queue()
3077 struct ifreq ifr; in __tun_chr_ioctl() local
3089 if (copy_from_user(&ifr, argp, ifreq_len)) in __tun_chr_ioctl()
3092 memset(&ifr, 0, sizeof(ifr)); in __tun_chr_ioctl()
3102 return tun_set_queue(file, &ifr); in __tun_chr_ioctl()
3117 ifr.ifr_name[IFNAMSIZ-1] = '\0'; in __tun_chr_ioctl()
3119 ret = tun_set_iff(net, file, &ifr); in __tun_chr_ioctl()
3124 if (copy_to_user(argp, &ifr, ifreq_len)) in __tun_chr_ioctl()
3154 tun_get_iff(tun, &ifr); in __tun_chr_ioctl()
3157 ifr.ifr_flags |= IFF_DETACH_QUEUE; in __tun_chr_ioctl()
3159 ifr.ifr_flags |= IFF_NOFILTER; in __tun_chr_ioctl()
3161 if (copy_to_user(argp, &ifr, ifreq_len)) in __tun_chr_ioctl()
3260 dev_get_mac_address(&ifr.ifr_hwaddr, net, tun->dev->name); in __tun_chr_ioctl()
3261 if (copy_to_user(argp, &ifr, ifreq_len)) in __tun_chr_ioctl()
3267 ret = dev_set_mac_address_user(tun->dev, &ifr.ifr_hwaddr, NULL); in __tun_chr_ioctl()
3509 struct ifreq ifr; in tun_chr_show_fdinfo() local
3511 memset(&ifr, 0, sizeof(ifr)); in tun_chr_show_fdinfo()
3516 tun_get_iff(tun, &ifr); in tun_chr_show_fdinfo()
3522 seq_printf(m, "iff:\t%s\n", ifr.ifr_name); in tun_chr_show_fdinfo()