Home | History | Annotate | Download | only in ip

Lines Matching full:argv

109 static int parse_args(int argc, char **argv, int cmd, struct ip6_tnl_parm *p)
117 if (strcmp(*argv, "mode") == 0) {
119 if (strcmp(*argv, "ipv6/ipv6") == 0 ||
120 strcmp(*argv, "ip6ip6") == 0)
122 else if (strcmp(*argv, "ip/ipv6") == 0 ||
123 strcmp(*argv, "ipv4/ipv6") == 0 ||
124 strcmp(*argv, "ipip6") == 0 ||
125 strcmp(*argv, "ip4ip6") == 0)
127 else if (strcmp(*argv, "any/ipv6") == 0 ||
128 strcmp(*argv, "any") == 0)
134 } else if (strcmp(*argv, "remote") == 0) {
137 get_prefix(&raddr, *argv, preferred_family);
139 invarg("\"remote\" address family is AF_UNSPEC", *argv);
141 } else if (strcmp(*argv, "local") == 0) {
144 get_prefix(&laddr, *argv, preferred_family);
146 invarg("\"local\" address family is AF_UNSPEC", *argv);
148 } else if (strcmp(*argv, "dev") == 0) {
150 strncpy(medium, *argv, IFNAMSIZ - 1);
151 } else if (strcmp(*argv, "encaplimit") == 0) {
153 if (strcmp(*argv, "none") == 0) {
157 if (get_u8(&uval, *argv, 0) < -1)
158 invarg("invalid ELIM", *argv);
161 } else if (strcmp(*argv, "hoplimit") == 0 ||
162 strcmp(*argv, "ttl") == 0 ||
163 strcmp(*argv, "hlim") == 0) {
166 if (get_u8(&uval, *argv, 0))
167 invarg("invalid TTL", *argv);
169 } else if (strcmp(*argv, "tclass") == 0 ||
170 strcmp(*argv, "tc") == 0 ||
171 strcmp(*argv, "tos") == 0 ||
172 matches(*argv, "dsfield") == 0) {
175 if (strcmp(*argv, "inherit") == 0)
178 if (get_u8(&uval, *argv, 16))
179 invarg("invalid TClass", *argv);
183 } else if (strcmp(*argv, "flowlabel") == 0 ||
184 strcmp(*argv, "fl") == 0) {
187 if (strcmp(*argv, "inherit") == 0)
190 if (get_u32(&uval, *argv, 16))
191 invarg("invalid Flowlabel", *argv);
193 invarg("invalid Flowlabel", *argv);
197 } else if (strcmp(*argv, "dscp") == 0) {
199 if (strcmp(*argv, "inherit") != 0)
200 invarg("not inherit", *argv);
203 if (strcmp(*argv, "name") == 0) {
206 if (matches(*argv, "help") == 0)
209 duparg2("name", *argv);
210 strncpy(p->name, *argv, IFNAMSIZ - 1);
214 if (tnl_get_ioctl(*argv, &old_p))
220 argc--; argv++;
344 static int do_show(int argc, char **argv)
352 if (parse_args(argc, argv, SIOCGETTUNNEL, &p) < 0)
367 static int do_add(int cmd, int argc, char **argv)
373 if (parse_args(argc, argv, cmd, &p) < 0)
381 static int do_del(int argc, char **argv)
387 if (parse_args(argc, argv, SIOCDELTUNNEL, &p) < 0)
393 int do_ip6tunnel(int argc, char **argv)
407 if (matches(*argv, "add") == 0)
408 return do_add(SIOCADDTUNNEL, argc - 1, argv + 1);
409 if (matches(*argv, "change") == 0)
410 return do_add(SIOCCHGTUNNEL, argc - 1, argv + 1);
411 if (matches(*argv, "del") == 0)
412 return do_del(argc - 1, argv + 1);
413 if (matches(*argv, "show") == 0 ||
414 matches(*argv, "lst") == 0 ||
415 matches(*argv, "list") == 0)
416 return do_show(argc - 1, argv + 1);
417 if (matches(*argv, "help") == 0)
422 fprintf(stderr, "Command \"%s\" is unknown, try \"ip -f inet6 tunnel help\".\n", *argv);