diff options
author | Renato Westphal <renatowestphal@gmail.com> | 2016-09-28 17:25:17 +0200 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2016-09-28 22:05:39 +0200 |
commit | 134970a2a183d5021a1de42e8eede2fc3aa32e56 (patch) | |
tree | b5c1edc17d6b49d0d0ebab59776454a1354c48d3 /ldpd/lde.h | |
parent | ldpd: make route flags a 32bit field (diff) | |
download | frr-134970a2a183d5021a1de42e8eede2fc3aa32e56.tar.xz frr-134970a2a183d5021a1de42e8eede2fc3aa32e56.zip |
ldpd: fix processing of redistributed routes
Commit 5048fe changed the way zebra behave when a route is updated. Now,
whenever a route is changed, zebra advertises its new version without
withdrawing the old one. This patch adapts ldpd to understand this new
behavior. After processing a ZEBRA_REDISTRIBUTE_IPV[46]_ADD message,
we need to check for nexthops that were removed and, for each of them
(if any), withdraw the associated labels from zebra.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Diffstat (limited to 'ldpd/lde.h')
-rw-r--r-- | ldpd/lde.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/ldpd/lde.h b/ldpd/lde.h index 0fce5565a..cf8f2129a 100644 --- a/ldpd/lde.h +++ b/ldpd/lde.h @@ -102,7 +102,9 @@ struct fec_nh { union ldpd_addr nexthop; uint32_t remote_label; uint8_t priority; + uint8_t flags; }; +#define F_FEC_NH_NEW 0x01 struct fec_node { struct fec fec; @@ -167,6 +169,7 @@ void lde_kernel_insert(struct fec *, int, union ldpd_addr *, uint8_t, int, void *); void lde_kernel_remove(struct fec *, int, union ldpd_addr *, uint8_t); +void lde_kernel_reevaluate(struct fec *); void lde_check_mapping(struct map *, struct lde_nbr *); void lde_check_request(struct map *, struct lde_nbr *); void lde_check_release(struct map *, struct lde_nbr *); |