Re: [OSPF] PHP route determination in draft-ietf-ospf-segment-routing-extensions-03

Santanu Kar <> Tue, 31 March 2015 13:21 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 9071C1ACD2F for <>; Tue, 31 Mar 2015 06:21:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.977
X-Spam-Status: No, score=-1.977 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 2BBelHvqRI4y for <>; Tue, 31 Mar 2015 06:20:58 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 2C8E21ACD25 for <>; Tue, 31 Mar 2015 06:20:58 -0700 (PDT)
Received: by wgdm6 with SMTP id m6so18940280wgd.2 for <>; Tue, 31 Mar 2015 06:20:56 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20130820; h=x-gm-message-state:from:references:in-reply-to:mime-version :thread-index:date:message-id:subject:to:content-type; bh=kdkuPZtQPbaRivHUw5CvRwzUv9QP+uJ/daSWo9csx3w=; b=crMphqeuE1jhPWMDD/to5b9ZW5WoKZ/PMpUbCJTHdJz1C0jZDXFvjaC3as7xVWbNEC 5hToG6m/28dhAotSsNe2zymJAqjFUZAQOdAjQv8BADK/tZk+dPWkxOPqOLeQ90FqU90N jgSaXF0NorUfAvNzvktfvD/bhYhJFPX79qtTO5pwPd13fFC6Q2pVl4k86kFU+vxfQasC feIPSDiizJAfGDsQ9hhz5TuJLeU/G4/Z/pRipqzl/YrWzYI6aBA356mzOkJY8deKla+Z VS5V1qAbfZSmNQ9g9zl6PWdk834zDngRSE6zGa8hLWN1TrXHupkZ+MDKchZ2ebu0oFu+ yOxg==
X-Gm-Message-State: ALoCoQl3tFRdAXLZhnxZxVBoN03fzm+w9C9VT6tvYxL//VP2HCkO7gbr2YAAPSXi3If3w5JWhXvMbjUOq9WyNf6B0grxvtI2cjClBQdA+83YLy0JTlE0AwUoMt3d5/m73p0AfZBTJU/jds21gJBWODOS8JagLPqaAky+MBEti+Dx08A9c0lTfhZNynVRq7QHqiCP4ZXWaGLD
X-Received: by with SMTP id pb5mr75543479wjb.40.1427808056770; Tue, 31 Mar 2015 06:20:56 -0700 (PDT)
From: Santanu Kar <>
MIME-Version: 1.0
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AdBol7CoMWZ69oY2QXWAefarTdFnhQDB03Jg
Date: Tue, 31 Mar 2015 18:50:45 +0530
Message-ID: <>
Content-Type: multipart/alternative; boundary=089e011771f3081c9605129578e9
Archived-At: <>
Subject: Re: [OSPF] PHP route determination in draft-ietf-ospf-segment-routing-extensions-03
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 31 Mar 2015 13:21:01 -0000

   RE: PHP route determination in

Hi Authors

I think last mail was a bit long to have probably missed the actual point
which I was trying to make.  Stating it concisely again.

The PHP Prefix Segment can be advertised by the neighbor as well as by routers
downstream of the neighbor which are connected to it.

So to determine a PHP Prefix Segment, should the recipient router only check
for PHP when its advertised from its neighbor (with NP flag unset) ,
or even when
its from other routers downstream of the neighbor.

The reason for this doubt is this statement in the text

"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."



-----Original Message-----
From: Santanu Kar [
Sent: Friday, March 27, 2015 7:47 PM
To: '';; '';; '';; '';; '';; '';; '';
Subject: PHP route determination in


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


   Lets consider the above topology of 3 routers. Router-C has configured
Prefix SID 210 for prefix prefix. In the context of Router-A,
the route 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 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

3) If we mandate (2) we will have the below scenario

   Router-A --------------------- :Router-B : SID-210---------------------


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 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

"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

Please point me out if in case I am misinterpreting the intent of any texts
mentioned from the drafts.