> On Mar 11, 2020, at 2:44 PM, Pablo Camarillo (pcamaril) <pcama...@cisco.com> 
> wrote:
> 
> Hi Chris,
> 
> Indeed, an IPv6 packet with no SRH (and FIB entry is local End SID) is one 
> way to get to the Upper Layer Header processing defined in 4.1.1.
> Another way is to have a FIB entry bound to an End.DT* or End.DX* behavior. 
> In these cases the ULH processing occurs if the SRH has SL=0 or there's no 
> SRH.

Ah right, sorry that's right there in the document, it's easy too lose track of 
all this when multitasking on other things. :)

So if you don't mind, going back to my original question of how this works with 
Binding SID cases... You replied:

   "Normally the Upper-Layer Header should not be processed on a packet with a 
BSID, since you have just pushed an SR policy into the packet. That said, when 
the ultimate destination is BSID, then the Upper Layer Header processing is the 
same to End (4.1)."

Can you expand on "when the ultimate destination is BSID"? Do you mean when the 
ultimate destination of the packet is the same node N that is currently 
processing the BSID FIB entry? If so then that will have to be handled in 
whatever way it should be after it is resubmitted to either IPv6 or MPLS 
engines and forwarded and then decapsulated. There won't be anymore header 
processing to follow from 4.{13,14,15} though. Given something has been added 
(an IPv6 header or an MPLS label stack) that still needs to get processed and 
removed before any upper-layer header of the now encapsulated packet gets 
looked at.

I also find another bit of text confusing in these sections:

  "An End.BM SID is never the last SID, and any SID instantiation is
   associated with an SR-MPLS Policy B."

Is that text is saying that if one lands on a BSID one can always expect more 
SIDs to be used in moving the packet (b/c of pushing an new IPv6 encap or MPLS 
label stack)? It's confusing b/c it certainly can read that a BSID can't be the 
"Last Segment" in an SRH, but that doesn't seem like a reasonable restriction.

Thanks,
Chris.

> 
> Many thanks,
> Pablo.
> 
> -----Original Message-----
> From: Christian Hopps <cho...@chopps.org>
> Date: Wednesday, 11 March 2020 at 17:08
> To: "Pablo Camarillo (pcamaril)" <pcama...@cisco.com>
> Cc: Christian Hopps <cho...@chopps.org>, "spring@ietf.org" <spring@ietf.org>
> Subject: Re: [spring] Question on 
> draft-ietf-spring-srv6-network-programming-12
> 
> 
> 
>> On Mar 11, 2020, at 8:16 AM, Pablo Camarillo (pcamaril) 
>> <pcamaril=40cisco....@dmarc.ietf.org> wrote:
>> 
>> Hi Chris,
>> 
>> The processing defined in draft-ietf-spring-srv6-network-programming is 
>> aligned with the SRH. 
>> Particularly see 
>> https://tools.ietf.org/html/draft-ietf-6man-segment-routing-header-26#section-4.3
>> 
>>> Is 4.1.1 covering (and only covering) the case where my FIB lookup yields a 
>>> local End SID, but the packet has no SRH in it?
>> 
>> It is not *only* covering that case (although that is one of the cases, 
>> there are others). You process the extension header chain as defined in 
>> RFC8200.
> 
>    Right I had quoted the 8200 processing order so I'm using that as a guide.
> 
>> When processing the SRH you follow the processing of 4.1; If you get to the 
>> Upper Layer Header, you process it as per 4.1.1
> 
>    This is what I'm getting at though, if there is an SRH you will enter 
> section 4.1 prior to 4.1.1, and if you are in 4.1 there is no processing path 
> that leads to the upper-layer header. So AFAICT the only way to get to 
> section 4.1.1 is if the FIB entry is a local END SID and there is no SRH.
> 
>    Thanks,
>    Chris.
> 
>> 
>> Thank you,
>> Pablo. 
>> 
>> -----Original Message-----
>> From: Christian Hopps <cho...@chopps.org>
>> Date: Wednesday, 11 March 2020 at 12:06
>> To: "Pablo Camarillo (pcamaril)" <pcama...@cisco.com>
>> Cc: Christian Hopps <cho...@chopps.org>, "spring@ietf.org" <spring@ietf.org>
>> Subject: Re: [spring] Question on 
>> draft-ietf-spring-srv6-network-programming-12
>> 
>> 
>> 
>>> On Mar 11, 2020, at 5:59 AM, Pablo Camarillo (pcamaril) 
>>> <pcamaril=40cisco....@dmarc.ietf.org> wrote:
>>> 
>>> Hi Chris,
>>> 
>>> They are the same thing. 
>> 
>>   Ok, so how do I get on 2 different processing paths for the same thing 
>> entry as Section 4.1 cannot lead to processing of an upper-layer header as 
>> far as I can tell, yet section 4.1.1 is talking about processing the upper 
>> layer header for the same FIB entry.
>> 
>>   1) Packet arrives, FIB lookup on packet destination address returns local 
>> End SID entry.
>> 
>>   2) Start processing the extension headers and arrive at the SRH (which 
>> comes prior to the upper-layer header.
>> 
>>      From RFC8200 the extension header order:
>>         IPv6 header
>>         Hop-by-Hop Options header
>>         Destination Options header (note 1)
>>         Routing header <------------------------------------ SRH
>>         Fragment header
>>         Authentication header (note 2)
>>         Encapsulating Security Payload header (note 2)
>>         Destination Options header (note 3)
>>         Upper-Layer header <-------------------------------- Upper Layer 
>> Header
>> 
>>   3) Process the SRH according to 4.1 for which there is no exit that leads 
>> to processing any more headers.
>> 
>>   Oh wait...
>> 
>>   Is 4.1.1 covering (and only covering) the case where my FIB lookup yields 
>> a local End SID, but the packet has no SRH in it? If this is the case then 
>> it would make things *way* more clear for the document to state this 
>> outright. "When a packet's DA returns a FIB entry for a local END SID, but 
>> the packet does not contain an SRH ..." or something like that.
>> 
>>   Thanks,
>>   Chris.
>> 
>> 
>>> 
>>> Section 3:
>>> ...
>>> Its processing is defined in [I-D.ietf-6man-segment-routing-header]
>>> section 4.3 and reproduced here as a reminder.
>>> 
>>>    Without constraining the details of an implementation, the SR
>>>    segment endpoint node creates Forwarding Information Base (FIB)
>>>    entries for its local SIDs.
>>> 
>>>    When an SRv6-capable node receives an IPv6 packet, it performs a
>>>    longest-prefix-match lookup on the packets destination address.
>>>    This lookup can return any of the following:
>>> 
>>>    - A FIB entry that represents a locally instantiated SRv6 SID
>>> 
>>>    - A FIB entry that represents a local interface, not locally
>>>      instantiated as an SRv6 SID
>>> 
>>>    - A FIB entry that represents a non-local route
>>> 
>>>    - No Match
>>> 
>>> Section 4:
>>>> Each FIB entry indicates the behavior associated with a SID instance
>>>> and its parameters.
>>> 
>>> Thank you,
>>> Pablo. 
>>> 
>>> -----Original Message-----
>>> From: Christian Hopps <cho...@chopps.org>
>>> Date: Tuesday, 10 March 2020 at 22:01
>>> To: "Pablo Camarillo (pcamaril)" <pcama...@cisco.com>
>>> Cc: Christian Hopps <cho...@chopps.org>, "spring@ietf.org" <spring@ietf.org>
>>> Subject: Re: [spring] Question on 
>>> draft-ietf-spring-srv6-network-programming-12
>>> 
>>> 
>>> 
>>>> On Mar 10, 2020, at 2:13 PM, Pablo Camarillo (pcamaril) 
>>>> <pcamaril=40cisco....@dmarc.ietf.org> wrote:
>>>> 
>>>> Hi Chris,
>>>> 
>>>> Thanks for going through the document.
>>>> The behaviors 4.13 (End.B6.Encaps), 4.14 (End.B6.Encaps.Red) and 4.15 
>>>> (End.BM) correspond to Binding SIDs [1].
>>>> 
>>>> As a result of 4.13 for example, the packet is encapsulated with a new 
>>>> IPv6 header and an SRH that contains the SR policy associated to the BSID.
>>>> Once the new IPv6 header is pushed into the packet, the NET-PGM pseudocode 
>>>> passes this packet to the IPv6 module of the router for transmission.
>>>> 
>>>> Normally the Upper-Layer Header should not be processed on a packet with a 
>>>> BSID, since you have just pushed an SR policy into the packet.
>>>> That said, when the ultimate destination is BSID, then the Upper Layer 
>>>> Header processing is the same to End (4.1).
>>>> 
>>>> Hope it clarifies.
>>> 
>>>  I'm still not clear on things I guess, but your answer leads me to a more 
>>> basic question:
>>> 
>>>  Section 4.1 described the basic "FIB entry" "End" which says:
>>> 
>>>    "When N receives a packet whose IPv6 DA is S and S is a local End SID, N 
>>> does..."
>>> 
>>>  So it's talking about a FIB entry for a "local End SID".
>>> 
>>>  Section 4.1.1 says:
>>> 
>>>    "When processing the Upper-layer Header of a packet matching a FIB
>>>     entry locally instantiated as an SRv6 End SID"
>>> 
>>>  It's talking about a "FIB entry locally instantiated as an SRv6 END SID"
>>> 
>>>  I'm not understanding how these 2 things are different. 4.1s calling a FIB 
>>> Entry a "local End SID" 4.1.1 is calling something (different?) a "FIB 
>>> Entry locally instantiated as an SRv6 END SID".
>>> 
>>>  The terms seem too similar for me to make a distinction, where I feel the 
>>> document expects me to make one.
>>> 
>>>  Thanks,
>>>  Chris.
>>> 
>>> 
>>>> 
>>>> Thanks,
>>>> Pablo.
>>>> 
>>>> [1]. https://tools.ietf.org/html/rfc8402#section-5
>>>> 
>>>> 
>>>> -----Original Message-----
>>>> From: spring <spring-boun...@ietf.org> on behalf of Christian Hopps 
>>>> <cho...@chopps.org>
>>>> Date: Saturday, 7 March 2020 at 12:50
>>>> To: "spring@ietf.org" <spring@ietf.org>
>>>> Cc: Christian Hopps <cho...@chopps.org>
>>>> Subject: [spring] Question on draft-ietf-spring-srv6-network-programming-12
>>>> 
>>>> In sections 4.13, (implicitly in 4.14) and 4.15 a set of steps is 
>>>> indicated. As far as I can tell the processing of the IPv6 header chain in 
>>>> all cases is terminated. e.g.,
>>>> 
>>>> "
>>>>    When N receives a packet whose IPv6 DA is S and S is a local End.BM
>>>>    SID, does:
>>>> 
>>>>   S01. When an SRH is processed {
>>>>   S02.   If (Segments Left == 0) {
>>>> ....
>>>>                Interrupt packet processing and discard the packet.
>>>>   S04.   }
>>>>   S05.   If (IPv6 Hop Limit <= 1) {
>>>> ....
>>>>                Interrupt packet processing and discard the packet.
>>>>   S07.   }
>>>>   S09.   If ((Last Entry > max_LE) or (Segments Left > (Last Entry+1)) {
>>>> ....
>>>>                Interrupt packet processing and discard the packet.
>>>>   S11.   }
>>>> ....
>>>>   S15.   Submit the packet to the MPLS engine for transmission to the
>>>>             topmost label.
>>>>   S16. }
>>>> "
>>>> 
>>>> The text then says:
>>>> 
>>>>    When processing the Upper-layer header of a packet matching a FIB
>>>>    entry locally instantiated as an SRv6 End.BM SID, process the packet
>>>>    as per Section 4.1.1.
>>>> 
>>>> Why would I ever be processing the upper-layer header at this point?
>>>> 
>>>> Thanks,
>>>> Chris.
>>>> _______________________________________________
>>>> spring mailing list
>>>> spring@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/spring
>>>> 
>>>> 
>>>> _______________________________________________
>>>> spring mailing list
>>>> spring@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/spring
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> spring mailing list
>>> spring@ietf.org
>>> https://www.ietf.org/mailman/listinfo/spring
>> 
>> 
>> 
>> 
>> _______________________________________________
>> spring mailing list
>> spring@ietf.org
>> https://www.ietf.org/mailman/listinfo/spring
>> 
> 
> 
> 

_______________________________________________
spring mailing list
spring@ietf.org
https://www.ietf.org/mailman/listinfo/spring

Reply via email to