From: Andrew J. Schorr Date: Thu, 27 Jul 2006 22:29:06 +0000 (+0000) Subject: [ospfd] Bug #288: do not change router ID unless forced by manual configuration X-Git-Tag: frr-2.0-rc1~2624 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=1670008b5401eca13456f914bba7331c3b7b2893;p=mirror%2Ffrr.git [ospfd] Bug #288: do not change router ID unless forced by manual configuration 2006-07-27 Andrew J. Schorr * ospfd.c: (ospf_router_id_update) Fix and document the algorithm for selecting the router ID: if there is not a statically configured ID, then stick to the most recent value to avoid disruptive changes. This should fix bug #288. --- diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog index 61ca5e0f1d..dfcbe89948 100644 --- a/ospfd/ChangeLog +++ b/ospfd/ChangeLog @@ -1,3 +1,10 @@ +2006-07-27 Andrew J. Schorr + + * ospfd.c: (ospf_router_id_update) Fix and document the algorithm for + selecting the router ID: if there is not a statically configured ID, + then stick to the most recent value to avoid disruptive changes. + This should fix bug #288. + 2006-07-26 Paul Jakma * ospf_lsa.{c,h}: (ospf_lsa_unlock) Change to take a double pointer diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c index ef8272b044..95615e4a47 100644 --- a/ospfd/ospfd.c +++ b/ospfd/ospfd.c @@ -84,8 +84,17 @@ ospf_router_id_update (struct ospf *ospf) router_id_old = ospf->router_id; + /* Select the router ID based on these priorities: + 1. Statically assigned router ID is always the first choice. + 2. If there is no statically assigned router ID, then try to stick + with the most recent value, since changing router ID's is very + disruptive. + 3. Last choice: just go with whatever the zebra daemon recommends. + */ if (ospf->router_id_static.s_addr != 0) router_id = ospf->router_id_static; + else if (ospf->router_id.s_addr != 0) + router_id = ospf->router_id; else router_id = router_id_zebra;