> On Mar 12, 2020, at 6:06 AM, Pablo Camarillo (pcamaril) 
> <pcamaril=40cisco....@dmarc.ietf.org> wrote:
> 
> Hi Chris, 
> 
> The Binding SIDs have a restriction not to be the last SID in a SID list. 
> This applies to all three Binding SID behaviors defined in 
> draft-ietf-spring-network-programming (End.B6.Encaps, End.B6.Encaps.Red and 
> End.BM) and is indicated by the statements such as "An End.B6.Encaps SID is 
> never the last segment in a SID list." in section 4.13.
> 
> More precisely, when a node processes the SRH of a packet whose IPv6 
> Destination Address matches a locally instantiated SRv6 Binding-SID behavior 
> (any of the three) and it is not the last segment in the SID list, it steers 
> the packet into the associated SR Policy (either by performing an IPv6 
> encapsulation or by pushing an MPLS label stack on top of the existing 
> packet).
> 
> However, if the binding SID is the last SID in a SID list

This is the Segments Left == 0 case?

> or the IPv6 DA in a packet with no SRH, then the router will generate an ICMP 
> Parameter Problem message with code 4. In either of those two cases, the 
> packet is not steered in the SR Policy and the source is notified of the 
> issue.

So looping back to my earlier comments on 4.1.1, but in this context. The only 
way to arrive at this text in 4.{13,14,15}:

   "When processing the Upper-layer header of a packet matching a FIB
   entry locally instantiated as an SRv6 End.B6.Encaps SID, process the
   packet as per Section 4.1.1."

is for there to be no SRH in the packet?

Thanks,
Chris.

> 
> This restriction exists for two reasons:
> First, the primary use-case for the Binding-SID concept is to apply an 
> intermediate SR Policy that steers the packet along a particular path in an 
> intermediate sub-domain, but the original SID-list is expected to steer the 
> traffic up to the egress node of the SR domain. This means that the final 
> segment in the original SID-list is usually an End.D* (VPN) segment at the 
> egress node.
> 
> Second, the processing a Binding-SID at a last position in a SID list 
> requires a different processing. First you would need to decapsulate the 
> packet (since it has reached it final destination) and then re-encapsulate it 
> (or push a label stack on top of the inner packet).
> 
> Many thanks,
> Pablo.
> 
> -----Original Message-----
> From: Christian Hopps <cho...@chopps.org>
> Date: Wednesday, 11 March 2020 at 20:21
> 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 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

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

Reply via email to