Re: [spring] Suggest some text //RE: Request to close the LC and move forward//RE: WGLC - draft-ietf-spring-srv6-network-programming
神明達哉 <jinmei@wide.ad.jp> Wed, 04 March 2020 23:45 UTC
Return-Path: <jinmei.tatuya@gmail.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2710E3A0C1B; Wed, 4 Mar 2020 15:45:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.399
X-Spam-Level:
X-Spam-Status: No, score=-1.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 58ZnxXxR3Jis; Wed, 4 Mar 2020 15:45:14 -0800 (PST)
Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 35FAC3A0C12; Wed, 4 Mar 2020 15:45:14 -0800 (PST)
Received: by mail-wm1-f44.google.com with SMTP id a5so4244204wmb.0; Wed, 04 Mar 2020 15:45:14 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2ixwyXdgdoek52WdRhsQJW2X/4PzmVGVjI3ZP65ei+o=; b=q7TnnDVKTCK8uu/t4lnXWTHn24xTIfAjmpV7ISv5LL3MvRDm9tT3Mfjzd3zCgwhYuW Rf7NsFarE+hgsAldIrHmMnThm+hUsz9WOoCYn69R/8M+cD6dMW+EQOomvc9O52FrBB/Q dnyAfBJZUnjNyMa71tFAwwFwpycN2kNp/hb/oRNKaSZcmxOutnh1COStuCL4qISzlR/4 VBKLYBtLklBypAL9zZvIlNvQTfDMREwT8nKVOtx0kveWwgikIwOQxIxAiBNRB+blnmIM I4ePP9oIGFK5FEbU3GmwNxME81jE7IvlqoNGFeh+7HXNha/ksVqmdwfEwzDAEWry4LQa VXXQ==
X-Gm-Message-State: ANhLgQ3lKhIBXuZYEg7fw4ajEoGqGhmZG03lsQP0XOCsDlvLcMcPsm0x DKsQNKYOalrfCPC0uVrky3UZF9y0/gORALtmXQya7MIN
X-Google-Smtp-Source: ADFU+vt7HHV5J9ieaBYGrCIzggNOJoxW/CrWCdAvXnGzAeFqt7cCmkWb2c+9rCOpQKOxqjLE4bl5mXDVeMZvQ4RWIm0=
X-Received: by 2002:a1c:df45:: with SMTP id w66mr5740433wmg.171.1583365512168; Wed, 04 Mar 2020 15:45:12 -0800 (PST)
MIME-Version: 1.0
References: <965ff6bbf1cb4c2f8d48b7b535a0cf5b@huawei.com> <CAJE_bqcTNWt==mtYKeNVXOBAzBNLG=+_mXQQ9xMHYOCDRqCb_Q@mail.gmail.com> <CAOj+MMEzbyzy98iFyfe6Z=dQiWHo=triX6bHKx9fNEUCaSuy3Q@mail.gmail.com> <CAJE_bqeiX1xWSMOOr=SGpVJdBSEgg-kYnUd29yeRURcVnx-xuA@mail.gmail.com> <4B3B4F36-7B15-4CBF-A015-274D10AF37B6@cisco.com>
In-Reply-To: <4B3B4F36-7B15-4CBF-A015-274D10AF37B6@cisco.com>
From: 神明達哉 <jinmei@wide.ad.jp>
Date: Wed, 04 Mar 2020 15:45:00 -0800
Message-ID: <CAJE_bqdJZuJG1SdMYwQQXn7xx8P_nH4HSVRUzwo584rf8W1ZSg@mail.gmail.com>
To: "Pablo Camarillo (pcamaril)" <pcamaril=40cisco.com@dmarc.ietf.org>
Cc: Robert Raszuk <robert@raszuk.net>, "spring@ietf.org" <spring@ietf.org>, "6man@ietf.org" <6man@ietf.org>, Bob Hinden <bob.hinden@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/D1UX5gw6HnoAG1lvT_hEJKnMcFE>
Subject: Re: [spring] Suggest some text //RE: Request to close the LC and move forward//RE: WGLC - draft-ietf-spring-srv6-network-programming
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Source Packet Routing in NetworkinG \(SPRING\)" <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Mar 2020 23:45:17 -0000
At Wed, 4 Mar 2020 12:17:07 +0000, "Pablo Camarillo (pcamaril)" <pcamaril=40cisco.com@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: > 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 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. 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. 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: 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. 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. 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)" - 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) - 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. } - 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. 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] 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. (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
- [spring] Suggest some text //RE: Request to close… Xiejingrong (Jingrong)
- Re: [spring] Suggest some text //RE: Request to c… Brian E Carpenter
- Re: [spring] Suggest some text //RE: Request to c… Bob Hinden
- Re: [spring] Suggest some text //RE: Request to c… 神明達哉
- Re: [spring] Suggest some text //RE: Request to c… Xiejingrong (Jingrong)
- Re: [spring] Suggest some text //RE: Request to c… Xiejingrong (Jingrong)
- Re: [spring] Suggest some text //RE: Request to c… Gyan Mishra
- Re: [spring] Suggest some text //RE: Request to c… Gyan Mishra
- Re: [spring] Suggest some text //RE: Request to c… Robert Raszuk
- Re: [spring] Suggest some text //RE: Request to c… John Scudder
- Re: [spring] Suggest some text //RE: Request to c… Robert Raszuk
- Re: [spring] Suggest some text //RE: Request to c… John Scudder
- Re: [spring] Suggest some text //RE: Request to c… Brian E Carpenter
- Re: [spring] Suggest some text //RE: Request to c… John Scudder
- Re: [spring] Suggest some text //RE: Request to c… Greg Mirsky
- Re: [spring] Suggest some text //RE: Request to c… Robert Raszuk
- Re: [spring] Suggest some text //RE: Request to c… Greg Mirsky
- Re: [spring] Suggest some text //RE: Request to c… Robert Raszuk
- Re: [spring] Suggest some text //RE: Request to c… John Scudder
- Re: [spring] Suggest some text //RE: Request to c… Zafar Ali (zali)
- Re: [spring] Suggest some text //RE: Request to c… Wang, Weibin (NSB - CN/Shanghai)
- Re: [spring] Suggest some text //RE: Request to c… Joel M. Halpern
- Re: [spring] Suggest some text //RE: Request to c… Xiejingrong (Jingrong)
- Re: [spring] Suggest some text //RE: Request to c… Xiejingrong (Jingrong)
- Re: [spring] Suggest some text //RE: Request to c… Wang, Weibin (NSB - CN/Shanghai)
- Re: [spring] Suggest some text //RE: Request to c… Xiejingrong (Jingrong)
- Re: [spring] Suggest some text //RE: Request to c… Wang, Weibin (NSB - CN/Shanghai)
- Re: [spring] Suggest some text //RE: Request to c… Wang, Weibin (NSB - CN/Shanghai)
- Re: [spring] Suggest some text //RE: Request to c… Xiejingrong (Jingrong)
- Re: [spring] Suggest some text //RE: Request to c… Robert Raszuk
- Re: [spring] Suggest some text //RE: Request to c… Joel Halpern Direct
- Re: [spring] Suggest some text //RE: Request to c… Greg Mirsky
- Re: [spring] Suggest some text //RE: Request to c… Zafar Ali (zali)
- Re: [spring] Suggest some text //RE: Request to c… Joel M. Halpern
- Re: [spring] Suggest some text //RE: Request to c… Zafar Ali (zali)
- [spring] SRv6 OAM Robert Raszuk
- Re: [spring] Suggest some text //RE: Request to c… Gyan Mishra
- Re: [spring] Suggest some text //RE: Request to c… Xiejingrong (Jingrong)
- Re: [spring] Suggest some text //RE: Request to c… 神明達哉
- Re: [spring] Suggest some text //RE: Request to c… Gyan Mishra
- Re: [spring] Suggest some text //RE: Request to c… Xiejingrong (Jingrong)
- Re: [spring] Suggest some text //RE: Request to c… Darren Dukes (ddukes)
- Re: [spring] Suggest some text //RE: Request to c… Gyan Mishra
- Re: [spring] Suggest some text //RE: Request to c… li_zhenqiang@hotmail.com
- Re: [spring] Suggest some text //RE: Request to c… Pablo Camarillo (pcamaril)
- Re: [spring] Suggest some text //RE: Request to c… 神明達哉
- Re: [spring] Suggest some text //RE: Request to c… John Scudder
- Re: [spring] Suggest some text //RE: Request to c… Ketan Talaulikar (ketant)
- Re: [spring] Suggest some text //RE: Request to c… Brian E Carpenter
- Re: [spring] Suggest some text //RE: Request to c… 神明達哉
- Re: [spring] Suggest some text //RE: Request to c… Robert Raszuk
- Re: [spring] Suggest some text //RE: Request to c… 神明達哉
- Re: [spring] Suggest some text //RE: Request to c… Robert Raszuk
- Re: [spring] Suggest some text //RE: Request to c… 神明達哉