Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

isisd: create ext_reachability tlv when necessary #12253

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Commits on Apr 16, 2024

  1. isisd: create ext_reachability tlv when necessary

    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>
    pguibert6WIND committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    f44f0aa View commit details
    Browse the repository at this point in the history