Re: [mpls] [Bier] [bier] The first nibble issue associated with MPLS encapsulation

Gregory Mirsky <> Thu, 14 April 2016 23:50 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id BE07912D662; Thu, 14 Apr 2016 16:50:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.202
X-Spam-Status: No, score=-4.202 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id M86YBvoSSXYW; Thu, 14 Apr 2016 16:50:35 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 9920812D18E; Thu, 14 Apr 2016 16:50:34 -0700 (PDT)
X-AuditID: c6180641-f796f6d000000e1e-e7-57102ca1ee06
Received: from (Unknown_Domain []) by (Symantec Mail Security) with SMTP id 86.92.03614.1AC20175; Fri, 15 Apr 2016 01:49:53 +0200 (CEST)
Received: from ([]) by ([]) with mapi id 14.03.0248.002; Thu, 14 Apr 2016 19:50:33 -0400
From: Gregory Mirsky <>
To: Loa Andersson <>, "Nagendra Kumar Nainar (naikumar)" <>, Eric C Rosen <>, Alexander Vainshtein <>, Stewart Bryant <>
Thread-Topic: [Bier] [mpls] [bier] The first nibble issue associated with MPLS encapsulation
Date: Thu, 14 Apr 2016 23:50:32 +0000
Message-ID: <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
x-originating-ip: []
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrBIsWRmVeSWpSXmKPExsUyuXSPt+5CHYFwgxnTBC2mbv3AbLF0xh4m i3UbgKx/c+cwW9xaupLV4vXEqWwWpx4kOrB7TPm9kdVj07/jjB47Z91l91iy5CeTx/Wmq+we s6a3sQWwRXHZpKTmZJalFunbJXBlXGz+zFzwXL1i+YGL7A2MXQpdjJwcEgImEgv2H2CGsMUk LtxbzwZiCwkcZZR41F7RxcgFZC9nlOjYswwswSZgJPFiYw87iC0i8JBR4vUDPhCbWcBFYnP/ UbC4sECsxPnJi6Bq4iSmHn7ADGE7SXzbtZkVxGYRUJWYdxNiDq+Ar8TM35uZIZbtY5VYfHMC WIITqGjHvQ4WEJsR6Lrvp9YwQSwTl7j1ZD4TxNUCEkv2nIf6QFTi5eN/rBC2osS+/unsEPV6 EjemTmGDsLUlli18zQyxWFDi5MwnLBMYxWYhGTsLScssJC2zkLQsYGRZxchRWlyQk5tuZLiJ ERh/xyTYHHcw7u31PMQowMGoxMObsIg/XIg1say4MvcQowQHs5IIb4K6QLgQb0piZVVqUX58 UWlOavEhRmkOFiVxXu/If2FCAumJJanZqakFqUUwWSYOTqkGxrVT2g9P7vi1dtvloCO8v5xP iD64Je9QGT2H7XdFfkXY6191L3ZMi2pItJprrfdRVCaoWWrixtsH7y8R3+G8LW7rn+/lJWeP /nqVu2Txk0myy7fvzNixd/d5YZ6WOrX2rcsuTBJf5dW3ufPavruHo7/MnnvLlu310sikWylB EZWHu18IFn/6Me+6EktxRqKhFnNRcSIA52VvhrsCAAA=
Archived-At: <>
Cc: "" <>, "" <>
Subject: Re: [mpls] [Bier] [bier] The first nibble issue associated with MPLS encapsulation
X-Mailman-Version: 2.1.17
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 Apr 2016 23:50:38 -0000

Hi Loa, et. al,
assuming that deployed nodes understand some, at least 0x04 and 0x06, values of the first nibble, wouldn't it be sufficient to define one new value as None-of-the-Above? Though we're still exposed to Ethernet PW without CW case.


-----Original Message-----
From: BIER [] On Behalf Of Loa Andersson
Sent: Thursday, April 14, 2016 8:12 AM
To: Nagendra Kumar Nainar (naikumar); Eric C Rosen; Alexander Vainshtein; Stewart Bryant
Subject: Re: [Bier] [mpls] [bier] The first nibble issue associated with MPLS encapsulation


The IANA registry you refer to is the IP Version numbers

Please note that this registry does not globally define what needs to be in the first nibble of a packet carried over mpls, it the payload is IP you are correct.

If the payload is e.g. a PW then 0x0 in the first nibble of the payload indicates that it is PW the first nibble refer to to the PWMCW (Pseudowire MPLS Control Word), if the first nibble is 0x1 it tells you that this packet belongs to GACh.


On 2016-04-14 22:41, Nagendra Kumar Nainar (naikumar) wrote:
> Hi,
> Per IANA registry, 0-1 are ³Reserved² and so is not strictly assigned 
> with PW. Something like a modified CW beneath LSE?. Further, BIER is 
> hop-by-hop lookup based. So I think we don¹t need to include this 
> always. Instead, we could conditionally include this, if the next BFR 
> is tunneled (not directly connected).
> The receiving node will use the label to identify the payload/FEC. So 
> I think, the presence of modified CW should not confuse it with PW.
> Thanks,
> Nagendra
> On 4/14/16, 9:20 AM, "mpls on behalf of Eric C Rosen"
> < on behalf of> wrote:
>> On 4/14/2016 6:06 AM, Alexander Vainshtein wrote:
>>> Stewart and all,
>>> I concur with Stewart that there is a strong case for 0 in the first 
>>> nibble for all non-IP flows.
>>> As for the need for sub-typing:
>>> AFAIK quite a few implementations (including some HW-based packet
>>> processors) treat 0 in the first nibble after the label stack as an 
>>> indication of an Ethernet PW.
>>> Some of them go as far as to hash on the assumed L2 headers for ECMP.
>>> This causes serious problems, e.g., with the TDM PWs that could be 
>>> reordered if handled by such packet processors in transit LSRs.
>>> This makes quite a case for sub-typing IMO regardless of BIER.
>>> At the same time, it seems that all the bits in CW structure are 
>>> used - at least for some PW types in some cases.
>> It seems to me that Sasha's reasoning supports the conclusion that it 
>> is best to avoid 0 in the first nibble (even if this is not the 
>> conclusion he drew!)  I don't think sub-typing is a solution, because 
>> it doesn't offer any protection against the behavior of existing hardware.
>> On 4/14/2016 5:31 AM, Stewart Bryant wrote:
>>> The nibble value  is recorded in the IP types registry and any wish 
>>> to take another value really needs to be discussed with the INT 
>>> area.
>> Are you referring to the IP Version Number registry?  (I am not aware of
>> an "IP types registry".)   We're not asking for any modification to
>> that, since we're not doing another version of IP. I don't see any 
>> need to get into  one of those long and non-productive arguments that 
>> the INT area seems to relish.
>> On 4/13/2016 11:07 PM, Xuxiaohu wrote:
>>> In fact, there is an attempt to have a registry for the first nibble 
>>> (a.k.a., MPLS payload type field).
>> Hopefully that attempt won't succeed!
>> On 4/14/2016 7:06 AM, Loa Andersson wrote:
>>> While I can live with 0x0000, 0x0010 or 0x0101, RFC 4928 actually says:
>>>     It is REQUIRED, however, that applications depend upon in-order
>>>     packet delivery restrict the first nibble values to 0x0 and 0x1.
>>> If that is what we want for bier, there is a case to use 0x0 or 0x1 
>>> for
>>> bier-
>> Strictly speaking, RFC 4928 needs to be updated, as the reasoning 
>> given there does not really support the above "requirement".  But the 
>> effort to do that hardly seems worthwhile.  RFC 4928 already makes 
>> clear that the above requirement is protecting against the risk that 
>> IPv5 ECMP will affect some MPLS packets inappropriately. No one seems 
>> to think that that is a real risk.
>> _______________________________________________
>> mpls mailing list
> _______________________________________________
> BIER mailing list

BIER mailing list