mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-02 22:09:48 +00:00
pimd: Restarting Quagga sometimes lost mroutes
When on a intermediate switch between the FHR and RP when Quagga is restarted. Pimd is coming up so fast and getting the S,G join before networking is properly working on the switch. We would never install the mroute in this case. What was happening is that the scan of the S,G was occurring and we were figuring out who we should talk to but we were never installing the route for it. Notice that we've never installed the route and install it if the mroute has changed. Ticket: CM-12460 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
8f547471df
commit
34fe48e7de
@ -340,7 +340,14 @@ static void scan_upstream_rpf_cache()
|
||||
if (rpf_result == PIM_RPF_CHANGED) {
|
||||
|
||||
if (up->join_state == PIM_UPSTREAM_JOINED) {
|
||||
|
||||
/*
|
||||
* If we come up real fast we can be here
|
||||
* where the mroute has not been installed
|
||||
* so install it.
|
||||
*/
|
||||
if (!up->channel_oil->installed)
|
||||
pim_mroute_add (up->channel_oil);
|
||||
|
||||
/*
|
||||
RFC 4601: 4.5.7. Sending (S,G) Join/Prune Messages
|
||||
|
||||
@ -452,7 +459,6 @@ pim_scan_individual_oil (struct channel_oil *c_oil)
|
||||
old_vif_index = c_oil->oil.mfcc_parent;
|
||||
c_oil->oil.mfcc_parent = input_iface_vif_index;
|
||||
|
||||
zlog_debug ("FF");
|
||||
/* update kernel multicast forwarding cache (MFC) */
|
||||
if (pim_mroute_add(c_oil))
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user