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