mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 19:02:58 +00:00
Merge branch 'master' of https://github.com/dwalton76/frr into bgpd-ipv4-plus-label-misc3
Conflicts: bgpd/bgp_route.c bgpd/bgp_zebra.c
This commit is contained in:
commit
dfd8121281
@ -617,8 +617,7 @@ DEFUN (no_router_babel,
|
|||||||
"no router babel",
|
"no router babel",
|
||||||
NO_STR
|
NO_STR
|
||||||
"Disable a routing process\n"
|
"Disable a routing process\n"
|
||||||
"Remove Babel instance command\n"
|
"Remove Babel instance command\n")
|
||||||
"No attributes\n")
|
|
||||||
{
|
{
|
||||||
if(babel_routing_process)
|
if(babel_routing_process)
|
||||||
babel_clean_routing_process();
|
babel_clean_routing_process();
|
||||||
|
@ -232,12 +232,6 @@ bgp_exit (int status)
|
|||||||
vnc_zebra_destroy();
|
vnc_zebra_destroy();
|
||||||
#endif
|
#endif
|
||||||
bgp_zebra_destroy();
|
bgp_zebra_destroy();
|
||||||
if (bgp_nexthop_buf)
|
|
||||||
stream_free (bgp_nexthop_buf);
|
|
||||||
if (bgp_ifindices_buf)
|
|
||||||
stream_free (bgp_ifindices_buf);
|
|
||||||
if (bgp_label_buf)
|
|
||||||
stream_free (bgp_label_buf);
|
|
||||||
|
|
||||||
/* reverse bgp_master_init */
|
/* reverse bgp_master_init */
|
||||||
if (bm->master)
|
if (bm->master)
|
||||||
|
@ -1379,7 +1379,6 @@ DEFUN (bgp_update_delay_establish_wait,
|
|||||||
"update-delay (0-3600) (1-3600)",
|
"update-delay (0-3600) (1-3600)",
|
||||||
"Force initial delay for best-path and updates\n"
|
"Force initial delay for best-path and updates\n"
|
||||||
"Seconds\n"
|
"Seconds\n"
|
||||||
"Wait for peers to be established\n"
|
|
||||||
"Seconds\n")
|
"Seconds\n")
|
||||||
{
|
{
|
||||||
int idx_number = 1;
|
int idx_number = 1;
|
||||||
@ -1394,7 +1393,7 @@ DEFUN (no_bgp_update_delay,
|
|||||||
NO_STR
|
NO_STR
|
||||||
"Force initial delay for best-path and updates\n"
|
"Force initial delay for best-path and updates\n"
|
||||||
"Seconds\n"
|
"Seconds\n"
|
||||||
"Wait for peers to be established\n")
|
"Seconds\n")
|
||||||
{
|
{
|
||||||
return bgp_update_delay_deconfig_vty(vty);
|
return bgp_update_delay_deconfig_vty(vty);
|
||||||
}
|
}
|
||||||
@ -6237,11 +6236,10 @@ DEFUN_NOSH (address_family_vpnv6,
|
|||||||
|
|
||||||
DEFUN_NOSH (address_family_evpn,
|
DEFUN_NOSH (address_family_evpn,
|
||||||
address_family_evpn_cmd,
|
address_family_evpn_cmd,
|
||||||
"address-family <l2vpn evpn>",
|
"address-family l2vpn evpn",
|
||||||
"Enter Address Family command mode\n"
|
"Enter Address Family command mode\n"
|
||||||
"EVPN Address family\n"
|
"Address Family\n"
|
||||||
"Layer2 VPN Address family\n"
|
"Address Family modifier\n")
|
||||||
"Ethernet Virtual Private Network Subsequent Address Family\n")
|
|
||||||
{
|
{
|
||||||
vty->node = BGP_EVPN_NODE;
|
vty->node = BGP_EVPN_NODE;
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
@ -9619,8 +9617,7 @@ DEFUN (show_bgp_updgrps_afi_adj,
|
|||||||
"Detailed info about dynamic update groups\n"
|
"Detailed info about dynamic update groups\n"
|
||||||
"Advertisement queue\n"
|
"Advertisement queue\n"
|
||||||
"Announced routes\n"
|
"Announced routes\n"
|
||||||
"Packet queue\n"
|
"Packet queue\n")
|
||||||
"Specific subgroup info wanted for\n")
|
|
||||||
{
|
{
|
||||||
int idx_afi = 2;
|
int idx_afi = 2;
|
||||||
int idx_safi = 3;
|
int idx_safi = 3;
|
||||||
@ -9725,8 +9722,7 @@ DEFUN (show_bgp_updgrps_afi_adj_s,
|
|||||||
"Specific subgroup to display info for\n"
|
"Specific subgroup to display info for\n"
|
||||||
"Advertisement queue\n"
|
"Advertisement queue\n"
|
||||||
"Announced routes\n"
|
"Announced routes\n"
|
||||||
"Packet queue\n"
|
"Packet queue\n")
|
||||||
"Specific subgroup info wanted for\n")
|
|
||||||
{
|
{
|
||||||
int idx_afi = 2;
|
int idx_afi = 2;
|
||||||
int idx_safi = 3;
|
int idx_safi = 3;
|
||||||
@ -12171,8 +12167,7 @@ DEFUN (ip_lcommunity_list_standard,
|
|||||||
LCOMMUNITY_LIST_STR
|
LCOMMUNITY_LIST_STR
|
||||||
"Large Community list number (standard)\n"
|
"Large Community list number (standard)\n"
|
||||||
"Specify large community to reject\n"
|
"Specify large community to reject\n"
|
||||||
"Specify large community to accept\n"
|
"Specify large community to accept\n")
|
||||||
LCOMMUNITY_VAL_STR)
|
|
||||||
{
|
{
|
||||||
return lcommunity_list_set_vty (vty, argc, argv, LARGE_COMMUNITY_LIST_STANDARD, 0);
|
return lcommunity_list_set_vty (vty, argc, argv, LARGE_COMMUNITY_LIST_STANDARD, 0);
|
||||||
}
|
}
|
||||||
|
218
bgpd/bgp_zebra.c
218
bgpd/bgp_zebra.c
@ -1222,8 +1222,7 @@ bgp_zebra_announce (struct bgp_node *rn, struct prefix *p, struct bgp_info *info
|
|||||||
u_char distance;
|
u_char distance;
|
||||||
struct peer *peer;
|
struct peer *peer;
|
||||||
struct bgp_info *mpinfo;
|
struct bgp_info *mpinfo;
|
||||||
size_t oldsize, newsize;
|
u_int32_t metric;
|
||||||
u_int32_t nhcount, metric;
|
|
||||||
struct bgp_info local_info;
|
struct bgp_info local_info;
|
||||||
struct bgp_info *info_cp = &local_info;
|
struct bgp_info *info_cp = &local_info;
|
||||||
route_tag_t tag;
|
route_tag_t tag;
|
||||||
@ -1270,8 +1269,6 @@ bgp_zebra_announce (struct bgp_node *rn, struct prefix *p, struct bgp_info *info
|
|||||||
|
|
||||||
SET_FLAG (flags, ZEBRA_FLAG_INTERNAL);
|
SET_FLAG (flags, ZEBRA_FLAG_INTERNAL);
|
||||||
|
|
||||||
nhcount = 1 + bgp_info_mpath_count (info);
|
|
||||||
|
|
||||||
if (p->family == AF_INET && !BGP_ATTR_NEXTHOP_AFI_IP6(info->attr))
|
if (p->family == AF_INET && !BGP_ATTR_NEXTHOP_AFI_IP6(info->attr))
|
||||||
{
|
{
|
||||||
struct zapi_ipv4 api;
|
struct zapi_ipv4 api;
|
||||||
@ -1281,78 +1278,17 @@ bgp_zebra_announce (struct bgp_node *rn, struct prefix *p, struct bgp_info *info
|
|||||||
int has_valid_label = 0;
|
int has_valid_label = 0;
|
||||||
|
|
||||||
/* resize nexthop buffer size if necessary */
|
/* resize nexthop buffer size if necessary */
|
||||||
if ((oldsize = stream_get_size (bgp_nexthop_buf)) <
|
|
||||||
(sizeof (struct in_addr *) * nhcount))
|
|
||||||
{
|
|
||||||
newsize = sizeof (struct in_addr *) * nhcount;
|
|
||||||
newsize = stream_resize (bgp_nexthop_buf, newsize);
|
|
||||||
if (newsize == oldsize)
|
|
||||||
{
|
|
||||||
zlog_err ("can't resize nexthop buffer");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stream_reset (bgp_nexthop_buf);
|
stream_reset (bgp_nexthop_buf);
|
||||||
nexthop = NULL;
|
nexthop = NULL;
|
||||||
|
|
||||||
/* For labeled unicast, each nexthop has a label too. Resize label
|
stream_reset (bgp_label_buf);
|
||||||
* buffer, if required.
|
|
||||||
*/
|
|
||||||
if (safi == SAFI_UNICAST)
|
|
||||||
{
|
|
||||||
if ((oldsize = stream_get_size (bgp_label_buf)) <
|
|
||||||
(sizeof (unsigned int) * nhcount))
|
|
||||||
{
|
|
||||||
newsize = (sizeof (unsigned int) * nhcount);
|
|
||||||
newsize = stream_resize (bgp_label_buf, newsize);
|
|
||||||
if (newsize == oldsize)
|
|
||||||
{
|
|
||||||
zlog_err ("can't resize label buffer");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stream_reset (bgp_label_buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Metric is currently based on the best-path only. */
|
|
||||||
metric = info->attr->med;
|
|
||||||
|
|
||||||
if (bgp->table_map[afi][safi].name)
|
if (bgp->table_map[afi][safi].name)
|
||||||
{
|
BGP_INFO_ATTR_BUF_INIT();
|
||||||
BGP_INFO_ATTR_BUF_INIT();
|
|
||||||
|
|
||||||
/* Copy info and attributes, so the route-map apply doesn't modify the
|
/* Metric is currently based on the best-path only */
|
||||||
BGP route info. */
|
metric = info->attr->med;
|
||||||
BGP_INFO_ATTR_BUF_COPY(info, info_cp);
|
for (mpinfo = info ; mpinfo; mpinfo = bgp_info_mpath_next (mpinfo))
|
||||||
if (bgp_table_map_apply(bgp->table_map[afi][safi].map, p, info_cp))
|
|
||||||
{
|
|
||||||
metric = info_cp->attr->med;
|
|
||||||
nexthop = &info_cp->attr->nexthop;
|
|
||||||
|
|
||||||
if (info_cp->attr->extra)
|
|
||||||
tag = info_cp->attr->extra->tag;
|
|
||||||
}
|
|
||||||
BGP_INFO_ATTR_BUF_FREE(info_cp);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
nexthop = &info->attr->nexthop;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nexthop)
|
|
||||||
{
|
|
||||||
stream_put (bgp_nexthop_buf, &nexthop, sizeof (struct in_addr *));
|
|
||||||
valid_nh_count++;
|
|
||||||
if (info->extra && bgp_is_valid_label(&info->extra->label))
|
|
||||||
{
|
|
||||||
has_valid_label = 1;
|
|
||||||
label = label_pton(&info->extra->label);
|
|
||||||
stream_put (bgp_label_buf, &label, sizeof (mpls_label_t));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (mpinfo = bgp_info_mpath_first (info); mpinfo;
|
|
||||||
mpinfo = bgp_info_mpath_next (mpinfo))
|
|
||||||
{
|
{
|
||||||
nexthop = NULL;
|
nexthop = NULL;
|
||||||
|
|
||||||
@ -1362,13 +1298,19 @@ bgp_zebra_announce (struct bgp_node *rn, struct prefix *p, struct bgp_info *info
|
|||||||
BGP route info. */
|
BGP route info. */
|
||||||
BGP_INFO_ATTR_BUF_COPY(mpinfo, info_cp);
|
BGP_INFO_ATTR_BUF_COPY(mpinfo, info_cp);
|
||||||
if (bgp_table_map_apply(bgp->table_map[afi][safi].map, p, info_cp))
|
if (bgp_table_map_apply(bgp->table_map[afi][safi].map, p, info_cp))
|
||||||
nexthop = &info_cp->attr->nexthop;
|
{
|
||||||
|
if (mpinfo == info)
|
||||||
|
{
|
||||||
|
/* Metric is currently based on the best-path only */
|
||||||
|
metric = info_cp->attr->med;
|
||||||
|
tag = info_cp->attr->extra->tag;
|
||||||
|
}
|
||||||
|
nexthop = &info_cp->attr->nexthop;
|
||||||
|
}
|
||||||
BGP_INFO_ATTR_BUF_FREE(info_cp);
|
BGP_INFO_ATTR_BUF_FREE(info_cp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
nexthop = &mpinfo->attr->nexthop;
|
||||||
nexthop = &mpinfo->attr->nexthop;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nexthop == NULL)
|
if (nexthop == NULL)
|
||||||
continue;
|
continue;
|
||||||
@ -1469,110 +1411,20 @@ bgp_zebra_announce (struct bgp_node *rn, struct prefix *p, struct bgp_info *info
|
|||||||
char buf[2][INET6_ADDRSTRLEN];
|
char buf[2][INET6_ADDRSTRLEN];
|
||||||
int has_valid_label = 0;
|
int has_valid_label = 0;
|
||||||
|
|
||||||
/* resize nexthop buffer size if necessary */
|
|
||||||
if ((oldsize = stream_get_size (bgp_nexthop_buf)) <
|
|
||||||
(sizeof (struct in6_addr *) * nhcount))
|
|
||||||
{
|
|
||||||
newsize = (sizeof (struct in6_addr *) * nhcount);
|
|
||||||
newsize = stream_resize (bgp_nexthop_buf, newsize);
|
|
||||||
if (newsize == oldsize)
|
|
||||||
{
|
|
||||||
zlog_err ("can't resize nexthop buffer");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stream_reset (bgp_nexthop_buf);
|
stream_reset (bgp_nexthop_buf);
|
||||||
|
|
||||||
/* resize ifindices buffer size if necessary */
|
|
||||||
if ((oldsize = stream_get_size (bgp_ifindices_buf)) <
|
|
||||||
(sizeof (unsigned int) * nhcount))
|
|
||||||
{
|
|
||||||
newsize = (sizeof (unsigned int) * nhcount);
|
|
||||||
newsize = stream_resize (bgp_ifindices_buf, newsize);
|
|
||||||
if (newsize == oldsize)
|
|
||||||
{
|
|
||||||
zlog_err ("can't resize nexthop buffer");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stream_reset (bgp_ifindices_buf);
|
stream_reset (bgp_ifindices_buf);
|
||||||
|
stream_reset (bgp_label_buf);
|
||||||
/* For labeled unicast, each nexthop has a label too. Resize label
|
|
||||||
* buffer, if required.
|
|
||||||
*/
|
|
||||||
if (safi == SAFI_UNICAST)
|
|
||||||
{
|
|
||||||
if ((oldsize = stream_get_size (bgp_label_buf)) <
|
|
||||||
(sizeof (unsigned int) * nhcount))
|
|
||||||
{
|
|
||||||
newsize = (sizeof (unsigned int) * nhcount);
|
|
||||||
newsize = stream_resize (bgp_label_buf, newsize);
|
|
||||||
if (newsize == oldsize)
|
|
||||||
{
|
|
||||||
zlog_err ("can't resize label buffer");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stream_reset (bgp_label_buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
ifindex = 0;
|
ifindex = 0;
|
||||||
nexthop = NULL;
|
nexthop = NULL;
|
||||||
|
|
||||||
assert (info->attr->extra);
|
assert (info->attr->extra);
|
||||||
|
|
||||||
/* Metric is currently based on the best-path only. */
|
|
||||||
metric = info->attr->med;
|
|
||||||
|
|
||||||
if (bgp->table_map[afi][safi].name)
|
if (bgp->table_map[afi][safi].name)
|
||||||
{
|
BGP_INFO_ATTR_BUF_INIT();
|
||||||
BGP_INFO_ATTR_BUF_INIT();
|
|
||||||
|
|
||||||
/* Copy info and attributes, so the route-map apply doesn't modify the
|
metric = info->attr->med;
|
||||||
BGP route info. */
|
for (mpinfo = info ; mpinfo; mpinfo = bgp_info_mpath_next (mpinfo))
|
||||||
BGP_INFO_ATTR_BUF_COPY(info, info_cp);
|
|
||||||
if (bgp_table_map_apply(bgp->table_map[afi][safi].map, p, info_cp))
|
|
||||||
{
|
|
||||||
metric = info_cp->attr->med;
|
|
||||||
nexthop = bgp_info_to_ipv6_nexthop(info_cp);
|
|
||||||
|
|
||||||
if (info_cp->attr->extra)
|
|
||||||
tag = info_cp->attr->extra->tag;
|
|
||||||
}
|
|
||||||
BGP_INFO_ATTR_BUF_FREE(info_cp);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
nexthop = bgp_info_to_ipv6_nexthop(info);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nexthop)
|
|
||||||
{
|
|
||||||
if (info->attr->extra->mp_nexthop_len == BGP_ATTR_NHLEN_IPV6_GLOBAL_AND_LL)
|
|
||||||
if (info->peer->nexthop.ifp)
|
|
||||||
ifindex = info->peer->nexthop.ifp->ifindex;
|
|
||||||
|
|
||||||
if (!ifindex)
|
|
||||||
{
|
|
||||||
if (info->peer->conf_if || info->peer->ifname)
|
|
||||||
ifindex = if_nametoindex (info->peer->conf_if ? info->peer->conf_if : info->peer->ifname);
|
|
||||||
else if (info->peer->nexthop.ifp)
|
|
||||||
ifindex = info->peer->nexthop.ifp->ifindex;
|
|
||||||
}
|
|
||||||
stream_put (bgp_nexthop_buf, &nexthop, sizeof (struct in6_addr *));
|
|
||||||
stream_put (bgp_ifindices_buf, &ifindex, sizeof (unsigned int));
|
|
||||||
|
|
||||||
if (info->extra && bgp_is_valid_label(&info->extra->label))
|
|
||||||
{
|
|
||||||
has_valid_label = 1;
|
|
||||||
label = label_pton(&info->extra->label);
|
|
||||||
stream_put (bgp_label_buf, &label, sizeof (mpls_label_t));
|
|
||||||
}
|
|
||||||
valid_nh_count++;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (mpinfo = bgp_info_mpath_first (info); mpinfo;
|
|
||||||
mpinfo = bgp_info_mpath_next (mpinfo))
|
|
||||||
{
|
{
|
||||||
ifindex = 0;
|
ifindex = 0;
|
||||||
nexthop = NULL;
|
nexthop = NULL;
|
||||||
@ -1583,18 +1435,24 @@ bgp_zebra_announce (struct bgp_node *rn, struct prefix *p, struct bgp_info *info
|
|||||||
BGP route info. */
|
BGP route info. */
|
||||||
BGP_INFO_ATTR_BUF_COPY(mpinfo, info_cp);
|
BGP_INFO_ATTR_BUF_COPY(mpinfo, info_cp);
|
||||||
if (bgp_table_map_apply(bgp->table_map[afi][safi].map, p, info_cp))
|
if (bgp_table_map_apply(bgp->table_map[afi][safi].map, p, info_cp))
|
||||||
nexthop = bgp_info_to_ipv6_nexthop(info_cp);
|
{
|
||||||
|
if (mpinfo == info)
|
||||||
|
{
|
||||||
|
metric = info_cp->attr->med;
|
||||||
|
tag = info_cp->attr->extra->tag;
|
||||||
|
}
|
||||||
|
nexthop = bgp_info_to_ipv6_nexthop(info_cp);
|
||||||
|
}
|
||||||
BGP_INFO_ATTR_BUF_FREE(info_cp);
|
BGP_INFO_ATTR_BUF_FREE(info_cp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
nexthop = bgp_info_to_ipv6_nexthop(mpinfo);
|
||||||
nexthop = bgp_info_to_ipv6_nexthop(mpinfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nexthop == NULL)
|
if (nexthop == NULL)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (mpinfo->attr->extra->mp_nexthop_len == BGP_ATTR_NHLEN_IPV6_GLOBAL_AND_LL)
|
if ((mpinfo == info) &&
|
||||||
|
mpinfo->attr->extra->mp_nexthop_len == BGP_ATTR_NHLEN_IPV6_GLOBAL_AND_LL)
|
||||||
if (mpinfo->peer->nexthop.ifp)
|
if (mpinfo->peer->nexthop.ifp)
|
||||||
ifindex = mpinfo->peer->nexthop.ifp->ifindex;
|
ifindex = mpinfo->peer->nexthop.ifp->ifindex;
|
||||||
|
|
||||||
@ -2276,14 +2134,22 @@ bgp_zebra_init (struct thread_master *master)
|
|||||||
zclient->import_check_update = bgp_read_import_check_update;
|
zclient->import_check_update = bgp_read_import_check_update;
|
||||||
zclient->fec_update = bgp_read_fec_update;
|
zclient->fec_update = bgp_read_fec_update;
|
||||||
|
|
||||||
bgp_nexthop_buf = stream_new(BGP_NEXTHOP_BUF_SIZE);
|
bgp_nexthop_buf = stream_new(multipath_num * sizeof (struct in6_addr));
|
||||||
bgp_ifindices_buf = stream_new(BGP_IFINDICES_BUF_SIZE);
|
bgp_ifindices_buf = stream_new(multipath_num * sizeof (unsigned int));
|
||||||
bgp_label_buf = stream_new(BGP_LABEL_BUF_SIZE);
|
bgp_label_buf = stream_new(multipath_num * sizeof (unsigned int));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
bgp_zebra_destroy(void)
|
bgp_zebra_destroy(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (bgp_nexthop_buf)
|
||||||
|
stream_free (bgp_nexthop_buf);
|
||||||
|
if (bgp_ifindices_buf)
|
||||||
|
stream_free (bgp_ifindices_buf);
|
||||||
|
if (bgp_label_buf)
|
||||||
|
stream_free (bgp_label_buf);
|
||||||
|
|
||||||
if (zclient == NULL)
|
if (zclient == NULL)
|
||||||
return;
|
return;
|
||||||
zclient_stop(zclient);
|
zclient_stop(zclient);
|
||||||
|
@ -21,14 +21,6 @@
|
|||||||
#ifndef _QUAGGA_BGP_ZEBRA_H
|
#ifndef _QUAGGA_BGP_ZEBRA_H
|
||||||
#define _QUAGGA_BGP_ZEBRA_H
|
#define _QUAGGA_BGP_ZEBRA_H
|
||||||
|
|
||||||
#define BGP_NEXTHOP_BUF_SIZE (8 * sizeof (struct in_addr *))
|
|
||||||
#define BGP_IFINDICES_BUF_SIZE (8 * sizeof (unsigned int))
|
|
||||||
#define BGP_LABEL_BUF_SIZE (8 * sizeof (unsigned int))
|
|
||||||
|
|
||||||
extern struct stream *bgp_nexthop_buf;
|
|
||||||
extern struct stream *bgp_ifindices_buf;
|
|
||||||
extern struct stream *bgp_label_buf;
|
|
||||||
|
|
||||||
extern void bgp_zebra_init (struct thread_master *master);
|
extern void bgp_zebra_init (struct thread_master *master);
|
||||||
extern void bgp_zebra_destroy (void);
|
extern void bgp_zebra_destroy (void);
|
||||||
extern int bgp_if_update_all (void);
|
extern int bgp_if_update_all (void);
|
||||||
|
@ -7265,7 +7265,7 @@ bgp_config_write_family_header (struct vty *vty, afi_t afi, safi_t safi,
|
|||||||
if (*write)
|
if (*write)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
vty_outln (vty, " !%s address-family ", VTYNL);
|
vty_out (vty, " !%s address-family ", VTYNL);
|
||||||
|
|
||||||
if (afi == AFI_IP)
|
if (afi == AFI_IP)
|
||||||
{
|
{
|
||||||
|
@ -1313,9 +1313,9 @@ DEFUN (vnc_nve_group_redist_bgpdirect_no_prefixlist,
|
|||||||
NO_STR
|
NO_STR
|
||||||
"Redistribute from other protocol\n"
|
"Redistribute from other protocol\n"
|
||||||
"Redistribute from BGP directly\n"
|
"Redistribute from BGP directly\n"
|
||||||
"Disable redistribute filter\n"
|
|
||||||
"IPv4 routes\n"
|
"IPv4 routes\n"
|
||||||
"IPv6 routes\n" "Prefix-list for filtering redistributed routes\n")
|
"IPv6 routes\n"
|
||||||
|
"Prefix-list for filtering redistributed routes\n")
|
||||||
{
|
{
|
||||||
VTY_DECLVAR_CONTEXT(bgp, bgp);
|
VTY_DECLVAR_CONTEXT(bgp, bgp);
|
||||||
VTY_DECLVAR_CONTEXT_SUB(rfapi_nve_group_cfg, rfg)
|
VTY_DECLVAR_CONTEXT_SUB(rfapi_nve_group_cfg, rfg)
|
||||||
@ -1412,7 +1412,6 @@ DEFUN (vnc_nve_group_redist_bgpdirect_no_routemap,
|
|||||||
NO_STR
|
NO_STR
|
||||||
"Redistribute from other protocols\n"
|
"Redistribute from other protocols\n"
|
||||||
"Redistribute from BGP directly\n"
|
"Redistribute from BGP directly\n"
|
||||||
"Disable redistribute filter\n"
|
|
||||||
"Route-map for filtering redistributed routes\n")
|
"Route-map for filtering redistributed routes\n")
|
||||||
{
|
{
|
||||||
VTY_DECLVAR_CONTEXT(bgp, bgp);
|
VTY_DECLVAR_CONTEXT(bgp, bgp);
|
||||||
@ -2076,7 +2075,6 @@ DEFUN (vnc_nve_export_prefixlist,
|
|||||||
"Export to other protocols\n"
|
"Export to other protocols\n"
|
||||||
"Export to BGP\n"
|
"Export to BGP\n"
|
||||||
"Export to Zebra (experimental)\n"
|
"Export to Zebra (experimental)\n"
|
||||||
"Filters, used in 'registering-nve' export mode\n"
|
|
||||||
"IPv4 prefixes\n"
|
"IPv4 prefixes\n"
|
||||||
"IPv6 prefixes\n"
|
"IPv6 prefixes\n"
|
||||||
"Prefix-list for filtering exported routes\n" "Prefix list name\n")
|
"Prefix-list for filtering exported routes\n" "Prefix list name\n")
|
||||||
@ -2178,7 +2176,6 @@ DEFUN (vnc_nve_export_routemap,
|
|||||||
"Export to other protocols\n"
|
"Export to other protocols\n"
|
||||||
"Export to BGP\n"
|
"Export to BGP\n"
|
||||||
"Export to Zebra (experimental)\n"
|
"Export to Zebra (experimental)\n"
|
||||||
"Filters, used in 'registering-nve' export mode\n"
|
|
||||||
"Route-map for filtering exported routes\n" "Route map name\n")
|
"Route-map for filtering exported routes\n" "Route map name\n")
|
||||||
{
|
{
|
||||||
VTY_DECLVAR_CONTEXT(bgp, bgp);
|
VTY_DECLVAR_CONTEXT(bgp, bgp);
|
||||||
@ -3918,7 +3915,6 @@ DEFUN (vnc_l2_group_no_labels,
|
|||||||
vnc_l2_group_no_labels_cmd,
|
vnc_l2_group_no_labels_cmd,
|
||||||
"no labels LABELLIST...",
|
"no labels LABELLIST...",
|
||||||
NO_STR
|
NO_STR
|
||||||
"Remove label values associated with L2 group\n"
|
|
||||||
"Specify label values associated with L2 group\n"
|
"Specify label values associated with L2 group\n"
|
||||||
"Space separated list of label values <0-1048575>\n")
|
"Space separated list of label values <0-1048575>\n")
|
||||||
{
|
{
|
||||||
|
@ -2672,8 +2672,7 @@ DEFUN (add_vnc_prefix_cost_life,
|
|||||||
"Administrative cost [default: 255]\n"
|
"Administrative cost [default: 255]\n"
|
||||||
"Administrative cost\n"
|
"Administrative cost\n"
|
||||||
"Registration lifetime [default: infinite]\n"
|
"Registration lifetime [default: infinite]\n"
|
||||||
"Lifetime value in seconds\n"
|
"Lifetime value in seconds\n")
|
||||||
"[local-next-hop (A.B.C.D|X:X::X:X)] [local-cost <0-255>]\n")
|
|
||||||
{
|
{
|
||||||
/* pfx vn un cost life */
|
/* pfx vn un cost life */
|
||||||
return register_add (vty, argv[3], argv[5], argv[7], argv[9], argv[11],
|
return register_add (vty, argv[3], argv[5], argv[7], argv[9], argv[11],
|
||||||
@ -2698,8 +2697,7 @@ DEFUN (add_vnc_prefix_life_cost,
|
|||||||
"Registration lifetime [default: infinite]\n"
|
"Registration lifetime [default: infinite]\n"
|
||||||
"Lifetime value in seconds\n"
|
"Lifetime value in seconds\n"
|
||||||
"Administrative cost [default: 255]\n"
|
"Administrative cost [default: 255]\n"
|
||||||
"Administrative cost\n"
|
"Administrative cost\n")
|
||||||
"[local-next-hop (A.B.C.D|X:X::X:X)] [local-cost <0-255>]\n")
|
|
||||||
{
|
{
|
||||||
/* pfx vn un cost life */
|
/* pfx vn un cost life */
|
||||||
return register_add (vty, argv[3], argv[5], argv[7], argv[11], argv[9],
|
return register_add (vty, argv[3], argv[5], argv[7], argv[11], argv[9],
|
||||||
@ -2722,8 +2720,7 @@ DEFUN (add_vnc_prefix_cost,
|
|||||||
"UN IPv4 interface address\n"
|
"UN IPv4 interface address\n"
|
||||||
"UN IPv6 interface address\n"
|
"UN IPv6 interface address\n"
|
||||||
"Administrative cost [default: 255]\n"
|
"Administrative cost [default: 255]\n"
|
||||||
"Administrative cost\n"
|
"Administrative cost\n")
|
||||||
"[local-next-hop (A.B.C.D|X:X::X:X)] [local-cost <0-255>]\n")
|
|
||||||
{
|
{
|
||||||
/* pfx vn un cost life */
|
/* pfx vn un cost life */
|
||||||
return register_add (vty, argv[3], argv[5], argv[7], argv[9], NULL,
|
return register_add (vty, argv[3], argv[5], argv[7], argv[9], NULL,
|
||||||
@ -2746,8 +2743,7 @@ DEFUN (add_vnc_prefix_life,
|
|||||||
"UN IPv4 interface address\n"
|
"UN IPv4 interface address\n"
|
||||||
"UN IPv6 interface address\n"
|
"UN IPv6 interface address\n"
|
||||||
"Registration lifetime [default: infinite]\n"
|
"Registration lifetime [default: infinite]\n"
|
||||||
"Lifetime value in seconds\n"
|
"Lifetime value in seconds\n")
|
||||||
"[local-next-hop (A.B.C.D|X:X::X:X)] [local-cost <0-255>]\n")
|
|
||||||
{
|
{
|
||||||
/* pfx vn un cost life */
|
/* pfx vn un cost life */
|
||||||
return register_add (vty, argv[3], argv[5], argv[7], NULL, argv[9],
|
return register_add (vty, argv[3], argv[5], argv[7], NULL, argv[9],
|
||||||
@ -2768,8 +2764,7 @@ DEFUN (add_vnc_prefix,
|
|||||||
"VN IPv6 interface address\n"
|
"VN IPv6 interface address\n"
|
||||||
"UN address of NVE\n"
|
"UN address of NVE\n"
|
||||||
"UN IPv4 interface address\n"
|
"UN IPv4 interface address\n"
|
||||||
"UN IPv6 interface address\n"
|
"UN IPv6 interface address\n")
|
||||||
"[local-next-hop (A.B.C.D|X:X::X:X)] [local-cost <0-255>]\n")
|
|
||||||
{
|
{
|
||||||
/* pfx vn un cost life */
|
/* pfx vn un cost life */
|
||||||
return register_add (vty, argv[3], argv[5], argv[7], NULL, NULL,
|
return register_add (vty, argv[3], argv[5], argv[7], NULL, NULL,
|
||||||
@ -4064,7 +4059,6 @@ DEFUN (clear_vnc_mac_vn_un,
|
|||||||
"VNI keyword\n"
|
"VNI keyword\n"
|
||||||
"Any virtual network identifier\n"
|
"Any virtual network identifier\n"
|
||||||
"Virtual network identifier\n"
|
"Virtual network identifier\n"
|
||||||
"Virtual network identifier\n"
|
|
||||||
"VN address of NVE\n"
|
"VN address of NVE\n"
|
||||||
"All VN addresses\n"
|
"All VN addresses\n"
|
||||||
"VN IPv4 interface address\n"
|
"VN IPv4 interface address\n"
|
||||||
|
@ -134,10 +134,10 @@ other settings)
|
|||||||
|
|
||||||
### Install the init.d service
|
### Install the init.d service
|
||||||
|
|
||||||
sudo install -m 755 tools/frr /etc/init.d/frr
|
sudo install -m 755 tools/frr /etc/init.d/frr
|
||||||
sudo install -m 644 cumulus/etc/frr/daemons /etc/frr/daemons
|
sudo install -m 644 tools/etc/frr/daemons /etc/frr/daemons
|
||||||
sudo install -m 644 cumulus/etc/frr/daemons.conf /etc/frr/daemons.conf
|
sudo install -m 644 tools/etc/frr/daemons.conf /etc/frr/daemons.conf
|
||||||
sudo install -m 644 -o frr -g frr cumulus/etc/frr/vtysh.conf /etc/frr/vtysh.conf
|
sudo install -m 644 -o frr -g frr tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
|
||||||
|
|
||||||
### Enable daemons
|
### Enable daemons
|
||||||
Edit `/etc/frr/daemons` and change the value from "no" to "yes" for those daemons you want to start by systemd.
|
Edit `/etc/frr/daemons` and change the value from "no" to "yes" for those daemons you want to start by systemd.
|
||||||
|
@ -94,10 +94,10 @@ other settings)
|
|||||||
**Reboot** or use `sysctl -p` to apply the same config to the running system
|
**Reboot** or use `sysctl -p` to apply the same config to the running system
|
||||||
### Install the init.d service
|
### Install the init.d service
|
||||||
|
|
||||||
sudo install -m 755 tools/frr /etc/init.d/frr
|
sudo install -m 755 tools/frr /etc/init.d/frr
|
||||||
sudo install -m 644 cumulus/etc/frr/daemons /etc/frr/daemons
|
sudo install -m 644 tools/etc/frr/daemons /etc/frr/daemons
|
||||||
sudo install -m 644 cumulus/etc/frr/daemons.conf /etc/frr/daemons.conf
|
sudo install -m 644 tools/etc/frr/daemons.conf /etc/frr/daemons.conf
|
||||||
sudo install -m 644 -o frr -g frr cumulus/etc/frr/vtysh.conf /etc/frr/vtysh.conf
|
sudo install -m 644 -o frr -g frr tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
|
||||||
|
|
||||||
|
|
||||||
### Enable daemons
|
### Enable daemons
|
||||||
|
@ -116,12 +116,12 @@ Add the following lines to `/etc/modules-load.d/modules.conf`:
|
|||||||
|
|
||||||
### Install the systemd service
|
### Install the systemd service
|
||||||
|
|
||||||
sudo install -m 644 tools/frr.service /etc/systemd/system/frr.service
|
sudo install -m 644 tools/frr.service /etc/systemd/system/frr.service
|
||||||
sudo install -m 644 cumulus/etc/default/frr /etc/default/frr
|
sudo install -m 644 tools/etc/default/frr /etc/default/frr
|
||||||
sudo install -m 644 cumulus/etc/frr/daemons /etc/frr/daemons
|
sudo install -m 644 tools/etc/frr/daemons /etc/frr/daemons
|
||||||
sudo install -m 644 tools/etc/frr/daemons.conf /etc/frr/daemons.conf
|
sudo install -m 644 tools/etc/frr/daemons.conf /etc/frr/daemons.conf
|
||||||
sudo install -m 644 tools/etc/frr/frr.conf /etc/frr/frr.conf
|
sudo install -m 644 tools/etc/frr/frr.conf /etc/frr/frr.conf
|
||||||
sudo install -m 644 -o frr -g frr cumulus/etc/frr/vtysh.conf /etc/frr/vtysh.conf
|
sudo install -m 644 -o frr -g frr tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
|
||||||
|
|
||||||
### Enable daemons
|
### Enable daemons
|
||||||
|
|
||||||
|
@ -673,7 +673,6 @@ DEFUN (isis_hello_interval,
|
|||||||
"isis hello-interval (1-600)",
|
"isis hello-interval (1-600)",
|
||||||
"IS-IS commands\n"
|
"IS-IS commands\n"
|
||||||
"Set Hello interval\n"
|
"Set Hello interval\n"
|
||||||
"Hello interval value\n"
|
|
||||||
"Holdtime 1 seconds, interval depends on multiplier\n")
|
"Holdtime 1 seconds, interval depends on multiplier\n")
|
||||||
{
|
{
|
||||||
int idx_number = 2;
|
int idx_number = 2;
|
||||||
@ -721,7 +720,6 @@ DEFUN (isis_hello_interval_l1,
|
|||||||
"isis hello-interval (1-600) level-1",
|
"isis hello-interval (1-600) level-1",
|
||||||
"IS-IS commands\n"
|
"IS-IS commands\n"
|
||||||
"Set Hello interval\n"
|
"Set Hello interval\n"
|
||||||
"Hello interval value\n"
|
|
||||||
"Holdtime 1 second, interval depends on multiplier\n"
|
"Holdtime 1 second, interval depends on multiplier\n"
|
||||||
"Specify hello-interval for level-1 IIHs\n")
|
"Specify hello-interval for level-1 IIHs\n")
|
||||||
{
|
{
|
||||||
@ -769,7 +767,6 @@ DEFUN (isis_hello_interval_l2,
|
|||||||
"isis hello-interval (1-600) level-2",
|
"isis hello-interval (1-600) level-2",
|
||||||
"IS-IS commands\n"
|
"IS-IS commands\n"
|
||||||
"Set Hello interval\n"
|
"Set Hello interval\n"
|
||||||
"Hello interval value\n"
|
|
||||||
"Holdtime 1 second, interval depends on multiplier\n"
|
"Holdtime 1 second, interval depends on multiplier\n"
|
||||||
"Specify hello-interval for level-2 IIHs\n")
|
"Specify hello-interval for level-2 IIHs\n")
|
||||||
{
|
{
|
||||||
@ -958,8 +955,7 @@ DEFUN (isis_hello_padding,
|
|||||||
"isis hello padding",
|
"isis hello padding",
|
||||||
"IS-IS commands\n"
|
"IS-IS commands\n"
|
||||||
"Add padding to IS-IS hello packets\n"
|
"Add padding to IS-IS hello packets\n"
|
||||||
"Pad hello packets\n"
|
"Pad hello packets\n")
|
||||||
"<cr>\n")
|
|
||||||
{
|
{
|
||||||
struct isis_circuit *circuit = isis_circuit_lookup (vty);
|
struct isis_circuit *circuit = isis_circuit_lookup (vty);
|
||||||
if (!circuit)
|
if (!circuit)
|
||||||
@ -976,8 +972,7 @@ DEFUN (no_isis_hello_padding,
|
|||||||
NO_STR
|
NO_STR
|
||||||
"IS-IS commands\n"
|
"IS-IS commands\n"
|
||||||
"Add padding to IS-IS hello packets\n"
|
"Add padding to IS-IS hello packets\n"
|
||||||
"Pad hello packets\n"
|
"Pad hello packets\n")
|
||||||
"<cr>\n")
|
|
||||||
{
|
{
|
||||||
struct isis_circuit *circuit = isis_circuit_lookup (vty);
|
struct isis_circuit *circuit = isis_circuit_lookup (vty);
|
||||||
if (!circuit)
|
if (!circuit)
|
||||||
@ -1431,8 +1426,7 @@ DEFUN (no_metric_style,
|
|||||||
DEFUN (set_overload_bit,
|
DEFUN (set_overload_bit,
|
||||||
set_overload_bit_cmd,
|
set_overload_bit_cmd,
|
||||||
"set-overload-bit",
|
"set-overload-bit",
|
||||||
"Set overload bit to avoid any transit traffic\n"
|
"Set overload bit to avoid any transit traffic\n")
|
||||||
"Set overload bit\n")
|
|
||||||
{
|
{
|
||||||
VTY_DECLVAR_CONTEXT (isis_area, area);
|
VTY_DECLVAR_CONTEXT (isis_area, area);
|
||||||
|
|
||||||
@ -1455,8 +1449,7 @@ DEFUN (no_set_overload_bit,
|
|||||||
DEFUN (set_attached_bit,
|
DEFUN (set_attached_bit,
|
||||||
set_attached_bit_cmd,
|
set_attached_bit_cmd,
|
||||||
"set-attached-bit",
|
"set-attached-bit",
|
||||||
"Set attached bit to identify as L1/L2 router for inter-area traffic\n"
|
"Set attached bit to identify as L1/L2 router for inter-area traffic\n")
|
||||||
"Set attached bit\n")
|
|
||||||
{
|
{
|
||||||
VTY_DECLVAR_CONTEXT (isis_area, area);
|
VTY_DECLVAR_CONTEXT (isis_area, area);
|
||||||
|
|
||||||
|
@ -175,8 +175,7 @@ config_write_agentx (struct vty *vty)
|
|||||||
DEFUN (agentx_enable,
|
DEFUN (agentx_enable,
|
||||||
agentx_enable_cmd,
|
agentx_enable_cmd,
|
||||||
"agentx",
|
"agentx",
|
||||||
"SNMP AgentX protocol settings\n"
|
"SNMP AgentX protocol settings\n")
|
||||||
"SNMP AgentX settings\n")
|
|
||||||
{
|
{
|
||||||
if (!agentx_enabled)
|
if (!agentx_enabled)
|
||||||
{
|
{
|
||||||
@ -194,8 +193,7 @@ DEFUN (no_agentx,
|
|||||||
no_agentx_cmd,
|
no_agentx_cmd,
|
||||||
"no agentx",
|
"no agentx",
|
||||||
NO_STR
|
NO_STR
|
||||||
"SNMP AgentX protocol settings\n"
|
"SNMP AgentX protocol settings\n")
|
||||||
"SNMP AgentX settings\n")
|
|
||||||
{
|
{
|
||||||
if (!agentx_enabled) return CMD_SUCCESS;
|
if (!agentx_enabled) return CMD_SUCCESS;
|
||||||
vty_outln (vty, "SNMP AgentX support cannot be disabled once enabled");
|
vty_outln (vty, "SNMP AgentX support cannot be disabled once enabled");
|
||||||
|
@ -2200,7 +2200,6 @@ DEFUN (no_config_log_file,
|
|||||||
"Logging control\n"
|
"Logging control\n"
|
||||||
"Cancel logging to file\n"
|
"Cancel logging to file\n"
|
||||||
"Logging file name\n"
|
"Logging file name\n"
|
||||||
"Logging file name\n"
|
|
||||||
"Logging level\n")
|
"Logging level\n")
|
||||||
{
|
{
|
||||||
zlog_reset_file ();
|
zlog_reset_file ();
|
||||||
|
@ -443,6 +443,14 @@ terminate_graph (CMD_YYLTYPE *locp, struct parser_ctx *ctx,
|
|||||||
struct graph_node *end_element_node =
|
struct graph_node *end_element_node =
|
||||||
graph_new_node (ctx->graph, element, NULL);
|
graph_new_node (ctx->graph, element, NULL);
|
||||||
|
|
||||||
|
if (ctx->docstr && strlen (ctx->docstr) > 1) {
|
||||||
|
zlog_debug ("Excessive docstring while parsing '%s'", ctx->el->string);
|
||||||
|
zlog_debug ("----------");
|
||||||
|
while (ctx->docstr && ctx->docstr[1] != '\0')
|
||||||
|
zlog_debug ("%s", strsep(&ctx->docstr, "\n"));
|
||||||
|
zlog_debug ("----------\n");
|
||||||
|
}
|
||||||
|
|
||||||
graph_add_edge (finalnode, end_token_node);
|
graph_add_edge (finalnode, end_token_node);
|
||||||
graph_add_edge (end_token_node, end_element_node);
|
graph_add_edge (end_token_node, end_element_node);
|
||||||
}
|
}
|
||||||
|
@ -1736,9 +1736,7 @@ DEFPY (show_ipv6_prefix_list,
|
|||||||
PREFIX_LIST_STR
|
PREFIX_LIST_STR
|
||||||
"Name of a prefix list\n"
|
"Name of a prefix list\n"
|
||||||
"sequence number of an entry\n"
|
"sequence number of an entry\n"
|
||||||
"Sequence number\n"
|
"Sequence number\n")
|
||||||
"Lookup longer prefix\n"
|
|
||||||
"First matched prefix\n")
|
|
||||||
{
|
{
|
||||||
enum display_type dtype = normal_display;
|
enum display_type dtype = normal_display;
|
||||||
if (dseq)
|
if (dseq)
|
||||||
|
@ -107,7 +107,7 @@ vty_out_variadic (struct vty *vty, const char *format, va_list args)
|
|||||||
{
|
{
|
||||||
/* Try to write to initial buffer. */
|
/* Try to write to initial buffer. */
|
||||||
va_copy (cp, args);
|
va_copy (cp, args);
|
||||||
len = vsnprintf (buf, sizeof(buf), format, args);
|
len = vsnprintf (buf, sizeof(buf), format, cp);
|
||||||
va_end (cp);
|
va_end (cp);
|
||||||
|
|
||||||
/* Initial buffer is not enough. */
|
/* Initial buffer is not enough. */
|
||||||
@ -124,7 +124,9 @@ vty_out_variadic (struct vty *vty, const char *format, va_list args)
|
|||||||
if (! p)
|
if (! p)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
len = vsnprintf (p, size, format, args);
|
va_copy (cp, args);
|
||||||
|
len = vsnprintf (p, size, format, cp);
|
||||||
|
va_end (cp);
|
||||||
|
|
||||||
if (len > -1 && len < size)
|
if (len > -1 && len < size)
|
||||||
break;
|
break;
|
||||||
|
@ -1729,9 +1729,7 @@ DEFUN (no_ipv6_ospf6_network,
|
|||||||
NO_STR
|
NO_STR
|
||||||
IP6_STR
|
IP6_STR
|
||||||
OSPF6_STR
|
OSPF6_STR
|
||||||
"Network type\n"
|
"Set default network type\n")
|
||||||
"Default to whatever interface type system specifies"
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
VTY_DECLVAR_CONTEXT(interface, ifp);
|
VTY_DECLVAR_CONTEXT(interface, ifp);
|
||||||
struct ospf6_interface *oi;
|
struct ospf6_interface *oi;
|
||||||
|
@ -697,7 +697,6 @@ DEFUN (ospf6_stub_router_admin,
|
|||||||
ospf6_stub_router_admin_cmd,
|
ospf6_stub_router_admin_cmd,
|
||||||
"stub-router administrative",
|
"stub-router administrative",
|
||||||
"Make router a stub router\n"
|
"Make router a stub router\n"
|
||||||
"Advertise inability to be a transit router\n"
|
|
||||||
"Administratively applied, for an indefinite period\n")
|
"Administratively applied, for an indefinite period\n")
|
||||||
{
|
{
|
||||||
struct listnode *node;
|
struct listnode *node;
|
||||||
@ -722,7 +721,6 @@ DEFUN (no_ospf6_stub_router_admin,
|
|||||||
"no stub-router administrative",
|
"no stub-router administrative",
|
||||||
NO_STR
|
NO_STR
|
||||||
"Make router a stub router\n"
|
"Make router a stub router\n"
|
||||||
"Advertise ability to be a transit router\n"
|
|
||||||
"Administratively applied, for an indefinite period\n")
|
"Administratively applied, for an indefinite period\n")
|
||||||
{
|
{
|
||||||
struct listnode *node;
|
struct listnode *node;
|
||||||
|
@ -7095,8 +7095,7 @@ DEFUN (ospf_redistribute_source,
|
|||||||
"Metric for redistributed routes\n"
|
"Metric for redistributed routes\n"
|
||||||
"OSPF default metric\n"
|
"OSPF default metric\n"
|
||||||
"OSPF exterior metric type for redistributed routes\n"
|
"OSPF exterior metric type for redistributed routes\n"
|
||||||
"Set OSPF External Type 1 metrics\n"
|
"Set OSPF External Type 1/2 metrics\n"
|
||||||
"Set OSPF External Type 2 metrics\n"
|
|
||||||
"Route map reference\n"
|
"Route map reference\n"
|
||||||
"Pointer to route-map entries\n")
|
"Pointer to route-map entries\n")
|
||||||
{
|
{
|
||||||
@ -7147,8 +7146,7 @@ DEFUN (no_ospf_redistribute_source,
|
|||||||
"Metric for redistributed routes\n"
|
"Metric for redistributed routes\n"
|
||||||
"OSPF default metric\n"
|
"OSPF default metric\n"
|
||||||
"OSPF exterior metric type for redistributed routes\n"
|
"OSPF exterior metric type for redistributed routes\n"
|
||||||
"Set OSPF External Type 1 metrics\n"
|
"Set OSPF External Type 1/2 metrics\n"
|
||||||
"Set OSPF External Type 2 metrics\n"
|
|
||||||
"Route map reference\n"
|
"Route map reference\n"
|
||||||
"Pointer to route-map entries\n")
|
"Pointer to route-map entries\n")
|
||||||
{
|
{
|
||||||
@ -7179,8 +7177,7 @@ DEFUN (ospf_redistribute_instance_source,
|
|||||||
"Metric for redistributed routes\n"
|
"Metric for redistributed routes\n"
|
||||||
"OSPF default metric\n"
|
"OSPF default metric\n"
|
||||||
"OSPF exterior metric type for redistributed routes\n"
|
"OSPF exterior metric type for redistributed routes\n"
|
||||||
"Set OSPF External Type 1 metrics\n"
|
"Set OSPF External Type 1/2 metrics\n"
|
||||||
"Set OSPF External Type 2 metrics\n"
|
|
||||||
"Route map reference\n"
|
"Route map reference\n"
|
||||||
"Pointer to route-map entries\n")
|
"Pointer to route-map entries\n")
|
||||||
{
|
{
|
||||||
@ -7251,8 +7248,7 @@ DEFUN (no_ospf_redistribute_instance_source,
|
|||||||
"Metric for redistributed routes\n"
|
"Metric for redistributed routes\n"
|
||||||
"OSPF default metric\n"
|
"OSPF default metric\n"
|
||||||
"OSPF exterior metric type for redistributed routes\n"
|
"OSPF exterior metric type for redistributed routes\n"
|
||||||
"Set OSPF External Type 1 metrics\n"
|
"Set OSPF External Type 1/2 metrics\n"
|
||||||
"Set OSPF External Type 2 metrics\n"
|
|
||||||
"Route map reference\n"
|
"Route map reference\n"
|
||||||
"Pointer to route-map entries\n")
|
"Pointer to route-map entries\n")
|
||||||
{
|
{
|
||||||
@ -7345,8 +7341,7 @@ DEFUN (ospf_default_information_originate,
|
|||||||
"OSPF default metric\n"
|
"OSPF default metric\n"
|
||||||
"OSPF metric\n"
|
"OSPF metric\n"
|
||||||
"OSPF metric type for default routes\n"
|
"OSPF metric type for default routes\n"
|
||||||
"Set OSPF External Type 1 metrics\n"
|
"Set OSPF External Type 1/2 metrics\n"
|
||||||
"Set OSPF External Type 2 metrics\n"
|
|
||||||
"Route map reference\n"
|
"Route map reference\n"
|
||||||
"Pointer to route-map entries\n")
|
"Pointer to route-map entries\n")
|
||||||
{
|
{
|
||||||
@ -7392,8 +7387,7 @@ DEFUN (no_ospf_default_information_originate,
|
|||||||
"OSPF default metric\n"
|
"OSPF default metric\n"
|
||||||
"OSPF metric\n"
|
"OSPF metric\n"
|
||||||
"OSPF metric type for default routes\n"
|
"OSPF metric type for default routes\n"
|
||||||
"Set OSPF External Type 1 metrics\n"
|
"Set OSPF External Type 1/2 metrics\n"
|
||||||
"Set OSPF External Type 2 metrics\n"
|
|
||||||
"Route map reference\n"
|
"Route map reference\n"
|
||||||
"Pointer to route-map entries\n")
|
"Pointer to route-map entries\n")
|
||||||
{
|
{
|
||||||
|
@ -4256,7 +4256,6 @@ DEFUN_HIDDEN (no_ip_multicast_routing,
|
|||||||
"no ip multicast-routing",
|
"no ip multicast-routing",
|
||||||
NO_STR
|
NO_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
"Global IP configuration subcommands\n"
|
|
||||||
"Enable IP multicast forwarding\n")
|
"Enable IP multicast forwarding\n")
|
||||||
{
|
{
|
||||||
vty_outln (vty,
|
vty_outln (vty,
|
||||||
@ -5732,7 +5731,6 @@ DEFUN (debug_ssmpingd,
|
|||||||
debug_ssmpingd_cmd,
|
debug_ssmpingd_cmd,
|
||||||
"debug ssmpingd",
|
"debug ssmpingd",
|
||||||
DEBUG_STR
|
DEBUG_STR
|
||||||
DEBUG_PIM_STR
|
|
||||||
DEBUG_SSMPINGD_STR)
|
DEBUG_SSMPINGD_STR)
|
||||||
{
|
{
|
||||||
PIM_DO_DEBUG_SSMPINGD;
|
PIM_DO_DEBUG_SSMPINGD;
|
||||||
@ -5744,7 +5742,6 @@ DEFUN (no_debug_ssmpingd,
|
|||||||
"no debug ssmpingd",
|
"no debug ssmpingd",
|
||||||
NO_STR
|
NO_STR
|
||||||
DEBUG_STR
|
DEBUG_STR
|
||||||
DEBUG_PIM_STR
|
|
||||||
DEBUG_SSMPINGD_STR)
|
DEBUG_SSMPINGD_STR)
|
||||||
{
|
{
|
||||||
PIM_DONT_DEBUG_SSMPINGD;
|
PIM_DONT_DEBUG_SSMPINGD;
|
||||||
|
@ -1327,8 +1327,7 @@ DEFUN (ip_rip_receive_version,
|
|||||||
"Routing Information Protocol\n"
|
"Routing Information Protocol\n"
|
||||||
"Advertisement reception\n"
|
"Advertisement reception\n"
|
||||||
"Version control\n"
|
"Version control\n"
|
||||||
"RIP version 1\n"
|
"RIP version\n"
|
||||||
"RIP version 2\n"
|
|
||||||
"None\n")
|
"None\n")
|
||||||
{
|
{
|
||||||
VTY_DECLVAR_CONTEXT(interface, ifp);
|
VTY_DECLVAR_CONTEXT(interface, ifp);
|
||||||
@ -1357,31 +1356,13 @@ DEFUN (ip_rip_receive_version,
|
|||||||
|
|
||||||
DEFUN (ip_rip_receive_version_1,
|
DEFUN (ip_rip_receive_version_1,
|
||||||
ip_rip_receive_version_1_cmd,
|
ip_rip_receive_version_1_cmd,
|
||||||
"ip rip receive version (1-1) (2-2)",
|
"ip rip receive version <1 2|2 1>",
|
||||||
IP_STR
|
IP_STR
|
||||||
"Routing Information Protocol\n"
|
"Routing Information Protocol\n"
|
||||||
"Advertisement reception\n"
|
"Advertisement reception\n"
|
||||||
"Version control\n"
|
"Version control\n"
|
||||||
"RIP version 1\n"
|
"RIP version 1\n"
|
||||||
"RIP version 2\n")
|
"RIP version 2\n"
|
||||||
{
|
|
||||||
VTY_DECLVAR_CONTEXT(interface, ifp);
|
|
||||||
struct rip_interface *ri;
|
|
||||||
|
|
||||||
ri = ifp->info;
|
|
||||||
|
|
||||||
/* Version 1 and 2. */
|
|
||||||
ri->ri_receive = RI_RIP_VERSION_1_AND_2;
|
|
||||||
return CMD_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
DEFUN (ip_rip_receive_version_2,
|
|
||||||
ip_rip_receive_version_2_cmd,
|
|
||||||
"ip rip receive version (2-2) (1-1)",
|
|
||||||
IP_STR
|
|
||||||
"Routing Information Protocol\n"
|
|
||||||
"Advertisement reception\n"
|
|
||||||
"Version control\n"
|
|
||||||
"RIP version 2\n"
|
"RIP version 2\n"
|
||||||
"RIP version 1\n")
|
"RIP version 1\n")
|
||||||
{
|
{
|
||||||
@ -1403,8 +1384,7 @@ DEFUN (no_ip_rip_receive_version,
|
|||||||
"Routing Information Protocol\n"
|
"Routing Information Protocol\n"
|
||||||
"Advertisement reception\n"
|
"Advertisement reception\n"
|
||||||
"Version control\n"
|
"Version control\n"
|
||||||
"Version 1\n"
|
"RIP version\n")
|
||||||
"Version 2\n")
|
|
||||||
{
|
{
|
||||||
VTY_DECLVAR_CONTEXT(interface, ifp);
|
VTY_DECLVAR_CONTEXT(interface, ifp);
|
||||||
struct rip_interface *ri;
|
struct rip_interface *ri;
|
||||||
@ -1423,8 +1403,7 @@ DEFUN (ip_rip_send_version,
|
|||||||
"Routing Information Protocol\n"
|
"Routing Information Protocol\n"
|
||||||
"Advertisement transmission\n"
|
"Advertisement transmission\n"
|
||||||
"Version control\n"
|
"Version control\n"
|
||||||
"RIP version 1\n"
|
"RIP version\n")
|
||||||
"RIP version 2\n")
|
|
||||||
{
|
{
|
||||||
VTY_DECLVAR_CONTEXT(interface, ifp);
|
VTY_DECLVAR_CONTEXT(interface, ifp);
|
||||||
int idx_type = 4;
|
int idx_type = 4;
|
||||||
@ -1448,31 +1427,13 @@ DEFUN (ip_rip_send_version,
|
|||||||
|
|
||||||
DEFUN (ip_rip_send_version_1,
|
DEFUN (ip_rip_send_version_1,
|
||||||
ip_rip_send_version_1_cmd,
|
ip_rip_send_version_1_cmd,
|
||||||
"ip rip send version (1-1) (2-2)",
|
"ip rip send version <1 2|2 1>",
|
||||||
IP_STR
|
IP_STR
|
||||||
"Routing Information Protocol\n"
|
"Routing Information Protocol\n"
|
||||||
"Advertisement transmission\n"
|
"Advertisement transmission\n"
|
||||||
"Version control\n"
|
"Version control\n"
|
||||||
"RIP version 1\n"
|
"RIP version 1\n"
|
||||||
"RIP version 2\n")
|
"RIP version 2\n"
|
||||||
{
|
|
||||||
VTY_DECLVAR_CONTEXT(interface, ifp);
|
|
||||||
struct rip_interface *ri;
|
|
||||||
|
|
||||||
ri = ifp->info;
|
|
||||||
|
|
||||||
/* Version 1 and 2. */
|
|
||||||
ri->ri_send = RI_RIP_VERSION_1_AND_2;
|
|
||||||
return CMD_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
DEFUN (ip_rip_send_version_2,
|
|
||||||
ip_rip_send_version_2_cmd,
|
|
||||||
"ip rip send version (2-2) (1-1)",
|
|
||||||
IP_STR
|
|
||||||
"Routing Information Protocol\n"
|
|
||||||
"Advertisement transmission\n"
|
|
||||||
"Version control\n"
|
|
||||||
"RIP version 2\n"
|
"RIP version 2\n"
|
||||||
"RIP version 1\n")
|
"RIP version 1\n")
|
||||||
{
|
{
|
||||||
@ -1494,8 +1455,7 @@ DEFUN (no_ip_rip_send_version,
|
|||||||
"Routing Information Protocol\n"
|
"Routing Information Protocol\n"
|
||||||
"Advertisement transmission\n"
|
"Advertisement transmission\n"
|
||||||
"Version control\n"
|
"Version control\n"
|
||||||
"Version 1\n"
|
"RIP version\n")
|
||||||
"Version 2\n")
|
|
||||||
{
|
{
|
||||||
VTY_DECLVAR_CONTEXT(interface, ifp);
|
VTY_DECLVAR_CONTEXT(interface, ifp);
|
||||||
struct rip_interface *ri;
|
struct rip_interface *ri;
|
||||||
@ -2034,12 +1994,10 @@ rip_if_init (void)
|
|||||||
|
|
||||||
install_element (INTERFACE_NODE, &ip_rip_send_version_cmd);
|
install_element (INTERFACE_NODE, &ip_rip_send_version_cmd);
|
||||||
install_element (INTERFACE_NODE, &ip_rip_send_version_1_cmd);
|
install_element (INTERFACE_NODE, &ip_rip_send_version_1_cmd);
|
||||||
install_element (INTERFACE_NODE, &ip_rip_send_version_2_cmd);
|
|
||||||
install_element (INTERFACE_NODE, &no_ip_rip_send_version_cmd);
|
install_element (INTERFACE_NODE, &no_ip_rip_send_version_cmd);
|
||||||
|
|
||||||
install_element (INTERFACE_NODE, &ip_rip_receive_version_cmd);
|
install_element (INTERFACE_NODE, &ip_rip_receive_version_cmd);
|
||||||
install_element (INTERFACE_NODE, &ip_rip_receive_version_1_cmd);
|
install_element (INTERFACE_NODE, &ip_rip_receive_version_1_cmd);
|
||||||
install_element (INTERFACE_NODE, &ip_rip_receive_version_2_cmd);
|
|
||||||
install_element (INTERFACE_NODE, &no_ip_rip_receive_version_cmd);
|
install_element (INTERFACE_NODE, &no_ip_rip_receive_version_cmd);
|
||||||
|
|
||||||
install_element (INTERFACE_NODE, &ip_rip_v2_broadcast_cmd);
|
install_element (INTERFACE_NODE, &ip_rip_v2_broadcast_cmd);
|
||||||
|
@ -1272,9 +1272,8 @@ DEFUNSH (VTYSH_BGPD,
|
|||||||
address_family_evpn_cmd,
|
address_family_evpn_cmd,
|
||||||
"address-family <l2vpn evpn>",
|
"address-family <l2vpn evpn>",
|
||||||
"Enter Address Family command mode\n"
|
"Enter Address Family command mode\n"
|
||||||
"EVPN Address family\n"
|
"Address Family\n"
|
||||||
"Layer2 VPN Address family\n"
|
"Address Family modifier\n")
|
||||||
"Ethernet Virtual Private Network Subsequent Address Family\n")
|
|
||||||
{
|
{
|
||||||
vty->node = BGP_EVPN_NODE;
|
vty->node = BGP_EVPN_NODE;
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
@ -2446,10 +2445,9 @@ DEFUNSH (VTYSH_ALL,
|
|||||||
DEFUNSH (VTYSH_ALL,
|
DEFUNSH (VTYSH_ALL,
|
||||||
vtysh_config_password,
|
vtysh_config_password,
|
||||||
vtysh_password_cmd,
|
vtysh_password_cmd,
|
||||||
"password (8-8) WORD",
|
"password [(8-8)] WORD",
|
||||||
"Assign the terminal connection password\n"
|
"Assign the terminal connection password\n"
|
||||||
"Specifies a HIDDEN password will follow\n"
|
"Specifies a HIDDEN password will follow\n"
|
||||||
"dummy string \n"
|
|
||||||
"The HIDDEN line password string\n")
|
"The HIDDEN line password string\n")
|
||||||
{
|
{
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
|
@ -1774,7 +1774,7 @@ mpls_str2label (const char *label_str, u_int8_t *num_labels,
|
|||||||
|
|
||||||
if (!rc)
|
if (!rc)
|
||||||
{
|
{
|
||||||
*num_labels = i + 1;
|
*num_labels = i;
|
||||||
memcpy (labels, pl, *num_labels * sizeof (mpls_label_t));
|
memcpy (labels, pl, *num_labels * sizeof (mpls_label_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -433,8 +433,7 @@ DEFUN (ip_route_flags,
|
|||||||
"Set tag for this route\n"
|
"Set tag for this route\n"
|
||||||
"Tag value\n"
|
"Tag value\n"
|
||||||
"Distance value for this route\n"
|
"Distance value for this route\n"
|
||||||
VRF_CMD_HELP_STR
|
VRF_CMD_HELP_STR)
|
||||||
MPLS_LABEL_HELPSTR)
|
|
||||||
{
|
{
|
||||||
int idx_ipv4_prefixlen = 2;
|
int idx_ipv4_prefixlen = 2;
|
||||||
int idx_reject_blackhole = 3;
|
int idx_reject_blackhole = 3;
|
||||||
@ -466,8 +465,7 @@ DEFUN (ip_route_mask,
|
|||||||
"Set tag for this route\n"
|
"Set tag for this route\n"
|
||||||
"Tag value\n"
|
"Tag value\n"
|
||||||
"Distance value for this route\n"
|
"Distance value for this route\n"
|
||||||
VRF_CMD_HELP_STR
|
VRF_CMD_HELP_STR)
|
||||||
MPLS_LABEL_HELPSTR)
|
|
||||||
{
|
{
|
||||||
int idx_ipv4 = 2;
|
int idx_ipv4 = 2;
|
||||||
int idx_ipv4_2 = 3;
|
int idx_ipv4_2 = 3;
|
||||||
@ -497,8 +495,7 @@ DEFUN (ip_route_mask_flags,
|
|||||||
"Set tag for this route\n"
|
"Set tag for this route\n"
|
||||||
"Tag value\n"
|
"Tag value\n"
|
||||||
"Distance value for this route\n"
|
"Distance value for this route\n"
|
||||||
VRF_CMD_HELP_STR
|
VRF_CMD_HELP_STR)
|
||||||
MPLS_LABEL_HELPSTR)
|
|
||||||
{
|
{
|
||||||
int idx_ipv4 = 2;
|
int idx_ipv4 = 2;
|
||||||
int idx_ipv4_2 = 3;
|
int idx_ipv4_2 = 3;
|
||||||
@ -530,8 +527,7 @@ DEFUN (no_ip_route,
|
|||||||
"Tag of this route\n"
|
"Tag of this route\n"
|
||||||
"Tag value\n"
|
"Tag value\n"
|
||||||
"Distance value for this route\n"
|
"Distance value for this route\n"
|
||||||
VRF_CMD_HELP_STR
|
VRF_CMD_HELP_STR)
|
||||||
MPLS_LABEL_HELPSTR)
|
|
||||||
{
|
{
|
||||||
int idx_ipv4_prefixlen = 3;
|
int idx_ipv4_prefixlen = 3;
|
||||||
int idx_ipv4_ifname_null = 4;
|
int idx_ipv4_ifname_null = 4;
|
||||||
@ -561,8 +557,7 @@ DEFUN (no_ip_route_flags,
|
|||||||
"Tag of this route\n"
|
"Tag of this route\n"
|
||||||
"Tag value\n"
|
"Tag value\n"
|
||||||
"Distance value for this route\n"
|
"Distance value for this route\n"
|
||||||
VRF_CMD_HELP_STR
|
VRF_CMD_HELP_STR)
|
||||||
MPLS_LABEL_HELPSTR)
|
|
||||||
{
|
{
|
||||||
int idx_ipv4_prefixlen = 3;
|
int idx_ipv4_prefixlen = 3;
|
||||||
int idx_curr = 5;
|
int idx_curr = 5;
|
||||||
@ -591,8 +586,7 @@ DEFUN (no_ip_route_mask,
|
|||||||
"Tag of this route\n"
|
"Tag of this route\n"
|
||||||
"Tag value\n"
|
"Tag value\n"
|
||||||
"Distance value for this route\n"
|
"Distance value for this route\n"
|
||||||
VRF_CMD_HELP_STR
|
VRF_CMD_HELP_STR)
|
||||||
MPLS_LABEL_HELPSTR)
|
|
||||||
{
|
{
|
||||||
int idx_ipv4 = 3;
|
int idx_ipv4 = 3;
|
||||||
int idx_ipv4_2 = 4;
|
int idx_ipv4_2 = 4;
|
||||||
@ -624,8 +618,7 @@ DEFUN (no_ip_route_mask_flags,
|
|||||||
"Tag of this route\n"
|
"Tag of this route\n"
|
||||||
"Tag value\n"
|
"Tag value\n"
|
||||||
"Distance value for this route\n"
|
"Distance value for this route\n"
|
||||||
VRF_CMD_HELP_STR
|
VRF_CMD_HELP_STR)
|
||||||
MPLS_LABEL_HELPSTR)
|
|
||||||
{
|
{
|
||||||
int idx_ipv4 = 3;
|
int idx_ipv4 = 3;
|
||||||
int idx_ipv4_2 = 4;
|
int idx_ipv4_2 = 4;
|
||||||
@ -2170,8 +2163,7 @@ DEFUN (ipv6_route,
|
|||||||
"Set tag for this route\n"
|
"Set tag for this route\n"
|
||||||
"Tag value\n"
|
"Tag value\n"
|
||||||
"Distance value for this prefix\n"
|
"Distance value for this prefix\n"
|
||||||
VRF_CMD_HELP_STR
|
VRF_CMD_HELP_STR)
|
||||||
MPLS_LABEL_HELPSTR)
|
|
||||||
{
|
{
|
||||||
int idx_ipv6_prefixlen = 2;
|
int idx_ipv6_prefixlen = 2;
|
||||||
int idx_ipv6_ifname;
|
int idx_ipv6_ifname;
|
||||||
@ -2217,8 +2209,7 @@ DEFUN (ipv6_route_flags,
|
|||||||
"Set tag for this route\n"
|
"Set tag for this route\n"
|
||||||
"Tag value\n"
|
"Tag value\n"
|
||||||
"Distance value for this prefix\n"
|
"Distance value for this prefix\n"
|
||||||
VRF_CMD_HELP_STR
|
VRF_CMD_HELP_STR)
|
||||||
MPLS_LABEL_HELPSTR)
|
|
||||||
{
|
{
|
||||||
int idx_ipv6_prefixlen = 2;
|
int idx_ipv6_prefixlen = 2;
|
||||||
int idx_ipv6_ifname;
|
int idx_ipv6_ifname;
|
||||||
@ -2266,8 +2257,7 @@ DEFUN (ipv6_route_ifname,
|
|||||||
"Set tag for this route\n"
|
"Set tag for this route\n"
|
||||||
"Tag value\n"
|
"Tag value\n"
|
||||||
"Distance value for this prefix\n"
|
"Distance value for this prefix\n"
|
||||||
VRF_CMD_HELP_STR
|
VRF_CMD_HELP_STR)
|
||||||
MPLS_LABEL_HELPSTR)
|
|
||||||
{
|
{
|
||||||
int idx_ipv6_prefixlen = 2;
|
int idx_ipv6_prefixlen = 2;
|
||||||
int idx_ipv6 = 3;
|
int idx_ipv6 = 3;
|
||||||
@ -2317,8 +2307,7 @@ DEFUN (ipv6_route_ifname_flags,
|
|||||||
"Set tag for this route\n"
|
"Set tag for this route\n"
|
||||||
"Tag value\n"
|
"Tag value\n"
|
||||||
"Distance value for this prefix\n"
|
"Distance value for this prefix\n"
|
||||||
VRF_CMD_HELP_STR
|
VRF_CMD_HELP_STR)
|
||||||
MPLS_LABEL_HELPSTR)
|
|
||||||
{
|
{
|
||||||
int idx_ipv6_prefixlen = 2;
|
int idx_ipv6_prefixlen = 2;
|
||||||
int idx_ipv6;
|
int idx_ipv6;
|
||||||
@ -2371,8 +2360,7 @@ DEFUN (no_ipv6_route,
|
|||||||
"Set tag for this route\n"
|
"Set tag for this route\n"
|
||||||
"Tag value\n"
|
"Tag value\n"
|
||||||
"Distance value for this prefix\n"
|
"Distance value for this prefix\n"
|
||||||
VRF_CMD_HELP_STR
|
VRF_CMD_HELP_STR)
|
||||||
MPLS_LABEL_HELPSTR)
|
|
||||||
{
|
{
|
||||||
int idx_ipv6_prefixlen = 3;
|
int idx_ipv6_prefixlen = 3;
|
||||||
int idx_ipv6_ifname;
|
int idx_ipv6_ifname;
|
||||||
@ -2419,8 +2407,7 @@ DEFUN (no_ipv6_route_flags,
|
|||||||
"Set tag for this route\n"
|
"Set tag for this route\n"
|
||||||
"Tag value\n"
|
"Tag value\n"
|
||||||
"Distance value for this prefix\n"
|
"Distance value for this prefix\n"
|
||||||
VRF_CMD_HELP_STR
|
VRF_CMD_HELP_STR)
|
||||||
MPLS_LABEL_HELPSTR)
|
|
||||||
{
|
{
|
||||||
int idx_ipv6_prefixlen = 3;
|
int idx_ipv6_prefixlen = 3;
|
||||||
int idx_ipv6_ifname;
|
int idx_ipv6_ifname;
|
||||||
@ -2469,8 +2456,7 @@ DEFUN (no_ipv6_route_ifname,
|
|||||||
"Set tag for this route\n"
|
"Set tag for this route\n"
|
||||||
"Tag value\n"
|
"Tag value\n"
|
||||||
"Distance value for this prefix\n"
|
"Distance value for this prefix\n"
|
||||||
VRF_CMD_HELP_STR
|
VRF_CMD_HELP_STR)
|
||||||
MPLS_LABEL_HELPSTR)
|
|
||||||
{
|
{
|
||||||
int idx_ipv6_prefixlen = 3;
|
int idx_ipv6_prefixlen = 3;
|
||||||
int idx_ipv6;
|
int idx_ipv6;
|
||||||
@ -2521,8 +2507,7 @@ DEFUN (no_ipv6_route_ifname_flags,
|
|||||||
"Set tag for this route\n"
|
"Set tag for this route\n"
|
||||||
"Tag value\n"
|
"Tag value\n"
|
||||||
"Distance value for this prefix\n"
|
"Distance value for this prefix\n"
|
||||||
VRF_CMD_HELP_STR
|
VRF_CMD_HELP_STR)
|
||||||
MPLS_LABEL_HELPSTR)
|
|
||||||
{
|
{
|
||||||
int idx_ipv6_prefixlen = 3;
|
int idx_ipv6_prefixlen = 3;
|
||||||
int idx_ipv6;
|
int idx_ipv6;
|
||||||
|
Loading…
Reference in New Issue
Block a user