]> git.puffer.fish Git - matthieu/frr.git/commitdiff
ospfd: Use router_id what Zebra has if we remove a static router_id
authorDonatas Abraitis <donatas@opensourcerouting.org>
Thu, 31 Oct 2024 09:38:40 +0000 (11:38 +0200)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Tue, 5 Nov 2024 15:21:02 +0000 (15:21 +0000)
If we set router-id, e.g. `router-id x.x.x.x`, then we have:

```
pc.donatas.net# show ip ospf | include Router ID
 OSPF Routing Process, Router ID: x.x.x.x
```

But once we remove it (`no router-id x.x.x.x`), the old router-id remains.

This is kinda OK, but to be consistent with OSPFv3 we should use what Zebra
already has, instead of retaining the old one.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 1073e0f9b39b2810a114dea03f2d1e0b14e414d4)

ospfd/ospfd.c

index 7638e979a207330a8b14b411cdffc297d7617c0d..d72afec1e4d68bfee5221340db380198e9bbfca9 100644 (file)
@@ -147,15 +147,10 @@ void ospf_process_refresh_data(struct ospf *ospf, bool reset)
 
        /* 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.
+            2. Just go with whatever the zebra daemon recommends.
        */
        if (ospf->router_id_static.s_addr != INADDR_ANY)
                router_id = ospf->router_id_static;
-       else if (ospf->router_id.s_addr != INADDR_ANY)
-               router_id = ospf->router_id;
        else
                router_id = ospf->router_id_zebra;