Go to file
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
.github .github: improve bug report template 2020-10-20 16:12:03 -04:00
alpine alpine: Remove old docker deps for alpine 2020-10-22 03:03:53 -04:00
babeld babeld: Free ifc leak 2020-11-14 21:19:42 -05:00
bfdd bfd: fix session lookup 2020-12-04 14:38:30 +03:00
bgpd bgpd: Force BGP updates when triggering reset out 2021-01-08 18:04:18 +02:00
debian Revert "debian: Merge various debian changelogs in debian/changelog" 2020-11-19 17:12:42 -05:00
doc Merge pull request #7507 from ton31337/fix/bgpd_do_not_send_update_if_path_really_did_not_change 2021-01-05 10:26:18 -05:00
docker docker: don't fail on chown /etc/frr 2020-06-10 00:20:04 -04:00
eigrpd *: Replace s_addr check agains 0 with INADDR_ANY 2020-12-14 21:03:38 +02:00
fpm *: Replace sizeof something to sizeof(something) 2020-03-08 21:44:53 +02:00
gdb bgpd: Convert binfo to path 2018-10-09 14:26:30 -04:00
grpc lib: don't ignore error messages generated during the commit apply phase 2020-08-14 21:37:14 -03:00
include include: Update rtnetlink.h 2020-11-15 10:12:50 -05:00
isisd *: Replace s_addr check agains 0 with INADDR_ANY 2020-12-14 21:03:38 +02:00
ldpd ldpd: add support for RLFA clients 2021-01-08 22:22:11 -03:00
lib ldpd: add support for RLFA clients 2021-01-08 22:22:11 -03:00
m4 build: find all future minor versions of python3 2020-07-09 06:47:31 +02:00
mlag zebra: Do not build mlag protobuf support if version 3 is not avail 2019-12-15 09:37:51 -05:00
nhrpd nhrpd: fix SA warning in nhrp_interface 2020-12-08 09:10:10 -05:00
ospf6d Merge pull request #7717 from ranjanyash54/2368 2020-12-15 07:29:10 -05:00
ospfclient ospfclient: replace inet_ntoa 2020-10-22 13:41:51 -04:00
ospfd ospfd: fix no show database output when selecting vrf 2020-12-24 15:07:24 +01:00
pathd pathd: Convert to use our internal frr_weak_random 2021-01-05 15:37:32 -05:00
pbrd Merge pull request #7762 from sworleys/PBR-Ipv4/Ipv6-Match-Fixes 2021-01-05 13:54:06 -05:00
pimd Merge pull request #7739 from mobash-rasool/pim-fixes 2020-12-15 16:14:32 -06:00
pkgsrc *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
python *: reformat python files 2020-10-07 17:22:26 -04:00
qpb build: add LLVM bitcode targets 2020-05-05 14:39:12 +02:00
redhat pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
ripd *: Replace s_addr check agains 0 with INADDR_ANY 2020-12-14 21:03:38 +02:00
ripngd *: Remove route_map_object_t from the system 2020-11-13 19:35:20 -05:00
sharpd *: Replace s_addr check agains 0 with INADDR_ANY 2020-12-14 21:03:38 +02:00
snapcraft snapcraft: Update rtrlib to 0.7.0 2021-01-07 02:16:19 +01:00
staticd Merge pull request #7478 from donaldsharp/buffer 2020-11-18 08:30:47 -05:00
tests Merge pull request #7816 from pjdruddy/revert_labelmanager_statics 2021-01-08 20:57:25 -03:00
tools Merge pull request #7472 from opensourcerouting/fpm-fixes 2020-12-22 11:37:58 -05:00
vrrpd *: Convert all usage of zclient_send_message to new enum 2020-11-15 15:04:52 -05:00
vtysh Merge pull request #7351 from opensourcerouting/feature/pathd 2020-12-18 20:28:22 +01:00
watchfrr *: unify thread/event cancel macros 2020-10-23 12:16:52 -04:00
yang Merge pull request #7807 from logbob0401/vrrpd_yang_bug_fix 2021-01-05 10:30:55 -05:00
zebra Merge pull request #7816 from pjdruddy/revert_labelmanager_statics 2021-01-08 20:57:25 -03:00
.clang-format clang-format: add FOREACH_SAFI to the ForEachMacros list 2020-08-03 12:18:24 -03:00
.dir-locals.el tools: fix emacs configuration file 2019-11-04 11:45:52 -03:00
.dockerignore docker: Make docker image on CentOS 7 2019-11-26 19:29:30 +00:00
.git-blame-ignore-revs .git-blame-ignore-revs: update for tests reformat 2020-12-17 15:33:21 -05:00
.gitignore Revert "debian: Adjust tarsource.sh to use native debian/changelog" 2020-11-19 17:12:41 -05:00
bootstrap.sh autoreconf -i 2007-02-06 19:28:28 +00:00
buildtest.sh config: switch a few references to say FRR 2017-07-12 11:25:33 -05:00
changelog-auto.in Revert "debian: Adjust tarsource.sh to use native debian/changelog" 2020-11-19 17:12:41 -05:00
config.version.in build: carry --with-pkg-extra-version into tarballs 2018-10-24 15:11:50 +02:00
configure.ac pathd: Add optional support for PCEP to pathd 2020-12-18 16:47:52 +01:00
COPYING *: make consistent & update GPLv2 file headers 2017-05-15 16:37:41 +02:00
COPYING-LGPLv2.1 build: remove LGPL v2.0, add LGPL v2.1 2016-11-15 17:19:38 +09:00
Makefile.am pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
README.md doc: Update Documentation to note Solaris Unsupported status 2020-09-21 10:02:20 -04:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00

Icon

FRRouting

FRR is free software that implements and manages various IPv4 and IPv6 routing protocols. It runs on nearly all distributions of Linux and BSD and supports all modern CPU architectures.

FRR currently supports the following protocols:

  • BGP
  • OSPFv2
  • OSPFv3
  • RIPv1
  • RIPv2
  • RIPng
  • IS-IS
  • PIM-SM/MSDP
  • LDP
  • BFD
  • Babel
  • PBR
  • OpenFabric
  • VRRP
  • EIGRP (alpha)
  • NHRP (alpha)

Installation & Use

For source tarballs, see the releases page.

For Debian and its derivatives, use the APT repository at https://deb.frrouting.org/.

Instructions on building and installing from source for supported platforms may be found in the developer docs.

Once installed, please refer to the user guide for instructions on use.

Community

The FRRouting email list server is located here and offers the following public lists:

Topic List
Development dev@lists.frrouting.org
Users & Operators frog@lists.frrouting.org
Announcements announce@lists.frrouting.org

For chat, we currently use Slack. You can join by clicking the "Slack" link under the Participate section of our website.

Contributing

FRR maintains developer's documentation which contains the project workflow and expectations for contributors. Some technical documentation on project internals is also available.

We welcome and appreciate all contributions, no matter how small!

Security

To report security issues, please use our security mailing list:

security [at] lists.frrouting.org