Home | History | Annotate | Download | only in ip

Lines Matching full:argv

198 static int iprule_list(int argc, char **argv)
224 static int iprule_modify(int cmd, int argc, char **argv)
251 if (strcmp(*argv, "not") == 0) {
253 } else if (strcmp(*argv, "from") == 0) {
256 get_prefix(&dst, *argv, req.r.rtm_family);
259 } else if (strcmp(*argv, "to") == 0) {
262 get_prefix(&dst, *argv, req.r.rtm_family);
265 } else if (matches(*argv, "preference") == 0 ||
266 matches(*argv, "order") == 0 ||
267 matches(*argv, "priority") == 0) {
270 if (get_u32(&pref, *argv, 0))
271 invarg("preference value is invalid\n", *argv);
273 } else if (strcmp(*argv, "tos") == 0 ||
274 matches(*argv, "dsfield") == 0) {
277 if (rtnl_dsfield_a2n(&tos, *argv))
278 invarg("TOS value is invalid\n", *argv);
280 } else if (strcmp(*argv, "fwmark") == 0) {
284 if ((slash = strchr(*argv, '/')) != NULL)
286 if (get_u32(&fwmark, *argv, 0))
287 invarg("fwmark value is invalid\n", *argv);
294 } else if (matches(*argv, "realms") == 0) {
297 if (get_rt_realms(&realm, *argv))
298 invarg("invalid realms\n", *argv);
300 } else if (matches(*argv, "table") == 0 ||
301 strcmp(*argv, "lookup") == 0) {
304 if (rtnl_rttable_a2n(&tid, *argv))
305 invarg("invalid table ID\n", *argv);
313 } else if (strcmp(*argv, "dev") == 0 ||
314 strcmp(*argv, "iif") == 0) {
316 addattr_l(&req.n, sizeof(req), FRA_IFNAME, *argv, strlen(*argv)+1);
317 } else if (strcmp(*argv, "oif") == 0) {
319 addattr_l(&req.n, sizeof(req), FRA_OIFNAME, *argv, strlen(*argv)+1);
320 } else if (strcmp(*argv, "nat") == 0 ||
321 matches(*argv, "map-to") == 0) {
324 addattr32(&req.n, sizeof(req), RTA_GATEWAY, get_addr32(*argv));
329 if (strcmp(*argv, "type") == 0) {
332 if (matches(*argv, "help") == 0)
334 else if (matches(*argv, "goto") == 0) {
338 if (get_u32(&target, *argv, 0))
339 invarg("invalid target\n", *argv);
341 } else if (matches(*argv, "nop") == 0)
343 else if (rtnl_rtntype_a2n(&type, *argv))
344 invarg("Failed to parse rule type", *argv);
349 argv++;
394 static int iprule_flush(int argc, char **argv)
419 int do_iprule(int argc, char **argv)
423 } else if (matches(argv[0], "list") == 0 ||
424 matches(argv[0], "lst") == 0 ||
425 matches(argv[0], "show") == 0) {
426 return iprule_list(argc-1, argv+1);
427 } else if (matches(argv[0], "add") == 0) {
428 return iprule_modify(RTM_NEWRULE, argc-1, argv+1);
429 } else if (matches(argv[0], "delete") == 0) {
430 return iprule_modify(RTM_DELRULE, argc-1, argv+1);
431 } else if (matches(argv[0], "flush") == 0) {
432 return iprule_flush(argc-1, argv+1);
433 } else if (matches(argv[0], "help") == 0)
436 fprintf(stderr, "Command \"%s\" is unknown, try \"ip rule help\".\n", *argv);
440 int do_multirule(int argc, char **argv)
459 return do_iprule(argc, argv);