Re: [Idr] Fwd: [E] New Version Notification for draft-mishra-idr-v4-islands-v6-core-4pe-05.txt

Igor Malyushkin <gmalyushkin@gmail.com> Fri, 11 August 2023 16:46 UTC

Return-Path: <gmalyushkin@gmail.com>
X-Original-To: idr@ietfa.amsl.com
Delivered-To: idr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 25589C15152E; Fri, 11 Aug 2023 09:46:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.505
X-Spam-Level:
X-Spam-Status: No, score=0.505 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, FREEMAIL_FROM=0.001, FREEMAIL_REPLY=1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, THIS_AD=1.599, T_REMOTE_IMAGE=0.01, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 Y53BF2OzaCb5; Fri, 11 Aug 2023 09:46:12 -0700 (PDT)
Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7B018C151090; Fri, 11 Aug 2023 09:46:07 -0700 (PDT)
Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-1bc5acc627dso16109015ad.1; Fri, 11 Aug 2023 09:46:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691772366; x=1692377166; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=vYLila26MawWZWU9A9JgnN8BJ/rWuPz73ESE1ganEG4=; b=kYzdoXruyXTaQ7v1eNcbErZtgqdmwd4m0qOA6XoXMHiuI1fpw8nBTkHfMrrEN9lbxU rLCqHpSxtFbKTKkHA0EkwRK7hEdY4ICGSnBZCzIzD1Hcc2hgxCSGr+iRtbXv2yrccpfj r8CbngY90Os7jgD30Dvd/ylCU7TTomaCPzf8HVZLvlJR621JEDH//LZaex/ZuF6/PdNV oV5bza3TinU1NiMMJVl8ZEUnD+kIEMQ6nfWDxTCIq3vKm9C2Z+DaBXo4p7zrcBC8XmHg P1+9kSD48W7OFG+a8/tb/0XKAKIQChmJP5X0l0sFbXTvAeBYwHAH1E082envwGdcwM81 fk+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691772366; x=1692377166; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=vYLila26MawWZWU9A9JgnN8BJ/rWuPz73ESE1ganEG4=; b=aRsFUngpiNjiBafcqvd+WWF+2r+6VXpBG+37JyFeVmc6bCbDlSnrtGDS8KGzBOHYTF EmPdKNaixhozSSoeWOj2Z2rj1USkx3UpKsLSQ6/mXiPKLQX8QxtBrWAc6NXOhAnzDFJW 1tORGGcjGUdMOz6esr8Rj0XxJR/+KayBwR5XCPDvh80EDOaEg7YByIV53rKVLobDTV45 R9eXPYian8m/YbO2WMWkvNs+f4JADBJtxAAPwTKFItweQHx8XGT3/OUk9uvl6X80aGH7 b5Hp9/Z37dRoNTSREcbVJo/mW4Y5/bucV+20ciTZ8fb+wC7xxPgOzJCRygxOPe2eyVBx MYfw==
X-Gm-Message-State: AOJu0Yy5qoRyj90R5s5IO4Bj8iRaGEZFV/RkMY3S5/FulLdk9tMjBS4j rhaNbfAZ0vMMheXs57L3mHzA3PElKeva3BcCFy21yrAE
X-Google-Smtp-Source: AGHT+IFpqsYpSWJ+5xfmaLmItGGiG2QqFA8l9pYUbfIBfAuQ5SzfowT4NedbJmmKy6bBaZ+axlp1z4w7RsjuxkOSIgc=
X-Received: by 2002:a17:90a:9ed:b0:262:d7db:2520 with SMTP id 100-20020a17090a09ed00b00262d7db2520mr1663397pjo.26.1691772366137; Fri, 11 Aug 2023 09:46:06 -0700 (PDT)
MIME-Version: 1.0
References: <169047138994.3856.3652775004172582433@ietfa.amsl.com> <CAJhXr9_WbQ7N0qsR=8QdeBWG0_w31tpY-tm9=M+CeXtf6YO0nQ@mail.gmail.com> <CABNhwV3LGxQGUQhhoT-60imsyfVt62pMfSMg7USQ1ofxZXT2Rw@mail.gmail.com> <CAEfhRrz6_0Jj_HvoSeXH=4cfcNQQ_uy5FHZO8+FMeJfs4cuuVQ@mail.gmail.com> <CABNhwV0z-A2ZtPq0ydj7TCnJbHmNUw5zEF2bNBnCW2j33NDu4Q@mail.gmail.com> <CAEfhRrxdOuN8oMBeLaYTKxOccUWzhTWqf54TO0i6oxr5BD+A0A@mail.gmail.com> <CABNhwV1KJf-uueahrWjLXS5P-0xAsG9ALyLQAU=ZxwYx+p8+hg@mail.gmail.com> <CABNhwV0On1aRrPntfbhHvaFJoCFk38UeAZr3PDnytnsU8T5NUA@mail.gmail.com> <CAEfhRrx7kwtz6PeTXi-Bes-yrEa5q0AGgz2g6PH3avYyJrK0GQ@mail.gmail.com> <CABNhwV0wXAQgYYtZWtbPYtVVqoRZcenEtvvxUPyxVABCrZE9DA@mail.gmail.com> <CAEfhRrxnuk5ZmbZ=Eqn8HnJuM2M+_R1xszrr87erBBiA3czmfA@mail.gmail.com> <CABNhwV1aR25GFX-J9VUUD0Q6yz9FoUTWSna5zgUxr1xqqZ3dfQ@mail.gmail.com> <CAEfhRrzZt=K908fmPV8oHJdPyyV+V0OW=aiqYr9-Xfo8xCa3QA@mail.gmail.com> <CABNhwV2rPiNkAocixV-xt02jpzHM2hAKtcoBQFVk7bCT5de0Sg@mail.gmail.com> <CAEfhRrx+s2TGFcGAqaKkPZ2_+nCxo4aQRn+K-Yn7d9324QZPPQ@mail.gmail.com> <CABNhwV1bXMn0WDWh=YKqwg6BuCigvH34vpCcHRKmfJMU1Zz0xA@mail.gmail.com> <CAEfhRrye9TuWEXu15OP1os_9L4gyFg9-=mcVXUXrQQMbZnzJAg@mail.gmail.com> <CABNhwV2V1DrFa7DBq-Hq6FPF4s0NbHbGbB1iwUhxHTdK62=ApQ@mail.gmail.com> <CAEfhRrwMGgo9hdkUMNWTAEzkSC_R+xtHTjJJVgH5VWjGzhAaNQ@mail.gmail.com> <CABNhwV16kVp21TuFAj+JGUA9H_DP5uNHX6MiiLLnSRGikXT1qg@mail.gmail.com> <CABNhwV3gfgpo60BA+e8_LL4R2B3RLa0aBe4yvt+Y_muc1UzpVA@mail.gmail.com>
In-Reply-To: <CABNhwV3gfgpo60BA+e8_LL4R2B3RLa0aBe4yvt+Y_muc1UzpVA@mail.gmail.com>
From: Igor Malyushkin <gmalyushkin@gmail.com>
Date: Fri, 11 Aug 2023 20:45:52 +0400
Message-ID: <CAEfhRrzz2q9AaNffCT6aW+x7ru9D0WfdytZi-SqDz-TGW09mLw@mail.gmail.com>
To: Gyan Mishra <hayabusagsm@gmail.com>
Cc: "Dongjie (Jimmy)" <jie.dong@huawei.com>, IDR List <idr@ietf.org>, idr-chairs <idr-chairs@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000ecb1970602a8729d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/vQ4w7SDrfoR6LPVWIMldRlhBb8I>
Subject: Re: [Idr] Fwd: [E] New Version Notification for draft-mishra-idr-v4-islands-v6-core-4pe-05.txt
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Inter-Domain Routing <idr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/idr>, <mailto:idr-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/idr/>
List-Post: <mailto:idr@ietf.org>
List-Help: <mailto:idr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/idr>, <mailto:idr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 11 Aug 2023 16:46:17 -0000

Hi Gyan,

I'm OK with this list.
Thank you.

пт, 11 авг. 2023 г. в 18:57, Gyan Mishra <hayabusagsm@gmail.com>:

> Hi Igor / all
>
> Here is a summary of 4PE draft updates.
>
> Please review and any comments  much appreciated!
>
>  4PE design Deployment methods:
>
> All of what’s discussed use cases are  applicable to intra-as and inter-as
> options a, b, c, ab with Data planes MPLS, SR-MPLS, SRv6.
>
> 1. Arbitrary and Explicit null value 2 label topmost ipv6 LSP each with 3
> use cases: (6 use cases)
>
> a. LERs signal IPv6 topmost LSP with 2 level label stack  BOS set RFC 8277
> 1/4 service label labeling all IPv4 customer prefixes.
>
> b LERs signal IPv6 topmost LSP with 2 level label stack, BOS set RFC 8277
> 1/4 service label using ingress to egress  PE loopback to loopback LSP
> single BOS label with all global table customer prefixes unlabeled.
>
> c. LERs signal IPv6 topmost LSP with 2 level label stack  BOS set RFC 8277
> 1/4 service label using per CE label table routing context LSP ingress to
> egress  CE PE-CE interface PE side interface LSP single BOS label with per
> CE label table customer prefixes unlabeled.
>
> 2. IPv6 LSP PHP implicit null value 3  with 3 use cases: (3 use cases)
>
> a. LERs signal IPv6 topmost LSP with 2 level label stack  BOS set RFC 8277
> 1/4 service label labeling all IPv4 customer prefixes.
>
> b LERs signal IPv6 topmost LSP with 2 level label stack, BOS set RFC 8277
> 1/4 service label using ingress to egress  PE loopback to loopback LSP
> single BOS label with all global table customer prefixes unlabeled.
>
> c. LERs signal IPv6 topmost LSP with 2 level label stack  BOS set RFC 8277
> 1/4 service label using per CE label table routing context LSP ingress to
> egress  CE PE-CE interface PE side interface LSP single BOS label with per
> CE label table customer prefixes unlabeled.
>
> 3. Arbitrary and explicit null value 2 topmost IPv6 LSP BOS set single
> level label stack with all global table customer prefixes 1/1 unlabeled.
> Caveat that this requires DPI to determine next header inspection for
> protocol type so packets are not dropped. (2 use cases)
>
> Total of 11 use cases.
>
> Thanks
>
> Gyan
>
>
>
> On Tue, Aug 8, 2023 at 9:02 PM Gyan Mishra <hayabusagsm@gmail.com> wrote:
>
>> Hi Igor
>>
>> It was a pleasure having this detailed discussion.
>>
>> I am all set!
>>
>> Look out for an updated draft soon.
>>
>> Many Thanks!!
>>
>> Gyan
>>
>> On Mon, Aug 7, 2023 at 4:47 AM Igor Malyushkin <gmalyushkin@gmail.com>
>> wrote:
>>
>>> Hi Gayn.
>>>
>>> Agree, we have reached a consensus. I commented on all inline (IM4).
>>>
>>> Thank you for the discussion!
>>>
>>> вс, 6 авг. 2023 г. в 00:37, Gyan Mishra <hayabusagsm@gmail.com>:
>>>
>>>>
>>>> Hi Igor
>>>>
>>>> My comments in-line Gyan3>
>>>>
>>>> This last thread really helped clear up the use case of arbitrary
>>>> labels which comes into play if any implementation desired to not signal
>>>> implicit null value 3 by default.  Implicit null default is not a
>>>> requirement so we have to account for both use case possibilities.
>>>>
>>>> We are pretty well in sync!!
>>>>
>>>> On Sat, Aug 5, 2023 at 1:11 PM Igor Malyushkin <gmalyushkin@gmail.com>
>>>> wrote:
>>>>
>>>>> Hi Gyan,
>>>>>
>>>>> My comments are inline with the IM3 prefix.
>>>>>
>>>>> сб, 5 авг. 2023 г. в 19:17, Gyan Mishra <hayabusagsm@gmail.com>:
>>>>>
>>>>>> Hi Igor
>>>>>>
>>>>>> Responses in-line Gyan2>
>>>>>>
>>>>>> On Thu, Aug 3, 2023 at 2:35 PM Igor Malyushkin <gmalyushkin@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> My comments are inline (IM2).
>>>>>>>
>>>>>>> чт, 3 авг. 2023 г. в 18:54, Gyan Mishra <hayabusagsm@gmail.com>:
>>>>>>>
>>>>>>>> Hi Igor
>>>>>>>>
>>>>>>>> Yes looks like we have reached a consensus!!
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Aug 3, 2023 at 8:43 AM Igor Malyushkin <
>>>>>>>> gmalyushkin@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi Gayn, looks like we have reached a consensus!
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> чт, 3 авг. 2023 г. в 09:03, Gyan Mishra <hayabusagsm@gmail.com>:
>>>>>>>>>
>>>>>>>>>> Hi Igor
>>>>>>>>>>
>>>>>>>>>> I am good with everything listed below.
>>>>>>>>>>
>>>>>>>>>> As far as the topmost explicit versus arbitrary label I agree
>>>>>>>>>> that based on implementation if you use arbitrary you are ok if 1/4 service
>>>>>>>>>> label is used
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> IM> Ok.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> however if you use arbitrary topmost label and use 1/1 for
>>>>>>>>>> service label at the PHP node the native IPv4 packet could be dropped.
>>>>>>>>>> There would be a warning for that particular use case.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> IM> Yes. But I would say not at the PHP node. The PHP node just
>>>>>>>>> swaps a label in the case of arbitrary labels. Dropping occurs at the
>>>>>>>>> ultimate node (egress PE) due to any label for IPv6 LSPs (an arbitrary one
>>>>>>>>> or explicit 2) here can be allocated for the IPv6 routing process, but a
>>>>>>>>> packet is an IPv4 one.
>>>>>>>>>
>>>>>>>>
>>>>>>>>     Gyan> My understanding here is that the PHP (Penultimate Hop
>>>>>>>> POP) node is not the Ultimate hop which is the egress LER (PE) but is one
>>>>>>>> hop prior to the egress LER which would be the egress LSR (P) node.
>>>>>>>>
>>>>>>> [IM2] Yes, a PHP node is not an egress LER (PE). I've never heard
>>>>>>> someone calls a penultimate node an egress LSR, but ok, I will follow for
>>>>>>> this discussion.
>>>>>>>
>>>>>>>
>>>>>>>> So when the topmost label is an arbitrary label by default the PHP
>>>>>>>> node egress LSR (P) when it does a label swap the incoming label is
>>>>>>>> arbitrary but the outgoing label is “POP” which signals implicit null value
>>>>>>>> 3.
>>>>>>>>
>>>>>>> [IM2] No. Let me give you an example. Egress LER X allocates the
>>>>>>> label of 3000 and puts it in its ILM table with a POP operation. Then it
>>>>>>> advertises a mapping of its loopback's IPv6 address plus the label (3000)
>>>>>>> via LDPv6. That means that the egress LER expects MPLS traffic with the
>>>>>>> label of 3000 on its LDP-enabled interfaces and will strip this label by
>>>>>>> itself. All its neighbors would either swap something to 3000 or push 3000.
>>>>>>> The former case is when these neighbors are LSRs, the latter is when they
>>>>>>> are iLERs. In other words, we have a continuous single-labeled LSP from
>>>>>>> ingress LER to egress LER. All LSRs just do swapping of labels, but not
>>>>>>> popping.
>>>>>>>
>>>>>>
>>>>>>    Gyan2> Thanks for the clarification on arbitrary label use case
>>>>>> which is why the arbitrary label comes into play. So it appear this is a
>>>>>> vendor implementation difference.  I think this helps shed some light on
>>>>>> the arbitrary label case that you made and helps me understand the use case.
>>>>>>
>>>>> [IM3] Good! But I don't see where the vendor implementation difference
>>>>> comes to play. To me, it is standard behavior for MPLS.
>>>>>
>>>>>>
>>>>>> Since Nokia does not implement implicit null by default, PHP is
>>>>>> disabled, so then the  topmost label then can be any arbitrary label and
>>>>>> the topmost label is now preserved to the egress LER which then pops the
>>>>>> entire stack.
>>>>>>
>>>>> [IM3] I want you to note that I've never said that Nokia does not
>>>>> implement an implicit null. I don't want problems with Nokia fellas :) It
>>>>> is turned off by default, yes, but you can easily turn it back. The rest is
>>>>> correct.
>>>>>
>>>>
>>>>      Gyan3> Ack we are in sync here.  Just for clarity I think both of
>>>> us did not say that Nokia did not implement implicit null. My main point is
>>>> that RFC 3031 does not make implicit null a MUST for implementations by
>>>> default as long as implicit null is supported.  So Nokia supports
>>>> configuration of implicit null, however it is not default and leads to a
>>>> valid corner case with arbitrary labels use case where PHP is disabled.
>>>> PHP disabled default behavior as well provides an alternative to orthogonal
>>>> point that RFC 3270 MPLS QOS Pipe mode using explicit null is not necessary
>>>> as now you can use arbitrary topmost labels which are now preserved and do
>>>> PHB MPLS QOS EXP scheduling is not broken. So that based on implementations
>>>> over the years makes disabling PHP by default by not signaling implicit
>>>> null possibilities as not a corner case at all as there are many advantages
>>>> of doing so as we have seen with this thread. Historically PHP existed to
>>>> not overburden the LER to pop the entire stack offloading the load to the
>>>> egress LSR to POP the topmost label (PHP).  As well two flavors of
>>>> implementation to disable PHP, Cisco / Juniper method of enabling explicit
>>>> null and Nokia method of disabling implicit null by default.  I would like
>>>> to point out that the MPLS QOS EXP scheduling reason for explicit null or
>>>> not configuring implicit null is vendor implementation of being able to PHB
>>>> schedule MPLS QOS EXP and simultaneously with same policy schedule on DSCP
>>>> allows QOS PHB scheduling to not be broken which both Cisco and Juniper
>>>> implements, allowing operators to keep the default PHP behavior and not
>>>> have to signal explicit null Pipe mode to fix the scheduling issue.  So
>>>> there is a quite a number of permutations of designs based on use case.
>>>>
>>> [IM4] Ok, that point's clear.
>>>
>>>>
>>>>>> RFC 3031 section 4.1.5 describes the MPLS requirement to support
>>>>>> implicit null value 3 signaling done via label mapping message from egress
>>>>>> LER to PHP node (egress LSR) to POP the topmost label.  The MPLS standard
>>>>>> does not specify that implicit null MUST be the default behavior, however
>>>>>> most vendors have implemented as Default behavior.
>>>>>>
>>>>>
>>>>>> Cisco and Juniper use implicit null value 3 signaled by LER to PHP
>>>>>> node LSR (egress P) to pop the topmost outer label.  With Nokia implicit
>>>>>> null is not default and has to be enabled manually see links below:
>>>>>>
>>>>> [IM3] See my point above.
>>>>>
>>>>
>>>>      Gyan3> Ack
>>>>
>>>>>
>>>>>> Cisco supports implicit null signaling for PHP by default link below.
>>>>>>
>>>>>>
>>>>>> https://community.cisco.com/t5/mpls/implicit-null-and-explicit-null/td-p/1496792
>>>>>>
>>>>>>
>>>>>> Juniper supports implicit null signaling by default link below.
>>>>>>
>>>>>>
>>>>>> https://www.juniper.net/documentation/us/en/software/junos/mpls/topics/ref/statement/explicit-null-edit-protocols-mpls.html
>>>>>>
>>>>>>
>>>>>> Nokia does NOT support implicit null signaling by default link
>>>>>> below.  Since implicit null is a configured option it’s not enabled by
>>>>>> default to signal PHP.  Given that is the case AFAIK, any arbitrary label
>>>>>> can be preserved and thus you don’t have to use the explicit null label to
>>>>>> preserve the topmost label.  All you need to do is disable PHP which is
>>>>>> done by default my not signaling implicit null.  Cisco and Juniper as
>>>>>> implicit null is default behavior PHP is signaled, however in order to
>>>>>> disable PHP explicit null has to be configured.  So then the arbitrary
>>>>>> label concept only comes into play with vendors that don’t support PHP by
>>>>>> default like Nokia.
>>>>>>
>>>>>>
>>>>>> https://infocenter.nokia.com/public/7750SR217R1A/index.jsp?topic=%2Fcom.nokia.MPLS_Guide_21.7.R1%2Fconfiguring_imp-ai9emdyowp.html
>>>>>>
>>>>>> Configuring Implicit Null Label
>>>>>>
>>>>>> The implicit null label option allows an egress LER to receive MPLS
>>>>>> packets from the previous hop without the outer LSP label. The user can
>>>>>> configure to signal the implicit operation of the previous hop is referred
>>>>>> to as penultimate hop popping (PHP). This option is signaled by the egress
>>>>>> LER to the previous hop during the FEC signaling by the LDP control
>>>>>> protocol.
>>>>>>
>>>>>> Enable the use of the implicit null option, for all LDP FECs for
>>>>>> which this node is the egress LER, using the following command:
>>>>>>
>>>>>> config>router>ldp>implicit-null-label
>>>>>>
>>>>>> When the user changes the implicit null configuration option, LDP
>>>>>> withdraws all the FECs and re-advertises them using the new label value.
>>>>>>
>>>>>>>
>>>>>>> As I previously said, Nokia does it by default for RSVP, LDP, and
>>>>>>> BGP LSP. Huawei has a configuration option at least for LDP to turn this
>>>>>>> feature on. From time to time there are bugs with handling labels 0,2 or 3
>>>>>>> among different vendors. I had a very unpleasant experience with this too
>>>>>>> before. Arbitrary labels allow us to fool the penultimate nodes and make
>>>>>>> them regular LSRs. It also could work with egress LERs when they due to
>>>>>>> a bug cannot handle either unlabeled traffic or traffic with explicit
>>>>>>> labels. Personally, I consider PHP and UHP with explicit labels as
>>>>>>> rudiments and prefer using arbitrary labels instead.
>>>>>>>
>>>>>>
>>>>>>    Gyan2> See above what I mentioned about Nokia and PHP signaling
>>>>>> via implicit null appears to not be enabled by default.
>>>>>>
>>>>> I have tested 0, 2, 3 with Cisco and Juniper and I have not run into
>>>>>> any issues.  Based on what I stated above I agree the arbitrary label
>>>>>> concept I believe only comes into play with vendors such as Nokia that do
>>>>>> not have implicit null signaling to trigger the PHP node to POP the topmost
>>>>>> transport label.
>>>>>>
>>>>> [IM3] I don't get the idea of the last sentence. Arbitrary labels (if
>>>>> they are supported by a vendor in question) come into play when a network
>>>>> engineer decides to turn them on. Their usage is a matter of configuration
>>>>> and a design solution.
>>>>>
>>>>>
>>>>      Gyan3> In the last sentence I forgot to say by “default” vendors
>>>> such as Nokia that enable implicit null signaling for PHP to be enabled by
>>>> default.  The main reason to use arbitrary labels is for UHP to preserve
>>>> the topmost label to the egress LER.  Correct?
>>>>
>>> [IM4] Yes, that's correct.
>>>
>>>
>>>> It’s the exact same reason to use explicit null signaling to preserve
>>>> the topmost label so it’s not popped by the default implicit null PHP
>>>> enabled mode.  Cisco / Juniper both support the latter scenario where
>>>> implicit null is not configurable and cannot be explicitly enabled or
>>>> disabled, however in order to switch from implicit null PHP mode to
>>>> explicit null UHP mode you have to explicitly configure explicit null.  So
>>>> for Cisco and Juniper, arbitrary labels are not possible as implicit null
>>>> enable disable state from a configurable perspective does not exist as
>>>> implicit null is enabled by default. Nokia for example does not support
>>>> implicit null by default and has a configuration command to enable implicit
>>>> null and thus by default arbitrary labels use case is possible.  That is
>>>> why I say arbitrary labels usage and use case is based on vendor
>>>> implementation for the designer to use.  Of course of its not implemented
>>>> like with Cisco and Juniper for example it cannot be used.
>>>>
>>> [IM4] I got the main point of your statement above, that the use of
>>> arbitrary labels is based on their support by a vendor in question. Other
>>> vendors use explicit labels to achieve the same. I agree and always
>>> emphasized the same. If I missed anything, please, let me know.
>>>
>>>>
>>>>
>>>> Since PHP is disabled on Nokia by default you can now fool the PHP node
>>>>>> making it act as a regular LSR.  You are not actually fooling the PHP node,
>>>>>> it’s just that implicit null is not signaled by default so PHP is disabled,
>>>>>> so when LDP distributes the labels via downstream unsolicited from
>>>>>> downstream to upstream nodes and the LSP is instantiated and LIB is
>>>>>> allocated and LFIB data plane forwarding is programmed, the LSP is standard
>>>>>> swapping on every LSR including the PHP nodes as it did not get signaled
>>>>>> for implicit null to POP the transport label so acts as normal LSR swapping
>>>>>> labels.  No fooling and is acting as it should with arbitrary labels.
>>>>>>
>>>>> [IM3] Well, I can not use this term if you don't like it :) By
>>>>> fooling, I meant exactly what you stated above. So, looks like we are in
>>>>> sync here.
>>>>>
>>>>
>>>>      Gyan> Excellent! We are in sync here!
>>>>
>>>>>
>>>>>>>  So once the  PHP node egress LSR does the “POP” processing the
>>>>>>> outer topmost  label in the label stack is stripped or removed leaving the
>>>>>>> exposed payload which if a 2 level label stack would now be a single level
>>>>>>> label stack 1/4 and the labeled packet is successfully forwarded to the
>>>>>>> egress LER (PE) that POPs the remaining labels in the stack in this case
>>>>>>> the BOS bit set service label and the native IPv4 packet is forwarded to
>>>>>>> IPv4 context PE-CE interface via standard forwarding.
>>>>>>> [IM2] That's correct.
>>>>>>>
>>>>>>> So if it’s a single level label stack with topmost IPv6 arbitrary
>>>>>>> label once the PHP processing is completed “POP” operation stripping or
>>>>>>> removing outer topmost IPv6 arbitrary label the IPv4 payload is now exposed
>>>>>>> in the case of 1/1 service and the unlabeled IPv4 packet is dropped by the
>>>>>>> PHP node as it cannot be forwarded onto the egress IPv6 only  core
>>>>>>> interface facing the egress LER (PE). That’s the problem that we would
>>>>>>> address in this specification with 4PE.
>>>>>>> [IM2] That's not.
>>>>>>>
>>>>>>
>>>>>>     Gyan2> Updated arbitrary label use case.  So here  we not
>>>>>> signaling PHP with implicit null as some vendors do not signal implicit
>>>>>> null value 3 by default so PHP is disabled.  So now the topmost arbitrary
>>>>>> label is preserved to the egress LER which pops the entire stack and
>>>>>> forwards the native IPv4 packet to IPv4 routing context.
>>>>>>
>>>>> [IM2] In general, yes, except I'm not sure an IPv4 packet is forwarded
>>>>> to the IPv4 routing context for every implementation. From my
>>>>> understanding, this is vendor-depended behavior. If there is a normative
>>>>> reference to this procedure, please, let me know!
>>>>>
>>>>>>
>>>>>>>> If the egress LER signaled explicit null pipe mode to the egress
>>>>>>>> LSR PHP node, the PHP node seeing the value 2 IPv6 explicit null label
>>>>>>>> being signaled and would preserve the topmost IPv6 label in pipe mode and
>>>>>>>> forward the packet now still with topmost IPv6 label intact preserved over
>>>>>>>> the IPv6 core interface to the egress LER (PE) which would receive the
>>>>>>>> single level label stack and now pop the remaining label in this case the
>>>>>>>> explicit null value 2 topmost label and forward the native IPv4 packet to
>>>>>>>> the outgoing PE-CE ipv4 routing context.
>>>>>>>>
>>>>>>> [IM2] No, it does not forward an IPv4 packet after the stripping of
>>>>>>> the label of 2. I've just checked it on a Juniper, it drops all such
>>>>>>> traffic until we turn off the explicit label (I tried with LDPv6 and family
>>>>>>> inet without an address for the incoming interface). Nokia does the
>>>>>>> additional packet inspection for arbitrary labels that belong to IPv6 LSPs
>>>>>>> and forwards IPv4 packets. I cannot check it with an explicit label, looks
>>>>>>> like it is not supported or I failed to find it.
>>>>>>>
>>>>>>
>>>>>>     Gyan2> I believe IPv6 explicit null label as topmost once popped
>>>>>> cannot determine the network layer protocol of the unlabeled IPv4
>>>>>> underneath and so drops the packet.
>>>>>>
>>>>>
>>>>>
>>>>>> But it appear from your test that when using topmost arbitrary label
>>>>>> it can determine the network layer protocol type.
>>>>>>
>>>>> [IM3] Yes, but we should use this information very cautiously. We
>>>>> don't know the internals of one or another implementation. I'll repeat
>>>>> myself: some vendors do additional packet inspection, while others do not.
>>>>>
>>>>
>>>>      Gyan3>  As this use case digs deep into vendor implementation
>>>> internals I think it’s fair to exclude 1/1 unlabeled use case under the
>>>> topmost both arbitrary or explicit null cases due to the variation in deep
>>>> packet inspection being supported or not by vendors.
>>>>
>>> [IM4] I think that the draft should do exactly the opposite. The
>>> excluding of this case creates some undefined behavior. It is better to
>>> describe this case with the known pitfalls in detail and warn readers.
>>>
>>>
>>>> Based on this we are in sync for 4PE!
>>>>
>>>> 1/1 unlabeled is possible but due variance in support or not from 4PE
>>>> specification perspective we would have the following use cases:
>>>>
>>>> 3 use cases can have topmost be arbitrary or explicit null.
>>>>
>>>>   1st - All CE global table prefixes are labeled
>>>>   2nd - PE loopback to PE loopback LSP BOS set that contains all the CE
>>>> global table prefixes unlabeled
>>>>   3rd - Per CE PE-CE interface label table BOS set  IPv4 routing
>>>> context that contains the respective CE prefixes unlabeled
>>>>
>>>
>>>> 3 use cases of PHP implicit null - have you tested this ?  This should
>>>> work
>>>>
>>>>  1st - All CE global table prefixes are labeled
>>>>   2nd - PE loopback to PE loopback LSP BOS set that contains all the CE
>>>> global table prefixes unlabeled
>>>>   3rd - Per CE PE-CE interface label table BOS set  IPv4 routing
>>>> context that contains the respective CE prefixes unlabeled
>>>>
>>> [IM4] I'm OK with all the above. I've tested PHP for underlying LSPs
>>> when there is an overlay label at the bottom, and it works.
>>>
>>> For the arbitrary or explicit null 1/1  unlabeled IPv4 prefixes case
>>>> confirming we will not include due to the deep packet inspection variable
>>>> or maybe could mention with the implementation requirement of deep packet
>>>> inspection to infer the network protocol type?
>>>>
>>> [IM4] If it is possible to describe these cases as less preferred with a
>>> detailed explanation of why, I'm OK with this option. Talking about the
>>> requirement for DPI, I'm not sure about it. To me, it is too uncertain,
>>> there should be a procedure for such inspection. It is possible to mention,
>>> that vendors can analyze a network layer header and consider forwarding
>>> traffic.
>>>
>>>
>>>>
>>>>>
>>>>>>
>>>>>> RFC 3032 section 2.2 talks about determining the network layer
>>>>>> protocol type of the different protocol type exposed underneath topmost
>>>>>>  once the topmost is popped and it says that the network layer protocol
>>>>>> type is inferred from the value of label at bottom of stack. I think since
>>>>>> explicit null is a special label it cannot infer the protocol type but when
>>>>>> using arbitrary it can as proved from your test.
>>>>>>
>>>>> [IM3] No, that is not what I proved. Please, be careful here. Let me
>>>>> explain my point broader. From RFC 3032 (section 2.2) and specifically
>>>>> mentioned by you RFC 4182 (section 2), we can understand that the explicit
>>>>> labels, if and only if they have a BoS set, point exactly to the network
>>>>> protocol they belong to.
>>>>>
>>>>
>>>>> RFC4182 (cases for labels with BoS):
>>>>>
>>>>>        If, on the other hand, the NULL was the only label on the
>>>>>           stack, then the stack is now empty.  The resulting packet is
>>>>>           treated as an IPv4 packet, and its disposition is based on the
>>>>>           IPv4 header.
>>>>>
>>>>>
>>>>>           If, on the other hand, the NULL was the only label on the
>>>>>           stack, then the stack is now empty.  The resulting packet is
>>>>>           treated as an IPv6 packet, and its disposition is based on the
>>>>>           IPv6 header.
>>>>>
>>>>>
>>>>
>>>>     Gyan3> So for IPv6 explicit null it’s expecting an IPv6 packet and
>>>> not IPv4 so the packet would be dropped unless the implementation supports
>>>> deep packet inspection to infer the protocol type underneath.  What you
>>>> quoted from RFC 4182 section 2 is it says null is the only label in the
>>>> label stack so then of course no label with BOS.
>>>>
>>> [IM4] Not exactly. When there is only one label in the stack, this label
>>> must come with BoS. Also, from my understanding, this section talks not
>>> about the exact number of labels for an LSP, but about the parsing process
>>> when a parser eventually has the last label from the stack. I think it does
>>> not matter how many labels there are prior to an explicit null (0 or 2) if
>>> the latter is at the bottom. These labels (except the mentioned explicit
>>> one) will be stripped anyway. So, at the end of the day, a LER has only one
>>> label and this label is of explicit type with a BoS set.
>>>
>>>
>>>> This is the 1/1 use case unlabeled IPv4 packets so no BOS would be
>>>> present since it’s a single level label stack. Please clarify.
>>>>
>>>  [IM4] Yes, the use case is correct, but BoS is present even if this is
>>> a single-level label stack. BoS notifies a system to stop considering the
>>> next bytes after an LSE as MPLS header-related and start processing a
>>> network layer header.
>>>
>>>
>>>>> So, I expect an implementation to drop any IPv4 packets above the
>>>>> label of 2 and any IPv6 packets above the label of 0 according to these
>>>>> RFCs as the default behavior. However, according to the RFC3032, section
>>>>> 2.2:
>>>>>
>>>>
>>>>     Gyan3>. This is for the 1/1 not 1/4 (BOS) set with explicit null
>>>> topmost label so I would expect the IPv4 packets to be dropped as that is
>>>> based on the vendor implementation of deep packet inspection or not.
>>>>
>>> [IM4] Yes, agree. This is for 1/1 and, depending on a vendor DPI's
>>> implementation, packets may be dropped or not.
>>>
>>>
>>>> This is the 1/1 use case so no labeled IPv4 prefixes but you are
>>>> mentioning >=2 . We are talking 4PE which is IPv4 packets over IPv6 core
>>>> not 6PE which is IPv6 packets over IPv4 core, so in 6PE case as well the
>>>> IPv6 packets would be dropped.
>>>>
>>> [IM4] Yes, that's exactly what I tried to state. No matter what type of
>>> explicit label we have, if we do have not the expected network layer
>>> header, traffic may be dropped. This is true both for 4PE and 6PE when the
>>> explicit label is at the bottom of the stack.
>>>
>>>
>>>> So in both 4PE or 6PE unless the implementation supports deep packet
>>>> inspection the 1/1 unlabeled packets would be dropped.
>>>>
>>> [IM4] Yes.
>>>
>>>
>>>>
>>>>
>>> This means that the identity of the network layer protocol
>>>>>    must be inferable from the value of the label which is popped from
>>>>>    the bottom of the stack, possibly along with the contents of the
>>>>>    network layer header itself.
>>>>>
>>>>>
>>>>> We see that also vendors *can *analyze a network layer header, but it
>>>>> is complementary rather than the general behavior (see *possibly*).
>>>>> As I understand it, that is exactly what I have seen with the arbitrary
>>>>> label on Nokia. From my POV, it is also true for the explicit labels. But I
>>>>> think there is no guarantee, that each vendor adheres to this.
>>>>>
>>>>
>>>>    Gyan4> Understood on the deep packet inspection and that it’s
>>>> complementary optional but not generally implemented.  Agreed.  The thread
>>>> above was a bit confusing see above that we are talking about 1/1 not 1/4
>>>> so it’s unlabeled IPv4 prefixes with arbitrary or explicit topmost label.
>>>>
>>> [IM4] Yes, we discussed the case with unlabeled IPv4 traffic, because,
>>> from my POV, with labeled IPv4 traffic, we were already in sync.
>>>
>>>
>>>>
>>>>>   So I can mention this as a valid use case in the draft which is good
>>>>>> reason for arbitrary label.  So IPv6 explicit null is valid and not illegal
>>>>>> with the RFC 4182 update in 2005 to be used for any level of label stack
>>>>>> including topmost, however for case where the network layer under the
>>>>>> topmost is unlabeled you have to use arbitrary label for the IPv4 packet to
>>>>>> be inferred and not dropped.
>>>>>>
>>>>> [IM3] I will highlight it here too for additional clearance. Neither
>>>>> arbitrary nor explicit labels guarantee us that the IPv4 payload will be
>>>>> forwarded. That is why I think, the draft should clearly warn readers.
>>>>>
>>>>
>>>>      Gyan3> Ack and just to be crystal clear again this is 1/1 use case
>>>> for arbitrary or explicit null topmost.
>>>>
>>> [IM4] Yes!
>>>
>>>>
>>>>
>>>>>
>>>>>>> [IM] For example, RFC3032 says:
>>>>>>>
>>>>>>> A value of 2 represents the "IPv6 Explicit NULL Label".
>>>>>>>               This label value is only legal at the bottom of the label
>>>>>>>               stack.  It indicates that the label stack must be popped,
>>>>>>>               and the forwarding of the packet must then be based on the
>>>>>>>               IPv6 header.
>>>>>>>
>>>>>>>
>>>>>>> Despite I believe that requirement of the bottomness is kinda
>>>>>>> relaxed these days, anyway, it indicates that after the label of 2, there
>>>>>>> must be the IPv6 header, not IPv4. So, as I said, some boxes expect only
>>>>>>> IPv6 traffic and drop everything else if there is a label of 2 with a BoS
>>>>>>> set. Others could check packets deeper and forward them.
>>>>>>>
>>>>>>>>
>>>>>>>> No IPv4 dropped packets with IPv6 explicit null signaling value 2
>>>>>>>> but with arbitrary label we drop all IPv4 packets on the PHP node after the
>>>>>>>> “POP” operation.
>>>>>>>>
>>>>>>> [IM] As I explained above, in both cases -- no.
>>>>>>>
>>>>>>>
>>>>>>>> The egress node can do additional packet inspection and avoid the
>>>>>>>>> dropping, but there is no guarantee. This warning should be described in
>>>>>>>>> the document alongside the warning of the PHP case for single-labeled
>>>>>>>>> traffic.
>>>>>>>>> Also, if this document tried to invent and describe procedures on
>>>>>>>>> how to not drop IPv4 unlabeled traffic coming from IPv6 LSPs, I would say,
>>>>>>>>> that deserves to be a Standard :)
>>>>>>>>>
>>>>>>>>> Summary:
>>>>>>>>> * For single-labeled stacks:
>>>>>>>>> * * If the topmost label is an explicit one (value 2) or an
>>>>>>>>> arbitrary one, a drop is possible at an egress PE. The PE could think that
>>>>>>>>> a packet behind the label is IPv6, if there is no additional packet
>>>>>>>>> inspection, the drop will occur.
>>>>>>>>> * * In the PHP case a drop is possible at the penultimate PE when
>>>>>>>>> the topmost label is stripped of the payload. The PE could check the
>>>>>>>>> outgoing interface's families and does not allow IPv4 packets there.
>>>>>>>>> * For two or more labeled stacks:
>>>>>>>>> * * A bottom label must be present and be either an arbitrary one
>>>>>>>>> or explicit (0).
>>>>>>>>> * * Any labels above can be present in a stack with any values or
>>>>>>>>> cannot be present at all.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> The use case of topmost explicit null or implicit null default
>>>>>>>>>> will both work with PE loopback LSP or per CE PE-CE interface LSP context
>>>>>>>>>> label table.  We will allow topmost label PHP with no restriction as this
>>>>>>>>>> is possible with the permutation of use cases using 1/4 for service label
>>>>>>>>>> labeling all prefixes one bucket for all global table prefixes,  as well ws
>>>>>>>>>> works for your use case PE loopback LSP or per CE PE-CE interface LSP
>>>>>>>>>> carrying the per CE unlabeled CE prefixes.  As long as the service prefixes
>>>>>>>>>> are labeled allowing PHP for topmost label is valid permutation without any
>>>>>>>>>> risk of payload traffic drops.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> [IM] Yes, agree.
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Let me know if you are good with what I have stated.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> [IM] I'm good with that, yes.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> As far as standards track I will discuss with the
>>>>>>>>>> co-authors.
>>>>>>>>>>
>>>>>>>>>> I will discuss if in shipping code what is implemented in detail
>>>>>>>>>> and with what is described below if there is anything that requires
>>>>>>>>>> standardization even though existing mechanisms are being used that if any
>>>>>>>>>> procedural or any differences could cause interoperability issues.  One of
>>>>>>>>>> the major goal of the IETF standardization is mix vendor interoperability.
>>>>>>>>>> So if this can be achieved as informational draft or based on
>>>>>>>>>> interoperability issues found with current or future vendor implementation
>>>>>>>>>> do we need to have a standards track draft or not to meet the goal.
>>>>>>>>>> Normative language only comes into play for standards track draft so since
>>>>>>>>>> we do have normative language RFC 2119 does that mean this document should
>>>>>>>>>> be standards track.
>>>>>>>>>>
>>>>>>>>>> I will discuss this topic with the chairs as well.
>>>>>>>>>>
>>>>>>>>>> Many Thanks!
>>>>>>>>>>
>>>>>>>>>> Gyan
>>>>>>>>>>
>>>>>>>>>> On Wed, Aug 2, 2023 at 6:32 AM Igor Malyushkin <
>>>>>>>>>> gmalyushkin@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Gyan.
>>>>>>>>>>>
>>>>>>>>>>> When I'm talking about transport, I mean some underlay, i.e.,
>>>>>>>>>>> LSPs that points to remote PEs. They could be RSVP/LDP/SR-MPLS in a single
>>>>>>>>>>> domain or the exact same options with BGP LSP (IPv6) as E2E LSP through
>>>>>>>>>>> several domains. This draft should not restrict any label operations in any
>>>>>>>>>>> way for this set. That is what I meant for PHP. With PHP for these LSPs, we
>>>>>>>>>>> can face the situation when the IPv4 payload is exposed at the penultimate
>>>>>>>>>>> node.
>>>>>>>>>>>
>>>>>>>>>>> To avoid the problem with the exposure of the payload this draft
>>>>>>>>>>> offers to use the next level of LSPs -- IPv4 labeled unicast LSPs. And we
>>>>>>>>>>> have spent some time discussing how to organize them. This is where I was
>>>>>>>>>>> talking about the separation of reachability from next-hops signaling. I
>>>>>>>>>>> didn't mean PHP for these LSPs. Here we can use either an explicit label
>>>>>>>>>>> when we want to make an IPv4 lookup in the IPv4 global routing table or an
>>>>>>>>>>> arbitrary label for the rest of the cases (i.e., per-CE, per-prefix, it
>>>>>>>>>>> also supports per-table, SR OS uses it by default for per-table). This is
>>>>>>>>>>> some form of overlay.
>>>>>>>>>>>
>>>>>>>>>>> For both, underlay and overlay, explicit labels *and *arbitrary
>>>>>>>>>>> labels are possible and the latter do not break anything. I hope we are
>>>>>>>>>>> synchronized at this point. For overlay, the selection could be done with a
>>>>>>>>>>> variable granularity. Many vendors allow us to set a per-table label (it
>>>>>>>>>>> can be an explicit one but not necessarily) for the most prefixes, and set
>>>>>>>>>>> dedicated labels for some smaller groups of routes that belong to some
>>>>>>>>>>> interfaces of this table (per-CE). It does not depend on whether we send
>>>>>>>>>>> all customer's routes as labeled or just next-hops for them.
>>>>>>>>>>>
>>>>>>>>>>> Third, despite this draft trying to save people from some
>>>>>>>>>>> pitfalls (losing frames at the penultimate node when the payload is
>>>>>>>>>>> unlabeled after PHP with a single-labeled stack's LSPs) I still think that
>>>>>>>>>>> these options shouldn't be excluded from the consideration. If we advertise
>>>>>>>>>>> IPv4 1/1 routes with IPv6 NHs and PHP is not done, nothing bad happens,
>>>>>>>>>>> right? So, from my POV, it is better not to delve into the kingdom of
>>>>>>>>>>> restrictions, but to make a clear statement that with PHP for
>>>>>>>>>>> transport/underlay in the case of a single-labeled stack, there is a
>>>>>>>>>>> dangerous situation. If a user applies a two-labeled or more stack, PHP is
>>>>>>>>>>> possible for all labels prior to the bottom one. So there is a simple
>>>>>>>>>>> condition for PHP depending on the depth of the stack, and no need to
>>>>>>>>>>> restrict a user with the exact depth.
>>>>>>>>>>>
>>>>>>>>>>> In summary.
>>>>>>>>>>> * The draft should remove all "MUST" corresponding to the
>>>>>>>>>>> procedures of sending customers' routes and the selection of AFI/SAFI for
>>>>>>>>>>> them (IPv4 1/1 vs. 1/4).
>>>>>>>>>>> * The draft should not restrict using any labels for transport
>>>>>>>>>>> LSPs (arbitrary vs. explicit).
>>>>>>>>>>> * The draft should describe the case when the penultimate node
>>>>>>>>>>> drops traffic, warn readers, and suggest (not mandate) a more viable
>>>>>>>>>>> alternative.
>>>>>>>>>>> * With this alternative (IPv4 LU) there should not be strict
>>>>>>>>>>> requirements for sending all customers' routes via 1/4, for some cases, the
>>>>>>>>>>> signaling of next-hops is also suitable.
>>>>>>>>>>> * The draft should be informational, all the mechanics are
>>>>>>>>>>> already available, and the notion of the depth of a label stack is not
>>>>>>>>>>> something new.
>>>>>>>>>>> * The draft should consider other options, not related to MPLS,
>>>>>>>>>>> or related but with nowadays features (e.g., TEA).
>>>>>>>>>>>
>>>>>>>>>>> Thank you!
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> ср, 2 авг. 2023 г. в 04:13, Gyan Mishra <hayabusagsm@gmail.com>:
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Hi Igor
>>>>>>>>>>>>
>>>>>>>>>>>> We are making a lot of progress here!
>>>>>>>>>>>>
>>>>>>>>>>>> Responses in-line Gyan5>
>>>>>>>>>>>>
>>>>>>>>>>>> On Tue, Aug 1, 2023 at 5:42 PM Igor Malyushkin <
>>>>>>>>>>>> gmalyushkin@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>>        Gyan3> I agree this sentence is a bit confusing with
>>>>>>>>>>>>> regards to label 0 and 2 use.  We are not using IPv4 explicit null value 0
>>>>>>>>>>>>> at all in this draft.  So the conveying of the next hop and what the
>>>>>>>>>>>>> sentence it talking about related to the IPv6 LSP egress PE signaling done
>>>>>>>>>>>>> via the IPv6 explicit null label value 2 defined in RFC 4182 to use for
>>>>>>>>>>>>> topmost label so the next hop of the  advertised IPv4 routes have an IPv6
>>>>>>>>>>>>> next hop as defined according to RFC 8950 next hop encoding which is an
>>>>>>>>>>>>> IPv6 labeled address per BGP LU RFC 8277 for the BOS IPv4 prefixes. So here
>>>>>>>>>>>>>  we are talking about using label value 2 IPv6 explicit null to identify
>>>>>>>>>>>>> the IPv4 routing context of the outgoing interface since the next hop is an
>>>>>>>>>>>>> IPv6 next hop for the labeled IPv4 prefixes.  I will cleanup the wording.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Now it is more clear to me. Thank you. I've already expressed
>>>>>>>>>>>>> my thoughts on restriction of the transport. I strongly disagree.
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    Gyan5> Understood and points and use cases and reasons for
>>>>>>>>>>>> flexibility of arbitrary label are well taken.
>>>>>>>>>>>> Just to make sure I am crystal clear.  The use of topmost
>>>>>>>>>>>> transport IPv6 explicit null label does not allow you to create the per CE
>>>>>>>>>>>> / LSP IPv4 context tables or does it.  If so what is the technical reason
>>>>>>>>>>>> why you cannot label the loopbacks or CE interface creating an IPv4 LSP to
>>>>>>>>>>>> tunnel the per CE prefixes unlabeled.  I missed that if that’s the case so
>>>>>>>>>>>> want to understand why your use case is not possible with topmost transport
>>>>>>>>>>>> label  IPv6 explicit null.
>>>>>>>>>>>>
>>>>>>>>>>>> I believe you would like the flexibility of PHP as you have use
>>>>>>>>>>>> cases where PHP is necessary.   However that is separate from your primary
>>>>>>>>>>>> use case of per CE / LSP IPv4 context tables providing scalability and
>>>>>>>>>>>> faster convergence.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>> P.S. Label value 2 cannot identify the IPv4 routing context.
>>>>>>>>>>>>> With BoS bit it identifies the IPv6 routing context. Without BoS bit this
>>>>>>>>>>>>> label is stripped and a lookup is done for the next label until the bottom
>>>>>>>>>>>>> is reached. The bottom label actually identifies the context in this case.
>>>>>>>>>>>>> So, it is also not the best wording I believe.
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    Gyan5> Agreed will fix
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> вт, 1 авг. 2023 г. в 21:20, Gyan Mishra <hayabusagsm@gmail.com
>>>>>>>>>>>>> >:
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi Igor
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Response on the remaining item I missed in your first email -
>>>>>>>>>>>>>> Gyan3>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Gyan
>>>>>>>>>>>>>> On Tue, Aug 1, 2023 at 11:02 AM Gyan Mishra <
>>>>>>>>>>>>>> hayabusagsm@gmail.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi Igor
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Responses in-line Gyan2>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Mon, Jul 31, 2023 at 5:20 AM Igor Malyushkin <
>>>>>>>>>>>>>>> gmalyushkin@gmail.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Hi Gyan,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> My responses are also inline (IM>).
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> пн, 31 июл. 2023 г. в 09:07, Gyan Mishra <
>>>>>>>>>>>>>>>> hayabusagsm@gmail.com>:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Hi Igor
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Many thanks to your questions to clarify points in the
>>>>>>>>>>>>>>>>> draft.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Responses in-line Gyan>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Sun, Jul 30, 2023 at 8:40 AM Igor Malyushkin <
>>>>>>>>>>>>>>>>> gmalyushkin@gmail.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Hi Gyan,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I have several questions w.r.t your draft. But first I
>>>>>>>>>>>>>>>>>> would like to clarify some points from your summary.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> "*Customer IPv4 prefixes must be labeled when tunneled
>>>>>>>>>>>>>>>>>> over IPv6 LSP*". I believe there is a misconception
>>>>>>>>>>>>>>>>>> between the "labeled prefixes" and the "labeled traffic". Prefixes cannot
>>>>>>>>>>>>>>>>>> be tunneled via LSPs, traffic can be. Customer IPv4 prefixes can be
>>>>>>>>>>>>>>>>>> dissipated as vanilla IPv4 prefixes without labels. I described the reasons
>>>>>>>>>>>>>>>>>> during the previous discussion of this document.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Gyan> I was referring to the bottom of stack service
>>>>>>>>>>>>>>>>> labeling of the IPv4 customer prefixes which the traffic flows are within
>>>>>>>>>>>>>>>>> the payload of packet and not the label stack.  I can change the verbiage
>>>>>>>>>>>>>>>>> to labeled traffic. Good point.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> "*If not labeled on the PHP node when the topmost label
>>>>>>>>>>>>>>>>>> is popped the native IPv4 prefix is exposed and is not routable and will be
>>>>>>>>>>>>>>>>>> dropped*", this sentence describes traffic, not BGP
>>>>>>>>>>>>>>>>>> prefixes, and I'm sure we can reach the goal of having two and more labels
>>>>>>>>>>>>>>>>>> in a stack without advertising tons of IPv4 reachability with labels. We
>>>>>>>>>>>>>>>>>> can solely use IPv4 labeled prefixes also, as this draft describes, but
>>>>>>>>>>>>>>>>>> there are other options too.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>     Gyan> What I am describing is the native IPv4 prefixes
>>>>>>>>>>>>>>>>> under the topmost transport IPv6 label once popped that are exposed which
>>>>>>>>>>>>>>>>> the protocol is IPv4, where  the core P nodes are IPv6 so the IPv4 Paulo’s
>>>>>>>>>>>>>>>>> packets will be dropped.  Imagine the scenario where you have an IPv4 core
>>>>>>>>>>>>>>>>> and have native IPv4 to the edge so in that case you would have native IPv4
>>>>>>>>>>>>>>>>> Unicast prefixes 1/1 over a IPv4 core IPv4 LSP topmost label, and with IPv6
>>>>>>>>>>>>>>>>> core IPv6 LSP topmost label would have native IPv4 Unicast prefixes 1/1
>>>>>>>>>>>>>>>>> over IPv6 core.  I can rewrite as “Native IPv4 prefixes are exposed and non
>>>>>>>>>>>>>>>>> routable and IPv4 payload traffic is dropped. RFC 3032 section 2.2 states
>>>>>>>>>>>>>>>>> that the bottom of stack prefixes if a different protocol  then the topmost
>>>>>>>>>>>>>>>>> label as in this case must be labeled to identify the protocol type of the
>>>>>>>>>>>>>>>>> prefixes.  We can discuss the other options.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> "*RFC 7948 “6PE” states that the label bound to the IPv4
>>>>>>>>>>>>>>>>>> prefixes may be an arbitrary value or explicit null label which has led to
>>>>>>>>>>>>>>>>>> vendor interoperability issues in the past*". Can you
>>>>>>>>>>>>>>>>>> please elaborate on that topic? I know the exact opposite cases.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>    Gyan> Issue arises if one vendor uses arbitrary label
>>>>>>>>>>>>>>>>> and the other vendor uses IPv4 explicit null label value 1. AFAIK  Both
>>>>>>>>>>>>>>>>> sides using to arbitrary value or both sides signaling explicit null is ok
>>>>>>>>>>>>>>>>> but with mismatch there is an issue.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> IM> The selection of a value for a label is a matter of
>>>>>>>>>>>>>>>> choice of a node that allocates the value for the label. I'm lost what you
>>>>>>>>>>>>>>>> mean by "both sides". There is no such conception as "mismatch" because
>>>>>>>>>>>>>>>> LSRs do not negotiate label values among themselves in general. Yes, there
>>>>>>>>>>>>>>>> are examples of the opposite but for peculiar cases that do not interfere
>>>>>>>>>>>>>>>> with our topic.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>    Gyan2>Unidirectional LSP so no concept of both sides
>>>>>>>>>>>>>>> -agreed. One side could signal LSP using arbitrary label and other side
>>>>>>>>>>>>>>> explicit null. There is not related to mismatch and is some other peculiar
>>>>>>>>>>>>>>> case which I have to dig up.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> "*4PE draft states that the IPv4 prefixes must use MPLS
>>>>>>>>>>>>>>>>>> QOS RFC 3270 Pipe mode explicit null label bound to the IPv4 prefix and
>>>>>>>>>>>>>>>>>> MUST be used ...*". In my opinion, the idea of getting
>>>>>>>>>>>>>>>>>> rid of arbitrary labels breaks a lot of stuff. I will clarify it later.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>    Gyan> Yes please clarify
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> IM> Well, I've done it below in my previous message.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> "*Additional text clarity added related RFC 8950 next
>>>>>>>>>>>>>>>>>> hop encoding...*". Honestly, I don't understand why. It
>>>>>>>>>>>>>>>>>> is just a rephrase of the stuff from the original standard. Can you shed
>>>>>>>>>>>>>>>>>> light on the necessity of this section? Maybe I'm missing something.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Here and after my comments w.r.t the body of the draft.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Gyan> It’s just for reference stated explicitly in the
>>>>>>>>>>>>>>>>> draft but I agree it can be removed
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 1. Section 1. "*This document explains the "4PE" design
>>>>>>>>>>>>>>>>>> procedures and how to interconnect IPv4 islands over a Multiprotocol Label
>>>>>>>>>>>>>>>>>> Switching (MPLS) [RFC3031] LDPv6 enabled IPv6-Only core, Segment Routing
>>>>>>>>>>>>>>>>>> (SR) enabled SR-MPLS [RFC8660] IPv6-Only core or SRv6 [RFC8986] IPv6-Only
>>>>>>>>>>>>>>>>>> core*". Is my understanding correct that the 4PE
>>>>>>>>>>>>>>>>>> solution does not support RSVP-TE LSP signaled to IPv6 tail-ends over an
>>>>>>>>>>>>>>>>>> IPv6-routed core? I see LDPv6 here, but the link goes to RFC3031 which is
>>>>>>>>>>>>>>>>>> the architecture standard that applies not only to LDP. By the way,
>>>>>>>>>>>>>>>>>> 6PE/6vPE perfectly works with RSVP LSPs.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>    Gyan>  RFC 3031 is referenced for MPLS data plane but I
>>>>>>>>>>>>>>>>> did not specify LDP spec which I can add to be consistent.  Further down in
>>>>>>>>>>>>>>>>> the draft I do mention RSVP-TE but forgot to mention in above text so will
>>>>>>>>>>>>>>>>> add.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 2. Section 1. "*The 4PE routers exchange the IPv4
>>>>>>>>>>>>>>>>>> reachability information transparently over the core using the
>>>>>>>>>>>>>>>>>> Multiprotocol Border Gateway Protocol (MP-BGP) over IPv6. In doing so, the
>>>>>>>>>>>>>>>>>> BGP Next Hop field egress PE FEC (Forwarding Equivalency Class) is used to
>>>>>>>>>>>>>>>>>> convey the IPv6 address of the 4PE router learned dynamically via IGP...*".
>>>>>>>>>>>>>>>>>> Can a 4PE router, that resides in one IGP domain, use a next-hop address
>>>>>>>>>>>>>>>>>> received from the other domain via, for example, IPv6 labeled unicast?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>    Gyan> Yes it can using as you stated using BGP-LU is
>>>>>>>>>>>>>>>>> exactly how it’s done with inter-as option C where the next hops are
>>>>>>>>>>>>>>>>> imported between the IGP domains.  See section 7.3.2.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> IM> "Between the IGP domains" does not mean "between ASes".
>>>>>>>>>>>>>>>> From my understanding, Option C describes the latter, I was asking about
>>>>>>>>>>>>>>>> the former. So my question is still intact. Can addresses for BGP next-hops
>>>>>>>>>>>>>>>> be learned via means different from IGP as you stated in the body of the
>>>>>>>>>>>>>>>> doc? Consider the Seamless MPLS approach. My point is that you should
>>>>>>>>>>>>>>>> delete "... via IGP", not only IGP can do that, but BGP also can.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Gyan2> Got it will update
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 3. Section 1. "...* over an MPLS [RFC3031] LDP IPv6
>>>>>>>>>>>>>>>>>> core, Segment Routing SR-MPLS [RFC8660] IPv6 core or SRv6 [RFC8986] IPv6
>>>>>>>>>>>>>>>>>> core*". This part is a repetition of the same that was
>>>>>>>>>>>>>>>>>> done previously, and it will be repeated several times later. Moreover,
>>>>>>>>>>>>>>>>>> there are standard numbers enclosed after every term again and again. As I
>>>>>>>>>>>>>>>>>> understand, it is enough to do it one time per every desired abbreviation
>>>>>>>>>>>>>>>>>> during the whole body.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Gyan> Agreed will fix
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 4. Section 1. "*The approach requires that the Provider
>>>>>>>>>>>>>>>>>> Edge (PE) routers Provider Edge - Customer Edge (PE-CE) connections to
>>>>>>>>>>>>>>>>>> Customer Edge (CE)*". Honestly, it is difficult to read
>>>>>>>>>>>>>>>>>> such things. From my POV, there should be a section with all unique
>>>>>>>>>>>>>>>>>> definitions pertaining to this draft (e.g., 4PE router). Moreover, things
>>>>>>>>>>>>>>>>>> such as the PE, and CE are well-known and do not require unfolding. There
>>>>>>>>>>>>>>>>>> is a document of such well-known terms on the IETF portal for your
>>>>>>>>>>>>>>>>>> convenience. The last thing, as I see the same abbreviations are unfolded
>>>>>>>>>>>>>>>>>> many times during the document, which is contrary to the idea of an
>>>>>>>>>>>>>>>>>> abbreviation in general. Once explained, an abbreviation should be used
>>>>>>>>>>>>>>>>>> without further explanation.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Gyan> Agreed will fix
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 5. Section 3. "*...the 4PE IPv6 address Loopback0 MUST
>>>>>>>>>>>>>>>>>> to be routable within the IPv6 core*". What is "the 4PE
>>>>>>>>>>>>>>>>>> IPv6 address Loopback0"? It was not previously defined in the document.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Gyan> Will define and make clear
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 6. Section 3. "*Every ingress 4PE router can signal an
>>>>>>>>>>>>>>>>>> IPv6 MPLS [RFC3031] LSP, SRMPLS [RFC8660] LSP or instantiate an SRv6 Best
>>>>>>>>>>>>>>>>>> Effort (BE) or Segment Routing Traffic Engineering (SR-TE) [RFC9256] path
>>>>>>>>>>>>>>>>>> to send to any egress 4PE router*". It is not necessary
>>>>>>>>>>>>>>>>>> for an ingress router to signal an LSP. For example, LDP DU signals LSPs
>>>>>>>>>>>>>>>>>> from a downstream towards all possible upstreams. RSVP or LDP DoD acts the
>>>>>>>>>>>>>>>>>> opposite (if we talk about the intention, not a label distribution). So it
>>>>>>>>>>>>>>>>>> is better to rephrase this sentence as "every ingress 4PE router can have
>>>>>>>>>>>>>>>>>> an LSP toward..." or something like that.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>   Gyan> I was speaking generically not actually but is
>>>>>>>>>>>>>>>>> confusing as you stated not correct- so will fix with the LDP downstream
>>>>>>>>>>>>>>>>> unsolicited and RSVP-TE DOD.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> IM> Well, one can call me too pedantic, but I believe that
>>>>>>>>>>>>>>>> technical documentation especially the one that wants to be a Standard must
>>>>>>>>>>>>>>>> be streamlined and precise.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>     Gyan2> Yep Understood
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 7. Section 3. "*...the IPv6 signaled next hop Loopback0
>>>>>>>>>>>>>>>>>> used to identify the Ingress and Egress 4PE router*".
>>>>>>>>>>>>>>>>>> Now the Loopback0 is somehow connected to some next-hop. I believe this
>>>>>>>>>>>>>>>>>> connection should be clarified too.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>      Gyan> Will fix
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 8. Section 3. "*In doing so, the 4PE routers convey
>>>>>>>>>>>>>>>>>> their IPv6 address FEC label binding as the BGP Next Hop for the advertised
>>>>>>>>>>>>>>>>>> IPv4 prefixes*". The term FEC is pretty general, but the
>>>>>>>>>>>>>>>>>> "IPv6 address FEC label binding" can mislead a reader. From my POV, this
>>>>>>>>>>>>>>>>>> term is related to LDP, but the document includes many options to signal
>>>>>>>>>>>>>>>>>> transport paths.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>     Gyan> Will fix
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 9. Section 3. "*The ingress and egress 4PE router MUST
>>>>>>>>>>>>>>>>>> bind a label to the IPv4 prefix as per [RFC8277] using BGP Labeled Unicast
>>>>>>>>>>>>>>>>>> herinafter called BGP-LU, AFI/SAFI Address Family (AFI) / Subsequent
>>>>>>>>>>>>>>>>>> Address Family Identifier (SAFI) 2-tuple "1/4"*".  Which
>>>>>>>>>>>>>>>>>> is the IPv4 prefix? If I understand it correctly, this requirement is too
>>>>>>>>>>>>>>>>>> strict. As a designer I don't want to send all IPv4 prefixes with labels in
>>>>>>>>>>>>>>>>>> every case, I want to have some flexibility. Moreover, as a part of the
>>>>>>>>>>>>>>>>>> implementation team, I'm sure we won't consider this as the only possible
>>>>>>>>>>>>>>>>>> option too.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>     Gyan>Lets discuss this in more detail the use cases
>>>>>>>>>>>>>>>>> for not labeling.  Also the issue I mentioned in RFC 3032 section 2.2 that
>>>>>>>>>>>>>>>>> describes the problem with not labeling the prefix if the protocol is
>>>>>>>>>>>>>>>>> different between the topmost label and service prefix.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> IM> I believe there should be a clear distinction between
>>>>>>>>>>>>>>>> reachability advertisements and LSP signaling. BGP LU does both at the same
>>>>>>>>>>>>>>>> time. Every IP prefix here comes with a label that allows us to signal a
>>>>>>>>>>>>>>>> BGP LSP. It seems to me, you consider LU only as the copy-paste of IPv4
>>>>>>>>>>>>>>>> unicast but with labels. I offer you to look at it as an LSP signaling
>>>>>>>>>>>>>>>> protocol (one can think LU is an LDP on steroids).
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Let's consider an example. We have a PE-CE link with an
>>>>>>>>>>>>>>>> IPv4 subnet toward an IPv4 CE. A PE router of that PE-CE link is a part of
>>>>>>>>>>>>>>>> the IPv6-only core. We have some v6 LSP mesh among all PEs of that core.
>>>>>>>>>>>>>>>> These v6 LSPs populate the FTN table and allow us to resolve any BGP
>>>>>>>>>>>>>>>> next-hops through the network. The CE advertises IPv4 routes via 1/1. Let's
>>>>>>>>>>>>>>>> call them Customer Prefixes or Reachability for convenience. I believe, at
>>>>>>>>>>>>>>>> this point, the setup is pretty clear.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Your draft restricts me to export these Customer Prefixes
>>>>>>>>>>>>>>>> into IPv4 labeled unicast internal sessions and also restricts me to attach
>>>>>>>>>>>>>>>> an explicit null label (with the value of 0) to them. Anyway, that works,
>>>>>>>>>>>>>>>> and I have never argued
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I don't see a good reason to do that. All that I want is to
>>>>>>>>>>>>>>>> create an IPv4 loopback on the PE and advertise its IPv4 address via IPv4
>>>>>>>>>>>>>>>> labeled unicast toward remote PEs. In doing so I create a BGP LSP from
>>>>>>>>>>>>>>>> every remote PE to this advertising PE. The label from this advertisement
>>>>>>>>>>>>>>>> can be either an explicit null or an arbitrary one. This is my choice. Then
>>>>>>>>>>>>>>>> I just readvertise all Customer Prefixes via internal IPv4 1/1 sessions
>>>>>>>>>>>>>>>> with the next-hop address of my new shiny IPv4 loopback.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Both examples would have the same deep of a label stack.
>>>>>>>>>>>>>>>> Both examples wouldn't have any problems at the penultimate LSR. Both
>>>>>>>>>>>>>>>> examples (well, mechanics, not exact examples) should be a part of the doc.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> But with my example, I have greater flexibility, I can
>>>>>>>>>>>>>>>> change the next-hop addresses from the loopback address to an address of
>>>>>>>>>>>>>>>> the PE-CE link, allocate an arbitrary label in a per-next-hop fashion and
>>>>>>>>>>>>>>>> get an EPE. Also, it would increase convergence if I want to. The key here
>>>>>>>>>>>>>>>> -- is my desire as a designer. With your solution, it is
>>>>>>>>>>>>>>>> impossible because the next-hop for all Customer Prefixes and the label
>>>>>>>>>>>>>>>> would always be the same. It is impossible from a single value (0)
>>>>>>>>>>>>>>>> to produce many different actions at egress.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>      Gyan2> Thank you for the detailed use case.  Have you
>>>>>>>>>>>>>>> tried to configure this example and with which vendor?  I am not sure I
>>>>>>>>>>>>>>> would call it EPE as SR or BGP-LU are not steering traffic to the egress
>>>>>>>>>>>>>>> but I get it your point EPE like behavior to point to specific CE next
>>>>>>>>>>>>>>> hop.  What is the advantage of doing so.  With my solution you have a
>>>>>>>>>>>>>>> single next hop which is the egress PE however all the prefixes received on
>>>>>>>>>>>>>>> the egress PE in the IPv4 labeled unicast RIB would get advertised to each
>>>>>>>>>>>>>>> CE across the respective next hops. In your example you create and LSP
>>>>>>>>>>>>>>> between the PE loopbacks or use PE-CE interface next hop for the LSP per CE
>>>>>>>>>>>>>>> and then advertise all the prefixes per CE unlabeled.  The  prefixes for
>>>>>>>>>>>>>>> each CE broken down now by IPv4 LSP are going to all get advertised out to
>>>>>>>>>>>>>>> all CEs anyway doing it your way or my way.  So net end result of what gets
>>>>>>>>>>>>>>> advertised to which ingress and egress CE over the LSP is identical. I am
>>>>>>>>>>>>>>> not seeing any benefit to doing so other than added complexity.  I am not
>>>>>>>>>>>>>>> sure how much convergence gain you have as you can do per VRF label
>>>>>>>>>>>>>>> allocation and better scale and convergence. Can you expand on the benefits
>>>>>>>>>>>>>>> of doing so in your example. I do now understand the flexibility you desire.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 10. Section 3. "*The Ingress 4PE router MUST forward
>>>>>>>>>>>>>>>>>> IPv4 NLRI as Labeled prefixes using BGP-LU SAFI over the IPv6-signaled LSP
>>>>>>>>>>>>>>>>>> towards the Egress 4PE router identified by the IPv4 address advertised in
>>>>>>>>>>>>>>>>>> the IPv6 next hop encoding per [RFC8950]*". NLRI is a
>>>>>>>>>>>>>>>>>> term related to BGP message encoding. How can a 4PE router forward an NLRI
>>>>>>>>>>>>>>>>>> over an LSP? Forwarding is a procedure of transmitting traffic, LSP is a
>>>>>>>>>>>>>>>>>> transport entity used for forwarding labeled traffic, not NLRIs.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>   Gyan> I am referring to BGP SAFI in this case IPv4
>>>>>>>>>>>>>>>>> labeled unicast 1/4 which should say “advertised” and not “forwarded”
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 11. Section 4. "*To ensure interoperability between
>>>>>>>>>>>>>>>>>> routers that implement the 4PE design over MPLS [RFC3031] LDP IPv6 Core
>>>>>>>>>>>>>>>>>> described in this document, ingress and egress 4PE MUST support building
>>>>>>>>>>>>>>>>>> the underlay tunneling using IPv6-signaled MPLS LSPs established by LDP
>>>>>>>>>>>>>>>>>> [RFC5036] or Resource Reservation Protocol (RSVP-TE) [RFC3209]*".
>>>>>>>>>>>>>>>>>> Here we see that RSVP is anyhow possible, but I'm still missing the idea of
>>>>>>>>>>>>>>>>>> "MPLS LDP IPv6 Core" and how RSVP is related to it. Is this sentence about
>>>>>>>>>>>>>>>>>> LDP over RSVP tunneling? Or about ships in the night?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>    Gyan> yes two ships in the night two different
>>>>>>>>>>>>>>>>> scenarios will fix
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 12. Section 4. "*The (outer) label imposed MUST
>>>>>>>>>>>>>>>>>> correspond to the IPv6- signaled LSP starting on the ingress 4PE Router and
>>>>>>>>>>>>>>>>>> ending on the egress 4PE Router*". What if I have
>>>>>>>>>>>>>>>>>> segmented LSPs among several domains of the same AS? Pretty sure that in
>>>>>>>>>>>>>>>>>> this case, the outermost label would correspond to an LSP either from an
>>>>>>>>>>>>>>>>>> ingress 4PE to an ABR or from an ABR to the other ABR/egress 4PE router.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>    Gyan> Yes that’s correct and will add that scenario of
>>>>>>>>>>>>>>>>> multiple domains to the wording for end to end scenario
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 13. Section 4. "*The reason for the use of a second
>>>>>>>>>>>>>>>>>> level bottom of stack service label...*". I'm sure that
>>>>>>>>>>>>>>>>>> the stack can be deeper. I made some hints earlier in my notes (e.g., see
>>>>>>>>>>>>>>>>>> the previous bullet), also you can think about emerging MNA solutions. I
>>>>>>>>>>>>>>>>>> think it is better to pay attention not to the number of labels in a stack
>>>>>>>>>>>>>>>>>> but to the fact that the bottom label must pertain to an LSP forwarding
>>>>>>>>>>>>>>>>>> IPv4 traffic and that this label must be present on the egress.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>    Gyan> Agreed.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 14. Section 4. "*...it allows for Penultimate Hop
>>>>>>>>>>>>>>>>>> Popping (PHP) on the IPv6 Label Switch Router (LSR) Provider (P) node,...*".
>>>>>>>>>>>>>>>>>> I believe it is better to use one terminology, either pertaining to an MPLS
>>>>>>>>>>>>>>>>>> LSP (LER/LSR) or a BGP service (P/PE) in a single sentence. Here
>>>>>>>>>>>>>>>>>> MPLS-related terms suit you better because you are describing an LSP and
>>>>>>>>>>>>>>>>>> label stack.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>    Gyan> Agreed will fix
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 15. Section 4. "*The label advertised by the egress 4PE
>>>>>>>>>>>>>>>>>> Router with MP-BGP MUST be an explicit Null label Pipe mode Diff-Serv
>>>>>>>>>>>>>>>>>> Tunneling Model use case as defined in [RFC3270], so that the topmost label
>>>>>>>>>>>>>>>>>> can be preserved Ultimate Hop POP (UHP) to the egress PE Edge LSR*".
>>>>>>>>>>>>>>>>>> Why can it be an arbitrary label instead an explicit null?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>     Gyan> The reason for IPv6 explicit null label for
>>>>>>>>>>>>>>>>> topmost label is to prevent the drop issue in case the service prefix is
>>>>>>>>>>>>>>>>> not labeled as I have mentioned in the draft and the IPv4 traffic is
>>>>>>>>>>>>>>>>> dropped.  Using IPv6 explicit null label RFC 3270  pipe mode also fixes the
>>>>>>>>>>>>>>>>> MPLS QOS issue of EXP PHB scheduling on PHP node when the topmost label is
>>>>>>>>>>>>>>>>> popped as mentioned earlier.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> IM> My question was about a different thing. An arbitrary
>>>>>>>>>>>>>>>> label also prevents a penultimate LSR from exposing the payload. An LSR
>>>>>>>>>>>>>>>> would do a simple swap operation not knowing itself as penultimate. The
>>>>>>>>>>>>>>>> second moment, I don't understand why are you restricting the transport
>>>>>>>>>>>>>>>> from PHP if you have already restricted the service from that. One
>>>>>>>>>>>>>>>> shouldn't try to save everybody from every possible pitfall with a single
>>>>>>>>>>>>>>>> document.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>     Gyan2> I am restricting the transport from PHP with
>>>>>>>>>>>>>>> topmost IPv6 LSP explicit null signaling.  The service does not need to be
>>>>>>>>>>>>>>> restricted as it’s only popped at the egress PE.  The PHP node would either
>>>>>>>>>>>>>>> do default PHP and pop the topmost label or if explicit null signaling is
>>>>>>>>>>>>>>> enabled for the LSP the topmost is preserved to egress PE which pops the
>>>>>>>>>>>>>>> entire stack.  All intermediate LSRs would do the normal swap operation
>>>>>>>>>>>>>>> except the PHP node which would use the implicit null value 3 label default
>>>>>>>>>>>>>>> PHP POP operation.  My concern is only with exposing unlabeled service
>>>>>>>>>>>>>>> which would get dropped with the default PHP operation and not using
>>>>>>>>>>>>>>> explicit null signaling on the transport LSP.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 16. Section 4. "*The explicit null label advertised by
>>>>>>>>>>>>>>>>>> the egress PE router with MP-BGP also identifies the IPv4 routing context
>>>>>>>>>>>>>>>>>> or outgoing interface to forward the packet to and ingress 4PE Router which
>>>>>>>>>>>>>>>>>> MUST be able to be accept the "IPv6 Explicit NULL Label" advertised*".
>>>>>>>>>>>>>>>>>> From the very beginning of this statement, I understand that the egress PE
>>>>>>>>>>>>>>>>>> advertises an explicit label (0) for IPv4-labeled unicast routes to
>>>>>>>>>>>>>>>>>> identify either IPv4 routing context or outgoing interface. The end of this
>>>>>>>>>>>>>>>>>> sentence tells us that the ingress 4PE router must accept the IPv6 explicit
>>>>>>>>>>>>>>>>>> label (2). This label (2) cannot be used to identify either IPv4 routing
>>>>>>>>>>>>>>>>>> contexts or any interfaces. So I made an assumption that there is a mistake
>>>>>>>>>>>>>>>>>> and this is actually a 0 label, not 2.
>>>>>>>>>>>>>>>>>> How can the label with the same value (0) identify
>>>>>>>>>>>>>>>>>> several things (context, interface)? If you offer to bind this label to an
>>>>>>>>>>>>>>>>>> exact interface (without a route lookup at egress) instead of doing a
>>>>>>>>>>>>>>>>>> lookup in the global routing context/table, it will break the idea behind
>>>>>>>>>>>>>>>>>> this special purpose label and won't support more than one interface for
>>>>>>>>>>>>>>>>>> your solution. Arbitrary labels solve this issue and also many others.
>>>>>>>>>>>>>>>>>> For example, it allows us to do EPE if and only if we
>>>>>>>>>>>>>>>>>> dissipate IPv4 reachability (separately from its next-hop addresses) as
>>>>>>>>>>>>>>>>>> IPv4 routes with IPv4 next-hops alongside arbitrary labels for these
>>>>>>>>>>>>>>>>>> next-hops distributed as labeled IPv4 routes with IPv6 next-hops (which
>>>>>>>>>>>>>>>>>> this draft does not support and breaks). In this case, these arbitrary
>>>>>>>>>>>>>>>>>> labels are allocated in per next-hop fashion and preclude any IP lookups at
>>>>>>>>>>>>>>>>>> egress. I've have mentioned it several months ago.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> IM> It seems, that you have skipped the crucial part of my
>>>>>>>>>>>>>>>> message :(
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>     Gyan2> I will answer in the next email, thanks
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>        Gyan3> I agree this sentence is a bit confusing with
>>>>>>>>>>>>>> regards to label 0 and 2 use.  We are not using IPv4 explicit null value 0
>>>>>>>>>>>>>> at all in this draft.  So the conveying of the next hop and what the
>>>>>>>>>>>>>> sentence it talking about related to the IPv6 LSP egress PE signaling done
>>>>>>>>>>>>>> via the IPv6 explicit null label value 2 defined in RFC 4182 to use for
>>>>>>>>>>>>>> topmost label so the next hop of the  advertised IPv4 routes have an IPv6
>>>>>>>>>>>>>> next hop as defined according to RFC 8950 next hop encoding which is an
>>>>>>>>>>>>>> IPv6 labeled address per BGP LU RFC 8277 for the BOS IPv4 prefixes. So here
>>>>>>>>>>>>>>  we are talking about using label value 2 IPv6 explicit null to identify
>>>>>>>>>>>>>> the IPv4 routing context of the outgoing interface since the next hop is an
>>>>>>>>>>>>>> IPv6 next hop for the labeled IPv4 prefixes.  I will cleanup the wording.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 17. Section 4. "*4PE design MUST use "IPv6 Explicit Null
>>>>>>>>>>>>>>>>>> label" value 2 defined in [RFC4182] Pipe Diff-Serv Tunneling Model as
>>>>>>>>>>>>>>>>>> defined in [RFC3270]*". From this statement, I conclude
>>>>>>>>>>>>>>>>>> that the authors talk about an underlying transport (IPv6 LSP via BGP LU).
>>>>>>>>>>>>>>>>>> Why does the draft about a service mandate a label for transport? I don't
>>>>>>>>>>>>>>>>>> see anything wrong with arbitrary labels for underlying IPv6 LSPs either.
>>>>>>>>>>>>>>>>>> If you want to highlight that there should *not *be PHP
>>>>>>>>>>>>>>>>>> it does not mean there is only option is an explicit label. Some vendors
>>>>>>>>>>>>>>>>>> use arbitrary labels by default with an option to use a label of 2 instead.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>     Gyan> I agree most vendors use arbitrary label by
>>>>>>>>>>>>>>>>> default and an option to use explicit null.  As it’s an easy configuration
>>>>>>>>>>>>>>>>> change to use explicit null with its benefits why not mandate it with the
>>>>>>>>>>>>>>>>> benefits.  As well as solve issues with mix of arbitrary and explicit null
>>>>>>>>>>>>>>>>> usage.  I would like to highlight that there would not be PHP but AFAIK
>>>>>>>>>>>>>>>>> that can only be done if using explicit null. As well as explicit null pipe
>>>>>>>>>>>>>>>>> mode solves the MPLS QOS PHB EXP scheduling issue.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> IM> No, this can be done not only using the explicit null.
>>>>>>>>>>>>>>>> For example, Nokia SR OS allocates arbitrary labels by default for RSVP and
>>>>>>>>>>>>>>>> LDP LSPs. Penultimate routers in that case just swap one label to another
>>>>>>>>>>>>>>>> (our arbitrary one). Egress LER then handles the stack with the transport
>>>>>>>>>>>>>>>> label at the top that it allocated previously. But the difference between
>>>>>>>>>>>>>>>> an explicit label and an arbitrary one is this eLER can do many things with
>>>>>>>>>>>>>>>> the latter: allocate if for a table, for a prefix, for a next-hop address.
>>>>>>>>>>>>>>>> You can not do it with the single-valued label (0 or 2). The labels of 0 or
>>>>>>>>>>>>>>>> 2 are always tightened with their global contexts. Changing that is not
>>>>>>>>>>>>>>>> possible under this draft because it influences the whole MPLS paradigm.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>     Gyan2>   In the draft all I am concerned about is the
>>>>>>>>>>>>>>> transport topmost label IPv6 explicit null signaling so the PHP node
>>>>>>>>>>>>>>> preserves the transport label to prevent the IPv4 packets from being
>>>>>>>>>>>>>>> dropped at PHP node.  It sounds like Nokia by default for RSVP and LDP LSP
>>>>>>>>>>>>>>> does not do PHP by default on the PHP node PHP label 3 and uses arbitrary
>>>>>>>>>>>>>>> label as you mentioned.  Cisco, Juniper and most all vendors on the market
>>>>>>>>>>>>>>> do PHP by default.  Egress LER pops the entire stack of remaining labels
>>>>>>>>>>>>>>> regardless of topmost label explicit null signaling or PHP operation.
>>>>>>>>>>>>>>> Since the explicit versus arbitrary relates to the topmost transport label
>>>>>>>>>>>>>>> the behavior of what happens on the LER egress PE is identical popping the
>>>>>>>>>>>>>>> entire stack after which perform per VRF table lookup, per CE next hop or
>>>>>>>>>>>>>>> per prefix label allocation. I think what you are missing is RFC 4182
>>>>>>>>>>>>>>> updates RFC 3032 label stack so that explicit null 0 and 2 can be used for
>>>>>>>>>>>>>>> the transport label where previously was only valid for BOS label.  That is
>>>>>>>>>>>>>>> what I have been referring to using explicit null for topmost label and not
>>>>>>>>>>>>>>> the BOS label.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 18. Section 4. "*BGP/MPLS VPN [RFC4364] defines 3 label
>>>>>>>>>>>>>>>>>> allocation modes for Layer 3 VPN's...*" and later "*The
>>>>>>>>>>>>>>>>>> 4PE design provides the same operator flxeiblity as BGP/MPLS VPN [RFC4798],
>>>>>>>>>>>>>>>>>> 2 level label stack option using Per-CE label allocation mode where the
>>>>>>>>>>>>>>>>>> next hop is label so all prefixes associated with CE get the same label.
>>>>>>>>>>>>>>>>>> The 4PE design provides the same operator flxeiblity as BGP/MPLS VPN
>>>>>>>>>>>>>>>>>> [RFC4798], 2 level label stack option using Per-VRF label allocation mode
>>>>>>>>>>>>>>>>>> where all prefixes within a VRF get the same is label*".
>>>>>>>>>>>>>>>>>> I believe it is not possible with an explicit label for an IPv4 LSP either
>>>>>>>>>>>>>>>>>> because a single value cannot be attached to many different things at the
>>>>>>>>>>>>>>>>>> same time.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>     Gyan> The IPv4 labeled prefixes AFAIK would have a
>>>>>>>>>>>>>>>>> single label per CE or per VRF. Can you elaborate on why not possible?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> IM> Yes. We have a single label per VRF but we can't have a
>>>>>>>>>>>>>>>> single label per CE because there are possibly lots of CEs in a VRF. The
>>>>>>>>>>>>>>>> egress router doing a label lookup must understand what to do with every
>>>>>>>>>>>>>>>> label it allocated. With a per VRF label it does an IP lookup in a
>>>>>>>>>>>>>>>> corresponding VRF. With a per CE label it strips the label and sends
>>>>>>>>>>>>>>>> payload via the exact interface without any IP lookups. As you can see, you
>>>>>>>>>>>>>>>> can't bind a single value to many different interfaces (tasks).
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>    Gyan2> I think it’s actually the opposite that when using
>>>>>>>>>>>>>>> 6VPE or 4VPE you have VRF context but with 6PE or 4PE their is not many VRF
>>>>>>>>>>>>>>> context instances but we do have a single default VRF context so single
>>>>>>>>>>>>>>> label for the default VRF.  With per CE label allocation with 6VPE / 4VPE
>>>>>>>>>>>>>>> versus 6PE / 4PE I don’t see how it’s any different with per CE the label
>>>>>>>>>>>>>>> is stripped by the PE and the native packet payload is forwarded to the
>>>>>>>>>>>>>>> exact CE interface in this case it’s the default VRF many interfaces which
>>>>>>>>>>>>>>> with VPE you can have many interfaces as well - no different.  If per CE
>>>>>>>>>>>>>>> works for 6VPE / 4VPE it should work for 6PE / 4PE.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 19. Section 7.3.1. "*...the 4PE IPv4 BGP-LU labeled
>>>>>>>>>>>>>>>>>> Unicast RIB is not maintained on the ASBR*". I would
>>>>>>>>>>>>>>>>>> further elaborate on this point as these routes must not be installed in
>>>>>>>>>>>>>>>>>> the forwarding table as some vendors do it by default because it breaks the
>>>>>>>>>>>>>>>>>> whole idea of the Option B scenario. Only their labels must be installed
>>>>>>>>>>>>>>>>>> into LFIB. With the VPN-based option B there is no any danger because we do
>>>>>>>>>>>>>>>>>> not create VRFs on an ASBR, but with labeled unicast this is a possible
>>>>>>>>>>>>>>>>>> issue.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>    Gyan> 7.3.1 Opt-B I mentioned that labeled unicast RIB
>>>>>>>>>>>>>>>>> is maintained on ASBR but as you stated in the details is LFIB and not RIB
>>>>>>>>>>>>>>>>> agreed is more optimized as what some vendors do by default both RIB and
>>>>>>>>>>>>>>>>> LFIB. Agreed.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 20. Section 8. RFC 8950 describes the logic of how to
>>>>>>>>>>>>>>>>>> handle next-hop addresses with different lengths including the routes of
>>>>>>>>>>>>>>>>>> SAFI 4. Does this section bring something new?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>  Gyan>  It does not.  It’s just explicitly stating the
>>>>>>>>>>>>>>>>> next hop encoding used.  So this section could be deleted.  As the next hop
>>>>>>>>>>>>>>>>> encoding is critical I had added the section explicitly.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 21. I don't see any description of a scenario when some
>>>>>>>>>>>>>>>>>> vendors install specific routes in auxiliary tables for the sake of further
>>>>>>>>>>>>>>>>>> BGP NH resolution and consider them as LSPs. There should be a warning at
>>>>>>>>>>>>>>>>>> least.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>     Gyan> I can add that to security considerations
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Let's imagine a case where there are two or more BNG
>>>>>>>>>>>>>>>>>> routes residing in a single PoP. The core network is single-stack IPv6.
>>>>>>>>>>>>>>>>>> BNGs are dual-stacked because we are still supporting some legacy
>>>>>>>>>>>>>>>>>> connections for v4 eyeballs. PE routes that are connected to these BNGs are
>>>>>>>>>>>>>>>>>> dual-stacked too (you can consider a BNG as a CE router). Now we want to
>>>>>>>>>>>>>>>>>> distribute tons of /32 among PEs because the BNGs share the same IPv4
>>>>>>>>>>>>>>>>>> subnets. That facilitates more optimal allocation of the depleting IPv4
>>>>>>>>>>>>>>>>>> address space and is a pretty common case in the SP world. So, if the PE
>>>>>>>>>>>>>>>>>> routers distribute these specifics by mistake or by design (let's say, to
>>>>>>>>>>>>>>>>>> other PEs of this PoP for CG-NAT purposes) as IPv4 labeled unicast routes.
>>>>>>>>>>>>>>>>>> Possible receivers of these routes may consider them viable LSPs. Imagine
>>>>>>>>>>>>>>>>>> of hundreds thousands of such prefixes. That's actually another reason why
>>>>>>>>>>>>>>>>>> labeled unicast is not good at this task.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>     Gyan> Understood I can add to the security
>>>>>>>>>>>>>>>>> considerations section
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Thank you in advance.
>>>>>>>>>>>>>>>>>> Igor.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> чт, 27 июл. 2023 г. в 19:50, Gyan Mishra <
>>>>>>>>>>>>>>>>>> hayabusagsm@gmail.com>:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> All
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> I have updated the IDR draft below updates as reviewed
>>>>>>>>>>>>>>>>>>> during our IETF  117 meeting.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> https://datatracker.ietf.org/doc/draft-mishra-idr-v4-islands-v6-core-4pe/05/
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> --
>
> <http://www.verizon.com/>
>
> *Gyan Mishra*
>
> *Network Solutions A**rchitect *
>
> *Email gyan.s.mishra@verizon.com <gyan.s.mishra@verizon.com>*
>
>
>
> *M 301 502-1347*
>
>