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

"Carlos Pignataro (cpignata)" <> Tue, 12 April 2016 00:19 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 688E612F558; Mon, 11 Apr 2016 17:19:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -15.517
X-Spam-Status: No, score=-15.517 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.996, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 7cLnZsB3-SxR; Mon, 11 Apr 2016 17:19:05 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 245D912F542; Mon, 11 Apr 2016 17:19:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;;; l=3939; q=dns/txt; s=iport; t=1460420344; x=1461629944; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=JFjG4kU9+w9VEpdD8+CfcftwNlAMqEQ23V0nWObETaU=; b=lzuzikXsMmfWtf2FDj4HeCY+Yd7oFKxKUfGR1k4yPzXrdaVBWStQY80/ MqAeG8TIAFU7mKB5DY8yWhJ3EepM/VUZavX+kOjXHgfSzEj2N/ZjAXSzp 9t7hMuctdMGCnc3ZataHGKTOxeqMsSGl1IZQbEdPGhcTqhQ2QGadr4IN3 U=;
X-Files: signature.asc : 841
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="5.24,471,1454976000"; d="asc'?scan'208";a="260139644"
Received: from ([]) by with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Apr 2016 00:19:03 +0000
Received: from ( []) by (8.14.5/8.14.5) with ESMTP id u3C0J2cX002826 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 12 Apr 2016 00:19:03 GMT
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.1104.5; Mon, 11 Apr 2016 20:19:01 -0400
Received: from ([]) by ([]) with mapi id 15.00.1104.009; Mon, 11 Apr 2016 20:19:01 -0400
From: "Carlos Pignataro (cpignata)" <>
To: Eric C Rosen <>
Thread-Topic: [sfc] [mpls] The first nibble issue associated with MPLS encapsulation
Thread-Index: AQHRkPR7Ow6l9wh8WUKpFJXl+MwAqJ+AqQ4A///PiXuAAHRmgP//0LOAgAA52ICABAmLAIAAGlYAgACnj4A=
Date: Tue, 12 Apr 2016 00:19:01 +0000
Message-ID: <>
References: <> <> <> <> <> <> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: []
Content-Type: multipart/signed; boundary="Apple-Mail=_0CE6BADB-12FF-46DB-920E-1F70601B7917"; protocol="application/pgp-signature"; micalg="pgp-sha256"
MIME-Version: 1.0
Archived-At: <>
Cc: "" <>, "" <>, "Dr. Tony Przygienda" <>
Subject: Re: [mpls] [sfc] 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: Tue, 12 Apr 2016 00:19:09 -0000

> On Apr 11, 2016, at 10:19 AM, Eric C Rosen <> wrote:
> (Removed sfc from the cc-list, this seems out of scope for that WG.)
> In designing the BIER header, the BIER WG is free to mandate any value it chooses in the first nibble.  These values do not come from a "first nibble" registry.

I absolutely agree with this, in particular the comment about a registry.


> It seems prudent to put a value like 5 for the following reasons:

… the value (significance, merit) of such value (magnitude, number) seems, as described below, minimally incremental.

> - If a BIER packet is being parsed by an off-line tool, this is a good hint (though just a hint) that the packet is actually a BIER packet;

The format of a BIER packet have enough constrained or self-defining fields, that an off-line parsing tool like Wireshark can apply enough heuristics to figure it out, without the 0x5.

> - If a BIER packet is traveling through an MPLS tunnel, and it traverses a node that does its MPLS load splitting by guessing at the type of the payload, then this is  a good hint that the MPLS payload is not IPv4, IPv6, or PW.

I understand why a mid-point LSR might want to not alias the MPLS payload with IPv4 or IPv6, to prevent mis-hashing in the LB. Why would a node be interested in knowing the payload is not a PW? What would it do differently? [It is interesting that the hint is, as described, to nudge a node that the packet is *not* something, instead of the packet *is* BIER.]

> This strategy does incur a risk.  Suppose IPv5 gets designed, implemented, and deployed, and folks start to deploy hardware that does MPLS load balancing by inspecting the IPv5 headers of the MPLS payloads.  If a BIER packet is traversing an MPLS tunnel, inappropriate load splitting may occur if the hardware thinks the payload is IPv5 rather than BIER.
> This particular risk doesn't seem very significant to me.

I agree that risk is quite insignificant (null in practice). The real risk I believe is if some other application over MPLS uses 0x5 in the first nibble, because they do not want to be confused with IP either, and they do not like 0x0 or 0x1.

> Thus I don't think there's anything here that needs fixing.

Frankly do not have strong opinions either way. I do believe, however, that the rational for using 0x5 as the first nibble is underspecified (or at least under-documented).


— Carlos.