summaryrefslogtreecommitdiffstats
path: root/pimd
diff options
context:
space:
mode:
authorSatheesh Kumar K <sathk@cumulusnetworks.com>2019-07-24 07:00:08 +0200
committerSatheesh Kumar K <sathk@cumulusnetworks.com>2019-07-24 07:00:08 +0200
commit59711f1063d763649f53219ef31d7325c007cdeb (patch)
tree4933412446da90ffcb39a54b8a846431d5ebf2b9 /pimd
parentMerge pull request #4708 from opensourcerouting/topotest-common-improvement (diff)
downloadfrr-59711f1063d763649f53219ef31d7325c007cdeb.tar.xz
frr-59711f1063d763649f53219ef31d7325c007cdeb.zip
pimd: Zebra Route Updates are missing at pim
Pim will do the nexthop registration with "ip pim rp" static configuration with this Zebra will advertise the Route Information. But while processing this info at PIM, if Nexthop Interfaces are not PIM enabled, currently PIM is dropping those paths. in case all paths are not PIM enabled, there is no valid RPF Interface at PIM. and PIM will be stuck at this state until Next update this to route, that can happen only if there is a Routing change at Zebra for this prefix. until that time PIM will not have any valid outgoing Interface. This issue was mainly seen during Node bootup scenarios. Fix Proposed ============= store the paths in PIM PNC Data structure though they are not enabled with PIM, because while selecting the Interface PIM checks for multicast enabled Interface. Tests Performed =============== 1. Verified fail Test case 2. Disabling the PIM on selected outgoing Interface, PIM is choosing another path when Neighbor is down on this Interface. 3. Re-configure the PIM on above un-configured Interface, PIM is staying with old NHop since it is valid. Signed-off-by: Satheesh Kumar K <sathk@cumulusnetworks.com>
Diffstat (limited to 'pimd')
-rw-r--r--pimd/pim_nht.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/pimd/pim_nht.c b/pimd/pim_nht.c
index 65ea858cb..39dc8ad2f 100644
--- a/pimd/pim_nht.c
+++ b/pimd/pim_nht.c
@@ -842,6 +842,14 @@ int pim_parse_nexthop_update(ZAPI_CALLBACK_ARGS)
}
if (!ifp->info) {
+ /*
+ * Though Multicast is not enabled on this
+ * Interface store it in database otheriwse we
+ * may miss this update and this will not cause
+ * any issue, because while choosing the path we
+ * are ommitting the Interfaces which are not
+ * multicast enabled
+ */
if (PIM_DEBUG_PIM_NHT) {
char buf[NEXTHOP_STRLEN];
@@ -853,8 +861,6 @@ int pim_parse_nexthop_update(ZAPI_CALLBACK_ARGS)
nexthop2str(nexthop, buf,
sizeof(buf)));
}
- nexthop_free(nexthop);
- continue;
}
if (nhlist_tail) {