Home | History | Annotate | Download | only in ip

Lines Matching refs:argv

49 static int parse_args(int argc, char **argv, int cmd, struct ip_tunnel_parm *p)
66 if (strcmp(*argv, "mode") == 0) {
68 if (strcmp(*argv, "ipip") == 0 ||
69 strcmp(*argv, "ip/ip") == 0) {
75 } else if (strcmp(*argv, "gre") == 0 ||
76 strcmp(*argv, "gre/ip") == 0) {
82 } else if (strcmp(*argv, "sit") == 0 ||
83 strcmp(*argv, "ipv6/ip") == 0) {
89 } else if (strcmp(*argv, "isatap") == 0) {
100 } else if (strcmp(*argv, "key") == 0) {
105 if (strchr(*argv, '.'))
106 p->i_key = p->o_key = get_addr32(*argv);
108 if (get_unsigned(&uval, *argv, 0)<0) {
114 } else if (strcmp(*argv, "ikey") == 0) {
118 if (strchr(*argv, '.'))
119 p->i_key = get_addr32(*argv);
121 if (get_unsigned(&uval, *argv, 0)<0) {
127 } else if (strcmp(*argv, "okey") == 0) {
131 if (strchr(*argv, '.'))
132 p->o_key = get_addr32(*argv);
134 if (get_unsigned(&uval, *argv, 0)<0) {
140 } else if (strcmp(*argv, "seq") == 0) {
143 } else if (strcmp(*argv, "iseq") == 0) {
145 } else if (strcmp(*argv, "oseq") == 0) {
147 } else if (strcmp(*argv, "csum") == 0) {
150 } else if (strcmp(*argv, "icsum") == 0) {
152 } else if (strcmp(*argv, "ocsum") == 0) {
154 } else if (strcmp(*argv, "nopmtudisc") == 0) {
156 } else if (strcmp(*argv, "pmtudisc") == 0) {
158 } else if (strcmp(*argv, "remote") == 0) {
160 if (strcmp(*argv, "any"))
161 p->iph.daddr = get_addr32(*argv);
162 } else if (strcmp(*argv, "local") == 0) {
164 if (strcmp(*argv, "any"))
165 p->iph.saddr = get_addr32(*argv);
166 } else if (strcmp(*argv, "dev") == 0) {
168 strncpy(medium, *argv, IFNAMSIZ-1);
169 } else if (strcmp(*argv, "ttl") == 0 ||
170 strcmp(*argv, "hoplimit") == 0) {
173 if (strcmp(*argv, "inherit") != 0) {
174 if (get_unsigned(&uval, *argv, 0))
175 invarg("invalid TTL\n", *argv);
177 invarg("TTL must be <=255\n", *argv);
180 } else if (strcmp(*argv, "tos") == 0 ||
181 strcmp(*argv, "tclass") == 0 ||
182 matches(*argv, "dsfield") == 0) {
185 if (strcmp(*argv, "inherit") != 0) {
186 if (rtnl_dsfield_a2n(&uval, *argv))
187 invarg("bad TOS value", *argv);
192 if (strcmp(*argv, "name") == 0) {
194 } else if (matches(*argv, "help") == 0)
197 duparg2("name", *argv);
198 strncpy(p->name, *argv, IFNAMSIZ);
202 if (tnl_get_ioctl(*argv, &old_p))
208 argc--; argv++;
257 static int do_add(int cmd, int argc, char **argv)
261 if (parse_args(argc, argv, cmd, &p) < 0)
283 static int do_del(int argc, char **argv)
287 if (parse_args(argc, argv, SIOCDELTUNNEL, &p) < 0)
451 static int do_show(int argc, char **argv)
456 if (parse_args(argc, argv, SIOCGETTUNNEL, &p) < 0)
481 static int do_prl(int argc, char **argv)
493 if (strcmp(*argv, "prl-default") == 0) {
496 p.addr = get_addr32(*argv);
499 } else if (strcmp(*argv, "prl-nodefault") == 0) {
502 p.addr = get_addr32(*argv);
504 } else if (strcmp(*argv, "prl-delete") == 0) {
507 p.addr = get_addr32(*argv);
509 } else if (strcmp(*argv, "dev") == 0) {
511 strncpy(medium, *argv, IFNAMSIZ-1);
514 fprintf(stderr,"%s: Invalid PRL parameter.\n", *argv);
521 argc--; argv++;
531 int do_iptunnel(int argc, char **argv)
545 return do_ip6tunnel(argc, argv);
552 if (matches(*argv, "add") == 0)
553 return do_add(SIOCADDTUNNEL, argc-1, argv+1);
554 if (matches(*argv, "change") == 0)
555 return do_add(SIOCCHGTUNNEL, argc-1, argv+1);
556 if (matches(*argv, "del") == 0)
557 return do_del(argc-1, argv+1);
558 if (matches(*argv, "show") == 0 ||
559 matches(*argv, "lst") == 0 ||
560 matches(*argv, "list") == 0)
561 return do_show(argc-1, argv+1);
562 if (matches(*argv, "prl") == 0)
563 return do_prl(argc-1, argv+1);
564 if (matches(*argv, "help") == 0)
569 fprintf(stderr, "Command \"%s\" is unknown, try \"ip tunnel help\".\n", *argv);