diff options
| author | Eugene Bogomazov <eb@qrator.net> | 2022-06-17 13:14:46 +0300 |
|---|---|---|
| committer | Eugene Bogomazov <eb@qrator.net> | 2022-06-17 13:14:46 +0300 |
| commit | d864dd9eb182eefaa4d08717bd2837f9182956a6 (patch) | |
| tree | c60b9a1f8d0d4d8a9630d0a218b265cb743e8869 /lib/command.h | |
| parent | 4151ca0ada6448ccb518294a09555dd4314b421b (diff) | |
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 <eb@qrator.net>
Diffstat (limited to 'lib/command.h')
| -rw-r--r-- | lib/command.h | 3 |
1 files changed, 3 insertions, 0 deletions
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); |
