diff options
-rw-r--r-- | ldpd/lde.c | 6 | ||||
-rw-r--r-- | ldpd/lde_lib.c | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/ldpd/lde.c b/ldpd/lde.c index 5e98efa47..588ccd695 100644 --- a/ldpd/lde.c +++ b/ldpd/lde.c @@ -890,8 +890,12 @@ lde_send_labelmapping(struct lde_nbr *ln, struct fec_node *fn, int single) */ lw = (struct lde_wdraw *)fec_find(&ln->sent_wdraw, &fn->fec); if (lw) { - if (!fec_find(&ln->sent_map_pending, &fn->fec)) + if (!fec_find(&ln->sent_map_pending, &fn->fec)) { + debug_evt("%s: FEC %s: scheduling to send label " + "mapping later (waiting for pending label release)", + __func__, log_fec(&fn->fec)); lde_map_pending_add(ln, fn); + } return; } diff --git a/ldpd/lde_lib.c b/ldpd/lde_lib.c index bafd33f26..c56b7e33d 100644 --- a/ldpd/lde_lib.c +++ b/ldpd/lde_lib.c @@ -396,8 +396,7 @@ lde_kernel_update(struct fec *fec) lde_gc_start_timer(); } else { fn->local_label = lde_update_label(fn); - if (fn->local_label != NO_LABEL && - RB_EMPTY(lde_map_head, &fn->upstream)) + if (fn->local_label != NO_LABEL) /* FEC.1: perform lsr label distribution procedure */ RB_FOREACH(ln, nbr_tree, &lde_nbrs) lde_send_labelmapping(ln, fn, 1); |