[quagga-dev 12841] isisd : Add new adjacency to LSP neighbor list
amritha.nambiar at intel.com
Thu Jul 2 23:23:25 BST 2015
Issue : Missing neighbor entries in LSP neighbor list TLV when new adjacencies were formed. Neighbor entries corresponding to new adjacencies did not always get added to LSP neighbor list.
Root cause :
Circuit type for the new adjacency was not set to IIH PDU circuit type before regenerating LSP when a new adjacency is up.
For P2P circuit, when an adjacency is created, the neighbor entry corresponding to the adjacency should be added to the neighbor list in LSP TLV. Although this is currently done, it was noticed that, sometimes the LSP neighbor list were missing some newly created adjacencies. This was root-caused to the adjacency circuit type being set to IIH PDU circuit type only after adjacency state change was done, which triggered regenerating the LSP. Only those adjacencies were added to the LSP neighbor list which were created within the minimum time allowed before LSP retransmission. For this type of adjacencies, when the LSP regenerate was scheduled, the timer would be turned on until LSP generate interval expires; and in those cases, the adjacency circuit type got set to IIH PDU circuit type before the new LSP got regenerated, thus passing the check for adjacency circuit type in lsp_build(). Thus, the adjacency gets added to LSP neighbor list.
The adjacencies that were created once minimum time allowed before LSP retransmission had surpassed, instantly got their LSP regenerated, but the adjacency circuit type was not set to IIH PDU circuit type before the LSP was regenerated , hence didn't pass the check for adjacency circuit type in lsp_build(), and the adjacency was not added to neighbor list.
Fix proposed :
When a new adjacency is up, to build LSP with neighbor entry corresponding to the adjacency, set adjacency circuit type to circuit type from hello PDU header before new LSP is regenerated/built. This will result in the new adjacency entry getting added to the LSP neighbor list TLV. This will fix the LSP missing some neighbor entries when new adjacencies were formed.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Quagga-dev