Implement send side of RFC7911 ADD-PATH
authorclaudio <claudio@openbsd.org>
Mon, 11 Jul 2022 17:08:21 +0000 (17:08 +0000)
committerclaudio <claudio@openbsd.org>
Mon, 11 Jul 2022 17:08:21 +0000 (17:08 +0000)
commit5014683f694edcb7bd80453d3bc6266ea238e431
treef12d7f229482d568889ea2932dcdd90f79c49d1d
parent513afc985d020741736cc4ca5c0d91272be801c2
Implement send side of RFC7911 ADD-PATH

This allows to send out more then one path per perfix to a neighbor that
supports add-path receive. OpenBGPD supports a few different modes to
select which paths to send:
  - all: send all valid paths (the ones with a * in bgpctl output)
  - best: send out only the single best path
  - ecmp: send out paths that evaluate the same up and including
                the nexthop metric
  - as-wide-best: send out paths that evaluete the same up but not including
  the nexthop metric
Currently ecmp and as-wide-best are the same. On top of this best, ecmp
and as-wide-best allow to include extra paths (e.g. best plus 2) and
for the multipath modes there is also a maximum (e.g. ecmp plus 2 max 4)

OK tb@
usr.sbin/bgpd/bgpd.h
usr.sbin/bgpd/parse.y
usr.sbin/bgpd/printconf.c
usr.sbin/bgpd/rde.c
usr.sbin/bgpd/rde.h
usr.sbin/bgpd/rde_peer.c
usr.sbin/bgpd/rde_update.c