This commit addresses the case where the LSP entries
of a given device do not contain the local address in
the extended IS reachability TLV option. The below output
shows that the local address is not present in the option:
east-vm# show isis database detail east-vm.00-00
[..]
Extended Reachability: 0007.e901.1111.00 (Metric: 10)
Remote Interface IP Address(es): 10.125.0.1
Adjacency-SID: 30000, Weight: 0, Flags: F:0 B:0, V:1, L:1, S:0, P:0
Extended Reachability: 0007.e901.3333.00 (Metric: 10)
Remote Interface IP Address(es): 10.126.0.3
Adjacency-SID: 30001, Weight: 0, Flags: F:0 B:0, V:1, L:1, S:0, P:0
[..]
The below output shows what is expected:
east-vm# show isis database detail east-vm.00-00
[..]
Extended Reachability: 0007.e901.1111.00 (Metric: 10)
Local Interface IP Address(es): 10.125.0.2
Remote Interface IP Address(es): 10.125.0.1
Adjacency-SID: 30000, Weight: 0, Flags: F:0 B:0, V:1, L:1, S:0, P:0
Extended Reachability: 0007.e901.3333.00 (Metric: 10)
Local Interface IP Address(es): 10.126.0.2
Remote Interface IP Address(es): 10.126.0.3
Adjacency-SID: 30001, Weight: 0, Flags: F:0 B:0, V:1, L:1, S:0, P:0
Not having the local address in the LSP results in creating
an invalid traffic engineering database. This inconsistency
leads to crashes when unconfiguring the isis instance.
The analysis shows the following:
When the configuration is loaded at startup, the interfaces
are not always available, and the presence of the interface
may be detected after the MPLS-TE activation is done. When
the new interface event is triggered, the area is attached to
the new interface circuit, but as the TLV extension has not been
initialised on the circuit, it is not possible to populate
the local address of the interface.
The attached commit consists in creating the TLV extension structure
if MPLS-TE is enabled. Then the local address is populated.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>