Lines Matching refs:ifr
49 static int tap_add_ioctl(struct ifreq *ifr, uid_t uid, gid_t gid) in tap_add_ioctl() argument
55 ifr->ifr_flags |= IFF_TUN_EXCL; in tap_add_ioctl()
63 if (ioctl(fd, TUNSETIFF, ifr)) { in tap_add_ioctl()
85 static int tap_del_ioctl(struct ifreq *ifr) in tap_del_ioctl() argument
94 if (ioctl(fd, TUNSETIFF, ifr)) { in tap_del_ioctl()
109 struct ifreq *ifr, uid_t *uid, gid_t *gid) in parse_args() argument
113 memset(ifr, 0, sizeof(*ifr)); in parse_args()
115 ifr->ifr_flags |= IFF_NO_PI; in parse_args()
121 if (ifr->ifr_flags & IFF_TAP) { in parse_args()
125 ifr->ifr_flags |= IFF_TUN; in parse_args()
127 if (ifr->ifr_flags & IFF_TUN) { in parse_args()
131 ifr->ifr_flags |= IFF_TAP; in parse_args()
170 ifr->ifr_flags &= ~IFF_NO_PI; in parse_args()
172 ifr->ifr_flags |= IFF_ONE_QUEUE; in parse_args()
174 ifr->ifr_flags |= IFF_VNET_HDR; in parse_args()
176 ifr->ifr_flags |= IFF_MULTI_QUEUE; in parse_args()
179 if (get_ifname(ifr->ifr_name, *argv)) in parse_args()
186 if (ifr->ifr_name[0]) in parse_args()
188 if (get_ifname(ifr->ifr_name, *argv)) in parse_args()
195 if (!(ifr->ifr_flags & TUN_TYPE_MASK)) { in parse_args()
206 struct ifreq ifr; in do_add() local
210 if (parse_args(argc, argv, &ifr, &uid, &gid) < 0) in do_add()
213 return tap_add_ioctl(&ifr, uid, gid); in do_add()
218 struct ifreq ifr; in do_del() local
220 if (parse_args(argc, argv, &ifr, NULL, NULL) < 0) in do_del()
223 return tap_del_ioctl(&ifr); in do_del()