diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-03-14 07:58:17 -0400 |
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-03-16 18:58:39 -0400 |
| commit | ec97ac659388fb0fae4aceb77598d355502f21c8 (patch) | |
| tree | a837a530df06610683dd50348be6b98f917ef72d | |
| parent | e711cd3cece039d91a59834e6a9396f878b99c56 (diff) | |
pimd: Remember to delete reference to upstream in failure
When creating the pim upstream data structure, if we fail
to create remove the reference we saved to it on the side
in the pnc code.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
| -rw-r--r-- | pimd/pim_upstream.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index b29e71a334..06f0c5c03c 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -621,10 +621,17 @@ pim_upstream_new (struct prefix_sg *sg, rpf_result = pim_rpf_update(up, NULL, 1); if (rpf_result == PIM_RPF_FAILURE) { + struct prefix nht_p; + if (PIM_DEBUG_TRACE) zlog_debug ("%s: Attempting to create upstream(%s), Unable to RPF for source", __PRETTY_FUNCTION__, up->sg_str); + nht_p.family = AF_INET; + nht_p.prefixlen = IPV4_MAX_BITLEN; + nht_p.u.prefix4 = up->upstream_addr; + pim_delete_tracked_nexthop (&nht_p, up, NULL); + if (up->parent) { listnode_delete (up->parent->sources, up); |
