Lines Matching refs:ifr
1607 static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr) in tun_set_iff() argument
1617 dev = __dev_get_by_name(net, ifr->ifr_name); in tun_set_iff()
1619 if (ifr->ifr_flags & IFF_TUN_EXCL) in tun_set_iff()
1621 if ((ifr->ifr_flags & IFF_TUN) && dev->netdev_ops == &tun_netdev_ops) in tun_set_iff()
1623 else if ((ifr->ifr_flags & IFF_TAP) && dev->netdev_ops == &tap_netdev_ops) in tun_set_iff()
1628 if (!!(ifr->ifr_flags & IFF_MULTI_QUEUE) != in tun_set_iff()
1638 err = tun_attach(tun, file, ifr->ifr_flags & IFF_NOFILTER); in tun_set_iff()
1653 int queues = ifr->ifr_flags & IFF_MULTI_QUEUE ? in tun_set_iff()
1663 if (ifr->ifr_flags & IFF_TUN) { in tun_set_iff()
1667 } else if (ifr->ifr_flags & IFF_TAP) { in tun_set_iff()
1674 if (*ifr->ifr_name) in tun_set_iff()
1675 name = ifr->ifr_name; in tun_set_iff()
1730 (ifr->ifr_flags & TUN_FEATURES); in tun_set_iff()
1738 strcpy(ifr->ifr_name, tun->dev->name); in tun_set_iff()
1752 struct ifreq *ifr) in tun_get_iff() argument
1756 strcpy(ifr->ifr_name, tun->dev->name); in tun_get_iff()
1758 ifr->ifr_flags = tun_flags(tun); in tun_get_iff()
1844 static int tun_set_queue(struct file *file, struct ifreq *ifr) in tun_set_queue() argument
1852 if (ifr->ifr_flags & IFF_ATTACH_QUEUE) { in tun_set_queue()
1862 } else if (ifr->ifr_flags & IFF_DETACH_QUEUE) { in tun_set_queue()
1882 struct ifreq ifr; in __tun_chr_ioctl() local
1892 if (copy_from_user(&ifr, argp, ifreq_len)) in __tun_chr_ioctl()
1895 memset(&ifr, 0, sizeof(ifr)); in __tun_chr_ioctl()
1905 return tun_set_queue(file, &ifr); in __tun_chr_ioctl()
1912 ifr.ifr_name[IFNAMSIZ-1] = '\0'; in __tun_chr_ioctl()
1914 ret = tun_set_iff(sock_net(&tfile->sk), file, &ifr); in __tun_chr_ioctl()
1919 if (copy_to_user(argp, &ifr, ifreq_len)) in __tun_chr_ioctl()
1946 tun_get_iff(current->nsproxy->net_ns, tun, &ifr); in __tun_chr_ioctl()
1949 ifr.ifr_flags |= IFF_DETACH_QUEUE; in __tun_chr_ioctl()
1951 ifr.ifr_flags |= IFF_NOFILTER; in __tun_chr_ioctl()
1953 if (copy_to_user(argp, &ifr, ifreq_len)) in __tun_chr_ioctl()
2039 memcpy(ifr.ifr_hwaddr.sa_data, tun->dev->dev_addr, ETH_ALEN); in __tun_chr_ioctl()
2040 ifr.ifr_hwaddr.sa_family = tun->dev->type; in __tun_chr_ioctl()
2041 if (copy_to_user(argp, &ifr, ifreq_len)) in __tun_chr_ioctl()
2048 ifr.ifr_hwaddr.sa_data); in __tun_chr_ioctl()
2050 ret = dev_set_mac_address(tun->dev, &ifr.ifr_hwaddr); in __tun_chr_ioctl()
2256 struct ifreq ifr; in tun_chr_show_fdinfo() local
2258 memset(&ifr, 0, sizeof(ifr)); in tun_chr_show_fdinfo()
2263 tun_get_iff(current->nsproxy->net_ns, tun, &ifr); in tun_chr_show_fdinfo()
2269 seq_printf(m, "iff:\t%s\n", ifr.ifr_name); in tun_chr_show_fdinfo()