summaryrefslogtreecommitdiffstats
path: root/bgpd/bgp_vty.c
diff options
context:
space:
mode:
Diffstat (limited to 'bgpd/bgp_vty.c')
-rw-r--r--bgpd/bgp_vty.c1921
1 files changed, 1429 insertions, 492 deletions
diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c
index 6db3dcb1..5476a669 100644
--- a/bgpd/bgp_vty.c
+++ b/bgpd/bgp_vty.c
@@ -50,6 +50,7 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
#include "bgpd/bgp_table.h"
#include "bgpd/bgp_vty.h"
#include "bgpd/bgp_mpath.h"
+#include "bgpd/bgp_packet.h"
extern struct in_addr router_id_zebra;
@@ -166,15 +167,22 @@ peer_lookup_vty (struct vty *vty, const char *ip_str)
ret = str2sockunion (ip_str, &su);
if (ret < 0)
{
- vty_out (vty, "%% Malformed address: %s%s", ip_str, VTY_NEWLINE);
- return NULL;
+ peer = peer_lookup_by_conf_if (bgp, ip_str);
+ if (!peer)
+ {
+ vty_out (vty, "%% Malformed address or name: %s%s", ip_str, VTY_NEWLINE);
+ return NULL;
+ }
}
-
- peer = peer_lookup (bgp, &su);
- if (! peer)
+ else
{
- vty_out (vty, "%% Specify remote-as or peer-group commands first%s", VTY_NEWLINE);
- return NULL;
+ peer = peer_lookup (bgp, &su);
+ if (! peer)
+ {
+ vty_out (vty, "%% Specify remote-as or peer-group commands first%s",
+ VTY_NEWLINE);
+ return NULL;
+ }
}
return peer;
}
@@ -200,6 +208,10 @@ peer_and_group_lookup_vty (struct vty *vty, const char *peer_str)
}
else
{
+ peer = peer_lookup_by_conf_if (bgp, peer_str);
+ if (peer)
+ return peer;
+
group = peer_group_lookup (bgp, peer_str);
if (group)
return group->conf;
@@ -264,7 +276,7 @@ bgp_vty_return (struct vty *vty, int ret)
str = "Invalid command. Not an internal neighbor";
break;
case BGP_ERR_REMOVE_PRIVATE_AS:
- str = "Private AS cannot be removed for IBGP peers";
+ str = "remove-private-AS cannot be configured for IBGP peers";
break;
case BGP_ERR_LOCAL_AS_ALLOWED_ONLY_FOR_EBGP:
str = "Local-AS allowed only for EBGP peers";
@@ -281,6 +293,9 @@ bgp_vty_return (struct vty *vty, int ret)
case BGP_ERR_NO_IBGP_WITH_TTLHACK:
str = "ttl-security only allowed for EBGP peers";
break;
+ case BGP_ERR_AS_OVERRIDE:
+ str = "as-override cannot be configured for IBGP peers";
+ break;
}
if (str)
{
@@ -712,87 +727,408 @@ DEFUN (no_bgp_confederation_peers,
return CMD_SUCCESS;
}
-/* Maximum-paths configuration */
-DEFUN (bgp_maxpaths,
- bgp_maxpaths_cmd,
- "maximum-paths " CMD_RANGE_STR(1, MULTIPATH_NUM),
- "Forward packets over multiple paths\n"
- "Number of paths\n")
+/**
+ * Central routine for maximum-paths configuration.
+ * @peer_type: BGP_PEER_EBGP or BGP_PEER_IBGP
+ * @set: 1 for setting values, 0 for removing the max-paths config.
+ */
+static int
+bgp_maxpaths_config_vty (struct vty *vty, int peer_type, const char *mpaths,
+ u_int16_t options, int set)
{
struct bgp *bgp;
- u_int16_t maxpaths;
+ u_int16_t maxpaths = 0;
int ret;
+ afi_t afi;
+ safi_t safi;
bgp = vty->index;
+ afi = bgp_node_afi (vty);
+ safi = bgp_node_safi (vty);
- VTY_GET_INTEGER_RANGE ("maximum-paths", maxpaths, argv[0], 1, 255);
+ if (set)
+ {
+ VTY_GET_INTEGER_RANGE ("maximum-paths", maxpaths, mpaths, 1,
+ BGP_MAXIMUM_MAXPATHS);
+ ret = bgp_maximum_paths_set (bgp, afi, safi, peer_type, maxpaths,
+ options);
+ }
+ else
+ ret = bgp_maximum_paths_unset (bgp, afi, safi, peer_type);
- ret = bgp_maximum_paths_set (bgp, bgp_node_afi (vty), bgp_node_safi(vty),
- BGP_PEER_EBGP, maxpaths);
if (ret < 0)
{
vty_out (vty,
- "%% Failed to set maximum-paths %u for afi %u, safi %u%s",
- maxpaths, bgp_node_afi (vty), bgp_node_safi(vty), VTY_NEWLINE);
+ "%% Failed to %sset maximum-paths %s %u for afi %u, safi %u%s",
+ (set == 1) ? "" : "un",
+ (peer_type == BGP_PEER_EBGP) ? "ebgp" : "ibgp",
+ maxpaths, afi, safi, VTY_NEWLINE);
return CMD_WARNING;
}
return CMD_SUCCESS;
}
-DEFUN (bgp_maxpaths_ibgp,
- bgp_maxpaths_ibgp_cmd,
- "maximum-paths ibgp " CMD_RANGE_STR(1, MULTIPATH_NUM),
- "Forward packets over multiple paths\n"
- "iBGP-multipath\n"
- "Number of paths\n")
+DEFUN (bgp_maxmed_admin,
+ bgp_maxmed_admin_cmd,
+ "bgp max-med administrative ",
+ BGP_STR
+ "Advertise routes with max-med\n"
+ "Administratively applied, for an indefinite period\n")
{
struct bgp *bgp;
- u_int16_t maxpaths;
- int ret;
bgp = vty->index;
- VTY_GET_INTEGER_RANGE ("maximum-paths", maxpaths, argv[0], 1, 255);
+ bgp->v_maxmed_admin = 1;
+ bgp->maxmed_admin_value = BGP_MAXMED_VALUE_DEFAULT;
- ret = bgp_maximum_paths_set (bgp, bgp_node_afi (vty), bgp_node_safi(vty),
- BGP_PEER_IBGP, maxpaths);
- if (ret < 0)
+ bgp_maxmed_update(bgp);
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (bgp_maxmed_admin_medv,
+ bgp_maxmed_admin_medv_cmd,
+ "bgp max-med administrative <0-4294967294>",
+ BGP_STR
+ "Advertise routes with max-med\n"
+ "Administratively applied, for an indefinite period\n"
+ "Max MED value to be used\n")
+{
+ struct bgp *bgp;
+
+ bgp = vty->index;
+
+ bgp->v_maxmed_admin = 1;
+ VTY_GET_INTEGER ("max-med admin med-value", bgp->maxmed_admin_value, argv[0]);
+
+ bgp_maxmed_update(bgp);
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_bgp_maxmed_admin,
+ no_bgp_maxmed_admin_cmd,
+ "no bgp max-med administrative",
+ NO_STR
+ BGP_STR
+ "Advertise routes with max-med\n"
+ "Administratively applied, for an indefinite period\n")
+{
+ struct bgp *bgp;
+
+ bgp = vty->index;
+
+ bgp->v_maxmed_admin = BGP_MAXMED_ADMIN_UNCONFIGURED;
+ bgp->maxmed_admin_value = BGP_MAXMED_VALUE_DEFAULT;
+
+ bgp_maxmed_update(bgp);
+
+ return CMD_SUCCESS;
+}
+
+ALIAS (no_bgp_maxmed_admin,
+ no_bgp_maxmed_admin_medv_cmd,
+ "no bgp max-med administrative <0-4294967294>",
+ NO_STR
+ BGP_STR
+ "Advertise routes with max-med\n"
+ "Administratively applied, for an indefinite period\n"
+ "Max MED value to be used\n")
+
+
+DEFUN (bgp_maxmed_onstartup,
+ bgp_maxmed_onstartup_cmd,
+ "bgp max-med on-startup <5-86400>",
+ BGP_STR
+ "Advertise routes with max-med\n"
+ "Effective on a startup\n"
+ "Time (seconds) period for max-med\n")
+{
+ struct bgp *bgp;
+
+ bgp = vty->index;
+
+ if (argc != 1)
{
- vty_out (vty,
- "%% Failed to set maximum-paths ibgp %u for afi %u, safi %u%s",
- maxpaths, bgp_node_afi (vty), bgp_node_safi(vty), VTY_NEWLINE);
+ vty_out (vty, "%% Must supply max-med on-startup period");
return CMD_WARNING;
}
+ VTY_GET_INTEGER ("max-med on-startup period", bgp->v_maxmed_onstartup, argv[0]);
+ bgp->maxmed_onstartup_value = BGP_MAXMED_VALUE_DEFAULT;
+
+ bgp_maxmed_update(bgp);
+
return CMD_SUCCESS;
}
-DEFUN (no_bgp_maxpaths,
- no_bgp_maxpaths_cmd,
- "no maximum-paths",
+DEFUN (bgp_maxmed_onstartup_medv,
+ bgp_maxmed_onstartup_medv_cmd,
+ "bgp max-med on-startup <5-86400> <0-4294967294>",
+ BGP_STR
+ "Advertise routes with max-med\n"
+ "Effective on a startup\n"
+ "Time (seconds) period for max-med\n"
+ "Max MED value to be used\n")
+{
+ struct bgp *bgp;
+
+ bgp = vty->index;
+
+ if (argc != 2)
+ {
+ vty_out (vty, "%% Must supply max-med on-startup period and med value");
+ return CMD_WARNING;
+ }
+
+ VTY_GET_INTEGER ("max-med on-startup period", bgp->v_maxmed_onstartup, argv[0]);
+ VTY_GET_INTEGER ("max-med on-startup med-value", bgp->maxmed_onstartup_value, argv[1]);
+
+ bgp_maxmed_update(bgp);
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_bgp_maxmed_onstartup,
+ no_bgp_maxmed_onstartup_cmd,
+ "no bgp max-med on-startup",
NO_STR
- "Forward packets over multiple paths\n"
- "Number of paths\n")
+ BGP_STR
+ "Advertise routes with max-med\n"
+ "Effective on a startup\n")
{
struct bgp *bgp;
- int ret;
bgp = vty->index;
- ret = bgp_maximum_paths_unset (bgp, bgp_node_afi (vty), bgp_node_safi(vty),
- BGP_PEER_EBGP);
- if (ret < 0)
+ /* Cancel max-med onstartup if its on */
+ if (bgp->t_maxmed_onstartup)
{
- vty_out (vty,
- "%% Failed to unset maximum-paths for afi %u, safi %u%s",
- bgp_node_afi (vty), bgp_node_safi(vty), VTY_NEWLINE);
+ THREAD_TIMER_OFF (bgp->t_maxmed_onstartup);
+ bgp->maxmed_onstartup_over = 1;
+ }
+
+ bgp->v_maxmed_onstartup = BGP_MAXMED_ONSTARTUP_UNCONFIGURED;
+ bgp->maxmed_onstartup_value = BGP_MAXMED_VALUE_DEFAULT;
+
+ bgp_maxmed_update(bgp);
+
+ return CMD_SUCCESS;
+}
+
+ALIAS (no_bgp_maxmed_onstartup,
+ no_bgp_maxmed_onstartup_period_cmd,
+ "no bgp max-med on-startup <5-86400>",
+ NO_STR
+ BGP_STR
+ "Advertise routes with max-med\n"
+ "Effective on a startup\n"
+ "Time (seconds) period for max-med\n")
+
+ALIAS (no_bgp_maxmed_onstartup,
+ no_bgp_maxmed_onstartup_period_medv_cmd,
+ "no bgp max-med on-startup <5-86400> <0-4294967294>",
+ NO_STR
+ BGP_STR
+ "Advertise routes with max-med\n"
+ "Effective on a startup\n"
+ "Time (seconds) period for max-med\n"
+ "Max MED value to be used\n")
+
+static int
+bgp_update_delay_config_vty (struct vty *vty, const char *delay,
+ const char *wait)
+{
+ struct bgp *bgp;
+ u_int16_t update_delay;
+ u_int16_t establish_wait;
+
+
+ bgp = vty->index;
+
+ VTY_GET_INTEGER_RANGE ("update-delay", update_delay, delay,
+ BGP_UPDATE_DELAY_MIN, BGP_UPDATE_DELAY_MAX);
+
+ if (!wait) /* update-delay <delay> */
+ {
+ bgp->v_update_delay = update_delay;
+ bgp->v_establish_wait = bgp->v_update_delay;
+ return CMD_SUCCESS;
+ }
+
+ /* update-delay <delay> <establish-wait> */
+ establish_wait = atoi (wait);
+ if (update_delay < establish_wait)
+ {
+ vty_out (vty, "%%Failed: update-delay less than the establish-wait!%s",
+ VTY_NEWLINE);
return CMD_WARNING;
}
+ bgp->v_update_delay = update_delay;
+ bgp->v_establish_wait = establish_wait;
+
+ return CMD_SUCCESS;
+}
+
+static int
+bgp_update_delay_deconfig_vty (struct vty *vty)
+{
+ struct bgp *bgp;
+
+ bgp = vty->index;
+
+ bgp->v_update_delay = BGP_UPDATE_DELAY_DEF;
+ bgp->v_establish_wait = bgp->v_update_delay;
+
+ return CMD_SUCCESS;
+}
+
+int
+bgp_config_write_update_delay (struct vty *vty, struct bgp *bgp)
+{
+ if (bgp->v_update_delay != BGP_UPDATE_DELAY_DEF)
+ {
+ vty_out (vty, " update-delay %d", bgp->v_update_delay);
+ if (bgp->v_update_delay != bgp->v_establish_wait)
+ vty_out (vty, " %d", bgp->v_establish_wait);
+ vty_out (vty, "%s", VTY_NEWLINE);
+ }
+
+ return 0;
+}
+
+
+/* Update-delay configuration */
+DEFUN (bgp_update_delay,
+ bgp_update_delay_cmd,
+ "update-delay <0-3600>",
+ "Force initial delay for best-path and updates\n"
+ "Seconds\n")
+{
+ return bgp_update_delay_config_vty(vty, argv[0], NULL);
+}
+
+DEFUN (bgp_update_delay_establish_wait,
+ bgp_update_delay_establish_wait_cmd,
+ "update-delay <0-3600> <1-3600>",
+ "Force initial delay for best-path and updates\n"
+ "Seconds\n"
+ "Wait for peers to be established\n"
+ "Seconds\n")
+{
+ return bgp_update_delay_config_vty(vty, argv[0], argv[1]);
+}
+
+/* Update-delay deconfiguration */
+DEFUN (no_bgp_update_delay,
+ no_bgp_update_delay_cmd,
+ "no update-delay <0-3600>",
+ "Force initial delay for best-path and updates\n"
+ "Seconds\n")
+{
+ return bgp_update_delay_deconfig_vty(vty);
+}
+
+ALIAS (no_bgp_update_delay,
+ no_bgp_update_delay_establish_wait_cmd,
+ "no update-delay <0-3600> <1-3600>",
+ "Force initial delay for best-path and updates\n"
+ "Seconds\n"
+ "Wait for peers to be established\n"
+ "Seconds\n")
+
+static int
+bgp_wpkt_quanta_config_vty (struct vty *vty, const char *num, char set)
+{
+ struct bgp *bgp;
+
+ bgp = vty->index;
+
+ if (set)
+ VTY_GET_INTEGER_RANGE ("write-quanta", bgp->wpkt_quanta, num,
+ 1, 10000);
+ else
+ bgp->wpkt_quanta = BGP_WRITE_PACKET_MAX;
+
return CMD_SUCCESS;
}
+int
+bgp_config_write_wpkt_quanta (struct vty *vty, struct bgp *bgp)
+{
+ if (bgp->wpkt_quanta != BGP_WRITE_PACKET_MAX)
+ vty_out (vty, " write-quanta %d%s",
+ bgp->wpkt_quanta, VTY_NEWLINE);
+
+ return 0;
+}
+
+
+/* Update-delay configuration */
+DEFUN (bgp_wpkt_quanta,
+ bgp_wpkt_quanta_cmd,
+ "write-quanta <1-10000>",
+ "How many packets to write to peer socket per run\n"
+ "Number of packets\n")
+{
+ return bgp_wpkt_quanta_config_vty(vty, argv[0], 1);
+}
+
+/* Update-delay deconfiguration */
+DEFUN (no_bgp_wpkt_quanta,
+ no_bgp_wpkt_quanta_cmd,
+ "no write-quanta <1-10000>",
+ "How many packets to write to peer socket per run\n"
+ "Number of packets\n")
+{
+ return bgp_wpkt_quanta_config_vty(vty, argv[0], 0);
+}
+
+/* Maximum-paths configuration */
+DEFUN (bgp_maxpaths,
+ bgp_maxpaths_cmd,
+ "maximum-paths " CMD_RANGE_STR(1, MULTIPATH_NUM),
+ "Forward packets over multiple paths\n"
+ "Number of paths\n")
+{
+ return bgp_maxpaths_config_vty(vty, BGP_PEER_EBGP, argv[0], 0, 1);
+}
+
+DEFUN (bgp_maxpaths_ibgp,
+ bgp_maxpaths_ibgp_cmd,
+ "maximum-paths ibgp " CMD_RANGE_STR(1, MULTIPATH_NUM),
+ "Forward packets over multiple paths\n"
+ "iBGP-multipath\n"
+ "Number of paths\n")
+{
+ return bgp_maxpaths_config_vty(vty, BGP_PEER_IBGP, argv[0], 0, 1);
+}
+
+DEFUN (bgp_maxpaths_ibgp_cluster,
+ bgp_maxpaths_ibgp_cluster_cmd,
+ "maximum-paths ibgp " CMD_RANGE_STR(1, MULTIPATH_NUM) " equal-cluster-length",
+ "Forward packets over multiple paths\n"
+ "iBGP-multipath\n"
+ "Number of paths\n"
+ "Match the cluster length\n")
+{
+ return bgp_maxpaths_config_vty(vty, BGP_PEER_IBGP, argv[0],
+ BGP_FLAG_IBGP_MULTIPATH_SAME_CLUSTERLEN, 1);
+}
+
+DEFUN (no_bgp_maxpaths,
+ no_bgp_maxpaths_cmd,
+ "no maximum-paths",
+ NO_STR
+ "Forward packets over multiple paths\n"
+ "Number of paths\n")
+{
+ return bgp_maxpaths_config_vty(vty, BGP_PEER_EBGP, NULL, 0, 0);
+}
+
ALIAS (no_bgp_maxpaths,
no_bgp_maxpaths_arg_cmd,
"no maximum-paths " CMD_RANGE_STR(1, MULTIPATH_NUM),
@@ -808,22 +1144,7 @@ DEFUN (no_bgp_maxpaths_ibgp,
"iBGP-multipath\n"
"Number of paths\n")
{
- struct bgp *bgp;
- int ret;
-
- bgp = vty->index;
-
- ret = bgp_maximum_paths_unset (bgp, bgp_node_afi (vty), bgp_node_safi(vty),
- BGP_PEER_IBGP);
- if (ret < 0)
- {
- vty_out (vty,
- "%% Failed to unset maximum-paths ibgp for afi %u, safi %u%s",
- bgp_node_afi (vty), bgp_node_safi(vty), VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- return CMD_SUCCESS;
+ return bgp_maxpaths_config_vty(vty, BGP_PEER_IBGP, NULL, 0, 0);
}
ALIAS (no_bgp_maxpaths_ibgp,
@@ -834,6 +1155,15 @@ ALIAS (no_bgp_maxpaths_ibgp,
"iBGP-multipath\n"
"Number of paths\n")
+ALIAS (no_bgp_maxpaths_ibgp,
+ no_bgp_maxpaths_ibgp_cluster_cmd,
+ "no maximum-paths ibgp <1-255> equal-cluster-length",
+ NO_STR
+ "Forward packets over multiple paths\n"
+ "iBGP-multipath\n"
+ "Number of paths\n"
+ "Match the cluster length\n")
+
int
bgp_config_write_maxpaths (struct vty *vty, struct bgp *bgp, afi_t afi,
safi_t safi, int *write)
@@ -848,8 +1178,12 @@ bgp_config_write_maxpaths (struct vty *vty, struct bgp *bgp, afi_t afi,
if (bgp->maxpaths[afi][safi].maxpaths_ibgp != BGP_DEFAULT_MAXPATHS)
{
bgp_config_write_family_header (vty, afi, safi, write);
- vty_out (vty, " maximum-paths ibgp %d%s",
- bgp->maxpaths[afi][safi].maxpaths_ibgp, VTY_NEWLINE);
+ vty_out (vty, " maximum-paths ibgp %d",
+ bgp->maxpaths[afi][safi].maxpaths_ibgp);
+ if (CHECK_FLAG (bgp->maxpaths[afi][safi].ibgp_flags,
+ BGP_FLAG_IBGP_MULTIPATH_SAME_CLUSTERLEN))
+ vty_out (vty, " equal-cluster-length");
+ vty_out (vty, "%s", VTY_NEWLINE);
}
return 0;
@@ -1483,6 +1817,80 @@ ALIAS (no_bgp_default_local_preference,
"local preference (higher=more preferred)\n"
"Configure default local preference value\n")
+static void
+peer_announce_routes_if_rmap_out (struct bgp *bgp)
+{
+ struct peer *peer;
+ struct listnode *node, *nnode;
+ struct bgp_filter *filter;
+ afi_t afi;
+ safi_t safi;
+
+ /* Reannounce all routes to appropriate neighbors */
+ for (ALL_LIST_ELEMENTS (bgp->peer, node, nnode, peer))
+ {
+ for (afi = AFI_IP; afi < AFI_MAX; afi++)
+ for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
+ {
+ if (CHECK_FLAG(peer->af_flags[afi][safi], PEER_FLAG_REFLECTOR_CLIENT))
+ {
+ /* check if there's an out route-map on this client */
+ filter = &peer->filter[afi][safi];
+ if (ROUTE_MAP_OUT_NAME(filter))
+ {
+ if (bgp_debug_update(peer, NULL, 0))
+ zlog_debug("%s: Announcing routes again for peer %s"
+ "(afi=%d, safi=%d", __func__, peer->host, afi,
+ safi);
+
+ bgp_announce_route_all(peer);
+ }
+ }
+ }
+ }
+}
+
+DEFUN (bgp_rr_allow_outbound_policy,
+ bgp_rr_allow_outbound_policy_cmd,
+ "bgp route-reflector allow-outbound-policy",
+ "BGP specific commands\n"
+ "Allow modifications made by out route-map\n"
+ "on ibgp neighbors\n")
+{
+ struct bgp *bgp;
+
+ bgp = vty->index;
+
+ if (!bgp_flag_check(bgp, BGP_FLAG_RR_ALLOW_OUTBOUND_POLICY))
+ {
+ bgp_flag_set(bgp, BGP_FLAG_RR_ALLOW_OUTBOUND_POLICY);
+ peer_announce_routes_if_rmap_out(bgp);
+ }
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_bgp_rr_allow_outbound_policy,
+ no_bgp_rr_allow_outbound_policy_cmd,
+ "no bgp route-reflector allow-outbound-policy",
+ NO_STR
+ "BGP specific commands\n"
+ "Allow modifications made by out route-map\n"
+ "on ibgp neighbors\n")
+{
+ struct bgp *bgp;
+
+ bgp = vty->index;
+
+ if (bgp_flag_check(bgp, BGP_FLAG_RR_ALLOW_OUTBOUND_POLICY))
+ {
+ bgp_flag_unset(bgp, BGP_FLAG_RR_ALLOW_OUTBOUND_POLICY);
+ peer_announce_routes_if_rmap_out(bgp);
+ }
+
+ return CMD_SUCCESS;
+}
+
static int
peer_remote_as_vty (struct vty *vty, const char *peer_str,
const char *as_str, afi_t afi, safi_t safi)
@@ -1501,24 +1909,31 @@ peer_remote_as_vty (struct vty *vty, const char *peer_str,
ret = str2sockunion (peer_str, &su);
if (ret < 0)
{
- ret = peer_group_remote_as (bgp, peer_str, &as);
+ /* Check for peer by interface */
+ ret = peer_remote_as (bgp, NULL, peer_str, &as, afi, safi);
if (ret < 0)
- {
- vty_out (vty, "%% Create the peer-group first%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
- return CMD_SUCCESS;
+ {
+ ret = peer_group_remote_as (bgp, peer_str, &as);
+ if (ret < 0)
+ {
+ vty_out (vty, "%% Create the peer-group or interface first%s",
+ VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ return CMD_SUCCESS;
+ }
}
-
- if (peer_address_self_check (&su))
+ else
{
- vty_out (vty, "%% Can not configure the local system as neighbor%s",
- VTY_NEWLINE);
- return CMD_WARNING;
+ if (peer_address_self_check (&su))
+ {
+ vty_out (vty, "%% Can not configure the local system as neighbor%s",
+ VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ ret = peer_remote_as (bgp, &su, NULL, &as, afi, safi);
}
- ret = peer_remote_as (bgp, &su, &as, afi, safi);
-
/* This peer belongs to peer group. */
switch (ret)
{
@@ -1543,17 +1958,51 @@ DEFUN (neighbor_remote_as,
return peer_remote_as_vty (vty, argv[0], argv[1], AFI_IP, SAFI_UNICAST);
}
+DEFUN (neighbor_interface_config,
+ neighbor_interface_config_cmd,
+ "neighbor WORD interface",
+ NEIGHBOR_STR
+ "Interface name or neighbor tag\n"
+ "Enable BGP on interface\n")
+{
+ struct bgp *bgp;
+ struct peer *peer;
+ struct peer_group *group;
+
+ bgp = vty->index;
+ group = peer_group_lookup (bgp, argv[0]);
+ if (group)
+ {
+ vty_out (vty, "%% Name conflict with peer-group %s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ peer = peer_conf_interface_get (bgp, argv[0], AFI_IP, SAFI_UNICAST);
+ if (!peer)
+ return CMD_WARNING;
+
+ return CMD_SUCCESS;
+}
+
+
DEFUN (neighbor_peer_group,
neighbor_peer_group_cmd,
"neighbor WORD peer-group",
NEIGHBOR_STR
- "Neighbor tag\n"
+ "Interface name or neighbor tag\n"
"Configure peer-group\n")
{
struct bgp *bgp;
+ struct peer *peer;
struct peer_group *group;
bgp = vty->index;
+ peer = peer_lookup_by_conf_if (bgp, argv[0]);
+ if (peer)
+ {
+ vty_out (vty, "%% Name conflict with interface: %s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
group = peer_group_get (bgp, argv[0]);
if (! group)
@@ -1573,10 +2022,19 @@ DEFUN (no_neighbor,
union sockunion su;
struct peer_group *group;
struct peer *peer;
+ struct peer *other;
ret = str2sockunion (argv[0], &su);
if (ret < 0)
{
+ /* look up for neighbor by interface name config. */
+ peer = peer_lookup_by_conf_if (vty->index, argv[0]);
+ if (peer)
+ {
+ peer_delete (peer);
+ return CMD_SUCCESS;
+ }
+
group = peer_group_lookup (vty->index, argv[0]);
if (group)
peer_group_delete (group);
@@ -1590,7 +2048,12 @@ DEFUN (no_neighbor,
{
peer = peer_lookup (vty->index, &su);
if (peer)
- peer_delete (peer);
+ {
+ other = peer->doppelganger;
+ peer_delete (peer);
+ if (other && other->status != Deleted)
+ peer_delete(other);
+ }
}
return CMD_SUCCESS;
@@ -1605,6 +2068,30 @@ ALIAS (no_neighbor,
"Specify a BGP neighbor\n"
AS_STR)
+DEFUN (no_neighbor_interface_config,
+ no_neighbor_interface_config_cmd,
+ "no neighbor WORD interface",
+ NO_STR
+ NEIGHBOR_STR
+ "Interface name\n"
+ "Configure BGP on interface\n")
+{
+ struct peer *peer;
+
+ /* look up for neighbor by interface name config. */
+ peer = peer_lookup_by_conf_if (vty->index, argv[0]);
+ if (peer)
+ {
+ peer_delete (peer);
+ }
+ else
+ {
+ vty_out (vty, "%% Create the bgp interface first%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ return CMD_SUCCESS;
+}
+
DEFUN (no_neighbor_peer_group,
no_neighbor_peer_group_cmd,
"no neighbor WORD peer-group",
@@ -1626,23 +2113,32 @@ DEFUN (no_neighbor_peer_group,
return CMD_SUCCESS;
}
-DEFUN (no_neighbor_peer_group_remote_as,
- no_neighbor_peer_group_remote_as_cmd,
+DEFUN (no_neighbor_interface_peer_group_remote_as,
+ no_neighbor_interface_peer_group_remote_as_cmd,
"no neighbor WORD remote-as " CMD_AS_RANGE,
NO_STR
NEIGHBOR_STR
- "Neighbor tag\n"
+ "Interface name or neighbor tag\n"
"Specify a BGP neighbor\n"
AS_STR)
{
struct peer_group *group;
+ struct peer *peer;
+
+ /* look up for neighbor by interface name config. */
+ peer = peer_lookup_by_conf_if (vty->index, argv[0]);
+ if (peer)
+ {
+ peer_as_change (peer, 0);
+ return CMD_SUCCESS;
+ }
group = peer_group_lookup (vty->index, argv[0]);
if (group)
peer_group_remote_as_delete (group);
else
{
- vty_out (vty, "%% Create the peer-group first%s", VTY_NEWLINE);
+ vty_out (vty, "%% Create the peer-group or interface first%s", VTY_NEWLINE);
return CMD_WARNING;
}
return CMD_SUCCESS;
@@ -1837,9 +2333,9 @@ DEFUN (no_neighbor_activate,
DEFUN (neighbor_set_peer_group,
neighbor_set_peer_group_cmd,
- NEIGHBOR_CMD "peer-group WORD",
+ NEIGHBOR_CMD2 "peer-group WORD",
NEIGHBOR_STR
- NEIGHBOR_ADDR_STR
+ NEIGHBOR_ADDR_STR2
"Member of the peer-group\n"
"peer-group name\n")
{
@@ -1847,15 +2343,30 @@ DEFUN (neighbor_set_peer_group,
as_t as;
union sockunion su;
struct bgp *bgp;
+ struct peer *peer;
struct peer_group *group;
bgp = vty->index;
+ peer = NULL;
ret = str2sockunion (argv[0], &su);
if (ret < 0)
{
- vty_out (vty, "%% Malformed address: %s%s", argv[0], VTY_NEWLINE);
- return CMD_WARNING;
+ peer = peer_lookup_by_conf_if (bgp, argv[0]);
+ if (!peer)
+ {
+ vty_out (vty, "%% Malformed address or name: %s%s", argv[0], VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ }
+ else
+ {
+ if (peer_address_self_check (&su))
+ {
+ vty_out (vty, "%% Can not configure the local system as neighbor%s",
+ VTY_NEWLINE);
+ return CMD_WARNING;
+ }
}
group = peer_group_lookup (bgp, argv[1]);
@@ -1865,14 +2376,7 @@ DEFUN (neighbor_set_peer_group,
return CMD_WARNING;
}
- if (peer_address_self_check (&su))
- {
- vty_out (vty, "%% Can not configure the local system as neighbor%s",
- VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- ret = peer_group_bind (bgp, &su, group, bgp_node_afi (vty),
+ ret = peer_group_bind (bgp, &su, peer, group, bgp_node_afi (vty),
bgp_node_safi (vty), &as);
if (ret == BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT)
@@ -1886,10 +2390,10 @@ DEFUN (neighbor_set_peer_group,
DEFUN (no_neighbor_set_peer_group,
no_neighbor_set_peer_group_cmd,
- NO_NEIGHBOR_CMD "peer-group WORD",
+ NO_NEIGHBOR_CMD2 "peer-group WORD",
NO_STR
NEIGHBOR_STR
- NEIGHBOR_ADDR_STR
+ NEIGHBOR_ADDR_STR2
"Member of the peer-group\n"
"peer-group name\n")
{
@@ -2191,32 +2695,143 @@ DEFUN (no_neighbor_nexthop_self,
PEER_FLAG_NEXTHOP_SELF|PEER_FLAG_NEXTHOP_SELF_ALL);
}
+/* neighbor as-override */
+DEFUN (neighbor_as_override,
+ neighbor_as_override_cmd,
+ NEIGHBOR_CMD2 "as-override",
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ "Override ASNs in outbound updates if aspath equals remote-as\n")
+{
+ return peer_af_flag_set_vty (vty, argv[0], bgp_node_afi (vty),
+ bgp_node_safi (vty),
+ PEER_FLAG_AS_OVERRIDE);
+}
+
+DEFUN (no_neighbor_as_override,
+ no_neighbor_as_override_cmd,
+ NO_NEIGHBOR_CMD2 "as-override",
+ NO_STR
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ "Override ASNs in outbound updates if aspath equals remote-as\n")
+{
+ return peer_af_flag_unset_vty (vty, argv[0], bgp_node_afi (vty),
+ bgp_node_safi (vty),
+ PEER_FLAG_AS_OVERRIDE);
+}
+
/* neighbor remove-private-AS. */
DEFUN (neighbor_remove_private_as,
neighbor_remove_private_as_cmd,
NEIGHBOR_CMD2 "remove-private-AS",
NEIGHBOR_STR
NEIGHBOR_ADDR_STR2
- "Remove private AS number from outbound updates\n")
+ "Remove private ASNs in outbound updates\n")
{
+ peer_af_flag_unset_vty (vty, argv[0], bgp_node_afi (vty),
+ bgp_node_safi (vty),
+ PEER_FLAG_REMOVE_PRIVATE_AS_ALL|
+ PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE);
return peer_af_flag_set_vty (vty, argv[0], bgp_node_afi (vty),
bgp_node_safi (vty),
PEER_FLAG_REMOVE_PRIVATE_AS);
}
+DEFUN (neighbor_remove_private_as_all,
+ neighbor_remove_private_as_all_cmd,
+ NEIGHBOR_CMD2 "remove-private-AS all",
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ "Remove private ASNs in outbound updates\n"
+ "Apply to all AS numbers")
+{
+ peer_af_flag_unset_vty (vty, argv[0], bgp_node_afi (vty),
+ bgp_node_safi (vty),
+ PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE);
+ return peer_af_flag_set_vty (vty, argv[0], bgp_node_afi (vty),
+ bgp_node_safi (vty),
+ PEER_FLAG_REMOVE_PRIVATE_AS|
+ PEER_FLAG_REMOVE_PRIVATE_AS_ALL);
+}
+
+DEFUN (neighbor_remove_private_as_replace_as,
+ neighbor_remove_private_as_replace_as_cmd,
+ NEIGHBOR_CMD2 "remove-private-AS replace-AS",
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ "Remove private ASNs in outbound updates\n"
+ "Replace private ASNs with our ASN in outbound updates\n")
+{
+ peer_af_flag_unset_vty (vty, argv[0], bgp_node_afi (vty),
+ bgp_node_safi (vty),
+ PEER_FLAG_REMOVE_PRIVATE_AS_ALL);
+ return peer_af_flag_set_vty (vty, argv[0], bgp_node_afi (vty),
+ bgp_node_safi (vty),
+ PEER_FLAG_REMOVE_PRIVATE_AS|
+ PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE);
+}
+
+DEFUN (neighbor_remove_private_as_all_replace_as,
+ neighbor_remove_private_as_all_replace_as_cmd,
+ NEIGHBOR_CMD2 "remove-private-AS all replace-AS",
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ "Remove private ASNs in outbound updates\n"
+ "Apply to all AS numbers"
+ "Replace private ASNs with our ASN in outbound updates\n")
+{
+ return peer_af_flag_set_vty (vty, argv[0], bgp_node_afi (vty),
+ bgp_node_safi (vty),
+ PEER_FLAG_REMOVE_PRIVATE_AS|
+ PEER_FLAG_REMOVE_PRIVATE_AS_ALL|
+ PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE);
+}
+
DEFUN (no_neighbor_remove_private_as,
no_neighbor_remove_private_as_cmd,
NO_NEIGHBOR_CMD2 "remove-private-AS",
NO_STR
NEIGHBOR_STR
NEIGHBOR_ADDR_STR2
- "Remove private AS number from outbound updates\n")
+ "Remove private ASNs in outbound updates\n")
{
return peer_af_flag_unset_vty (vty, argv[0], bgp_node_afi (vty),
bgp_node_safi (vty),
- PEER_FLAG_REMOVE_PRIVATE_AS);
+ PEER_FLAG_REMOVE_PRIVATE_AS|
+ PEER_FLAG_REMOVE_PRIVATE_AS_ALL|
+ PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE);
}
+ALIAS (no_neighbor_remove_private_as,
+ no_neighbor_remove_private_as_all_cmd,
+ NO_NEIGHBOR_CMD2 "remove-private-AS all",
+ NO_STR
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ "Remove private ASNs in outbound updates\n"
+ "Apply to all AS numbers")
+
+ALIAS (no_neighbor_remove_private_as,
+ no_neighbor_remove_private_as_replace_as_cmd,
+ NO_NEIGHBOR_CMD2 "remove-private-AS replace-AS",
+ NO_STR
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ "Remove private ASNs in outbound updates\n"
+ "Replace private ASNs with our ASN in outbound updates\n")
+
+ALIAS (no_neighbor_remove_private_as,
+ no_neighbor_remove_private_as_all_replace_as_cmd,
+ NO_NEIGHBOR_CMD2 "remove-private-AS all replace-AS",
+ NO_STR
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ "Remove private ASNs in outbound updates\n"
+ "Apply to all AS numbers"
+ "Replace private ASNs with our ASN in outbound updates\n")
+
+
/* neighbor send-community. */
DEFUN (neighbor_send_community,
neighbor_send_community_cmd,
@@ -3090,6 +3705,9 @@ peer_update_source_vty (struct vty *vty, const char *peer_str,
if (! peer)
return CMD_WARNING;
+ if (peer->conf_if)
+ return CMD_WARNING;
+
if (source_str)
{
union sockunion su;
@@ -3539,6 +4157,54 @@ ALIAS (no_neighbor_advertise_interval,
"Minimum interval between sending BGP routing updates\n"
"time in seconds\n")
+/* Time to wait before processing route-map updates */
+DEFUN (bgp_set_route_map_delay_timer,
+ bgp_set_route_map_delay_timer_cmd,
+ "bgp route-map delay-timer <0-600>",
+ SET_STR
+ "BGP route-map delay timer\n"
+ "Time in secs to wait before processing route-map changes\n"
+ "0 disables the timer and no route updates happen when\n"
+ "route-maps change")
+{
+ u_int32_t rmap_delay_timer;
+ struct bgp *bgp;
+
+ bgp = vty->index;
+ if (argv[0])
+ {
+ VTY_GET_INTEGER_RANGE ("delay-timer", rmap_delay_timer, argv[0], 0, 600);
+ bgp->rmap_update_timer = rmap_delay_timer;
+
+ /* if the dynamic update handling is being disabled, and a timer is
+ * running, stop the timer and act as if the timer has already fired.
+ */
+ if (!rmap_delay_timer && bgp->t_rmap_update )
+ {
+ BGP_TIMER_OFF(bgp->t_rmap_update);
+ thread_execute (bm->master, bgp_route_map_update_timer, &bgp, 0);
+ }
+ return CMD_SUCCESS;
+ }
+ else
+ return CMD_WARNING;
+}
+
+DEFUN (no_bgp_set_route_map_delay_timer,
+ no_bgp_set_route_map_delay_timer_cmd,
+ "no bgp route-map delay-timer",
+ NO_STR
+ "Default BGP route-map delay timer\n"
+ "Reset to default time to wait for processing route-map changes")
+{
+ struct bgp *bgp;
+
+ bgp = vty->index;
+ bgp->rmap_update_timer = RMAP_DEFAULT_UPDATE_TIMER;
+
+ return CMD_SUCCESS;
+}
+
/* neighbor interface */
static int
peer_interface_vty (struct vty *vty, const char *ip_str, const char *str)
@@ -3547,7 +4213,7 @@ peer_interface_vty (struct vty *vty, const char *ip_str, const char *str)
struct peer *peer;
peer = peer_lookup_vty (vty, ip_str);
- if (! peer)
+ if (! peer || peer->conf_if)
return CMD_WARNING;
if (str)
@@ -4437,18 +5103,27 @@ bgp_clear (struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi,
struct listnode *node, *nnode;
/* Clear all neighbors. */
+ /*
+ * Pass along pointer to next node to peer_clear() when walking all nodes
+ * on the BGP instance as that may get freed if it is a doppelganger
+ */
if (sort == clear_all)
{
for (ALL_LIST_ELEMENTS (bgp->peer, node, nnode, peer))
{
if (stype == BGP_CLEAR_SOFT_NONE)
- ret = peer_clear (peer);
+ ret = peer_clear (peer, &nnode);
else
ret = peer_clear_soft (peer, afi, safi, stype);
if (ret < 0)
bgp_clear_vty_error (vty, peer, afi, safi, ret);
}
+
+ /* This is to apply read-only mode on this clear. */
+ if (stype == BGP_CLEAR_SOFT_NONE)
+ bgp->update_delay_over = 0;
+
return CMD_SUCCESS;
}
@@ -4461,19 +5136,26 @@ bgp_clear (struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi,
/* Make sockunion for lookup. */
ret = str2sockunion (arg, &su);
if (ret < 0)
- {
- vty_out (vty, "Malformed address: %s%s", arg, VTY_NEWLINE);
- return CMD_WARNING;
- }
- peer = peer_lookup (bgp, &su);
- if (! peer)
- {
- vty_out (vty, "%%BGP: Unknown neighbor - \"%s\"%s", arg, VTY_NEWLINE);
- return CMD_WARNING;
- }
+ {
+ peer = peer_lookup_by_conf_if (bgp, arg);
+ if (!peer)
+ {
+ vty_out (vty, "Malformed address or name: %s%s", arg, VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ }
+ else
+ {
+ peer = peer_lookup (bgp, &su);
+ if (! peer)
+ {
+ vty_out (vty, "%%BGP: Unknown neighbor - \"%s\"%s", arg, VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ }
if (stype == BGP_CLEAR_SOFT_NONE)
- ret = peer_clear (peer);
+ ret = peer_clear (peer, NULL);
else
ret = peer_clear_soft (peer, afi, safi, stype);
@@ -4499,7 +5181,7 @@ bgp_clear (struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi,
{
if (stype == BGP_CLEAR_SOFT_NONE)
{
- ret = peer_clear (peer);
+ ret = peer_clear (peer, NULL);
continue;
}
@@ -4522,7 +5204,7 @@ bgp_clear (struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi,
continue;
if (stype == BGP_CLEAR_SOFT_NONE)
- ret = peer_clear (peer);
+ ret = peer_clear (peer, &nnode);
else
ret = peer_clear_soft (peer, afi, safi, stype);
@@ -4546,7 +5228,7 @@ bgp_clear (struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi,
find = 1;
if (stype == BGP_CLEAR_SOFT_NONE)
- ret = peer_clear (peer);
+ ret = peer_clear (peer, &nnode);
else
ret = peer_clear_soft (peer, afi, safi, stype);
@@ -4562,6 +5244,87 @@ bgp_clear (struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi,
return CMD_SUCCESS;
}
+/* Recalculate bestpath and re-advertise a prefix */
+static int
+bgp_clear_prefix (struct vty *vty, char *view_name, const char *ip_str,
+ afi_t afi, safi_t safi, struct prefix_rd *prd)
+{
+ int ret;
+ struct prefix match;
+ struct bgp_node *rn;
+ struct bgp_node *rm;
+ struct bgp *bgp;
+ struct bgp_table *table;
+ struct bgp_table *rib;
+
+ /* BGP structure lookup. */
+ if (view_name)
+ {
+ bgp = bgp_lookup_by_name (view_name);
+ if (bgp == NULL)
+ {
+ vty_out (vty, "%% Can't find BGP view %s%s", view_name, VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ }
+ else
+ {
+ bgp = bgp_get_default ();
+ if (bgp == NULL)
+ {
+ vty_out (vty, "%% No BGP process is configured%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ }
+
+ /* Check IP address argument. */
+ ret = str2prefix (ip_str, &match);
+ if (! ret)
+ {
+ vty_out (vty, "%% address is malformed%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ match.family = afi2family (afi);
+ rib = bgp->rib[afi][safi];
+
+ if (safi == SAFI_MPLS_VPN)
+ {
+ for (rn = bgp_table_top (rib); rn; rn = bgp_route_next (rn))
+ {
+ if (prd && memcmp (rn->p.u.val, prd->val, 8) != 0)
+ continue;
+
+ if ((table = rn->info) != NULL)
+ {
+ if ((rm = bgp_node_match (table, &match)) != NULL)
+ {
+ if (rm->p.prefixlen == match.prefixlen)
+ {
+ SET_FLAG (rn->flags, BGP_NODE_USER_CLEAR);
+ bgp_process (bgp, rm, afi, safi);
+ }
+ bgp_unlock_node (rm);
+ }
+ }
+ }
+ }
+ else
+ {
+ if ((rn = bgp_node_match (rib, &match)) != NULL)
+ {
+ if (rn->p.prefixlen == match.prefixlen)
+ {
+ SET_FLAG (rn->flags, BGP_NODE_USER_CLEAR);
+ bgp_process (bgp, rn, afi, safi);
+ }
+ bgp_unlock_node (rn);
+ }
+ }
+
+ return CMD_SUCCESS;
+}
+
static int
bgp_clear_vty (struct vty *vty, const char *name, afi_t afi, safi_t safi,
enum clear_sort sort, enum bgp_clear_type stype,
@@ -4642,32 +5405,35 @@ ALIAS (clear_ip_bgp_all,
DEFUN (clear_ip_bgp_peer,
clear_ip_bgp_peer_cmd,
- "clear ip bgp (A.B.C.D|X:X::X:X)",
+ "clear ip bgp (A.B.C.D|X:X::X:X|WORD)",
CLEAR_STR
IP_STR
BGP_STR
"BGP neighbor IP address to clear\n"
- "BGP IPv6 neighbor to clear\n")
+ "BGP IPv6 neighbor to clear\n"
+ "BGP neighbor on interface to clear\n")
{
return bgp_clear_vty (vty, NULL, 0, 0, clear_peer, BGP_CLEAR_SOFT_NONE, argv[0]);
}
ALIAS (clear_ip_bgp_peer,
clear_bgp_peer_cmd,
- "clear bgp (A.B.C.D|X:X::X:X)",
+ "clear bgp (A.B.C.D|X:X::X:X|WORD)",
CLEAR_STR
BGP_STR
"BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n")
+ "BGP IPv6 neighbor to clear\n"
+ "BGP neighbor on interface to clear\n")
ALIAS (clear_ip_bgp_peer,
clear_bgp_ipv6_peer_cmd,
- "clear bgp ipv6 (A.B.C.D|X:X::X:X)",
+ "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 IPv6 neighbor to clear\n"
+ "BGP neighbor on interface to clear\n")
DEFUN (clear_ip_bgp_peer_group,
clear_ip_bgp_peer_group_cmd,
@@ -4724,6 +5490,27 @@ ALIAS (clear_ip_bgp_external,
"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")
+{
+ return bgp_clear_prefix (vty, NULL, argv[0], AFI_IP, SAFI_UNICAST, NULL);
+}
+
+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")
+
+
DEFUN (clear_ip_bgp_as,
clear_ip_bgp_as_cmd,
"clear ip bgp " CMD_AS_RANGE,
@@ -4758,8 +5545,8 @@ DEFUN (clear_ip_bgp_all_soft_out,
IP_STR
BGP_STR
"Clear all peers\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
{
if (argc == 1)
return bgp_clear_vty (vty, argv[0], AFI_IP, SAFI_UNICAST, clear_all,
@@ -4776,7 +5563,7 @@ ALIAS (clear_ip_bgp_all_soft_out,
IP_STR
BGP_STR
"Clear all peers\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
ALIAS (clear_ip_bgp_all_soft_out,
clear_ip_bgp_instance_all_soft_out_cmd,
@@ -4787,8 +5574,8 @@ ALIAS (clear_ip_bgp_all_soft_out,
"BGP view\n"
"view name\n"
"Clear all peers\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
DEFUN (clear_ip_bgp_all_ipv4_soft_out,
clear_ip_bgp_all_ipv4_soft_out_cmd,
@@ -4800,8 +5587,8 @@ DEFUN (clear_ip_bgp_all_ipv4_soft_out,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\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,
@@ -4821,7 +5608,7 @@ ALIAS (clear_ip_bgp_all_ipv4_soft_out,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
DEFUN (clear_ip_bgp_instance_all_ipv4_soft_out,
clear_ip_bgp_instance_all_ipv4_soft_out_cmd,
@@ -4835,7 +5622,7 @@ DEFUN (clear_ip_bgp_instance_all_ipv4_soft_out,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
{
if (strncmp (argv[1], "m", 1) == 0)
return bgp_clear_vty (vty, argv[0], AFI_IP, SAFI_MULTICAST, clear_all,
@@ -4854,8 +5641,8 @@ DEFUN (clear_ip_bgp_all_vpnv4_soft_out,
"Clear all peers\n"
"Address family\n"
"Address Family Modifier\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\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);
@@ -4870,7 +5657,7 @@ ALIAS (clear_ip_bgp_all_vpnv4_soft_out,
"Clear all peers\n"
"Address family\n"
"Address Family Modifier\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
DEFUN (clear_ip_bgp_all_encap_soft_out,
clear_ip_bgp_all_encap_soft_out_cmd,
@@ -4905,8 +5692,8 @@ DEFUN (clear_bgp_all_soft_out,
CLEAR_STR
BGP_STR
"Clear all peers\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
{
if (argc == 1)
return bgp_clear_vty (vty, argv[0], AFI_IP6, SAFI_UNICAST, clear_all,
@@ -4924,8 +5711,8 @@ ALIAS (clear_bgp_all_soft_out,
"BGP view\n"
"view name\n"
"Clear all peers\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
ALIAS (clear_bgp_all_soft_out,
clear_bgp_all_out_cmd,
@@ -4933,7 +5720,7 @@ ALIAS (clear_bgp_all_soft_out,
CLEAR_STR
BGP_STR
"Clear all peers\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
ALIAS (clear_bgp_all_soft_out,
clear_bgp_ipv6_all_soft_out_cmd,
@@ -4942,8 +5729,8 @@ ALIAS (clear_bgp_all_soft_out,
BGP_STR
"Address family\n"
"Clear all peers\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
ALIAS (clear_bgp_all_soft_out,
clear_bgp_ipv6_all_out_cmd,
@@ -4952,7 +5739,23 @@ ALIAS (clear_bgp_all_soft_out,
BGP_STR
"Address family\n"
"Clear all peers\n"
- "Soft reconfig outbound update\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_ip_bgp_peer_soft_out,
clear_ip_bgp_peer_soft_out_cmd,
@@ -4961,8 +5764,8 @@ DEFUN (clear_ip_bgp_peer_soft_out,
IP_STR
BGP_STR
"BGP neighbor address to clear\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer,
BGP_CLEAR_SOFT_OUT, argv[0]);
@@ -4975,7 +5778,7 @@ ALIAS (clear_ip_bgp_peer_soft_out,
IP_STR
BGP_STR
"BGP neighbor address to clear\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
DEFUN (clear_ip_bgp_peer_ipv4_soft_out,
clear_ip_bgp_peer_ipv4_soft_out_cmd,
@@ -4987,8 +5790,8 @@ DEFUN (clear_ip_bgp_peer_ipv4_soft_out,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\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,
@@ -5008,7 +5811,7 @@ ALIAS (clear_ip_bgp_peer_ipv4_soft_out,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
DEFUN (clear_ip_bgp_peer_vpnv4_soft_out,
clear_ip_bgp_peer_vpnv4_soft_out_cmd,
@@ -5019,8 +5822,8 @@ DEFUN (clear_ip_bgp_peer_vpnv4_soft_out,
"BGP neighbor address to clear\n"
"Address family\n"
"Address Family Modifier\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\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]);
@@ -5035,7 +5838,7 @@ ALIAS (clear_ip_bgp_peer_vpnv4_soft_out,
"BGP neighbor address to clear\n"
"Address family\n"
"Address Family Modifier\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
DEFUN (clear_ip_bgp_peer_encap_soft_out,
clear_ip_bgp_peer_encap_soft_out_cmd,
@@ -5066,13 +5869,14 @@ ALIAS (clear_ip_bgp_peer_encap_soft_out,
DEFUN (clear_bgp_peer_soft_out,
clear_bgp_peer_soft_out_cmd,
- "clear bgp (A.B.C.D|X:X::X:X) soft out",
+ "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"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ "BGP neighbor on interface to clear\n"
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_peer,
BGP_CLEAR_SOFT_OUT, argv[0]);
@@ -5080,33 +5884,36 @@ DEFUN (clear_bgp_peer_soft_out,
ALIAS (clear_bgp_peer_soft_out,
clear_bgp_ipv6_peer_soft_out_cmd,
- "clear bgp ipv6 (A.B.C.D|X:X::X:X) soft out",
+ "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"
- "Soft reconfig\n"
- "Soft reconfig outbound update\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) out",
+ "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"
- "Soft reconfig outbound update\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) out",
+ "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"
- "Soft reconfig outbound update\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,
@@ -5116,8 +5923,8 @@ DEFUN (clear_ip_bgp_peer_group_soft_out,
BGP_STR
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group,
BGP_CLEAR_SOFT_OUT, argv[0]);
@@ -5131,7 +5938,7 @@ ALIAS (clear_ip_bgp_peer_group_soft_out,
BGP_STR
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
DEFUN (clear_ip_bgp_peer_group_ipv4_soft_out,
clear_ip_bgp_peer_group_ipv4_soft_out_cmd,
@@ -5144,8 +5951,8 @@ DEFUN (clear_ip_bgp_peer_group_ipv4_soft_out,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\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,
@@ -5166,7 +5973,7 @@ ALIAS (clear_ip_bgp_peer_group_ipv4_soft_out,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
DEFUN (clear_bgp_peer_group_soft_out,
clear_bgp_peer_group_soft_out_cmd,
@@ -5175,8 +5982,8 @@ DEFUN (clear_bgp_peer_group_soft_out,
BGP_STR
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_group,
BGP_CLEAR_SOFT_OUT, argv[0]);
@@ -5190,8 +5997,8 @@ ALIAS (clear_bgp_peer_group_soft_out,
"Address family\n"
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
ALIAS (clear_bgp_peer_group_soft_out,
clear_bgp_peer_group_out_cmd,
@@ -5200,7 +6007,7 @@ ALIAS (clear_bgp_peer_group_soft_out,
BGP_STR
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
ALIAS (clear_bgp_peer_group_soft_out,
clear_bgp_ipv6_peer_group_out_cmd,
@@ -5210,7 +6017,7 @@ ALIAS (clear_bgp_peer_group_soft_out,
"Address family\n"
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
DEFUN (clear_ip_bgp_external_soft_out,
clear_ip_bgp_external_soft_out_cmd,
@@ -5219,8 +6026,8 @@ DEFUN (clear_ip_bgp_external_soft_out,
IP_STR
BGP_STR
"Clear all external peers\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_external,
BGP_CLEAR_SOFT_OUT, NULL);
@@ -5233,7 +6040,7 @@ ALIAS (clear_ip_bgp_external_soft_out,
IP_STR
BGP_STR
"Clear all external peers\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
DEFUN (clear_ip_bgp_external_ipv4_soft_out,
clear_ip_bgp_external_ipv4_soft_out_cmd,
@@ -5245,8 +6052,8 @@ DEFUN (clear_ip_bgp_external_ipv4_soft_out,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\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,
@@ -5266,7 +6073,7 @@ ALIAS (clear_ip_bgp_external_ipv4_soft_out,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
DEFUN (clear_bgp_external_soft_out,
clear_bgp_external_soft_out_cmd,
@@ -5274,8 +6081,8 @@ DEFUN (clear_bgp_external_soft_out,
CLEAR_STR
BGP_STR
"Clear all external peers\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_external,
BGP_CLEAR_SOFT_OUT, NULL);
@@ -5288,8 +6095,8 @@ ALIAS (clear_bgp_external_soft_out,
BGP_STR
"Address family\n"
"Clear all external peers\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
ALIAS (clear_bgp_external_soft_out,
clear_bgp_external_out_cmd,
@@ -5297,7 +6104,7 @@ ALIAS (clear_bgp_external_soft_out,
CLEAR_STR
BGP_STR
"Clear all external peers\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
ALIAS (clear_bgp_external_soft_out,
clear_bgp_ipv6_external_out_cmd,
@@ -5306,7 +6113,7 @@ ALIAS (clear_bgp_external_soft_out,
BGP_STR
"Address family\n"
"Clear all external peers\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
DEFUN (clear_ip_bgp_as_soft_out,
clear_ip_bgp_as_soft_out_cmd,
@@ -5315,8 +6122,8 @@ DEFUN (clear_ip_bgp_as_soft_out,
IP_STR
BGP_STR
"Clear peers with the AS number\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as,
BGP_CLEAR_SOFT_OUT, argv[0]);
@@ -5329,7 +6136,7 @@ ALIAS (clear_ip_bgp_as_soft_out,
IP_STR
BGP_STR
"Clear peers with the AS number\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
DEFUN (clear_ip_bgp_as_ipv4_soft_out,
clear_ip_bgp_as_ipv4_soft_out_cmd,
@@ -5341,8 +6148,8 @@ DEFUN (clear_ip_bgp_as_ipv4_soft_out,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\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,
@@ -5362,7 +6169,7 @@ ALIAS (clear_ip_bgp_as_ipv4_soft_out,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
DEFUN (clear_ip_bgp_as_vpnv4_soft_out,
clear_ip_bgp_as_vpnv4_soft_out_cmd,
@@ -5373,8 +6180,8 @@ DEFUN (clear_ip_bgp_as_vpnv4_soft_out,
"Clear peers with the AS number\n"
"Address family\n"
"Address Family modifier\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\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]);
@@ -5389,7 +6196,7 @@ ALIAS (clear_ip_bgp_as_vpnv4_soft_out,
"Clear peers with the AS number\n"
"Address family\n"
"Address Family modifier\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
DEFUN (clear_ip_bgp_as_encap_soft_out,
clear_ip_bgp_as_encap_soft_out_cmd,
@@ -5424,8 +6231,8 @@ DEFUN (clear_bgp_as_soft_out,
CLEAR_STR
BGP_STR
"Clear peers with the AS number\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_as,
BGP_CLEAR_SOFT_OUT, argv[0]);
@@ -5438,8 +6245,8 @@ ALIAS (clear_bgp_as_soft_out,
BGP_STR
"Address family\n"
"Clear peers with the AS number\n"
- "Soft reconfig\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_OUT_STR)
ALIAS (clear_bgp_as_soft_out,
clear_bgp_as_out_cmd,
@@ -5447,7 +6254,7 @@ ALIAS (clear_bgp_as_soft_out,
CLEAR_STR
BGP_STR
"Clear peers with the AS number\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
ALIAS (clear_bgp_as_soft_out,
clear_bgp_ipv6_as_out_cmd,
@@ -5456,7 +6263,7 @@ ALIAS (clear_bgp_as_soft_out,
BGP_STR
"Address family\n"
"Clear peers with the AS number\n"
- "Soft reconfig outbound update\n")
+ BGP_SOFT_OUT_STR)
/* Inbound soft-reconfiguration */
DEFUN (clear_ip_bgp_all_soft_in,
@@ -5466,8 +6273,8 @@ DEFUN (clear_ip_bgp_all_soft_in,
IP_STR
BGP_STR
"Clear all peers\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
{
if (argc == 1)
return bgp_clear_vty (vty, argv[0], AFI_IP, SAFI_UNICAST, clear_all,
@@ -5486,8 +6293,8 @@ ALIAS (clear_ip_bgp_all_soft_in,
"BGP view\n"
"view name\n"
"Clear all peers\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
ALIAS (clear_ip_bgp_all_soft_in,
clear_ip_bgp_all_in_cmd,
@@ -5496,7 +6303,7 @@ ALIAS (clear_ip_bgp_all_soft_in,
IP_STR
BGP_STR
"Clear all peers\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_ip_bgp_all_in_prefix_filter,
clear_ip_bgp_all_in_prefix_filter_cmd,
@@ -5505,7 +6312,7 @@ DEFUN (clear_ip_bgp_all_in_prefix_filter,
IP_STR
BGP_STR
"Clear all peers\n"
- "Soft reconfig inbound update\n"
+ BGP_SOFT_IN_STR
"Push out prefix-list ORF and do inbound soft reconfig\n")
{
if (argc== 1)
@@ -5525,7 +6332,7 @@ ALIAS (clear_ip_bgp_all_in_prefix_filter,
"BGP view\n"
"view name\n"
"Clear all peers\n"
- "Soft reconfig inbound update\n"
+ BGP_SOFT_IN_STR
"Push out prefix-list ORF and do inbound soft reconfig\n")
@@ -5539,8 +6346,8 @@ DEFUN (clear_ip_bgp_all_ipv4_soft_in,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\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,
@@ -5560,7 +6367,7 @@ ALIAS (clear_ip_bgp_all_ipv4_soft_in,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_ip_bgp_instance_all_ipv4_soft_in,
clear_ip_bgp_instance_all_ipv4_soft_in_cmd,
@@ -5574,8 +6381,8 @@ DEFUN (clear_ip_bgp_instance_all_ipv4_soft_in,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
{
if (strncmp (argv[1], "m", 1) == 0)
return bgp_clear_vty (vty, argv[0], AFI_IP, SAFI_MULTICAST, clear_all,
@@ -5595,7 +6402,7 @@ DEFUN (clear_ip_bgp_all_ipv4_in_prefix_filter,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig inbound update\n"
+ BGP_SOFT_IN_STR
"Push out prefix-list ORF and do inbound soft reconfig\n")
{
if (strncmp (argv[0], "m", 1) == 0)
@@ -5616,7 +6423,7 @@ DEFUN (clear_ip_bgp_instance_all_ipv4_in_prefix_filter,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig inbound update\n"
+ BGP_SOFT_IN_STR
"Push out prefix-list ORF and do inbound soft reconfig\n")
{
if (strncmp (argv[1], "m", 1) == 0)
@@ -5636,8 +6443,8 @@ DEFUN (clear_ip_bgp_all_vpnv4_soft_in,
"Clear all peers\n"
"Address family\n"
"Address Family Modifier\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\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);
@@ -5652,7 +6459,7 @@ ALIAS (clear_ip_bgp_all_vpnv4_soft_in,
"Clear all peers\n"
"Address family\n"
"Address Family Modifier\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_ip_bgp_all_encap_soft_in,
clear_ip_bgp_all_encap_soft_in_cmd,
@@ -5687,8 +6494,8 @@ DEFUN (clear_bgp_all_soft_in,
CLEAR_STR
BGP_STR
"Clear all peers\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
{
if (argc == 1)
return bgp_clear_vty (vty, argv[0], AFI_IP6, SAFI_UNICAST, clear_all,
@@ -5706,8 +6513,8 @@ ALIAS (clear_bgp_all_soft_in,
"BGP view\n"
"view name\n"
"Clear all peers\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
ALIAS (clear_bgp_all_soft_in,
clear_bgp_ipv6_all_soft_in_cmd,
@@ -5716,8 +6523,8 @@ ALIAS (clear_bgp_all_soft_in,
BGP_STR
"Address family\n"
"Clear all peers\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
ALIAS (clear_bgp_all_soft_in,
clear_bgp_all_in_cmd,
@@ -5725,7 +6532,7 @@ ALIAS (clear_bgp_all_soft_in,
CLEAR_STR
BGP_STR
"Clear all peers\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
ALIAS (clear_bgp_all_soft_in,
clear_bgp_ipv6_all_in_cmd,
@@ -5734,7 +6541,7 @@ ALIAS (clear_bgp_all_soft_in,
BGP_STR
"Address family\n"
"Clear all peers\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_bgp_all_in_prefix_filter,
clear_bgp_all_in_prefix_filter_cmd,
@@ -5742,7 +6549,7 @@ DEFUN (clear_bgp_all_in_prefix_filter,
CLEAR_STR
BGP_STR
"Clear all peers\n"
- "Soft reconfig inbound update\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,
@@ -5756,7 +6563,7 @@ ALIAS (clear_bgp_all_in_prefix_filter,
BGP_STR
"Address family\n"
"Clear all peers\n"
- "Soft reconfig inbound update\n"
+ BGP_SOFT_IN_STR
"Push out prefix-list ORF and do inbound soft reconfig\n")
DEFUN (clear_ip_bgp_peer_soft_in,
@@ -5766,8 +6573,8 @@ DEFUN (clear_ip_bgp_peer_soft_in,
IP_STR
BGP_STR
"BGP neighbor address to clear\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer,
BGP_CLEAR_SOFT_IN, argv[0]);
@@ -5780,7 +6587,7 @@ ALIAS (clear_ip_bgp_peer_soft_in,
IP_STR
BGP_STR
"BGP neighbor address to clear\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_ip_bgp_peer_in_prefix_filter,
clear_ip_bgp_peer_in_prefix_filter_cmd,
@@ -5789,7 +6596,7 @@ DEFUN (clear_ip_bgp_peer_in_prefix_filter,
IP_STR
BGP_STR
"BGP neighbor address to clear\n"
- "Soft reconfig inbound update\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,
@@ -5806,8 +6613,8 @@ DEFUN (clear_ip_bgp_peer_ipv4_soft_in,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\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,
@@ -5827,7 +6634,7 @@ ALIAS (clear_ip_bgp_peer_ipv4_soft_in,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_ip_bgp_peer_ipv4_in_prefix_filter,
clear_ip_bgp_peer_ipv4_in_prefix_filter_cmd,
@@ -5839,7 +6646,7 @@ DEFUN (clear_ip_bgp_peer_ipv4_in_prefix_filter,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig inbound update\n"
+ BGP_SOFT_IN_STR
"Push out the existing ORF prefix-list\n")
{
if (strncmp (argv[1], "m", 1) == 0)
@@ -5859,8 +6666,8 @@ DEFUN (clear_ip_bgp_peer_vpnv4_soft_in,
"BGP neighbor address to clear\n"
"Address family\n"
"Address Family Modifier\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\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]);
@@ -5875,7 +6682,7 @@ ALIAS (clear_ip_bgp_peer_vpnv4_soft_in,
"BGP neighbor address to clear\n"
"Address family\n"
"Address Family Modifier\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_ip_bgp_peer_encap_soft_in,
clear_ip_bgp_peer_encap_soft_in_cmd,
@@ -5906,13 +6713,14 @@ ALIAS (clear_ip_bgp_peer_encap_soft_in,
DEFUN (clear_bgp_peer_soft_in,
clear_bgp_peer_soft_in_cmd,
- "clear bgp (A.B.C.D|X:X::X:X) soft in",
+ "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"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ "BGP neighbor on interface to clear\n"
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_peer,
BGP_CLEAR_SOFT_IN, argv[0]);
@@ -5920,42 +6728,46 @@ DEFUN (clear_bgp_peer_soft_in,
ALIAS (clear_bgp_peer_soft_in,
clear_bgp_ipv6_peer_soft_in_cmd,
- "clear bgp ipv6 (A.B.C.D|X:X::X:X) soft in",
+ "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"
- "Soft reconfig\n"
- "Soft reconfig inbound update\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) in",
+ "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"
- "Soft reconfig inbound update\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) in",
+ "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"
- "Soft reconfig inbound update\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) in prefix-filter",
+ "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"
- "Soft reconfig inbound update\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,
@@ -5964,13 +6776,14 @@ DEFUN (clear_bgp_peer_in_prefix_filter,
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) in prefix-filter",
+ "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"
- "Soft reconfig inbound update\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,
@@ -5981,8 +6794,8 @@ DEFUN (clear_ip_bgp_peer_group_soft_in,
BGP_STR
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group,
BGP_CLEAR_SOFT_IN, argv[0]);
@@ -5996,7 +6809,7 @@ ALIAS (clear_ip_bgp_peer_group_soft_in,
BGP_STR
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_ip_bgp_peer_group_in_prefix_filter,
clear_ip_bgp_peer_group_in_prefix_filter_cmd,
@@ -6006,7 +6819,7 @@ DEFUN (clear_ip_bgp_peer_group_in_prefix_filter,
BGP_STR
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig inbound update\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,
@@ -6024,8 +6837,8 @@ DEFUN (clear_ip_bgp_peer_group_ipv4_soft_in,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\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,
@@ -6046,7 +6859,7 @@ ALIAS (clear_ip_bgp_peer_group_ipv4_soft_in,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig inbound update\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,
@@ -6059,7 +6872,7 @@ DEFUN (clear_ip_bgp_peer_group_ipv4_in_prefix_filter,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig inbound update\n"
+ BGP_SOFT_IN_STR
"Push out prefix-list ORF and do inbound soft reconfig\n")
{
if (strncmp (argv[1], "m", 1) == 0)
@@ -6077,8 +6890,8 @@ DEFUN (clear_bgp_peer_group_soft_in,
BGP_STR
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_group,
BGP_CLEAR_SOFT_IN, argv[0]);
@@ -6092,8 +6905,8 @@ ALIAS (clear_bgp_peer_group_soft_in,
"Address family\n"
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
ALIAS (clear_bgp_peer_group_soft_in,
clear_bgp_peer_group_in_cmd,
@@ -6102,7 +6915,7 @@ ALIAS (clear_bgp_peer_group_soft_in,
BGP_STR
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
ALIAS (clear_bgp_peer_group_soft_in,
clear_bgp_ipv6_peer_group_in_cmd,
@@ -6112,7 +6925,7 @@ ALIAS (clear_bgp_peer_group_soft_in,
"Address family\n"
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_bgp_peer_group_in_prefix_filter,
clear_bgp_peer_group_in_prefix_filter_cmd,
@@ -6121,7 +6934,7 @@ DEFUN (clear_bgp_peer_group_in_prefix_filter,
BGP_STR
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig inbound update\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,
@@ -6136,7 +6949,7 @@ ALIAS (clear_bgp_peer_group_in_prefix_filter,
"Address family\n"
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig inbound update\n"
+ BGP_SOFT_IN_STR
"Push out prefix-list ORF and do inbound soft reconfig\n")
DEFUN (clear_ip_bgp_external_soft_in,
@@ -6146,8 +6959,8 @@ DEFUN (clear_ip_bgp_external_soft_in,
IP_STR
BGP_STR
"Clear all external peers\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_external,
BGP_CLEAR_SOFT_IN, NULL);
@@ -6160,7 +6973,7 @@ ALIAS (clear_ip_bgp_external_soft_in,
IP_STR
BGP_STR
"Clear all external peers\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_ip_bgp_external_in_prefix_filter,
clear_ip_bgp_external_in_prefix_filter_cmd,
@@ -6169,7 +6982,7 @@ DEFUN (clear_ip_bgp_external_in_prefix_filter,
IP_STR
BGP_STR
"Clear all external peers\n"
- "Soft reconfig inbound update\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,
@@ -6186,8 +6999,8 @@ DEFUN (clear_ip_bgp_external_ipv4_soft_in,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\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,
@@ -6207,7 +7020,7 @@ ALIAS (clear_ip_bgp_external_ipv4_soft_in,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_ip_bgp_external_ipv4_in_prefix_filter,
clear_ip_bgp_external_ipv4_in_prefix_filter_cmd,
@@ -6219,7 +7032,7 @@ DEFUN (clear_ip_bgp_external_ipv4_in_prefix_filter,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig inbound update\n"
+ BGP_SOFT_IN_STR
"Push out prefix-list ORF and do inbound soft reconfig\n")
{
if (strncmp (argv[0], "m", 1) == 0)
@@ -6236,8 +7049,8 @@ DEFUN (clear_bgp_external_soft_in,
CLEAR_STR
BGP_STR
"Clear all external peers\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_external,
BGP_CLEAR_SOFT_IN, NULL);
@@ -6250,8 +7063,8 @@ ALIAS (clear_bgp_external_soft_in,
BGP_STR
"Address family\n"
"Clear all external peers\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
ALIAS (clear_bgp_external_soft_in,
clear_bgp_external_in_cmd,
@@ -6259,7 +7072,7 @@ ALIAS (clear_bgp_external_soft_in,
CLEAR_STR
BGP_STR
"Clear all external peers\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
ALIAS (clear_bgp_external_soft_in,
clear_bgp_ipv6_external_in_cmd,
@@ -6268,7 +7081,7 @@ ALIAS (clear_bgp_external_soft_in,
BGP_STR
"Address family\n"
"Clear all external peers\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_bgp_external_in_prefix_filter,
clear_bgp_external_in_prefix_filter_cmd,
@@ -6276,7 +7089,7 @@ DEFUN (clear_bgp_external_in_prefix_filter,
CLEAR_STR
BGP_STR
"Clear all external peers\n"
- "Soft reconfig inbound update\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,
@@ -6290,7 +7103,7 @@ ALIAS (clear_bgp_external_in_prefix_filter,
BGP_STR
"Address family\n"
"Clear all external peers\n"
- "Soft reconfig inbound update\n"
+ BGP_SOFT_IN_STR
"Push out prefix-list ORF and do inbound soft reconfig\n")
DEFUN (clear_ip_bgp_as_soft_in,
@@ -6300,8 +7113,8 @@ DEFUN (clear_ip_bgp_as_soft_in,
IP_STR
BGP_STR
"Clear peers with the AS number\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as,
BGP_CLEAR_SOFT_IN, argv[0]);
@@ -6314,7 +7127,7 @@ ALIAS (clear_ip_bgp_as_soft_in,
IP_STR
BGP_STR
"Clear peers with the AS number\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_ip_bgp_as_in_prefix_filter,
clear_ip_bgp_as_in_prefix_filter_cmd,
@@ -6323,7 +7136,7 @@ DEFUN (clear_ip_bgp_as_in_prefix_filter,
IP_STR
BGP_STR
"Clear peers with the AS number\n"
- "Soft reconfig inbound update\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,
@@ -6340,8 +7153,8 @@ DEFUN (clear_ip_bgp_as_ipv4_soft_in,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\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,
@@ -6361,7 +7174,7 @@ ALIAS (clear_ip_bgp_as_ipv4_soft_in,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_ip_bgp_as_ipv4_in_prefix_filter,
clear_ip_bgp_as_ipv4_in_prefix_filter_cmd,
@@ -6373,7 +7186,7 @@ DEFUN (clear_ip_bgp_as_ipv4_in_prefix_filter,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig inbound update\n"
+ BGP_SOFT_IN_STR
"Push out prefix-list ORF and do inbound soft reconfig\n")
{
if (strncmp (argv[1], "m", 1) == 0)
@@ -6393,8 +7206,8 @@ DEFUN (clear_ip_bgp_as_vpnv4_soft_in,
"Clear peers with the AS number\n"
"Address family\n"
"Address Family modifier\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\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]);
@@ -6409,7 +7222,7 @@ ALIAS (clear_ip_bgp_as_vpnv4_soft_in,
"Clear peers with the AS number\n"
"Address family\n"
"Address Family modifier\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_ip_bgp_as_encap_soft_in,
clear_ip_bgp_as_encap_soft_in_cmd,
@@ -6444,8 +7257,8 @@ DEFUN (clear_bgp_as_soft_in,
CLEAR_STR
BGP_STR
"Clear peers with the AS number\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_as,
BGP_CLEAR_SOFT_IN, argv[0]);
@@ -6458,8 +7271,8 @@ ALIAS (clear_bgp_as_soft_in,
BGP_STR
"Address family\n"
"Clear peers with the AS number\n"
- "Soft reconfig\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_STR
+ BGP_SOFT_IN_STR)
ALIAS (clear_bgp_as_soft_in,
clear_bgp_as_in_cmd,
@@ -6467,7 +7280,7 @@ ALIAS (clear_bgp_as_soft_in,
CLEAR_STR
BGP_STR
"Clear peers with the AS number\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
ALIAS (clear_bgp_as_soft_in,
clear_bgp_ipv6_as_in_cmd,
@@ -6476,7 +7289,7 @@ ALIAS (clear_bgp_as_soft_in,
BGP_STR
"Address family\n"
"Clear peers with the AS number\n"
- "Soft reconfig inbound update\n")
+ BGP_SOFT_IN_STR)
DEFUN (clear_bgp_as_in_prefix_filter,
clear_bgp_as_in_prefix_filter_cmd,
@@ -6484,7 +7297,7 @@ DEFUN (clear_bgp_as_in_prefix_filter,
CLEAR_STR
BGP_STR
"Clear peers with the AS number\n"
- "Soft reconfig inbound update\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,
@@ -6498,7 +7311,7 @@ ALIAS (clear_bgp_as_in_prefix_filter,
BGP_STR
"Address family\n"
"Clear peers with the AS number\n"
- "Soft reconfig inbound update\n"
+ BGP_SOFT_IN_STR
"Push out prefix-list ORF and do inbound soft reconfig\n")
/* Both soft-reconfiguration */
@@ -6509,7 +7322,7 @@ DEFUN (clear_ip_bgp_all_soft,
IP_STR
BGP_STR
"Clear all peers\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
if (argc == 1)
return bgp_clear_vty (vty, argv[0], AFI_IP, SAFI_UNICAST, clear_all,
@@ -6528,7 +7341,7 @@ ALIAS (clear_ip_bgp_all_soft,
"BGP view\n"
"view name\n"
"Clear all peers\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
DEFUN (clear_ip_bgp_all_ipv4_soft,
@@ -6541,7 +7354,7 @@ DEFUN (clear_ip_bgp_all_ipv4_soft,
"Address family\n"
"Address Family Modifier\n"
"Address Family Modifier\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
if (strncmp (argv[0], "m", 1) == 0)
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_all,
@@ -6563,7 +7376,7 @@ DEFUN (clear_ip_bgp_instance_all_ipv4_soft,
"Address family\n"
"Address Family Modifier\n"
"Address Family Modifier\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
if (strncmp (argv[1], "m", 1) == 0)
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_all,
@@ -6582,7 +7395,7 @@ DEFUN (clear_ip_bgp_all_vpnv4_soft,
"Clear all peers\n"
"Address family\n"
"Address Family Modifier\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_all,
BGP_CLEAR_SOFT_BOTH, argv[0]);
@@ -6609,7 +7422,7 @@ DEFUN (clear_bgp_all_soft,
CLEAR_STR
BGP_STR
"Clear all peers\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
if (argc == 1)
return bgp_clear_vty (vty, argv[0], AFI_IP6, SAFI_UNICAST, clear_all,
@@ -6627,7 +7440,7 @@ ALIAS (clear_bgp_all_soft,
"BGP view\n"
"view name\n"
"Clear all peers\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
ALIAS (clear_bgp_all_soft,
clear_bgp_ipv6_all_soft_cmd,
@@ -6636,7 +7449,7 @@ ALIAS (clear_bgp_all_soft,
BGP_STR
"Address family\n"
"Clear all peers\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
DEFUN (clear_ip_bgp_peer_soft,
clear_ip_bgp_peer_soft_cmd,
@@ -6645,7 +7458,7 @@ DEFUN (clear_ip_bgp_peer_soft,
IP_STR
BGP_STR
"BGP neighbor address to clear\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer,
BGP_CLEAR_SOFT_BOTH, argv[0]);
@@ -6661,7 +7474,7 @@ DEFUN (clear_ip_bgp_peer_ipv4_soft,
"Address family\n"
"Address Family Modifier\n"
"Address Family Modifier\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
if (strncmp (argv[1], "m", 1) == 0)
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_peer,
@@ -6680,7 +7493,7 @@ DEFUN (clear_ip_bgp_peer_vpnv4_soft,
"BGP neighbor address to clear\n"
"Address family\n"
"Address Family Modifier\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_peer,
BGP_CLEAR_SOFT_BOTH, argv[0]);
@@ -6703,12 +7516,13 @@ DEFUN (clear_ip_bgp_peer_encap_soft,
DEFUN (clear_bgp_peer_soft,
clear_bgp_peer_soft_cmd,
- "clear bgp (A.B.C.D|X:X::X:X) soft",
+ "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"
- "Soft reconfig\n")
+ "BGP neighbor on interface to clear\n"
+ BGP_SOFT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_peer,
BGP_CLEAR_SOFT_BOTH, argv[0]);
@@ -6716,13 +7530,14 @@ DEFUN (clear_bgp_peer_soft,
ALIAS (clear_bgp_peer_soft,
clear_bgp_ipv6_peer_soft_cmd,
- "clear bgp ipv6 (A.B.C.D|X:X::X:X) soft",
+ "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"
- "Soft reconfig\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,
@@ -6732,7 +7547,7 @@ DEFUN (clear_ip_bgp_peer_group_soft,
BGP_STR
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group,
BGP_CLEAR_SOFT_BOTH, argv[0]);
@@ -6749,7 +7564,7 @@ DEFUN (clear_ip_bgp_peer_group_ipv4_soft,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
if (strncmp (argv[1], "m", 1) == 0)
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_group,
@@ -6766,7 +7581,7 @@ DEFUN (clear_bgp_peer_group_soft,
BGP_STR
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_group,
BGP_CLEAR_SOFT_BOTH, argv[0]);
@@ -6780,7 +7595,7 @@ ALIAS (clear_bgp_peer_group_soft,
"Address family\n"
"Clear all members of peer-group\n"
"BGP peer-group name\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
DEFUN (clear_ip_bgp_external_soft,
clear_ip_bgp_external_soft_cmd,
@@ -6789,7 +7604,7 @@ DEFUN (clear_ip_bgp_external_soft,
IP_STR
BGP_STR
"Clear all external peers\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_external,
BGP_CLEAR_SOFT_BOTH, NULL);
@@ -6805,7 +7620,7 @@ DEFUN (clear_ip_bgp_external_ipv4_soft,
"Address family\n"
"Address Family modifier\n"
"Address Family modifier\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
if (strncmp (argv[0], "m", 1) == 0)
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_external,
@@ -6821,7 +7636,7 @@ DEFUN (clear_bgp_external_soft,
CLEAR_STR
BGP_STR
"Clear all external peers\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_external,
BGP_CLEAR_SOFT_BOTH, NULL);
@@ -6834,7 +7649,7 @@ ALIAS (clear_bgp_external_soft,
BGP_STR
"Address family\n"
"Clear all external peers\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
DEFUN (clear_ip_bgp_as_soft,
clear_ip_bgp_as_soft_cmd,
@@ -6843,7 +7658,7 @@ DEFUN (clear_ip_bgp_as_soft,
IP_STR
BGP_STR
"Clear peers with the AS number\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as,
BGP_CLEAR_SOFT_BOTH, argv[0]);
@@ -6859,7 +7674,7 @@ DEFUN (clear_ip_bgp_as_ipv4_soft,
"Address family\n"
"Address Family Modifier\n"
"Address Family Modifier\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
if (strncmp (argv[1], "m", 1) == 0)
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_as,
@@ -6878,7 +7693,7 @@ DEFUN (clear_ip_bgp_as_vpnv4_soft,
"Clear peers with the AS number\n"
"Address family\n"
"Address Family Modifier\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_as,
BGP_CLEAR_SOFT_BOTH, argv[0]);
@@ -6905,7 +7720,7 @@ DEFUN (clear_bgp_as_soft,
CLEAR_STR
BGP_STR
"Clear peers with the AS number\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
{
return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_as,
BGP_CLEAR_SOFT_BOTH, argv[0]);
@@ -6918,7 +7733,7 @@ ALIAS (clear_bgp_as_soft,
BGP_STR
"Address family\n"
"Clear peers with the AS number\n"
- "Soft reconfig\n")
+ BGP_SOFT_STR)
/* RS-client soft reconfiguration. */
DEFUN (clear_bgp_all_rsclient,
@@ -6927,7 +7742,7 @@ DEFUN (clear_bgp_all_rsclient,
CLEAR_STR
BGP_STR
"Clear all peers\n"
- "Soft reconfig for rsclient RIB\n")
+ BGP_SOFT_RSCLIENT_RIB_STR)
{
if (argc == 1)
return bgp_clear_vty (vty, argv[0], AFI_IP6, SAFI_UNICAST, clear_all,
@@ -6944,7 +7759,7 @@ ALIAS (clear_bgp_all_rsclient,
BGP_STR
"Address family\n"
"Clear all peers\n"
- "Soft reconfig for rsclient RIB\n")
+ BGP_SOFT_RSCLIENT_RIB_STR)
ALIAS (clear_bgp_all_rsclient,
clear_bgp_instance_all_rsclient_cmd,
@@ -6954,7 +7769,7 @@ ALIAS (clear_bgp_all_rsclient,
"BGP view\n"
"view name\n"
"Clear all peers\n"
- "Soft reconfig for rsclient RIB\n")
+ BGP_SOFT_RSCLIENT_RIB_STR)
ALIAS (clear_bgp_all_rsclient,
clear_bgp_ipv6_instance_all_rsclient_cmd,
@@ -6965,7 +7780,7 @@ ALIAS (clear_bgp_all_rsclient,
"BGP view\n"
"view name\n"
"Clear all peers\n"
- "Soft reconfig for rsclient RIB\n")
+ BGP_SOFT_RSCLIENT_RIB_STR)
DEFUN (clear_ip_bgp_all_rsclient,
clear_ip_bgp_all_rsclient_cmd,
@@ -6974,7 +7789,7 @@ DEFUN (clear_ip_bgp_all_rsclient,
IP_STR
BGP_STR
"Clear all peers\n"
- "Soft reconfig for rsclient RIB\n")
+ BGP_SOFT_RSCLIENT_RIB_STR)
{
if (argc == 1)
return bgp_clear_vty (vty, argv[0], AFI_IP, SAFI_UNICAST, clear_all,
@@ -6993,16 +7808,17 @@ ALIAS (clear_ip_bgp_all_rsclient,
"BGP view\n"
"view name\n"
"Clear all peers\n"
- "Soft reconfig for rsclient RIB\n")
+ BGP_SOFT_RSCLIENT_RIB_STR)
DEFUN (clear_bgp_peer_rsclient,
clear_bgp_peer_rsclient_cmd,
- "clear bgp (A.B.C.D|X:X::X:X) rsclient",
+ "clear bgp (A.B.C.D|X:X::X:X|WORD) rsclient",
CLEAR_STR
BGP_STR
"BGP neighbor IP address to clear\n"
"BGP IPv6 neighbor to clear\n"
- "Soft reconfig for rsclient RIB\n")
+ "BGP neighbor on interface to clear\n"
+ BGP_SOFT_RSCLIENT_RIB_STR)
{
if (argc == 2)
return bgp_clear_vty (vty, argv[0], AFI_IP6, SAFI_UNICAST, clear_peer,
@@ -7014,28 +7830,30 @@ DEFUN (clear_bgp_peer_rsclient,
ALIAS (clear_bgp_peer_rsclient,
clear_bgp_ipv6_peer_rsclient_cmd,
- "clear bgp ipv6 (A.B.C.D|X:X::X:X) rsclient",
+ "clear bgp ipv6 (A.B.C.D|X:X::X:X|WORD) rsclient",
CLEAR_STR
BGP_STR
"Address family\n"
"BGP neighbor IP address to clear\n"
"BGP IPv6 neighbor to clear\n"
- "Soft reconfig for rsclient RIB\n")
+ "BGP neighbor on interface to clear\n"
+ BGP_SOFT_RSCLIENT_RIB_STR)
ALIAS (clear_bgp_peer_rsclient,
clear_bgp_instance_peer_rsclient_cmd,
- "clear bgp view WORD (A.B.C.D|X:X::X:X) rsclient",
+ "clear bgp view WORD (A.B.C.D|X:X::X:X|WORD) rsclient",
CLEAR_STR
BGP_STR
"BGP view\n"
"view name\n"
"BGP neighbor IP address to clear\n"
"BGP IPv6 neighbor to clear\n"
- "Soft reconfig for rsclient RIB\n")
+ "BGP neighbor on interface to clear\n"
+ BGP_SOFT_RSCLIENT_RIB_STR)
ALIAS (clear_bgp_peer_rsclient,
clear_bgp_ipv6_instance_peer_rsclient_cmd,
- "clear bgp ipv6 view WORD (A.B.C.D|X:X::X:X) rsclient",
+ "clear bgp ipv6 view WORD (A.B.C.D|X:X::X:X|WORD) rsclient",
CLEAR_STR
BGP_STR
"Address family\n"
@@ -7043,17 +7861,19 @@ ALIAS (clear_bgp_peer_rsclient,
"view name\n"
"BGP neighbor IP address to clear\n"
"BGP IPv6 neighbor to clear\n"
- "Soft reconfig for rsclient RIB\n")
+ "BGP neighbor on interface to clear\n"
+ BGP_SOFT_RSCLIENT_RIB_STR)
DEFUN (clear_ip_bgp_peer_rsclient,
clear_ip_bgp_peer_rsclient_cmd,
- "clear ip bgp (A.B.C.D|X:X::X:X) rsclient",
+ "clear ip bgp (A.B.C.D|X:X::X:X|WORD) rsclient",
CLEAR_STR
IP_STR
BGP_STR
"BGP neighbor IP address to clear\n"
"BGP IPv6 neighbor to clear\n"
- "Soft reconfig for rsclient RIB\n")
+ "BGP neighbor on interface to clear\n"
+ BGP_SOFT_RSCLIENT_RIB_STR)
{
if (argc == 2)
return bgp_clear_vty (vty, argv[0], AFI_IP, SAFI_UNICAST, clear_peer,
@@ -7065,7 +7885,7 @@ DEFUN (clear_ip_bgp_peer_rsclient,
ALIAS (clear_ip_bgp_peer_rsclient,
clear_ip_bgp_instance_peer_rsclient_cmd,
- "clear ip bgp view WORD (A.B.C.D|X:X::X:X) rsclient",
+ "clear ip bgp view WORD (A.B.C.D|X:X::X:X|WORD) rsclient",
CLEAR_STR
IP_STR
BGP_STR
@@ -7073,7 +7893,8 @@ ALIAS (clear_ip_bgp_peer_rsclient,
"view name\n"
"BGP neighbor IP address to clear\n"
"BGP IPv6 neighbor to clear\n"
- "Soft reconfig for rsclient RIB\n")
+ "BGP neighbor on interface to clear\n"
+ BGP_SOFT_RSCLIENT_RIB_STR)
DEFUN (show_bgp_views,
show_bgp_views_cmd,
@@ -7252,6 +8073,9 @@ bgp_show_summary (struct vty *vty, struct bgp *bgp, int afi, int safi)
for (ALL_LIST_ELEMENTS (bgp->peer, node, nnode, peer))
{
+ if (!CHECK_FLAG(peer->flags, PEER_FLAG_CONFIG_NODE))
+ continue;
+
if (peer->afc[afi][safi])
{
if (!count)
@@ -7263,6 +8087,39 @@ bgp_show_summary (struct vty *vty, struct bgp *bgp, int afi, int safi)
vty_out (vty,
"BGP router identifier %s, local AS number %u%s",
inet_ntoa (bgp->router_id), bgp->as, VTY_NEWLINE);
+ if (bgp_update_delay_configured(bgp))
+ {
+ vty_out (vty, "Read-only mode update-delay limit: %d seconds%s",
+ bgp->v_update_delay, VTY_NEWLINE);
+ if (bgp->v_update_delay != bgp->v_establish_wait)
+ vty_out (vty, " Establish wait: %d seconds%s",
+ bgp->v_establish_wait, VTY_NEWLINE);
+ if (bgp_update_delay_active(bgp))
+ {
+ vty_out (vty, " First neighbor established: %s%s",
+ bgp->update_delay_begin_time, VTY_NEWLINE);
+ vty_out (vty, " Delay in progress%s", VTY_NEWLINE);
+ }
+ else
+ {
+ if (bgp->update_delay_over)
+ {
+ vty_out (vty, " First neighbor established: %s%s",
+ bgp->update_delay_begin_time, VTY_NEWLINE);
+ vty_out (vty, " Best-paths resumed: %s%s",
+ bgp->update_delay_end_time, VTY_NEWLINE);
+ vty_out (vty, " zebra update resumed: %s%s",
+ bgp->update_delay_zebra_resume_time, VTY_NEWLINE);
+ vty_out (vty, " peers update resumed: %s%s",
+ bgp->update_delay_peers_resume_time, VTY_NEWLINE);
+ }
+ }
+ }
+
+ if (bgp_maxmed_onstartup_configured(bgp) && bgp->maxmed_active)
+ vty_out (vty, "Max-med on-startup active%s", VTY_NEWLINE);
+ if (bgp->v_maxmed_admin)
+ vty_out (vty, "Max-med administrative active%s", VTY_NEWLINE);
ents = bgp_table_count (bgp->rib[afi][safi]);
vty_out (vty, "RIB entries %ld, using %s of memory%s", ents,
@@ -7308,14 +8165,16 @@ bgp_show_summary (struct vty *vty, struct bgp *bgp, int afi, int safi)
vty_out (vty, "4 ");
- vty_out (vty, "%5u %7d %7d %8d %4d %4lu ",
+ vty_out (vty, "%5u %7d %7d %8d %4d %4d ",
peer->as,
peer->open_in + peer->update_in + peer->keepalive_in
+ peer->notify_in + peer->refresh_in + peer->dynamic_cap_in,
peer->open_out + peer->update_out + peer->keepalive_out
+ peer->notify_out + peer->refresh_out
+ peer->dynamic_cap_out,
- 0, 0, (unsigned long) peer->obuf->count);
+ 0, 0,
+ peer->sync[afi][safi]->update.count +
+ peer->sync[afi][safi]->withdraw.count);
vty_out (vty, "%8s",
peer_uptime (peer->uptime, timebuf, BGP_UPTIME_LEN));
@@ -7344,6 +8203,7 @@ bgp_show_summary (struct vty *vty, struct bgp *bgp, int afi, int safi)
else
vty_out (vty, "No %s neighbor is configured%s",
afi == AFI_IP ? "IPv4" : "IPv6", VTY_NEWLINE);
+
return CMD_SUCCESS;
}
@@ -7983,9 +8843,16 @@ bgp_show_peer_afi (struct vty *vty, struct peer *p, afi_t afi, safi_t safi)
vty_out (vty, " Route-Server Client%s", VTY_NEWLINE);
if (CHECK_FLAG (p->af_flags[afi][safi], PEER_FLAG_SOFT_RECONFIG))
vty_out (vty, " Inbound soft reconfiguration allowed%s", VTY_NEWLINE);
- if (CHECK_FLAG (p->af_flags[afi][safi], PEER_FLAG_REMOVE_PRIVATE_AS))
- vty_out (vty, " Private AS number removed from updates to this neighbor%s", VTY_NEWLINE);
- if (CHECK_FLAG (p->af_flags[afi][safi], PEER_FLAG_NEXTHOP_SELF))
+ if (CHECK_FLAG (p->af_flags[afi][safi], PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE))
+ vty_out (vty, " Private AS numbers replaced in updates to this neighbor%s", VTY_NEWLINE);
+ else if (CHECK_FLAG (p->af_flags[afi][safi], PEER_FLAG_REMOVE_PRIVATE_AS))
+ vty_out (vty, " Private AS numbers removed in updates to this neighbor%s", VTY_NEWLINE);
+
+ if (CHECK_FLAG (p->af_flags[afi][safi], PEER_FLAG_AS_OVERRIDE))
+ vty_out (vty, " Override ASNs in outbound updates if aspath equals remote-as%s", VTY_NEWLINE);
+
+ if (CHECK_FLAG (p->af_flags[afi][safi], PEER_FLAG_NEXTHOP_SELF) ||
+ CHECK_FLAG (p->af_flags[afi][safi], PEER_FLAG_NEXTHOP_SELF_ALL))
vty_out (vty, " NEXT_HOP is always this router%s", VTY_NEWLINE);
if (CHECK_FLAG (p->af_flags[afi][safi], PEER_FLAG_AS_PATH_UNCHANGED))
vty_out (vty, " AS_PATH is propagated unchanged to this neighbor%s", VTY_NEWLINE);
@@ -8122,15 +8989,21 @@ static void
bgp_show_peer (struct vty *vty, struct peer *p)
{
struct bgp *bgp;
- char buf1[BUFSIZ];
+ char buf1[BUFSIZ], buf[SU_ADDRSTRLEN];
char timebuf[BGP_UPTIME_LEN];
afi_t afi;
safi_t safi;
+ u_int16_t i;
+ u_char *msg;
bgp = p->bgp;
- /* Configured IP address. */
- vty_out (vty, "BGP neighbor is %s, ", p->host);
+ if (p->conf_if) /* Configured interface name. */
+ vty_out (vty, "BGP neighbor on %s: %s, ", p->conf_if,
+ BGP_PEER_SU_UNSPEC(p) ? "None" :
+ sockunion2str (&p->su, buf, SU_ADDRSTRLEN));
+ else /* Configured IP address. */
+ vty_out (vty, "BGP neighbor is %s, ", p->host);
vty_out (vty, "remote AS %u, ", p->as);
vty_out (vty, "local AS %u%s%s, ",
p->change_local_as ? p->change_local_as : p->local_as,
@@ -8183,9 +9056,11 @@ bgp_show_peer (struct vty *vty, struct peer *p)
/* read timer */
vty_out (vty, " Last read %s", peer_uptime (p->readtime, timebuf, BGP_UPTIME_LEN));
+ vty_out (vty, ", Last write %s%s",
+ peer_uptime (p->last_write, timebuf, BGP_UPTIME_LEN), VTY_NEWLINE);
/* Configured timer values. */
- vty_out (vty, ", hold time is %d, keepalive interval is %d seconds%s",
+ vty_out (vty, " Hold time is %d, keepalive interval is %d seconds%s",
p->v_holdtime, p->v_keepalive, VTY_NEWLINE);
if (CHECK_FLAG (p->config, PEER_CONFIG_TIMER))
{
@@ -8404,12 +9279,33 @@ bgp_show_peer (struct vty *vty, struct peer *p)
p->established, p->dropped,
VTY_NEWLINE);
- if (! p->dropped)
+ if (! p->last_reset)
vty_out (vty, " Last reset never%s", VTY_NEWLINE);
else
- vty_out (vty, " Last reset %s, due to %s%s",
- peer_uptime (p->resettime, timebuf, BGP_UPTIME_LEN),
- peer_down_str[(int) p->last_reset], VTY_NEWLINE);
+ {
+ vty_out (vty, " Last reset %s, due to %s%s",
+ peer_uptime (p->resettime, timebuf, BGP_UPTIME_LEN),
+ peer_down_str[(int) p->last_reset], VTY_NEWLINE);
+
+ if (p->last_reset_cause_size)
+ {
+ msg = p->last_reset_cause;
+ vty_out(vty, " Message received that caused BGP to send a NOTIFICATION:%s ", VTY_NEWLINE);
+ for (i = 1; i <= p->last_reset_cause_size; i++)
+ {
+ vty_out(vty, "%02X", *msg++);
+
+ if (i != p->last_reset_cause_size)
+ {
+ if (i % 16 == 0)
+ vty_out(vty, "%s ", VTY_NEWLINE);
+ else if (i % 4 == 0)
+ vty_out(vty, " ");
+ }
+ }
+ vty_out(vty, "%s", VTY_NEWLINE);
+ }
+ }
if (CHECK_FLAG (p->sflags, PEER_STATUS_PREFIX_OVERFLOW))
{
@@ -8488,8 +9384,12 @@ bgp_show_peer (struct vty *vty, struct peer *p)
if (p->t_connect)
vty_out (vty, "Next connect timer due in %ld seconds%s",
thread_timer_remain_second (p->t_connect), VTY_NEWLINE);
-
- vty_out (vty, "Read thread: %s Write thread: %s%s",
+ if (p->t_routeadv)
+ vty_out (vty, "MRAI (interval %d) timer expires in %ld seconds%s",
+ p->v_routeadv, thread_timer_remain_second (p->t_routeadv),
+ VTY_NEWLINE);
+
+ vty_out (vty, "Read thread: %s Write thread: %s%s",
p->t_read ? "on" : "off",
p->t_write ? "on" : "off",
VTY_NEWLINE);
@@ -8503,7 +9403,7 @@ bgp_show_peer (struct vty *vty, struct peer *p)
static int
bgp_show_neighbor (struct vty *vty, struct bgp *bgp,
- enum show_type type, union sockunion *su)
+ enum show_type type, union sockunion *su, const char *conf_if)
{
struct listnode *node, *nnode;
struct peer *peer;
@@ -8511,17 +9411,31 @@ bgp_show_neighbor (struct vty *vty, struct bgp *bgp,
for (ALL_LIST_ELEMENTS (bgp->peer, node, nnode, peer))
{
+ if (!CHECK_FLAG(peer->flags, PEER_FLAG_CONFIG_NODE))
+ continue;
+
switch (type)
{
case show_all:
bgp_show_peer (vty, peer);
break;
case show_peer:
- if (sockunion_same (&peer->su, su))
- {
- find = 1;
- bgp_show_peer (vty, peer);
- }
+ if (conf_if)
+ {
+ if (peer->conf_if && !strcmp(peer->conf_if, conf_if))
+ {
+ find = 1;
+ bgp_show_peer (vty, peer);
+ }
+ }
+ else
+ {
+ if (sockunion_same (&peer->su, su))
+ {
+ find = 1;
+ bgp_show_peer (vty, peer);
+ }
+ }
break;
}
}
@@ -8540,35 +9454,35 @@ bgp_show_neighbor_vty (struct vty *vty, const char *name,
struct bgp *bgp;
union sockunion su;
- if (ip_str)
- {
- ret = str2sockunion (ip_str, &su);
- if (ret < 0)
- {
- vty_out (vty, "%% Malformed address: %s%s", ip_str, VTY_NEWLINE);
- return CMD_WARNING;
- }
- }
-
if (name)
{
bgp = bgp_lookup_by_name (name);
-
if (! bgp)
{
vty_out (vty, "%% No such BGP instance exist%s", VTY_NEWLINE);
return CMD_WARNING;
}
-
- bgp_show_neighbor (vty, bgp, type, &su);
-
- return CMD_SUCCESS;
}
-
- bgp = bgp_get_default ();
+ else
+ {
+ bgp = bgp_get_default ();
+ }
if (bgp)
- bgp_show_neighbor (vty, bgp, type, &su);
+ {
+ if (ip_str)
+ {
+ ret = str2sockunion (ip_str, &su);
+ if (ret < 0)
+ bgp_show_neighbor (vty, bgp, type, NULL, ip_str);
+ else
+ bgp_show_neighbor (vty, bgp, type, &su, NULL);
+ }
+ else
+ {
+ bgp_show_neighbor (vty, bgp, type, NULL, NULL);
+ }
+ }
return CMD_SUCCESS;
}
@@ -8626,20 +9540,21 @@ ALIAS (show_ip_bgp_neighbors,
DEFUN (show_ip_bgp_neighbors_peer,
show_ip_bgp_neighbors_peer_cmd,
- "show ip bgp neighbors (A.B.C.D|X:X::X:X)",
+ "show ip bgp neighbors (A.B.C.D|X:X::X:X|WORD)",
SHOW_STR
IP_STR
BGP_STR
"Detailed information on TCP and BGP neighbor connections\n"
"Neighbor to display information about\n"
- "Neighbor to display information about\n")
+ "Neighbor to display information about\n"
+ "Neighbor on bgp configured interface\n")
{
return bgp_show_neighbor_vty (vty, NULL, show_peer, argv[argc - 1]);
}
ALIAS (show_ip_bgp_neighbors_peer,
show_ip_bgp_ipv4_neighbors_peer_cmd,
- "show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X)",
+ "show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X|WORD)",
SHOW_STR
IP_STR
BGP_STR
@@ -8648,7 +9563,8 @@ ALIAS (show_ip_bgp_neighbors_peer,
"Address Family modifier\n"
"Detailed information on TCP and BGP neighbor connections\n"
"Neighbor to display information about\n"
- "Neighbor to display information about\n")
+ "Neighbor to display information about\n"
+ "Neighbor on bgp configured interface\n")
ALIAS (show_ip_bgp_neighbors_peer,
show_ip_bgp_vpnv4_all_neighbors_peer_cmd,
@@ -8674,13 +9590,14 @@ ALIAS (show_ip_bgp_neighbors_peer,
ALIAS (show_ip_bgp_neighbors_peer,
show_bgp_ipv6_neighbors_peer_cmd,
- "show bgp ipv6 neighbors (A.B.C.D|X:X::X:X)",
+ "show bgp ipv6 neighbors (A.B.C.D|X:X::X:X|WORD)",
SHOW_STR
BGP_STR
"Address family\n"
"Detailed information on TCP and BGP neighbor connections\n"
"Neighbor to display information about\n"
- "Neighbor to display information about\n")
+ "Neighbor to display information about\n"
+ "Neighbor on bgp configured interface\n")
DEFUN (show_ip_bgp_instance_neighbors,
show_ip_bgp_instance_neighbors_cmd,
@@ -8707,7 +9624,7 @@ ALIAS (show_ip_bgp_instance_neighbors,
DEFUN (show_ip_bgp_instance_neighbors_peer,
show_ip_bgp_instance_neighbors_peer_cmd,
- "show ip bgp view WORD neighbors (A.B.C.D|X:X::X:X)",
+ "show ip bgp view WORD neighbors (A.B.C.D|X:X::X:X|WORD)",
SHOW_STR
IP_STR
BGP_STR
@@ -8715,7 +9632,8 @@ DEFUN (show_ip_bgp_instance_neighbors_peer,
"View name\n"
"Detailed information on TCP and BGP neighbor connections\n"
"Neighbor to display information about\n"
- "Neighbor to display information about\n")
+ "Neighbor to display information about\n"
+ "Neighbor on bgp configured interface\n")
{
return bgp_show_neighbor_vty (vty, argv[0], show_peer, argv[1]);
}
@@ -8765,12 +9683,13 @@ DEFUN (show_bgp_neighbors,
DEFUN (show_bgp_neighbors_peer,
show_bgp_neighbors_peer_cmd,
- "show bgp neighbors (A.B.C.D|X:X::X:X)",
+ "show bgp neighbors (A.B.C.D|X:X::X:X|WORD)",
SHOW_STR
BGP_STR
"Detailed information on TCP and BGP neighbor connections\n"
"Neighbor to display information about\n"
- "Neighbor to display information about\n")
+ "Neighbor to display information about\n"
+ "Neighbor on bgp configured interface\n")
{
return bgp_show_neighbor_vty (vty, NULL, show_peer, argv[argc - 1]);
}
@@ -8789,21 +9708,22 @@ DEFUN (show_bgp_instance_neighbors,
DEFUN (show_bgp_instance_neighbors_peer,
show_bgp_instance_neighbors_peer_cmd,
- "show bgp view WORD neighbors (A.B.C.D|X:X::X:X)",
+ "show bgp view WORD neighbors (A.B.C.D|X:X::X:X|WORD)",
SHOW_STR
BGP_STR
"BGP view\n"
"View name\n"
"Detailed information on TCP and BGP neighbor connections\n"
"Neighbor to display information about\n"
- "Neighbor to display information about\n")
+ "Neighbor to display information about\n"
+ "Neighbor on bgp configured interface\n")
{
return bgp_show_neighbor_vty (vty, argv[0], show_peer, argv[1]);
}
ALIAS (show_bgp_instance_neighbors_peer,
show_bgp_instance_ipv6_neighbors_peer_cmd,
- "show bgp view WORD ipv6 neighbors (A.B.C.D|X:X::X:X)",
+ "show bgp view WORD ipv6 neighbors (A.B.C.D|X:X::X:X|WORD)",
SHOW_STR
BGP_STR
"BGP view\n"
@@ -8811,7 +9731,8 @@ ALIAS (show_bgp_instance_neighbors_peer,
"Address family\n"
"Detailed information on TCP and BGP neighbor connections\n"
"Neighbor to display information about\n"
- "Neighbor to display information about\n")
+ "Neighbor to display information about\n"
+ "Neighbor on bgp configured interface\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
@@ -9407,7 +10328,7 @@ DEFUN (no_bgp_redistribute_ipv4,
return bgp_redistribute_unset (vty->index, AFI_IP, type);
}
-DEFUN (no_bgp_redistribute_ipv4_rmap,
+ALIAS (no_bgp_redistribute_ipv4,
no_bgp_redistribute_ipv4_rmap_cmd,
"no redistribute " QUAGGA_IP_REDIST_STR_BGPD " route-map WORD",
NO_STR
@@ -9415,21 +10336,8 @@ DEFUN (no_bgp_redistribute_ipv4_rmap,
QUAGGA_IP_REDIST_HELP_STR_BGPD
"Route map reference\n"
"Pointer to route-map entries\n")
-{
- int type;
-
- type = proto_redistnum (AFI_IP, argv[0]);
- if (type < 0 || type == ZEBRA_ROUTE_BGP)
- {
- vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- bgp_redistribute_routemap_unset (vty->index, AFI_IP, type);
- return CMD_SUCCESS;
-}
-DEFUN (no_bgp_redistribute_ipv4_metric,
+ALIAS (no_bgp_redistribute_ipv4,
no_bgp_redistribute_ipv4_metric_cmd,
"no redistribute " QUAGGA_IP_REDIST_STR_BGPD " metric <0-4294967295>",
NO_STR
@@ -9437,21 +10345,8 @@ DEFUN (no_bgp_redistribute_ipv4_metric,
QUAGGA_IP_REDIST_HELP_STR_BGPD
"Metric for redistributed routes\n"
"Default metric\n")
-{
- int type;
- type = proto_redistnum (AFI_IP, argv[0]);
- if (type < 0 || type == ZEBRA_ROUTE_BGP)
- {
- vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- bgp_redistribute_metric_unset (vty->index, AFI_IP, type);
- return CMD_SUCCESS;
-}
-
-DEFUN (no_bgp_redistribute_ipv4_rmap_metric,
+ALIAS (no_bgp_redistribute_ipv4,
no_bgp_redistribute_ipv4_rmap_metric_cmd,
"no redistribute " QUAGGA_IP_REDIST_STR_BGPD " route-map WORD metric <0-4294967295>",
NO_STR
@@ -9461,22 +10356,8 @@ DEFUN (no_bgp_redistribute_ipv4_rmap_metric,
"Pointer to route-map entries\n"
"Metric for redistributed routes\n"
"Default metric\n")
-{
- int type;
- type = proto_redistnum (AFI_IP, argv[0]);
- if (type < 0 || type == ZEBRA_ROUTE_BGP)
- {
- vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- bgp_redistribute_metric_unset (vty->index, AFI_IP, type);
- bgp_redistribute_routemap_unset (vty->index, AFI_IP, type);
- return CMD_SUCCESS;
-}
-
-ALIAS (no_bgp_redistribute_ipv4_rmap_metric,
+ALIAS (no_bgp_redistribute_ipv4,
no_bgp_redistribute_ipv4_metric_rmap_cmd,
"no redistribute " QUAGGA_IP_REDIST_STR_BGPD " metric <0-4294967295> route-map WORD",
NO_STR
@@ -9620,7 +10501,7 @@ DEFUN (no_bgp_redistribute_ipv6,
return bgp_redistribute_unset (vty->index, AFI_IP6, type);
}
-DEFUN (no_bgp_redistribute_ipv6_rmap,
+ALIAS (no_bgp_redistribute_ipv6,
no_bgp_redistribute_ipv6_rmap_cmd,
"no redistribute " QUAGGA_IP6_REDIST_STR_BGPD " route-map WORD",
NO_STR
@@ -9628,21 +10509,8 @@ DEFUN (no_bgp_redistribute_ipv6_rmap,
QUAGGA_IP6_REDIST_HELP_STR_BGPD
"Route map reference\n"
"Pointer to route-map entries\n")
-{
- int type;
- type = proto_redistnum (AFI_IP6, argv[0]);
- if (type < 0 || type == ZEBRA_ROUTE_BGP)
- {
- vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- bgp_redistribute_routemap_unset (vty->index, AFI_IP6, type);
- return CMD_SUCCESS;
-}
-
-DEFUN (no_bgp_redistribute_ipv6_metric,
+ALIAS (no_bgp_redistribute_ipv6,
no_bgp_redistribute_ipv6_metric_cmd,
"no redistribute " QUAGGA_IP6_REDIST_STR_BGPD " metric <0-4294967295>",
NO_STR
@@ -9650,21 +10518,8 @@ DEFUN (no_bgp_redistribute_ipv6_metric,
QUAGGA_IP6_REDIST_HELP_STR_BGPD
"Metric for redistributed routes\n"
"Default metric\n")
-{
- int type;
-
- type = proto_redistnum (AFI_IP6, argv[0]);
- if (type < 0 || type == ZEBRA_ROUTE_BGP)
- {
- vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
- bgp_redistribute_metric_unset (vty->index, AFI_IP6, type);
- return CMD_SUCCESS;
-}
-
-DEFUN (no_bgp_redistribute_ipv6_rmap_metric,
+ALIAS (no_bgp_redistribute_ipv6,
no_bgp_redistribute_ipv6_rmap_metric_cmd,
"no redistribute " QUAGGA_IP6_REDIST_STR_BGPD " route-map WORD metric <0-4294967295>",
NO_STR
@@ -9674,22 +10529,8 @@ DEFUN (no_bgp_redistribute_ipv6_rmap_metric,
"Pointer to route-map entries\n"
"Metric for redistributed routes\n"
"Default metric\n")
-{
- int type;
-
- type = proto_redistnum (AFI_IP6, argv[0]);
- if (type < 0 || type == ZEBRA_ROUTE_BGP)
- {
- vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
- bgp_redistribute_metric_unset (vty->index, AFI_IP6, type);
- bgp_redistribute_routemap_unset (vty->index, AFI_IP6, type);
- return CMD_SUCCESS;
-}
-
-ALIAS (no_bgp_redistribute_ipv6_rmap_metric,
+ALIAS (no_bgp_redistribute_ipv6,
no_bgp_redistribute_ipv6_metric_rmap_cmd,
"no redistribute " QUAGGA_IP6_REDIST_STR_BGPD " metric <0-4294967295> route-map WORD",
NO_STR
@@ -9864,6 +10705,26 @@ bgp_vty_init (void)
install_element (BGP_NODE, &bgp_confederation_peers_cmd);
install_element (BGP_NODE, &no_bgp_confederation_peers_cmd);
+ /* bgp max-med command */
+ install_element (BGP_NODE, &bgp_maxmed_admin_cmd);
+ install_element (BGP_NODE, &no_bgp_maxmed_admin_cmd);
+ install_element (BGP_NODE, &bgp_maxmed_admin_medv_cmd);
+ install_element (BGP_NODE, &no_bgp_maxmed_admin_medv_cmd);
+ install_element (BGP_NODE, &bgp_maxmed_onstartup_cmd);
+ install_element (BGP_NODE, &no_bgp_maxmed_onstartup_cmd);
+ install_element (BGP_NODE, &no_bgp_maxmed_onstartup_period_cmd);
+ install_element (BGP_NODE, &bgp_maxmed_onstartup_medv_cmd);
+ install_element (BGP_NODE, &no_bgp_maxmed_onstartup_period_medv_cmd);
+
+ /* bgp update-delay command */
+ install_element (BGP_NODE, &bgp_update_delay_cmd);
+ install_element (BGP_NODE, &no_bgp_update_delay_cmd);
+ install_element (BGP_NODE, &bgp_update_delay_establish_wait_cmd);
+ install_element (BGP_NODE, &no_bgp_update_delay_establish_wait_cmd);
+
+ install_element (BGP_NODE, &bgp_wpkt_quanta_cmd);
+ install_element (BGP_NODE, &no_bgp_wpkt_quanta_cmd);
+
/* "maximum-paths" commands. */
install_element (BGP_NODE, &bgp_maxpaths_cmd);
install_element (BGP_NODE, &no_bgp_maxpaths_cmd);
@@ -9871,18 +10732,34 @@ bgp_vty_init (void)
install_element (BGP_IPV4_NODE, &bgp_maxpaths_cmd);
install_element (BGP_IPV4_NODE, &no_bgp_maxpaths_cmd);
install_element (BGP_IPV4_NODE, &no_bgp_maxpaths_arg_cmd);
+ install_element (BGP_IPV6_NODE, &bgp_maxpaths_cmd);
+ install_element (BGP_IPV6_NODE, &no_bgp_maxpaths_cmd);
+ install_element (BGP_IPV6_NODE, &no_bgp_maxpaths_arg_cmd);
install_element (BGP_NODE, &bgp_maxpaths_ibgp_cmd);
+ install_element(BGP_NODE, &bgp_maxpaths_ibgp_cluster_cmd);
install_element (BGP_NODE, &no_bgp_maxpaths_ibgp_cmd);
install_element (BGP_NODE, &no_bgp_maxpaths_ibgp_arg_cmd);
+ install_element (BGP_NODE, &no_bgp_maxpaths_ibgp_cluster_cmd);
install_element (BGP_IPV4_NODE, &bgp_maxpaths_ibgp_cmd);
+ install_element(BGP_IPV4_NODE, &bgp_maxpaths_ibgp_cluster_cmd);
install_element (BGP_IPV4_NODE, &no_bgp_maxpaths_ibgp_cmd);
+ install_element (BGP_IPV4_NODE, &no_bgp_maxpaths_ibgp_cluster_cmd);
install_element (BGP_IPV4_NODE, &no_bgp_maxpaths_ibgp_arg_cmd);
+ install_element (BGP_IPV6_NODE, &bgp_maxpaths_ibgp_cmd);
+ install_element(BGP_IPV6_NODE, &bgp_maxpaths_ibgp_cluster_cmd);
+ install_element (BGP_IPV6_NODE, &no_bgp_maxpaths_ibgp_cmd);
+ install_element (BGP_IPV6_NODE, &no_bgp_maxpaths_ibgp_arg_cmd);
+ install_element (BGP_IPV6_NODE, &no_bgp_maxpaths_ibgp_cluster_cmd);
/* "timers bgp" commands. */
install_element (BGP_NODE, &bgp_timers_cmd);
install_element (BGP_NODE, &no_bgp_timers_cmd);
install_element (BGP_NODE, &no_bgp_timers_arg_cmd);
+ /* route-map delay-timer commands */
+ install_element (BGP_NODE, &bgp_set_route_map_delay_timer_cmd);
+ install_element (BGP_NODE, &no_bgp_set_route_map_delay_timer_cmd);
+
/* "bgp client-to-client reflection" commands */
install_element (BGP_NODE, &no_bgp_client_to_client_reflection_cmd);
install_element (BGP_NODE, &bgp_client_to_client_reflection_cmd);
@@ -9951,15 +10828,21 @@ bgp_vty_init (void)
install_element (BGP_NODE, &no_bgp_default_local_preference_cmd);
install_element (BGP_NODE, &no_bgp_default_local_preference_val_cmd);
+ /* bgp ibgp-allow-policy-mods command */
+ install_element (BGP_NODE, &bgp_rr_allow_outbound_policy_cmd);
+ install_element (BGP_NODE, &no_bgp_rr_allow_outbound_policy_cmd);
+
/* "neighbor remote-as" commands. */
install_element (BGP_NODE, &neighbor_remote_as_cmd);
+ install_element (BGP_NODE, &neighbor_interface_config_cmd);
install_element (BGP_NODE, &no_neighbor_cmd);
install_element (BGP_NODE, &no_neighbor_remote_as_cmd);
+ install_element (BGP_NODE, &no_neighbor_interface_config_cmd);
/* "neighbor peer-group" commands. */
install_element (BGP_NODE, &neighbor_peer_group_cmd);
install_element (BGP_NODE, &no_neighbor_peer_group_cmd);
- install_element (BGP_NODE, &no_neighbor_peer_group_remote_as_cmd);
+ install_element (BGP_NODE, &no_neighbor_interface_peer_group_remote_as_cmd);
/* "neighbor local-as" commands. */
install_element (BGP_NODE, &neighbor_local_as_cmd);
@@ -10270,17 +11153,61 @@ bgp_vty_init (void)
install_element (BGP_ENCAPV6_NODE, &neighbor_nexthop_self_cmd);
install_element (BGP_ENCAPV6_NODE, &no_neighbor_nexthop_self_cmd);
+ /* "neighbor as-override" commands. */
+ install_element (BGP_NODE, &neighbor_as_override_cmd);
+ install_element (BGP_NODE, &no_neighbor_as_override_cmd);
+ install_element (BGP_IPV4_NODE, &neighbor_as_override_cmd);
+ install_element (BGP_IPV4_NODE, &no_neighbor_as_override_cmd);
+ install_element (BGP_IPV4M_NODE, &neighbor_as_override_cmd);
+ install_element (BGP_IPV4M_NODE, &no_neighbor_as_override_cmd);
+ install_element (BGP_IPV6_NODE, &neighbor_as_override_cmd);
+ install_element (BGP_IPV6_NODE, &no_neighbor_as_override_cmd);
+ install_element (BGP_IPV6M_NODE, &neighbor_as_override_cmd);
+ install_element (BGP_IPV6M_NODE, &no_neighbor_as_override_cmd);
+ install_element (BGP_VPNV4_NODE, &neighbor_as_override_cmd);
+ install_element (BGP_VPNV4_NODE, &no_neighbor_as_override_cmd);
+
/* "neighbor remove-private-AS" commands. */
install_element (BGP_NODE, &neighbor_remove_private_as_cmd);
install_element (BGP_NODE, &no_neighbor_remove_private_as_cmd);
+ install_element (BGP_NODE, &neighbor_remove_private_as_all_cmd);
+ install_element (BGP_NODE, &no_neighbor_remove_private_as_all_cmd);
+ install_element (BGP_NODE, &neighbor_remove_private_as_replace_as_cmd);
+ install_element (BGP_NODE, &no_neighbor_remove_private_as_replace_as_cmd);
+ install_element (BGP_NODE, &neighbor_remove_private_as_all_replace_as_cmd);
+ install_element (BGP_NODE, &no_neighbor_remove_private_as_all_replace_as_cmd);
install_element (BGP_IPV4_NODE, &neighbor_remove_private_as_cmd);
install_element (BGP_IPV4_NODE, &no_neighbor_remove_private_as_cmd);
+ install_element (BGP_IPV4_NODE, &neighbor_remove_private_as_all_cmd);
+ install_element (BGP_IPV4_NODE, &no_neighbor_remove_private_as_all_cmd);
+ install_element (BGP_IPV4_NODE, &neighbor_remove_private_as_replace_as_cmd);
+ install_element (BGP_IPV4_NODE, &no_neighbor_remove_private_as_replace_as_cmd);
+ install_element (BGP_IPV4_NODE, &neighbor_remove_private_as_all_replace_as_cmd);
+ install_element (BGP_IPV4_NODE, &no_neighbor_remove_private_as_all_replace_as_cmd);
install_element (BGP_IPV4M_NODE, &neighbor_remove_private_as_cmd);
install_element (BGP_IPV4M_NODE, &no_neighbor_remove_private_as_cmd);
+ install_element (BGP_IPV4M_NODE, &neighbor_remove_private_as_all_cmd);
+ install_element (BGP_IPV4M_NODE, &no_neighbor_remove_private_as_all_cmd);
+ install_element (BGP_IPV4M_NODE, &neighbor_remove_private_as_replace_as_cmd);
+ install_element (BGP_IPV4M_NODE, &no_neighbor_remove_private_as_replace_as_cmd);
+ install_element (BGP_IPV4M_NODE, &neighbor_remove_private_as_all_replace_as_cmd);
+ install_element (BGP_IPV4M_NODE, &no_neighbor_remove_private_as_all_replace_as_cmd);
install_element (BGP_IPV6_NODE, &neighbor_remove_private_as_cmd);
install_element (BGP_IPV6_NODE, &no_neighbor_remove_private_as_cmd);
+ install_element (BGP_IPV6_NODE, &neighbor_remove_private_as_all_cmd);
+ install_element (BGP_IPV6_NODE, &no_neighbor_remove_private_as_all_cmd);
+ install_element (BGP_IPV6_NODE, &neighbor_remove_private_as_replace_as_cmd);
+ install_element (BGP_IPV6_NODE, &no_neighbor_remove_private_as_replace_as_cmd);
+ install_element (BGP_IPV6_NODE, &neighbor_remove_private_as_all_replace_as_cmd);
+ install_element (BGP_IPV6_NODE, &no_neighbor_remove_private_as_all_replace_as_cmd);
install_element (BGP_IPV6M_NODE, &neighbor_remove_private_as_cmd);
install_element (BGP_IPV6M_NODE, &no_neighbor_remove_private_as_cmd);
+ install_element (BGP_IPV6M_NODE, &neighbor_remove_private_as_all_cmd);
+ install_element (BGP_IPV6M_NODE, &no_neighbor_remove_private_as_all_cmd);
+ install_element (BGP_IPV6M_NODE, &neighbor_remove_private_as_replace_as_cmd);
+ install_element (BGP_IPV6M_NODE, &no_neighbor_remove_private_as_replace_as_cmd);
+ install_element (BGP_IPV6M_NODE, &neighbor_remove_private_as_all_replace_as_cmd);
+ install_element (BGP_IPV6M_NODE, &no_neighbor_remove_private_as_all_replace_as_cmd);
install_element (BGP_VPNV4_NODE, &neighbor_remove_private_as_cmd);
install_element (BGP_VPNV4_NODE, &no_neighbor_remove_private_as_cmd);
install_element (BGP_VPNV6_NODE, &neighbor_remove_private_as_cmd);
@@ -10289,6 +11216,12 @@ bgp_vty_init (void)
install_element (BGP_ENCAP_NODE, &no_neighbor_remove_private_as_cmd);
install_element (BGP_ENCAPV6_NODE, &neighbor_remove_private_as_cmd);
install_element (BGP_ENCAPV6_NODE, &no_neighbor_remove_private_as_cmd);
+ install_element (BGP_VPNV4_NODE, &neighbor_remove_private_as_all_cmd);
+ install_element (BGP_VPNV4_NODE, &no_neighbor_remove_private_as_all_cmd);
+ install_element (BGP_VPNV4_NODE, &neighbor_remove_private_as_replace_as_cmd);
+ install_element (BGP_VPNV4_NODE, &no_neighbor_remove_private_as_replace_as_cmd);
+ install_element (BGP_VPNV4_NODE, &neighbor_remove_private_as_all_replace_as_cmd);
+ install_element (BGP_VPNV4_NODE, &no_neighbor_remove_private_as_all_replace_as_cmd);
/* "neighbor send-community" commands.*/
install_element (BGP_NODE, &neighbor_send_community_cmd);
@@ -10856,6 +11789,10 @@ bgp_vty_init (void)
install_element (ENABLE_NODE, &clear_bgp_ipv6_as_in_cmd);
install_element (ENABLE_NODE, &clear_bgp_ipv6_as_in_prefix_filter_cmd);
+ /* clear ip bgp prefix */
+ install_element (ENABLE_NODE, &clear_ip_bgp_prefix_cmd);
+ install_element (ENABLE_NODE, &clear_bgp_ipv6_safi_prefix_cmd);
+
/* "clear ip bgp neighbor soft out" */
install_element (ENABLE_NODE, &clear_ip_bgp_all_soft_out_cmd);
install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_soft_out_cmd);