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

Loa Andersson <> Thu, 14 April 2016 15:12 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id B151612D889; Thu, 14 Apr 2016 08:12:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.896
X-Spam-Status: No, score=-2.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.996] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id LMHncxPoSfR5; Thu, 14 Apr 2016 08:12:07 -0700 (PDT)
Received: from ( []) (using TLSv1.1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 0239B12DAAD; Thu, 14 Apr 2016 08:12:03 -0700 (PDT)
Received: from [] (unknown []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: by (Postfix) with ESMTPSA id 4AD81180156F; Thu, 14 Apr 2016 17:11:59 +0200 (CEST)
To: "Nagendra Kumar Nainar (naikumar)" <>, Eric C Rosen <>, Alexander Vainshtein <>, Stewart Bryant <>
References: <> <> <> <> <> <> <> <> <> <> <> <>
From: Loa Andersson <>
Message-ID: <>
Date: Thu, 14 Apr 2016 23:11:47 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
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 15:12:10 -0000


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