Lines Matching full:argv
522 static int parse_args(int argc, char **argv, int cmd, struct l2tp_parm *p)
536 if (strcmp(*argv, "encap") == 0) {
538 if (strcmp(*argv, "ip") == 0) {
540 } else if (strcmp(*argv, "udp") == 0) {
543 fprintf(stderr, "Unknown tunnel encapsulation \"%s\"\n", *argv);
546 } else if (strcmp(*argv, "name") == 0) {
548 if (check_ifname(*argv))
549 invarg("\"name\" not a valid ifname", *argv);
550 p->ifname = *argv;
551 } else if (strcmp(*argv, "remote") == 0) {
553 if (get_addr(&p->peer_ip, *argv, AF_UNSPEC))
554 invarg("invalid remote address\n", *argv);
555 } else if (strcmp(*argv, "local") == 0) {
557 if (get_addr(&p->local_ip, *argv, AF_UNSPEC))
558 invarg("invalid local address\n", *argv);
559 } else if ((strcmp(*argv
560 (strcmp(*argv, "tid") == 0)) {
564 if (get_u32(&uval, *argv, 0))
565 invarg("invalid ID\n", *argv);
567 } else if ((strcmp(*argv, "peer_tunnel_id") == 0) ||
568 (strcmp(*argv, "ptid") == 0)) {
572 if (get_u32(&uval, *argv, 0))
573 invarg("invalid ID\n", *argv);
575 } else if ((strcmp(*argv, "session_id") == 0) ||
576 (strcmp(*argv, "sid") == 0)) {
580 if (get_u32(&uval, *argv, 0))
581 invarg("invalid ID\n", *argv);
583 } else if ((strcmp(*argv, "peer_session_id") == 0) ||
584 (strcmp(*argv, "psid") == 0)) {
588 if (get_u32(&uval, *argv, 0))
589 invarg("invalid ID\n", *argv);
591 } else if (strcmp(*argv, "udp_sport") == 0) {
595 if (get_u16(&uval, *argv, 0))
596 invarg("invalid port\n", *argv);
598 } else if (strcmp(*argv, "udp_dport") == 0) {
602 if (get_u16(&uval, *argv, 0))
603 invarg("invalid port\n", *argv);
605 } else if (strcmp(*argv, "udp_csum") == 0) {
607 if (strcmp(*argv, "on") == 0)
609 else if (strcmp(*argv, "off") == 0)
612 invarg("invalid option for udp_csum\n", *argv);
613 } else if (strcmp(*argv, "udp6_csum_rx") == 0) {
615 if (strcmp(*argv, "on") == 0)
617 else if (strcmp(*argv, "off") == 0)
621 , *argv);
622 } else if (strcmp(*argv, "udp6_csum_tx") == 0) {
624 if (strcmp(*argv, "on") == 0)
626 else if (strcmp(*argv, "off") == 0)
630 , *argv);
631 } else if (strcmp(*argv, "offset") == 0) {
635 if (get_u8(&uval, *argv, 0))
636 invarg("invalid offset\n", *argv);
638 } else if (strcmp(*argv, "peer_offset") == 0) {
642 if (get_u8(&uval, *argv, 0))
643 invarg("invalid offset\n", *argv);
645 } else if (strcmp(*argv, "cookie") == 0) {
649 slen = strlen(*argv);
651 invarg("cookie must be either 8 or 16 hex digits\n", *argv);
654 if (hex2mem(*argv, p->cookie, p->cookie_len) < 0)
655 invarg("cookie must be a hex string\n", *argv);
656 } else if (strcmp(*argv, "peer_cookie") == 0) {
660 slen = strlen(*argv);
662 invarg("cookie must be either 8 or 16 hex digits\n", *argv);
665 if (hex2mem(*argv, p->peer_cookie, p->peer_cookie_len) < 0)
666 invarg("cookie must be a hex string\n", *argv);
667 } else if (strcmp(*argv, "l2spec_type") == 0) {
669 if (strcasecmp(*argv, "default") == 0) {
672 } else if (strcasecmp(*argv, "none") == 0) {
678 *argv);
681 } else if (strcmp(*argv, "seq") == 0) {
683 if (strcasecmp(*argv, "both") == 0) {
686 } else if (strcasecmp(*argv, "recv") == 0) {
688 } else if (strcasecmp(*argv, "send") == 0) {
690 } else if (strcasecmp(*argv, "none") == 0) {
695 "Unknown seq value \"%s\"\n", *argv);
698 } else if (strcmp(*argv, "tunnel") == 0) {
700 } else if (strcmp(*argv, "session") == 0) {
702 } else if (matches(*argv, "help") == 0) {
705 fprintf(stderr, "Unknown command: %s\n", *argv);
709 argc--; argv++;
716 static int do_add(int argc, char **argv)
721 if (parse_args(argc, argv, L2TP_ADD, &p) < 0)
767 static int do_del(int argc, char **argv)
771 if (parse_args(argc, argv, L2TP_DEL, &p) < 0)
790 static int do_show(int argc, char **argv)
795 if (parse_args(argc, argv, L2TP_GET, p) < 0)
809 int do_ipl2tp(int argc, char **argv)
811 if (argc < 1 || !matches(*argv, "help"))
817 if (matches(*argv, "add") == 0)
818 return do_add(argc-1, argv+1);
819 if (matches(*argv, "delete") == 0)
820 return do_del(argc-1, argv+1);
821 if (matches(*argv, "show") == 0 ||
822 matches(*argv, "lst") == 0 ||
823 matches(*argv, "list") == 0)
824 return do_show(argc-1, argv+1);
827 "Command \"%s\" is unknown, try \"ip l2tp help\".\n", *argv);