Hi Seeking some more clarification in the draft regarding PHP route determination. Please consider the following scenario. SID refers to Prefix Segment Identifier.
Router-A: --------------------- :Router-B: ---------------------( SID-210) :Router-C 10.0.0.0/24 20.0.0.0/24 Lets consider the above topology of 3 routers. Router-C has configured Prefix SID 210 for prefix 20.0.0.0/24 prefix. In the context of Router-A, the route 20.0.0.0/24 is a PHP route, as it belongs to its neighbor Router-B. Router-B is not configured. When Ext Prefix LSA with SID 210 originated by Router-C reaches Router-A , it finds that it's not from its neighbor Router-B and hence it will end up installing a non-PHP label say 210, instead of doing penultimate hop pop for the route 20.0.0.0/24. But this won't be correct. Am interpreting this because as per the following rules for PHP determination prescribed in the document, "If the NP-Flag is not set then any upstream neighbor of the Prefix- SID originator MUST pop the Prefix-SID. This is equivalent to the penultimate hop popping mechanism used in the MPLS dataplane." Since this is an intra-area case, NP is not set. However since Router-A is not upstream neighbor of Router-C it will not apply PHP for this route, even though its actually a PHP route. Few questions in this 1) Should we just rely on checking that its upstream neighbor and NP flag and then apply PHP, or Router-A should do a special search its Link State database to find whether the route actually belongs to its neighbor, in this case Router-B. 2) Is the above a valid scenario or the administrator is mandated to configure SID values (which are all same) on all routers connected to subnet 20.0.0.0/24. 3) If we mandate (2) we will have the below scenario Router-A --------------------- :Router-B : SID-210--------------------- SID-210:Router-C 10.0.0.0/24 20.0.0.0/24 In this case, even if we configure SID in Router-C earlier, we will be needed to configure the same in Router-B also. So Router-A will select the Ext Prefix LSA coming from Router-B , as its the best path for route 20.0.0.0/24 than Router-C. So even though we have non-PHP label installed first, it will be replaced with PHP label as soon ROuter-B is also configured for same prefix. So we may not choose to do special search in link state database to find PHP route as mentioned in (1) The selection of SID, when both Router-B and Router-C is configured is based on following the rules mentioned in https://tools.ietf.org/html/draft-ietf-ospf-prefix-link-attr-03#section-2. 1 "If this TLV is advertised multiple times for the same prefix in different OSPFv2 Extended Prefix Opaque LSAs originated by the different OSPF routers, the application using the information is required to determine which OSPFv2 Extended Prefix Opaque LSA is used. For example, the application could prefer the LSA providing the best path to the prefix." So should we follow (2) and (3) for considering PHP, or (1). If we don't follow any, we will end up having non-PHP label even for routes that are PHP. Please point me out if in case I am misinterpreting the intent of any texts mentioned from the drafts. Regards Santanu -- . _______________________________________________ OSPF mailing list OSPF@ietf.org https://www.ietf.org/mailman/listinfo/ospf