]> git.proxmox.com Git - mirror_frr.git/commit - bgpd/bgp_debug.c
bgpd: Add RFC9234 implementation
authorEugene Bogomazov <eb@qrator.net>
Fri, 17 Jun 2022 10:14:46 +0000 (13:14 +0300)
committerEugene Bogomazov <eb@qrator.net>
Fri, 17 Jun 2022 10:14:46 +0000 (13:14 +0300)
commitd864dd9eb182eefaa4d08717bd2837f9182956a6
treec60b9a1f8d0d4d8a9630d0a218b265cb743e8869
parent4151ca0ada6448ccb518294a09555dd4314b421b
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>
50 files changed:
bgpd/bgp_attr.c
bgpd/bgp_attr.h
bgpd/bgp_debug.c
bgpd/bgp_fsm.c
bgpd/bgp_open.c
bgpd/bgp_open.h
bgpd/bgp_route.c
bgpd/bgp_updgrp.c
bgpd/bgp_vty.c
bgpd/bgpd.c
bgpd/bgpd.h
doc/user/bgp.rst
doc/user/overview.rst
lib/command.h
tests/bgpd/test_capability.c
tests/bgpd/test_capability.py
tests/topotests/bgp_roles_capability/__init__.py [new file with mode: 0644]
tests/topotests/bgp_roles_capability/r1/bgpd.conf [new file with mode: 0644]
tests/topotests/bgp_roles_capability/r1/zebra.conf [new file with mode: 0644]
tests/topotests/bgp_roles_capability/r2/bgpd.conf [new file with mode: 0644]
tests/topotests/bgp_roles_capability/r2/zebra.conf [new file with mode: 0644]
tests/topotests/bgp_roles_capability/r3/bgpd.conf [new file with mode: 0644]
tests/topotests/bgp_roles_capability/r3/zebra.conf [new file with mode: 0644]
tests/topotests/bgp_roles_capability/r4/bgpd.conf [new file with mode: 0644]
tests/topotests/bgp_roles_capability/r4/zebra.conf [new file with mode: 0644]
tests/topotests/bgp_roles_capability/r5/bgpd.conf [new file with mode: 0644]
tests/topotests/bgp_roles_capability/r5/zebra.conf [new file with mode: 0644]
tests/topotests/bgp_roles_capability/roles_capability_stand.dot [new file with mode: 0644]
tests/topotests/bgp_roles_capability/roles_capability_stand.jpg [new file with mode: 0644]
tests/topotests/bgp_roles_capability/test_bgp_roles_capability.py [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/__init__.py [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r1/bgpd.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r1/zebra.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r10/bgpd.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r10/zebra.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r2/bgpd.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r2/zebra.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r3/bgpd.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r3/zebra.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r4/bgpd.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r4/zebra.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r5/bgpd.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r5/zebra.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r6/bgpd.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r6/zebra.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r7/bgpd.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/r7/zebra.conf [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/roles_filtering_stand.dot [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/roles_filtering_stand.jpg [new file with mode: 0644]
tests/topotests/bgp_roles_filtering/test_bgp_roles_filtering.py [new file with mode: 0644]