summaryrefslogtreecommitdiff
path: root/zebra/zebra_pw.c
diff options
context:
space:
mode:
authorRenato Westphal <renato@opensourcerouting.org>2017-07-06 00:46:34 -0300
committerDavid Lamparter <equinox@opensourcerouting.org>2017-08-09 12:35:16 +0200
commitb4fcca6bf20e56d101391bff03e3793794073bc5 (patch)
tree8f77af1fe664b57d38f5339f2fd7ebbdf876ac1e /zebra/zebra_pw.c
parentd42127daf36e5cf0aed132cb55bd5788ea60a353 (diff)
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>
Diffstat (limited to 'zebra/zebra_pw.c')
0 files changed, 0 insertions, 0 deletions