Re: [mpls] [bess] draft-rosen-idr-rfc3107bis-00

<> Thu, 14 January 2016 15:18 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 98FA11B356B; Thu, 14 Jan 2016 07:18:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id d1_xgDGCiWUN; Thu, 14 Jan 2016 07:18:38 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 408BB1B3570; Thu, 14 Jan 2016 07:18:36 -0800 (PST)
Received: from (unknown [xx.xx.xx.3]) by (ESMTP service) with ESMTP id B6F4C2642F5; Thu, 14 Jan 2016 16:18:34 +0100 (CET)
Received: from Exchangemail-eme2.itn.ftgroup (unknown []) by (ESMTP service) with ESMTP id 914E14C074; Thu, 14 Jan 2016 16:18:34 +0100 (CET)
Received: from OPEXCLILM21.corporate.adroot.infra.ftgroup ([fe80::e92a:c932:907e:8f06]) by OPEXCLILM23.corporate.adroot.infra.ftgroup ([fe80::787e:db0c:23c4:71b3%19]) with mapi id 14.03.0279.002; Thu, 14 Jan 2016 16:18:34 +0100
To: Eric C Rosen <>
Thread-Topic: [bess] draft-rosen-idr-rfc3107bis-00
Thread-Index: AQHRTi3fSdezVI1uUky3rzngjkewoJ76y2xw
Date: Thu, 14 Jan 2016 15:18:33 +0000
Message-ID: <20421_1452784714_5697BC4A_20421_2179_1_53C29892C857584299CBF5D05346208A0F791AE7@OPEXCLILM21.corporate.adroot.infra.ftgroup>
References: <>
In-Reply-To: <>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
x-originating-ip: []
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-PMX-Version:, Antispam-Engine:, Antispam-Data: 2016.1.14.150317
Archived-At: <>
Cc: "" <>, BESS <>, "" <>
Subject: Re: [mpls] [bess] draft-rosen-idr-rfc3107bis-00
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Multi-Protocol Label Switching WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 14 Jan 2016 15:18:41 -0000

Hi Eric,

Thanks for the draft. I read it and it looks good and useful to me.
I have mostly 1 comment:

> - RFC 3107 provides an encoding that allows BGP to assign multiple labels

Upfront, the current issue is that implementations, which claim compliance with RFC 3107, are just non-compliant. So the draft is proposing to change the specification to make such implementations compliant, while another option would be to fix implementation (to be compliant with the RFC they claim to support).
I don't really expect that we'll agree on it, but I had to make the comment nonetheless. ;-)
That being said,

The proposed capability is a good idea to improve interoperability. Thanks.

The main issue I have, is that this draft is not backward compatible with RFC 3107 (as a RFC 3107 speaker will never notice that its peer has not send the new capability, and may still send multiple labels). Plus in case of error due to this incompatibility, the error handling behavior is likely to be "BGP session shutdown" (as the NLRI "cannot" be correctly parsed) which is disruptive. Plus the implementation A not supporting multiple labels, will claim that the implementation B supporting multiple labels is "not compliant" with rfc3107bis, while I would rather argue that this is implementation A which is not compliant with RFC 3107.

I'd propose one change:
- Capability means: I don't support receiving multiple labels, hence you SHOULD not send that to me.
- Even if the capability is not advertised by both peers, and hence a single label is expected, all implementations MUST check that the "S" bit (in this first label) is set to 1. If the bit is cleared, the Prefix MUST be identified as per RFC 3107/this document and treated as withdraw as defined in RFC 7606.

This means more work for rfc3107bis speakers, but we can't ask existing speakers to do the job. Especially since they were compliant with RFC 3107.

Alternatively, the capability could be extended to carry two meanings: I support rfc3107bis, I support multiple labels. This would allow a rfc3107bis speaker to refuse the BGP connection with RFC 3107 speakers. But this is much less convenient.

Plus very minor comments
- From an editorial standpoint, I'd personally favor removing §2.2 and saying in 2.3(or elsewhere) that if the capability is not exchanged, a single label may be encoded. (IMHO duplicating the text is less easy to read and more error prone. And I believe this would be enough to address your point).
- In Figure 2 (§2.3), 2 labels are indicated. Do you think there is a need to indicate which one is the first (Label 1) and which one is the k th (Label k). Indeed, the order of the labels is significant when the router will need to push them in the dataplane. Or a sentence could be added to make this explicit.
- In §4, there is a possible case which is not described:
S1 receives L11, L12,... L1k
S1 sends      L21, L12,... L1k
S1 programs in the data plane: L21 swap L11
Compared to sending a single label (L21), S1 avoids having to push k labels in its dataplane, which it may be incapable of.
- In §4
"While this may be useful in certain scenarios, it may provide unintended results in other scenarios." I fail to see when this can be useful as N1 or downstream LSR will receive packets with labels there are not aware of (L22...L2k). Out of curiosity, I'm be curious to know the useful scenario that you have in mind.
- in §5 " It is possible that a BGP speaker will receive both a SAFI-1 route
   for prefix P and a SAFI-4 route for prefix P.  The significance of
   this is a matter of local policy."
For 6PE (rfc4798), may be this should not be a local policy but be specified as a priori SAFI-1 and SAFI-4 prefix should be comparable. Ideally rfc4798 could have specified this but I haven't check if it's done. Alternatively §5 could reference this case.
(Same point for propagation between SAFI-1 and SAFI-4)

Thanks again for the draft,
-- Bruno

> From: BESS [] On Behalf Of Eric C Rosen
> Subject: [bess] draft-rosen-idr-rfc3107bis-00
> Folks,
> Pardon the cross-post, but I think this may be of interest to all three
> of the IDR, MPLS, and BESS WGs.
> I've posted draft-rosen-idr-rfc3107bis-00 ("Using BGP to Bind MPLS
> Labels to Address Prefixes"), which is intended of course to obsolete
> RFC 3107 ("Carrying Label Information in BGP").  (While I put "idr" in
> the name of the draft, it's not completely obvious which WG should own
> this draft (assuming it progresses)).
> The purpose of this draft is the following:
> - It fixes a number of errors in RFC3107.  It attempts to do so in a way
> that is compatible with existing implementations.
> - It removes the material about "Advertising Multiple Routes to a
> Destination".  This is a feature that was never implemented as
> specified, and the text about it just causes confusion.  The
> functionality that this feature was intended to provide can now be
> better provided by using add-paths; this is discussed in the draft.
> - It is explicit about its applicability to SAFI 128 as well as to SAFI 4.
> - It clarifies the procedures for withdrawing and replacing label bindings.
> - It discusses the relationship between SAFI-1 routes and SAFI-4 routes,
> which is very unclear in RFC3107.  Different implementations have
> treated the SAFI-1/SAFI-4 interactions differently, and the draft
> discusses these differences.  However, as the draft is not intended to
> favor any one implementation over another, it can't do much more than
> point out some of the differences among implementations.
> - RFC 3107 provides an encoding that allows BGP to assign multiple
> labels (i.e., a label stack) to a given prefix.  However, it provides no
> semantics for this, and this feature has been only rarely implemented.
> In fact, it is believed that some implementations will not parse the
> Updates correctly if they encode multiple labels in the NLRI.  Therefore
> the draft only allows a label stack to be assigned to a given prefix if
> a new Capability has been exchanged.  It also discusses the semantics of
> assigning a label stack, and gives some examples of how this might be used.
> I hope that those of you who are interested in this topic will provide
> your comments.  I've tried to make the draft compatible with existing
> implementations and deployments, so if anyone sees anything that
> negatively impacts an existing implementation, please comment on that.
> I also removed most of the text that explains why it is a good idea to
> use BGP to distribute label bindings.  That text was important in the
> '90s, but now seems rather out of date.  However, I would welcome
> comments on whether an updated "motivation/positioning" section should
> be added.
> Thanks,
> Eric
> _______________________________________________
> BESS mailing list


Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.

This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.