Home | History | Annotate | Download | only in ip

Lines Matching full:argv

631 	char **argv = *argvp;
633 while (++argv, --argc > 0) {
634 if (strcmp(*argv, "via") == 0) {
636 rta_addattr32(rta, 4096, RTA_GATEWAY, get_addr32(*argv));
638 } else if (strcmp(*argv, "dev") == 0) {
640 if ((rtnh->rtnh_ifindex = ll_name_to_index(*argv)) == 0) {
641 fprintf(stderr, "Cannot find device \"%s\"\n", *argv);
644 } else if (strcmp(*argv, "weight") == 0) {
647 if (get_unsigned(&w, *argv, 0) || w == 0 || w > 256)
648 invarg("\"weight\" is invalid\n", *argv);
650 } else if (strcmp(*argv, "onlink") == 0) {
652 } else if (matches(*argv, "realms") == 0) {
655 if (get_rt_realms(&realm, *argv))
656 invarg("\"realm\" value is invalid\n", *argv);
663 *argvp = argv;
667 int parse_nexthops(struct nlmsghdr *n, struct rtmsg *r, int argc, char **argv)
678 if (strcmp(*argv, "nexthop") != 0) {
679 fprintf(stderr, "Error: \"nexthop\" or end of line is expected instead of \"%s\"\n", *argv);
689 parse_one_nh(rta, rtnh, &argc, &argv);
699 int iproute_modify(int cmd, unsigned flags, int argc, char **argv)
736 if (strcmp(*argv, "src") == 0) {
739 get_addr(&addr, *argv, req.r.rtm_family);
743 } else if (strcmp(*argv, "via") == 0) {
747 get_addr(&addr, *argv, req.r.rtm_family);
751 } else if (strcmp(*argv, "from") == 0) {
754 get_prefix(&addr, *argv, req.r.rtm_family);
760 } else if (strcmp(*argv, "tos") == 0 ||
761 matches(*argv, "dsfield") == 0) {
764 if (rtnl_dsfield_a2n(&tos, *argv))
765 invarg("\"tos\" value is invalid\n", *argv);
767 } else if (matches(*argv, "metric") == 0 ||
768 matches(*argv, "priority") == 0 ||
769 matches(*argv, "preference") == 0) {
772 if (get_u32(&metric, *argv, 0))
773 invarg("\"metric\" value is invalid\n", *argv);
775 } else if (strcmp(*argv, "scope") == 0) {
778 if (rtnl_rtscope_a2n(&scope, *argv))
779 invarg("invalid \"scope\" value\n", *argv);
782 } else if (strcmp(*argv, "mtu") == 0) {
785 if (strcmp(*argv, "lock") == 0) {
789 if (get_unsigned(&mtu, *argv, 0))
790 invarg("\"mtu\" value is invalid\n", *argv);
792 } else if (strcmp(*argv, "hoplimit") == 0) {
795 if (strcmp(*argv, "lock") == 0) {
799 if (get_unsigned(&hoplimit, *argv, 0))
800 invarg("\"hoplimit\" value is invalid\n", *argv);
802 } else if (strcmp(*argv, "advmss") == 0) {
805 if (strcmp(*argv, "lock") == 0) {
809 if (get_unsigned(&mss, *argv, 0))
810 invarg("\"mss\" value is invalid\n", *argv);
812 } else if (matches(*argv, "reordering") == 0) {
815 if (strcmp(*argv, "lock") == 0) {
819 if (get_unsigned(&reord, *argv, 0))
820 invarg("\"reordering\" value is invalid\n", *argv);
822 } else if (strcmp(*argv, "rtt") == 0) {
825 if (strcmp(*argv, "lock") == 0) {
829 if (get_time_rtt(&rtt, *argv, &raw))
830 invarg("\"rtt\" value is invalid\n", *argv);
833 } else if (strcmp(*argv, "rto_min") == 0) {
837 if (get_time_rtt(&rto_min, *argv, &raw))
839 *argv);
842 } else if (matches(*argv, "window") == 0) {
845 if (strcmp(*argv, "lock") == 0) {
849 if (get_unsigned(&win, *argv, 0))
850 invarg("\"window\" value is invalid\n", *argv);
852 } else if (matches(*argv, "cwnd") == 0) {
855 if (strcmp(*argv, "lock") == 0) {
859 if (get_unsigned(&win, *argv, 0))
860 invarg("\"cwnd\" value is invalid\n", *argv);
862 } else if (matches(*argv, "initcwnd") == 0) {
865 if (strcmp(*argv, "lock") == 0) {
869 if (get_unsigned(&win, *argv, 0))
870 invarg("\"initcwnd\" value is invalid\n", *argv);
872 } else if (matches(*argv, "initrwnd") == 0) {
875 if (strcmp(*argv, "lock") == 0) {
879 if (get_unsigned(&win, *argv, 0))
880 invarg("\"initrwnd\" value is invalid\n", *argv);
882 } else if (matches(*argv, "rttvar") == 0) {
885 if (strcmp(*argv, "lock") == 0) {
889 if (get_time_rtt(&win, *argv, &raw))
890 invarg("\"rttvar\" value is invalid\n", *argv);
893 } else if (matches(*argv, "ssthresh") == 0) {
896 if (strcmp(*argv, "lock") == 0) {
900 if (get_unsigned(&win, *argv, 0))
901 invarg("\"ssthresh\" value is invalid\n", *argv);
903 } else if (matches(*argv, "realms") == 0) {
906 if (get_rt_realms(&realm, *argv))
907 invarg("\"realm\" value is invalid\n", *argv);
909 } else if (strcmp(*argv, "onlink") == 0) {
911 } else if (strcmp(*argv, "nexthop") == 0) {
914 } else if (matches(*argv, "protocol") == 0) {
917 if (rtnl_rtprot_a2n(&prot, *argv))
918 invarg("\"protocol\" value is invalid\n", *argv);
920 } else if (matches(*argv, "table") == 0) {
923 if (rtnl_rttable_a2n(&tid, *argv))
924 invarg("\"table\" value is invalid\n", *argv);
932 } else if (strcmp(*argv, "dev") == 0 ||
933 strcmp(*argv, "oif") == 0) {
935 d = *argv;
940 if (strcmp(*argv, "to") == 0) {
943 if ((**argv < '0' || **argv > '9') &&
944 rtnl_rtntype_a2n(&type, *argv) == 0) {
949 if (matches(*argv, "help") == 0)
952 duparg2("to", *argv);
953 get_prefix(&dst, *argv, req.r.rtm_family);
961 argc--; argv++;
985 parse_nexthops(&req.n, &req.r, argc, argv);
1096 static int iproute_list_flush_or_save(int argc, char **argv, int action)
1118 if (matches(*argv, "table") == 0) {
1121 if (rtnl_rttable_a2n(&tid, *argv)) {
1122 if (strcmp(*argv, "all") == 0) {
1124 } else if (strcmp(*argv, "cache") == 0) {
1126 } else if (strcmp(*argv, "help") == 0) {
1129 invarg("table id value is invalid\n", *argv);
1133 } else if (matches(*argv, "cached") == 0 ||
1134 matches(*argv, "cloned") == 0) {
1136 } else if (strcmp(*argv, "tos") == 0 ||
1137 matches(*argv, "dsfield") == 0) {
1140 if (rtnl_dsfield_a2n(&tos, *argv))
1141 invarg("TOS value is invalid\n", *argv);
1144 } else if (matches(*argv, "protocol") == 0) {
1148 if (rtnl_rtprot_a2n(&prot, *argv)) {
1149 if (strcmp(*argv, "all") != 0)
1150 invarg("invalid \"protocol\"\n", *argv);
1155 } else if (matches(*argv, "scope") == 0) {
1159 if (rtnl_rtscope_a2n(&scope, *argv)) {
1160 if (strcmp(*argv, "all") != 0)
1161 invarg("invalid \"scope\"\n", *argv);
1166 } else if (matches(*argv, "type") == 0) {
1170 if (rtnl_rtntype_a2n(&type, *argv))
1171 invarg("node type value is invalid\n", *argv);
1173 } else if (strcmp(*argv, "dev") == 0 ||
1174 strcmp(*argv, "oif") == 0) {
1176 od = *argv;
1177 } else if (strcmp(*argv, "iif") == 0) {
1179 id = *argv;
1180 } else if (strcmp(*argv, "mark") == 0) {
1182 get_unsigned(&mark, *argv, 0);
1184 } else if (strcmp(*argv, "via") == 0) {
1186 get_prefix(&filter.rvia, *argv, do_ipv6);
1187 } else if (strcmp(*argv, "src") == 0) {
1189 get_prefix(&filter.rprefsrc, *argv, do_ipv6);
1190 } else if (matches(*argv, "realms") == 0) {
1193 if (get_rt_realms(&realm, *argv))
1194 invarg("invalid realms\n", *argv);
1198 (*argv)[strlen(*argv) - 1] == '/')
1201 (strchr(*argv, '/') == NULL ||
1202 (*argv)[0] == '/'))
1204 } else if (matches(*argv, "from") == 0) {
1206 if (matches(*argv, "root") == 0) {
1208 get_prefix(&filter.rsrc, *argv, do_ipv6);
1209 } else if (matches(*argv, "match") == 0) {
1211 get_prefix(&filter.msrc, *argv, do_ipv6);
1213 if (matches(*argv, "exact") == 0) {
1216 get_prefix(&filter.msrc, *argv, do_ipv6);
1220 if (matches(*argv, "to") == 0) {
1223 if (matches(*argv, "root") == 0) {
1225 get_prefix(&filter.rdst, *argv, do_ipv6);
1226 } else if (matches(*argv, "match") == 0) {
1228 get_prefix(&filter.mdst, *argv, do_ipv6);
1230 if (matches(*argv, "exact") == 0) {
1233 get_prefix(&filter.mdst, *argv, do_ipv6);
1237 argc--; argv++;
1344 int iproute_get(int argc, char **argv)
1375 if (strcmp(*argv, "tos") == 0 ||
1376 matches(*argv, "dsfield") == 0) {
1379 if (rtnl_dsfield_a2n(&tos, *argv))
1380 invarg("TOS value is invalid\n", *argv);
1382 } else if (matches(*argv, "from") == 0) {
1385 if (matches(*argv, "help") == 0)
1388 get_prefix(&addr, *argv, req.r.rtm_family);
1394 } else if (matches(*argv, "iif") == 0) {
1396 idev = *argv;
1397 } else if (matches(*argv, "mark") == 0) {
1399 get_unsigned(&mark, *argv, 0);
1400 } else if (matches(*argv, "oif") == 0 ||
1401 strcmp(*argv, "dev") == 0) {
1403 odev = *argv;
1404 } else if (matches(*argv, "notify") == 0) {
1406 } else if (matches(*argv, "connected") == 0) {
1410 if (strcmp(*argv, "to") == 0) {
1413 if (matches(*argv, "help") == 0)
1415 get_prefix(&addr, *argv, req.r.rtm_family);
1422 argc--; argv++;
1536 int do_iproute(int argc, char **argv)
1541 if (matches(*argv, "add") == 0)
1543 argc-1, argv+1);
1544 if (matches(*argv, "change") == 0 || strcmp(*argv, "chg") == 0)
1546 argc-1, argv+1);
1547 if (matches(*argv, "replace") == 0)
1549 argc-1, argv+1);
1550 if (matches(*argv, "prepend") == 0)
1552 argc-1, argv+1);
1553 if (matches(*argv, "append") == 0)
1555 argc-1, argv+1);
1556 if (matches(*argv, "test") == 0)
1558 argc-1, argv+1);
1559 if (matches(*argv, "delete") == 0)
1561 argc-1, argv+1);
1562 if (matches(*argv, "list") == 0 || matches(*argv, "show") == 0
1563 || matches(*argv, "lst") == 0)
1564 return iproute_list_flush_or_save(argc-1, argv+1, IPROUTE_LIST);
1565 if (matches(*argv, "get") == 0)
1566 return iproute_get(argc-1, argv+1);
1567 if (matches(*argv, "flush") == 0)
1568 return iproute_list_flush_or_save(argc-1, argv+1, IPROUTE_FLUSH);
1569 if (matches(*argv, "save") == 0)
1570 return iproute_list_flush_or_save(argc-1, argv+1, IPROUTE_SAVE);
1571 if (matches(*argv, "restore") == 0)
1573 if (matches(*argv, "help") == 0)
1575 fprintf(stderr, "Command \"%s\" is unknown, try \"ip route help\".\n", *argv);