> If we argue this behavior as not violating "extension headers cannot be 
> removed from a packet until it has arrived at its ultimate destination"

That is not, perhaps unfortunately, what RFC 8200 says.

Regards
   Brian Carpenter

On 05-Mar-20 17:08, Ketan Talaulikar (ketant) wrote:
> Hi Jinmei,
> 
>  
> 
> Please check inline below.
> 
>  
> 
> -----Original Message-----
> From: ipv6 <ipv6-boun...@ietf.org> On Behalf Of ????
> Sent: 05 March 2020 05:15
> To: Pablo Camarillo (pcamaril) <pcamaril=40cisco....@dmarc.ietf.org>
> Cc: spring@ietf.org; 6...@ietf.org; Bob Hinden <bob.hin...@gmail.com>; Robert 
> Raszuk <rob...@raszuk.net>
> Subject: Re: [spring] Suggest some text //RE: Request to close the LC and 
> move forward//RE: WGLC - draft-ietf-spring-srv6-network-programming
> 
>  
> 
> At Wed, 4 Mar 2020 12:17:07 +0000,
> 
> "Pablo Camarillo (pcamaril)" <pcamaril=40cisco....@dmarc.ietf.org 
> <mailto:pcamaril=40cisco....@dmarc.ietf.org>> wrote:
> 
>  
> 
>> Inline PC1.
> 
>  
> 
> Thank you for the clarification.  I'm not sure why you included the expanded 
> processing logic instead of just saying correct or incorrect
> 
> here:
> 
> */[KT] I believe Pablo might have done this as a hint on how to look at the 
> processing logic of the PSP flavor in the conjunction with the SID behavior 
> pseudocode./*
> 
>  
> 
>> PC1:
> 
>> 
> 
>> This is the exact processing at S2 combined End (4.1) with PSP (4.16.1):
> 
>  
> 
> ....but I interpret the entire response as my understanding is correct.
> 
>  
> 
> Then, going back to the message from Robert:
> 
>  
> 
>>>> "Extension headers cannot be added to a packet after it has left its
> 
>>>> source node and extension headers cannot be removed from a packet
> 
>>>> until it has arrived at its ultimate destination".
> 
>> 
> 
>>> PSP would be still not be violating anything said in this sentence.
> 
>>> Reason being is that we are dealing here with an *encapsulated*
> 
>>> packet which has as its ultimate destination SR node X. That SR node
> 
>>> X is to perform or not PSP. So it is still fully compliant with the 
>>> specification.
> 
>  
> 
> This explanation is still cryptic to me, but based on the 
> now-hopefully-correct understanding of the PSP behavior,
> 
> - We originally have (T, S1) (S3, S2, S1; SL=2) [payload=encapsulated
> 
> IPv6 pakcet]
> 
>   There are 3 nodes in the routing header.
> 
> - At the node identified by S2 (second node in the routing header), we
> 
>   remove the routing header, so we have (T, S3) [payload=encapsulated
> 
> IPv6 pakcet]
> 
> - Packet arrives at the node identified by S3, the payload is processed
> 
> */[KT] This is correct at a high level. The last line is about processing per 
> the behaviour of the SID S3 – e.g. when it is End.DT6 it would be to decap, 
> perform lookup in the VRF associated with the SID and then forward the inner 
> IPv6 packet./*
> 
>  
> 
> If we argue this behavior as not violating "extension headers cannot be 
> removed from a packet until it has arrived at its ultimate destination" 
> because "segment left" is 0 at that point (and therefore
> 
> S2 is the "final destination"), that's a very innovative interpretation of 
> the specification (not really surprisingly, given how "innovative" SRv6 
> people are:-).  In fact, with that kind of logic, we could write a 
> specification which allows any intermediate node in a routing header 
> decreases the segment left to 0 (regardless of the previous value of it) at 
> its own discretion, and then claim it's the final (ultimate) destination and 
> does whatever is allowed for the final destination node.
> 
> */[KT] This is definitely not the argument. Please check this link for the 
> explanation of the logic : 
> /*https://mailarchive.ietf.org/arch/msg/spring/kV6By4pnvbURdU1O7khwPbk_saM/
> 
>  
> 
> Overall, it seems so artificial, if not cheating, only for avoiding to be 
> told that it violates RFC8200.  The PSP behavior essentially gives an 
> intermediate ("penultimate") node in the routing header an option to remove 
> the routing header from the packet.  I can't think of a reason why we can't 
> just say so and say that it updates the corresponding part of RFC8200 
> accordingly, than for cheaply avoiding the discussions involved in updates to 
> an existing standard.
> 
> */[KT] Nothing artificial and no cheating. Things are clear as indicated in 
> the previous link. At least that is what the authors and (in my reading) a 
> significant number of other Spring WG members are saying. Please also check 
> the following:/*
> 
> https://mailarchive.ietf.org/arch/msg/spring/or8086G4iYfee5_Icw4PnhkPLBo/
> 
> https://mailarchive.ietf.org/arch/msg/spring/CmT-8nSZs8O8i9N9dD8gHd6uHAo/ 
> */(and the links provided by Martin on his previous email on that same 
> thread)/*
> 
>  
> 
> Now, I've noticed an argument whether or not this spec violates/updates 
> RFC8200 isn't important.  In a sense I see the point:
> 
> what matters is to discuss the effect of the proposed behavior and make sure 
> it doesn't cause unexpected problems; whether it updates the pre-exiting spec 
> is a matter of formality in some sense.  But in this specific case, I still 
> believe that's a bad move for two reasons:
> 
> */[KT] I see a significant amount of discussion on the WG to discuss and 
> conclude that there are no technical problems. In that same spirit, let us 
> also look at your “reasons”./*
> 
>  
> 
> 1. (seemingly) as a result of trying to insist it's standard
> 
>    compliant, the processing logic becomes unnecessarily cryptic.
> 
>    There's essentially no need to decrease 'segment left' and then
> 
>    check if it is 0.  A more explicit condition that it's the
> 
>    penultimate node is that 'segment left == 1' on receiving the
> 
>    packet; we can simply perform the special PSP behavior from there.
> 
>    If we're willing to say it updates RFC8200, we can simply say the
> 
>    penultimate node has an option to remove the routing header and
> 
>    show the more straightforward logic.
> 
> */[KT] There is no technical problem being stated here. The logic is not 
> cryptic – please consider the hint from Pablo above i.e. to look at the 
> processing as whole. If the pseudocode is complicated for you to consume, 
> then please do refer to the recent text update that make things crystal clear 
> : 
> /*https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-12#section-4.16.1*//*
> 
> */ /*
> 
>    SR Segment Endpoint Nodes receive the IPv6 packet with the
> 
>    Destination Address field of the IPv6 Header equal to its SID
> 
>    address.  A penultimate SR Segment Endpoint Node is one that, as part
> 
>    of the SID processing, copies the last SID from the SRH into the IPv6
> 
>    Destination Address and decrements Segments Left value from one to
> 
>    zero.
> 
>  
> 
>    The PSP operation only takes place at a penultimate SR Segment
> 
>    Endpoint Node and does not happen at any Transit Node.
> 
> */ /*
> 
> */And then/*
> 
> */ /*
> 
>    This behavior does not contravene Section 4 of [RFC8200] 
> <https://tools.ietf.org/html/rfc8200#section-4> because the
> 
>    current destination address of the incoming packet is the address of
> 
>    the node executing the PSP behavior.
> 
> */ /*
> 
> */ /*
> 
>  
> 
> 2. I'm afraid this would establish an unfortunate precedent for future
> 
>    protocol development to look for a wording loophole in existing
> 
>    standards and exploit it as an easy shortcut to publish something
> 
>    possibly controversial.  Just as we saw, even a very carefully
> 
>   reviewed document like RFC8200 always has some glitches and
> 
>    ambiguities.  If we allow casually exploiting these loopholes for
> 
>    the convenience of new protocol designers, more and more people
> 
>    will follow and we'll eventually have very inconsistent protocols
> 
>    and, in worse cases, loss of interoperabaility and other harm.  On
> 
>    the other hand, we could use this opportunity for a good precedent
> 
>    to show no standard is set in stone and can be updated with new
> 
>    developments and proper discussions and justifications.
> 
>  
> 
> For this reason, I disagree with this text of
> 
> draft-ietf-spring-srv6-network-programming-12:
> 
>  
> 
>    This behavior does not contravene Section 4 of [RFC8200] because the
> 
>    current destination address of the incoming packet is the address of
> 
>    the node executing the PSP behavior.
> 
> */[KT] Again, this is not a technical point. It arises out of our 
> disagreement on RFC8200 text./*
> 
>  
> 
> If I were to offer something in order to be hopefully more constructive, that 
> would be something like this:
> 
>  
> 
> - Add a tag of "Updates RFC8200 (if approved)"
> 
> */[KT] There is no case for doing this. Again it is the same disagreement on 
> RFC8200 text./*
> 
>  
> 
> - In Section 4.16.1, simply say something like: "A penultimate SR
> 
>   Segment Node MAY remove the SRH from the IPv6 packet it forwards,
> 
>   even if it is not the final (ultimate) destination in the path
> 
>   specified in the SRH". (I notice network-programming-12 is already
> 
>   pretty close to this)
> 
> */[KT] What is there in the draft already is a much better text IMHO./*
> 
>  
> 
> - Perhaps change the pseudo code as follows
> 
>   S11.1   If (Segments Left == 1) { /* meaning this is a penultimate node */
> 
>   S11.2      Update IPv6 DA with Segment List[0]
> 
>   S12.3.     Update the Next Header field in the preceding header to the
> 
>              Next Header value of the SRH
> 
>   S12.4.     Decrease the IPv6 header Payload Length by the Hdr Ext Len
> 
>              value of the SRH
> 
>   S12.5.     Remove the SRH from the IPv6 extension header chain
> 
>   S12.6.     Go to S15
> 
>   S12.7.  }
> 
> */[KT] Please look at the processing pseudocode for a SID behavior and the 
> PSP (as well as other non-PSP) flavors as a whole. At the end, any 
> implementer is free to code and implement the logic in their own way as long 
> as the behaviour and result is consistent./*
> 
>  
> 
> - Clarify it's an update to RFC8200, e.g. as follows:
> 
>  
> 
>     This behavior formally updates Section 4 of [RFC8200], which does
> 
>     not allow deleting an extension header until the packet arrives at
> 
>     the destination.  While the literal text of RFC8200 could read as
> 
>     if the deletion were allowed for an intermediate node specified in
> 
>     a routing header, this document takes a safer and tighter
> 
>     interpretation as described in [the expected draft by Ron here]
> 
>     and updates it.
> 
> */[KT] I don’t need to repeat why not required …/*
> 
>  
> 
>     The update is believed to be sufficiently safe and worthwhile:
> 
>     [Justifications here: why we need PSP; explain it doesn't break
> 
>     PMTUD; add considerations on AH, etc]
> 
> */[KT] These are covered already. Can you please re-check 
> /*https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-12#section-4.16.1
> 
>  
> 
> Like Brian's proposed text, whether such an update is acceptable is a 
> different question.  But it's at least a fair game to me.  I'd seriously 
> consider the justifications, and, depending on its details, it's quite 
> possible that it's something I can support.
> 
> */[KT] Thanks for your review and feedback. I can only hope to have been able 
> to help clarify and look forward to your support./*
> 
> */ /*
> 
> */Thanks,/*
> 
> */Ketan/*
> 
>  
> 
> (Whether we really need such a hack as PSP may also be a question, as some 
> others have questioned.  It seems cleaner to me if we could avoid the hack in 
> the first place, but I guess I don't have enough knowledge to judge how badly 
> it is needed and whether there's really no "cleaner" alternative, so I 
> wouldn't comment on it here).
> 
>  
> 
> --
> 
> JINMEI, Tatuya
> 
>  
> 
> --------------------------------------------------------------------
> 
> IETF IPv6 working group mailing list
> 
> i...@ietf.org <mailto:i...@ietf.org>
> 
> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> 
> --------------------------------------------------------------------
> 
> 
> --------------------------------------------------------------------
> IETF IPv6 working group mailing list
> i...@ietf.org
> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> --------------------------------------------------------------------
> 

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

Reply via email to