mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 14:42:06 +00:00
commit
b2d8bcc52a
@ -19,8 +19,7 @@
|
||||
*/
|
||||
|
||||
#include "bgpd/bgp_conditional_adv.h"
|
||||
|
||||
const char *get_afi_safi_str(afi_t afi, safi_t safi, bool for_json);
|
||||
#include "bgpd/bgp_vty.h"
|
||||
|
||||
static route_map_result_t
|
||||
bgp_check_rmap_prefixes_in_bgp_table(struct bgp_table *table,
|
||||
@ -198,10 +197,6 @@ static int bgp_conditional_adv_timer(struct thread *t)
|
||||
continue;
|
||||
|
||||
FOREACH_AFI_SAFI (afi, safi) {
|
||||
if (strmatch(get_afi_safi_str(afi, safi, true),
|
||||
"Unknown"))
|
||||
continue;
|
||||
|
||||
if (!peer->afc_nego[afi][safi])
|
||||
continue;
|
||||
|
||||
|
@ -35,8 +35,7 @@
|
||||
#include "bgpd/bgp_route.h"
|
||||
#include "bgpd/bgp_attr.h"
|
||||
#include "bgpd/bgp_advertise.h"
|
||||
|
||||
const char *get_afi_safi_str(afi_t afi, safi_t safi, bool for_json);
|
||||
#include "bgpd/bgp_vty.h"
|
||||
|
||||
/* Global variable to access damping configuration */
|
||||
static struct bgp_damp_config damp[AFI_MAX][SAFI_MAX];
|
||||
|
@ -55,10 +55,11 @@
|
||||
#include "bgpd/bgp_keepalives.h"
|
||||
#include "bgpd/bgp_io.h"
|
||||
#include "bgpd/bgp_zebra.h"
|
||||
#include "bgpd/bgp_vty.h"
|
||||
|
||||
DEFINE_HOOK(peer_backward_transition, (struct peer * peer), (peer))
|
||||
DEFINE_HOOK(peer_status_changed, (struct peer * peer), (peer))
|
||||
extern const char *get_afi_safi_str(afi_t afi, safi_t safi, bool for_json);
|
||||
|
||||
/* Definition of display strings corresponding to FSM events. This should be
|
||||
* kept consistent with the events defined in bgpd.h
|
||||
*/
|
||||
|
@ -96,7 +96,7 @@
|
||||
/* Extern from bgp_dump.c */
|
||||
extern const char *bgp_origin_str[];
|
||||
extern const char *bgp_origin_long_str[];
|
||||
const char *get_afi_safi_str(afi_t afi, safi_t safi, bool for_json);
|
||||
|
||||
/* PMSI strings. */
|
||||
#define PMSI_TNLTYPE_STR_NO_INFO "No info"
|
||||
#define PMSI_TNLTYPE_STR_DEFAULT PMSI_TNLTYPE_STR_NO_INFO
|
||||
@ -11739,10 +11739,6 @@ DEFPY (show_ip_bgp_json,
|
||||
? AFI_IP
|
||||
: AFI_IP6;
|
||||
FOREACH_SAFI (safi) {
|
||||
if (strmatch(get_afi_safi_str(afi, safi, true),
|
||||
"Unknown"))
|
||||
continue;
|
||||
|
||||
if (!bgp_afi_safi_peer_exists(bgp, afi, safi))
|
||||
continue;
|
||||
|
||||
@ -11773,10 +11769,6 @@ DEFPY (show_ip_bgp_json,
|
||||
} else {
|
||||
/* show <ip> bgp all: for each AFI and SAFI*/
|
||||
FOREACH_AFI_SAFI (afi, safi) {
|
||||
if (strmatch(get_afi_safi_str(afi, safi, true),
|
||||
"Unknown"))
|
||||
continue;
|
||||
|
||||
if (!bgp_afi_safi_peer_exists(bgp, afi, safi))
|
||||
continue;
|
||||
|
||||
@ -13318,10 +13310,6 @@ DEFPY (show_ip_bgp_instance_neighbor_advertised_route,
|
||||
afi = CHECK_FLAG(show_flags, BGP_SHOW_OPT_AFI_IP) ? AFI_IP
|
||||
: AFI_IP6;
|
||||
FOREACH_SAFI (safi) {
|
||||
if (strmatch(get_afi_safi_str(afi, safi, true),
|
||||
"Unknown"))
|
||||
continue;
|
||||
|
||||
if (!bgp_afi_safi_peer_exists(bgp, afi, safi))
|
||||
continue;
|
||||
|
||||
@ -13341,10 +13329,6 @@ DEFPY (show_ip_bgp_instance_neighbor_advertised_route,
|
||||
}
|
||||
} else {
|
||||
FOREACH_AFI_SAFI (afi, safi) {
|
||||
if (strmatch(get_afi_safi_str(afi, safi, true),
|
||||
"Unknown"))
|
||||
continue;
|
||||
|
||||
if (!bgp_afi_safi_peer_exists(bgp, afi, safi))
|
||||
continue;
|
||||
|
||||
|
172
bgpd/bgp_vty.c
172
bgpd/bgp_vty.c
@ -209,34 +209,38 @@ static enum node_type bgp_node_type(afi_t afi, safi_t safi)
|
||||
|
||||
static const char *get_afi_safi_vty_str(afi_t afi, safi_t safi)
|
||||
{
|
||||
if (afi == AFI_IP && safi == SAFI_UNICAST)
|
||||
return "IPv4 Unicast";
|
||||
else if (afi == AFI_IP && safi == SAFI_MULTICAST)
|
||||
return "IPv4 Multicast";
|
||||
else if (afi == AFI_IP && safi == SAFI_LABELED_UNICAST)
|
||||
return "IPv4 Labeled Unicast";
|
||||
else if (afi == AFI_IP && safi == SAFI_MPLS_VPN)
|
||||
return "IPv4 VPN";
|
||||
else if (afi == AFI_IP && safi == SAFI_ENCAP)
|
||||
return "IPv4 Encap";
|
||||
else if (afi == AFI_IP && safi == SAFI_FLOWSPEC)
|
||||
return "IPv4 Flowspec";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_UNICAST)
|
||||
return "IPv6 Unicast";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_MULTICAST)
|
||||
return "IPv6 Multicast";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_LABELED_UNICAST)
|
||||
return "IPv6 Labeled Unicast";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_MPLS_VPN)
|
||||
return "IPv6 VPN";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_ENCAP)
|
||||
return "IPv6 Encap";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_FLOWSPEC)
|
||||
return "IPv6 Flowspec";
|
||||
else if (afi == AFI_L2VPN && safi == SAFI_EVPN)
|
||||
return "L2VPN EVPN";
|
||||
else
|
||||
return "Unknown";
|
||||
if (afi == AFI_IP) {
|
||||
if (safi == SAFI_UNICAST)
|
||||
return "IPv4 Unicast";
|
||||
if (safi == SAFI_MULTICAST)
|
||||
return "IPv4 Multicast";
|
||||
if (safi == SAFI_LABELED_UNICAST)
|
||||
return "IPv4 Labeled Unicast";
|
||||
if (safi == SAFI_MPLS_VPN)
|
||||
return "IPv4 VPN";
|
||||
if (safi == SAFI_ENCAP)
|
||||
return "IPv4 Encap";
|
||||
if (safi == SAFI_FLOWSPEC)
|
||||
return "IPv4 Flowspec";
|
||||
} else if (afi == AFI_IP6) {
|
||||
if (safi == SAFI_UNICAST)
|
||||
return "IPv6 Unicast";
|
||||
if (safi == SAFI_MULTICAST)
|
||||
return "IPv6 Multicast";
|
||||
if (safi == SAFI_LABELED_UNICAST)
|
||||
return "IPv6 Labeled Unicast";
|
||||
if (safi == SAFI_MPLS_VPN)
|
||||
return "IPv6 VPN";
|
||||
if (safi == SAFI_ENCAP)
|
||||
return "IPv6 Encap";
|
||||
if (safi == SAFI_FLOWSPEC)
|
||||
return "IPv6 Flowspec";
|
||||
} else if (afi == AFI_L2VPN) {
|
||||
if (safi == SAFI_EVPN)
|
||||
return "L2VPN EVPN";
|
||||
}
|
||||
|
||||
return "Unknown";
|
||||
}
|
||||
|
||||
/*
|
||||
@ -247,34 +251,38 @@ static const char *get_afi_safi_vty_str(afi_t afi, safi_t safi)
|
||||
*/
|
||||
static const char *get_afi_safi_json_str(afi_t afi, safi_t safi)
|
||||
{
|
||||
if (afi == AFI_IP && safi == SAFI_UNICAST)
|
||||
return "ipv4Unicast";
|
||||
else if (afi == AFI_IP && safi == SAFI_MULTICAST)
|
||||
return "ipv4Multicast";
|
||||
else if (afi == AFI_IP && safi == SAFI_LABELED_UNICAST)
|
||||
return "ipv4LabeledUnicast";
|
||||
else if (afi == AFI_IP && safi == SAFI_MPLS_VPN)
|
||||
return "ipv4Vpn";
|
||||
else if (afi == AFI_IP && safi == SAFI_ENCAP)
|
||||
return "ipv4Encap";
|
||||
else if (afi == AFI_IP && safi == SAFI_FLOWSPEC)
|
||||
return "ipv4Flowspec";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_UNICAST)
|
||||
return "ipv6Unicast";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_MULTICAST)
|
||||
return "ipv6Multicast";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_LABELED_UNICAST)
|
||||
return "ipv6LabeledUnicast";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_MPLS_VPN)
|
||||
return "ipv6Vpn";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_ENCAP)
|
||||
return "ipv6Encap";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_FLOWSPEC)
|
||||
return "ipv6Flowspec";
|
||||
else if (afi == AFI_L2VPN && safi == SAFI_EVPN)
|
||||
return "l2VpnEvpn";
|
||||
else
|
||||
return "Unknown";
|
||||
if (afi == AFI_IP) {
|
||||
if (safi == SAFI_UNICAST)
|
||||
return "ipv4Unicast";
|
||||
if (safi == SAFI_MULTICAST)
|
||||
return "ipv4Multicast";
|
||||
if (safi == SAFI_LABELED_UNICAST)
|
||||
return "ipv4LabeledUnicast";
|
||||
if (safi == SAFI_MPLS_VPN)
|
||||
return "ipv4Vpn";
|
||||
if (safi == SAFI_ENCAP)
|
||||
return "ipv4Encap";
|
||||
if (safi == SAFI_FLOWSPEC)
|
||||
return "ipv4Flowspec";
|
||||
} else if (afi == AFI_IP6) {
|
||||
if (safi == SAFI_UNICAST)
|
||||
return "ipv6Unicast";
|
||||
if (safi == SAFI_MULTICAST)
|
||||
return "ipv6Multicast";
|
||||
if (safi == SAFI_LABELED_UNICAST)
|
||||
return "ipv6LabeledUnicast";
|
||||
if (safi == SAFI_MPLS_VPN)
|
||||
return "ipv6Vpn";
|
||||
if (safi == SAFI_ENCAP)
|
||||
return "ipv6Encap";
|
||||
if (safi == SAFI_FLOWSPEC)
|
||||
return "ipv6Flowspec";
|
||||
} else if (afi == AFI_L2VPN) {
|
||||
if (safi == SAFI_EVPN)
|
||||
return "l2VpnEvpn";
|
||||
}
|
||||
|
||||
return "Unknown";
|
||||
}
|
||||
|
||||
/* return string maps to afi-safi specific container names
|
||||
@ -282,30 +290,34 @@ static const char *get_afi_safi_json_str(afi_t afi, safi_t safi)
|
||||
*/
|
||||
const char *bgp_afi_safi_get_container_str(afi_t afi, safi_t safi)
|
||||
{
|
||||
if (afi == AFI_IP && safi == SAFI_UNICAST)
|
||||
return "ipv4-unicast";
|
||||
else if (afi == AFI_IP && safi == SAFI_MULTICAST)
|
||||
return "ipv4-multicast";
|
||||
else if (afi == AFI_IP && safi == SAFI_LABELED_UNICAST)
|
||||
return "ipv4-labeled-unicast";
|
||||
else if (afi == AFI_IP && safi == SAFI_MPLS_VPN)
|
||||
return "l3vpn-ipv4-unicast";
|
||||
else if (afi == AFI_IP && safi == SAFI_FLOWSPEC)
|
||||
return "ipv4-flowspec";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_UNICAST)
|
||||
return "ipv6-unicast";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_MULTICAST)
|
||||
return "ipv6-multicast";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_LABELED_UNICAST)
|
||||
return "ipv6-labeled-unicast";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_MPLS_VPN)
|
||||
return "l3vpn-ipv6-unicast";
|
||||
else if (afi == AFI_IP6 && safi == SAFI_FLOWSPEC)
|
||||
return "ipv6-flowspec";
|
||||
else if (afi == AFI_L2VPN && safi == SAFI_EVPN)
|
||||
return "l2vpn-evpn";
|
||||
else
|
||||
return "Unknown";
|
||||
if (afi == AFI_IP) {
|
||||
if (safi == SAFI_UNICAST)
|
||||
return "ipv4-unicast";
|
||||
if (safi == SAFI_MULTICAST)
|
||||
return "ipv4-multicast";
|
||||
if (safi == SAFI_LABELED_UNICAST)
|
||||
return "ipv4-labeled-unicast";
|
||||
if (safi == SAFI_MPLS_VPN)
|
||||
return "l3vpn-ipv4-unicast";
|
||||
if (safi == SAFI_FLOWSPEC)
|
||||
return "ipv4-flowspec";
|
||||
} else if (afi == AFI_IP6) {
|
||||
if (safi == SAFI_UNICAST)
|
||||
return "ipv6-unicast";
|
||||
if (safi == SAFI_MULTICAST)
|
||||
return "ipv6-multicast";
|
||||
if (safi == SAFI_LABELED_UNICAST)
|
||||
return "ipv6-labeled-unicast";
|
||||
if (safi == SAFI_MPLS_VPN)
|
||||
return "l3vpn-ipv6-unicast";
|
||||
if (safi == SAFI_FLOWSPEC)
|
||||
return "ipv6-flowspec";
|
||||
} else if (afi == AFI_L2VPN) {
|
||||
if (safi == SAFI_EVPN)
|
||||
return "l2vpn-evpn";
|
||||
}
|
||||
|
||||
return "Unknown";
|
||||
}
|
||||
|
||||
/* Utility function to get address family from current node. */
|
||||
|
Loading…
Reference in New Issue
Block a user