mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-16 10:38:05 +00:00
ospfd: allow interfaces to come up in rare situation
On startup of both zebra and ospfd. If ospfd has not received a valid router-id *but* has received interface data, interfaces will not be turned on in the state machine. When ospf finally receives a valid router-id it would never actually kick the state machine into action for those interfaces it has been configured for. Modify ospf on router id changes, *if* the old router id was INADDR_ANY *and* the interface is operative *and* the oi->state is ISM_Down, give it the old kick in the patooeys Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
c4c3330652
commit
7e0274f822
@ -132,6 +132,18 @@ void ospf_router_id_update(struct ospf *ospf)
|
||||
* !(virtual | ptop) links
|
||||
*/
|
||||
ospf_nbr_self_reset(oi, router_id);
|
||||
|
||||
/*
|
||||
* If the old router id was not set, but now it
|
||||
* is and the interface is operative and the
|
||||
* state is ISM_Down we should kick the state
|
||||
* machine as that we processed the interfaces
|
||||
* based upon the network statement( or intf config )
|
||||
* but could not start it at that time.
|
||||
*/
|
||||
if (if_is_operative(oi->ifp) && oi->state == ISM_Down
|
||||
&& router_id_old.s_addr == INADDR_ANY)
|
||||
ospf_if_up(oi);
|
||||
}
|
||||
|
||||
/* Flush (inline) all external LSAs based on the OSPF_LSA_SELF
|
||||
|
Loading…
Reference in New Issue
Block a user