1 Dec 2006 19:07
[quagga-dev 4511] should ospf be able to run on multiple connected addresses on a single interface?
Andrew J. Schorr <aschorr <at> telemetry-investments.com>
2006-12-01 18:07:31 GMT
2006-12-01 18:07:31 GMT
In http://bugzilla.quagga.net/show_bug.cgi?id=316 we have a problem where the ospfd was ignoring a connected address if a router-id was not set statically in the config file. When there's a router-id in the config file, then each connected address gets processed as it arrives from zebra. And if there are multiple connected addresses on an interface that match the 'network' statement, an ospf_interface is created for each. But if there's no static router-id, then nothing happens until ospfd receives a router-id from zebra (which seems to happen after all the interfaces and addresses are added). At that point, it calls ospfd.c:ospf_network_run(), and it seems that ospf_network_run will not create more than a single ospf_interface for each interface (because there's a 'break' statement that bails out of the loop). It turns out that deleting the 'break' statement (as in the attached patch) gets the behavior to match the case where the router-id was statically configured. So this leads to the question: does the 'break' statement belong there? I guess this boils down to: does it ever make sense to run OSPF more than once on the same interface? Basically, I think we need either to delete the 'break' statement from ospf_network_run, or patch somewhere else to prevent the 2nd ospf_interface from being created on the interface in the case where the router-id was statically configured. But one way or another, I think there's a bug: the behavior should be consistent regardless of whether the router-id was statically set in the config file.(Continue reading)
RSS Feed