return -1;
}
-bgp_vty_safi_from_arg(const char *safi_str)
+ /* supports (unicast|multicast|vpn|encap) */
+ safi_t
++bgp_vty_safi_from_arg(const char *safi_str)
+ {
+ safi_t safi = SAFI_MAX; /* unknown */
+ if (strncmp (safi_str, "m", 1) == 0)
+ safi = SAFI_MULTICAST;
+ else if (strncmp (safi_str, "u", 1) == 0)
+ safi = SAFI_UNICAST;
+ else if (strncmp (safi_str, "e", 1) == 0)
+ safi = SAFI_ENCAP;
+ else if (strncmp (safi_str, "v", 1) == 0)
+ safi = SAFI_MPLS_VPN;
+ return safi;
+ }
+
int
bgp_parse_safi(const char *str, safi_t *safi)
{
- if (!strcmp(str, "encap")) {
- *safi = SAFI_ENCAP;
- return 0;
- }
- if (!strcmp(str, "multicast")) {
- *safi = SAFI_MULTICAST;
- return 0;
- }
- if (!strcmp(str, "unicast")) {
- *safi = SAFI_UNICAST;
- return 0;
- }
- if (!strcmp(str, "vpn")) {
- *safi = SAFI_MPLS_VPN;
- return 0;
- }
+ *safi = bgp_vty_safi_from_arg(str);
+ if (*safi != SAFI_MAX)
+ return 0;
- else
++ else
return -1;
}
DEFUN (address_family_ipv4_safi,
address_family_ipv4_safi_cmd,
- "address-family ipv4 <unicast|multicast>",
- "address-family ipv4 (unicast|multicast)",
++ "address-family ipv4 <unicast|multicast|vpn|encap>",
"Enter Address Family command mode\n"
- AFI_SAFI_STR)
+ "Address Family\n"
+ "Address Family modifier\n"
++ "Address Family modifier\n"
++ "Address Family modifier\n"
+ "Address Family modifier\n")
{
- switch (bgp_vty_safi_from_arg(argv[0]))
+ int idx_safi = 2;
- if (strncmp (argv[idx_safi]->arg, "m", 1) == 0)
- vty->node = BGP_IPV4M_NODE;
- else
- vty->node = BGP_IPV4_NODE;
++ switch (bgp_vty_safi_from_arg(argv[idx_safi]->arg))
+ {
+ case SAFI_MULTICAST:
+ vty->node = BGP_IPV4M_NODE;
+ break;
+ case SAFI_ENCAP:
+ vty->node = BGP_ENCAP_NODE;
+ break;
+ case SAFI_MPLS_VPN:
+ vty->node = BGP_VPNV4_NODE;
+ break;
+ case SAFI_UNICAST:
+ default:
+ vty->node = BGP_IPV4_NODE;
+ break;
+ }
return CMD_SUCCESS;
}
DEFUN (address_family_ipv6_safi,
address_family_ipv6_safi_cmd,
- "address-family ipv6 <unicast|multicast>",
- "address-family ipv6 (unicast|multicast)",
++ "address-family ipv6 <unicast|multicast|vpn|encap>",
"Enter Address Family command mode\n"
- "Address family\n"
+ "Address Family\n"
+ "Address Family modifier\n"
++ "Address Family modifier\n"
+ "Address Family modifier\n"
"Address Family modifier\n")
{
- if (strncmp (argv[0], "m", 1) == 0)
+ int idx_safi = 2;
+ if (strncmp (argv[idx_safi]->arg, "m", 1) == 0)
vty->node = BGP_IPV6M_NODE;
else
vty->node = BGP_IPV6_NODE;
return CMD_SUCCESS;
}
+/* one clear bgp command to rule them all */
DEFUN (clear_ip_bgp_all,
clear_ip_bgp_all_cmd,
- "clear [ip] bgp [<view|vrf> WORD] [<ipv4 [<unicast|multicast>]|ipv6 [<unicast|multicast>]|encap [unicast]|vpnv4 [unicast]>] <*|A.B.C.D|X:X::X:X|WORD|(1-4294967295)|external|peer-group WORD> [<soft [<in|out>]|in [prefix-filter]|out>]",
- "clear ip bgp *",
++ "clear [ip] bgp [<view|vrf> WORD] [<ipv4 [<unicast|multicast|vpn|encap>]|ipv6 [<unicast|multicast|vpn|encap>]] <*|A.B.C.D|X:X::X:X|WORD|(1-4294967295)|external|peer-group WORD> [<soft [<in|out>]|in [prefix-filter]|out>]",
CLEAR_STR
IP_STR
BGP_STR
- "Clear all peers\n")
+ BGP_INSTANCE_HELP_STR
+ "Clear all peers\n"
+ "BGP neighbor address to clear\n"
+ "BGP IPv6 neighbor to clear\n"
+ "BGP neighbor on interface to clear\n"
+ "Clear peers with the AS number\n"
+ "Clear all external peers\n"
+ "Clear all members of peer-group\n"
+ "BGP peer-group name\n"
+ "Address Family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
++ "Address Family modifier\n"
++ "Address Family modifier\n"
+ "Address Family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
++ "Address Family modifier\n"
++ "Address Family modifier\n"
+ "Address Family\n"
+ "Address Family modifier\n"
+ "Address Family\n"
+ "Address Family modifier\n"
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR
+ BGP_SOFT_OUT_STR
+ BGP_SOFT_IN_STR
+ "Push out prefix-list ORF and do inbound soft reconfig\n"
+ BGP_SOFT_OUT_STR)
{
- if (argc == 2)
- return bgp_clear_vty (vty, argv[1], 0, 0, clear_all, BGP_CLEAR_SOFT_NONE, NULL);
+ VTY_DECLVAR_CONTEXT(bgp, bgp);
+ char *vrf = NULL;
+
+ afi_t afi = AFI_IP6;
+ safi_t safi = SAFI_UNICAST;
+ enum clear_sort clr_sort = clear_peer;
+ enum bgp_clear_type clr_type;
+ char *clr_arg = NULL;
+
+ int idx = 0;
+
+ /* clear [ip] bgp */
+ if (argv_find (argv, argc, "ip", &idx))
+ afi = AFI_IP;
+ /* [<view|vrf> WORD] */
+ if (argv_find (argv, argc, "view", &idx) || argv_find (argv, argc, "vrf", &idx))
+ {
+ vrf = argv[idx + 1]->arg;
+ idx += 2;
+ }
+ /* <*|A.B.C.D|X:X::X:X|WORD|(1-4294967295)|external|peer-group WORD> */
+ if (argv_find (argv, argc, "*", &idx))
+ {
+ clr_sort = clear_all;
+ }
+ else if (argv_find (argv, argc, "A.B.C.D", &idx))
+ {
+ clr_sort = clear_peer;
+ clr_arg = argv[idx]->arg;
+ }
+ else if (argv_find (argv, argc, "X:X::X:X", &idx))
+ {
+ clr_sort = clear_peer;
+ clr_arg = argv[idx]->arg;
+ }
+ else if (argv_find (argv, argc, "peer-group", &idx))
+ {
+ clr_sort = clear_group;
+ idx++;
+ clr_arg = argv[idx]->arg;
+
+ if (! peer_group_lookup (bgp, clr_arg))
+ {
+ vty_out (vty, "%% No such peer-group%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ }
+ else if (argv_find (argv, argc, "WORD", &idx))
+ {
+ if (peer_lookup_by_conf_if (bgp, argv[idx]->arg))
+ {
+ clr_sort = clear_peer;
+ clr_arg = argv[idx]->arg;
+ }
+ else
+ {
+ vty_out (vty, "%% No such neighbor%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ }
+ else if (argv_find (argv, argc, "(1-4294967295)", &idx))
+ {
+ clr_sort = clear_as;
+ clr_arg = argv[idx]->arg;
+ }
+ else if (argv_find (argv, argc, "external", &idx))
+ {
+ clr_sort = clear_external;
+ }
+ /* [<ipv4 [<unicast|multicast>]|ipv6 [<unicast|multicast>]|encap [unicast]||vpnv4 [unicast]>] */
+ if (argv_find (argv, argc, "ipv4", &idx) || argv_find (argv, argc, "ipv6", &idx))
+ {
+ afi = strmatch(argv[idx]->text, "ipv6") ? AFI_IP6 : AFI_IP;
+ if (argv_find (argv, argc, "unicast", &idx) || argv_find (argv, argc, "multicast", &idx))
- safi = strmatch (argv[idx]->text, "unicast") ? SAFI_UNICAST : SAFI_MULTICAST;
++ safi = bgp_vty_safi_from_arg (argv[idx]->text);
+ }
+ else if (argv_find (argv, argc, "encap", &idx) || argv_find (argv, argc, "vpnv4", &idx))
+ {
+ afi = AFI_IP;
- safi = strmatch (argv[idx]->text, "encap") ? SAFI_ENCAP : SAFI_MPLS_VPN;
++ safi = bgp_vty_safi_from_arg (argv[idx]->text);
+ // advance idx if necessary
+ argv_find (argv, argc, "unicast", &idx);
+ }
+ /* [<soft [<in|out>]|in [prefix-filter]|out>] */
+ if (argv_find (argv, argc, "soft", &idx))
+ {
+ if (argv_find (argv, argc, "in", &idx) || argv_find (argv, argc, "out", &idx))
+ clr_type = strmatch (argv[idx]->text, "in") ? BGP_CLEAR_SOFT_IN : BGP_CLEAR_SOFT_OUT;
+ else
+ clr_type = BGP_CLEAR_SOFT_BOTH;
+ }
+ else if (argv_find (argv, argc, "in", &idx))
+ {
+ clr_type = argv_find (argv, argc, "prefix-filter", &idx) ? BGP_CLEAR_SOFT_IN_ORF_PREFIX : BGP_CLEAR_SOFT_IN;
+ }
+ else if (argv_find (argv, argc, "out", &idx))
+ {
+ clr_type = BGP_CLEAR_SOFT_OUT;
+ }
+ else
+ clr_type = BGP_CLEAR_SOFT_NONE;
- return bgp_clear_vty (vty, NULL, 0, 0, clear_all, BGP_CLEAR_SOFT_NONE, NULL);
+ return bgp_clear_vty (vty, vrf, afi, safi, clr_sort, clr_type, clr_arg);
}
-ALIAS (clear_ip_bgp_all,
- clear_ip_bgp_instance_all_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " *",
+DEFUN (clear_ip_bgp_prefix,
+ clear_ip_bgp_prefix_cmd,
+ "clear [ip] bgp [<view|vrf> WORD] prefix A.B.C.D/M",
CLEAR_STR
IP_STR
BGP_STR
BGP_INSTANCE_HELP_STR
- "Clear all peers\n")
+ "Clear bestpath and re-advertise\n"
+ "IPv4 prefix\n")
+{
+ char *vrf = NULL;
+ char *prefix = NULL;
-ALIAS (clear_ip_bgp_all,
- clear_bgp_all_cmd,
- "clear bgp *",
- CLEAR_STR
- BGP_STR
- "Clear all peers\n")
+ int idx = 0;
-ALIAS (clear_ip_bgp_all,
- clear_bgp_instance_all_cmd,
- "clear bgp " BGP_INSTANCE_CMD " *",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n")
+ /* [<view|vrf> WORD] */
+ if (argv_find (argv, argc, "WORD", &idx))
+ vrf = argv[idx]->arg;
-ALIAS (clear_ip_bgp_all,
- clear_bgp_ipv6_all_cmd,
- "clear bgp ipv6 *",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all peers\n")
+ prefix = argv[argc-1]->arg;
-ALIAS (clear_ip_bgp_all,
- clear_bgp_instance_ipv6_all_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 *",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all peers\n")
+ return bgp_clear_prefix (vty, vrf, prefix, AFI_IP, SAFI_UNICAST, NULL);
+}
-DEFUN (clear_ip_bgp_peer,
- clear_ip_bgp_peer_cmd,
- "clear ip bgp (A.B.C.D|X:X::X:X|WORD)",
+DEFUN (clear_bgp_ipv6_safi_prefix,
+ clear_bgp_ipv6_safi_prefix_cmd,
- "clear [ip] bgp ipv6 <unicast|multicast> prefix X:X::X:X/M",
++ "clear [ip] bgp ipv6 <unicast|multicast|vpn|encap> prefix X:X::X:X/M",
CLEAR_STR
IP_STR
BGP_STR
- "BGP neighbor IP address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n")
+ "Address Family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
++ "Address Family modifier\n"
++ "Address Family modifier\n"
+ "Clear bestpath and re-advertise\n"
+ "IPv6 prefix\n")
{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], 0, 0, clear_peer, BGP_CLEAR_SOFT_NONE, argv[2]);
-
- return bgp_clear_vty (vty, NULL, 0, 0, clear_peer, BGP_CLEAR_SOFT_NONE, argv[0]);
+ int idx_safi = 3;
+ int idx_ipv6_prefixlen = 5;
- if (strncmp (argv[idx_safi]->arg, "m", 1) == 0)
- return bgp_clear_prefix (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_MULTICAST, NULL);
- else
- return bgp_clear_prefix (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, NULL);
++ safi_t safi = bgp_vty_safi_from_arg (argv[idx_safi]->arg);
++ return bgp_clear_prefix (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, safi, NULL);
}
-ALIAS (clear_ip_bgp_peer,
- clear_ip_bgp_instance_peer_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " (A.B.C.D|X:X::X:X|WORD)",
+DEFUN (clear_bgp_instance_ipv6_safi_prefix,
+ clear_bgp_instance_ipv6_safi_prefix_cmd,
- "clear [ip] bgp <view|vrf> WORD ipv6 <unicast|multicast> prefix X:X::X:X/M",
++ "clear [ip] bgp <view|vrf> WORD ipv6 <unicast|multicast|vpn|encap> prefix X:X::X:X/M",
CLEAR_STR
IP_STR
BGP_STR
BGP_INSTANCE_HELP_STR
- "BGP neighbor IP address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n")
+ "Address Family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
++ "Address Family modifier\n"
++ "Address Family modifier\n"
+ "Clear bestpath and re-advertise\n"
+ "IPv6 prefix\n")
+{
+ int idx_word = 3;
+ int idx_safi = 5;
+ int idx_ipv6_prefixlen = 7;
- if (strncmp (argv[idx_safi]->arg, "m", 1) == 0)
- return bgp_clear_prefix (vty, argv[idx_word]->arg, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_MULTICAST, NULL);
- else
- return bgp_clear_prefix (vty, argv[idx_word]->arg, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, NULL);
++ safi_t safi = bgp_vty_safi_from_arg (argv[idx_safi]->text);
++ return bgp_clear_prefix (vty, argv[idx_word]->arg, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, safi, NULL);
+}
-ALIAS (clear_ip_bgp_peer,
- clear_bgp_peer_cmd,
- "clear bgp (A.B.C.D|X:X::X:X|WORD)",
- CLEAR_STR
+DEFUN (show_bgp_views,
+ show_bgp_views_cmd,
+ "show [ip] bgp views",
+ SHOW_STR
+ IP_STR
BGP_STR
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n")
+ "Show the defined BGP views\n")
+{
+ struct list *inst = bm->bgp;
+ struct listnode *node;
+ struct bgp *bgp;
-ALIAS (clear_ip_bgp_peer,
- clear_bgp_instance_peer_cmd,
- "clear bgp " BGP_INSTANCE_CMD " (A.B.C.D|X:X::X:X|WORD)",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor IP address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n")
+ if (!bgp_option_check (BGP_OPT_MULTIPLE_INSTANCE))
+ {
+ vty_out (vty, "BGP Multiple Instance is not enabled%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
-ALIAS (clear_ip_bgp_peer,
- clear_bgp_ipv6_peer_cmd,
- "clear bgp ipv6 (A.B.C.D|X:X::X:X|WORD)",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n")
+ vty_out (vty, "Defined BGP views:%s", VTY_NEWLINE);
+ for (ALL_LIST_ELEMENTS_RO(inst, node, bgp))
+ {
+ /* Skip VRFs. */
+ if (bgp->inst_type == BGP_INSTANCE_TYPE_VRF)
+ continue;
+ vty_out (vty, "\t%s (AS%u)%s",
+ bgp->name ? bgp->name : "(null)",
+ bgp->as, VTY_NEWLINE);
+ }
-ALIAS (clear_ip_bgp_peer,
- clear_bgp_instance_ipv6_peer_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 (A.B.C.D|X:X::X:X|WORD)",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "BGP neighbor IP address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n")
+ return CMD_SUCCESS;
+}
-DEFUN (clear_ip_bgp_peer_group,
- clear_ip_bgp_peer_group_cmd,
- "clear ip bgp peer-group WORD",
- CLEAR_STR
+DEFUN (show_bgp_vrfs,
+ show_bgp_vrfs_cmd,
+ "show [ip] bgp vrfs [json]",
+ SHOW_STR
IP_STR
BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n")
+ "Show BGP VRFs\n"
+ JSON_STR)
{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], 0, 0, clear_group, BGP_CLEAR_SOFT_NONE, argv[2]);
+ struct list *inst = bm->bgp;
+ struct listnode *node;
+ struct bgp *bgp;
+ u_char uj = use_json(argc, argv);
+ json_object *json = NULL;
+ json_object *json_vrfs = NULL;
+ int count = 0;
+ static char header[] = "Type Id RouterId #PeersCfg #PeersEstb Name";
- return bgp_clear_vty (vty, NULL, 0, 0, clear_group, BGP_CLEAR_SOFT_NONE, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_peer_group,
- clear_ip_bgp_instance_peer_group_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " peer-group WORD",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n")
-
-ALIAS (clear_ip_bgp_peer_group,
- clear_bgp_peer_group_cmd,
- "clear bgp peer-group WORD",
- CLEAR_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n")
-
-ALIAS (clear_ip_bgp_peer_group,
- clear_bgp_instance_peer_group_cmd,
- "clear bgp " BGP_INSTANCE_CMD " peer-group WORD",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n")
-
-ALIAS (clear_ip_bgp_peer_group,
- clear_bgp_ipv6_peer_group_cmd,
- "clear bgp ipv6 peer-group WORD",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all members of peer-group\n"
- "BGP peer-group name\n")
-
-ALIAS (clear_ip_bgp_peer_group,
- clear_bgp_instance_ipv6_peer_group_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 peer-group WORD",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all members of peer-group\n"
- "BGP peer-group name\n")
-
-DEFUN (clear_ip_bgp_external,
- clear_ip_bgp_external_cmd,
- "clear ip bgp external",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all external peers\n")
-{
- if (argc == 2)
- return bgp_clear_vty (vty, argv[1], 0, 0, clear_external, BGP_CLEAR_SOFT_NONE, NULL);
-
- return bgp_clear_vty (vty, NULL, 0, 0, clear_external, BGP_CLEAR_SOFT_NONE, NULL);
-}
-
-ALIAS (clear_ip_bgp_external,
- clear_ip_bgp_instance_external_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " external",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n")
-
-ALIAS (clear_ip_bgp_external,
- clear_bgp_external_cmd,
- "clear bgp external",
- CLEAR_STR
- BGP_STR
- "Clear all external peers\n")
-
-ALIAS (clear_ip_bgp_external,
- clear_bgp_instance_external_cmd,
- "clear bgp " BGP_INSTANCE_CMD " external",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n")
-
-ALIAS (clear_ip_bgp_external,
- clear_bgp_ipv6_external_cmd,
- "clear bgp ipv6 external",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all external peers\n")
-
-ALIAS (clear_ip_bgp_external,
- clear_bgp_instance_ipv6_external_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 external",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all external peers\n")
-
-DEFUN (clear_ip_bgp_prefix,
- clear_ip_bgp_prefix_cmd,
- "clear ip bgp prefix A.B.C.D/M",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear bestpath and re-advertise\n"
- "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n")
-{
- if (argc == 3)
- return bgp_clear_prefix (vty, argv[1], argv[2], AFI_IP, SAFI_UNICAST, NULL);
-
- return bgp_clear_prefix (vty, NULL, argv[0], AFI_IP, SAFI_UNICAST, NULL);
-}
-
-ALIAS (clear_ip_bgp_prefix,
- clear_ip_bgp_instance_prefix_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " prefix A.B.C.D/M",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear bestpath and re-advertise\n"
- "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n")
-
-ALIAS (clear_ip_bgp_prefix,
- clear_bgp_prefix_cmd,
- "clear bgp prefix A.B.C.D/M",
- CLEAR_STR
- BGP_STR
- "Clear bestpath and re-advertise\n"
- "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n")
-
-ALIAS (clear_ip_bgp_prefix,
- clear_bgp_instance_prefix_cmd,
- "clear bgp " BGP_INSTANCE_CMD " prefix A.B.C.D/M",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear bestpath and re-advertise\n"
- "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n")
-
-DEFUN (clear_ip_bgp_as,
- clear_ip_bgp_as_cmd,
- "clear ip bgp " CMD_AS_RANGE,
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n")
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], 0, 0, clear_as, BGP_CLEAR_SOFT_NONE, argv[2]);
-
- return bgp_clear_vty (vty, NULL, 0, 0, clear_as, BGP_CLEAR_SOFT_NONE, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_as,
- clear_ip_bgp_instance_as_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE,
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n")
-
-ALIAS (clear_ip_bgp_as,
- clear_bgp_as_cmd,
- "clear bgp " CMD_AS_RANGE,
- CLEAR_STR
- BGP_STR
- "Clear peers with the AS number\n")
-
-ALIAS (clear_ip_bgp_as,
- clear_bgp_instance_as_cmd,
- "clear bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE,
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n")
-
-ALIAS (clear_ip_bgp_as,
- clear_bgp_ipv6_as_cmd,
- "clear bgp ipv6 " CMD_AS_RANGE,
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear peers with the AS number\n")
-
-ALIAS (clear_ip_bgp_as,
- clear_bgp_instance_ipv6_as_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 " CMD_AS_RANGE,
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear peers with the AS number\n")
-
-/* Outbound soft-reconfiguration */
-DEFUN (clear_ip_bgp_all_soft_out,
- clear_ip_bgp_all_soft_out_cmd,
- "clear ip bgp * soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (argc == 2)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_OUT, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_OUT, NULL);
-}
-
-ALIAS (clear_ip_bgp_all_soft_out,
- clear_ip_bgp_instance_all_soft_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " * soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_ip_bgp_all_soft_out,
- clear_ip_bgp_all_out_cmd,
- "clear ip bgp * out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_ip_bgp_all_soft_out,
- clear_ip_bgp_instance_all_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " * out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_ip_bgp_all_ipv4_soft_out,
- clear_ip_bgp_all_ipv4_soft_out_cmd,
- "clear ip bgp * ipv4 (unicast|multicast) soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (strncmp (argv[0], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_all,
- BGP_CLEAR_SOFT_OUT, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_OUT, NULL);
-}
-
-DEFUN (clear_ip_bgp_instance_all_ipv4_soft_out,
- clear_ip_bgp_instance_all_ipv4_soft_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " * ipv4 (unicast|multicast) soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_OUT_STR)
-{
- if (strncmp (argv[2], "m", 1) == 0)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_MULTICAST, clear_all,
- BGP_CLEAR_SOFT_OUT, NULL);
-
- return bgp_clear_vty (vty, argv[0], AFI_IP, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_OUT, NULL);
-}
-
-ALIAS (clear_ip_bgp_all_ipv4_soft_out,
- clear_ip_bgp_all_ipv4_out_cmd,
- "clear ip bgp * ipv4 (unicast|multicast) out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_ip_bgp_instance_all_ipv4_soft_out,
- clear_ip_bgp_instance_all_ipv4_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " * ipv4 (unicast|multicast) out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_ip_bgp_all_vpnv4_soft_out,
- clear_ip_bgp_all_vpnv4_soft_out_cmd,
- "clear ip bgp * vpnv4 unicast soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family Modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_all,
- BGP_CLEAR_SOFT_OUT, NULL);
-}
-
-ALIAS (clear_ip_bgp_all_vpnv4_soft_out,
- clear_ip_bgp_all_vpnv4_out_cmd,
- "clear ip bgp * vpnv4 unicast out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family Modifier\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_ip_bgp_all_encap_soft_out,
- clear_ip_bgp_all_encap_soft_out_cmd,
- "clear ip bgp * encap unicast soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_ENCAP, clear_all,
- BGP_CLEAR_SOFT_OUT, NULL);
-}
-
-ALIAS (clear_ip_bgp_all_encap_soft_out,
- clear_ip_bgp_all_encap_out_cmd,
- "clear ip bgp * encap unicast out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Soft reconfig outbound update\n")
-
-DEFUN (clear_bgp_all_soft_out,
- clear_bgp_all_soft_out_cmd,
- "clear bgp * soft out",
- CLEAR_STR
- BGP_STR
- "Clear all peers\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (argc == 2)
- return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_OUT, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_OUT, NULL);
-}
-
-ALIAS (clear_bgp_all_soft_out,
- clear_bgp_instance_all_soft_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " * soft out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_all_soft_out,
- clear_bgp_all_out_cmd,
- "clear bgp * out",
- CLEAR_STR
- BGP_STR
- "Clear all peers\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_all_soft_out,
- clear_bgp_instance_all_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " * out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_all_soft_out,
- clear_bgp_ipv6_all_soft_out_cmd,
- "clear bgp ipv6 * soft out",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all peers\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_all_soft_out,
- clear_bgp_instance_ipv6_all_soft_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 * soft out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all peers\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_all_soft_out,
- clear_bgp_ipv6_all_out_cmd,
- "clear bgp ipv6 * out",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all peers\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_all_soft_out,
- clear_bgp_instance_ipv6_all_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 * out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all peers\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_bgp_ipv6_safi_prefix,
- clear_bgp_ipv6_safi_prefix_cmd,
- "clear bgp ipv6 (unicast|multicast) prefix X:X::X:X/M",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Address Family Modifier\n"
- "Clear bestpath and re-advertise\n"
- "IPv6 prefix <network>/<length>, e.g., 3ffe::/16\n")
-{
- if (strncmp (argv[0], "m", 1) == 0)
- return bgp_clear_prefix (vty, NULL, argv[1], AFI_IP6, SAFI_MULTICAST, NULL);
- else
- return bgp_clear_prefix (vty, NULL, argv[1], AFI_IP6, SAFI_UNICAST, NULL);
-}
-
-DEFUN (clear_bgp_instance_ipv6_safi_prefix,
- clear_bgp_instance_ipv6_safi_prefix_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 (unicast|multicast) prefix X:X::X:X/M",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Address Family Modifier\n"
- "Clear bestpath and re-advertise\n"
- "IPv6 prefix <network>/<length>, e.g., 3ffe::/16\n")
-{
- if (strncmp (argv[2], "m", 1) == 0)
- return bgp_clear_prefix (vty, argv[1], argv[3], AFI_IP6, SAFI_MULTICAST, NULL);
- else
- return bgp_clear_prefix (vty, argv[1], argv[3], AFI_IP6, SAFI_UNICAST, NULL);
-}
-
-DEFUN (clear_ip_bgp_peer_soft_out,
- clear_ip_bgp_peer_soft_out_cmd,
- "clear ip bgp (A.B.C.D|WORD) soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_OUT, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_peer_soft_out,
- clear_ip_bgp_instance_peer_soft_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " (A.B.C.D|WORD) soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_ip_bgp_peer_soft_out,
- clear_ip_bgp_peer_out_cmd,
- "clear ip bgp (A.B.C.D|WORD) out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_ip_bgp_peer_soft_out,
- clear_ip_bgp_instance_peer_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " (A.B.C.D|WORD) out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_ip_bgp_peer_ipv4_soft_out,
- clear_ip_bgp_peer_ipv4_soft_out_cmd,
- "clear ip bgp (A.B.C.D|WORD) ipv4 (unicast|multicast) soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (strncmp (argv[1], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_peer,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_instance_peer_ipv4_soft_out,
- clear_ip_bgp_instance_peer_ipv4_soft_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " (A.B.C.D|WORD) ipv4 (unicast|multicast) soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (strncmp (argv[3], "m", 1) == 0)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_MULTICAST, clear_peer,
- BGP_CLEAR_SOFT_OUT, argv[2]);
-
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_OUT, argv[2]);
-}
-
-ALIAS (clear_ip_bgp_peer_ipv4_soft_out,
- clear_ip_bgp_peer_ipv4_out_cmd,
- "clear ip bgp (A.B.C.D|WORD) ipv4 (unicast|multicast) out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_ip_bgp_instance_peer_ipv4_soft_out,
- clear_ip_bgp_instance_peer_ipv4_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " (A.B.C.D|WORD) ipv4 (unicast|multicast) out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_OUT_STR)
-
-/* NOTE: WORD peers have not been tested for vpnv4 */
-DEFUN (clear_ip_bgp_peer_vpnv4_soft_out,
- clear_ip_bgp_peer_vpnv4_soft_out_cmd,
- "clear ip bgp (A.B.C.D|WORD) vpnv4 unicast soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family Modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_peer,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_peer_vpnv4_soft_out,
- clear_ip_bgp_peer_vpnv4_out_cmd,
- "clear ip bgp (A.B.C.D|WORD) vpnv4 unicast out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family Modifier\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_ip_bgp_peer_encap_soft_out,
- clear_ip_bgp_peer_encap_soft_out_cmd,
- "clear ip bgp A.B.C.D encap unicast soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_ENCAP, clear_peer,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_peer_encap_soft_out,
- clear_ip_bgp_peer_encap_out_cmd,
- "clear ip bgp A.B.C.D encap unicast out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Soft reconfig outbound update\n")
-
-DEFUN (clear_bgp_peer_soft_out,
- clear_bgp_peer_soft_out_cmd,
- "clear bgp (A.B.C.D|X:X::X:X|WORD) soft out",
- CLEAR_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_OUT, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-}
-
-ALIAS (clear_bgp_peer_soft_out,
- clear_bgp_instance_peer_soft_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " (A.B.C.D|X:X::X:X|WORD) soft out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_peer_soft_out,
- clear_bgp_ipv6_peer_soft_out_cmd,
- "clear bgp ipv6 (A.B.C.D|X:X::X:X|WORD) soft out",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_peer_soft_out,
- clear_bgp_instance_ipv6_peer_soft_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 (A.B.C.D|X:X::X:X|WORD) soft out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_peer_soft_out,
- clear_bgp_peer_out_cmd,
- "clear bgp (A.B.C.D|X:X::X:X|WORD) out",
- CLEAR_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_peer_soft_out,
- clear_bgp_instance_peer_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " (A.B.C.D|X:X::X:X|WORD) out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_peer_soft_out,
- clear_bgp_ipv6_peer_out_cmd,
- "clear bgp ipv6 (A.B.C.D|X:X::X:X|WORD) out",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_peer_soft_out,
- clear_bgp_instance_ipv6_peer_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 (A.B.C.D|X:X::X:X|WORD) out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_ip_bgp_peer_group_soft_out,
- clear_ip_bgp_peer_group_soft_out_cmd,
- "clear ip bgp peer-group WORD soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_OUT, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_peer_group_soft_out,
- clear_ip_bgp_instance_peer_group_soft_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " peer-group WORD soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_ip_bgp_peer_group_soft_out,
- clear_ip_bgp_peer_group_out_cmd,
- "clear ip bgp peer-group WORD out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_ip_bgp_peer_group_soft_out,
- clear_ip_bgp_instance_peer_group_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " peer-group WORD out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_ip_bgp_peer_group_ipv4_soft_out,
- clear_ip_bgp_peer_group_ipv4_soft_out_cmd,
- "clear ip bgp peer-group WORD ipv4 (unicast|multicast) soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (strncmp (argv[1], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_group,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_instance_peer_group_ipv4_soft_out,
- clear_ip_bgp_instance_peer_group_ipv4_soft_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " peer-group WORD ipv4 (unicast|multicast) soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (strncmp (argv[3], "m", 1) == 0)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_MULTICAST, clear_group,
- BGP_CLEAR_SOFT_OUT, argv[2]);
-
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_OUT, argv[2]);
-}
-
-ALIAS (clear_ip_bgp_peer_group_ipv4_soft_out,
- clear_ip_bgp_peer_group_ipv4_out_cmd,
- "clear ip bgp peer-group WORD ipv4 (unicast|multicast) out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_ip_bgp_instance_peer_group_ipv4_soft_out,
- clear_ip_bgp_instance_peer_group_ipv4_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " peer-group WORD ipv4 (unicast|multicast) out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_bgp_peer_group_soft_out,
- clear_bgp_peer_group_soft_out_cmd,
- "clear bgp peer-group WORD soft out",
- CLEAR_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_OUT, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-}
-
-ALIAS (clear_bgp_peer_group_soft_out,
- clear_bgp_instance_peer_group_soft_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " peer-group WORD soft out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_peer_group_soft_out,
- clear_bgp_ipv6_peer_group_soft_out_cmd,
- "clear bgp ipv6 peer-group WORD soft out",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_peer_group_soft_out,
- clear_bgp_instance_ipv6_peer_group_soft_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 peer-group WORD soft out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_peer_group_soft_out,
- clear_bgp_peer_group_out_cmd,
- "clear bgp peer-group WORD out",
- CLEAR_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_peer_group_soft_out,
- clear_bgp_instance_peer_group_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " peer-group WORD out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_peer_group_soft_out,
- clear_bgp_ipv6_peer_group_out_cmd,
- "clear bgp ipv6 peer-group WORD out",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_peer_group_soft_out,
- clear_bgp_instance_ipv6_peer_group_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 peer-group WORD out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_ip_bgp_external_soft_out,
- clear_ip_bgp_external_soft_out_cmd,
- "clear ip bgp external soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all external peers\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (argc == 2)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_OUT, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_OUT, NULL);
-}
-
-ALIAS (clear_ip_bgp_external_soft_out,
- clear_ip_bgp_instance_external_soft_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " external soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_ip_bgp_external_soft_out,
- clear_ip_bgp_external_out_cmd,
- "clear ip bgp external out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all external peers\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_ip_bgp_external_soft_out,
- clear_ip_bgp_instance_external_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " external out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_ip_bgp_external_ipv4_soft_out,
- clear_ip_bgp_external_ipv4_soft_out_cmd,
- "clear ip bgp external ipv4 (unicast|multicast) soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all external peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (strncmp (argv[0], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_external,
- BGP_CLEAR_SOFT_OUT, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_OUT, NULL);
-}
-
-DEFUN (clear_ip_bgp_instance_external_ipv4_soft_out,
- clear_ip_bgp_instance_external_ipv4_soft_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " external ipv4 (unicast|multicast) soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (strncmp (argv[2], "m", 1) == 0)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_MULTICAST, clear_external,
- BGP_CLEAR_SOFT_OUT, NULL);
-
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_OUT, NULL);
-}
-
-ALIAS (clear_ip_bgp_external_ipv4_soft_out,
- clear_ip_bgp_external_ipv4_out_cmd,
- "clear ip bgp external ipv4 (unicast|multicast) out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all external peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_ip_bgp_instance_external_ipv4_soft_out,
- clear_ip_bgp_instance_external_ipv4_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " external ipv4 (unicast|multicast) out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_bgp_external_soft_out,
- clear_bgp_external_soft_out_cmd,
- "clear bgp external soft out",
- CLEAR_STR
- BGP_STR
- "Clear all external peers\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (argc == 2)
- return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_OUT, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_OUT, NULL);
-}
-
-ALIAS (clear_bgp_external_soft_out,
- clear_bgp_instance_external_soft_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " external soft out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_external_soft_out,
- clear_bgp_ipv6_external_soft_out_cmd,
- "clear bgp ipv6 external soft out",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all external peers\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_external_soft_out,
- clear_bgp_instance_ipv6_external_soft_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 external soft out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all external peers\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_external_soft_out,
- clear_bgp_external_out_cmd,
- "clear bgp external out",
- CLEAR_STR
- BGP_STR
- "Clear all external peers\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_external_soft_out,
- clear_bgp_instance_external_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " external out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_external_soft_out,
- clear_bgp_ipv6_external_out_cmd,
- "clear bgp ipv6 external WORD out",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all external peers\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_external_soft_out,
- clear_bgp_instance_ipv6_external_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 external WORD out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all external peers\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_ip_bgp_as_soft_out,
- clear_ip_bgp_as_soft_out_cmd,
- "clear ip bgp " CMD_AS_RANGE " soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_OUT, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_as_soft_out,
- clear_ip_bgp_instance_as_soft_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE " soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_ip_bgp_as_soft_out,
- clear_ip_bgp_as_out_cmd,
- "clear ip bgp " CMD_AS_RANGE " out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_ip_bgp_as_soft_out,
- clear_ip_bgp_instance_as_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE " out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_ip_bgp_as_ipv4_soft_out,
- clear_ip_bgp_as_ipv4_soft_out_cmd,
- "clear ip bgp " CMD_AS_RANGE " ipv4 (unicast|multicast) soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (strncmp (argv[1], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_as,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_instance_as_ipv4_soft_out,
- clear_ip_bgp_instance_as_ipv4_soft_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE " ipv4 (unicast|multicast) soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (strncmp (argv[3], "m", 1) == 0)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_MULTICAST, clear_as,
- BGP_CLEAR_SOFT_OUT, argv[2]);
-
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_OUT, argv[2]);
-}
-
-ALIAS (clear_ip_bgp_as_ipv4_soft_out,
- clear_ip_bgp_as_ipv4_out_cmd,
- "clear ip bgp " CMD_AS_RANGE " ipv4 (unicast|multicast) out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_ip_bgp_instance_as_ipv4_soft_out,
- clear_ip_bgp_instance_as_ipv4_out_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE " ipv4 (unicast|multicast) out",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_ip_bgp_as_vpnv4_soft_out,
- clear_ip_bgp_as_vpnv4_soft_out_cmd,
- "clear ip bgp " CMD_AS_RANGE " vpnv4 unicast soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_as,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_as_vpnv4_soft_out,
- clear_ip_bgp_as_vpnv4_out_cmd,
- "clear ip bgp " CMD_AS_RANGE " vpnv4 unicast out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- BGP_SOFT_OUT_STR)
-
-DEFUN (clear_ip_bgp_as_encap_soft_out,
- clear_ip_bgp_as_encap_soft_out_cmd,
- "clear ip bgp " CMD_AS_RANGE " encap unicast soft out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_ENCAP, clear_as,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_as_encap_soft_out,
- clear_ip_bgp_as_encap_out_cmd,
- "clear ip bgp " CMD_AS_RANGE " encap unicast out",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- "Soft reconfig outbound update\n")
-
-DEFUN (clear_bgp_as_soft_out,
- clear_bgp_as_soft_out_cmd,
- "clear bgp " CMD_AS_RANGE " soft out",
- CLEAR_STR
- BGP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_OUT, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_OUT, argv[0]);
-}
-
-ALIAS (clear_bgp_as_soft_out,
- clear_bgp_instance_as_soft_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE " soft out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_as_soft_out,
- clear_bgp_ipv6_as_soft_out_cmd,
- "clear bgp ipv6 " CMD_AS_RANGE " soft out",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear peers with the AS number\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_as_soft_out,
- clear_bgp_instance_ipv6_as_soft_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 " CMD_AS_RANGE " soft out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear peers with the AS number\n"
- BGP_SOFT_STR
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_as_soft_out,
- clear_bgp_as_out_cmd,
- "clear bgp " CMD_AS_RANGE " out",
- CLEAR_STR
- BGP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_as_soft_out,
- clear_bgp_instance_as_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE " out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_as_soft_out,
- clear_bgp_ipv6_as_out_cmd,
- "clear bgp ipv6 " CMD_AS_RANGE " out",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear peers with the AS number\n"
- BGP_SOFT_OUT_STR)
-
-ALIAS (clear_bgp_as_soft_out,
- clear_bgp_instance_ipv6_as_out_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 " CMD_AS_RANGE " out",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear peers with the AS number\n"
- BGP_SOFT_OUT_STR)
-
-/* Inbound soft-reconfiguration */
-DEFUN (clear_ip_bgp_all_soft_in,
- clear_ip_bgp_all_soft_in_cmd,
- "clear ip bgp * soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (argc == 2)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_IN, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_IN, NULL);
-}
-
-ALIAS (clear_ip_bgp_all_soft_in,
- clear_ip_bgp_instance_all_soft_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " * soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_ip_bgp_all_soft_in,
- clear_ip_bgp_all_in_cmd,
- "clear ip bgp * in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_ip_bgp_all_soft_in,
- clear_ip_bgp_instance_all_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " * in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_ip_bgp_all_in_prefix_filter,
- clear_ip_bgp_all_in_prefix_filter_cmd,
- "clear ip bgp * in prefix-filter",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-{
- if (argc== 2)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, NULL);
-}
-
-DEFUN (clear_ip_bgp_all_ipv4_soft_in,
- clear_ip_bgp_all_ipv4_soft_in_cmd,
- "clear ip bgp * ipv4 (unicast|multicast) soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (strncmp (argv[0], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_all,
- BGP_CLEAR_SOFT_IN, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_IN, NULL);
-}
-
-DEFUN (clear_ip_bgp_instance_all_ipv4_soft_in,
- clear_ip_bgp_instance_all_ipv4_soft_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " * ipv4 (unicast|multicast) soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (strncmp (argv[2], "m", 1) == 0)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_MULTICAST, clear_all,
- BGP_CLEAR_SOFT_IN, NULL);
-
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_IN, NULL);
-}
-
-ALIAS (clear_ip_bgp_all_ipv4_soft_in,
- clear_ip_bgp_all_ipv4_in_cmd,
- "clear ip bgp * ipv4 (unicast|multicast) in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_ip_bgp_instance_all_ipv4_soft_in,
- clear_ip_bgp_instance_all_ipv4_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " * ipv4 (unicast|multicast) in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_ip_bgp_all_ipv4_in_prefix_filter,
- clear_ip_bgp_all_ipv4_in_prefix_filter_cmd,
- "clear ip bgp * ipv4 (unicast|multicast) in prefix-filter",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-{
- if (strncmp (argv[0], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_all,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, NULL);
-}
-
-DEFUN (clear_ip_bgp_all_vpnv4_soft_in,
- clear_ip_bgp_all_vpnv4_soft_in_cmd,
- "clear ip bgp * vpnv4 unicast soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family Modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_all,
- BGP_CLEAR_SOFT_IN, NULL);
-}
-
-ALIAS (clear_ip_bgp_all_vpnv4_soft_in,
- clear_ip_bgp_all_vpnv4_in_cmd,
- "clear ip bgp * vpnv4 unicast in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family Modifier\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_ip_bgp_all_encap_soft_in,
- clear_ip_bgp_all_encap_soft_in_cmd,
- "clear ip bgp * encap unicast soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_ENCAP, clear_all,
- BGP_CLEAR_SOFT_IN, NULL);
-}
-
-ALIAS (clear_ip_bgp_all_encap_soft_in,
- clear_ip_bgp_all_encap_in_cmd,
- "clear ip bgp * encap unicast in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Soft reconfig inbound update\n")
-
-DEFUN (clear_bgp_all_soft_in,
- clear_bgp_all_soft_in_cmd,
- "clear bgp * soft in",
- CLEAR_STR
- BGP_STR
- "Clear all peers\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (argc == 2)
- return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_IN, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_IN, NULL);
-}
-
-ALIAS (clear_bgp_all_soft_in,
- clear_bgp_instance_all_soft_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " * soft in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_all_soft_in,
- clear_bgp_ipv6_all_soft_in_cmd,
- "clear bgp ipv6 * soft in",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all peers\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_all_soft_in,
- clear_bgp_instance_ipv6_all_soft_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 * soft in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all peers\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_all_soft_in,
- clear_bgp_all_in_cmd,
- "clear bgp * in",
- CLEAR_STR
- BGP_STR
- "Clear all peers\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_all_soft_in,
- clear_bgp_instance_all_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " * in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_all_soft_in,
- clear_bgp_ipv6_all_in_cmd,
- "clear bgp ipv6 * in",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all peers\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_all_soft_in,
- clear_bgp_instance_ipv6_all_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 * in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all peers\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_bgp_all_in_prefix_filter,
- clear_bgp_all_in_prefix_filter_cmd,
- "clear bgp * in prefix-filter",
- CLEAR_STR
- BGP_STR
- "Clear all peers\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, NULL);
-}
-
-ALIAS (clear_bgp_all_in_prefix_filter,
- clear_bgp_ipv6_all_in_prefix_filter_cmd,
- "clear bgp ipv6 * in prefix-filter",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all peers\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFUN (clear_ip_bgp_peer_soft_in,
- clear_ip_bgp_peer_soft_in_cmd,
- "clear ip bgp (A.B.C.D|WORD) soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_IN, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_IN, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_peer_soft_in,
- clear_ip_bgp_instance_peer_soft_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " (A.B.C.D|WORD) soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_ip_bgp_peer_soft_in,
- clear_ip_bgp_peer_in_cmd,
- "clear ip bgp (A.B.C.D|WORD) in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_ip_bgp_peer_soft_in,
- clear_ip_bgp_instance_peer_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " (A.B.C.D|WORD) in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_ip_bgp_peer_in_prefix_filter,
- clear_ip_bgp_peer_in_prefix_filter_cmd,
- "clear ip bgp (A.B.C.D|WORD) in prefix-filter",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_IN_STR
- "Push out the existing ORF prefix-list\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_peer_ipv4_soft_in,
- clear_ip_bgp_peer_ipv4_soft_in_cmd,
- "clear ip bgp (A.B.C.D|WORD) ipv4 (unicast|multicast) soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (strncmp (argv[1], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_peer,
- BGP_CLEAR_SOFT_IN, argv[0]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_IN, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_instance_peer_ipv4_soft_in,
- clear_ip_bgp_instance_peer_ipv4_soft_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " (A.B.C.D|WORD) ipv4 (unicast|multicast) soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (strncmp (argv[3], "m", 1) == 0)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_MULTICAST, clear_peer,
- BGP_CLEAR_SOFT_IN, argv[2]);
-
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_IN, argv[2]);
-}
-
-ALIAS (clear_ip_bgp_peer_ipv4_soft_in,
- clear_ip_bgp_peer_ipv4_in_cmd,
- "clear ip bgp (A.B.C.D|WORD) ipv4 (unicast|multicast) in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_ip_bgp_instance_peer_ipv4_soft_in,
- clear_ip_bgp_instance_peer_ipv4_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " (A.B.C.D|WORD) ipv4 (unicast|multicast) in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_ip_bgp_peer_ipv4_in_prefix_filter,
- clear_ip_bgp_peer_ipv4_in_prefix_filter_cmd,
- "clear ip bgp (A.B.C.D|WORD) ipv4 (unicast|multicast) in prefix-filter",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR
- "Push out the existing ORF prefix-list\n")
-{
- if (strncmp (argv[1], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_peer,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[0]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_peer_vpnv4_soft_in,
- clear_ip_bgp_peer_vpnv4_soft_in_cmd,
- "clear ip bgp (A.B.C.D|WORD) vpnv4 unicast soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family Modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_peer,
- BGP_CLEAR_SOFT_IN, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_peer_vpnv4_soft_in,
- clear_ip_bgp_peer_vpnv4_in_cmd,
- "clear ip bgp (A.B.C.D|WORD) vpnv4 unicast in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family Modifier\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_ip_bgp_peer_encap_soft_in,
- clear_ip_bgp_peer_encap_soft_in_cmd,
- "clear ip bgp A.B.C.D encap unicast soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_ENCAP, clear_peer,
- BGP_CLEAR_SOFT_IN, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_peer_encap_soft_in,
- clear_ip_bgp_peer_encap_in_cmd,
- "clear ip bgp A.B.C.D encap unicast in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Soft reconfig inbound update\n")
-
-DEFUN (clear_bgp_peer_soft_in,
- clear_bgp_peer_soft_in_cmd,
- "clear bgp (A.B.C.D|X:X::X:X|WORD) soft in",
- CLEAR_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_IN, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_IN, argv[0]);
-}
-
-ALIAS (clear_bgp_peer_soft_in,
- clear_bgp_instance_peer_soft_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " (A.B.C.D|X:X::X:X|WORD) soft in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_peer_soft_in,
- clear_bgp_ipv6_peer_soft_in_cmd,
- "clear bgp ipv6 (A.B.C.D|X:X::X:X|WORD) soft in",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_peer_soft_in,
- clear_bgp_instance_ipv6_peer_soft_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 (A.B.C.D|X:X::X:X|WORD) soft in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_peer_soft_in,
- clear_bgp_peer_in_cmd,
- "clear bgp (A.B.C.D|X:X::X:X|WORD) in",
- CLEAR_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_peer_soft_in,
- clear_bgp_instance_peer_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " (A.B.C.D|X:X::X:X|WORD) in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_peer_soft_in,
- clear_bgp_ipv6_peer_in_cmd,
- "clear bgp ipv6 (A.B.C.D|X:X::X:X|WORD) in",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_peer_soft_in,
- clear_bgp_instance_ipv6_peer_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 (A.B.C.D|X:X::X:X|WORD) in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_bgp_peer_in_prefix_filter,
- clear_bgp_peer_in_prefix_filter_cmd,
- "clear bgp (A.B.C.D|X:X::X:X|WORD) in prefix-filter",
- CLEAR_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_IN_STR
- "Push out the existing ORF prefix-list\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[0]);
-}
-
-ALIAS (clear_bgp_peer_in_prefix_filter,
- clear_bgp_ipv6_peer_in_prefix_filter_cmd,
- "clear bgp ipv6 (A.B.C.D|X:X::X:X|WORD) in prefix-filter",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_IN_STR
- "Push out the existing ORF prefix-list\n")
-
-DEFUN (clear_ip_bgp_peer_group_soft_in,
- clear_ip_bgp_peer_group_soft_in_cmd,
- "clear ip bgp peer-group WORD soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_IN, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_IN, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_peer_group_soft_in,
- clear_ip_bgp_instance_peer_group_soft_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " peer-group WORD soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_ip_bgp_peer_group_soft_in,
- clear_ip_bgp_peer_group_in_cmd,
- "clear ip bgp peer-group WORD in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_ip_bgp_peer_group_soft_in,
- clear_ip_bgp_instance_peer_group_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " peer-group WORD in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_ip_bgp_peer_group_in_prefix_filter,
- clear_ip_bgp_peer_group_in_prefix_filter_cmd,
- "clear ip bgp peer-group WORD in prefix-filter",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_peer_group_ipv4_soft_in,
- clear_ip_bgp_peer_group_ipv4_soft_in_cmd,
- "clear ip bgp peer-group WORD ipv4 (unicast|multicast) soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (strncmp (argv[1], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_group,
- BGP_CLEAR_SOFT_IN, argv[0]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_IN, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_instance_peer_group_ipv4_soft_in,
- clear_ip_bgp_instance_peer_group_ipv4_soft_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " peer-group WORD ipv4 (unicast|multicast) soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (strncmp (argv[3], "m", 1) == 0)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_MULTICAST, clear_group,
- BGP_CLEAR_SOFT_IN, argv[2]);
-
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_IN, argv[2]);
-}
-
-ALIAS (clear_ip_bgp_peer_group_ipv4_soft_in,
- clear_ip_bgp_peer_group_ipv4_in_cmd,
- "clear ip bgp peer-group WORD ipv4 (unicast|multicast) in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_ip_bgp_instance_peer_group_ipv4_soft_in,
- clear_ip_bgp_instance_peer_group_ipv4_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " peer-group WORD ipv4 (unicast|multicast) in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_ip_bgp_peer_group_ipv4_in_prefix_filter,
- clear_ip_bgp_peer_group_ipv4_in_prefix_filter_cmd,
- "clear ip bgp peer-group WORD ipv4 (unicast|multicast) in prefix-filter",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-{
- if (strncmp (argv[1], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_group,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[0]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[0]);
-}
-
-DEFUN (clear_bgp_peer_group_soft_in,
- clear_bgp_peer_group_soft_in_cmd,
- "clear bgp peer-group WORD soft in",
- CLEAR_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_IN, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_IN, argv[0]);
-}
-
-ALIAS (clear_bgp_peer_group_soft_in,
- clear_bgp_instance_peer_group_soft_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " peer-group WORD soft in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_peer_group_soft_in,
- clear_bgp_ipv6_peer_group_soft_in_cmd,
- "clear bgp ipv6 peer-group WORD soft in",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_peer_group_soft_in,
- clear_bgp_instance_ipv6_peer_group_soft_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 peer-group WORD soft in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_peer_group_soft_in,
- clear_bgp_peer_group_in_cmd,
- "clear bgp peer-group WORD in",
- CLEAR_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_peer_group_soft_in,
- clear_bgp_instance_peer_group_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " peer-group WORD in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_peer_group_soft_in,
- clear_bgp_ipv6_peer_group_in_cmd,
- "clear bgp ipv6 peer-group WORD in",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_peer_group_soft_in,
- clear_bgp_instance_ipv6_peer_group_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 peer-group WORD in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_bgp_peer_group_in_prefix_filter,
- clear_bgp_peer_group_in_prefix_filter_cmd,
- "clear bgp peer-group WORD in prefix-filter",
- CLEAR_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[0]);
-}
-
-ALIAS (clear_bgp_peer_group_in_prefix_filter,
- clear_bgp_ipv6_peer_group_in_prefix_filter_cmd,
- "clear bgp ipv6 peer-group WORD in prefix-filter",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFUN (clear_ip_bgp_external_soft_in,
- clear_ip_bgp_external_soft_in_cmd,
- "clear ip bgp external soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all external peers\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (argc == 2)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_IN, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_IN, NULL);
-}
-
-ALIAS (clear_ip_bgp_external_soft_in,
- clear_ip_bgp_instance_external_soft_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " external soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_ip_bgp_external_soft_in,
- clear_ip_bgp_external_in_cmd,
- "clear ip bgp external in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all external peers\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_ip_bgp_external_soft_in,
- clear_ip_bgp_instance_external_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " external in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_ip_bgp_external_in_prefix_filter,
- clear_ip_bgp_external_in_prefix_filter_cmd,
- "clear ip bgp external in prefix-filter",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all external peers\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, NULL);
-}
-
-DEFUN (clear_ip_bgp_external_ipv4_soft_in,
- clear_ip_bgp_external_ipv4_soft_in_cmd,
- "clear ip bgp external ipv4 (unicast|multicast) soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all external peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (strncmp (argv[0], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_external,
- BGP_CLEAR_SOFT_IN, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_IN, NULL);
-}
-
-DEFUN (clear_ip_bgp_instance_external_ipv4_soft_in,
- clear_ip_bgp_instance_external_ipv4_soft_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " external ipv4 (unicast|multicast) soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (strncmp (argv[2], "m", 1) == 0)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_MULTICAST, clear_external,
- BGP_CLEAR_SOFT_IN, NULL);
-
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_IN, NULL);
-}
-
-ALIAS (clear_ip_bgp_external_ipv4_soft_in,
- clear_ip_bgp_external_ipv4_in_cmd,
- "clear ip bgp external ipv4 (unicast|multicast) in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all external peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_ip_bgp_instance_external_ipv4_soft_in,
- clear_ip_bgp_instance_external_ipv4_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " external ipv4 (unicast|multicast) in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_ip_bgp_external_ipv4_in_prefix_filter,
- clear_ip_bgp_external_ipv4_in_prefix_filter_cmd,
- "clear ip bgp external ipv4 (unicast|multicast) in prefix-filter",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all external peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-{
- if (strncmp (argv[0], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_external,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, NULL);
-}
-
-DEFUN (clear_bgp_external_soft_in,
- clear_bgp_external_soft_in_cmd,
- "clear bgp external soft in",
- CLEAR_STR
- BGP_STR
- "Clear all external peers\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (argc == 2)
- return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_IN, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_IN, NULL);
-}
-
-ALIAS (clear_bgp_external_soft_in,
- clear_bgp_instance_external_soft_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " external soft in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_external_soft_in,
- clear_bgp_ipv6_external_soft_in_cmd,
- "clear bgp ipv6 external soft in",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all external peers\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_external_soft_in,
- clear_bgp_instance_ipv6_external_soft_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 external soft in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all external peers\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_external_soft_in,
- clear_bgp_external_in_cmd,
- "clear bgp external in",
- CLEAR_STR
- BGP_STR
- "Clear all external peers\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_external_soft_in,
- clear_bgp_instance_external_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " external in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_external_soft_in,
- clear_bgp_ipv6_external_in_cmd,
- "clear bgp ipv6 external WORD in",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all external peers\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_external_soft_in,
- clear_bgp_instance_ipv6_external_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 external WORD in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all external peers\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_bgp_external_in_prefix_filter,
- clear_bgp_external_in_prefix_filter_cmd,
- "clear bgp external in prefix-filter",
- CLEAR_STR
- BGP_STR
- "Clear all external peers\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, NULL);
-}
-
-ALIAS (clear_bgp_external_in_prefix_filter,
- clear_bgp_ipv6_external_in_prefix_filter_cmd,
- "clear bgp ipv6 external in prefix-filter",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all external peers\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFUN (clear_ip_bgp_as_soft_in,
- clear_ip_bgp_as_soft_in_cmd,
- "clear ip bgp " CMD_AS_RANGE " soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_IN, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_IN, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_as_soft_in,
- clear_ip_bgp_instance_as_soft_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE " soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_ip_bgp_as_soft_in,
- clear_ip_bgp_as_in_cmd,
- "clear ip bgp " CMD_AS_RANGE " in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_ip_bgp_as_soft_in,
- clear_ip_bgp_instance_as_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE " in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_ip_bgp_as_in_prefix_filter,
- clear_ip_bgp_as_in_prefix_filter_cmd,
- "clear ip bgp " CMD_AS_RANGE " in prefix-filter",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_as_ipv4_soft_in,
- clear_ip_bgp_as_ipv4_soft_in_cmd,
- "clear ip bgp " CMD_AS_RANGE " ipv4 (unicast|multicast) soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (strncmp (argv[1], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_as,
- BGP_CLEAR_SOFT_IN, argv[0]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_IN, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_instance_as_ipv4_soft_in,
- clear_ip_bgp_instance_as_ipv4_soft_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE " ipv4 (unicast|multicast) soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (strncmp (argv[3], "m", 1) == 0)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_MULTICAST, clear_as,
- BGP_CLEAR_SOFT_IN, argv[2]);
-
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_IN, argv[2]);
-}
-
-ALIAS (clear_ip_bgp_as_ipv4_soft_in,
- clear_ip_bgp_as_ipv4_in_cmd,
- "clear ip bgp " CMD_AS_RANGE " ipv4 (unicast|multicast) in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_ip_bgp_instance_as_ipv4_soft_in,
- clear_ip_bgp_instance_as_ipv4_in_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE " ipv4 (unicast|multicast) in",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_ip_bgp_as_ipv4_in_prefix_filter,
- clear_ip_bgp_as_ipv4_in_prefix_filter_cmd,
- "clear ip bgp " CMD_AS_RANGE " ipv4 (unicast|multicast) in prefix-filter",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-{
- if (strncmp (argv[1], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_as,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[0]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_as_vpnv4_soft_in,
- clear_ip_bgp_as_vpnv4_soft_in_cmd,
- "clear ip bgp " CMD_AS_RANGE " vpnv4 unicast soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_as,
- BGP_CLEAR_SOFT_IN, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_as_vpnv4_soft_in,
- clear_ip_bgp_as_vpnv4_in_cmd,
- "clear ip bgp " CMD_AS_RANGE " vpnv4 unicast in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_ip_bgp_as_encap_soft_in,
- clear_ip_bgp_as_encap_soft_in_cmd,
- "clear ip bgp " CMD_AS_RANGE " encap unicast soft in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_ENCAP, clear_as,
- BGP_CLEAR_SOFT_IN, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_as_encap_soft_in,
- clear_ip_bgp_as_encap_in_cmd,
- "clear ip bgp " CMD_AS_RANGE " encap unicast in",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family modifier\n"
- "Soft reconfig inbound update\n")
-
-DEFUN (clear_bgp_as_soft_in,
- clear_bgp_as_soft_in_cmd,
- "clear bgp " CMD_AS_RANGE " soft in",
- CLEAR_STR
- BGP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_IN, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_IN, argv[0]);
-}
-
-ALIAS (clear_bgp_as_soft_in,
- clear_bgp_instance_as_soft_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE " soft in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_as_soft_in,
- clear_bgp_ipv6_as_soft_in_cmd,
- "clear bgp ipv6 " CMD_AS_RANGE " soft in",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear peers with the AS number\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_as_soft_in,
- clear_bgp_instance_ipv6_as_soft_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 " CMD_AS_RANGE " soft in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear peers with the AS number\n"
- BGP_SOFT_STR
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_as_soft_in,
- clear_bgp_as_in_cmd,
- "clear bgp " CMD_AS_RANGE " in",
- CLEAR_STR
- BGP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_as_soft_in,
- clear_bgp_instance_as_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE " in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_as_soft_in,
- clear_bgp_ipv6_as_in_cmd,
- "clear bgp ipv6 " CMD_AS_RANGE " in",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear peers with the AS number\n"
- BGP_SOFT_IN_STR)
-
-ALIAS (clear_bgp_as_soft_in,
- clear_bgp_instance_ipv6_as_in_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 " CMD_AS_RANGE " in",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear peers with the AS number\n"
- BGP_SOFT_IN_STR)
-
-DEFUN (clear_bgp_as_in_prefix_filter,
- clear_bgp_as_in_prefix_filter_cmd,
- "clear bgp " CMD_AS_RANGE " in prefix-filter",
- CLEAR_STR
- BGP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[0]);
-}
-
-ALIAS (clear_bgp_as_in_prefix_filter,
- clear_bgp_ipv6_as_in_prefix_filter_cmd,
- "clear bgp ipv6 " CMD_AS_RANGE " in prefix-filter",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear peers with the AS number\n"
- BGP_SOFT_IN_STR
- "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-/* Both soft-reconfiguration */
-DEFUN (clear_ip_bgp_all_soft,
- clear_ip_bgp_all_soft_cmd,
- "clear ip bgp * soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- BGP_SOFT_STR)
-{
- if (argc == 2)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_BOTH, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_BOTH, NULL);
-}
-
-ALIAS (clear_ip_bgp_all_soft,
- clear_ip_bgp_instance_all_soft_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " * soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n"
- BGP_SOFT_STR)
-
-
-DEFUN (clear_ip_bgp_all_ipv4_soft,
- clear_ip_bgp_all_ipv4_soft_cmd,
- "clear ip bgp * ipv4 (unicast|multicast) soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Address Family Modifier\n"
- BGP_SOFT_STR)
-{
- if (strncmp (argv[0], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_all,
- BGP_CLEAR_SOFT_BOTH, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_BOTH, NULL);
-}
-
-DEFUN (clear_ip_bgp_instance_all_ipv4_soft,
- clear_ip_bgp_instance_all_ipv4_soft_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " * ipv4 (unicast|multicast) soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Address Family Modifier\n"
- BGP_SOFT_STR)
-{
- if (strncmp (argv[2], "m", 1) == 0)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_MULTICAST, clear_all,
- BGP_CLEAR_SOFT_BOTH, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_BOTH, NULL);
-}
-
-DEFUN (clear_ip_bgp_all_vpnv4_soft,
- clear_ip_bgp_all_vpnv4_soft_cmd,
- "clear ip bgp * vpnv4 unicast soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family Modifier\n"
- BGP_SOFT_STR)
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_all,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_all_encap_soft,
- clear_ip_bgp_all_encap_soft_cmd,
- "clear ip bgp * encap unicast soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all peers\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Soft reconfig\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_ENCAP, clear_all,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-}
-
-DEFUN (clear_bgp_all_soft,
- clear_bgp_all_soft_cmd,
- "clear bgp * soft",
- CLEAR_STR
- BGP_STR
- "Clear all peers\n"
- BGP_SOFT_STR)
-{
- if (argc == 2)
- return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_BOTH, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_all,
- BGP_CLEAR_SOFT_BOTH, NULL);
-}
-
-ALIAS (clear_bgp_all_soft,
- clear_bgp_instance_all_soft_cmd,
- "clear bgp " BGP_INSTANCE_CMD " * soft",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all peers\n"
- BGP_SOFT_STR)
-
-ALIAS (clear_bgp_all_soft,
- clear_bgp_ipv6_all_soft_cmd,
- "clear bgp ipv6 * soft",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all peers\n"
- BGP_SOFT_STR)
-
-ALIAS (clear_bgp_all_soft,
- clear_bgp_instance_ipv6_all_soft_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 * soft",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all peers\n"
- BGP_SOFT_STR)
-
-DEFUN (clear_ip_bgp_peer_soft,
- clear_ip_bgp_peer_soft_cmd,
- "clear ip bgp (A.B.C.D|WORD) soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_BOTH, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_peer_soft,
- clear_ip_bgp_instance_peer_soft_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " (A.B.C.D|WORD) soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR)
-
-DEFUN (clear_ip_bgp_peer_ipv4_soft,
- clear_ip_bgp_peer_ipv4_soft_cmd,
- "clear ip bgp (A.B.C.D|WORD) ipv4 (unicast|multicast) soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Address Family Modifier\n"
- BGP_SOFT_STR)
-{
- if (strncmp (argv[1], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_peer,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_instance_peer_ipv4_soft,
- clear_ip_bgp_instance_peer_ipv4_soft_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " (A.B.C.D|WORD) ipv4 (unicast|multicast) soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Address Family Modifier\n"
- BGP_SOFT_STR)
-{
- if (strncmp (argv[3], "m", 1) == 0)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_MULTICAST, clear_peer,
- BGP_CLEAR_SOFT_BOTH, argv[2]);
-
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_BOTH, argv[2]);
-}
-
-DEFUN (clear_ip_bgp_peer_vpnv4_soft,
- clear_ip_bgp_peer_vpnv4_soft_cmd,
- "clear ip bgp (A.B.C.D|WORD) vpnv4 unicast soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP neighbor on interface to clear\n"
- "Address family\n"
- "Address Family Modifier\n"
- BGP_SOFT_STR)
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_peer,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_peer_encap_soft,
- clear_ip_bgp_peer_encap_soft_cmd,
- "clear ip bgp A.B.C.D encap unicast soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Soft reconfig\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_ENCAP, clear_peer,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-}
-
-DEFUN (clear_bgp_peer_soft,
- clear_bgp_peer_soft_cmd,
- "clear bgp (A.B.C.D|X:X::X:X|WORD) soft",
- CLEAR_STR
- BGP_STR
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_BOTH, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_peer,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-}
-
-ALIAS (clear_bgp_peer_soft,
- clear_bgp_instance_peer_soft_cmd,
- "clear bgp " BGP_INSTANCE_CMD " (A.B.C.D|X:X::X:X|WORD) soft",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR)
-
-ALIAS (clear_bgp_peer_soft,
- clear_bgp_ipv6_peer_soft_cmd,
- "clear bgp ipv6 (A.B.C.D|X:X::X:X|WORD) soft",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR)
-
-ALIAS (clear_bgp_peer_soft,
- clear_bgp_instance_ipv6_peer_soft_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 (A.B.C.D|X:X::X:X|WORD) soft",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "BGP neighbor on interface to clear\n"
- BGP_SOFT_STR)
-
-DEFUN (clear_ip_bgp_peer_group_soft,
- clear_ip_bgp_peer_group_soft_cmd,
- "clear ip bgp peer-group WORD soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_BOTH, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_peer_group_soft,
- clear_ip_bgp_instance_peer_group_soft_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " peer-group WORD soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR)
-
-DEFUN (clear_ip_bgp_peer_group_ipv4_soft,
- clear_ip_bgp_peer_group_ipv4_soft_cmd,
- "clear ip bgp peer-group WORD ipv4 (unicast|multicast) soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR)
-{
- if (strncmp (argv[1], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_group,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_instance_peer_group_ipv4_soft,
- clear_ip_bgp_instance_peer_group_ipv4_soft_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " peer-group WORD ipv4 (unicast|multicast) soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR)
-{
- if (strncmp (argv[3], "m", 1) == 0)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_MULTICAST, clear_group,
- BGP_CLEAR_SOFT_BOTH, argv[2]);
-
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_BOTH, argv[2]);
-}
-
-DEFUN (clear_bgp_peer_group_soft,
- clear_bgp_peer_group_soft_cmd,
- "clear bgp peer-group WORD soft",
- CLEAR_STR
- BGP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_BOTH, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_group,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-}
-
-ALIAS (clear_bgp_peer_group_soft,
- clear_bgp_instance_peer_group_soft_cmd,
- "clear bgp " BGP_INSTANCE_CMD " peer-group WORD soft",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR)
-
-ALIAS (clear_bgp_peer_group_soft,
- clear_bgp_ipv6_peer_group_soft_cmd,
- "clear bgp ipv6 peer-group WORD soft",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR)
-
-ALIAS (clear_bgp_peer_group_soft,
- clear_bgp_instance_ipv6_peer_group_soft_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 peer-group WORD soft",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all members of peer-group\n"
- "BGP peer-group name\n"
- BGP_SOFT_STR)
-
-DEFUN (clear_ip_bgp_external_soft,
- clear_ip_bgp_external_soft_cmd,
- "clear ip bgp external soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all external peers\n"
- BGP_SOFT_STR)
-{
- if (argc == 2)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_BOTH, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_BOTH, NULL);
-}
-
-ALIAS (clear_ip_bgp_external_soft,
- clear_ip_bgp_instance_external_soft_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " external soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n"
- BGP_SOFT_STR)
-
-DEFUN (clear_ip_bgp_external_ipv4_soft,
- clear_ip_bgp_external_ipv4_soft_cmd,
- "clear ip bgp external ipv4 (unicast|multicast) soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear all external peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR)
-{
- if (strncmp (argv[0], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_external,
- BGP_CLEAR_SOFT_BOTH, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_BOTH, NULL);
-}
-
-DEFUN (clear_ip_bgp_instance_external_ipv4_soft,
- clear_ip_bgp_instance_external_ipv4_soft_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " external ipv4 (unicast|multicast) soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- BGP_SOFT_STR)
-{
- if (strncmp (argv[2], "m", 1) == 0)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_MULTICAST, clear_external,
- BGP_CLEAR_SOFT_BOTH, NULL);
-
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_BOTH, NULL);
-}
-
-DEFUN (clear_bgp_external_soft,
- clear_bgp_external_soft_cmd,
- "clear bgp external soft",
- CLEAR_STR
- BGP_STR
- "Clear all external peers\n"
- BGP_SOFT_STR)
-{
- if (argc == 2)
- return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_BOTH, NULL);
-
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_external,
- BGP_CLEAR_SOFT_BOTH, NULL);
-}
-
-ALIAS (clear_bgp_external_soft,
- clear_bgp_instance_external_soft_cmd,
- "clear bgp " BGP_INSTANCE_CMD " external soft",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear all external peers\n"
- BGP_SOFT_STR)
-
-ALIAS (clear_bgp_external_soft,
- clear_bgp_ipv6_external_soft_cmd,
- "clear bgp ipv6 external soft",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear all external peers\n"
- BGP_SOFT_STR)
-
-ALIAS (clear_bgp_external_soft,
- clear_bgp_instance_ipv6_external_soft_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 external soft",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear all external peers\n"
- BGP_SOFT_STR)
-
-DEFUN (clear_ip_bgp_as_soft,
- clear_ip_bgp_as_soft_cmd,
- "clear ip bgp " CMD_AS_RANGE " soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_BOTH, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-}
-
-ALIAS (clear_ip_bgp_as_soft,
- clear_ip_bgp_instance_as_soft_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE " soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_STR)
-
-DEFUN (clear_ip_bgp_as_ipv4_soft,
- clear_ip_bgp_as_ipv4_soft_cmd,
- "clear ip bgp " CMD_AS_RANGE " ipv4 (unicast|multicast) soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Address Family Modifier\n"
- BGP_SOFT_STR)
-{
- if (strncmp (argv[1], "m", 1) == 0)
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_as,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-
- return bgp_clear_vty (vty, NULL,AFI_IP, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_instance_as_ipv4_soft,
- clear_ip_bgp_instance_as_ipv4_soft_cmd,
- "clear ip bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE " ipv4 (unicast|multicast) soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Address Family Modifier\n"
- BGP_SOFT_STR)
-{
- if (strncmp (argv[3], "m", 1) == 0)
- return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_MULTICAST, clear_as,
- BGP_CLEAR_SOFT_BOTH, argv[2]);
-
- return bgp_clear_vty (vty, argv[1],AFI_IP, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_BOTH, argv[2]);
-}
-
-DEFUN (clear_ip_bgp_as_vpnv4_soft,
- clear_ip_bgp_as_vpnv4_soft_cmd,
- "clear ip bgp " CMD_AS_RANGE " vpnv4 unicast soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family Modifier\n"
- BGP_SOFT_STR)
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_as,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-}
-
-DEFUN (clear_ip_bgp_as_encap_soft,
- clear_ip_bgp_as_encap_soft_cmd,
- "clear ip bgp " CMD_AS_RANGE " encap unicast soft",
- CLEAR_STR
- IP_STR
- BGP_STR
- "Clear peers with the AS number\n"
- "Address family\n"
- "Address Family Modifier\n"
- "Soft reconfig\n")
-{
- return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_ENCAP, clear_as,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-}
-
-DEFUN (clear_bgp_as_soft,
- clear_bgp_as_soft_cmd,
- "clear bgp " CMD_AS_RANGE " soft",
- CLEAR_STR
- BGP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_STR)
-{
- if (argc == 3)
- return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_BOTH, argv[2]);
-
- return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_as,
- BGP_CLEAR_SOFT_BOTH, argv[0]);
-}
-
-ALIAS (clear_bgp_as_soft,
- clear_bgp_instance_as_soft_cmd,
- "clear bgp " BGP_INSTANCE_CMD " " CMD_AS_RANGE " soft",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Clear peers with the AS number\n"
- BGP_SOFT_STR)
-
-ALIAS (clear_bgp_as_soft,
- clear_bgp_ipv6_as_soft_cmd,
- "clear bgp ipv6 " CMD_AS_RANGE " soft",
- CLEAR_STR
- BGP_STR
- "Address family\n"
- "Clear peers with the AS number\n"
- BGP_SOFT_STR)
-
-ALIAS (clear_bgp_as_soft,
- clear_bgp_instance_ipv6_as_soft_cmd,
- "clear bgp " BGP_INSTANCE_CMD " ipv6 " CMD_AS_RANGE " soft",
- CLEAR_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Clear peers with the AS number\n"
- BGP_SOFT_STR)
-
-DEFUN (show_bgp_views,
- show_bgp_views_cmd,
- "show bgp views",
- SHOW_STR
- BGP_STR
- "Show the defined BGP views\n")
-{
- struct list *inst = bm->bgp;
- struct listnode *node;
- struct bgp *bgp;
-
- if (!bgp_option_check (BGP_OPT_MULTIPLE_INSTANCE))
- {
- vty_out (vty, "BGP Multiple Instance is not enabled%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- vty_out (vty, "Defined BGP views:%s", VTY_NEWLINE);
- for (ALL_LIST_ELEMENTS_RO(inst, node, bgp))
- {
- /* Skip VRFs. */
- if (bgp->inst_type == BGP_INSTANCE_TYPE_VRF)
- continue;
- vty_out (vty, "\t%s (AS%u)%s",
- bgp->name ? bgp->name : "(null)",
- bgp->as, VTY_NEWLINE);
- }
-
- return CMD_SUCCESS;
-}
-
-DEFUN (show_bgp_vrfs,
- show_bgp_vrfs_cmd,
- "show bgp vrfs {json}",
- SHOW_STR
- BGP_STR
- "Show BGP VRFs\n"
- "JavaScript Object Notation\n")
-{
- struct list *inst = bm->bgp;
- struct listnode *node;
- struct bgp *bgp;
- u_char uj = use_json(argc, argv);
- json_object *json = NULL;
- json_object *json_vrfs = NULL;
- int count = 0;
- static char header[] = "Type Id RouterId #PeersCfg #PeersEstb Name";
-
- if (!bgp_option_check (BGP_OPT_MULTIPLE_INSTANCE))
- {
- vty_out (vty, "BGP Multiple Instance is not enabled%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
+ if (!bgp_option_check (BGP_OPT_MULTIPLE_INSTANCE))
+ {
+ vty_out (vty, "BGP Multiple Instance is not enabled%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
if (uj)
{
}
-/* `show ip bgp summary' commands. */
-DEFUN (show_ip_bgp_summary,
- show_ip_bgp_summary_cmd,
- "show ip bgp summary {json}",
- SHOW_STR
- IP_STR
- BGP_STR
- "Summary of BGP neighbor status\n"
- "JavaScript Object Notation\n")
-{
- u_char uj = use_json(argc, argv);
- return bgp_show_summary_vty (vty, NULL, AFI_IP, SAFI_UNICAST, uj);
-}
-
-DEFUN (show_ip_bgp_instance_summary,
- show_ip_bgp_instance_summary_cmd,
- "show ip bgp " BGP_INSTANCE_CMD " summary {json}",
- SHOW_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Summary of BGP neighbor status\n"
- "JavaScript Object Notation\n")
-{
- u_char uj = use_json(argc, argv);
- return bgp_show_summary_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, uj);
-}
-
-DEFUN (show_ip_bgp_instance_all_summary,
- show_ip_bgp_instance_all_summary_cmd,
- "show ip bgp " BGP_INSTANCE_ALL_CMD " summary {json}",
- SHOW_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_ALL_HELP_STR
- "Summary of BGP neighbor status\n"
- "JavaScript Object Notation\n")
-{
- u_char uj = use_json(argc, argv);
-
- bgp_show_all_instances_summary_vty (vty, AFI_IP, SAFI_UNICAST, uj);
- return CMD_SUCCESS;
-}
-
-DEFUN (show_ip_bgp_ipv4_summary,
- show_ip_bgp_ipv4_summary_cmd,
- "show ip bgp ipv4 (unicast|multicast|vpn|encap) summary {json}",
- SHOW_STR
- IP_STR
- BGP_STR
- AFI_SAFI_STR
- "Summary of BGP neighbor status\n"
- "JavaScript Object Notation\n")
-{
- u_char uj = use_json(argc, argv);
-
- return bgp_show_summary_vty (vty, NULL, AFI_IP, bgp_vty_safi_from_arg(argv[0]), uj);
-}
-
-ALIAS (show_ip_bgp_ipv4_summary,
- show_bgp_ipv4_safi_summary_cmd,
- "show bgp ipv4 (unicast|multicast|vpn|encap) summary {json}",
- SHOW_STR
- BGP_STR
- AFI_SAFI_STR
- "Summary of BGP neighbor status\n")
-
-DEFUN (show_ip_bgp_instance_ipv4_summary,
- show_ip_bgp_instance_ipv4_summary_cmd,
- "show ip bgp view WORD ipv4 (unicast|multicast) summary {json}",
- SHOW_STR
- IP_STR
- BGP_STR
- "BGP view\n"
- "View name\n"
- "Address family\n"
- "Address Family modifier\n"
- "Address Family modifier\n"
- "Summary of BGP neighbor status\n"
- "JavaScript Object Notation\n")
-{
- u_char uj = use_json(argc, argv);
- if (strncmp (argv[1], "m", 1) == 0)
- return bgp_show_summary_vty (vty, argv[0], AFI_IP, SAFI_MULTICAST, uj);
- else
- return bgp_show_summary_vty (vty, argv[0], AFI_IP, SAFI_UNICAST, uj);
-}
-
-ALIAS (show_ip_bgp_instance_ipv4_summary,
- show_bgp_instance_ipv4_safi_summary_cmd,
- "show bgp view WORD ipv4 (unicast|multicast) summary {json}",
- SHOW_STR
- BGP_STR
- "BGP view\n"
- "View name\n"
- AFI_SAFI_STR
- "Summary of BGP neighbor status\n")
-
-DEFUN (show_ip_bgp_vpnv4_all_summary,
- show_ip_bgp_vpnv4_all_summary_cmd,
- "show ip bgp vpnv4 all summary {json}",
- SHOW_STR
- IP_STR
- BGP_STR
- "Display VPNv4 NLRI specific information\n"
- "Display information about all VPNv4 NLRIs\n"
- "Summary of BGP neighbor status\n"
- "JavaScript Object Notation\n")
-{
- u_char uj = use_json(argc, argv);
- return bgp_show_summary_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, uj);
-}
-
-DEFUN (show_ip_bgp_vpnv4_rd_summary,
- show_ip_bgp_vpnv4_rd_summary_cmd,
- "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn summary {json}",
- SHOW_STR
- IP_STR
- BGP_STR
- "Display VPNv4 NLRI specific information\n"
- "Display information for a route distinguisher\n"
- "VPN Route Distinguisher\n"
- "Summary of BGP neighbor status\n"
- "JavaScript Object Notation\n")
+static int
+bgp_show_summary_vty (struct vty *vty, const char *name,
+ afi_t afi, safi_t safi, u_char use_json)
{
- int ret;
- struct prefix_rd prd;
- u_char uj = use_json(argc, argv);
+ struct bgp *bgp;
- ret = str2prefix_rd (argv[0], &prd);
- if (! ret)
+ if (name)
{
- vty_out (vty, "%% Malformed Route Distinguisher%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- return bgp_show_summary_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, uj);
-}
-
-#ifdef HAVE_IPV6
-DEFUN (show_bgp_summary,
- show_bgp_summary_cmd,
- "show bgp summary {json}",
- SHOW_STR
- BGP_STR
- "Summary of BGP neighbor status\n"
- "JavaScript Object Notation\n")
-{
- return bgp_show_summary_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, use_json(argc, argv));
-}
-
-DEFUN (show_bgp_instance_summary,
- show_bgp_instance_summary_cmd,
- "show bgp " BGP_INSTANCE_CMD " summary {json}",
- SHOW_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Summary of BGP neighbor status\n"
- "JavaScript Object Notation\n")
-{
- return bgp_show_summary_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, use_json(argc, argv));
-}
-
-DEFUN (show_bgp_instance_all_summary,
- show_bgp_instance_all_summary_cmd,
- "show bgp " BGP_INSTANCE_ALL_CMD " summary {json}",
- SHOW_STR
- BGP_STR
- BGP_INSTANCE_ALL_HELP_STR
- "Summary of BGP neighbor status\n"
- "JavaScript Object Notation\n")
-{
- u_char uj = use_json(argc, argv);
-
- bgp_show_all_instances_summary_vty (vty, AFI_IP6, SAFI_UNICAST, uj);
- return CMD_SUCCESS;
-}
-
-ALIAS (show_bgp_summary,
- show_bgp_ipv6_summary_cmd,
- "show bgp ipv6 summary {json}",
- SHOW_STR
- BGP_STR
- "Address family\n"
- "Summary of BGP neighbor status\n")
+ if (strmatch(name, "all"))
+ {
+ bgp_show_all_instances_summary_vty (vty, afi, safi, use_json);
+ return CMD_SUCCESS;
+ }
+ else
+ {
+ bgp = bgp_lookup_by_name (name);
-ALIAS (show_bgp_instance_summary,
- show_bgp_instance_ipv6_summary_cmd,
- "show bgp " BGP_INSTANCE_CMD " ipv6 summary {json}",
- SHOW_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- "Address family\n"
- "Summary of BGP neighbor status\n")
+ if (! bgp)
+ {
+ if (use_json)
+ vty_out (vty, "{}%s", VTY_NEWLINE);
+ else
+ vty_out (vty, "%% No such BGP instance exist%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
-DEFUN (show_bgp_ipv6_safi_summary,
- show_bgp_ipv6_safi_summary_cmd,
- "show bgp ipv6 (unicast|multicast|vpn|encap) summary {json}",
- SHOW_STR
- BGP_STR
- AFI_SAFI_STR
- "Summary of BGP neighbor status\n"
- "JavaScript Object Notation\n")
-{
- u_char uj = use_json(argc, argv);
+ bgp_show_summary (vty, bgp, afi, safi, use_json, NULL);
+ return CMD_SUCCESS;
+ }
+ }
- return bgp_show_summary_vty (vty, NULL, AFI_IP6, bgp_vty_safi_from_arg(argv[0]), uj);
-}
+ bgp = bgp_get_default ();
-DEFUN (show_bgp_instance_ipv6_safi_summary,
- show_bgp_instance_ipv6_safi_summary_cmd,
- "show bgp " BGP_INSTANCE_CMD " ipv6 (unicast|multicast) summary {json}",
- SHOW_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
- AFI_SAFI_STR
- "Summary of BGP neighbor status\n"
- "JavaScript Object Notation\n")
-{
- u_char uj = use_json(argc, argv);
- if (strncmp (argv[2], "m", 1) == 0)
- return bgp_show_summary_vty (vty, argv[1], AFI_IP6, SAFI_MULTICAST, uj);
+ if (bgp)
+ bgp_show_summary (vty, bgp, afi, safi, use_json, NULL);
- return bgp_show_summary_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, uj);
+ return CMD_SUCCESS;
}
-/* old command */
-DEFUN (show_ipv6_bgp_summary,
- show_ipv6_bgp_summary_cmd,
- "show ipv6 bgp summary {json}",
+/* `show [ip] bgp summary' commands. */
+DEFUN (show_ip_bgp_summary,
+ show_ip_bgp_summary_cmd,
- "show [ip] bgp [<view|vrf> WORD] [<ipv4 [<unicast|multicast>]|ipv6 [<unicast|multicast>]|encap [unicast]|vpnv4 <all|rd ASN:nn_or_IP-address:nn>>] summary [json]",
++ "show [ip] bgp [<view|vrf> WORD] [<ipv4 [<unicast|multicast|vpn|encap>]|ipv6 [<unicast|multicast|vpn|encap>]|vpnv4 <all|rd ASN:nn_or_IP-address:nn>>] summary [json]",
SHOW_STR
- IPV6_STR
+ IP_STR
BGP_STR
- "Address Family\n"
+ BGP_INSTANCE_HELP_STR
+ "Address Family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Address Family\n"
+ "Address Family modifier\n"
++ "Address Family modifier\n"
++ "Address Family modifier\n"
++ "Address Family modifier\n"
+ "Address Family\n"
+ "Display information about all VPNv4 NLRIs\n"
+ "Display information for a route distinguisher\n"
+ "VPN Route Distinguisher\n"
"Summary of BGP neighbor status\n"
- "JavaScript Object Notation\n")
-{
- u_char uj = use_json(argc, argv);
- return bgp_show_summary_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, uj);
-}
+ JSON_STR)
+{
+ char *vrf = NULL;
+ afi_t afi = AFI_IP6;
+ safi_t safi = SAFI_UNICAST;
+
+ int idx = 0;
+
+ /* show [ip] bgp */
+ if (argv_find (argv, argc, "ip", &idx))
+ afi = AFI_IP;
+ /* [<view|vrf> WORD] */
+ if (argv_find (argv, argc, "view", &idx) || argv_find (argv, argc, "vrf", &idx))
+ vrf = argv[++idx]->arg;
+ /* [<ipv4 [<unicast|multicast>]|ipv6 [<unicast|multicast>]|encap [unicast]|vpnv4 [unicast]>] */
+ if (argv_find (argv, argc, "ipv4", &idx) || argv_find (argv, argc, "ipv6", &idx))
+ {
+ afi = strmatch(argv[idx]->text, "ipv6") ? AFI_IP6 : AFI_IP;
+ if (argv_find (argv, argc, "unicast", &idx) || argv_find (argv, argc, "multicast", &idx))
- safi = strmatch (argv[idx]->text, "unicast") ? SAFI_UNICAST : SAFI_MULTICAST;
++ safi = bgp_vty_safi_from_arg (argv[idx]->text);
+ }
+ else if (argv_find (argv, argc, "encap", &idx))
+ {
+ afi = AFI_IP;
+ safi = SAFI_ENCAP;
+ }
+ else if (argv_find (argv, argc, "vpnv4", &idx))
+ {
+ // we show the same thing regardless of rd and all
+ afi = AFI_IP;
+ safi = SAFI_MPLS_VPN;
+ }
-/* old command */
-DEFUN (show_ipv6_mbgp_summary,
- show_ipv6_mbgp_summary_cmd,
- "show ipv6 mbgp summary {json}",
- SHOW_STR
- IPV6_STR
- MBGP_STR
- "Summary of BGP neighbor status\n"
- "JavaScript Object Notation\n")
-{
- u_char uj = use_json(argc, argv);
- return bgp_show_summary_vty (vty, NULL, AFI_IP6, SAFI_MULTICAST, uj);
+ int uj = use_json (argc, argv);
+
+ return bgp_show_summary_vty (vty, vrf, afi, safi, uj);
}
-#endif /* HAVE_IPV6 */
const char *
afi_safi_print (afi_t afi, safi_t safi)
"Detailed information on TCP and BGP neighbor connections\n"
"Neighbor to display information about\n"
"Neighbor to display information about\n"
- "Neighbor on bgp configured interface\n"
- "JavaScript Object Notation\n")
-
-/* Show BGP's AS paths internal data. There are both `show ip bgp
- paths' and `show ip mbgp paths'. Those functions results are the
- same.*/
-DEFUN (show_ip_bgp_paths,
- show_ip_bgp_paths_cmd,
- "show ip bgp paths",
- SHOW_STR
- IP_STR
- BGP_STR
- "Path information\n")
+ "Neighbor on BGP configured interface\n"
+ JSON_STR)
{
- vty_out (vty, "Address Refcnt Path%s", VTY_NEWLINE);
- aspath_print_all_vty (vty);
- return CMD_SUCCESS;
+ char *vrf = NULL;
+ char *sh_arg = NULL;
+ enum show_type sh_type;
+
+ u_char uj = use_json(argc, argv);
+
+ int idx = 0;
+
+ if (argv_find (argv, argc, "WORD", &idx))
+ vrf = argv[idx]->arg;
+
+ if (argv_find (argv, argc, "A.B.C.D", &idx) ||
+ argv_find (argv, argc, "X:X::X:X", &idx) ||
+ argv_find (argv, argc, "WORD", &idx))
+ {
+ sh_type = show_peer;
+ sh_arg = argv[idx]->arg;
+ }
+ else
+ sh_type = show_all;
+
+ return bgp_show_neighbor_vty (vty, vrf, sh_type, sh_arg, uj);
}
-DEFUN (show_ip_bgp_ipv4_paths,
- show_ip_bgp_ipv4_paths_cmd,
- "show ip bgp ipv4 (unicast|multicast) paths",
+/* Show BGP's AS paths internal data. There are both `show [ip] bgp
+ paths' and `show ip mbgp paths'. Those functions results are the
+ same.*/
+DEFUN (show_ip_bgp_paths,
+ show_ip_bgp_paths_cmd,
- "show [ip] bgp [<unicast|multicast>] paths",
++ "show [ip] bgp [<unicast|multicast|vpn|encap>] paths",
SHOW_STR
IP_STR
BGP_STR
- "Address family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
"Path information\n")
{
- vty_out (vty, "Address Refcnt Path\r\n");
+ vty_out (vty, "Address Refcnt Path%s", VTY_NEWLINE);
aspath_print_all_vty (vty);
-
return CMD_SUCCESS;
}
return CMD_SUCCESS;
}
-DEFUN (show_bgp_ipv6_updgrps,
- show_bgp_ipv6_updgrps_cmd,
- "show bgp update-groups",
- SHOW_STR
- BGP_STR
- "Detailed info about v6 dynamic update groups\n")
-{
- return (bgp_show_update_groups(vty, NULL, AFI_IP6, SAFI_UNICAST, 0));
-}
-
-DEFUN (show_bgp_instance_ipv6_updgrps,
- show_bgp_instance_ipv6_updgrps_cmd,
- "show bgp " BGP_INSTANCE_CMD " update-groups",
+DEFUN (show_ip_bgp_updgrps,
+ show_ip_bgp_updgrps_cmd,
- "show [ip] bgp [<view|vrf> WORD] [<ipv4 [<unicast|multicast>]|ipv6 [<unicast|multicast>]|encap [unicast]|vpnv4 [unicast]>] update-groups [SUBGROUP-ID]",
++ "show [ip] bgp [<view|vrf> WORD] [<ipv4 [<unicast|multicast|vpn|encap>]|ipv6 [<unicast|multicast|vpn|encap>]|vpnv4 [unicast]>] update-groups [SUBGROUP-ID]",
SHOW_STR
+ IP_STR
BGP_STR
BGP_INSTANCE_HELP_STR
- "Detailed info about v6 dynamic update groups\n")
-{
- return (bgp_show_update_groups(vty, argv[1], AFI_IP6, SAFI_UNICAST, 0));
-}
-
-DEFUN (show_bgp_instance_all_ipv6_updgrps,
- show_bgp_instance_all_ipv6_updgrps_cmd,
- "show bgp " BGP_INSTANCE_ALL_CMD " update-groups",
- SHOW_STR
- BGP_STR
- BGP_INSTANCE_ALL_HELP_STR
- "Detailed info about v6 dynamic update groups\n")
-{
- bgp_show_all_instances_updgrps_vty (vty, AFI_IP6, SAFI_UNICAST);
- return CMD_SUCCESS;
-}
-
-DEFUN (show_bgp_updgrps,
- show_bgp_updgrps_cmd,
- "show bgp (ipv4|ipv6) (unicast|multicast|vpn|encap) update-groups",
- SHOW_STR
- BGP_STR
- "Address family\n"
- "Address family\n"
+ "Address Family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Address Family\n"
- "Detailed info about dynamic update groups\n")
-{
- afi_t afi;
- safi_t safi;
-
- afi = (strcmp(argv[0], "ipv4") == 0) ? AFI_IP : AFI_IP6;
- safi = bgp_vty_safi_from_arg(argv[1]);
- return (bgp_show_update_groups(vty, NULL, afi, safi, 0));
-}
-
-DEFUN (show_ip_bgp_updgrps_s,
- show_ip_bgp_updgrps_s_cmd,
- "show ip bgp update-groups SUBGROUP-ID",
- SHOW_STR
- IP_STR
- BGP_STR
- "Detailed info about dynamic update groups\n"
- "Specific subgroup to display detailed info for\n")
-{
- uint64_t subgrp_id;
-
- VTY_GET_ULL("subgroup-id", subgrp_id, argv[0]);
- return (bgp_show_update_groups(vty, NULL, AFI_IP, SAFI_UNICAST, subgrp_id));
-}
-
-DEFUN (show_ip_bgp_instance_updgrps_s,
- show_ip_bgp_instance_updgrps_s_cmd,
- "show ip bgp " BGP_INSTANCE_CMD " update-groups SUBGROUP-ID",
- SHOW_STR
- IP_STR
- BGP_STR
- BGP_INSTANCE_HELP_STR
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Address Family\n"
+ "Address Family modifier\n"
++ "Address Family modifier\n"
++ "Address Family modifier\n"
++ "Address Family modifier\n"
+ "Address Family\n"
+ "Address Family modifier\n"
"Detailed info about dynamic update groups\n"
"Specific subgroup to display detailed info for\n")
{
- uint64_t subgrp_id;
-
- VTY_GET_ULL("subgroup-id", subgrp_id, argv[2]);
- return (bgp_show_update_groups(vty, argv[1], AFI_IP, SAFI_UNICAST, subgrp_id));
-}
-
-DEFUN (show_bgp_ipv6_updgrps_s,
- show_bgp_ipv6_updgrps_s_cmd,
- "show bgp update-groups SUBGROUP-ID",
- SHOW_STR
- BGP_STR
- "Detailed info about v6 dynamic update groups\n"
- "Specific subgroup to display detailed info for\n")
-{
- uint64_t subgrp_id;
-
- VTY_GET_ULL("subgroup-id", subgrp_id, argv[0]);
- return(bgp_show_update_groups(vty, NULL, AFI_IP6, SAFI_UNICAST, subgrp_id));
-}
+ char *vrf = NULL;
+ afi_t afi = AFI_IP6;
+ safi_t safi = SAFI_UNICAST;
+ uint64_t subgrp_id = 0;
+
+ int idx = 0;
+
+ /* show [ip] bgp */
+ if (argv_find (argv, argc, "ip", &idx))
+ afi = AFI_IP;
+ /* [<view|vrf> WORD] */
+ if (argv_find (argv, argc, "view", &idx) || argv_find (argv, argc, "vrf", &idx))
+ vrf = argv[++idx]->arg;
+ /* [<ipv4 [<unicast|multicast>]|ipv6 [<unicast|multicast>]|encap [unicast]|vpnv4 [unicast]>] */
+ if (argv_find (argv, argc, "ipv4", &idx) || argv_find (argv, argc, "ipv6", &idx))
+ {
+ afi = strmatch(argv[idx]->text, "ipv6") ? AFI_IP6 : AFI_IP;
+ if (argv_find (argv, argc, "unicast", &idx) || argv_find (argv, argc, "multicast", &idx))
- safi = strmatch (argv[idx]->text, "unicast") ? SAFI_UNICAST : SAFI_MULTICAST;
++ safi = bgp_vty_safi_from_arg (argv[idx]->text);
+ }
+ else if (argv_find (argv, argc, "encap", &idx) || argv_find (argv, argc, "vpnv4", &idx))
+ {
+ afi = AFI_IP;
- safi = strmatch (argv[idx]->text, "encap") ? SAFI_ENCAP : SAFI_MPLS_VPN;
++ safi = bgp_vty_safi_from_arg (argv[idx]->text);
+ // advance idx if necessary
+ argv_find (argv, argc, "unicast", &idx);
+ }
-DEFUN (show_bgp_instance_ipv6_updgrps_s,
- show_bgp_instance_ipv6_updgrps_s_cmd,
- "show bgp " BGP_INSTANCE_CMD " update-groups SUBGROUP-ID",
- SHOW_STR
- BGP_STR
- "Detailed info about v6 dynamic update groups\n"
- "Specific subgroup to display detailed info for\n")
-{
- uint64_t subgrp_id;
+ /* get subgroup id, if provided */
+ idx = argc - 1;
+ if (argv[idx]->type == VARIABLE_TKN)
+ VTY_GET_ULL("subgroup-id", subgrp_id, argv[idx]->arg);
- VTY_GET_ULL("subgroup-id", subgrp_id, argv[2]);
- return(bgp_show_update_groups(vty, argv[1], AFI_IP6, SAFI_UNICAST, subgrp_id));
+ return (bgp_show_update_groups(vty, vrf, afi, safi, subgrp_id));
}
-DEFUN (show_bgp_updgrps_s,
- show_bgp_updgrps_s_cmd,
- "show bgp (ipv4|ipv6) (unicast|multicast|vpn|encap) update-groups SUBGROUP-ID",
+DEFUN (show_bgp_instance_all_ipv6_updgrps,
+ show_bgp_instance_all_ipv6_updgrps_cmd,
+ "show [ip] bgp <view|vrf> all update-groups",
SHOW_STR
+ IP_STR
BGP_STR
- "Address family\n"
- AFI_SAFI_STR
- "Detailed info about v6 dynamic update groups\n"
- "Specific subgroup to display detailed info for")
+ BGP_INSTANCE_ALL_HELP_STR
+ "Detailed info about dynamic update groups\n")
{
- afi_t afi;
- safi_t safi;
- uint64_t subgrp_id;
-
- afi = (strcmp(argv[0], "ipv4") == 0) ? AFI_IP : AFI_IP6;
- safi = bgp_vty_safi_from_arg(argv[1]);
- VTY_GET_ULL("subgroup-id", subgrp_id, argv[2]);
- return(bgp_show_update_groups(vty, NULL, afi, safi, subgrp_id));
+ bgp_show_all_instances_updgrps_vty (vty, AFI_IP6, SAFI_UNICAST);
+ return CMD_SUCCESS;
}
DEFUN (show_bgp_updgrps_stats,
DEFUN (show_bgp_updgrps_afi_adj,
show_bgp_updgrps_afi_adj_cmd,
- "show [ip] bgp <ipv4|ipv6> <unicast|multicast> update-groups <advertise-queue|advertised-routes|packet-queue>",
- "show bgp (ipv4|ipv6) (unicast|multicast|vpn|encap) update-groups (advertise-queue|advertised-routes|packet-queue)",
++ "show [ip] bgp <ipv4|ipv6> <unicast|multicast|vpn|encap> update-groups <advertise-queue|advertised-routes|packet-queue>",
SHOW_STR
+ IP_STR
BGP_STR
- "Address family\n"
- AFI_SAFI_STR
- "BGP update groups\n"
+ "Address Family\n"
+ "Address Family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
++ "Address Family modifier\n"
++ "Address Family modifier\n"
+ "Detailed info about dynamic update groups\n"
"Advertisement queue\n"
"Announced routes\n"
"Packet queue\n"
afi_t afi;
safi_t safi;
- afi = (strcmp(argv[0], "ipv4") == 0) ? AFI_IP : AFI_IP6;
- safi = bgp_vty_safi_from_arg(argv[1]);
- show_bgp_updgrps_adj_info_aux(vty, NULL, afi, safi, argv[2], 0);
+ afi = (strcmp(argv[idx_afi]->arg, "ipv4") == 0) ? AFI_IP : AFI_IP6;
- safi = (strncmp (argv[idx_safi]->arg, "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST;
++ safi = bgp_vty_safi_from_arg(argv[idx_safi]->arg);
+ show_bgp_updgrps_adj_info_aux(vty, NULL, afi, safi, argv[idx_type]->arg, 0);
return CMD_SUCCESS;
}
DEFUN (show_bgp_updgrps_afi_adj_s,
show_bgp_updgrps_afi_adj_s_cmd,
- "show [ip] bgp <ipv4|ipv6> <unicast|multicast> update-groups SUBGROUP-ID <advertise-queue|advertised-routes|packet-queue>",
- "show bgp (ipv4|ipv6) (unicast|multicast|vpn|encap) update-groups SUBGROUP-ID (advertise-queue|advertised-routes|packet-queue)",
++ "show [ip] bgp <ipv4|ipv6> <unicast|multicast|vpn|encap> update-groups SUBGROUP-ID <advertise-queue|advertised-routes|packet-queue>",
SHOW_STR
+ IP_STR
BGP_STR
- "Address family\n"
- AFI_SAFI_STR
- "BGP update groups\n"
+ "Address Family\n"
+ "Address Family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
++ "Address Family modifier\n"
++ "Address Family modifier\n"
+ "Detailed info about dynamic update groups\n"
"Specific subgroup to display info for\n"
"Advertisement queue\n"
"Announced routes\n"
safi_t safi;
uint64_t subgrp_id;
- afi = (strcmp(argv[0], "ipv4") == 0) ? AFI_IP : AFI_IP6;
- safi = bgp_vty_safi_from_arg(argv[1]);
- VTY_GET_ULL("subgroup-id", subgrp_id, argv[2]);
+ afi = (strmatch(argv[idx_afi]->text, "ipv4")) ? AFI_IP : AFI_IP6;
- safi = (strmatch(argv[idx_safi]->text, "unicast")) ? SAFI_UNICAST : SAFI_MULTICAST;
++ safi = bgp_vty_safi_from_arg(argv[idx_safi]->text);
+ VTY_GET_ULL("subgroup-id", subgrp_id, argv[idx_subgroup_id]->arg);
- show_bgp_updgrps_adj_info_aux(vty, NULL, afi, safi, argv[3], subgrp_id);
+ show_bgp_updgrps_adj_info_aux(vty, NULL, afi, safi, argv[idx_type]->arg, subgrp_id);
return CMD_SUCCESS;
}
DEFUN (bgp_redistribute_ipv4,
bgp_redistribute_ipv4_cmd,
- "redistribute " FRR_IP_REDIST_STR_BGPD,
+ "redistribute <kernel|connected|static|rip|ospf|isis|pim|table>",
"Redistribute information from another routing protocol\n"
- QUAGGA_IP_REDIST_HELP_STR_BGPD)
+ FRR_IP_REDIST_HELP_STR_BGPD)
{
+ VTY_DECLVAR_CONTEXT(bgp, bgp);
+ int idx_protocol = 1;
int type;
- type = proto_redistnum (AFI_IP, argv[0]);
+ type = proto_redistnum (AFI_IP, argv[idx_protocol]->arg);
if (type < 0 || type == ZEBRA_ROUTE_BGP)
{
vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
DEFUN (bgp_redistribute_ipv4_rmap,
bgp_redistribute_ipv4_rmap_cmd,
- "redistribute " FRR_IP_REDIST_STR_BGPD " route-map WORD",
+ "redistribute <kernel|connected|static|rip|ospf|isis|pim|table> route-map WORD",
"Redistribute information from another routing protocol\n"
- QUAGGA_IP_REDIST_HELP_STR_BGPD
+ FRR_IP_REDIST_HELP_STR_BGPD
"Route map reference\n"
"Pointer to route-map entries\n")
{
DEFUN (bgp_redistribute_ipv4_metric,
bgp_redistribute_ipv4_metric_cmd,
- "redistribute " FRR_IP_REDIST_STR_BGPD " metric <0-4294967295>",
+ "redistribute <kernel|connected|static|rip|ospf|isis|pim|table> metric (0-4294967295)",
"Redistribute information from another routing protocol\n"
- QUAGGA_IP_REDIST_HELP_STR_BGPD
+ FRR_IP_REDIST_HELP_STR_BGPD
"Metric for redistributed routes\n"
"Default metric\n")
{
DEFUN (bgp_redistribute_ipv4_rmap_metric,
bgp_redistribute_ipv4_rmap_metric_cmd,
- "redistribute " FRR_IP_REDIST_STR_BGPD " route-map WORD metric <0-4294967295>",
+ "redistribute <kernel|connected|static|rip|ospf|isis|pim|table> route-map WORD metric (0-4294967295)",
"Redistribute information from another routing protocol\n"
- QUAGGA_IP_REDIST_HELP_STR_BGPD
+ FRR_IP_REDIST_HELP_STR_BGPD
"Route map reference\n"
"Pointer to route-map entries\n"
"Metric for redistributed routes\n"
DEFUN (bgp_redistribute_ipv4_metric_rmap,
bgp_redistribute_ipv4_metric_rmap_cmd,
- "redistribute " FRR_IP_REDIST_STR_BGPD " metric <0-4294967295> route-map WORD",
+ "redistribute <kernel|connected|static|rip|ospf|isis|pim|table> metric (0-4294967295) route-map WORD",
"Redistribute information from another routing protocol\n"
- QUAGGA_IP_REDIST_HELP_STR_BGPD
+ FRR_IP_REDIST_HELP_STR_BGPD
"Metric for redistributed routes\n"
"Default metric\n"
"Route map reference\n"
DEFUN (no_bgp_redistribute_ipv4,
no_bgp_redistribute_ipv4_cmd,
- "no redistribute " FRR_IP_REDIST_STR_BGPD,
+ "no redistribute <kernel|connected|static|rip|ospf|isis|pim|table> [metric (0-4294967295)] [route-map WORD]",
NO_STR
"Redistribute information from another routing protocol\n"
- QUAGGA_IP_REDIST_HELP_STR_BGPD
- FRR_IP_REDIST_HELP_STR_BGPD)
++ FRR_IP_REDIST_HELP_STR_BGPD
+ "Metric for redistributed routes\n"
+ "Default metric\n"
+ "Route map reference\n"
+ "Pointer to route-map entries\n")
{
+ VTY_DECLVAR_CONTEXT(bgp, bgp);
+ int idx_protocol = 2;
int type;
- type = proto_redistnum (AFI_IP, argv[0]);
+ type = proto_redistnum (AFI_IP, argv[idx_protocol]->arg);
if (type < 0 || type == ZEBRA_ROUTE_BGP)
{
vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
#ifdef HAVE_IPV6
DEFUN (bgp_redistribute_ipv6,
bgp_redistribute_ipv6_cmd,
- "redistribute " FRR_IP6_REDIST_STR_BGPD,
+ "redistribute <kernel|connected|static|ripng|ospf6|isis|table>",
"Redistribute information from another routing protocol\n"
- QUAGGA_IP6_REDIST_HELP_STR_BGPD)
+ FRR_IP6_REDIST_HELP_STR_BGPD)
{
+ VTY_DECLVAR_CONTEXT(bgp, bgp);
+ int idx_protocol = 1;
int type;
- type = proto_redistnum (AFI_IP6, argv[0]);
+ type = proto_redistnum (AFI_IP6, argv[idx_protocol]->arg);
if (type < 0 || type == ZEBRA_ROUTE_BGP)
{
vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
DEFUN (bgp_redistribute_ipv6_rmap,
bgp_redistribute_ipv6_rmap_cmd,
- "redistribute " FRR_IP6_REDIST_STR_BGPD " route-map WORD",
+ "redistribute <kernel|connected|static|ripng|ospf6|isis|table> route-map WORD",
"Redistribute information from another routing protocol\n"
- QUAGGA_IP6_REDIST_HELP_STR_BGPD
+ FRR_IP6_REDIST_HELP_STR_BGPD
"Route map reference\n"
"Pointer to route-map entries\n")
{
DEFUN (bgp_redistribute_ipv6_metric,
bgp_redistribute_ipv6_metric_cmd,
- "redistribute " FRR_IP6_REDIST_STR_BGPD " metric <0-4294967295>",
+ "redistribute <kernel|connected|static|ripng|ospf6|isis|table> metric (0-4294967295)",
"Redistribute information from another routing protocol\n"
- QUAGGA_IP6_REDIST_HELP_STR_BGPD
+ FRR_IP6_REDIST_HELP_STR_BGPD
"Metric for redistributed routes\n"
"Default metric\n")
{
DEFUN (bgp_redistribute_ipv6_rmap_metric,
bgp_redistribute_ipv6_rmap_metric_cmd,
- "redistribute " FRR_IP6_REDIST_STR_BGPD " route-map WORD metric <0-4294967295>",
+ "redistribute <kernel|connected|static|ripng|ospf6|isis|table> route-map WORD metric (0-4294967295)",
"Redistribute information from another routing protocol\n"
- QUAGGA_IP6_REDIST_HELP_STR_BGPD
+ FRR_IP6_REDIST_HELP_STR_BGPD
"Route map reference\n"
"Pointer to route-map entries\n"
"Metric for redistributed routes\n"
DEFUN (bgp_redistribute_ipv6_metric_rmap,
bgp_redistribute_ipv6_metric_rmap_cmd,
- "redistribute " FRR_IP6_REDIST_STR_BGPD " metric <0-4294967295> route-map WORD",
+ "redistribute <kernel|connected|static|ripng|ospf6|isis|table> metric (0-4294967295) route-map WORD",
"Redistribute information from another routing protocol\n"
- QUAGGA_IP6_REDIST_HELP_STR_BGPD
+ FRR_IP6_REDIST_HELP_STR_BGPD
"Metric for redistributed routes\n"
"Default metric\n"
"Route map reference\n"
DEFUN (no_bgp_redistribute_ipv6,
no_bgp_redistribute_ipv6_cmd,
- "no redistribute " FRR_IP6_REDIST_STR_BGPD,
+ "no redistribute <kernel|connected|static|ripng|ospf6|isis|table> [metric (0-4294967295)] [route-map WORD]",
NO_STR
"Redistribute information from another routing protocol\n"
- QUAGGA_IP6_REDIST_HELP_STR_BGPD
- FRR_IP6_REDIST_HELP_STR_BGPD)
++ FRR_IP6_REDIST_HELP_STR_BGPD
+ "Metric for redistributed routes\n"
+ "Default metric\n"
+ "Route map reference\n"
+ "Pointer to route-map entries\n")
{
+ VTY_DECLVAR_CONTEXT(bgp, bgp);
+ int idx_protocol = 2;
int type;
- type = proto_redistnum (AFI_IP6, argv[0]);
+ type = proto_redistnum (AFI_IP6, argv[idx_protocol]->arg);
if (type < 0 || type == ZEBRA_ROUTE_BGP)
{
vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
return CMD_WARNING;
}
- return bgp_redistribute_unset (vty->index, AFI_IP6, type, 0);
+ return bgp_redistribute_unset (bgp, AFI_IP6, type, 0);
}
--
-ALIAS (no_bgp_redistribute_ipv6,
- no_bgp_redistribute_ipv6_rmap_cmd,
- "no redistribute " FRR_IP6_REDIST_STR_BGPD " route-map WORD",
- NO_STR
- "Redistribute information from another routing protocol\n"
- FRR_IP6_REDIST_HELP_STR_BGPD
- "Route map reference\n"
- "Pointer to route-map entries\n")
--
-ALIAS (no_bgp_redistribute_ipv6,
- no_bgp_redistribute_ipv6_metric_cmd,
- "no redistribute " FRR_IP6_REDIST_STR_BGPD " metric <0-4294967295>",
- NO_STR
- "Redistribute information from another routing protocol\n"
- FRR_IP6_REDIST_HELP_STR_BGPD
- "Metric for redistributed routes\n"
- "Default metric\n")
--
-ALIAS (no_bgp_redistribute_ipv6,
- no_bgp_redistribute_ipv6_rmap_metric_cmd,
- "no redistribute " FRR_IP6_REDIST_STR_BGPD " route-map WORD metric <0-4294967295>",
- NO_STR
- "Redistribute information from another routing protocol\n"
- FRR_IP6_REDIST_HELP_STR_BGPD
- "Route map reference\n"
- "Pointer to route-map entries\n"
- "Metric for redistributed routes\n"
- "Default metric\n")
--
-ALIAS (no_bgp_redistribute_ipv6,
- no_bgp_redistribute_ipv6_metric_rmap_cmd,
- "no redistribute " FRR_IP6_REDIST_STR_BGPD " metric <0-4294967295> route-map WORD",
- NO_STR
- "Redistribute information from another routing protocol\n"
- FRR_IP6_REDIST_HELP_STR_BGPD
- "Metric for redistributed routes\n"
- "Default metric\n"
- "Route map reference\n"
- "Pointer to route-map entries\n")
#endif /* HAVE_IPV6 */
int
struct route_table *table;
struct route_node *rn;
struct rib *rib;
- struct vrf *vrf;
- struct zebra_vrf *zvrf;
u_int32_t addr;
int first = 1;
- int vrf_header = 1;
+ vrf_id_t vrf_id = VRF_DEFAULT;
- RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name)
- {
- if ((zvrf = vrf->info) == NULL ||
- (table = zvrf->table[AFI_IP][SAFI_UNICAST]) == NULL)
- continue;
+ if (strmatch(argv[3]->text, "vrf"))
+ VRF_GET_ID (vrf_id, argv[4]->arg);
- /* Show matched type IPv4 routes. */
- for (rn = route_top (table); rn; rn = route_next (rn))
- RNODE_FOREACH_RIB (rn, rib)
- {
- addr = ntohl (rn->p.u.prefix4.s_addr);
+ table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, vrf_id);
+ if (! table)
+ return CMD_SUCCESS;
- if ((IN_CLASSC (addr) && rn->p.prefixlen < 24)
- || (IN_CLASSB (addr) && rn->p.prefixlen < 16)
- || (IN_CLASSA (addr) && rn->p.prefixlen < 8))
- {
- if (first)
- {
- vty_out (vty, SHOW_ROUTE_V4_HEADER);
- first = 0;
- }
+ /* Show matched type IPv4 routes. */
+ for (rn = route_top (table); rn; rn = route_next (rn))
+ RNODE_FOREACH_RIB (rn, rib)
+ {
+ addr = ntohl (rn->p.u.prefix4.s_addr);
- if (vrf_header)
- {
- vty_out (vty, "%sVRF %s:%s", VTY_NEWLINE, zvrf_name (zvrf), VTY_NEWLINE);
- vrf_header = 0;
- }
- vty_show_ip_route (vty, rn, rib, NULL);
- }
- }
- vrf_header = 1;
+ if ((IN_CLASSC (addr) && rn->p.prefixlen < 24)
+ || (IN_CLASSB (addr) && rn->p.prefixlen < 16)
+ || (IN_CLASSA (addr) && rn->p.prefixlen < 8))
+ {
+ if (first)
+ {
+ vty_out (vty, SHOW_ROUTE_V4_HEADER);
+ first = 0;
+ }
+ vty_show_ip_route (vty, rn, rib, NULL);
+ }
+ }
+ return CMD_SUCCESS;
+}
+
+DEFUN (show_ip_route_protocol,
+ show_ip_route_protocol_cmd,
+ "show ip route [vrf NAME] <kernel|connected|static|rip|ospf|isis|bgp|pim|table>",
+ SHOW_STR
+ IP_STR
+ "IP routing table\n"
+ VRF_CMD_HELP_STR
- QUAGGA_IP_REDIST_HELP_STR_ZEBRA)
++ FRR_IP_REDIST_HELP_STR_ZEBRA)
+{
+ int type;
+ struct route_table *table;
+ struct route_node *rn;
+ struct rib *rib;
+ int first = 1;
+ vrf_id_t vrf_id = VRF_DEFAULT;
+
+ if (strmatch(argv[3]->text, "vrf"))
+ {
+ type = proto_redistnum (AFI_IP, argv[5]->arg);
+ VRF_GET_ID (vrf_id, argv[4]->arg);
+ }
+ else
+ {
+ type = proto_redistnum (AFI_IP, argv[3]->arg);
+ }
+
+ if (type < 0)
+ {
+ vty_out (vty, "Unknown route type%s", VTY_NEWLINE);
+ return CMD_WARNING;
}
+ table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, vrf_id);
+ if (! table)
+ return CMD_SUCCESS;
+
+ /* Show matched type IPv4 routes. */
+ for (rn = route_top (table); rn; rn = route_next (rn))
+ RNODE_FOREACH_RIB (rn, rib)
+ if (rib->type == type)
+ {
+ if (first)
+ {
+ vty_out (vty, SHOW_ROUTE_V4_HEADER);
+ first = 0;
+ }
+ vty_show_ip_route (vty, rn, rib, NULL);
+ }
return CMD_SUCCESS;
}
return CMD_SUCCESS;
}
-DEFUN (ipv6_route,
- ipv6_route_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE|null0)",
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Null interface\n")
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, NULL, NULL, NULL, NULL, NULL);
-}
-DEFUN (ipv6_route_tag,
- ipv6_route_tag_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE|null0) tag <1-4294967295>",
+DEFUN (show_ip_route_vrf_all,
+ show_ip_route_vrf_all_cmd,
+ "show ip route vrf all",
+ SHOW_STR
IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Null interface\n"
- "Set tag for this route\n"
- "Tag value\n")
+ "IP routing table\n"
+ VRF_ALL_CMD_HELP_STR)
{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, NULL, argv[2], NULL, NULL, NULL);
-}
+ struct route_table *table;
+ struct route_node *rn;
+ struct rib *rib;
+ struct vrf *vrf;
+ struct zebra_vrf *zvrf;
+ int first = 1;
+ int vrf_header = 1;
-DEFUN (ipv6_route_flags,
- ipv6_route_flags_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole)",
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n")
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, argv[2], NULL, NULL, NULL, NULL);
-}
+ RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name)
+ {
+ if ((zvrf = vrf->info) == NULL ||
+ (table = zvrf->table[AFI_IP][SAFI_UNICAST]) == NULL)
+ continue;
-DEFUN (ipv6_route_flags_tag,
- ipv6_route_flags_tag_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-4294967295>",
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Set tag for this route\n"
- "Tag value\n")
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, argv[2], argv[3], NULL, NULL, NULL);
-}
+ /* Show all IPv4 routes. */
+ for (rn = route_top (table); rn; rn = route_next (rn))
+ RNODE_FOREACH_RIB (rn, rib)
+ {
+ if (first)
+ {
+ vty_out (vty, SHOW_ROUTE_V4_HEADER);
+ first = 0;
+ }
-DEFUN (ipv6_route_ifname,
- ipv6_route_ifname_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE",
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n")
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], NULL, NULL, NULL, NULL, NULL);
+ if (vrf_header)
+ {
+ vty_out (vty, "%sVRF %s:%s", VTY_NEWLINE, zvrf_name (zvrf), VTY_NEWLINE);
+ vrf_header = 0;
+ }
+ vty_show_ip_route (vty, rn, rib, NULL);
+ }
+ vrf_header = 1;
+ }
+
+ return CMD_SUCCESS;
}
-DEFUN (ipv6_route_ifname_tag,
- ipv6_route_ifname_tag_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295>",
+
+DEFUN (show_ip_route_vrf_all_tag,
+ show_ip_route_vrf_all_tag_cmd,
+ "show ip route vrf all tag (1-4294967295)",
+ SHOW_STR
IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Set tag for this route\n"
+ "IP routing table\n"
+ VRF_ALL_CMD_HELP_STR
+ "Show only routes with tag\n"
"Tag value\n")
{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], NULL, argv[3], NULL, NULL, NULL);
+ int idx_number = 6;
+ struct route_table *table;
+ struct route_node *rn;
+ struct rib *rib;
+ struct vrf *vrf;
+ struct zebra_vrf *zvrf;
+ int first = 1;
+ int vrf_header = 1;
+ route_tag_t tag = 0;
+
+ if (argv[idx_number]->arg)
+ tag = atol(argv[idx_number]->arg);
+
+ RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name)
+ {
+ if ((zvrf = vrf->info) == NULL ||
+ (table = zvrf->table[AFI_IP][SAFI_UNICAST]) == NULL)
+ continue;
+
+ /* Show all IPv4 routes with matching tag value. */
+ for (rn = route_top (table); rn; rn = route_next (rn))
+ RNODE_FOREACH_RIB (rn, rib)
+ {
+ if (rib->tag != tag)
+ continue;
+
+ if (first)
+ {
+ vty_out (vty, SHOW_ROUTE_V4_HEADER);
+ first = 0;
+ }
+
+ if (vrf_header)
+ {
+ vty_out (vty, "%sVRF %s:%s", VTY_NEWLINE, zvrf_name (zvrf), VTY_NEWLINE);
+ vrf_header = 0;
+ }
+ vty_show_ip_route (vty, rn, rib, NULL);
+ }
+ vrf_header = 1;
+ }
+ return CMD_SUCCESS;
}
-DEFUN (ipv6_route_ifname_flags,
- ipv6_route_ifname_flags_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole)",
+DEFUN (show_ip_route_vrf_all_prefix_longer,
+ show_ip_route_vrf_all_prefix_longer_cmd,
+ "show ip route vrf all A.B.C.D/M longer-prefixes",
+ SHOW_STR
IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n")
+ "IP routing table\n"
+ VRF_ALL_CMD_HELP_STR
+ "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n"
+ "Show route matching the specified Network/Mask pair only\n")
{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], argv[3], NULL, NULL, NULL, NULL);
+ int idx_ipv4_prefixlen = 5;
+ struct route_table *table;
+ struct route_node *rn;
+ struct rib *rib;
+ struct prefix p;
+ struct vrf *vrf;
+ struct zebra_vrf *zvrf;
+ int ret;
+ int first = 1;
+ int vrf_header = 1;
+
+ ret = str2prefix (argv[idx_ipv4_prefixlen]->arg, &p);
+ if (! ret)
+ {
+ vty_out (vty, "%% Malformed Prefix%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name)
+ {
+ if ((zvrf = vrf->info) == NULL ||
+ (table = zvrf->table[AFI_IP][SAFI_UNICAST]) == NULL)
+ continue;
+
+ /* Show matched type IPv4 routes. */
+ for (rn = route_top (table); rn; rn = route_next (rn))
+ RNODE_FOREACH_RIB (rn, rib)
+ if (prefix_match (&p, &rn->p))
+ {
+ if (first)
+ {
+ vty_out (vty, SHOW_ROUTE_V4_HEADER);
+ first = 0;
+ }
+
+ if (vrf_header)
+ {
+ vty_out (vty, "%sVRF %s:%s", VTY_NEWLINE, zvrf_name (zvrf), VTY_NEWLINE);
+ vrf_header = 0;
+ }
+ vty_show_ip_route (vty, rn, rib, NULL);
+ }
+ vrf_header = 1;
+ }
+
+ return CMD_SUCCESS;
}
-DEFUN (ipv6_route_ifname_flags_tag,
- ipv6_route_ifname_flags_tag_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-4294967295>",
+DEFUN (show_ip_route_vrf_all_supernets,
+ show_ip_route_vrf_all_supernets_cmd,
+ "show ip route vrf all supernets-only",
+ SHOW_STR
IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Set tag for this route\n"
- "Tag value\n")
+ "IP routing table\n"
+ VRF_ALL_CMD_HELP_STR
+ "Show supernet entries only\n")
{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], argv[3], argv[4], NULL, NULL, NULL);
+ struct route_table *table;
+ struct route_node *rn;
+ struct rib *rib;
+ struct vrf *vrf;
+ struct zebra_vrf *zvrf;
+ u_int32_t addr;
+ int first = 1;
+ int vrf_header = 1;
+
+ RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name)
+ {
+ if ((zvrf = vrf->info) == NULL ||
+ (table = zvrf->table[AFI_IP][SAFI_UNICAST]) == NULL)
+ continue;
+
+ /* Show matched type IPv4 routes. */
+ for (rn = route_top (table); rn; rn = route_next (rn))
+ RNODE_FOREACH_RIB (rn, rib)
+ {
+ addr = ntohl (rn->p.u.prefix4.s_addr);
+
+ if ((IN_CLASSC (addr) && rn->p.prefixlen < 24)
+ || (IN_CLASSB (addr) && rn->p.prefixlen < 16)
+ || (IN_CLASSA (addr) && rn->p.prefixlen < 8))
+ {
+ if (first)
+ {
+ vty_out (vty, SHOW_ROUTE_V4_HEADER);
+ first = 0;
+ }
+ if (vrf_header)
+ {
+ vty_out (vty, "%sVRF %s:%s", VTY_NEWLINE, zvrf_name (zvrf), VTY_NEWLINE);
+ vrf_header = 0;
+ }
+ vty_show_ip_route (vty, rn, rib, NULL);
+ }
+ }
+ vrf_header = 1;
+ }
+
+ return CMD_SUCCESS;
}
-DEFUN (ipv6_route_pref,
- ipv6_route_pref_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE|null0) <1-255>",
+DEFUN (show_ip_route_vrf_all_protocol,
+ show_ip_route_vrf_all_protocol_cmd,
+ "show ip route vrf all <kernel|connected|static|rip|ospf|isis|bgp|pim|table>",
+ SHOW_STR
IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Null interface\n"
- "Distance value for this prefix\n")
+ "IP routing table\n"
+ VRF_ALL_CMD_HELP_STR
- QUAGGA_IP_REDIST_HELP_STR_ZEBRA"\n")
++ FRR_IP_REDIST_HELP_STR_ZEBRA"\n")
{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, NULL, NULL, argv[2], NULL, NULL);
-}
+ int type;
+ struct route_table *table;
+ struct route_node *rn;
+ struct rib *rib;
+ struct vrf *vrf;
+ struct zebra_vrf *zvrf;
+ int first = 1;
+ int vrf_header = 1;
-DEFUN (ipv6_route_pref_tag,
- ipv6_route_pref_tag_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE|null0) tag <1-4294967295> <1-255>",
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Null interface\n"
- "Set tag for this route\n"
- "Tag value\n"
- "Distance value for this prefix\n")
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, NULL, argv[2], argv[3], NULL, NULL);
-}
+ type = proto_redistnum (AFI_IP, argv[6]->arg);
+ if (type < 0)
+ {
+ vty_out (vty, "Unknown route type%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
-DEFUN (ipv6_route_flags_pref,
- ipv6_route_flags_pref_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) <1-255>",
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Distance value for this prefix\n")
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, argv[2], NULL, argv[3], NULL, NULL);
-}
+ RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name)
+ {
+ if ((zvrf = vrf->info) == NULL ||
+ (table = zvrf->table[AFI_IP][SAFI_UNICAST]) == NULL)
+ continue;
-DEFUN (ipv6_route_flags_pref_tag,
- ipv6_route_flags_pref_tag_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-4294967295> <1-255>",
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Set tag for this route\n"
- "Tag value\n"
- "Distance value for this prefix\n")
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, argv[2], argv[3], argv[4], NULL, NULL);
-}
+ /* Show matched type IPv4 routes. */
+ for (rn = route_top (table); rn; rn = route_next (rn))
+ RNODE_FOREACH_RIB (rn, rib)
+ if (rib->type == type)
+ {
+ if (first)
+ {
+ vty_out (vty, SHOW_ROUTE_V4_HEADER);
+ first = 0;
+ }
-DEFUN (ipv6_route_ifname_pref,
- ipv6_route_ifname_pref_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE <1-255>",
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Distance value for this prefix\n")
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], NULL, NULL, argv[3], NULL, NULL);
-}
+ if (vrf_header)
+ {
+ vty_out (vty, "%sVRF %s:%s", VTY_NEWLINE, zvrf_name (zvrf), VTY_NEWLINE);
+ vrf_header = 0;
+ }
+ vty_show_ip_route (vty, rn, rib, NULL);
+ }
+ vrf_header = 1;
+ }
-DEFUN (ipv6_route_ifname_pref_tag,
- ipv6_route_ifname_pref_tag_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295> <1-255>",
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Set tag for this route\n"
- "Tag value\n"
- "Distance value for this prefix\n")
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], NULL, argv[3], argv[4], NULL, NULL);
+ return CMD_SUCCESS;
}
-DEFUN (ipv6_route_ifname_flags_pref,
- ipv6_route_ifname_flags_pref_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) <1-255>",
+DEFUN (show_ip_route_vrf_all_addr,
+ show_ip_route_vrf_all_addr_cmd,
+ "show ip route vrf all A.B.C.D",
+ SHOW_STR
IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Distance value for this prefix\n")
+ "IP routing table\n"
+ VRF_ALL_CMD_HELP_STR
+ "Network in the IP routing table to display\n")
{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], argv[3], NULL, argv[4], NULL, NULL);
-}
+ int idx_ipv4 = 5;
+ int ret;
+ struct prefix_ipv4 p;
+ struct route_table *table;
+ struct route_node *rn;
+ struct vrf *vrf;
+ struct zebra_vrf *zvrf;
-DEFUN (ipv6_route_ifname_flags_pref_tag,
- ipv6_route_ifname_flags_pref_tag_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-4294967295> <1-255>",
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Set tag for this route\n"
- "Tag value\n"
- "Distance value for this prefix\n")
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], NULL, NULL);
-}
+ ret = str2prefix_ipv4 (argv[idx_ipv4]->arg, &p);
+ if (ret <= 0)
+ {
+ vty_out (vty, "%% Malformed IPv4 address%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
-DEFUN (no_ipv6_route,
- no_ipv6_route_cmd,
- "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE|null0)",
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Null Interface\n")
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, NULL, NULL, NULL, NULL, NULL);
-}
+ RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name)
+ {
+ if ((zvrf = vrf->info) == NULL ||
+ (table = zvrf->table[AFI_IP][SAFI_UNICAST]) == NULL)
+ continue;
-DEFUN (no_ipv6_route_tag,
- no_ipv6_route_tag_cmd,
- "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE|null0) tag <1-4294967295>",
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Null interface\n"
- "Set tag for this route\n"
- "Tag value\n")
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, NULL, argv[2], NULL, NULL, NULL);
-}
+ rn = route_node_match (table, (struct prefix *) &p);
+ if (! rn)
+ continue;
-DEFUN (no_ipv6_route_flags,
- no_ipv6_route_flags_cmd,
- "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole)",
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n")
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, argv[2], NULL, NULL, NULL, NULL);
-}
+ vty_show_ip_route_detail (vty, rn, 0);
-DEFUN (no_ipv6_route_flags_tag,
- no_ipv6_route_flags_tag_cmd,
- "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-4294967295>",
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Set tag for this route\n"
- "Tag value\n")
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, argv[2], argv[3], NULL, NULL, NULL);
-}
+ route_unlock_node (rn);
+ }
-DEFUN (no_ipv6_route_ifname,
- no_ipv6_route_ifname_cmd,
- "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE",
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n")
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], NULL, NULL, NULL, NULL, NULL);
+ return CMD_SUCCESS;
}
-DEFUN (no_ipv6_route_ifname_tag,
- no_ipv6_route_ifname_tag_cmd,
- "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295>",
- NO_STR
+DEFUN (show_ip_route_vrf_all_prefix,
+ show_ip_route_vrf_all_prefix_cmd,
+ "show ip route vrf all A.B.C.D/M",
+ SHOW_STR
IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Set tag for this route\n"
- "Tag value\n")
+ "IP routing table\n"
+ VRF_ALL_CMD_HELP_STR
+ "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n")
{
- return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], NULL, argv[3], NULL, NULL, NULL);
-}
+ int idx_ipv4_prefixlen = 5;
+ int ret;
+ struct prefix_ipv4 p;
+ struct route_table *table;
+ struct route_node *rn;
+ struct vrf *vrf;
+ struct zebra_vrf *zvrf;
-DEFUN (no_ipv6_route_ifname_flags,
- no_ipv6_route_ifname_flags_cmd,
- "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole)",
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n")
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], argv[3], NULL, NULL, NULL, NULL);
-}
+ ret = str2prefix_ipv4 (argv[idx_ipv4_prefixlen]->arg, &p);
+ if (ret <= 0)
+ {
+ vty_out (vty, "%% Malformed IPv4 address%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
-DEFUN (no_ipv6_route_ifname_flags_tag,
- no_ipv6_route_ifname_flags_tag_cmd,
- "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-4294967295>",
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Set tag for this route\n"
- "Tag value\n")
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], argv[3], argv[4], NULL, NULL, NULL);
-}
+ RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name)
+ {
+ if ((zvrf = vrf->info) == NULL ||
+ (table = zvrf->table[AFI_IP][SAFI_UNICAST]) == NULL)
+ continue;
+
+ rn = route_node_match (table, (struct prefix *) &p);
+ if (! rn)
+ continue;
+ if (rn->p.prefixlen != p.prefixlen)
+ {
+ route_unlock_node (rn);
+ continue;
+ }
-DEFUN (no_ipv6_route_pref,
- no_ipv6_route_pref_cmd,
- "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE|null0) <1-255>",
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Null interface\n"
- "Distance value for this prefix\n")
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, NULL, NULL, argv[2], NULL, NULL);
-}
+ vty_show_ip_route_detail (vty, rn, 0);
-DEFUN (no_ipv6_route_pref_tag,
- no_ipv6_route_pref_tag_cmd,
- "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE|null0) tag <1-4294967295> <1-255>",
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Null interface\n"
- "Set tag for this route\n"
- "Tag value\n"
- "Distance value for this prefix\n")
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, NULL, argv[2], argv[3], NULL, NULL);
-}
+ route_unlock_node (rn);
+ }
-DEFUN (no_ipv6_route_flags_pref,
- no_ipv6_route_flags_pref_cmd,
- "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) <1-255>",
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Distance value for this prefix\n")
-{
- /* We do not care about argv[2] */
- return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, argv[2], NULL, argv[3], NULL, NULL);
+ return CMD_SUCCESS;
}
-DEFUN (no_ipv6_route_flags_pref_tag,
- no_ipv6_route_flags_pref_tag_cmd,
- "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-4294967295> <1-255>",
- NO_STR
+DEFUN (show_ip_route_vrf_all_summary,
+ show_ip_route_vrf_all_summary_cmd,
+ "show ip route vrf all summary ",
+ SHOW_STR
IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Set tag for this route\n"
- "Tag value\n"
- "Distance value for this prefix\n")
+ "IP routing table\n"
+ VRF_ALL_CMD_HELP_STR
+ "Summary of all routes\n")
{
- /* We do not care about argv[2] */
- return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, argv[2], argv[3], argv[4], NULL, NULL);
-}
+ struct vrf *vrf;
+ struct zebra_vrf *zvrf;
-DEFUN (no_ipv6_route_ifname_pref,
- no_ipv6_route_ifname_pref_cmd,
- "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE <1-255>",
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Distance value for this prefix\n")
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], NULL, NULL, argv[3], NULL, NULL);
-}
+ RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name)
+ if ((zvrf = vrf->info) != NULL)
+ vty_show_ip_route_summary (vty, zvrf->table[AFI_IP][SAFI_UNICAST]);
-DEFUN (no_ipv6_route_ifname_pref_tag,
- no_ipv6_route_ifname_pref_tag_cmd,
- "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295> <1-255>",
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Set tag for this route\n"
- "Tag value\n"
- "Distance value for this prefix\n")
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], NULL, argv[3], argv[4], NULL, NULL);
+ return CMD_SUCCESS;
}
-DEFUN (no_ipv6_route_ifname_flags_pref,
- no_ipv6_route_ifname_flags_pref_cmd,
- "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) <1-255>",
- NO_STR
+DEFUN (show_ip_route_vrf_all_summary_prefix,
+ show_ip_route_vrf_all_summary_prefix_cmd,
+ "show ip route vrf all summary prefix",
+ SHOW_STR
IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Distance value for this prefix\n")
+ "IP routing table\n"
+ VRF_ALL_CMD_HELP_STR
+ "Summary of all routes\n"
+ "Prefix routes\n")
{
- return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], argv[3], NULL, argv[4], NULL, NULL);
-}
+ struct vrf *vrf;
+ struct zebra_vrf *zvrf;
-DEFUN (no_ipv6_route_ifname_flags_pref_tag,
- no_ipv6_route_ifname_flags_pref_tag_cmd,
- "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-4294967295> <1-255>",
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Set tag for this route\n"
- "Tag value\n"
- "Distance value for this prefix\n")
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], NULL, NULL);
-}
+ RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name)
+ if ((zvrf = vrf->info) != NULL)
+ vty_show_ip_route_summary_prefix (vty, zvrf->table[AFI_IP][SAFI_UNICAST]);
-DEFUN (ipv6_route_vrf,
- ipv6_route_vrf_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE|null0) " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Null interface\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, NULL, NULL, NULL, argv[2], NULL);
+ return CMD_SUCCESS;
}
-DEFUN (ipv6_route_tag_vrf,
- ipv6_route_tag_vrf_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE|null0) tag <1-4294967295> " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Null interface\n"
- "Set tag for this route\n"
- "Tag value\n"
- VRF_CMD_HELP_STR)
+/* Write IPv4 static route configuration. */
+static int
+static_config_ipv4 (struct vty *vty, safi_t safi, const char *cmd)
{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, NULL, argv[2], NULL, argv[3], NULL);
-}
+ struct route_node *rn;
+ struct static_route *si;
+ struct route_table *stable;
+ struct vrf *vrf;
+ struct zebra_vrf *zvrf;
+ char buf[BUFSIZ];
+ int write =0;
-DEFUN (ipv6_route_flags_vrf,
- ipv6_route_flags_vrf_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, argv[2], NULL, NULL, argv[3], NULL);
-}
+ RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name)
+ {
+ if (!(zvrf = vrf->info))
+ continue;
+ if ((stable = zvrf->stable[AFI_IP][safi]) == NULL)
+ continue;
-DEFUN (ipv6_route_flags_tag_vrf,
- ipv6_route_flags_tag_vrf_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-4294967295> " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Set tag for this route\n"
- "Tag value\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, argv[2], argv[3], NULL, argv[4], NULL);
-}
+ for (rn = route_top (stable); rn; rn = route_next (rn))
+ for (si = rn->info; si; si = si->next)
+ {
+ vty_out (vty, "%s %s", cmd, prefix2str (&rn->p, buf, sizeof buf));
-DEFUN (ipv6_route_ifname_vrf,
- ipv6_route_ifname_vrf_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], NULL, NULL, NULL, argv[3], NULL);
-}
-DEFUN (ipv6_route_ifname_tag_vrf,
- ipv6_route_ifname_tag_vrf_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295> " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Set tag for this route\n"
- "Tag value\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], NULL, argv[3], NULL, argv[4], NULL);
-}
+ switch (si->type)
+ {
+ case STATIC_IPV4_GATEWAY:
+ vty_out (vty, " %s", inet_ntoa (si->addr.ipv4));
+ break;
+ case STATIC_IFINDEX:
+ vty_out (vty, " %s", si->ifname);
+ break;
+ case STATIC_BLACKHOLE:
+ vty_out (vty, " Null0");
+ break;
+ }
-DEFUN (ipv6_route_ifname_flags_vrf,
- ipv6_route_ifname_flags_vrf_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], argv[3], NULL, NULL, argv[4], NULL);
-}
+ /* flags are incompatible with STATIC_BLACKHOLE */
+ if (si->type != STATIC_BLACKHOLE)
+ {
+ if (CHECK_FLAG(si->flags, ZEBRA_FLAG_REJECT))
+ vty_out (vty, " %s", "reject");
-DEFUN (ipv6_route_ifname_flags_tag_vrf,
- ipv6_route_ifname_flags_tag_vrf_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-4294967295> " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Set tag for this route\n"
- "Tag value\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], argv[3], argv[4], NULL, argv[5], NULL);
-}
+ if (CHECK_FLAG(si->flags, ZEBRA_FLAG_BLACKHOLE))
+ vty_out (vty, " %s", "blackhole");
+ }
-DEFUN (ipv6_route_pref_vrf,
- ipv6_route_pref_vrf_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE|null0) <1-255> " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Null interface\n"
- "Distance value for this prefix\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, NULL, NULL, argv[2], argv[3], NULL);
-}
+ if (si->tag)
+ vty_out (vty, " tag %"ROUTE_TAG_PRI, si->tag);
-DEFUN (ipv6_route_pref_tag_vrf,
- ipv6_route_pref_tag_vrf_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE|null0) tag <1-4294967295> <1-255> " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Null interface\n"
- "Set tag for this route\n"
- "Tag value\n"
- "Distance value for this prefix\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, NULL, argv[2], argv[3], argv[4], NULL);
-}
+ if (si->distance != ZEBRA_STATIC_DISTANCE_DEFAULT)
+ vty_out (vty, " %d", si->distance);
+
+ if (si->vrf_id != VRF_DEFAULT)
+ vty_out (vty, " vrf %s", zvrf ? zvrf_name (zvrf) : "");
+
+ /* Label information */
+ if (si->snh_label.num_labels)
+ vty_out (vty, " label %s",
+ mpls_label2str (si->snh_label.num_labels,
+ si->snh_label.label, buf, sizeof buf));
-DEFUN (ipv6_route_flags_pref_vrf,
- ipv6_route_flags_pref_vrf_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) <1-255> " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Distance value for this prefix\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, argv[2], NULL, argv[3], argv[4], NULL);
-}
+ vty_out (vty, "%s", VTY_NEWLINE);
-DEFUN (ipv6_route_flags_pref_tag_vrf,
- ipv6_route_flags_pref_tag_vrf_cmd,
- "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-4294967295> <1-255> " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Set tag for this route\n"
- "Tag value\n"
- "Distance value for this prefix\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, argv[2], argv[3], argv[4], argv[5], NULL);
+ write = 1;
+ }
+ }
+ return write;
}
-DEFUN (ipv6_route_ifname_pref_vrf,
- ipv6_route_ifname_pref_vrf_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE <1-255> " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Distance value for this prefix\n"
- VRF_CMD_HELP_STR)
+/* General fucntion for IPv6 static route. */
+int
+static_ipv6_func (struct vty *vty, int add_cmd, const char *dest_str,
+ const char *gate_str, const char *ifname,
+ const char *flag_str, const char *tag_str,
+ const char *distance_str, const char *vrf_id_str,
+ const char *label_str)
{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], NULL, NULL, argv[3], argv[4], NULL);
-}
+ int ret;
+ u_char distance;
+ struct prefix p;
+ struct in6_addr *gate = NULL;
+ struct in6_addr gate_addr;
+ u_char type = STATIC_BLACKHOLE;
+ u_char flag = 0;
+ route_tag_t tag = 0;
+ unsigned int ifindex = 0;
+ struct interface *ifp = NULL;
+ struct zebra_vrf *zvrf;
+ struct static_nh_label snh_label;
-DEFUN (ipv6_route_ifname_pref_tag_vrf,
- ipv6_route_ifname_pref_tag_vrf_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295> <1-255> " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Set tag for this route\n"
- "Tag value\n"
- "Distance value for this prefix\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], NULL, argv[3], argv[4], argv[5], NULL);
-}
+ ret = str2prefix (dest_str, &p);
+ if (ret <= 0)
+ {
+ vty_out (vty, "%% Malformed address%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
-DEFUN (ipv6_route_ifname_flags_pref_vrf,
- ipv6_route_ifname_flags_pref_vrf_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) <1-255> " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Distance value for this prefix\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], argv[3], NULL, argv[4], argv[5], NULL);
-}
+ /* Apply mask for given prefix. */
+ apply_mask (&p);
-DEFUN (ipv6_route_ifname_flags_pref_tag_vrf,
- ipv6_route_ifname_flags_pref_tag_vrf_cmd,
- "ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-4294967295> <1-255> " VRF_CMD_STR,
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Set tag for this route\n"
- "Tag value\n"
- "Distance value for this prefix\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], NULL);
-}
+ /* Administrative distance. */
+ if (distance_str)
+ distance = atoi (distance_str);
+ else
+ distance = ZEBRA_STATIC_DISTANCE_DEFAULT;
-DEFUN (no_ipv6_route_vrf,
- no_ipv6_route_vrf_cmd,
- "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE|null0) " VRF_CMD_STR,
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Null interface\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, NULL, NULL, NULL, argv[2], NULL);
-}
+ /* tag */
+ if (tag_str)
+ tag = atol(tag_str);
-DEFUN (no_ipv6_route_tag_vrf,
- no_ipv6_route_tag_vrf_cmd,
- "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE|null0) tag <1-4294967295> " VRF_CMD_STR,
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Null interface\n"
- "Set tag for this route\n"
- "Tag value\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, NULL, argv[2], NULL, argv[3], NULL);
-}
+ /* When gateway is valid IPv6 addrees, then gate is treated as
+ nexthop address other case gate is treated as interface name. */
+ ret = inet_pton (AF_INET6, gate_str, &gate_addr);
-DEFUN (no_ipv6_route_flags_vrf,
- no_ipv6_route_flags_vrf_cmd,
- "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) " VRF_CMD_STR,
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, argv[2], NULL, NULL, argv[3], NULL);
-}
+ /* VRF id */
+ zvrf = zebra_vrf_lookup_by_name (vrf_id_str);
-DEFUN (no_ipv6_route_flags_tag_vrf,
- no_ipv6_route_flags_tag_vrf_cmd,
- "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-4294967295> " VRF_CMD_STR,
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- "Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n"
- "Set tag for this route\n"
- "Tag value\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, argv[2], argv[3], NULL, argv[4], NULL);
-}
+ if (!zvrf)
+ {
+ vty_out (vty, "%% vrf %s is not defined%s", vrf_id_str, VTY_NEWLINE);
+ return CMD_WARNING;
+ }
-DEFUN (no_ipv6_route_ifname_vrf,
- no_ipv6_route_ifname_vrf_cmd,
- "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE " VRF_CMD_STR,
- NO_STR
- IP_STR
- "Establish static routes\n"
- "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
- "IPv6 gateway address\n"
- "IPv6 gateway interface name\n"
- VRF_CMD_HELP_STR)
-{
- return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], NULL, NULL, NULL, argv[3], NULL);
+ /* Labels */
+ memset (&snh_label, 0, sizeof (struct static_nh_label));
+ if (label_str)
+ {
+ if (!mpls_enabled)
+ {
+ vty_out (vty, "%% MPLS not turned on in kernel, ignoring command%s",
+ VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ if (mpls_str2label (label_str, &snh_label.num_labels,
+ snh_label.label))
+ {
+ vty_out (vty, "%% Malformed label(s)%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ }
+
+ /* Null0 static route. */
+ if ((gate_str != NULL) && (strncasecmp (gate_str, "Null0", strlen (gate_str)) == 0))
+ {
+ if (flag_str)
+ {
+ vty_out (vty, "%% can not have flag %s with Null0%s", flag_str, VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ if (add_cmd)
+ static_add_route (AFI_IP6, SAFI_UNICAST, type, &p, NULL, ifindex, ifname,
+ ZEBRA_FLAG_BLACKHOLE, tag, distance, zvrf, &snh_label);
+ else
+ static_delete_route (AFI_IP6, SAFI_UNICAST, type, &p, NULL, ifindex, tag,
+ distance, zvrf, &snh_label);
+ return CMD_SUCCESS;
+ }
+
+ /* Route flags */
+ if (flag_str) {
+ switch(flag_str[0]) {
+ case 'r':
+ case 'R': /* XXX */
+ SET_FLAG (flag, ZEBRA_FLAG_REJECT);
+ break;
+ case 'b':
+ case 'B': /* XXX */
+ SET_FLAG (flag, ZEBRA_FLAG_BLACKHOLE);
+ break;
+ default:
+ vty_out (vty, "%% Malformed flag %s %s", flag_str, VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ }
+
+ if (ifname)
+ {
+ /* When ifname is specified. It must be come with gateway
+ address. */
+ if (ret != 1)
+ {
+ vty_out (vty, "%% Malformed address%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ type = STATIC_IPV6_GATEWAY_IFINDEX;
+ gate = &gate_addr;
+ ifp = if_lookup_by_name_vrf (ifname, zvrf_id (zvrf));
+ if (!ifp)
+ {
+ vty_out (vty, "%% Malformed Interface name %s%s", ifname, VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ ifindex = ifp->ifindex;
+ }
+ else
+ {
+ if (ret == 1)
+ {
+ type = STATIC_IPV6_GATEWAY;
+ gate = &gate_addr;
+ }
+ else
+ {
+ type = STATIC_IFINDEX;
+ ifp = if_lookup_by_name_vrf (gate_str, zvrf_id (zvrf));
+ if (!ifp)
+ {
+ vty_out (vty, "%% Malformed Interface name %s%s", gate_str, VTY_NEWLINE);
+ ifindex = IFINDEX_DELETED;
+ }
+ else
+ ifindex = ifp->ifindex;
+ ifname = gate_str;
+ }
+ }
+
+ if (add_cmd)
+ static_add_route (AFI_IP6, SAFI_UNICAST, type, &p, (union g_addr *)gate,
+ ifindex, ifname, flag, tag, distance, zvrf, &snh_label);
+ else
+ static_delete_route (AFI_IP6, SAFI_UNICAST, type, &p, (union g_addr *)gate,
+ ifindex, tag, distance, zvrf, &snh_label);
+
+ return CMD_SUCCESS;
}
-DEFUN (no_ipv6_route_ifname_tag_vrf,
- no_ipv6_route_ifname_tag_vrf_cmd,
- "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295> " VRF_CMD_STR,
- NO_STR
+DEFUN (ipv6_route,
+ ipv6_route_cmd,
+ "ipv6 route X:X::X:X/M <X:X::X:X|INTERFACE|null0> [tag (1-4294967295)] [(1-255)] [vrf NAME]",
IP_STR
"Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
SHOW_STR
IP_STR
"IP routing table\n"
- FRR_IP6_REDIST_HELP_STR_ZEBRA)
+ VRF_CMD_HELP_STR
- QUAGGA_IP6_REDIST_HELP_STR_ZEBRA)
++ FRR_IP6_REDIST_HELP_STR_ZEBRA)
{
int type;
struct route_table *table;
IP_STR
"IP routing table\n"
VRF_ALL_CMD_HELP_STR
- QUAGGA_IP6_REDIST_HELP_STR_ZEBRA)
+ FRR_IP6_REDIST_HELP_STR_ZEBRA)
{
+ int idx_protocol = 5;
int type;
struct route_table *table;
struct route_node *rn;