You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In OSPFd, when mpls-te is activated, and mpls-te export set, the Traffic Engineering Database (TED) is build from the LSA (both received and advertised). However, when running some topotests, in particular the ospf__sr_te_topo1 on an heavy loaded box, the TED is not correctly formed.
The problem occurs when the router received a foreign Router LSA after the Opaque LSA for a given link. In this particular case, the Opaque LSA is first parse and a new edge is created in the TED. But, when the Router LSA is received and parse, instead of updating the corresponding edge, a new one is created and all TE link parameters are lost. If you wait until the Opaque LSA is refresh i.e. after 30 min., the TED is fulfill correctly.
This cause all process that intend to use the TED failed e.g. pathd because the corresponding edge has no TE link parameters and thus the edge is not usable from a TE point of view.
A simple show ip ospf mpls-te database will show the failure:
The problem is located in file ospfd/ospf_te.c ospf_te_parse_router_lsa() lines 1912-1914. The goal is to mark all edges (and just right after) all subnets as ORPHAN to detect removal as there is no explicit LSA to remove link or node. Just a refresh with updated list of link / node / prefix and you need to compare with that you have stored from previous LSAs. At the end of the ospf_te_parse_router_lsa() function, a call to ls_vertex_clean() will remove all edges and subnets that are marked as ORPHAN i.e. all edges and subnets that have not been refreshed.
However, an ospf router could send multiple Router LSA and not only one. Thus, the previous method is only working if all prefixes are advertised in the same Router LSA. In case of multiple Router LSA, previously configured edges and subnets are removed. If TED will finally converge with LSA refresh mechanism, it could spent at minimum MAX_AGE (i.e. 3600 sec.) leaving the TED in an incoherent state during a large amount of time, in particular during some tests.
To overcome this issue, edges and subnets MUST be removed only when TE Opaque LSA are flushed and not base on the advertisement of Router LSA. The latter will be used only to create or update edges and subnet.
In OSPFd, when mpls-te is activated, and mpls-te export set, the Traffic Engineering Database (TED) is build from the LSA (both received and advertised). However, when running some topotests, in particular the ospf__sr_te_topo1 on an heavy loaded box, the TED is not correctly formed.
The problem occurs when the router received a foreign Router LSA after the Opaque LSA for a given link. In this particular case, the Opaque LSA is first parse and a new edge is created in the TED. But, when the Router LSA is received and parse, instead of updating the corresponding edge, a new one is created and all TE link parameters are lost. If you wait until the Opaque LSA is refresh i.e. after 30 min., the TED is fulfill correctly.
This cause all process that intend to use the TED failed e.g. pathd because the corresponding edge has no TE link parameters and thus the edge is not usable from a TE point of view.
A simple
show ip ospf mpls-te database
will show the failure:Here, the link 10.0.8.5 / 10.0.8.6 is not correctly discovered and attached between router ID 5.5.5.5 and router ID 6.6.6.6
Which is coherent with an edge without remote IP address and no TE link information
While the Opaque LSA is present with all TE link parameters
The text was updated successfully, but these errors were encountered: