From d864dd9eb182eefaa4d08717bd2837f9182956a6 Mon Sep 17 00:00:00 2001 From: Eugene Bogomazov Date: Fri, 17 Jun 2022 13:14:46 +0300 Subject: bgpd: Add RFC9234 implementation RFC9234 is a way to establish correct connection roles (Customer/ Provider, Peer or with RS) between bgp speakers. This patch: - Add a new configuration/terminal option to set the appropriate local role; - Add a mechanism for checking used roles, implemented by exchanging the corresponding capabilities in OPEN messages; - Add strict mode to force other party to use this feature; - Add basic support for a new transitive optional bgp attribute - OTC (Only to Customer); - Add logic for default setting OTC attribute and filtering routes with this attribute by the edge speakers, if the appropriate conditions are met; - Add two test stands to check role negotiation and route filtering during role usage. Signed-off-by: Eugene Bogomazov --- lib/command.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib/command.h') diff --git a/lib/command.h b/lib/command.h index 047e550532..7363ed84c8 100644 --- a/lib/command.h +++ b/lib/command.h @@ -508,6 +508,9 @@ struct cmd_node { EVPN_TYPE_4_HELP_STR EVPN_TYPE_4_HELP_STR \ EVPN_TYPE_5_HELP_STR EVPN_TYPE_5_HELP_STR +/* Describing roles */ +#define ROLE_STR \ + "Providing transit\nRoute server\nRS client\nUsing transit\nPublic/private peering\n" /* Prototypes. */ extern void install_node(struct cmd_node *node); -- cgit v1.2.3