Lines Matching full:argv
136 static int parse_args(int argc, char **argv, int cmd, struct ip6_tnl_parm2 *p)
142 if (strcmp(*argv, "mode") == 0) {
144 if (strcmp(*argv, "ipv6/ipv6") == 0 ||
145 strcmp(*argv, "ip6ip6") == 0)
147 else if (strcmp(*argv, "vti6") == 0) {
150 } else if (strcmp(*argv, "ip/ipv6") == 0 ||
151 strcmp(*argv, "ipv4/ipv6") == 0 ||
152 strcmp(*argv, "ipip6") == 0 ||
153 strcmp(*argv, "ip4ip6") == 0)
155 else if (strcmp(*argv, "ip6gre") == 0 ||
156 strcmp(*argv, "gre/ipv6") == 0)
158 else if (strcmp(*argv, "any/ipv6") == 0 ||
159 strcmp(*argv, "any") == 0)
162 fprintf(stderr, "Unknown tunnel mode \"%s\"\n", *argv);
165 } else if (strcmp(*argv, "remote") == 0) {
169 get_prefix(&raddr, *argv, preferred_family);
171 invarg("\"remote\" address family is AF_UNSPEC", *argv);
173 } else if (strcmp(*argv, "local") == 0) {
177 get_prefix(&laddr, *argv, preferred_family);
179 invarg("\"local\" address family is AF_UNSPEC", *argv);
181 } else if (strcmp(*argv, "dev") == 0) {
183 medium = *argv;
184 } else if (strcmp(*argv, "encaplimit") == 0) {
186 if (strcmp(*argv, "none") == 0) {
191 if (get_u8(&uval, *argv, 0) < -1)
192 invarg("invalid ELIM", *argv);
196 } else if (strcmp(*argv, "hoplimit") == 0 ||
197 strcmp(*argv, "ttl") == 0 ||
198 strcmp(*argv, "hlim") == 0) {
202 if (get_u8(&uval, *argv, 0))
203 invarg("invalid TTL", *argv);
205 } else if (strcmp(*argv, "tclass") == 0 ||
206 strcmp(*argv, "tc") == 0 ||
207 strcmp(*argv, "tos") == 0 ||
208 matches(*argv, "dsfield") == 0) {
213 if (strcmp(*argv, "inherit") == 0)
216 if (get_u8(&uval, *argv, 16))
217 invarg("invalid TClass", *argv);
221 } else if (strcmp(*argv, "flowlabel") == 0 ||
222 strcmp(*argv, "fl") == 0) {
227 if (strcmp(*argv, "inherit") == 0)
230 if (get_u32(&uval, *argv, 16))
231 invarg("invalid Flowlabel", *argv);
233 invarg("invalid Flowlabel", *argv);
237 } else if (strcmp(*argv, "dscp") == 0) {
239 if (strcmp(*argv, "inherit") != 0)
240 invarg("not inherit", *argv);
242 } else if (strcmp(*argv, "key") == 0) {
246 p->i_key = p->o_key = tnl_parse_key("key", *argv);
247 } else if (strcmp(*argv, "ikey") == 0) {
250 p->i_key = tnl_parse_key("ikey", *argv);
251 } else if (strcmp(*argv, "okey") == 0) {
254 p->o_key = tnl_parse_key("okey", *argv);
255 } else if (strcmp(*argv, "seq") == 0) {
258 } else if (strcmp(*argv, "iseq") == 0) {
260 } else if (strcmp(*argv, "oseq") == 0) {
262 } else if (strcmp(*argv, "csum") == 0) {
265 } else if (strcmp(*argv, "icsum") == 0) {
267 } else if (strcmp(*argv, "ocsum") == 0) {
270 if (strcmp(*argv, "name") == 0) {
272 } else if (matches(*argv, "help") == 0)
275 duparg2("name", *argv);
276 if (get_ifname(p->name, *argv))
277 invarg("\"name\" not a valid ifname", *argv);
281 if (tnl_get_ioctl(*argv, &old_p))
287 argc--; argv++;
396 static int do_show(int argc, char **argv)
404 if (parse_args(argc, argv, SIOCGETTUNNEL, &p) < 0)
419 static int do_add(int cmd, int argc, char **argv)
426 if (parse_args(argc, argv, cmd, &p) < 0)
437 static int do_del(int argc, char **argv)
444 if (parse_args(argc, argv, SIOCDELTUNNEL, &p) < 0)
455 int do_ip6tunnel(int argc, char **argv)
469 if (matches(*argv, "add") == 0)
470 return do_add(SIOCADDTUNNEL, argc - 1, argv + 1);
471 if (matches(*argv, "change") == 0)
472 return do_add(SIOCCHGTUNNEL, argc - 1, argv + 1);
473 if (matches(*argv, "delete") == 0)
474 return do_del(argc - 1, argv + 1);
475 if (matches(*argv, "show") == 0 ||
476 matches(*argv, "lst") == 0 ||
477 matches(*argv, "list") == 0)
478 return do_show(argc - 1, argv + 1);
479 if (matches(*argv, "help") == 0)
484 fprintf(stderr, "Command \"%s\" is unknown, try \"ip -f inet6 tunnel help\".\n", *argv);