pim6d: (*,G) mroutes not learnt after pim6d daemon restart

After restart pim dr address was zero due to which pim (*,G) join
could not get propagated towards RP.

While trying to find primary address ll_highest will be zero initially,
since we have not received address from zebra yet.

So we can get the best address at this point and use it as primary address
whenever ll_highest is zero.

Fixes: #11925

Signed-off-by: Abhishek N R <abnr@vmware.com>
This commit is contained in:
Abhishek N R 2022-09-16 00:42:39 -07:00
parent a05ae6c440
commit b4460a6b33

View File

@ -883,7 +883,7 @@ pim_addr pim_find_primary_addr(struct interface *ifp)
return pim_ifp->update_source;
#if PIM_IPV == 6
if (pim_ifp)
if (pim_ifp && !pim_addr_is_any(pim_ifp->ll_highest))
return pim_ifp->ll_highest;
pim_addr best_addr = PIMADDR_ANY;