Home | History | Annotate | Download | only in ip

Lines Matching defs:argv

745 	char **argv = *argvp;
747 while (++argv, --argc > 0) {
748 if (strcmp(*argv, "via") == 0) {
753 family = read_family(*argv);
758 get_addr(&addr, *argv, family);
768 } else if (strcmp(*argv, "dev") == 0) {
770 if ((rtnh->rtnh_ifindex = ll_name_to_index(*argv)) == 0) {
771 fprintf(stderr, "Cannot find device \"%s\"\n", *argv);
774 } else if (strcmp(*argv, "weight") == 0) {
778 if (get_unsigned(&w, *argv, 0) || w == 0 || w > 256)
779 invarg("\"weight\" is invalid\n", *argv);
781 } else if (strcmp(*argv, "onlink") == 0) {
783 } else if (matches(*argv, "realms") == 0) {
787 if (get_rt_realms_or_raw(&realm, *argv))
788 invarg("\"realm\" value is invalid\n", *argv);
791 } else if (strcmp(*argv, "encap") == 0) {
794 lwt_parse_encap(rta, 4096, &argc, &argv);
796 } else if (strcmp(*argv, "as") == 0) {
800 if (strcmp(*argv, "to") == 0)
802 get_addr(&addr, *argv, r->rtm_family);
810 *argvp = argv;
815 int argc, char **argv)
826 if (strcmp(*argv, "nexthop") != 0) {
827 fprintf(stderr, "Error: \"nexthop\" or end of line is expected instead of \"%s\"\n", *argv);
837 parse_one_nh(n, r, rta, rtnh, &argc, &argv);
846 static int iproute_modify(int cmd, unsigned int flags, int argc, char **argv)
882 if (strcmp(*argv, "src") == 0) {
886 get_addr(&addr, *argv, req.r.rtm_family);
890 } else if (strcmp(*argv, "as") == 0) {
894 if (strcmp(*argv, "to") == 0) {
897 get_addr(&addr, *argv, req.r.rtm_family);
901 } else if (strcmp(*argv, "via") == 0) {
907 *argv);
911 family = read_family(*argv);
916 get_addr(&addr, *argv, family);
925 } else if (strcmp(*argv, "from") == 0) {
929 get_prefix(&addr, *argv, req.r.rtm_family);
935 } else if (strcmp(*argv, "tos") == 0 ||
936 matches(*argv, "dsfield") == 0) {
940 if (rtnl_dsfield_a2n(&tos, *argv))
941 invarg("\"tos\" value is invalid\n", *argv);
943 } else if (strcmp(*argv, "expires") == 0) {
947 if (get_u32(&expires, *argv, 0))
948 invarg("\"expires\" value is invalid\n", *argv);
950 } else if (matches(*argv, "metric") == 0 ||
951 matches(*argv, "priority") == 0 ||
952 strcmp(*argv, "preference") == 0) {
956 if (get_u32(&metric, *argv, 0))
957 invarg("\"metric\" value is invalid\n", *argv);
959 } else if (strcmp(*argv, "scope") == 0) {
963 if (rtnl_rtscope_a2n(&scope, *argv))
964 invarg("invalid \"scope\" value\n", *argv);
967 } else if (strcmp(*argv, "mtu") == 0) {
971 if (strcmp(*argv, "lock") == 0) {
975 if (get_unsigned(&mtu, *argv, 0))
976 invarg("\"mtu\" value is invalid\n", *argv);
978 } else if (strcmp(*argv, "hoplimit") == 0) {
982 if (strcmp(*argv, "lock") == 0) {
986 if (get_unsigned(&hoplimit, *argv, 0) || hoplimit > 255)
987 invarg("\"hoplimit\" value is invalid\n", *argv);
989 } else if (strcmp(*argv, "advmss") == 0) {
993 if (strcmp(*argv, "lock") == 0) {
997 if (get_unsigned(&mss, *argv, 0))
998 invarg("\"mss\" value is invalid\n", *argv);
1000 } else if (matches(*argv, "reordering") == 0) {
1004 if (strcmp(*argv, "lock") == 0) {
1008 if (get_unsigned(&reord, *argv, 0))
1009 invarg("\"reordering\" value is invalid\n", *argv);
1011 } else if (strcmp(*argv, "rtt") == 0) {
1015 if (strcmp(*argv, "lock") == 0) {
1019 if (get_time_rtt(&rtt, *argv, &raw))
1020 invarg("\"rtt\" value is invalid\n", *argv);
1023 } else if (strcmp(*argv, "rto_min") == 0) {
1028 if (get_time_rtt(&rto_min, *argv, &raw))
1030 *argv);
1033 } else if (matches(*argv, "window") == 0) {
1037 if (strcmp(*argv, "lock") == 0) {
1041 if (get_unsigned(&win, *argv, 0))
1042 invarg("\"window\" value is invalid\n", *argv);
1044 } else if (matches(*argv, "cwnd") == 0) {
1048 if (strcmp(*argv, "lock") == 0) {
1052 if (get_unsigned(&win, *argv, 0))
1053 invarg("\"cwnd\" value is invalid\n", *argv);
1055 } else if (matches(*argv, "initcwnd") == 0) {
1059 if (strcmp(*argv, "lock") == 0) {
1063 if (get_unsigned(&win, *argv, 0))
1064 invarg("\"initcwnd\" value is invalid\n", *argv);
1066 } else if (matches(*argv, "initrwnd") == 0) {
1070 if (strcmp(*argv, "lock") == 0) {
1074 if (get_unsigned(&win, *argv, 0))
1075 invarg("\"initrwnd\" value is invalid\n", *argv);
1077 } else if (matches(*argv, "features") == 0) {
1083 if (strcmp(*argv, "ecn") == 0)
1086 invarg("\"features\" value not valid\n", *argv);
1091 } else if (matches(*argv, "quickack") == 0) {
1095 if (get_unsigned(&quickack, *argv, 0))
1096 invarg("\"quickack\" value is invalid\n", *argv);
1098 invarg("\"quickack\" value should be 0 or 1\n", *argv);
1100 } else if (matches(*argv, "congctl") == 0) {
1102 if (strcmp(*argv, "lock") == 0) {
1106 rta_addattr_l(mxrta, sizeof(mxbuf), RTAX_CC_ALGO, *argv,
1107 strlen(*argv));
1108 } else if (matches(*argv, "rttvar") == 0) {
1112 if (strcmp(*argv, "lock") == 0) {
1116 if (get_time_rtt(&win, *argv, &raw))
1117 invarg("\"rttvar\" value is invalid\n", *argv);
1120 } else if (matches(*argv, "ssthresh") == 0) {
1124 if (strcmp(*argv, "lock") == 0) {
1128 if (get_unsigned(&win, *argv, 0))
1129 invarg("\"ssthresh\" value is invalid\n", *argv);
1131 } else if (matches(*argv, "realms") == 0) {
1135 if (get_rt_realms_or_raw(&realm, *argv))
1136 invarg("\"realm\" value is invalid\n", *argv);
1138 } else if (strcmp(*argv, "onlink") == 0) {
1140 } else if (strcmp(*argv
1143 } else if (matches(*argv, "protocol") == 0) {
1147 if (rtnl_rtprot_a2n(&prot, *argv))
1148 invarg("\"protocol\" value is invalid\n", *argv);
1150 } else if (matches(*argv, "table") == 0) {
1154 if (rtnl_rttable_a2n(&tid, *argv))
1155 invarg("\"table\" value is invalid\n", *argv);
1163 } else if (matches(*argv, "vrf") == 0) {
1167 tid = ipvrf_get_table(*argv);
1169 invarg("Invalid VRF\n", *argv);
1177 } else if (strcmp(*argv, "dev") == 0 ||
1178 strcmp(*argv, "oif") == 0) {
1180 d = *argv;
1181 } else if (matches(*argv, "pref") == 0) {
1185 if (strcmp(*argv, "low") == 0)
1187 else if (strcmp(*argv, "medium") == 0)
1189 else if (strcmp(*argv, "high") == 0)
1191 else if (get_u8(&pref, *argv, 0))
1192 invarg("\"pref\" value is invalid\n", *argv);
1194 } else if (strcmp(*argv, "encap") == 0) {
1201 lwt_parse_encap(rta, sizeof(buf), &argc, &argv);
1205 } else if (strcmp(*argv, "ttl-propagate") == 0) {
1209 if (matches(*argv, "enabled") == 0)
1211 else if (matches(*argv, "disabled") == 0)
1215 *argv);
1223 if (strcmp(*argv, "to") == 0) {
1226 if ((**argv < '0' || **argv > '9') &&
1227 rtnl_rtntype_a2n(&type, *argv) == 0) {
1233 if (matches(*argv, "help") == 0)
1236 duparg2("to", *argv);
1237 get_prefix(&dst, *argv, req.r.rtm_family);
1245 argc--; argv++;
1268 parse_nexthops(&req.n, &req.r, argc, argv);
1397 static int iproute_list_flush_or_save(int argc, char **argv, int action)
1423 if (matches(*argv, "table") == 0) {
1427 if (rtnl_rttable_a2n(&tid, *argv)) {
1428 if (strcmp(*argv, "all") == 0) {
1430 } else if (strcmp(*argv, "cache") == 0) {
1432 } else if (strcmp(*argv, "help") == 0) {
1435 invarg("table id value is invalid\n", *argv);
1439 } else if (matches(*argv, "vrf") == 0) {
1443 tid = ipvrf_get_table(*argv);
1445 invarg("Invalid VRF\n", *argv);
1448 } else if (matches(*argv, "cached") == 0 ||
1449 matches(*argv, "cloned") == 0) {
1451 } else if (strcmp(*argv, "tos") == 0 ||
1452 matches(*argv, "dsfield") == 0) {
1456 if (rtnl_dsfield_a2n(&tos, *argv))
1457 invarg("TOS value is invalid\n", *argv);
1460 } else if (matches(*argv, "protocol") == 0) {
1465 if (rtnl_rtprot_a2n(&prot, *argv)) {
1466 if (strcmp(*argv, "all") != 0)
1467 invarg("invalid \"protocol\"\n", *argv);
1472 } else if (matches(*argv, "scope") == 0) {
1477 if (rtnl_rtscope_a2n(&scope, *argv)) {
1478 if (strcmp(*argv, "all") != 0)
1479 invarg("invalid \"scope\"\n", *argv);
1484 } else if (matches(*argv, "type") == 0) {
1488 if (rtnl_rtntype_a2n(&type, *argv))
1489 invarg("node type value is invalid\n", *argv);
1491 } else if (strcmp(*argv, "dev") == 0 ||
1492 strcmp(*argv, "oif") == 0) {
1494 od = *argv;
1495 } else if (strcmp(*argv, "iif") == 0) {
1497 id = *argv;
1498 } else if (strcmp(*argv, "mark") == 0) {
1500 if (get_unsigned(&mark, *argv, 0))
1501 invarg("invalid mark value", *argv);
1503 } else if (strcmp(*argv, "via") == 0) {
1507 family = read_family(*argv);
1512 get_prefix(&filter.rvia, *argv, family);
1513 } else if (strcmp(*argv, "src") == 0) {
1515 get_prefix(&filter.rprefsrc, *argv, do_ipv6);
1516 } else if (matches(*argv, "realms") == 0) {
1520 if (get_rt_realms_or_raw(&realm, *argv))
1521 invarg("invalid realms\n", *argv);
1525 (*argv)[strlen(*argv) - 1] == '/')
1528 (strchr(*argv, '/') == NULL ||
1529 (*argv)[0] == '/'))
1531 } else if (matches(*argv, "from") == 0) {
1533 if (matches(*argv, "root") == 0) {
1535 get_prefix(&filter.rsrc, *argv, do_ipv6);
1536 } else if (matches(*argv, "match") == 0) {
1538 get_prefix(&filter.msrc, *argv, do_ipv6);
1540 if (matches(*argv, "exact") == 0) {
1543 get_prefix(&filter.msrc, *argv, do_ipv6);
1547 if (matches(*argv, "to") == 0) {
1550 if (matches(*argv, "root") == 0) {
1552 get_prefix(&filter.rdst, *argv, do_ipv6);
1553 } else if (matches(*argv, "match") == 0) {
1555 get_prefix(&filter.mdst, *argv, do_ipv6);
1557 if (matches(*argv, "exact") == 0) {
1560 get_prefix(&filter.mdst, *argv, do_ipv6);
1564 argc--; argv++;
1669 static int iproute_get(int argc, char **argv)
1692 if (strcmp(*argv, "tos") == 0 ||
1693 matches(*argv, "dsfield") == 0) {
1697 if (rtnl_dsfield_a2n(&tos, *argv))
1698 invarg("TOS value is invalid\n", *argv);
1700 } else if (matches(*argv, "from") == 0) {
1704 if (matches(*argv, "help") == 0)
1707 get_prefix(&addr, *argv, req.r.rtm_family);
1713 } else if (matches(*argv, "iif") == 0) {
1715 idev = *argv;
1716 } else if (matches(*argv, "mark") == 0) {
1718 if (get_unsigned(&mark, *argv, 0))
1719 invarg("invalid mark value", *argv);
1720 } else if (matches(*argv, "oif") == 0 ||
1721 strcmp(*argv, "dev") == 0) {
1723 odev = *argv;
1724 } else if (matches(*argv, "notify") == 0) {
1726 } else if (matches(*argv, "connected") == 0) {
1728 } else if (matches(*argv, "vrf") == 0) {
1730 if (!name_is_vrf(*argv))
1731 invarg("Invalid VRF\n", *argv);
1732 odev = *argv;
1733 } else if (matches(*argv, "uid") == 0) {
1737 if (get_unsigned(&uid, *argv, 0))
1738 invarg("invalid UID\n", *argv);
1740 } else if (matches(*argv, "fibmatch") == 0) {
1742 } else if (strcmp(*argv, "as") == 0) {
1746 if (strcmp(*argv, "to") == 0)
1748 get_addr(&addr, *argv, req.r.rtm_family);
1755 if (strcmp(*argv, "to") == 0) {
1758 if (matches(*argv, "help") == 0)
1760 get_prefix(&addr, *argv, req.r.rtm_family);
1767 argc--; argv++;
1982 int do_iproute(int argc, char **argv)
1987 if (matches(*argv, "add") == 0)
1989 argc-1, argv+1);
1990 if (matches(*argv, "change") == 0 || strcmp(*argv, "chg") == 0)
1992 argc-1, argv+1);
1993 if (matches(*argv, "replace") == 0)
1995 argc-1, argv+1);
1996 if (matches(*argv, "prepend") == 0)
1998 argc-1, argv+1);
1999 if (matches(*argv, "append") == 0)
2001 argc-1, argv+1);
2002 if (matches(*argv, "test") == 0)
2004 argc-1, argv+1);
2005 if (matches(*argv, "delete") == 0)
2007 argc-1, argv+1);
2008 if (matches(*argv, "list") == 0 || matches(*argv, "show") == 0
2009 || matches(*argv, "lst") == 0)
2010 return iproute_list_flush_or_save(argc-1, argv+1, IPROUTE_LIST);
2011 if (matches(*argv, "get") == 0)
2012 return iproute_get(argc-1, argv+1);
2013 if (matches(*argv, "flush") == 0)
2014 return iproute_list_flush_or_save(argc-1, argv+1, IPROUTE_FLUSH);
2015 if (matches(*argv, "save") == 0)
2016 return iproute_list_flush_or_save(argc-1, argv+1, IPROUTE_SAVE);
2017 if (matches(*argv, "restore") == 0)
2019 if (matches(*argv, "showdump") == 0)
2021 if (matches(*argv, "help") == 0)
2023 fprintf(stderr, "Command \"%s\" is unknown, try \"ip route help\".\n", *argv);