mirror_frr/ldpd
Renato Westphal 077d336aa7 ldpd: add support for RLFA clients
Add an API that allows IGP client daemons to register/unregister
RLFAs with ldpd.

IGP daemons need to be able to query the LDP labels needed by RLFAs
and monitor label updates that might affect those RLFAs. This is
similar to the NHT mechanism used by bgpd to resolve and monitor
recursive nexthops.

This API is based on the following ZAPI opaque messages:
* LDP_RLFA_REGISTER: used by IGP daemons to register an RLFA with ldpd.
* LDP_RLFA_UNREGISTER_ALL: used by IGP daemons to unregister all of
  their RLFAs with ldpd.
* LDP_RLFA_LABELS: used by ldpd to send RLFA labels to the registered
  clients.

For each RLFA, ldpd needs to return the following labels:
* Outer label(s): the labels advertised by the adjacent routers to
  reach the PQ node;
* Inner label: the label advertised by the PQ node to reach the RLFA
  destination.

For the inner label, ldpd automatically establishes a targeted
neighborship with the PQ node if one doesn't already exist. For that
to work, the PQ node needs to be configured to accept targeted hello
messages. If that doesn't happen, ldpd doesn't send a response to
the IGP client daemon which in turn won't be able to activate the
previously computed RLFA.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-01-08 22:22:11 -03:00
..
.gitignore *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
accept.c *: unify thread/event cancel macros 2020-10-23 12:16:52 -04:00
address.c ldpd: replace inet_ntoa 2020-10-22 15:49:56 -04:00
adjacency.c ldpd: add support for RLFA clients 2021-01-08 22:22:11 -03:00
control.c *: unify thread/event cancel macros 2020-10-23 12:16:52 -04:00
control.h lib: standardize use of queue.h 2017-08-17 17:47:05 +02:00
hello.c ldpd: add support for RLFA clients 2021-01-08 22:22:11 -03:00
init.c ldpd: replace inet_ntoa 2020-10-22 15:49:56 -04:00
interface.c *: unify thread/event cancel macros 2020-10-23 12:16:52 -04:00
keepalive.c ldpd: replace inet_ntoa 2020-10-22 15:49:56 -04:00
l2vpn.c ldpd: process pw-status in received order 2020-07-20 09:08:15 -04:00
labelmapping.c ldpd: replace inet_ntoa 2020-10-22 15:49:56 -04:00
lde_lib.c ldpd: add support for RLFA clients 2021-01-08 22:22:11 -03:00
lde.c ldpd: add support for RLFA clients 2021-01-08 22:22:11 -03:00
lde.h ldpd: add support for RLFA clients 2021-01-08 22:22:11 -03:00
ldp_debug.c ldpd: Adding support for LDP IGP Synchronization 2020-09-09 10:45:41 -04:00
ldp_debug.h ldpd: Adding support for LDP IGP Synchronization 2020-09-09 10:45:41 -04:00
ldp_vty_cmds.c Merge pull request #6789 from volta-networks/feat_ldp_igp_sync 2020-09-11 15:55:04 -03:00
ldp_vty_conf.c ldpd: replace inet_ntoa 2020-10-22 15:49:56 -04:00
ldp_vty_exec.c ldpd: replace inet_ntoa 2020-10-22 15:49:56 -04:00
ldp_vty.h ldpd: Adding support for LDP IGP Synchronization 2020-09-09 10:45:41 -04:00
ldp_zebra.c ldpd: add support for RLFA clients 2021-01-08 22:22:11 -03:00
ldp.h ldpd: Adding support for LDP IGP Synchronization 2020-09-09 10:45:41 -04:00
ldpd.c ldpd: add support for RLFA clients 2021-01-08 22:22:11 -03:00
ldpd.conf.sample ldpd: adapt the code for Quagga 2016-09-23 09:31:09 -04:00
ldpd.h ldpd: add support for RLFA clients 2021-01-08 22:22:11 -03:00
ldpe.c ldpd: add support for RLFA clients 2021-01-08 22:22:11 -03:00
ldpe.h ldpd: Adding support for LDP IGP Synchronization 2020-09-09 10:45:41 -04:00
log.c ldpd: fix printfrr format specifiers in the child processes 2020-12-09 11:55:10 -03:00
log.h ldpd: split log.c into two files 2017-06-05 12:05:22 -03:00
logmsg.c ldpd: replace inet_ntoa 2020-10-22 15:49:56 -04:00
Makefile build: non-recursive ldpd 2017-08-04 19:09:11 +02:00
neighbor.c *: unify thread/event cancel macros 2020-10-23 12:16:52 -04:00
notification.c ldpd: replace inet_ntoa 2020-10-22 15:49:56 -04:00
packet.c *: unify thread/event cancel macros 2020-10-23 12:16:52 -04:00
pfkey.c *: fix config.h/zebra.h include order 2018-09-08 21:30:42 +02:00
rlfa.c ldpd: add support for RLFA clients 2021-01-08 22:22:11 -03:00
rlfa.h ldpd: add support for RLFA clients 2021-01-08 22:22:11 -03:00
socket.c *: Do not cast to the same type 2020-04-08 17:15:06 +03:00
subdir.am ldpd: add support for RLFA clients 2021-01-08 22:22:11 -03:00
util.c *: spelchek 2018-10-25 20:10:57 +02:00