Re: [mpls] Review of draft-song-mpls-extension-header-09

Haoyu Song <haoyu.song@futurewei.com> Tue, 30 August 2022 17:48 UTC

Return-Path: <haoyu.song@futurewei.com>
X-Original-To: mpls@ietfa.amsl.com
Delivered-To: mpls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 46E11C15DD45; Tue, 30 Aug 2022 10:48:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.108
X-Spam-Level:
X-Spam-Status: No, score=-7.108 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=futurewei.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kikeVkEeEoGn; Tue, 30 Aug 2022 10:48:18 -0700 (PDT)
Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1anam02on2128.outbound.protection.outlook.com [40.107.96.128]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 13479C15AE04; Tue, 30 Aug 2022 10:48:17 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mzTXDSvMKpwm1bum66wTq/cQzXagQfwlC1t5I9ssJ/vEsdU+IUTsngy6ks6uM5qgDw99Vo/cVvMNLE9vNmMJA74tn7ezMir0iXx+HCR01x3YTz2Xbt9f7nI08KHAYGya0oR36JZzYW30+0DDCZgH+qmzYVQgee6DqmG5HULsIEXKXIkwlyK9UzD0OHXWeWJ6VRZaeluq5VUONOISaI2GJTHHwQqrGB6ml7pe6dkHIp+wlb4IWNoU5krCB/K8wezl0IegqAw4Daxxj1pyEKF6e1OwuAJmx7J2CN+aU3KPY00UV86GXHU6dPhvgqq6MRiIigY2MwWxxE3k1fwpu35m4Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=thx2XxskguZpEnGu4bubw472nK3bFiZfuXbRavvF9S0=; b=fm4AnsVrR1bvvaftfp6lAGdPBAP3u0q9nkcxC0PwQ6CPz+6MvqQ5SzNYzYILz/SbhsXXHsqch+tIcqD5wLSBl3yB9qviJQCLf67N/5BpbnM0Meolc8b4QGyxyQsR6cQwJeI6LQykdYiwznPHghJ21O0g6024A5N6rZ+EqrDfvbI42R5Q/G3IB0TSw/6ZYcUCnYPZF0bDBOu0JObmatoQkP7YE3aKrwCol+k/W0BFEXQl4UaylvmcgrvXdMMNKcEHtA8Kc6xILH/S/d07ACx4juSOAnaU5dEv7v2h+5HCtAyKwu2N+BTIZmDhmbYU3vSL3BAuKFeKMlcy5BPkZdFUtA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=futurewei.com; dmarc=pass action=none header.from=futurewei.com; dkim=pass header.d=futurewei.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Futurewei.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=thx2XxskguZpEnGu4bubw472nK3bFiZfuXbRavvF9S0=; b=SjnPVI95fx3GOisD6PGi8gqzrNl3S5L9hoJkRkIoRvGmI4V1hAUoQB/pXUIu2ZpWmih0oqr6FlmBWCJLuYYX0jaa0xuKP78M4Y0fsQsZQkMeiDIJOEZBMcPcq7yYeC79NMiqV+s76BDlpd23yc2yxA/0JY4CUUS/x4rRB2TkfMM=
Received: from BY3PR13MB4787.namprd13.prod.outlook.com (2603:10b6:a03:357::13) by BN8PR13MB4340.namprd13.prod.outlook.com (2603:10b6:408:a9::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.10; Tue, 30 Aug 2022 17:48:12 +0000
Received: from BY3PR13MB4787.namprd13.prod.outlook.com ([fe80::fde0:afb9:b741:93d8]) by BY3PR13MB4787.namprd13.prod.outlook.com ([fe80::fde0:afb9:b741:93d8%6]) with mapi id 15.20.5588.010; Tue, 30 Aug 2022 17:48:12 +0000
From: Haoyu Song <haoyu.song@futurewei.com>
To: Loa Andersson <loa@pi.nu>, Stewart Bryant <stewart.bryant@gmail.com>, mpls <mpls@ietf.org>
CC: "draft-song-mpls-extension-header@ietf.org" <draft-song-mpls-extension-header@ietf.org>, "mpls-chairs@ietf.org" <mpls-chairs@ietf.org>, "pals-chairs@ietf.org" <pals-chairs@ietf.org>, DetNet Chairs <detnet-chairs@ietf.org>
Thread-Topic: [mpls] Review of draft-song-mpls-extension-header-09
Thread-Index: AQHYt95dKYIH5E1vGUapB8kmNt97fK3GAxgAgAG+SGA=
Date: Tue, 30 Aug 2022 17:48:12 +0000
Message-ID: <BY3PR13MB47872E01EC48507A26BB6A3A9A799@BY3PR13MB4787.namprd13.prod.outlook.com>
References: <E0C8D31B-8F8D-496B-B7E9-AEEC087DDB7A@gmail.com> <76606bae-9614-8a88-4d95-e280c05a20c9@pi.nu>
In-Reply-To: <76606bae-9614-8a88-4d95-e280c05a20c9@pi.nu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=futurewei.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 82c73c10-6668-41de-6f99-08da8aafcf02
x-ms-traffictypediagnostic: BN8PR13MB4340:EE_
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: ea7HFZAUvD2AgafL1/Gq/b4qbuTPQ0rfU92D+NrL3gVMRE3DdnJyM2tiwOnECQCp+s7xZ2X+GDkZ3swFXNqiauDDXSzVMTwaeXfQhVWR7ZqACVdcRZiYPzclSKjPpfj+so8OX5qbsi+7cUz7EH2LyLEvEQXpWCIpd95Twp6+LdJdZNjGeGtFUpASgmg+NzFwTrIVVKY51dVg8S7abzjtEtVndIodAruNCb1FcNfRBGg3S/ceM7a/tJ+p1PgWCH71Ou2vB3ePVYExAlEp9YozTEsAJVeoNmWSeso88koOJFw+Q/tqVKBmu2Js+CG735hf/EwvZjrv5gxTXw8AlDuBje3X1myC9q/A02pnxi+s6sigZeABiX8Pn6QvhFcRBPxNhnD6EDNn2OVuRldT39V/EowwzJnqsKd7YOCzV4GQv5jnEmCUPScrzoc5VZvjFhLjwJ84fw7s1jkVXZg5CPbU+vxeEQ0+eWqEbrCDwat7Ueaq/71CaN+lefGeNRqocPGlPfoJgKmYjnPQBf61804qVWp7u3glW34+kWbHR4+Fj3Wfr3xxAKjVKPeQ/qq3RqCPb4dpX1Pw/ndkogKrEzM6W4t0BjRX/JH0WKsT3C0xNKCcDhgmzCYTUXjWuWkld7l/VdKESx4G7aFoqotCorzIvOHYgAe0vPaSaxxB3w5nDOTGqar7fbTs+qKke3kR//eIbiFyLnK1KIAO/8Eoaa4BA+83zFguWuENko5OVpTNCOE=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY3PR13MB4787.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39840400004)(376002)(136003)(66556008)(66476007)(38100700002)(66946007)(54906003)(76116006)(110136005)(66446008)(64756008)(2906002)(45080400002)(966005)(122000001)(478600001)(38070700005)(33656002)(316002)(99936003)(86362001)(83380400001)(71200400001)(186003)(66574015)(9686003)(41300700001)(7696005)(53546011)(6506007)(26005)(5660300002)(8676002)(4326008)(55016003)(44832011)(8936002)(52536014)(30864003)(579004); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: ocKJoGR5TTLIQkxaflBy8HPEFG4LsCl5eTIPWITZn3J6D0q/t+VwdiEAHpW5PiEOyvynjobu87ZJUuBXcZXWEN4+q/H/yG+onTVex/65MiUzOs7leRfD2ObLwcIBXupWbU6aUNknxPL7eXxflwT7drVuzHAIaJD4v2mNpV7ul9Dyphy7oop1pD3Y7MUotF+vWG7IBTJUxP8zAN4FPAjdNAGduvfLyUwgb+syrGBzqOzkjiCe5IbQXdAzRae7lbL0+oIMxqZi4mm/olGeAU4uto5BtWk8cJVFr0rONiKBsvXeTWbi8751td0xHbWs+VToC7pAt8r4oxoc4OdnwtXPPWgaXUhKnVir0QWI9wHxyDR8WgviDI6rpHz0+CBVdDnz5G10i8eWlbS7YDiPa7kdsb3PO3r5Kt7k4I1fve94AQm5EtTAObUpP0AvGVj23WxNEjXVgCap3W+9oEQceI3UIVsoixZSt/IwONHzZGyuY0ld4HMGxphom3FUwouXUjYCbtQklrCIXTtUEFLQNgtcWIBEAiH36g2O+IPYAba/EDpJARTVOdKmJNSEcoNjiE8qb+5l1+FS178v+2bSU3/LMDrX61Zv2XZKdR1isch9dyg5YIgf0a3329sg7ehZW8DME7TCDHSPEdTmdqDBP8itqacu0ZheiX6wNZvgVh8rmJDq5E+lQlNP/kufpZSE2rmw/yIJRf97d7WhH7HSZ0u6TXm3bpsiGYanA2nEMn1QYEB+NszwrxHQWa37Y/ufWu9+wIlFknpyayPR1zJ9XPoGKHU5S5GqTcpOCcHd0Zv08YzS6ARosW5scNT2lLxwdQJD5Mo4Vdp0B8awq+YvZYyo9hSyGUW7hD1xCX3tSupQweZIxkjV05TDKxIq3XVvXS4ovfiJQmNPE4W4srfjBVcdYlN9hH5r+d9PIqHrChDYye1suo+8CkRgDRy5UqRCbnUFtoqQO+ifyUosaO43+6V20hiLzh4tIIpFM6UodMO78m3tZx8EBp/GgNNBLU9xmjxQrDPi0Df/N+6LGOGN5RJV8tin/osldxMJo9iUIYfrBhmvnIcuyUukZpK7iRoctz+cZbXW8s77efoQmVvlK8kPUa1SOOLwpGhr+2CTX4xu97ir0gvXfL1DbusnynH60NK3kN/autJDrCbZI5YbDJWNSkwmdk72NrfsGKEyobisE6ABU9Ceizoe/HUaHXnzn5OZViOo12Jfb23kgK9hVteXsU6PVkOLr/53B0Cp2ix+qgyaKDeT4Dal9TdDTvnq1jOmU+weUzediPrC5WeqCj2vJ8pCofGRaIozdpqx0Rle3NTr0TZuPPcc8cqx+nRfPzfCzaR2erPSsOG2OzuWgI+g93t8Xm51TzAzE7TMGKzxhoxY7GPnF4V0BAj+Kf0ERuYG/JoasWAJq9BgCzpvoyE/8CvRJtNyOFP5+d6Kh+qIroimAZ4/LgyXQp3r3gYG6VPqc5XhF1wEfrss1/6SDrQqiaL/JxtF3/O8fRTkWVVPRtm7DExDQ+B5RJ7IghEhBjJdlLwBLCESx45EYC1NVezB11NrHkfFHlQDjGMsFeY2K7Q=
Content-Type: multipart/mixed; boundary="_002_BY3PR13MB47872E01EC48507A26BB6A3A9A799BY3PR13MB4787namp_"
MIME-Version: 1.0
X-OriginatorOrg: Futurewei.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BY3PR13MB4787.namprd13.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 82c73c10-6668-41de-6f99-08da8aafcf02
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Aug 2022 17:48:12.2987 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 0fee8ff2-a3b2-4018-9c75-3a1d5591fedc
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: tW2BQSWunetIocyhTT9da+ESAg4nC766bjM1xhIRBip0RCN1PBqlpdempkz/4DarnvCGJMmZlqwTdNfqXW7axg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR13MB4340
Archived-At: <https://mailarchive.ietf.org/arch/msg/mpls/uIBoXHi01nYHqD0GOGXQ7I1ECqk>
Subject: Re: [mpls] Review of draft-song-mpls-extension-header-09
X-BeenThere: mpls@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Multi-Protocol Label Switching WG <mpls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mpls>, <mailto:mpls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mpls/>
List-Post: <mailto:mpls@ietf.org>
List-Help: <mailto:mpls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mpls>, <mailto:mpls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Aug 2022 17:48:23 -0000

Hi Loa,

Thanks for the review. Please find my responses in the attached document. 

Best regards,
Haoyu

-----Original Message-----
From: mpls <mpls-bounces@ietf.org> On Behalf Of Loa Andersson
Sent: Monday, August 29, 2022 8:10 AM
To: Stewart Bryant <stewart.bryant@gmail.com>; mpls <mpls@ietf.org>
Cc: draft-song-mpls-extension-header@ietf.org; mpls-chairs@ietf.org; pals-chairs@ietf.org; DetNet Chairs <detnet-chairs@ietf.org>
Subject: Re: [mpls] Review of draft-song-mpls-extension-header-09

All,

I have also reviewed the document. Please find, comments, suggestions and questions in the included word file.

/Loa

On 2022-08-24 19:24, Stewart Bryant wrote:
> 
> I know that I was involved in the text in the very early days, but I am worried about it. Things have moved on and it is not clear that the approach which is basically to clone an IPv6 EH is the right approach for where we are now.
> 
> Certainly there are a lot of things that the OTD needs to consider in detail before committing to this design.
> 
> I do not think we should adopt this draft at the stage.
> 
> Detailed comments below.
> 
> Stewart
> 
> MPLS                                                        H. Song, Ed.
> Internet-Draft                                    Futurewei Technologies
> Intended status: Standards Track                                   Z. Li
> Expires: 12 February 2023                                        T. Zhou
>                                                                    Huawei
>                                                              L. Andersson
>                                                  Bronze Dragon Consulting
>                                                                  Z. Zhang
>                                                          Juniper Networks
>                                                                 R. Gandhi
>                                                           J. Rajamanickam
>                                                           J. Bhattacharya
>                                                             Cisco Systems
>                                                            11 August 
> 2022
> 
> SB> The author list exceeds the allowed number, so needs to be trimmed. It would be useful if this was done at adoption.
> 
> ==========
> 
> 
> 
> 1.  Motivation
> 
>     Some applications require adding sizable instructions and/or metadata
>     to user packets within a network.  Such examples include In-situ OAM
>     (IOAM) [RFC9197] and Service Function Chaining (SFC) [RFC7665].
> 
> SB> This is a big change that we are proposing to make to MPLS. Do we have any indication that there is planned deployment of those protocols and whether further use is stalled on this capability?
> 
> ==========
> 
>     New
>     applications are emerging.  It is possible that the instructions and/
>     or metadata for multiple applications are stacked together in one
>     packet to support a compound service.
> 
>     Conceivably, such instructions and/or metadata would be encoded as
>     new headers and encapsulated in user packets.  Such headers may
>     require to be processed in fast path due to performance
>     considerations.  Moreover, such headers may require being attended at
>     each hop on the forwarding path (i.e., hop-by-hop or HBH) or at
>     designated end nodes (i.e., end-to-end or E2E).
> 
> SB> This is all a bit speculative. I think we need to state (or reference) a much tighter use case given the significant cost of putting this in Silicon.
> 
>     The need and requirements to support such applications in MPLS
>     networks, i.e., MPLS Network Actions (MNA), are described in
>     [I-D.ietf-mpls-mna-usecases] and [I-D.ietf-mpls-mna-requirements].
>     It is clear that some headers should be located after the MPLS label
>     stack.  We call such a header "post-stack extension header".  The
>     encapsulation of post-stack extension header(s) poses some challenges
>     to MPLS networks, because the MPLS label stack contains no explicit
>     indicator for the upper layer protocols by design.
> 
>     While the post-stack extension header needs some in-stack indicator
>     to signal its presence, the mechanism specification is out of the
>     scope of this document.  The indication for the presence of the post-
>     stack extension header can be achieved using several mechanisms,
>     including carrying an SPL or signaling it with the label FEC as
>     described in [I-D.ietf-mpls-mna-fwk].  In this document, we focus on
>     the encoding and encapsulation of the post-stack extension headers in
>     an MPLS packet.
> 
> SB> The text to this point could usefully be trimmed and made less speculative.
> 
> SB> At the time of publication as an RFC (if this is published as an RFC) the situation will be that: this information needs to be carried and this is the/one of the ways that it is to be carried.
> 
>     The similar problem has been tackled for some applications before.
> 
> SB> Need to cite the examples with references in the following:
> 
> ==========
> 
>     *  Some previous work such as G-ACH [RFC5586] was explicitly defined
>        for control channel only but what we need is for the user packets.
> 
> SB> We can change that constraint if it is the right thing to do. It was introduced as a result to concern for the h/w likely to be available at the time, but it is not cast in stone.
> 
>     To solve these problems, we introduce post-stack extension header as
>     a general and extensible means to support new MNAs which involve
>     instructions and/or meta data.  The concept is similar to IPv6
>     extension headers which offer a huge potential for extending IPv6's
>     capability (e.g, network security, SRv6 [RFC8754], network
>     programming [RFC8986], SFC [I-D.ietf-spring-sr-service-programming],
>     etc.).  Thanks to the existence of extension headers, it is
>     straightforward to introduce new network services into IPv6 networks.
>     For example, it has been proposed to carry IOAM header
>     [I-D.ietf-ippm-ioam-ipv6-options] as a new extension header option in
>     IPv6 networks.
> 
> SB> I think the point is the the eh mechanism is a mechanism, whether that makes it easy to introduce new eh onto a forwarder or into an operating network is a different matter, particularly in the HxH case.
> 
>     Nevertheless, when applying the extension header to MPLS, some issues
>     of the IPv6 EH should be avoided:
> 
>     *  IPv6's extension headers are chained with the original upper layer
>        protocol headers in a flat stack.  One must scan all the extension
>        headers to access the upper layer protocol headers and the
>        payload.  This is inconvenient and raises some performance
>        concerns for some applications (e.g., DPI and ECMP).  The new
>        scheme for MPLS header extension needs to improve this.
> 
>     *  [RFC8200] enforces many constraints to IPv6 extension headers
>        (e.g., EH can only be added or deleted by the end nodes specified
>        by the IP addresses in the IPv6 header, and there is only one Hop-
>        by-Hop EH that can be processed on the path nodes), which are not
>        suitable for MPLS networks.  For example, MPLS label stacks are
>        added and changed in network, and there could be tunnel within
>        tunnel, so the extension headers need more flexibility.
> 
> SB> Be careful here. The constraints in IPv6 are MTU and Security.
> 
> SB> MTU is less of an non-issue because of the domain specific nature of most MPLS deployments. The security issue may well apply to us as well.
> 
> 2.  MPLS Extension Header
> 
>     The concept and design of the MPLS post-stack extension header comply
>     with the requirements laid out in [I-D.ietf-mpls-mna-requirements].
>     We highlight some specific design requirements for the post-stack
>     extension headers in MPLS networks:
> 
>     Performance:  Unnecessary label stack scanning for a label and the
>        full extension header stack scanning for the upper layer protocol
>        should be avoided.  The extension headers a node needs to process
>        should be located as close to the MPLS label stack as possible.
> 
> SB> How does the design achieve this?
> 
>        Each extension header is better to serve only one application to
>        avoid the need of packing multiple TLV options in one extension
>        header.
> 
> 
> 
> 
> Song, et al.            Expires 12 February 2023                [Page 4]
> 

> Internet-Draft      MPLS Post-Stack Extension Header         August 2022
> 
> 
>     Scalability:  New applications can be supported by introducing new
>        extension headers.  Multiple extension headers can be easily
>        stacked together to support multiple services simultaneously.
> 
> SB> ... until you get to the max header length of the on path routers.
> 
>     Backward Compatibility:  Legacy devices which do not recognize the
>        extension header option should still be able to forward the
>        packets as usual.
> 
> SB> That may or may not be a good thing.
> 
>        If a device recognizes some of the extension
>        headers but not the others in an extension header stack, it can
>        process the known headers only while ignoring the others.
> 
> SB> ... again which may or may not be a good thing.
> 
>     Flexibility:  A node can be configured to process or not process any
>        EH.  Any tunnel end nodes in the MPLS domain can add new EH to the
>        packets which shall be removed on the other end of the tunnel.
> 
> SB> That is not unique to this proposal
> 
> =========
> 
> 
>     Following the MPLS label stack is the 4-octet Header of Extension
>     Headers (HEH), which indicates the total number of extension headers
>     in this packet, the overall length of the extension headers, the type
>     of the original upper layer header, and the type of the next header.
>     The format of the HEH is shown in Figure 2.
> 
>         0           1         2          3
>         0123 4567 89012345 67890123 45678901
>        +----+----+--------+--------+--------+
>        | R  |EHC |  EHTL  |  OUL   |   NH   |
>        +----+----+--------+--------+--------+
> 
>                              Figure 2: HEH Format
> 
>     The meaning of the fields in an HEH is as follows:
> 
>     R:  4-bit reserved.  The nibble value means to avoid conflicting with
>        IP version numbers and other well-defined semantics
>        [I-D.kbbma-mpls-1stnibble].
> 
>     EHC:  4-bit unsigned integer for the Extension Header Counter.  This
>        field keeps the total number of extension headers included in this
>        packet.  It does not count the original upper layer protocol
>        headers.
> 
> SB> What do you mean here? The payload headers?
> 
>        At most 15 EHs are allowed in one packet.
> 
>     EHTL:  8-bit unsigned integer for the Extension Header Total Length
>        in 4-octet units.  This field keeps the total length of the
>        extension headers in this packet, not including the HEH itself.
> 
>     OUL:  8-bit Original Upper Layer protocol number indicating the
>        original upper layer protocol type.  It can be set to "UNKNOWN" if
>        unknown.
> 
> SB> This is a different subject, and needs to be called out and explicitly agreed. There is no need for this as far as I can see, and I am not sure why it needs to be in every EH.
> 
>     NH:  8-bit indicator for the Next Header.  This field identifies the
>        type of the header immediately following the HEH.
> 
>     The value of the reserved nibble needs further consideration.  The
>     EHC field can be used to keep track of the number of extension
>     headers when some headers are inserted or removed at some network
>     nodes.
> 
> SB> Has the WG agreed to inflight insertion and removal?
> 
> SB> If we do this, which label does this apply to when we do nested tunnels?
> 
>     The EHTL field can help to skip all the extension headers in
>     one step if the original upper layer protocol headers or payload need
>     to be accessed.  The OUL field can help identify the type of the
>     original upper layer protocol.
> 
> SB> These are capabilities that we have not as yet agreed that we need. I do not recall them being called up the use case or requirement drafts.
> 
>     The format of an Extension Header (EH) is shown in Figure 3.
> 
> 
> 
> 
> 
> 
> Song, et al.            Expires 12 February 2023                [Page 6]
> 

> Internet-Draft      MPLS Post-Stack Extension Header         August 2022
> 
> 
>         0          1          2          3
>         01234567 89012345 67890123 45678901
>        +--------+--------+--------+-------+
>        |  NH    |  HLEN  |EXT(opt)|       |
>        +--------+--------+--------+       |
>        |                                  |
>        ~        Header Specific Data      ~
>        |                                  |
>        +--------+--------+----------------+
> 
>                              Figure 3: EH Format
> 
>     The meaning of the fields in an EH is as follows:
> 
>     NH:  8-bit indicator for the Next Header.  This field identifies the
>        type of the EH immediately following this EH.
> 
> SB> I am sure that you got the 8 bits by copying IPv6, but do we need 8 bits?
> 
> SB> We are not operating in Internet scope. How many EH types do we think that we will need? Could we operate in domain scope? Could we use some of these bits to specify the action on an unknown EH, and to specify E2E and HxH?
> 
>     HLEN:  8-bit unsigned integer for the Extension Header Length in
>        4-octet units, not including the first 4 octets.
> 
> SB> Are we seriously considering 1KB of EH? That will break pretty much every forwarder.
> 
>     EXT:  8-bit optional type extension.  To save the Next Header numbers
>        and extend the number space, it is possible to use one "Next
>        Header" code to cover a set of sub-types.  Each sub-type is
>        assigned a new code in a different name space.  This field is
>        optional and it is only specified for some specific EH type.
> 
> SB> So are we saying that we need to make provision for 64K EH types?
> 
> SB> EH sub-types could be a concept that is private to a particular EH type, and that might be a more powerful design.
> 
>     Header Specific Data:  Variable length field for the specification of
>        the EH.  This field is in length such that the EH is 4-octet
>        aligned.
> 
> SB> What you do not have here and which may be of use is a flag saying what to do if you do not understand. I also wonder if there needs to be a HxH flag.
> 
> SB> The way this is laid out we need to parse the whole of the EH chain to find out if we are interested in any EH entry. I wonder if we should have a manifest of some sort so just looking at BoS we can find out if anything is of interest?
> 
>     The extension headers as well as the first original upper layer
>     protocol header are chained together through the NH field in HEH and
>     EHs.  The encoding of NH can share the same value registry for IPv4/
>     IPv6 protocol numbers.  Values for new EH types (i.e., NH number)
>     shall be assigned by IANA from the same registry as for the ipv4 and
>     ipv6 protocol numbers (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.iana.org%2Fassignments%2Fprotocol-&amp;data=05%7C01%7Chaoyu.song%40futurewei.com%7C3e6c9ecf94c04f1a145c08da89d0aac0%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637973826696436768%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=88DoLPKV6r8UUXpTN45PYPRqL4zULju4xqTti5E3C8k%3D&amp;reserved=0  <https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.iana.org%2Fassignments%2Fprotocol-&amp;data=05%7C01%7Chaoyu.song%40futurewei.com%7C3e6c9ecf94c04f1a145c08da89d0aac0%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637973826696436768%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=88DoLPKV6r8UUXpTN45PYPRqL4zULju4xqTti5E3C8k%3D&amp;reserved=0>
>     numbers/protocol-numbers.xhtml).
> 
> SB> ... but is that the right registry to use? Do we really want to be tied to the IP protocol numbers registry and do they want us cluttering up their registry - which has to last the life of the Internet - with our extension system which could use its own registry?
> 
> SB> Indeed the result of using our own registry would be a more compact registry space which leads to more efficient forwarding.
> 
>     Specifically, the NH field of the last EH in a chain can have some
>     special values, which shall be assigned by IANA as well:
> 
>     NONE (No Next Header):  Indicates that there is no other header and
>        payload after this header.  This can be used to transport packets
>        with only extension header(s), for example, the control packets
>        for control or the probe packets for measurements.  Note that
>        value 59 was reserved for "IPv6 No Next Header" indicator.  It may
>        be possible for MPLS EH to share this value.
> 
> SB> That needs discussion in 6man
> 
> 
> 
> Song, et al.            Expires 12 February 2023                [Page 7]
> 

> Internet-Draft      MPLS Post-Stack Extension Header         August 2022
> 
> 
>     UNKNOWN (Unknown Next Header):  Indicates that the type of the header
>        after this header is unknown.  This is intended to be compatible
>        with the original MPLS design in which the upper layer protocol
>        type is unknown from the MPLS header alone.
> 
> SB> Not quite true, it is known from the FEC of the BoS label.
> 
>     MPLS:  Indicates that the original upper layer protocol is still MPLS
>        and another MPLS label stack follows.
> 
>     Note that the original upper layer protocol can be of type "MPLS",
>     which implies that in a packet there might be multiple label stacks
>     separated by EHs.  Having more than one independent label stack is
>     not new.  For example, A Bier header could separate the transport/
>     bier labels and the payload labels; An MPLS Pseudo Wire (PW) network
>     could be implemented on the top of another infrastructure MPLS
>     network.
> 
> SB> I do not understand this point.
> 
>     In such cases, we have the flexibility to apply different
>     services to different label stacks.
> 
> 3.  Type of MPLS Extension Headers
> 
>     Basically, there are two types of MPLS EHs: HBH and E2E.  E2E means
>     that the EH is only supposed to be inserted/removed and processed at
>     the MPLS tunnel end points where the MPLS header is inserted or
>     removed.  The EHs that need to be processed on path nodes within the
>     MPLS tunnel are of the HBH type.  However, any node in the tunnel can
>     be configured to ignore an HBH EH, even if it is capable of
>     processing it.
> 
>     If there are two types of EHs in a packet, the HBH EHs must take
>     precedence over the E2E EHs.
> 
> SB> I am worried about how we bind the scope of the EH to a label.
> 
> SB> If I tunnel a packet by pushing a label are the EH in the scope of that tunnel or not? Is that a ubiquitous decision?
> 
>     Making a distinction of the EH types and ordering the EHs in a packet
>     help improve the forwardidng performance.  For example, if a node
>     within an MPLS tunnel finds only E2E EHs in a packet, it can avoid
>     scanning the EH list.
> 
>     The type of an EH (i.e., HBH or E2E) is an intrinsic property of the
>     EH.  In other words, EH type indicates if it needs to be processed on
>     each hop or only on edge node.
> 
> SB> Is that the optimum design?
> 
> 4.  Operation on MPLS Extension Headers
> 
>     When the first EH X needs to be added to an MPLS packet, an EH
>     indicator is inserted into the proper location in the MPLS label
>     stack.  A HEH is then inserted after the MPLS label stack, in which
>     EHCNT is set to 1, EHTLEN is set to the length of X in 4-octet units,
>     and NH is set to the header value of X.  At last, X is inserted after
>     the HEH, in which NH and HELN are set accordingly.  Note that if this
>     operation happens at a PE device, the upper layer protocol is 
> known
> 
> 
> 
> Song, et al.            Expires 12 February 2023                [Page 8]
> 

> Internet-Draft      MPLS Post-Stack Extension Header         August 2022
> 
> 
>     before the MPLS encapsulation, so its value can be saved in the NH
>     field if desired.  Otherwise, the NH field is filled with the value
>     of "UNKNOWN".
> 
> SB> I am wondering if there are cases, for example as a result of nested tunnels where some may be know and some unknown.
> 
> =========
> 
> 5.  Use Cases
> 
>     In this section, we show how MPLS extension header can be used to
>     support several new network applications.
> 
>     In-situ OAM:  In-situ OAM (IOAM) records flow OAM information within
>        user packets while the packets traverse a network.  The
>        instruction and collected data are kept in an IOAM header
>        [RFC9197].  When applying IOAM in an MPLS network, the IOAM header
>        can be encapsulated as an MPLS extension header.
> 
>     Network Telemetry and Measurement:  A network telemetry and
>        instruction header can be carried as an extension header to
>        instruct a node what type of network measurements should be done.
>        For example, the method described in [RFC8321] can be implemented
>        in MPLS networks since the EH provides a natural way to color MPLS
>        packets.
> 
>     Network Security:  Security related functions often require user
>        packets to carry some metadata.  In a DoS limiting network
>        architecture, a "packet passport" header is used to embed packet
>        authentication information for each node to verify.
> 
> SB> You need to comment on the matter of NS and EH addition removal in
> the security case. We spent a little time thinking of this in the TCR 
> case (draft-bcx-rtgwg-tcr), but there are probably others that have 
> considered the problem of partial signatures in more detail.
> 
> Song, et al. Expires 12 February 2023 [Page 9]
 Internet-Draft MPLS 
> Post-Stack Extension Header August 2022 Segment Routing and Network
> Programming: MPLS extension header can support the implementation of a 
> new flavor of the MPLS-based segment routing, with better performance 
> and richer functionalities. The details will be described in another draft.
> 
> SB> Reference?
> 
> 6.  Security Considerations
> 
> SB> We need a security architecture or this will not get past first base.
> 
> ==========
> 
> ==========
> 
> 
> _______________________________________________
> mpls mailing list
> mpls@ietf.org
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.
> ietf.org%2Fmailman%2Flistinfo%2Fmpls&amp;data=05%7C01%7Chaoyu.song%40f
> uturewei.com%7C3e6c9ecf94c04f1a145c08da89d0aac0%7C0fee8ff2a3b240189c75
> 3a1d5591fedc%7C1%7C0%7C637973826696436768%7CUnknown%7CTWFpbGZsb3d8eyJW
> IjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%
> 7C%7C%7C&amp;sdata=qfPRfuSgYAG7UhcGAgl%2FPXHa0XbpRKCuqnlvFH4gQYg%3D&am
> p;reserved=0

-- 
Loa Andersson                        email: loa@pi.nu
Senior MPLS Expert                          loa.pi.nu@gmail.com
Bronze Dragon Consulting             phone: +46 739 81 21 64