diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-09-18 19:43:43 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-09-18 19:43:43 -0400 |
| commit | 16296beaa5ff0b51e1b9e88848206dcea5cd2a32 (patch) | |
| tree | 4d6f7bb900986bd473cf3d59422feb34bc8d2c2c /zebra/redistribute.h | |
| parent | 312fbe4b60aee9020e587eea41df243d8bef55e0 (diff) | |
| parent | 40f321c000862f9d25f29c6003c53f21997bba80 (diff) | |
Merge pull request #4731 from mjstapp/fix_redist_update
zebra: redistribute deletes when updating selected route
Diffstat (limited to 'zebra/redistribute.h')
| -rw-r--r-- | zebra/redistribute.h | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/zebra/redistribute.h b/zebra/redistribute.h index 30ff6bcd09..2685458f96 100644 --- a/zebra/redistribute.h +++ b/zebra/redistribute.h @@ -42,11 +42,19 @@ extern void zebra_redistribute_default_delete(ZAPI_HANDLER_ARGS); extern void redistribute_update(const struct prefix *p, const struct prefix *src_p, - struct route_entry *re, - struct route_entry *prev_re); -extern void redistribute_delete(const struct prefix *p, - const struct prefix *src_p, - struct route_entry *re); + const struct route_entry *re, + const struct route_entry *prev_re); +/* + * During a route delete, where 'new_re' is NULL, redist a delete to all + * clients registered for the type of 'old_re'. + * During a route update, redist a delete to any clients who will not see + * an update when the new route is installed. There are cases when a client + * may have seen a redist for 'old_re', but will not see + * the redist for 'new_re'. + */ +void redistribute_delete(const struct prefix *p, const struct prefix *src_p, + const struct route_entry *old_re, + const struct route_entry *new_re); extern void zebra_interface_up_update(struct interface *); extern void zebra_interface_down_update(struct interface *); |
