Add add-path support in MRT dumps (RFC8050).
authorclaudio <claudio@openbsd.org>
Fri, 3 Sep 2021 07:48:24 +0000 (07:48 +0000)
committerclaudio <claudio@openbsd.org>
Fri, 3 Sep 2021 07:48:24 +0000 (07:48 +0000)
commit36afba5eef3f45d91ec774b32d128804c2f785fa
tree40bc2f10edc4535f706e0a5a6f2c1c0afc7aa1fb
parent015ab5e0814515817669219ff0b24e5564a779ef
Add add-path support in MRT dumps (RFC8050).

This works for table-v2 formats and also for the all and update dumps.
For the latter the code needs to inspect the UPDATE message to guess if
add-path is used in that message or not.  Add-path can be enabled per
AFI and alters the NLRI encoding without any way to detect.
For table dumps we decided to dump RIB_GENERIC entires the same way as
gobgp and not use the encoding from the RFC. The RFC specifies that
RIB_GENERIC (non-IPv4/v6) entries in a way that is not only different
but also against the normal codeflow. Only gobgp seems to implement
RIB_GENERIC encoding (neither bird nor frr/quagga do) and so it makes
sense to follow their way.

OK benno@
usr.sbin/bgpd/mrt.c
usr.sbin/bgpd/session.c
usr.sbin/bgpd/session.h