Fix non-transitive extended community handling.
authorclaudio <claudio@openbsd.org>
Wed, 25 May 2022 16:03:34 +0000 (16:03 +0000)
committerclaudio <claudio@openbsd.org>
Wed, 25 May 2022 16:03:34 +0000 (16:03 +0000)
commitf8162053bbbf81aa3afe714149ea18b65c6a9a5f
tree9e114bf1a45fe3d7fabd0112d41b981516c9c073
parent6f4278525629a4c05a97373a19fd289b1083d7d6
Fix non-transitive extended community handling.
First of all the detection logic was totally wrong. Then filter out
non-transitive extended communities when received from an ebgp peer.
Also cleanup the type handling of ext-communities. Mainly to not have
to handle the transitive vs non-transitive versions the type is masked
with EXT_COMMUNITY_VALUE before doing the switch case for the various
types.
With this my test using ext-communities works.
OK tb@
usr.sbin/bgpd/bgpd.h
usr.sbin/bgpd/printconf.c
usr.sbin/bgpd/rde.c
usr.sbin/bgpd/rde.h
usr.sbin/bgpd/rde_community.c
usr.sbin/bgpd/util.c