Home | History | Annotate | Download | only in ip

Lines Matching full:argv

133 static int parse_args(int argc, char **argv, int cmd, struct ip6_tnl_parm2 *p)
141 if (strcmp(*argv, "mode") == 0) {
143 if (strcmp(*argv, "ipv6/ipv6") == 0 ||
144 strcmp(*argv, "ip6ip6") == 0)
146 else if (strcmp(*argv, "vti6") == 0) {
149 } else if (strcmp(*argv, "ip/ipv6") == 0 ||
150 strcmp(*argv, "ipv4/ipv6") == 0 ||
151 strcmp(*argv, "ipip6") == 0 ||
152 strcmp(*argv, "ip4ip6") == 0)
154 else if (strcmp(*argv, "ip6gre") == 0 ||
155 strcmp(*argv, "gre/ipv6") == 0)
157 else if (strcmp(*argv, "any/ipv6") == 0 ||
158 strcmp(*argv, "any") == 0)
161 fprintf(stderr,"Unknown tunnel mode \"%s\"\n", *argv);
164 } else if (strcmp(*argv, "remote") == 0) {
167 get_prefix(&raddr, *argv, preferred_family);
169 invarg("\"remote\" address family is AF_UNSPEC", *argv);
171 } else if (strcmp(*argv, "local") == 0) {
174 get_prefix(&laddr, *argv, preferred_family);
176 invarg("\"local\" address family is AF_UNSPEC", *argv);
178 } else if (strcmp(*argv, "dev") == 0) {
180 strncpy(medium, *argv, IFNAMSIZ - 1);
181 } else if (strcmp(*argv, "encaplimit") == 0) {
183 if (strcmp(*argv, "none") == 0) {
187 if (get_u8(&uval, *argv, 0) < -1)
188 invarg("invalid ELIM", *argv);
192 } else if (strcmp(*argv, "hoplimit") == 0 ||
193 strcmp(*argv, "ttl") == 0 ||
194 strcmp(*argv, "hlim") == 0) {
197 if (get_u8(&uval, *argv, 0))
198 invarg("invalid TTL", *argv);
200 } else if (strcmp(*argv, "tclass") == 0 ||
201 strcmp(*argv, "tc") == 0 ||
202 strcmp(*argv, "tos") == 0 ||
203 matches(*argv, "dsfield") == 0) {
207 if (strcmp(*argv, "inherit") == 0)
210 if (get_u8(&uval, *argv, 16))
211 invarg("invalid TClass", *argv);
215 } else if (strcmp(*argv, "flowlabel") == 0 ||
216 strcmp(*argv, "fl") == 0) {
220 if (strcmp(*argv, "inherit") == 0)
223 if (get_u32(&uval, *argv, 16))
224 invarg("invalid Flowlabel", *argv);
226 invarg("invalid Flowlabel", *argv);
230 } else if (strcmp(*argv, "dscp") == 0) {
232 if (strcmp(*argv, "inherit") != 0)
233 invarg("not inherit", *argv);
235 } else if (strcmp(*argv, "key") == 0) {
239 p->i_key = p->o_key = tnl_parse_key("key", *argv);
240 } else if (strcmp(*argv, "ikey") == 0) {
243 p->i_key = tnl_parse_key("ikey", *argv);
244 } else if (strcmp(*argv, "okey") == 0) {
247 p->o_key = tnl_parse_key("okey", *argv);
248 } else if (strcmp(*argv, "seq") == 0) {
251 } else if (strcmp(*argv, "iseq") == 0) {
253 } else if (strcmp(*argv, "oseq") == 0) {
255 } else if (strcmp(*argv, "csum") == 0) {
258 } else if (strcmp(*argv, "icsum") == 0) {
260 } else if (strcmp(*argv, "ocsum") == 0) {
263 if (strcmp(*argv, "name") == 0) {
265 } else if (matches(*argv, "help") == 0)
268 duparg2("name", *argv);
269 strncpy(p->name, *argv, IFNAMSIZ - 1);
273 if (tnl_get_ioctl(*argv, &old_p))
279 argc--; argv++;
388 static int do_show(int argc, char **argv)
396 if (parse_args(argc, argv, SIOCGETTUNNEL, &p) < 0)
411 static int do_add(int cmd, int argc, char **argv)
418 if (parse_args(argc, argv, cmd, &p) < 0)
429 static int do_del(int argc, char **argv)
436 if (parse_args(argc, argv, SIOCDELTUNNEL, &p) < 0)
447 int do_ip6tunnel(int argc, char **argv)
461 if (matches(*argv, "add") == 0)
462 return do_add(SIOCADDTUNNEL, argc - 1, argv + 1);
463 if (matches(*argv, "change") == 0)
464 return do_add(SIOCCHGTUNNEL, argc - 1, argv + 1);
465 if (matches(*argv, "delete") == 0)
466 return do_del(argc - 1, argv + 1);
467 if (matches(*argv, "show") == 0 ||
468 matches(*argv, "lst") == 0 ||
469 matches(*argv, "list") == 0)
470 return do_show(argc - 1, argv + 1);
471 if (matches(*argv, "help") == 0)
476 fprintf(stderr, "Command \"%s\" is unknown, try \"ip -f inet6 tunnel help\".\n", *argv);