Re: [mpls] MPLS-RT review for draft-rathi-mpls-egress-tlv-for-nil-fec

Italo Busi <> Mon, 19 July 2021 18:11 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 188923A2C68; Mon, 19 Jul 2021 11:11:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id MMs3V4XljZ3s; Mon, 19 Jul 2021 11:11:07 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 64BA73A2CDA; Mon, 19 Jul 2021 11:11:05 -0700 (PDT)
Received: from (unknown []) by (SkyGuard) with ESMTP id 4GT8kL4Kqrz6H7Zb; Tue, 20 Jul 2021 01:59:38 +0800 (CST)
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Mon, 19 Jul 2021 20:11:03 +0200
Received: from ([]) by ([]) with mapi id 15.01.2176.012; Mon, 19 Jul 2021 20:11:03 +0200
From: Italo Busi <>
To: 'Tarek Saad' <>, Deepti Rathi <>
CC: "" <>, "" <>, "" <>
Thread-Topic: MPLS-RT review for draft-rathi-mpls-egress-tlv-for-nil-fec
Thread-Index: AddhI9L1yOOS4MxaRt24LmA/Qqe0iAAl+X+wAGq/JjAABL76EANyqPmgAab3HmkBOM45AA==
Date: Mon, 19 Jul 2021 18:11:03 +0000
Message-ID: <>
References: <> <> <> <>, <> <>
In-Reply-To: <>
Accept-Language: it-IT, en-US
Content-Language: en-US
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_d7664cfdac204102a2c8278d765dde72huaweicom_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <>
Subject: Re: [mpls] MPLS-RT review for draft-rathi-mpls-egress-tlv-for-nil-fec
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Multi-Protocol Label Switching WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 19 Jul 2021 18:11:14 -0000

Hi Tarek,

My major concerns have been addressed with the latest update of the draft so I think the draft is now ready for WG adoption

I just have just sent a couple of follow-up comments which can be addressed either before or after WG adoption


From: Tarek Saad []
Sent: martedì 13 luglio 2021 14:13
To: Deepti Rathi <>; Italo Busi <>
Subject: Re: MPLS-RT review for draft-rathi-mpls-egress-tlv-for-nil-fec

Thanks Italo for the review and comments.
Thanks Deepti and authors for trying to address them.

Italo/authors, are there any outstanding issues that still need to be addressed?

Tarek (as mpls WG Chair)

On 7/4/21, 10:21 PM, "Deepti Rathi" <<>> wrote:

Thanks Italo for the comments.

I have posted the new version of draft taking care of all the review comments.



Juniper Business Use Only
From: Deepti Rathi <<>>
Sent: Thursday, June 17, 2021 7:08 PM
To: Italo Busi <<>>
Subject: Re: MPLS-RT review for draft-rathi-mpls-egress-tlv-for-nil-fec

Hi Italo,
Please find my comments inline.
I will update draft for:

1.       why "NIL FEC + EGRESS TLV" and not Generic IPV4/IPV6 FEC.

2.       Backward compatibility.


Juniper Business Use Only
From: mpls <<>> On Behalf Of Italo Busi
Sent: Monday, June 14, 2021 7:26 PM
To: '' <<>>
Subject: [mpls] MPLS-RT review for draft-rathi-mpls-egress-tlv-for-nil-fec

[External Email. Be cautious of content]

Hi all,

I have been selected as one of the  MPLS-RT reviewers of draft-rathi-mpls-egress-tlv-for-nil-fec-04

>>IMHO, being able to use LSP Ping/Traceroute perform to validate only the data path and not the control plane state makes sense but I think that the draft requires more information about the problem that >>it is trying to address and why existing solutions are not suitable
NIL FEC is used to traverse the path without validation for cases where the FEC is not defined or routers are not upgraded to support the new FECs (like newer features, explicit-null, router-alert etc).
But it is a very powerful tool to check any combination of segments on any data path.
Since it does not carry any information to identify the intended egress/destination,

n  Mis-forwarding of the packet is possible

n  Not possible to figure out mis-configuration of label stack
But in any case it will always return success even though egress/destination is not the intended one which is not desired.
To overcome this and to provide minimal validation, EGRESS TLV is added in the packet. This will help to do egress/destination validation.
NIL FEC processing will be same as defined in RFC 8029. This draft is for addition of EGRESS TLV as extension to NIL FEC for path egress/destination validation.

>Let me try to clarify my confusion after having read the draft

>Unless I am missing something, section 4.4.1 of RFC8029 already provides support for checking only the data path and not the control plane state:

>  If the outermost FEC of the Target FEC stack is the Nil FEC, then the
> node MUST skip the Target FEC validation completely.

>The draft mention some challenges with the current definition, but it seems describing only one potential issue:

>   ... When router in the label-stack path
>   receives MPLS ping/traceroute packets, there is no definite way to
>   decide on whether its egress or transit since Nil FEC does not carry
>   any information.

>However, I am not sure about this issue: looking at the example in the draft, my understanding is that R7 will reply with code 3 while, in traceroute, the intermediate nodes will reply with code 8.

>Reading the procedure in section 4.2, I am wondering whether the real intention is to be able to validate the prefix X in R7, rather than the SR path toward R7.

>However, in this case, it is not clear why using a FEC for the prefix X instead of the Nil FEC is not suitable.

[Deepti]: The real intention is to reach the correct egress/destination node.
The details of generic FEC and validation procedures are not very detailed in the RFC 8029.
The use-case mostly specifies inter-AS VPNs as the motivation.

Certain aspects of Segment Routing such as anycast SIDs required clear guideline on how the validation procedure should work.
Also Generic FEC may not be widely supported and if transit routers are not upgraded to support validation of generic FEC, traceroute may fail.
So instead of adding such clarifications to generic FEC, we went with new EGRESS TLV in Nil FEC.
Its an optional TLV so the procedures will work fine even if transit routers are not upgraded.
While we clearly specify the processing of egress tlv so that all SR cases are well specified.

Since explicit path can be created using node-sid, adj-sid, binding-sid, anycast-sids etc. EGRESS TLV prefix will be derived from path egress/destination and not based on labels used in the path to reach the destination.

I will update introduction section of draft with this comparison.

>>I also think that section 5 requires more details about how backward compatibility is achieved. What is the behavior of a node that does not support this solution when it receives the EGRESS TLV?

Backward compatibility on egress-node:
On egress/destination, it will ignore EGRESS TLV and use current NIL-FEC procedure with return code 3 but egress validation will not be done (same as RFC 8029). So we wont know for sure if packet has reached the correct path egress.

Backward compatibility on transit-node:
If the transit node doesn't support, it will use current NIL-FEC procedure and send return code of 8.

I will add section in draft for backward compatibility.