Home | History | Annotate | Download | only in ip

Lines Matching full:argv

50 static int parse_args(int argc, char **argv, int cmd, struct ip_tunnel_parm *p)
67 if (strcmp(*argv, "mode") == 0) {
69 if (strcmp(*argv, "ipip") == 0 ||
70 strcmp(*argv, "ip/ip") == 0) {
76 } else if (strcmp(*argv, "gre") == 0 ||
77 strcmp(*argv, "gre/ip") == 0) {
83 } else if (strcmp(*argv, "sit") == 0 ||
84 strcmp(*argv, "ipv6/ip") == 0) {
90 } else if (strcmp(*argv, "isatap") == 0) {
101 } else if (strcmp(*argv, "key") == 0) {
106 if (strchr(*argv, '.'))
107 p->i_key = p->o_key = get_addr32(*argv);
109 if (get_unsigned(&uval, *argv, 0)<0) {
115 } else if (strcmp(*argv, "ikey") == 0) {
119 if (strchr(*argv, '.'))
120 p->i_key = get_addr32(*argv);
122 if (get_unsigned(&uval, *argv, 0)<0) {
128 } else if (strcmp(*argv, "okey") == 0) {
132 if (strchr(*argv, '.'))
133 p->o_key = get_addr32(*argv);
135 if (get_unsigned(&uval, *argv, 0)<0) {
141 } else if (strcmp(*argv, "seq") == 0) {
144 } else if (strcmp(*argv, "iseq") == 0) {
146 } else if (strcmp(*argv, "oseq") == 0) {
148 } else if (strcmp(*argv, "csum") == 0) {
151 } else if (strcmp(*argv, "icsum") == 0) {
153 } else if (strcmp(*argv, "ocsum") == 0) {
155 } else if (strcmp(*argv, "nopmtudisc") == 0) {
157 } else if (strcmp(*argv, "pmtudisc") == 0) {
159 } else if (strcmp(*argv, "remote") == 0) {
161 if (strcmp(*argv, "any"))
162 p->iph.daddr = get_addr32(*argv);
163 } else if (strcmp(*argv, "local") == 0) {
165 if (strcmp(*argv, "any"))
166 p->iph.saddr = get_addr32(*argv);
167 } else if (strcmp(*argv, "dev") == 0) {
169 strncpy(medium, *argv, IFNAMSIZ-1);
170 } else if (strcmp(*argv, "ttl") == 0 ||
171 strcmp(*argv, "hoplimit") == 0) {
174 if (strcmp(*argv, "inherit") != 0) {
175 if (get_unsigned(&uval, *argv, 0))
176 invarg("invalid TTL\n", *argv);
178 invarg("TTL must be <=255\n", *argv);
181 } else if (strcmp(*argv, "tos") == 0 ||
182 strcmp(*argv, "tclass") == 0 ||
183 matches(*argv, "dsfield") == 0) {
186 if (strcmp(*argv, "inherit") != 0) {
187 if (rtnl_dsfield_a2n(&uval, *argv))
188 invarg("bad TOS value", *argv);
193 if (strcmp(*argv, "name") == 0) {
195 } else if (matches(*argv, "help") == 0)
198 duparg2("name", *argv);
199 strncpy(p->name, *argv, IFNAMSIZ);
203 if (tnl_get_ioctl(*argv, &old_p))
209 argc--; argv++;
258 static int do_add(int cmd, int argc, char **argv)
262 if (parse_args(argc, argv, cmd, &p) < 0)
284 static int do_del(int argc, char **argv)
288 if (parse_args(argc, argv, SIOCDELTUNNEL, &p) < 0)
471 static int do_show(int argc, char **argv)
477 if (parse_args(argc, argv, SIOCGETTUNNEL, &p) < 0)
502 static int do_prl(int argc, char **argv)
514 if (strcmp(*argv, "prl-default") == 0) {
517 p.addr = get_addr32(*argv);
520 } else if (strcmp(*argv, "prl-nodefault") == 0) {
523 p.addr = get_addr32(*argv);
525 } else if (strcmp(*argv, "prl-delete") == 0) {
528 p.addr = get_addr32(*argv);
530 } else if (strcmp(*argv, "dev") == 0) {
532 strncpy(medium, *argv, IFNAMSIZ-1);
535 fprintf(stderr,"%s: Invalid PRL parameter.\n", *argv);
542 argc--; argv++;
552 static int do_6rd(int argc, char **argv)
564 if (strcmp(*argv, "6rd-prefix") == 0) {
566 if (get_prefix(&prefix, *argv, AF_INET6))
567 invarg("invalid 6rd_prefix\n", *argv);
571 } else if (strcmp(*argv, "6rd-relay_prefix") == 0) {
573 if (get_prefix(&prefix, *argv, AF_INET))
574 invarg("invalid 6rd-relay_prefix\n", *argv);
578 } else if (strcmp(*argv, "6rd-reset") == 0) {
580 } else if (strcmp(*argv, "dev") == 0) {
582 strncpy(medium, *argv, IFNAMSIZ-1);
585 fprintf(stderr,"%s: Invalid 6RD parameter.\n", *argv);
588 argc--; argv++;
598 int do_iptunnel(int argc, char **argv)
612 return do_ip6tunnel(argc, argv);
619 if (matches(*argv, "add") == 0)
620 return do_add(SIOCADDTUNNEL, argc-1, argv+1);
621 if (matches(*argv, "change") == 0)
622 return do_add(SIOCCHGTUNNEL, argc-1, argv+1);
623 if (matches(*argv, "del") == 0)
624 return do_del(argc-1, argv+1);
625 if (matches(*argv, "show") == 0 ||
626 matches(*argv, "lst") == 0 ||
627 matches(*argv, "list") == 0)
628 return do_show(argc-1, argv+1);
629 if (matches(*argv, "prl") == 0)
630 return do_prl(argc-1, argv+1);
631 if (matches(*argv, "6rd") == 0)
632 return do_6rd(argc-1, argv+1);
633 if (matches(*argv, "help") == 0)
638 fprintf(stderr, "Command \"%s\" is unknown, try \"ip tunnel help\".\n", *argv);