]> git.proxmox.com Git - mirror_frr.git/commit
bgpd: rework BFD integration
authorRafael Zalamena <rzalamena@opensourcerouting.org>
Fri, 26 Feb 2021 19:50:51 +0000 (16:50 -0300)
committerRafael Zalamena <rzalamena@opensourcerouting.org>
Tue, 23 Mar 2021 15:40:10 +0000 (12:40 -0300)
commit21bfce982771b791c9f52d6de784f5370895c85b
tree1da5f23e4acaffbf40d5a6b73e5fe73e02370ddc
parent50bd8995d4595048844905bdeaf7d14252ec652a
bgpd: rework BFD integration

Remove old BFD API usage and replace it with the new one.

Highlights:

 - More shared code: the daemon gets notified with callbacks instead of
   having to roll its own code to find the notified sessions.

 - Less code to integrate with BFD.

 - Remove hidden commands to configure single / multi hop. Use
   protocol data instead.

   BGP can determine if a peer is single/multi hop according to the
   following criteria:

    a. If the IP address is a link-local address (single hop)

    b. The network is shared with peer (single hop)

    c. BGP is configured for eBGP multi hop / TTL security (multi hop)

 - Respect the configuration hierarchy:

    a. Peer configuration take precendence over peer-group
       configuration.

    b. When peer group configuration is removed, reset peer
       BFD configurations to defaults (unless peer had specific
       configs).

       Example:

         neighbor foo peer-group
         neighbor foo bfd profile X
         neighbor 192.168.0.2 peer-group foo
         neighbor 192.168.0.2 bfd
         ! If peer-group is removed the profile configuration gets
         ! removed from peer 192.168.0.2, but BFD will still enabled
         ! because of the neighbor specific bfd configuration.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
bgpd/bgp_bfd.c
bgpd/bgp_bfd.h
bgpd/bgp_fsm.c
bgpd/bgp_main.c
bgpd/bgp_vty.c
bgpd/bgpd.c
bgpd/bgpd.h