mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-25 20:38:34 +00:00
Merge pull request #83 from LabNConsulting/working/2.0/patch-set/2-no-vrf
Fix a number of VPN/Encap SAFI related issues (no VRF CLI changes)
This commit is contained in:
commit
190a5df69f
@ -2643,6 +2643,8 @@ bgp_packet_mpattr_start (struct stream *s, afi_t afi, safi_t safi, afi_t nh_afi,
|
|||||||
stream_putw (s, afi);
|
stream_putw (s, afi);
|
||||||
stream_putc (s, (safi == SAFI_MPLS_VPN) ? SAFI_MPLS_LABELED_VPN : safi);
|
stream_putc (s, (safi == SAFI_MPLS_VPN) ? SAFI_MPLS_LABELED_VPN : safi);
|
||||||
|
|
||||||
|
if (nh_afi == AFI_MAX)
|
||||||
|
nh_afi = BGP_NEXTHOP_AFI_FROM_NHLEN(attr->extra->mp_nexthop_len);
|
||||||
/* Nexthop */
|
/* Nexthop */
|
||||||
switch (nh_afi)
|
switch (nh_afi)
|
||||||
{
|
{
|
||||||
@ -2894,7 +2896,8 @@ bgp_packet_attribute (struct bgp *bgp, struct peer *peer,
|
|||||||
size_t mpattrlen_pos = 0;
|
size_t mpattrlen_pos = 0;
|
||||||
|
|
||||||
mpattrlen_pos = bgp_packet_mpattr_start(s, afi, safi,
|
mpattrlen_pos = bgp_packet_mpattr_start(s, afi, safi,
|
||||||
(peer_cap_enhe(peer) ? AFI_IP6 : afi),
|
(peer_cap_enhe(peer) ? AFI_IP6 :
|
||||||
|
AFI_MAX), /* get from NH */
|
||||||
vecarr, attr);
|
vecarr, attr);
|
||||||
bgp_packet_mpattr_prefix(s, afi, safi, p, prd, tag,
|
bgp_packet_mpattr_prefix(s, afi, safi, p, prd, tag,
|
||||||
addpath_encode, addpath_tx_id);
|
addpath_encode, addpath_tx_id);
|
||||||
|
179
bgpd/bgp_route.c
179
bgpd/bgp_route.c
@ -1435,9 +1435,10 @@ subgroup_announce_check (struct bgp_info *ri, struct update_subgroup *subgrp,
|
|||||||
|
|
||||||
#ifdef HAVE_IPV6
|
#ifdef HAVE_IPV6
|
||||||
#define NEXTHOP_IS_V6 (\
|
#define NEXTHOP_IS_V6 (\
|
||||||
(safi != SAFI_ENCAP && \
|
(safi != SAFI_ENCAP && safi != SAFI_MPLS_VPN &&\
|
||||||
(p->family == AF_INET6 || peer_cap_enhe(peer))) || \
|
(p->family == AF_INET6 || peer_cap_enhe(peer))) || \
|
||||||
(safi == SAFI_ENCAP && attr->extra->mp_nexthop_len == 16))
|
((safi == SAFI_ENCAP || safi == SAFI_MPLS_VPN) &&\
|
||||||
|
attr->extra->mp_nexthop_len >= IPV6_MAX_BYTELEN))
|
||||||
|
|
||||||
/* IPv6/MP starts with 1 nexthop. The link-local address is passed only if
|
/* IPv6/MP starts with 1 nexthop. The link-local address is passed only if
|
||||||
* the peer (group) is configured to receive link-local nexthop unchanged
|
* the peer (group) is configured to receive link-local nexthop unchanged
|
||||||
@ -8161,12 +8162,13 @@ DEFUN (show_ip_bgp,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4,
|
DEFUN (show_ip_bgp_ipv4,
|
||||||
show_ip_bgp_ipv4_cmd,
|
show_ip_bgp_ipv4_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" {json}",
|
"show ip bgp ipv4 (unicast|multicast) {json}",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"JavaScript Object Notation\n")
|
"JavaScript Object Notation\n")
|
||||||
{
|
{
|
||||||
u_char uj = use_json(argc, argv);
|
u_char uj = use_json(argc, argv);
|
||||||
@ -8178,11 +8180,12 @@ DEFUN (show_ip_bgp_ipv4,
|
|||||||
|
|
||||||
ALIAS (show_ip_bgp_ipv4,
|
ALIAS (show_ip_bgp_ipv4,
|
||||||
show_bgp_ipv4_safi_cmd,
|
show_bgp_ipv4_safi_cmd,
|
||||||
"show bgp ipv4 "BGP_SAFI_CMD_STR" {json}",
|
"show bgp ipv4 (unicast|multicast) {json}",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"JavaScript Object Notation\n")
|
"JavaScript Object Notation\n")
|
||||||
|
|
||||||
DEFUN (show_ip_bgp_route,
|
DEFUN (show_ip_bgp_route,
|
||||||
@ -8636,11 +8639,12 @@ ALIAS (show_bgp,
|
|||||||
|
|
||||||
DEFUN (show_bgp_ipv6_safi,
|
DEFUN (show_bgp_ipv6_safi,
|
||||||
show_bgp_ipv6_safi_cmd,
|
show_bgp_ipv6_safi_cmd,
|
||||||
"show bgp ipv6 "BGP_SAFI_CMD_STR" {json}",
|
"show bgp ipv6 (unicast|multicast) {json}",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"JavaScript Object Notation\n")
|
"JavaScript Object Notation\n")
|
||||||
{
|
{
|
||||||
u_char uj = use_json(argc, argv);
|
u_char uj = use_json(argc, argv);
|
||||||
@ -9246,12 +9250,13 @@ ALIAS (show_ip_bgp_flap_regexp,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_regexp,
|
DEFUN (show_ip_bgp_ipv4_regexp,
|
||||||
show_ip_bgp_ipv4_regexp_cmd,
|
show_ip_bgp_ipv4_regexp_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" regexp .LINE",
|
"show ip bgp ipv4 (unicast|multicast) regexp .LINE",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes matching the AS path regular expression\n"
|
"Display routes matching the AS path regular expression\n"
|
||||||
"A regular-expression to match the BGP AS paths\n")
|
"A regular-expression to match the BGP AS paths\n")
|
||||||
{
|
{
|
||||||
@ -9393,12 +9398,13 @@ ALIAS (show_ip_bgp_flap_prefix_list,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_prefix_list,
|
DEFUN (show_ip_bgp_ipv4_prefix_list,
|
||||||
show_ip_bgp_ipv4_prefix_list_cmd,
|
show_ip_bgp_ipv4_prefix_list_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" prefix-list WORD",
|
"show ip bgp ipv4 (unicast|multicast) prefix-list WORD",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes conforming to the prefix-list\n"
|
"Display routes conforming to the prefix-list\n"
|
||||||
"IP prefix-list name\n")
|
"IP prefix-list name\n")
|
||||||
{
|
{
|
||||||
@ -9539,12 +9545,13 @@ ALIAS (show_ip_bgp_flap_filter_list,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_filter_list,
|
DEFUN (show_ip_bgp_ipv4_filter_list,
|
||||||
show_ip_bgp_ipv4_filter_list_cmd,
|
show_ip_bgp_ipv4_filter_list_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" filter-list WORD",
|
"show ip bgp ipv4 (unicast|multicast) filter-list WORD",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes conforming to the filter-list\n"
|
"Display routes conforming to the filter-list\n"
|
||||||
"Regular expression access list name\n")
|
"Regular expression access list name\n")
|
||||||
{
|
{
|
||||||
@ -9622,12 +9629,13 @@ DEFUN (show_ip_bgp_dampening_info,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_dampening_parameters,
|
DEFUN (show_ip_bgp_ipv4_dampening_parameters,
|
||||||
show_ip_bgp_ipv4_dampening_parameters_cmd,
|
show_ip_bgp_ipv4_dampening_parameters_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" dampening parameters",
|
"show ip bgp ipv4 (unicast|multicast) dampening parameters",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display detailed information about dampening\n"
|
"Display detailed information about dampening\n"
|
||||||
"Display detail of configured dampening parameters\n")
|
"Display detail of configured dampening parameters\n")
|
||||||
{
|
{
|
||||||
@ -9639,12 +9647,13 @@ DEFUN (show_ip_bgp_ipv4_dampening_parameters,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_dampening_flap_stats,
|
DEFUN (show_ip_bgp_ipv4_dampening_flap_stats,
|
||||||
show_ip_bgp_ipv4_dampening_flap_stats_cmd,
|
show_ip_bgp_ipv4_dampening_flap_stats_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" dampening flap-statistics",
|
"show ip bgp ipv4 (unicast|multicast) dampening flap-statistics",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display detailed information about dampening\n"
|
"Display detailed information about dampening\n"
|
||||||
"Display flap statistics of routes\n")
|
"Display flap statistics of routes\n")
|
||||||
{
|
{
|
||||||
@ -9656,12 +9665,13 @@ DEFUN (show_ip_bgp_ipv4_dampening_flap_stats,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_dampening_dampd_paths,
|
DEFUN (show_ip_bgp_ipv4_dampening_dampd_paths,
|
||||||
show_ip_bgp_ipv4_dampening_dampd_paths_cmd,
|
show_ip_bgp_ipv4_dampening_dampd_paths_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" dampening dampened-paths",
|
"show ip bgp ipv4 (unicast|multicast) dampening dampened-paths",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display detailed information about dampening\n"
|
"Display detailed information about dampening\n"
|
||||||
"Display paths suppressed due to dampening\n")
|
"Display paths suppressed due to dampening\n")
|
||||||
{
|
{
|
||||||
@ -9750,12 +9760,13 @@ ALIAS (show_ip_bgp_flap_route_map,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_route_map,
|
DEFUN (show_ip_bgp_ipv4_route_map,
|
||||||
show_ip_bgp_ipv4_route_map_cmd,
|
show_ip_bgp_ipv4_route_map_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" route-map WORD",
|
"show ip bgp ipv4 (unicast|multicast) route-map WORD",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes matching the route-map\n"
|
"Display routes matching the route-map\n"
|
||||||
"A route-map to match on\n")
|
"A route-map to match on\n")
|
||||||
{
|
{
|
||||||
@ -9823,12 +9834,13 @@ ALIAS (show_ip_bgp_flap_cidr_only,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_cidr_only,
|
DEFUN (show_ip_bgp_ipv4_cidr_only,
|
||||||
show_ip_bgp_ipv4_cidr_only_cmd,
|
show_ip_bgp_ipv4_cidr_only_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" cidr-only",
|
"show ip bgp ipv4 (unicast|multicast) cidr-only",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display only routes with non-natural netmasks\n")
|
"Display only routes with non-natural netmasks\n")
|
||||||
{
|
{
|
||||||
safi_t safi;
|
safi_t safi;
|
||||||
@ -9851,12 +9863,13 @@ DEFUN (show_ip_bgp_community_all,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_community_all,
|
DEFUN (show_ip_bgp_ipv4_community_all,
|
||||||
show_ip_bgp_ipv4_community_all_cmd,
|
show_ip_bgp_ipv4_community_all_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" community",
|
"show ip bgp ipv4 (unicast|multicast) community",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes matching the communities\n")
|
"Display routes matching the communities\n")
|
||||||
{
|
{
|
||||||
safi_t safi;
|
safi_t safi;
|
||||||
@ -10054,12 +10067,13 @@ ALIAS (show_ip_bgp_community,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_community,
|
DEFUN (show_ip_bgp_ipv4_community,
|
||||||
show_ip_bgp_ipv4_community_cmd,
|
show_ip_bgp_ipv4_community_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" community (AA:NN|local-AS|no-advertise|no-export)",
|
"show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export)",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes matching the communities\n"
|
"Display routes matching the communities\n"
|
||||||
COMMUNITY_AANN_STR
|
COMMUNITY_AANN_STR
|
||||||
"Do not send outside local AS (well-known community)\n"
|
"Do not send outside local AS (well-known community)\n"
|
||||||
@ -10073,12 +10087,13 @@ DEFUN (show_ip_bgp_ipv4_community,
|
|||||||
|
|
||||||
ALIAS (show_ip_bgp_ipv4_community,
|
ALIAS (show_ip_bgp_ipv4_community,
|
||||||
show_ip_bgp_ipv4_community2_cmd,
|
show_ip_bgp_ipv4_community2_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)",
|
"show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes matching the communities\n"
|
"Display routes matching the communities\n"
|
||||||
COMMUNITY_AANN_STR
|
COMMUNITY_AANN_STR
|
||||||
"Do not send outside local AS (well-known community)\n"
|
"Do not send outside local AS (well-known community)\n"
|
||||||
@ -10091,12 +10106,13 @@ ALIAS (show_ip_bgp_ipv4_community,
|
|||||||
|
|
||||||
ALIAS (show_ip_bgp_ipv4_community,
|
ALIAS (show_ip_bgp_ipv4_community,
|
||||||
show_ip_bgp_ipv4_community3_cmd,
|
show_ip_bgp_ipv4_community3_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)",
|
"show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes matching the communities\n"
|
"Display routes matching the communities\n"
|
||||||
COMMUNITY_AANN_STR
|
COMMUNITY_AANN_STR
|
||||||
"Do not send outside local AS (well-known community)\n"
|
"Do not send outside local AS (well-known community)\n"
|
||||||
@ -10113,12 +10129,13 @@ ALIAS (show_ip_bgp_ipv4_community,
|
|||||||
|
|
||||||
ALIAS (show_ip_bgp_ipv4_community,
|
ALIAS (show_ip_bgp_ipv4_community,
|
||||||
show_ip_bgp_ipv4_community4_cmd,
|
show_ip_bgp_ipv4_community4_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)",
|
"show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes matching the communities\n"
|
"Display routes matching the communities\n"
|
||||||
COMMUNITY_AANN_STR
|
COMMUNITY_AANN_STR
|
||||||
"Do not send outside local AS (well-known community)\n"
|
"Do not send outside local AS (well-known community)\n"
|
||||||
@ -10139,11 +10156,14 @@ ALIAS (show_ip_bgp_ipv4_community,
|
|||||||
|
|
||||||
DEFUN (show_bgp_instance_afi_safi_community_all,
|
DEFUN (show_bgp_instance_afi_safi_community_all,
|
||||||
show_bgp_instance_afi_safi_community_all_cmd,
|
show_bgp_instance_afi_safi_community_all_cmd,
|
||||||
"show bgp " BGP_INSTANCE_CMD " "BGP_AFI_SAFI_CMD_STR" community",
|
"show bgp " BGP_INSTANCE_CMD " (ipv4|ipv6) (unicast|multicast) community",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
BGP_INSTANCE_HELP_STR
|
BGP_INSTANCE_HELP_STR
|
||||||
BGP_AFI_SAFI_HELP_STR
|
"Address family\n"
|
||||||
|
"Address family\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes matching the communities\n")
|
"Display routes matching the communities\n")
|
||||||
{
|
{
|
||||||
int afi;
|
int afi;
|
||||||
@ -10165,7 +10185,7 @@ DEFUN (show_bgp_instance_afi_safi_community_all,
|
|||||||
|
|
||||||
DEFUN (show_bgp_instance_afi_safi_community,
|
DEFUN (show_bgp_instance_afi_safi_community,
|
||||||
show_bgp_instance_afi_safi_community_cmd,
|
show_bgp_instance_afi_safi_community_cmd,
|
||||||
"show bgp " BGP_INSTANCE_CMD " "BGP_AFI_SAFI_CMD_STR" community (AA:NN|local-AS|no-advertise|no-export)",
|
"show bgp " BGP_INSTANCE_CMD " (ipv4|ipv6) (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export)",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
BGP_INSTANCE_HELP_STR
|
BGP_INSTANCE_HELP_STR
|
||||||
@ -10189,7 +10209,7 @@ DEFUN (show_bgp_instance_afi_safi_community,
|
|||||||
|
|
||||||
ALIAS (show_bgp_instance_afi_safi_community,
|
ALIAS (show_bgp_instance_afi_safi_community,
|
||||||
show_bgp_instance_afi_safi_community2_cmd,
|
show_bgp_instance_afi_safi_community2_cmd,
|
||||||
"show bgp " BGP_INSTANCE_CMD " "BGP_AFI_SAFI_CMD_STR" community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)",
|
"show bgp " BGP_INSTANCE_CMD " (ipv4|ipv6) (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
BGP_INSTANCE_HELP_STR
|
BGP_INSTANCE_HELP_STR
|
||||||
@ -10209,7 +10229,7 @@ ALIAS (show_bgp_instance_afi_safi_community,
|
|||||||
|
|
||||||
ALIAS (show_bgp_instance_afi_safi_community,
|
ALIAS (show_bgp_instance_afi_safi_community,
|
||||||
show_bgp_instance_afi_safi_community3_cmd,
|
show_bgp_instance_afi_safi_community3_cmd,
|
||||||
"show bgp " BGP_INSTANCE_CMD " "BGP_AFI_SAFI_CMD_STR" community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)",
|
"show bgp " BGP_INSTANCE_CMD " (ipv4|ipv6) (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
BGP_INSTANCE_HELP_STR
|
BGP_INSTANCE_HELP_STR
|
||||||
@ -10233,7 +10253,7 @@ ALIAS (show_bgp_instance_afi_safi_community,
|
|||||||
|
|
||||||
ALIAS (show_bgp_instance_afi_safi_community,
|
ALIAS (show_bgp_instance_afi_safi_community,
|
||||||
show_bgp_instance_afi_safi_community4_cmd,
|
show_bgp_instance_afi_safi_community4_cmd,
|
||||||
"show bgp " BGP_INSTANCE_CMD " "BGP_AFI_SAFI_CMD_STR" community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)",
|
"show bgp " BGP_INSTANCE_CMD " (ipv4|ipv6) (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
BGP_INSTANCE_HELP_STR
|
BGP_INSTANCE_HELP_STR
|
||||||
@ -10340,12 +10360,13 @@ ALIAS (show_ip_bgp_community_exact,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_community_exact,
|
DEFUN (show_ip_bgp_ipv4_community_exact,
|
||||||
show_ip_bgp_ipv4_community_exact_cmd,
|
show_ip_bgp_ipv4_community_exact_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" community (AA:NN|local-AS|no-advertise|no-export) exact-match",
|
"show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) exact-match",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes matching the communities\n"
|
"Display routes matching the communities\n"
|
||||||
COMMUNITY_AANN_STR
|
COMMUNITY_AANN_STR
|
||||||
"Do not send outside local AS (well-known community)\n"
|
"Do not send outside local AS (well-known community)\n"
|
||||||
@ -10360,12 +10381,13 @@ DEFUN (show_ip_bgp_ipv4_community_exact,
|
|||||||
|
|
||||||
ALIAS (show_ip_bgp_ipv4_community_exact,
|
ALIAS (show_ip_bgp_ipv4_community_exact,
|
||||||
show_ip_bgp_ipv4_community2_exact_cmd,
|
show_ip_bgp_ipv4_community2_exact_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match",
|
"show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes matching the communities\n"
|
"Display routes matching the communities\n"
|
||||||
COMMUNITY_AANN_STR
|
COMMUNITY_AANN_STR
|
||||||
"Do not send outside local AS (well-known community)\n"
|
"Do not send outside local AS (well-known community)\n"
|
||||||
@ -10379,12 +10401,13 @@ ALIAS (show_ip_bgp_ipv4_community_exact,
|
|||||||
|
|
||||||
ALIAS (show_ip_bgp_ipv4_community_exact,
|
ALIAS (show_ip_bgp_ipv4_community_exact,
|
||||||
show_ip_bgp_ipv4_community3_exact_cmd,
|
show_ip_bgp_ipv4_community3_exact_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match",
|
"show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes matching the communities\n"
|
"Display routes matching the communities\n"
|
||||||
COMMUNITY_AANN_STR
|
COMMUNITY_AANN_STR
|
||||||
"Do not send outside local AS (well-known community)\n"
|
"Do not send outside local AS (well-known community)\n"
|
||||||
@ -10402,12 +10425,13 @@ ALIAS (show_ip_bgp_ipv4_community_exact,
|
|||||||
|
|
||||||
ALIAS (show_ip_bgp_ipv4_community_exact,
|
ALIAS (show_ip_bgp_ipv4_community_exact,
|
||||||
show_ip_bgp_ipv4_community4_exact_cmd,
|
show_ip_bgp_ipv4_community4_exact_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match",
|
"show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes matching the communities\n"
|
"Display routes matching the communities\n"
|
||||||
COMMUNITY_AANN_STR
|
COMMUNITY_AANN_STR
|
||||||
"Do not send outside local AS (well-known community)\n"
|
"Do not send outside local AS (well-known community)\n"
|
||||||
@ -11107,12 +11131,13 @@ DEFUN (show_ip_bgp_instance_community_list,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_community_list,
|
DEFUN (show_ip_bgp_ipv4_community_list,
|
||||||
show_ip_bgp_ipv4_community_list_cmd,
|
show_ip_bgp_ipv4_community_list_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" community-list (<1-500>|WORD)",
|
"show ip bgp ipv4 (unicast|multicast) community-list (<1-500>|WORD)",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes matching the community-list\n"
|
"Display routes matching the community-list\n"
|
||||||
"community-list number\n"
|
"community-list number\n"
|
||||||
"community-list name\n")
|
"community-list name\n")
|
||||||
@ -11138,12 +11163,13 @@ DEFUN (show_ip_bgp_community_list_exact,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_community_list_exact,
|
DEFUN (show_ip_bgp_ipv4_community_list_exact,
|
||||||
show_ip_bgp_ipv4_community_list_exact_cmd,
|
show_ip_bgp_ipv4_community_list_exact_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" community-list (<1-500>|WORD) exact-match",
|
"show ip bgp ipv4 (unicast|multicast) community-list (<1-500>|WORD) exact-match",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Display routes matching the community-list\n"
|
"Display routes matching the community-list\n"
|
||||||
"community-list number\n"
|
"community-list number\n"
|
||||||
"community-list name\n"
|
"community-list name\n"
|
||||||
@ -11343,12 +11369,13 @@ ALIAS (show_ip_bgp_flap_prefix_longer,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_prefix_longer,
|
DEFUN (show_ip_bgp_ipv4_prefix_longer,
|
||||||
show_ip_bgp_ipv4_prefix_longer_cmd,
|
show_ip_bgp_ipv4_prefix_longer_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" A.B.C.D/M longer-prefixes",
|
"show ip bgp ipv4 (unicast|multicast) A.B.C.D/M longer-prefixes",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"IP prefix <network>/<length>, e.g., 35.0.0.0/8\n"
|
"IP prefix <network>/<length>, e.g., 35.0.0.0/8\n"
|
||||||
"Display route and more specific routes\n")
|
"Display route and more specific routes\n")
|
||||||
{
|
{
|
||||||
@ -11840,7 +11867,7 @@ DEFUN (show_bgp_statistics,
|
|||||||
"show bgp "BGP_AFI_SAFI_CMD_STR" statistics",
|
"show bgp "BGP_AFI_SAFI_CMD_STR" statistics",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
BGP_INSTANCE_HELP_STR
|
BGP_AFI_SAFI_HELP_STR
|
||||||
"BGP RIB advertisement statistics\n")
|
"BGP RIB advertisement statistics\n")
|
||||||
{
|
{
|
||||||
return bgp_table_stats_vty (vty, NULL, argv[0], argv[1]);
|
return bgp_table_stats_vty (vty, NULL, argv[0], argv[1]);
|
||||||
@ -12145,12 +12172,13 @@ DEFUN (show_bgp_instance_ipv6_neighbor_prefix_counts,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_neighbor_prefix_counts,
|
DEFUN (show_ip_bgp_ipv4_neighbor_prefix_counts,
|
||||||
show_ip_bgp_ipv4_neighbor_prefix_counts_cmd,
|
show_ip_bgp_ipv4_neighbor_prefix_counts_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" neighbors (A.B.C.D|X:X::X:X|WORD) prefix-counts {json}",
|
"show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X|WORD) prefix-counts {json}",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Detailed information on TCP and BGP neighbor connections\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 to display information about\n"
|
||||||
@ -12495,12 +12523,13 @@ ALIAS (show_ip_bgp_instance_neighbor_advertised_route,
|
|||||||
"JavaScript Object Notation\n")
|
"JavaScript Object Notation\n")
|
||||||
DEFUN (show_ip_bgp_ipv4_neighbor_advertised_route,
|
DEFUN (show_ip_bgp_ipv4_neighbor_advertised_route,
|
||||||
show_ip_bgp_ipv4_neighbor_advertised_route_cmd,
|
show_ip_bgp_ipv4_neighbor_advertised_route_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" neighbors (A.B.C.D|X:X::X:X|WORD) advertised-routes {json}",
|
"show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X|WORD) advertised-routes {json}",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Detailed information on TCP and BGP neighbor connections\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 to display information about\n"
|
||||||
@ -12527,12 +12556,13 @@ DEFUN (show_ip_bgp_ipv4_neighbor_advertised_route,
|
|||||||
|
|
||||||
ALIAS (show_ip_bgp_ipv4_neighbor_advertised_route,
|
ALIAS (show_ip_bgp_ipv4_neighbor_advertised_route,
|
||||||
show_ip_bgp_ipv4_neighbor_advertised_route_rmap_cmd,
|
show_ip_bgp_ipv4_neighbor_advertised_route_rmap_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" neighbors (A.B.C.D|X:X::X:X|WORD) advertised-routes route-map WORD {json}",
|
"show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X|WORD) advertised-routes route-map WORD {json}",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Detailed information on TCP and BGP neighbor connections\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 to display information about\n"
|
||||||
@ -12784,12 +12814,13 @@ ALIAS (show_ip_bgp_instance_neighbor_received_routes,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_neighbor_received_routes,
|
DEFUN (show_ip_bgp_ipv4_neighbor_received_routes,
|
||||||
show_ip_bgp_ipv4_neighbor_received_routes_cmd,
|
show_ip_bgp_ipv4_neighbor_received_routes_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" neighbors (A.B.C.D|X:X::X:X|WORD) received-routes {json}",
|
"show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X|WORD) received-routes {json}",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Detailed information on TCP and BGP neighbor connections\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 to display information about\n"
|
||||||
@ -12815,12 +12846,13 @@ DEFUN (show_ip_bgp_ipv4_neighbor_received_routes,
|
|||||||
|
|
||||||
ALIAS (show_ip_bgp_ipv4_neighbor_received_routes,
|
ALIAS (show_ip_bgp_ipv4_neighbor_received_routes,
|
||||||
show_ip_bgp_ipv4_neighbor_received_routes_rmap_cmd,
|
show_ip_bgp_ipv4_neighbor_received_routes_rmap_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" neighbors (A.B.C.D|X:X::X:X|WORD) received-routes route-map WORD {json}",
|
"show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X|WORD) received-routes route-map WORD {json}",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Detailed information on TCP and BGP neighbor connections\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 to display information about\n"
|
||||||
@ -12830,11 +12862,14 @@ ALIAS (show_ip_bgp_ipv4_neighbor_received_routes,
|
|||||||
|
|
||||||
DEFUN (show_bgp_instance_afi_safi_neighbor_adv_recd_routes,
|
DEFUN (show_bgp_instance_afi_safi_neighbor_adv_recd_routes,
|
||||||
show_bgp_instance_afi_safi_neighbor_adv_recd_routes_cmd,
|
show_bgp_instance_afi_safi_neighbor_adv_recd_routes_cmd,
|
||||||
"show bgp " BGP_INSTANCE_CMD " "BGP_AFI_SAFI_CMD_STR" neighbors (A.B.C.D|X:X::X:X|WORD) (advertised-routes|received-routes) {json}",
|
"show bgp " BGP_INSTANCE_CMD " (ipv4|ipv6) (unicast|multicast) neighbors (A.B.C.D|X:X::X:X|WORD) (advertised-routes|received-routes) {json}",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
BGP_INSTANCE_HELP_STR
|
BGP_INSTANCE_HELP_STR
|
||||||
BGP_AFI_SAFI_HELP_STR
|
"Address family\n"
|
||||||
|
"Address family\n"
|
||||||
|
"Address family modifier\n"
|
||||||
|
"Address family modifier\n"
|
||||||
"Detailed information on TCP and BGP neighbor connections\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 to display information about\n"
|
||||||
@ -12950,12 +12985,13 @@ DEFUN (show_ip_bgp_neighbor_received_prefix_filter,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_neighbor_received_prefix_filter,
|
DEFUN (show_ip_bgp_ipv4_neighbor_received_prefix_filter,
|
||||||
show_ip_bgp_ipv4_neighbor_received_prefix_filter_cmd,
|
show_ip_bgp_ipv4_neighbor_received_prefix_filter_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" neighbors (A.B.C.D|X:X::X:X|WORD) received prefix-filter {json}",
|
"show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X|WORD) received prefix-filter {json}",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Detailed information on TCP and BGP neighbor connections\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 to display information about\n"
|
||||||
@ -13450,12 +13486,13 @@ DEFUN (show_ip_bgp_neighbor_damp,
|
|||||||
|
|
||||||
DEFUN (show_ip_bgp_ipv4_neighbor_routes,
|
DEFUN (show_ip_bgp_ipv4_neighbor_routes,
|
||||||
show_ip_bgp_ipv4_neighbor_routes_cmd,
|
show_ip_bgp_ipv4_neighbor_routes_cmd,
|
||||||
"show ip bgp ipv4 "BGP_SAFI_CMD_STR" neighbors (A.B.C.D|X:X::X:X|WORD) routes {json}",
|
"show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X|WORD) routes {json}",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
"Address family\n"
|
"Address family\n"
|
||||||
BGP_SAFI_HELP_STR
|
"Address Family modifier\n"
|
||||||
|
"Address Family modifier\n"
|
||||||
"Detailed information on TCP and BGP neighbor connections\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 to display information about\n"
|
||||||
|
@ -179,6 +179,10 @@ struct bgp_static
|
|||||||
u_char tag[3];
|
u_char tag[3];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define BGP_NEXTHOP_AFI_FROM_NHLEN(nhlen) \
|
||||||
|
((nhlen) < IPV4_MAX_BYTELEN ? 0 : \
|
||||||
|
((nhlen) < IPV6_MAX_BYTELEN ? AFI_IP : AFI_IP6))
|
||||||
|
|
||||||
#define BGP_ATTR_NEXTHOP_AFI_IP6(attr) \
|
#define BGP_ATTR_NEXTHOP_AFI_IP6(attr) \
|
||||||
(! CHECK_FLAG (attr->flag, ATTR_FLAG_BIT (BGP_ATTR_NEXT_HOP)) && \
|
(! CHECK_FLAG (attr->flag, ATTR_FLAG_BIT (BGP_ATTR_NEXT_HOP)) && \
|
||||||
(attr)->extra && ((attr)->extra->mp_nexthop_len == 16 || \
|
(attr)->extra && ((attr)->extra->mp_nexthop_len == 16 || \
|
||||||
|
@ -418,10 +418,20 @@ bpacket_reformat_for_peer (struct bpacket *pkt, struct peer_af *paf)
|
|||||||
if (CHECK_FLAG (vec->flags, BPKT_ATTRVEC_FLAGS_UPDATED))
|
if (CHECK_FLAG (vec->flags, BPKT_ATTRVEC_FLAGS_UPDATED))
|
||||||
{
|
{
|
||||||
u_int8_t nhlen;
|
u_int8_t nhlen;
|
||||||
|
afi_t nhafi = AFI_MAX; /* NH AFI is based on nhlen! */
|
||||||
int route_map_sets_nh;
|
int route_map_sets_nh;
|
||||||
nhlen = stream_getc_from (s, vec->offset);
|
nhlen = stream_getc_from (s, vec->offset);
|
||||||
|
if (paf->afi == AFI_IP || paf->afi == AFI_IP6)
|
||||||
|
{
|
||||||
|
nhafi = BGP_NEXTHOP_AFI_FROM_NHLEN(nhlen);
|
||||||
|
if (peer_cap_enhe(peer))
|
||||||
|
nhafi = AFI_IP6;
|
||||||
|
if (paf->safi == SAFI_MPLS_VPN && /* if VPN && not global */
|
||||||
|
nhlen != BGP_ATTR_NHLEN_VPNV6_GLOBAL_AND_LL)
|
||||||
|
nhafi = AFI_MAX; /* no change allowed */
|
||||||
|
}
|
||||||
|
|
||||||
if (paf->afi == AFI_IP && !peer_cap_enhe(peer))
|
if (nhafi == AFI_IP)
|
||||||
{
|
{
|
||||||
struct in_addr v4nh, *mod_v4nh;
|
struct in_addr v4nh, *mod_v4nh;
|
||||||
int nh_modified = 0;
|
int nh_modified = 0;
|
||||||
@ -462,23 +472,24 @@ bpacket_reformat_for_peer (struct bpacket *pkt, struct peer_af *paf)
|
|||||||
(bgp_multiaccess_check_v4 (v4nh, peer) == 0) &&
|
(bgp_multiaccess_check_v4 (v4nh, peer) == 0) &&
|
||||||
!CHECK_FLAG(vec->flags,
|
!CHECK_FLAG(vec->flags,
|
||||||
BPKT_ATTRVEC_FLAGS_RMAP_NH_UNCHANGED) &&
|
BPKT_ATTRVEC_FLAGS_RMAP_NH_UNCHANGED) &&
|
||||||
!peer_af_flag_check (peer, paf->afi, paf->safi,
|
!peer_af_flag_check (peer, nhafi, paf->safi,
|
||||||
PEER_FLAG_NEXTHOP_UNCHANGED))
|
PEER_FLAG_NEXTHOP_UNCHANGED))
|
||||||
{
|
{
|
||||||
|
/* NOTE: not handling case where NH has new AFI */
|
||||||
mod_v4nh = &peer->nexthop.v4;
|
mod_v4nh = &peer->nexthop.v4;
|
||||||
nh_modified = 1;
|
nh_modified = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nh_modified)
|
if (nh_modified) /* allow for VPN RD */
|
||||||
stream_put_in_addr_at (s, vec->offset + 1, mod_v4nh);
|
stream_put_in_addr_at (s, vec->offset + 1 + nhlen - 4, mod_v4nh);
|
||||||
|
|
||||||
if (bgp_debug_update(peer, NULL, NULL, 0))
|
if (bgp_debug_update(peer, NULL, NULL, 0))
|
||||||
zlog_debug ("u%" PRIu64 ":s%" PRIu64 " %s send UPDATE w/ nexthop %s",
|
zlog_debug ("u%" PRIu64 ":s%" PRIu64 " %s send UPDATE w/ nexthop %s%s",
|
||||||
PAF_SUBGRP(paf)->update_group->id, PAF_SUBGRP(paf)->id,
|
PAF_SUBGRP(paf)->update_group->id, PAF_SUBGRP(paf)->id,
|
||||||
peer->host, inet_ntoa (*mod_v4nh));
|
peer->host, inet_ntoa (*mod_v4nh),
|
||||||
|
(nhlen == 12 ? " and RD" : ""));
|
||||||
}
|
}
|
||||||
else if (paf->afi == AFI_IP6 || peer_cap_enhe(peer))
|
else if (nhafi == AFI_IP6)
|
||||||
{
|
{
|
||||||
struct in6_addr v6nhglobal, *mod_v6nhg;
|
struct in6_addr v6nhglobal, *mod_v6nhg;
|
||||||
struct in6_addr v6nhlocal, *mod_v6nhl;
|
struct in6_addr v6nhlocal, *mod_v6nhl;
|
||||||
@ -515,17 +526,18 @@ bpacket_reformat_for_peer (struct bpacket *pkt, struct peer_af *paf)
|
|||||||
else if (peer->sort == BGP_PEER_EBGP &&
|
else if (peer->sort == BGP_PEER_EBGP &&
|
||||||
!CHECK_FLAG(vec->flags,
|
!CHECK_FLAG(vec->flags,
|
||||||
BPKT_ATTRVEC_FLAGS_RMAP_NH_UNCHANGED) &&
|
BPKT_ATTRVEC_FLAGS_RMAP_NH_UNCHANGED) &&
|
||||||
!peer_af_flag_check (peer, paf->afi, paf->safi,
|
!peer_af_flag_check (peer, nhafi, paf->safi,
|
||||||
PEER_FLAG_NEXTHOP_UNCHANGED))
|
PEER_FLAG_NEXTHOP_UNCHANGED))
|
||||||
{
|
{
|
||||||
|
/* NOTE: not handling case where NH has new AFI */
|
||||||
mod_v6nhg = &peer->nexthop.v6_global;
|
mod_v6nhg = &peer->nexthop.v6_global;
|
||||||
gnh_modified = 1;
|
gnh_modified = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (nhlen == 32)
|
if (nhlen == 32 || nhlen == 48) /* 48 == VPN */
|
||||||
{
|
{
|
||||||
stream_get_from (&v6nhlocal, s, vec->offset + 1 + 16, 16);
|
stream_get_from (&v6nhlocal, s, vec->offset + 1 + (nhlen-IPV6_MAX_BYTELEN), IPV6_MAX_BYTELEN);
|
||||||
if (IN6_IS_ADDR_UNSPECIFIED (&v6nhlocal))
|
if (IN6_IS_ADDR_UNSPECIFIED (&v6nhlocal))
|
||||||
{
|
{
|
||||||
mod_v6nhl = &peer->nexthop.v6_local;
|
mod_v6nhl = &peer->nexthop.v6_local;
|
||||||
@ -534,25 +546,27 @@ bpacket_reformat_for_peer (struct bpacket *pkt, struct peer_af *paf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (gnh_modified)
|
if (gnh_modified)
|
||||||
stream_put_in6_addr_at (s, vec->offset + 1, mod_v6nhg);
|
stream_put_in6_addr_at (s, vec->offset + 1 + (nhlen-IPV6_MAX_BYTELEN), mod_v6nhg);
|
||||||
if (lnh_modified)
|
if (lnh_modified)
|
||||||
stream_put_in6_addr_at (s, vec->offset + 1 + 16, mod_v6nhl);
|
stream_put_in6_addr_at (s, vec->offset + 1 + (nhlen-IPV6_MAX_BYTELEN), mod_v6nhl);
|
||||||
|
|
||||||
if (bgp_debug_update(peer, NULL, NULL, 0))
|
if (bgp_debug_update(peer, NULL, NULL, 0))
|
||||||
{
|
{
|
||||||
if (nhlen == 32)
|
if (nhlen == 32 || nhlen == 48)
|
||||||
zlog_debug ("u%" PRIu64 ":s%" PRIu64 " %s send UPDATE w/ mp_nexthops %s, %s",
|
zlog_debug ("u%" PRIu64 ":s%" PRIu64 " %s send UPDATE w/ mp_nexthops %s, %s%s",
|
||||||
PAF_SUBGRP(paf)->update_group->id,
|
PAF_SUBGRP(paf)->update_group->id,
|
||||||
PAF_SUBGRP(paf)->id,
|
PAF_SUBGRP(paf)->id,
|
||||||
peer->host,
|
peer->host,
|
||||||
inet_ntop (AF_INET6, mod_v6nhg, buf, BUFSIZ),
|
inet_ntop (AF_INET6, mod_v6nhg, buf, BUFSIZ),
|
||||||
inet_ntop (AF_INET6, mod_v6nhl, buf2, BUFSIZ));
|
inet_ntop (AF_INET6, mod_v6nhl, buf2, BUFSIZ),
|
||||||
|
(nhlen == 48 ? " and RD" : ""));
|
||||||
else
|
else
|
||||||
zlog_debug ("u%" PRIu64 ":s%" PRIu64 " %s send UPDATE w/ mp_nexthop %s",
|
zlog_debug ("u%" PRIu64 ":s%" PRIu64 " %s send UPDATE w/ mp_nexthop %s%s",
|
||||||
PAF_SUBGRP(paf)->update_group->id,
|
PAF_SUBGRP(paf)->update_group->id,
|
||||||
PAF_SUBGRP(paf)->id,
|
PAF_SUBGRP(paf)->id,
|
||||||
peer->host,
|
peer->host,
|
||||||
inet_ntop (AF_INET6, mod_v6nhg, buf, BUFSIZ));
|
inet_ntop (AF_INET6, mod_v6nhg, buf, BUFSIZ),
|
||||||
|
(nhlen == 24 ? " and RD" : ""));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -747,7 +761,8 @@ subgroup_update_packet (struct update_subgroup *subgrp)
|
|||||||
|
|
||||||
if (stream_empty (snlri))
|
if (stream_empty (snlri))
|
||||||
mpattrlen_pos = bgp_packet_mpattr_start (snlri, afi, safi,
|
mpattrlen_pos = bgp_packet_mpattr_start (snlri, afi, safi,
|
||||||
(peer_cap_enhe(peer) ? AFI_IP6 : afi),
|
(peer_cap_enhe(peer) ? AFI_IP6 :
|
||||||
|
AFI_MAX), /* get from NH */
|
||||||
&vecarr, adv->baa->attr);
|
&vecarr, adv->baa->attr);
|
||||||
bgp_packet_mpattr_prefix (snlri, afi, safi, &rn->p, prd, tag,
|
bgp_packet_mpattr_prefix (snlri, afi, safi, &rn->p, prd, tag,
|
||||||
addpath_encode, addpath_tx_id);
|
addpath_encode, addpath_tx_id);
|
||||||
|
@ -7142,9 +7142,9 @@ bgp_config_write_family_header (struct vty *vty, afi_t afi, safi_t safi,
|
|||||||
else if (safi == SAFI_MULTICAST)
|
else if (safi == SAFI_MULTICAST)
|
||||||
vty_out (vty, "ipv4 multicast");
|
vty_out (vty, "ipv4 multicast");
|
||||||
else if (safi == SAFI_MPLS_VPN)
|
else if (safi == SAFI_MPLS_VPN)
|
||||||
vty_out (vty, "vpnv4");
|
vty_out (vty, "ipv4 vpn");
|
||||||
else if (safi == SAFI_ENCAP)
|
else if (safi == SAFI_ENCAP)
|
||||||
vty_out (vty, "encap");
|
vty_out (vty, "ipv4 encap");
|
||||||
}
|
}
|
||||||
else if (afi == AFI_IP6)
|
else if (afi == AFI_IP6)
|
||||||
{
|
{
|
||||||
@ -7153,9 +7153,9 @@ bgp_config_write_family_header (struct vty *vty, afi_t afi, safi_t safi,
|
|||||||
else if (safi == SAFI_MULTICAST)
|
else if (safi == SAFI_MULTICAST)
|
||||||
vty_out (vty, "ipv6 multicast");
|
vty_out (vty, "ipv6 multicast");
|
||||||
else if (safi == SAFI_MPLS_VPN)
|
else if (safi == SAFI_MPLS_VPN)
|
||||||
vty_out (vty, "vpnv6");
|
vty_out (vty, "ipv6 vpn");
|
||||||
else if (safi == SAFI_ENCAP)
|
else if (safi == SAFI_ENCAP)
|
||||||
vty_out (vty, "encapv6");
|
vty_out (vty, "ipv6 encap");
|
||||||
}
|
}
|
||||||
|
|
||||||
vty_out (vty, "%s", VTY_NEWLINE);
|
vty_out (vty, "%s", VTY_NEWLINE);
|
||||||
|
@ -768,7 +768,6 @@ add_vnc_route (
|
|||||||
bgp_attr_extra_free (&attr);
|
bgp_attr_extra_free (&attr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
nexthop = un_addr; /* UN used as MPLS NLRI nexthop */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (local_pref)
|
if (local_pref)
|
||||||
@ -2778,7 +2777,7 @@ rfapi_register (
|
|||||||
NULL,
|
NULL,
|
||||||
action == RFAPI_REGISTER_KILL);
|
action == RFAPI_REGISTER_KILL);
|
||||||
|
|
||||||
if (0 == rfapiApDelete (bgp, rfd, &p, pfx_mac, &adv_tunnel))
|
if (0 == rfapiApDelete (bgp, rfd, &p, pfx_mac, &prd, &adv_tunnel))
|
||||||
{
|
{
|
||||||
if (adv_tunnel)
|
if (adv_tunnel)
|
||||||
rfapiTunnelRouteAnnounce (bgp, rfd, &rfd->max_prefix_lifetime);
|
rfapiTunnelRouteAnnounce (bgp, rfd, &rfd->max_prefix_lifetime);
|
||||||
|
@ -103,12 +103,11 @@ sl_adb_lifetime_cmp (void *adb1, void *adb2)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
rfapiApInit (struct rfapi_advertised_prefixes *ap)
|
rfapiApInit (struct rfapi_advertised_prefixes *ap)
|
||||||
{
|
{
|
||||||
ap->ipN_by_prefix = skiplist_new (0, vnc_prefix_cmp, NULL);
|
ap->ipN_by_prefix = skiplist_new (0, rfapi_rib_key_cmp, NULL);
|
||||||
ap->ip0_by_ether = skiplist_new (0, vnc_prefix_cmp, NULL);
|
ap->ip0_by_ether = skiplist_new (0, rfapi_rib_key_cmp, NULL);
|
||||||
ap->by_lifetime = skiplist_new (0, sl_adb_lifetime_cmp, NULL);
|
ap->by_lifetime = skiplist_new (0, sl_adb_lifetime_cmp, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,7 +191,7 @@ rfapiApReadvertiseAll (struct bgp *bgp, struct rfapi_descriptor *rfd)
|
|||||||
* TBD this is not quite right. When pfx_ip is 0/32 or 0/128,
|
* TBD this is not quite right. When pfx_ip is 0/32 or 0/128,
|
||||||
* we need to substitute the VN address as the prefix
|
* we need to substitute the VN address as the prefix
|
||||||
*/
|
*/
|
||||||
add_vnc_route (rfd, bgp, SAFI_MPLS_VPN, &adb->prefix_ip, &prd, /* RD to use (0 for ENCAP) */
|
add_vnc_route (rfd, bgp, SAFI_MPLS_VPN, &adb->u.s.prefix_ip, &prd, /* RD to use (0 for ENCAP) */
|
||||||
&rfd->vn_addr, /* nexthop */
|
&rfd->vn_addr, /* nexthop */
|
||||||
&local_pref, &adb->lifetime, NULL, NULL, /* struct rfapi_un_option */
|
&local_pref, &adb->lifetime, NULL, NULL, /* struct rfapi_un_option */
|
||||||
NULL, /* struct rfapi_vn_option */
|
NULL, /* struct rfapi_vn_option */
|
||||||
@ -221,11 +220,11 @@ rfapiApWithdrawAll (struct bgp *bgp, struct rfapi_descriptor *rfd)
|
|||||||
struct prefix pfx_vn_buf;
|
struct prefix pfx_vn_buf;
|
||||||
struct prefix *pfx_ip;
|
struct prefix *pfx_ip;
|
||||||
|
|
||||||
if (!(RFAPI_0_PREFIX (&adb->prefix_ip) &&
|
if (!(RFAPI_0_PREFIX (&adb->u.s.prefix_ip) &&
|
||||||
RFAPI_HOST_PREFIX (&adb->prefix_ip)))
|
RFAPI_HOST_PREFIX (&adb->u.s.prefix_ip)))
|
||||||
{
|
{
|
||||||
|
|
||||||
pfx_ip = &adb->prefix_ip;
|
pfx_ip = &adb->u.s.prefix_ip;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -247,7 +246,7 @@ rfapiApWithdrawAll (struct bgp *bgp, struct rfapi_descriptor *rfd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
del_vnc_route (rfd, rfd->peer, bgp, SAFI_MPLS_VPN, pfx_ip ? pfx_ip : &pfx_vn_buf, &adb->prd, /* RD to use (0 for ENCAP) */
|
del_vnc_route (rfd, rfd->peer, bgp, SAFI_MPLS_VPN, pfx_ip ? pfx_ip : &pfx_vn_buf, &adb->u.s.prd, /* RD to use (0 for ENCAP) */
|
||||||
ZEBRA_ROUTE_BGP, BGP_ROUTE_RFP, NULL, 0);
|
ZEBRA_ROUTE_BGP, BGP_ROUTE_RFP, NULL, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -404,19 +403,19 @@ rfapiApAdjustLifetimeStats (
|
|||||||
{
|
{
|
||||||
|
|
||||||
void *cursor;
|
void *cursor;
|
||||||
struct prefix *prefix;
|
struct rfapi_rib_key rk;
|
||||||
struct rfapi_adb *adb;
|
struct rfapi_adb *adb;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
vnc_zlog_debug_verbose ("%s: walking to find new min/max", __func__);
|
vnc_zlog_debug_verbose ("%s: walking to find new min/max", __func__);
|
||||||
|
|
||||||
cursor = NULL;
|
cursor = NULL;
|
||||||
for (rc = skiplist_next (rfd->advertised.ipN_by_prefix,
|
for (rc = skiplist_next (rfd->advertised.ipN_by_prefix,
|
||||||
(void **) &prefix, (void **) &adb,
|
(void **) &rk, (void **) &adb,
|
||||||
&cursor); !rc;
|
&cursor); !rc;
|
||||||
rc =
|
rc =
|
||||||
skiplist_next (rfd->advertised.ipN_by_prefix,
|
skiplist_next (rfd->advertised.ipN_by_prefix,
|
||||||
(void **) &prefix, (void **) &adb, &cursor))
|
(void **) &rk, (void **) &adb, &cursor))
|
||||||
{
|
{
|
||||||
|
|
||||||
uint32_t lt = adb->lifetime;
|
uint32_t lt = adb->lifetime;
|
||||||
@ -428,10 +427,10 @@ rfapiApAdjustLifetimeStats (
|
|||||||
}
|
}
|
||||||
cursor = NULL;
|
cursor = NULL;
|
||||||
for (rc = skiplist_next (rfd->advertised.ip0_by_ether,
|
for (rc = skiplist_next (rfd->advertised.ip0_by_ether,
|
||||||
(void **) &prefix, (void **) &adb,
|
(void **) &rk, (void **) &adb,
|
||||||
&cursor); !rc;
|
&cursor); !rc;
|
||||||
rc =
|
rc =
|
||||||
skiplist_next (rfd->advertised.ip0_by_ether, (void **) &prefix,
|
skiplist_next (rfd->advertised.ip0_by_ether, (void **) &rk,
|
||||||
(void **) &adb, &cursor))
|
(void **) &adb, &cursor))
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -483,14 +482,15 @@ rfapiApAdd (
|
|||||||
struct rfapi_adb *adb;
|
struct rfapi_adb *adb;
|
||||||
uint32_t old_lifetime = 0;
|
uint32_t old_lifetime = 0;
|
||||||
int use_ip0 = 0;
|
int use_ip0 = 0;
|
||||||
|
struct rfapi_rib_key rk;
|
||||||
|
|
||||||
|
rfapi_rib_key_init(pfx_ip, prd, pfx_eth, &rk);
|
||||||
if (RFAPI_0_PREFIX (pfx_ip) && RFAPI_HOST_PREFIX (pfx_ip))
|
if (RFAPI_0_PREFIX (pfx_ip) && RFAPI_HOST_PREFIX (pfx_ip))
|
||||||
{
|
{
|
||||||
use_ip0 = 1;
|
use_ip0 = 1;
|
||||||
assert (pfx_eth);
|
assert (pfx_eth);
|
||||||
|
|
||||||
rc =
|
rc =
|
||||||
skiplist_search (rfd->advertised.ip0_by_ether, pfx_eth,
|
skiplist_search (rfd->advertised.ip0_by_ether, &rk,
|
||||||
(void **) &adb);
|
(void **) &adb);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -499,7 +499,7 @@ rfapiApAdd (
|
|||||||
|
|
||||||
/* find prefix in advertised prefixes list */
|
/* find prefix in advertised prefixes list */
|
||||||
rc =
|
rc =
|
||||||
skiplist_search (rfd->advertised.ipN_by_prefix, pfx_ip,
|
skiplist_search (rfd->advertised.ipN_by_prefix, &rk,
|
||||||
(void **) &adb);
|
(void **) &adb);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -510,19 +510,17 @@ rfapiApAdd (
|
|||||||
adb = XCALLOC (MTYPE_RFAPI_ADB, sizeof (struct rfapi_adb));
|
adb = XCALLOC (MTYPE_RFAPI_ADB, sizeof (struct rfapi_adb));
|
||||||
assert (adb);
|
assert (adb);
|
||||||
adb->lifetime = lifetime;
|
adb->lifetime = lifetime;
|
||||||
adb->prefix_ip = *pfx_ip;
|
adb->u.key = rk;
|
||||||
if (pfx_eth)
|
|
||||||
adb->prefix_eth = *pfx_eth;
|
|
||||||
|
|
||||||
if (use_ip0)
|
if (use_ip0)
|
||||||
{
|
{
|
||||||
assert (pfx_eth);
|
assert (pfx_eth);
|
||||||
skiplist_insert (rfd->advertised.ip0_by_ether, &adb->prefix_eth,
|
skiplist_insert (rfd->advertised.ip0_by_ether, &adb->u.key,
|
||||||
adb);
|
adb);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
skiplist_insert (rfd->advertised.ipN_by_prefix, &adb->prefix_ip,
|
skiplist_insert (rfd->advertised.ipN_by_prefix, &adb->u.key,
|
||||||
adb);
|
adb);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -537,19 +535,12 @@ rfapiApAdd (
|
|||||||
adb->lifetime = lifetime;
|
adb->lifetime = lifetime;
|
||||||
assert (!skiplist_insert (rfd->advertised.by_lifetime, adb, adb));
|
assert (!skiplist_insert (rfd->advertised.by_lifetime, adb, adb));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!use_ip0 && pfx_eth && prefix_cmp (&adb->prefix_eth, pfx_eth))
|
|
||||||
{
|
|
||||||
/* mac address changed */
|
|
||||||
adb->prefix_eth = *pfx_eth;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
adb->cost = cost;
|
adb->cost = cost;
|
||||||
if (l2o)
|
if (l2o)
|
||||||
adb->l2o = *l2o;
|
adb->l2o = *l2o;
|
||||||
else
|
else
|
||||||
memset (&adb->l2o, 0, sizeof (struct rfapi_l2address_option));
|
memset (&adb->l2o, 0, sizeof (struct rfapi_l2address_option));
|
||||||
adb->prd = *prd;
|
|
||||||
|
|
||||||
if (rfapiApAdjustLifetimeStats
|
if (rfapiApAdjustLifetimeStats
|
||||||
(rfd, (rc ? NULL : &old_lifetime), &lifetime))
|
(rfd, (rc ? NULL : &old_lifetime), &lifetime))
|
||||||
@ -568,16 +559,19 @@ rfapiApDelete (
|
|||||||
struct rfapi_descriptor *rfd,
|
struct rfapi_descriptor *rfd,
|
||||||
struct prefix *pfx_ip,
|
struct prefix *pfx_ip,
|
||||||
struct prefix *pfx_eth,
|
struct prefix *pfx_eth,
|
||||||
|
struct prefix_rd *prd,
|
||||||
int *advertise_tunnel) /* out */
|
int *advertise_tunnel) /* out */
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
struct rfapi_adb *adb;
|
struct rfapi_adb *adb;
|
||||||
uint32_t old_lifetime;
|
uint32_t old_lifetime;
|
||||||
int use_ip0 = 0;
|
int use_ip0 = 0;
|
||||||
|
struct rfapi_rib_key rk;
|
||||||
|
|
||||||
if (advertise_tunnel)
|
if (advertise_tunnel)
|
||||||
*advertise_tunnel = 0;
|
*advertise_tunnel = 0;
|
||||||
|
|
||||||
|
rfapi_rib_key_init(pfx_ip, prd, pfx_eth, &rk);
|
||||||
/* find prefix in advertised prefixes list */
|
/* find prefix in advertised prefixes list */
|
||||||
if (RFAPI_0_PREFIX (pfx_ip) && RFAPI_HOST_PREFIX (pfx_ip))
|
if (RFAPI_0_PREFIX (pfx_ip) && RFAPI_HOST_PREFIX (pfx_ip))
|
||||||
{
|
{
|
||||||
@ -585,7 +579,7 @@ rfapiApDelete (
|
|||||||
assert (pfx_eth);
|
assert (pfx_eth);
|
||||||
|
|
||||||
rc =
|
rc =
|
||||||
skiplist_search (rfd->advertised.ip0_by_ether, pfx_eth,
|
skiplist_search (rfd->advertised.ip0_by_ether, &rk,
|
||||||
(void **) &adb);
|
(void **) &adb);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -594,7 +588,7 @@ rfapiApDelete (
|
|||||||
|
|
||||||
/* find prefix in advertised prefixes list */
|
/* find prefix in advertised prefixes list */
|
||||||
rc =
|
rc =
|
||||||
skiplist_search (rfd->advertised.ipN_by_prefix, pfx_ip,
|
skiplist_search (rfd->advertised.ipN_by_prefix, &rk,
|
||||||
(void **) &adb);
|
(void **) &adb);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -607,11 +601,11 @@ rfapiApDelete (
|
|||||||
|
|
||||||
if (use_ip0)
|
if (use_ip0)
|
||||||
{
|
{
|
||||||
rc = skiplist_delete (rfd->advertised.ip0_by_ether, pfx_eth, NULL);
|
rc = skiplist_delete (rfd->advertised.ip0_by_ether, &rk, NULL);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rc = skiplist_delete (rfd->advertised.ipN_by_prefix, pfx_ip, NULL);
|
rc = skiplist_delete (rfd->advertised.ipN_by_prefix, &rk, NULL);
|
||||||
}
|
}
|
||||||
assert (!rc);
|
assert (!rc);
|
||||||
|
|
||||||
|
@ -93,6 +93,7 @@ rfapiApDelete (
|
|||||||
struct rfapi_descriptor *rfd,
|
struct rfapi_descriptor *rfd,
|
||||||
struct prefix *pfx_ip,
|
struct prefix *pfx_ip,
|
||||||
struct prefix *pfx_eth,
|
struct prefix *pfx_eth,
|
||||||
|
struct prefix_rd *prd,
|
||||||
int *advertise_tunnel); /* out */
|
int *advertise_tunnel); /* out */
|
||||||
|
|
||||||
|
|
||||||
|
@ -131,8 +131,7 @@ rfapi_tunneltype_option_to_tlv (
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case BGP_ENCAP_TYPE_MPLS:
|
case BGP_ENCAP_TYPE_MPLS:
|
||||||
_RTTO_MAYBE_ADD_ENDPOINT_ADDRESS (mpls);
|
/* nothing to do for MPLS */
|
||||||
bgp_encap_type_mpls_to_tlv (&tto->bgpinfo.mpls, attr);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BGP_ENCAP_TYPE_MPLS_IN_GRE:
|
case BGP_ENCAP_TYPE_MPLS_IN_GRE:
|
||||||
|
@ -423,10 +423,7 @@ rfapiGetVncTunnelUnAddr (struct attr *attr, struct prefix *p)
|
|||||||
rfapiGetTunnelType (attr, &tun_type);
|
rfapiGetTunnelType (attr, &tun_type);
|
||||||
if (p && tun_type == BGP_ENCAP_TYPE_MPLS)
|
if (p && tun_type == BGP_ENCAP_TYPE_MPLS)
|
||||||
{
|
{
|
||||||
/* MPLS carries UN address in next hop */
|
return ENOENT; /* no UN for MPLS */
|
||||||
rfapiNexthop2Prefix (attr, p);
|
|
||||||
if (p->family != 0)
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
if (attr && attr->extra)
|
if (attr && attr->extra)
|
||||||
{
|
{
|
||||||
|
@ -34,21 +34,6 @@
|
|||||||
|
|
||||||
#include "rfapi.h"
|
#include "rfapi.h"
|
||||||
|
|
||||||
/*
|
|
||||||
* RFAPI Advertisement Data Block
|
|
||||||
*
|
|
||||||
* Holds NVE prefix advertisement information
|
|
||||||
*/
|
|
||||||
struct rfapi_adb
|
|
||||||
{
|
|
||||||
struct prefix prefix_ip;
|
|
||||||
struct prefix prefix_eth; /* now redundant with l2o */
|
|
||||||
struct prefix_rd prd;
|
|
||||||
uint32_t lifetime;
|
|
||||||
uint8_t cost;
|
|
||||||
struct rfapi_l2address_option l2o;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Lists of rfapi_adb. Each rfapi_adb is referenced twice:
|
* Lists of rfapi_adb. Each rfapi_adb is referenced twice:
|
||||||
*
|
*
|
||||||
@ -62,7 +47,6 @@ struct rfapi_advertised_prefixes
|
|||||||
struct skiplist *by_lifetime; /* all */
|
struct skiplist *by_lifetime; /* all */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct rfapi_descriptor
|
struct rfapi_descriptor
|
||||||
{
|
{
|
||||||
struct route_node *un_node; /* backref to un table */
|
struct route_node *un_node; /* backref to un table */
|
||||||
@ -378,9 +362,6 @@ rfp_cost_to_localpref (uint8_t cost);
|
|||||||
extern int
|
extern int
|
||||||
rfapi_set_autord_from_vn (struct prefix_rd *rd, struct rfapi_ip_addr *vn);
|
rfapi_set_autord_from_vn (struct prefix_rd *rd, struct rfapi_ip_addr *vn);
|
||||||
|
|
||||||
extern void
|
|
||||||
rfapiAdbFree (struct rfapi_adb *adb);
|
|
||||||
|
|
||||||
extern struct rfapi_nexthop *
|
extern struct rfapi_nexthop *
|
||||||
rfapi_nexthop_new (struct rfapi_nexthop *copyme);
|
rfapi_nexthop_new (struct rfapi_nexthop *copyme);
|
||||||
|
|
||||||
|
@ -405,10 +405,26 @@ rfapiRibStartTimer (
|
|||||||
assert (ri->timer);
|
assert (ri->timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern void
|
||||||
|
rfapi_rib_key_init (struct prefix *prefix, /* may be NULL */
|
||||||
|
struct prefix_rd *rd, /* may be NULL */
|
||||||
|
struct prefix *aux, /* may be NULL */
|
||||||
|
struct rfapi_rib_key *rk)
|
||||||
|
|
||||||
|
{
|
||||||
|
memset((void *)rk, 0, sizeof(struct rfapi_rib_key));
|
||||||
|
if (prefix)
|
||||||
|
rk->vn = *prefix;
|
||||||
|
if (rd)
|
||||||
|
rk->rd = *rd;
|
||||||
|
if (aux)
|
||||||
|
rk->aux_prefix = *aux;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Compares two <struct rfapi_rib_key>s
|
* Compares two <struct rfapi_rib_key>s
|
||||||
*/
|
*/
|
||||||
static int
|
int
|
||||||
rfapi_rib_key_cmp (void *k1, void *k2)
|
rfapi_rib_key_cmp (void *k1, void *k2)
|
||||||
{
|
{
|
||||||
struct rfapi_rib_key *a = (struct rfapi_rib_key *) k1;
|
struct rfapi_rib_key *a = (struct rfapi_rib_key *) k1;
|
||||||
|
@ -45,6 +45,27 @@ struct rfapi_rib_key
|
|||||||
*/
|
*/
|
||||||
struct prefix aux_prefix;
|
struct prefix aux_prefix;
|
||||||
};
|
};
|
||||||
|
#include "rfapi.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* RFAPI Advertisement Data Block
|
||||||
|
*
|
||||||
|
* Holds NVE prefix advertisement information
|
||||||
|
*/
|
||||||
|
struct rfapi_adb
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
struct prefix prefix_ip;
|
||||||
|
struct prefix_rd prd;
|
||||||
|
struct prefix prefix_eth;
|
||||||
|
} s; /* mainly for legacy use */
|
||||||
|
struct rfapi_rib_key key;
|
||||||
|
} u;
|
||||||
|
uint32_t lifetime;
|
||||||
|
uint8_t cost;
|
||||||
|
struct rfapi_l2address_option l2o;
|
||||||
|
};
|
||||||
|
|
||||||
struct rfapi_info
|
struct rfapi_info
|
||||||
{
|
{
|
||||||
@ -151,4 +172,16 @@ rfapiRibCheckCounts (
|
|||||||
#define RFAPI_RIB_CHECK_COUNTS(checkstats, offset)
|
#define RFAPI_RIB_CHECK_COUNTS(checkstats, offset)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern void
|
||||||
|
rfapi_rib_key_init (struct prefix *prefix, /* may be NULL */
|
||||||
|
struct prefix_rd *rd, /* may be NULL */
|
||||||
|
struct prefix *aux, /* may be NULL */
|
||||||
|
struct rfapi_rib_key *rk);
|
||||||
|
|
||||||
|
extern int
|
||||||
|
rfapi_rib_key_cmp (void *k1, void *k2);
|
||||||
|
|
||||||
|
extern void
|
||||||
|
rfapiAdbFree (struct rfapi_adb *adb);
|
||||||
|
|
||||||
#endif /* QUAGGA_HGP_RFAPI_RIB_H */
|
#endif /* QUAGGA_HGP_RFAPI_RIB_H */
|
||||||
|
@ -490,14 +490,7 @@ rfapi_vty_out_vncinfo (
|
|||||||
if (bi->extra != NULL)
|
if (bi->extra != NULL)
|
||||||
vty_out (vty, " label=%u", decode_label (bi->extra->tag));
|
vty_out (vty, " label=%u", decode_label (bi->extra->tag));
|
||||||
|
|
||||||
if (rfapiGetVncLifetime (bi->attr, &lifetime))
|
if (!rfapiGetVncLifetime (bi->attr, &lifetime))
|
||||||
{
|
|
||||||
if (safi == SAFI_MPLS_VPN || safi == SAFI_ENCAP)
|
|
||||||
{
|
|
||||||
vty_out (vty, " life=none");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
vty_out (vty, " life=%d", lifetime);
|
vty_out (vty, " life=%d", lifetime);
|
||||||
}
|
}
|
||||||
@ -1853,14 +1846,14 @@ rfapiPrintDescriptor (struct vty *vty, struct rfapi_descriptor *rfd)
|
|||||||
{
|
{
|
||||||
|
|
||||||
/* group like family prefixes together in output */
|
/* group like family prefixes together in output */
|
||||||
if (family != adb->prefix_ip.family)
|
if (family != adb->u.s.prefix_ip.family)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
prefix2str (&adb->prefix_ip, buf, BUFSIZ);
|
prefix2str (&adb->u.s.prefix_ip, buf, BUFSIZ);
|
||||||
buf[BUFSIZ - 1] = 0; /* guarantee NUL-terminated */
|
buf[BUFSIZ - 1] = 0; /* guarantee NUL-terminated */
|
||||||
|
|
||||||
vty_out (vty, " Adv Pfx: %s%s", buf, HVTY_NEWLINE);
|
vty_out (vty, " Adv Pfx: %s%s", buf, HVTY_NEWLINE);
|
||||||
rfapiPrintAdvertisedInfo (vty, rfd, SAFI_MPLS_VPN, &adb->prefix_ip);
|
rfapiPrintAdvertisedInfo (vty, rfd, SAFI_MPLS_VPN, &adb->u.s.prefix_ip);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (rc =
|
for (rc =
|
||||||
@ -1871,14 +1864,14 @@ rfapiPrintDescriptor (struct vty *vty, struct rfapi_descriptor *rfd)
|
|||||||
&cursor))
|
&cursor))
|
||||||
{
|
{
|
||||||
|
|
||||||
prefix2str (&adb->prefix_eth, buf, BUFSIZ);
|
prefix2str (&adb->u.s.prefix_eth, buf, BUFSIZ);
|
||||||
buf[BUFSIZ - 1] = 0; /* guarantee NUL-terminated */
|
buf[BUFSIZ - 1] = 0; /* guarantee NUL-terminated */
|
||||||
|
|
||||||
vty_out (vty, " Adv Pfx: %s%s", buf, HVTY_NEWLINE);
|
vty_out (vty, " Adv Pfx: %s%s", buf, HVTY_NEWLINE);
|
||||||
|
|
||||||
/* TBD update the following function to print ethernet info */
|
/* TBD update the following function to print ethernet info */
|
||||||
/* Also need to pass/use rd */
|
/* Also need to pass/use rd */
|
||||||
rfapiPrintAdvertisedInfo (vty, rfd, SAFI_MPLS_VPN, &adb->prefix_ip);
|
rfapiPrintAdvertisedInfo (vty, rfd, SAFI_MPLS_VPN, &adb->u.s.prefix_ip);
|
||||||
}
|
}
|
||||||
vty_out (vty, "%s", HVTY_NEWLINE);
|
vty_out (vty, "%s", HVTY_NEWLINE);
|
||||||
}
|
}
|
||||||
@ -3370,7 +3363,7 @@ rfapiDeleteLocalPrefixes (struct rfapi_local_reg_delete_arg *cda)
|
|||||||
|
|
||||||
if (pPrefix)
|
if (pPrefix)
|
||||||
{
|
{
|
||||||
if (!prefix_same (pPrefix, &adb->prefix_ip))
|
if (!prefix_same (pPrefix, &adb->u.s.prefix_ip))
|
||||||
{
|
{
|
||||||
#if DEBUG_L2_EXTRA
|
#if DEBUG_L2_EXTRA
|
||||||
vnc_zlog_debug_verbose ("%s: adb=%p, prefix doesn't match, skipping",
|
vnc_zlog_debug_verbose ("%s: adb=%p, prefix doesn't match, skipping",
|
||||||
@ -3383,7 +3376,7 @@ rfapiDeleteLocalPrefixes (struct rfapi_local_reg_delete_arg *cda)
|
|||||||
{
|
{
|
||||||
if (memcmp
|
if (memcmp
|
||||||
(cda->l2o.o.macaddr.octet,
|
(cda->l2o.o.macaddr.octet,
|
||||||
adb->prefix_eth.u.prefix_eth.octet, ETHER_ADDR_LEN))
|
adb->u.s.prefix_eth.u.prefix_eth.octet, ETHER_ADDR_LEN))
|
||||||
{
|
{
|
||||||
#if DEBUG_L2_EXTRA
|
#if DEBUG_L2_EXTRA
|
||||||
vnc_zlog_debug_verbose ("%s: adb=%p, macaddr doesn't match, skipping",
|
vnc_zlog_debug_verbose ("%s: adb=%p, macaddr doesn't match, skipping",
|
||||||
@ -3425,24 +3418,23 @@ rfapiDeleteLocalPrefixes (struct rfapi_local_reg_delete_arg *cda)
|
|||||||
|
|
||||||
this_advertisement_prefix_count = 1;
|
this_advertisement_prefix_count = 1;
|
||||||
|
|
||||||
rfapiQprefix2Rprefix (&adb->prefix_ip, &rp);
|
rfapiQprefix2Rprefix (&adb->u.s.prefix_ip, &rp);
|
||||||
|
|
||||||
/* if mac addr present in advert, make l2o vn option */
|
/* if mac addr present in advert, make l2o vn option */
|
||||||
if (adb->prefix_eth.family == AF_ETHERNET)
|
if (adb->u.s.prefix_eth.family == AF_ETHERNET)
|
||||||
{
|
{
|
||||||
|
|
||||||
memset (&vn1, 0, sizeof (vn1));
|
memset (&vn1, 0, sizeof (vn1));
|
||||||
memset (&vn2, 0, sizeof (vn2));
|
memset (&vn2, 0, sizeof (vn2));
|
||||||
|
|
||||||
vn1.type = RFAPI_VN_OPTION_TYPE_L2ADDR;
|
vn1.type = RFAPI_VN_OPTION_TYPE_L2ADDR;
|
||||||
vn1.v.l2addr.macaddr = adb->prefix_eth.u.prefix_eth;
|
vn1.v.l2addr.macaddr = adb->u.s.prefix_eth.u.prefix_eth;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* use saved RD value instead of trying to invert
|
* use saved RD value instead of trying to invert
|
||||||
* complex L2-style RD computation in rfapi_register()
|
* complex L2-style RD computation in rfapi_register()
|
||||||
*/
|
*/
|
||||||
vn2.type = RFAPI_VN_OPTION_TYPE_INTERNAL_RD;
|
vn2.type = RFAPI_VN_OPTION_TYPE_INTERNAL_RD;
|
||||||
vn2.v.internal_rd = adb->prd;
|
vn2.v.internal_rd = adb->u.s.prd;
|
||||||
|
|
||||||
vn1.next = &vn2;
|
vn1.next = &vn2;
|
||||||
|
|
||||||
@ -3494,7 +3486,7 @@ rfapiDeleteLocalPrefixes (struct rfapi_local_reg_delete_arg *cda)
|
|||||||
if (CHECK_FLAG (cda->l2o.flags, RFAPI_L2O_MACADDR))
|
if (CHECK_FLAG (cda->l2o.flags, RFAPI_L2O_MACADDR))
|
||||||
{
|
{
|
||||||
if (memcmp (cda->l2o.o.macaddr.octet,
|
if (memcmp (cda->l2o.o.macaddr.octet,
|
||||||
adb->prefix_eth.u.prefix_eth.octet,
|
adb->u.s.prefix_eth.u.prefix_eth.octet,
|
||||||
ETHER_ADDR_LEN))
|
ETHER_ADDR_LEN))
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -3521,7 +3513,7 @@ rfapiDeleteLocalPrefixes (struct rfapi_local_reg_delete_arg *cda)
|
|||||||
|
|
||||||
struct rfapi_vn_option vn;
|
struct rfapi_vn_option vn;
|
||||||
|
|
||||||
rfapiQprefix2Rprefix (&adb->prefix_ip, &rp);
|
rfapiQprefix2Rprefix (&adb->u.s.prefix_ip, &rp);
|
||||||
|
|
||||||
memset (&vn, 0, sizeof (vn));
|
memset (&vn, 0, sizeof (vn));
|
||||||
vn.type = RFAPI_VN_OPTION_TYPE_L2ADDR;
|
vn.type = RFAPI_VN_OPTION_TYPE_L2ADDR;
|
||||||
|
@ -56,12 +56,16 @@ $ignore{'"address-family ipv4"'} = "ignore";
|
|||||||
$ignore{'"address-family ipv4 (unicast|multicast)"'} = "ignore";
|
$ignore{'"address-family ipv4 (unicast|multicast)"'} = "ignore";
|
||||||
$ignore{'"address-family ipv6"'} = "ignore";
|
$ignore{'"address-family ipv6"'} = "ignore";
|
||||||
$ignore{'"address-family ipv6 (unicast|multicast)"'} = "ignore";
|
$ignore{'"address-family ipv6 (unicast|multicast)"'} = "ignore";
|
||||||
|
$ignore{'"address-family ipv4 vpn"'} = "ignore";
|
||||||
$ignore{'"address-family vpnv4"'} = "ignore";
|
$ignore{'"address-family vpnv4"'} = "ignore";
|
||||||
$ignore{'"address-family vpnv4 unicast"'} = "ignore";
|
$ignore{'"address-family vpnv4 unicast"'} = "ignore";
|
||||||
$ignore{'"address-family ipv4 vrf NAME"'} = "ignore";
|
$ignore{'"address-family ipv4 vrf NAME"'} = "ignore";
|
||||||
$ignore{'"address-family encap"'} = "ignore";
|
$ignore{'"address-family encap"'} = "ignore";
|
||||||
$ignore{'"address-family encapv4"'} = "ignore";
|
$ignore{'"address-family encapv4"'} = "ignore";
|
||||||
$ignore{'"address-family encapv6"'} = "ignore";
|
$ignore{'"address-family encapv6"'} = "ignore";
|
||||||
|
$ignore{'"address-family ipv4 encap"'} = "ignore";
|
||||||
|
$ignore{'"address-family ipv6 encap"'} = "ignore";
|
||||||
|
$ignore{'"address-family ipv6 vpn"'} = "ignore";
|
||||||
$ignore{'"address-family vpnv6"'} = "ignore";
|
$ignore{'"address-family vpnv6"'} = "ignore";
|
||||||
$ignore{'"address-family vpnv6 unicast"'} = "ignore";
|
$ignore{'"address-family vpnv6 unicast"'} = "ignore";
|
||||||
$ignore{'"exit-address-family"'} = "ignore";
|
$ignore{'"exit-address-family"'} = "ignore";
|
||||||
|
Loading…
Reference in New Issue
Block a user