From: Philippe Guibert Date: Fri, 2 Mar 2018 14:43:07 +0000 (+0100) Subject: bgpd: clear ip bgp instances with invalid safi X-Git-Tag: frr-5.0-dev~185^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=9b475e76c6a49af4f48ca20b689b3f022cf8c2dd;p=matthieu%2Ffrr.git bgpd: clear ip bgp instances with invalid safi This commit fixes the handling of incoming parameters passed in following vty functions: clear ip bgp ipv6 [safi] prefix [] clear ip bgp [vrf ] ipv6 [safi] prefix [] Signed-off-by: Philippe Guibert --- diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index 15cc5673ac..2f60871e88 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -6413,11 +6413,16 @@ DEFUN (clear_bgp_ipv6_safi_prefix, "Clear bestpath and re-advertise\n" "IPv6 prefix\n") { - int idx_safi = 3; - int idx_ipv6_prefixlen = 5; + int idx_safi = 0; + int idx_ipv6_prefix = 0; + safi_t safi = SAFI_UNICAST; + char *prefix = argv_find(argv, argc, "X:X::X:X/M", &idx_ipv6_prefix) ? + argv[idx_ipv6_prefix]->arg : NULL; + + argv_find_and_parse_safi(argv, argc, &idx_safi, &safi); return bgp_clear_prefix( - vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, - bgp_vty_safi_from_str(argv[idx_safi]->text), NULL); + vty, NULL, prefix, AFI_IP6, + safi, NULL); } DEFUN (clear_bgp_instance_ipv6_safi_prefix, @@ -6433,11 +6438,20 @@ DEFUN (clear_bgp_instance_ipv6_safi_prefix, "IPv6 prefix\n") { int idx_word = 3; - int idx_safi = 5; - int idx_ipv6_prefixlen = 7; + int idx_safi = 0; + int idx_ipv6_prefix = 0; + safi_t safi = SAFI_UNICAST; + char *prefix = argv_find(argv, argc, "X:X::X:X/M", &idx_ipv6_prefix) ? + argv[idx_ipv6_prefix]->arg : NULL; + /* [ VIEWVRFNAME] */ + char *vrfview = argv_find(argv, argc, "VIEWVRFNAME", &idx_word) ? + argv[idx_word]->arg : NULL; + + argv_find_and_parse_safi(argv, argc, &idx_safi, &safi); + return bgp_clear_prefix( - vty, argv[idx_word]->arg, argv[idx_ipv6_prefixlen]->arg, - AFI_IP6, bgp_vty_safi_from_str(argv[idx_safi]->text), NULL); + vty, vrfview, prefix, + AFI_IP6, safi, NULL); } DEFUN (show_bgp_views,