Go to file
Renato Westphal b4fcca6bf2 ldpd: fix missing label mappings
In some scenarios, it's possible to send a Label Withdraw to a neighbor
and not receive a corresponding Label Release right away. This can happen
during reconvergence after a network failure or configuration change.

When this happens, the list of upstream mappings of a given FEC might
not be empty even after sending a Label Withdraw to all neighbors. This
situation holds until all neighbors either send a Label Release or are
torn down (e.g. keepalive timeout).

With that said, we shouldn't check for 'RB_EMPTY(&fn->upstream)'
in lde_kernel_update() because it can prevent ldpd from sending label
mappings in such circumstances. This check was introduced to avoid sending
the same label mapping more than once to the same neighbor, but we need
to remove this optimization for now until we find a better solution (which
probably involves refactoring the whole zebra<->ldpd communication).

While here, add a new debug message in lde_send_labelmapping() which
can aid in troubleshooting label problems in the future.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-08-09 12:35:16 +02:00
babeld doc/babeld: small documentation update 2017-08-01 22:19:18 -03:00
bgpd *: Define the number of seconds in a Day, Week and year 2017-08-08 09:06:22 -04:00
debian debian: python3-dev is now a build requirement for main package 2017-06-27 18:09:38 -07:00
doc doc/babeld: small documentation update 2017-08-01 22:19:18 -03:00
eigrpd eigrpd: Fix crash and attempt to send data 2017-08-04 19:29:03 -04:00
fpm protobuf: fix build 2017-07-31 23:03:30 +02:00
gdb gdb: Add a directory of files with gdb macros 2016-05-26 15:33:30 +00:00
init build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
isisd *: Define the number of seconds in a Day, Week and year 2017-08-08 09:06:22 -04:00
ldpd ldpd: fix missing label mappings 2017-08-09 12:35:16 +02:00
lib ldpd: integrate with the pseudowire manager in zebra 2017-08-09 12:35:16 +02:00
m4 build: non-recursive auxiliary directories 2017-07-31 23:03:30 +02:00
nhrpd nhrp: fix assertion with negative holding times 2017-08-04 10:19:36 +02:00
ospf6d ospf6: Fix DEBUG compiling error 2017-08-09 12:07:34 +02:00
ospfclient *: reindent 2017-07-17 14:04:07 +02:00
ospfd ospfd: deprecate timers lsa arrival ... 2017-08-07 16:11:10 -04:00
pimd Merge pull request #922 from qlyoung/pim-cli 2017-08-07 13:19:11 -05:00
pkgsrc build: non-recursive auxiliary directories 2017-07-31 23:03:30 +02:00
ports pimd: merge pimd as of 2015-01-19 2016-05-25 20:38:32 -04:00
python build: non-recursive auxiliary directories 2017-07-31 23:03:30 +02:00
qpb protobuf: fix build 2017-07-31 23:03:30 +02:00
redhat rhel: Don't obsolete bird 2017-08-07 14:37:21 -04:00
ripd *: Define the number of seconds in a Day, Week and year 2017-08-08 09:06:22 -04:00
ripngd *: Define the number of seconds in a Day, Week and year 2017-08-08 09:06:22 -04:00
snapcraft build: non-recursive auxiliary directories 2017-07-31 23:03:30 +02:00
solaris gitignore: update references to FRR 2017-07-12 11:55:04 -05:00
tests isisd: rework complete, move "tlvs2" to "tlvs" 2017-08-03 11:34:04 +02:00
tools Revert "*: reindent pt. 2" 2017-07-22 14:52:33 +02:00
vtysh vtysh: add missing \n on warning message 2017-08-06 04:17:13 +02:00
watchfrr watchfrr: hide systemd message if not systemd available 2017-08-04 10:19:36 +02:00
zebra zebra: add support to openbsd's mpw(4) for pseudowires 2017-08-09 12:35:16 +02:00
.clang-format *: add indent control files 2017-07-17 14:00:23 +02:00
.gitignore gitignore: update references to FRR 2017-07-12 11:55:04 -05:00
AUTHORS Initial revision 2002-12-13 20:15:29 +00: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 Rename: freerangerouting --> frrouting 2017-03-30 14:24:05 -04:00
common.am build: fix/improve clippy dependencies 2017-08-01 07:09:45 +02:00
COMMUNITY.md COMMUNITY.md: rewrap paragraphs, update PR section 2017-07-25 15:53:05 -04:00
configure.ac config: Disable pimd on OpenBSD 6.1 2017-08-02 10:12:19 -05: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
defaults.h *: reindent 2017-07-17 14:04:07 +02:00
git-reindent-branch.py *: fix git-reindent-branch.py reversing order 2017-07-22 18:00:44 +02:00
indent.py *: add indent control files 2017-07-17 14:00:23 +02:00
Makefile.am build: non-recursive auxiliary directories 2017-07-31 23:03:30 +02:00
NEWS release: 0.99.24 2016-06-03 15:56:44 -04:00
README README: add references to EIGRP and NHRP. 2017-05-12 22:51:45 +02:00
README.NetBSD config: switch a few references to say FRR 2017-07-12 11:25:33 -05:00
render_md.py build: number sections in COMMUNITY.md HTML 2016-12-05 19:08:00 +01:00
REPORTING-BUGS config: switch a few references to say FRR 2017-07-12 11:25:33 -05:00
SERVICES babeld/eigrpd: flip VTY ports & fix rpm 2017-06-13 14:36:55 +02:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00
update-autotools * README.NetBSD: use update-autotools instead of autoreconf 2007-02-02 16:52:38 +00:00

FRRouting is free software that manages various IPv4 and IPv6 routing
protocols.

Currently FRRouting supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1,
RIPv2, RIPng, PIM-SM/MSDP and LDP as well as very early support for IS-IS,
EIGRP and NHRP.

See the file REPORTING-BUGS to report bugs.

Free RRRouting is free software. See the file COPYING for copying conditions.

Public email discussion can be found at https://lists.frrouting.org/listinfo

Our public slack channel is at https://frrouting.slack.com