Comment at the end: On 21-Dec-19 06:30, Pablo Camarillo (pcamaril) wrote: > Inline. > > Thanks. > > -----Original Message----- > From: Brian E Carpenter <brian.e.carpen...@gmail.com> > Date: Thursday, 19 December 2019 at 22:39 > To: "Pablo Camarillo (pcamaril)" <pcama...@cisco.com>, "spring@ietf.org" > <spring@ietf.org> > Subject: Re: [spring] I-D Action: > draft-ietf-spring-srv6-network-programming-06.txt > > Sorry, I am still confused, see in line: > > On 20-Dec-19 00:53, Pablo Camarillo (pcamaril) wrote: > > Brian, > > > > Inline. > > > > Thank you, > > Pablo. > > > > -----Original Message----- > > From: Brian E Carpenter <brian.e.carpen...@gmail.com> > > Date: Saturday, 14 December 2019 at 21:04 > > To: "Pablo Camarillo (pcamaril)" <pcama...@cisco.com>, > "spring@ietf.org" <spring@ietf.org> > > Subject: Re: [spring] I-D Action: > draft-ietf-spring-srv6-network-programming-06.txt > > > > Hi Pablo, > > > > See in line: > > > > On 14-Dec-19 22:34, Pablo Camarillo (pcamaril) wrote: > > > Brian, > > > > > > Many thanks for having another look to the draft. Please see > inline [PC]. > > > > > > Thank you, > > > Pablo. > > > > > > -----Original Message----- > > > From: spring <spring-boun...@ietf.org> on behalf of Brian E > Carpenter <brian.e.carpen...@gmail.com> > > > Date: Wednesday, 11 December 2019 at 23:06 > > > To: "spring@ietf.org" <spring@ietf.org> > > > Subject: Re: [spring] I-D Action: > draft-ietf-spring-srv6-network-programming-06.txt > > > > > > So, I've tried to look at this with fresh eyes, and thanks > for the > > > various updates and clarifications. > > > > > > (I'm still not on the SPRING list so please leave me in CC.) > > > > > > I remain a bit puzzled. First, a quote from the SRH > specification > > > (draft-ietf-6man-segment-routing-header-26): > > > > > > > 4.2. Transit Node > > > > > > > > As specified in [RFC8200], the only node allowed to > inspect the > > > > Routing Extension Header (and therefore the SRH), is the > node > > > > corresponding to the DA of the packet. Any other > transit node MUST > > > > NOT inspect the underneath routing header and MUST > forward the packet > > > > toward the DA according to its IPv6 routing table. > > > > > > Next, a quote from the current draft: > > > > > > > SRH[n]: A shorter representation of Segment List[n], as > defined in > > > > [I-D.ietf-6man-segment-routing-header]. > > > > > > > > When a packet is intercepted on a wire, it is possible > that SRH[SL] > > > > is different from the DA. > > > > > > Huh? That would be extremely unusual in the normal > interpretation > > > of a routing header, where is RH[SL] is by definition the next > > > destination where the RH will be processed. Any other node is > a transit > > > node, and I don't see anything in > draft-ietf-6man-segment-routing-header-26 > > > that allows for anything else. So it seems to me that the > quoted statement > > > needs an explanation of why it isn't a violation of > > > draft-ietf-6man-segment-routing-header-26, not to mention why > it's useful. > > > > > > PC: This occurs when we use the reduced SRH as described in: > https://tools.ietf.org/html/draft-ietf-6man-segment-routing-header-26#section-4.1.1 > > > > OK, well that definitely needs to be added to the draft, since it > is very far from > > obvious to a newcomer. > > > > PC: I have removed this sentence from the latest revision of the draft. > Unneeded, misleading and covered in the SRH. See rev07. Thank you for your > comment. > > Thanks. > > > > > > If you think this sentence does not reflect that, I can edit it > for the next revision of the draft. > > > > > > That leads us back to: > > > > > > > 4.16.1. PSP: Penultimate Segment Pop of the SRH > > > > > > > > The SRH processing of the End, End.X and End.T behaviors > are > > > > modified: after the instruction "S14. Update IPv6 DA > with Segment > > > > List[Segments Left]" is executed, the following > instructions must be > > > > executed as well: > > > > > > > > S14.1. If (Segments Left == 0) { > > > > S14.2. Update the Next Header field in the preceding > header to the > > > > Next Header value of the SRH > > > > S14.3. Decrease the IPv6 header Payload Length by the > Hdr Ext Len > > > > value of the SRH > > > > S14.4. Remove the SRH from the IPv6 extension header > chain > > > > S14.5. } > > > > > > This is clearly a breach of RFC8200, but it can never be > reached if DA == SRH[SL]. > > > > > PC: PSP executes at the segment that is the Destination Address. > > > > I am probably being stupid, but I don't understand what is > "penultimate" about > > a condition where SL == 0 and the packet has reached the node that > owns DA. > > Where will the packet be sent next, since it's already at the final > DA? > > > > PC: You are reading line 14 of a pseudocode. In the previous lines we > have received a packet with Segments Left = 1, and we have decremented by one > such value. > > If I have this right, the PSP case is inserted in this pseudocode: > > S14. Update IPv6 DA with Segment List[Segments Left] > S15. Submit the packet to the egress IPv6 FIB lookup and > transmission to the new destination > > which produces: > > S14. Update IPv6 DA with Segment List[Segments Left] > S14.1. If (Segments Left == 0) { > S14.2. Update the Next Header field in the preceding header to the > Next Header value of the SRH > S14.3. Decrease the IPv6 header Payload Length by the Hdr Ext Len > value of the SRH > S14.4. Remove the SRH from the IPv6 extension header chain > S14.5. } > S15. Submit the packet to the egress IPv6 FIB lookup and > transmission to the new destination > > That's explicitly removing the header before forwarding the packet. How > can that not be a violation of RFC 8200? And where is it forwarded to, > since > we are already at the DA? > > PC: > I receive a packet at the node identified in the Destination Address field of > the IPv6 header. > I process the extension header and delete it (in that same node). > The packet, with the updated Destination Address, is forwarded towards the > node identified in the Destination Address field of the IPv6 header.
Thanks, I understand that. I think that after the holidays we need to take that explanation back to 6MAN, where I suspect we will find strong objections. This means that two strange things are happening to the packet: in-flight deletion of a header and NAT. As I just said to Robert, MPLS was designed in a way that makes this natural, but IPv6 wasn't. The natural solution for IPv6 is Penultimate Segment Decapsulation, not PSP, I think. Regards Brian _______________________________________________ spring mailing list spring@ietf.org https://www.ietf.org/mailman/listinfo/spring