Re: [mpls] draft-fang-mpls-label-forwarding-no-swap - how much does it really save?

Alexander Vainshtein <> Fri, 24 July 2015 08:31 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id B9B4B1A019B for <>; Fri, 24 Jul 2015 01:31:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id NsZNaYvgEg1W for <>; Fri, 24 Jul 2015 01:31:28 -0700 (PDT)
Received: from ( [IPv6:2a01:111:f400:fe04::783]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 006421A19FA for <>; Fri, 24 Jul 2015 01:31:27 -0700 (PDT)
Received: from ( by ( with Microsoft SMTP Server (TLS) id; Fri, 24 Jul 2015 08:31:10 +0000
Received: from ([]) by ([]) with mapi id 15.01.0219.018; Fri, 24 Jul 2015 08:31:10 +0000
From: Alexander Vainshtein <>
To: Andrew Qu <>, Robert Raszuk <>, Shahram Davari <>
Thread-Topic: [mpls] draft-fang-mpls-label-forwarding-no-swap - how much does it really save?
Thread-Index: AQHQxesXRLWhMNTKB0OPv6fwBySQ6Q==
Date: Fri, 24 Jul 2015 08:31:10 +0000
Message-ID: <>
Accept-Language: en-US
Content-Language: en-US
x-mailer: Infraware POLARIS Mobile Mailer v2.5
authentication-results:; dkim=none (message not signed) header.d=none;
x-originating-ip: []
x-microsoft-exchange-diagnostics: 1; DB3PR03MB0777; 5:73RyqZa01k/2V/vXJgB5vUm1Qwcqq2fxK2zBy7R+xLxwvS13DR6oRxRHg4whF1MHTTfZv8SgB1upyyJf8TRxOrd7GdgEoDlFc80EabWx3E2+Uz+hBicvdb4ePGlNLxgvbCmDDZhqPk6BHQt6+CPsvA==; 24:/3CQMFMZJlUmnE0YENvD1goODgfp/ira3GM9L+VZoRg0TIrMvXV/BkN4MkYsrtwfGLu68Fsn3hNb48SE+hSgvYmkf7NHQrl4U7F4YmCzVao=; 20:sxbtptpMBpBnkHL2WW/69juoA6Xps5Ubq3KETwcwXzeWAnKNN8CL3xQz4oZUiYdyJ+tDhgZM8aiZYvQc86SaaA==
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB3PR03MB0777;
db3pr03mb0777: X-MS-Exchange-Organization-RulesExecuted
x-microsoft-antispam-prvs: <>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:DB3PR03MB0777; BCL:0; PCL:0; RULEID:; SRVR:DB3PR03MB0777;
x-forefront-prvs: 0647963F84
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(164054003)(479174004)(24454002)(377454003)(53754006)(16236675004)(74316001)(50226001)(122556002)(106116001)(230783001)(189998001)(66066001)(5001770100001)(5890100001)(19580405001)(5001960100002)(5002640100001)(19580395003)(19625215002)(19617315012)(561944003)(5001920100001)(77156002)(40100003)(76576001)(33656002)(2900100001)(2656002)(50986999)(15975445007)(77096005)(92566002)(5003600100002)(46102003)(102836002)(62966003)(86362001)(87936001); DIR:OUT; SFP:1102; SCL:1; SRVR:DB3PR03MB0777;; FPR:; SPF:None; MLV:sfv; LANG:en;
spamdiagnosticoutput: 1:23
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_DB3PR03MB07809DC48482C67B5215160F9D810DB3PR03MB0780eurp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jul 2015 08:31:10.1347 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 2c514a61-08de-4519-b4c0-921fef62c42a
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR03MB0777
Archived-At: <>
Cc: "" <>
Subject: Re: [mpls] draft-fang-mpls-label-forwarding-no-swap - how much does it really save?
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: Fri, 24 Jul 2015 08:31:32 -0000


Inline below.

Thumb typed on my LG,

------ Original message ------
From: Andrew Qu
Date: 24/07/2015 11:07
To: Alexander Vainshtein;Robert Raszuk;Shahram Davari;
Subject:RE: [mpls] draft-fang-mpls-label-forwarding-no-swap - how much does it really save?

Hi Sasha,

My comments in lines…

From: mpls [] On Behalf Of Alexander Vainshtein
Sent: Friday, July 24, 2015 7:26 AM
To: Robert Raszuk; Shahram Davari
Subject: Re: [mpls] draft-fang-mpls-label-forwarding-no-swap - how much does it really save?

Hi all,

Please note that CONTINUE in SPRING is:

1. A DP-agnostic primitive

2. *Implemented* as SWAP instruction with MPLS DP.

[Andrew]  You are contradicting with 1) and 2).

[[Sasha]] SPRING is supposed to work over IPv6 DP as well.

CONTINUE over this DP simply means retaining the same extension header and forwarding according to nirmal IPv6 processing,

With “CONTINUE” defined in SR draft,  for NEW ASIC to be designed,

Why should I still use “SWAP” to achieve it?

[[ Sasha]]Because the draft in question explicitly defines that CONTINUE is implemented as SWAP? The SPRING drafts mention that it could be SWAP to the same label, but no more than that. They do NOT require NO-SWAP anywhere.

Considering that I might

Have good saving in precious on-board memory for the ASIC ?

[[Sasha]]As alreadyvdiscussed on this thread, this is a local implementation matter that does not require any standartization.

You can suggest that using SWAP, however you said CONTINUE is DP-agnostic, then

If I do it different, I am still standard compliant. RIGHT?

[[Sasha]] If you ask me the answer is NO. The real question an ASIC engineer should ask is, IMHO:

"Do I have to support SWAP, or could I restrict myself to just NO-SWAP"?

From my POV the answer is obvious: you cannot restrict your design to just NO-SWAP.

Again,  that is exactly my point,  SWAP is NOT the same as “NO_SWAP”.  Once you put

The wording out there,  it WILL have different impact.



So claiming equivalence of CONTINUE and NO-SWAP seems to be inaccurate IMO.

As for global labels (in SDN, MPLS-TP or any other technology) - this definitely looks to me like a very bad idea for networks comprised of devices that support different label ranges. From my experience these scenarios have been encountered in real MPLS-TP deployments  and resulted in eventually dropping the "simple" solution as live networks have been extended with new NEs supporting a more narrow label space than the original ones.

Adding a new forwarding primitive to MPLS architecture (yet another argument on this thread) immediately raises the question:

Is support of the new primitive mandatory?

If it is not (and this is clearly the case for NO-SWAP), then why should we bother? Occam's rasor cuts this off IMHO.

My personal bottom line: this is a strictly NO GO proposal.

My 2c.

Thumb typed on my LG,

------ Original message ------
From: Robert Raszuk
Date: 24/07/2015 00:22
To: Shahram Davari;
Subject:Re: [mpls] draft-fang-mpls-label-forwarding-no-swap - how much does it really save?

The point is that new control plane is already defined. In fact we already have two :)

As I mentioned in my first mail to the list the concept of NO_SWAP/CONTINUE is common to both H-SDN and SEGMENT ROUTING architectures.



On Thu, Jul 23, 2015 at 11:16 PM, Shahram Davari  <<>> wrote:

So instead of calling it no-swap probably you should call it global label or so, and then define new control plane for it. But seems the data-pane behavior does not change and existing hardware can support this global label.  So maybe you just need new control plane.


From:<> [<>] On Behalf Of Robert Raszuk
Sent: Thursday, July 23, 2015 2:12 PM
To: Shahram Davari
Cc: Eric C Rosen;<>;<>

Subject: Re: [mpls] draft-fang-mpls-label-forwarding-no-swap - how much does it really save?

Hi Shahram,

Labels which are non of a local significance can be distributed by flooding protocols extensions (ISIS, OSPF) or by direct p2p sessions (BGP 3107, sessions from the controller, XMPP etc ...)

The important part is that the actual forwarding is computed recursively or set at the controller.

AFAIK I have not seen any proposal where LDP would play any role in such distribution.


On Thu, Jul 23, 2015 at 11:07 PM, Shahram Davari <<>> wrote:
Hi Robert,

How are these labels distributed? Via LDP or via SDN controller?


From:<> [<>] On Behalf Of Robert Raszuk
Sent: Thursday, July 23, 2015 12:58 PM
To: Eric C Rosen
Cc: Shahram Davari;<>;<>
Subject: Re: [mpls] draft-fang-mpls-label-forwarding-no-swap - how much does it really save?

​Hi Eric,​

If you notice that the incoming label needs to be 'replaced' by an outgoing label of the same value, you could just make the rewrite string shorter, so it won't overwrite the top label on the stack.  This seems to be what the draft suggests, but it could be done as an optimization for the particular case where the incoming and outgoing labels have the same value.

​This is precisely ​the crux where your statement fails.

You use term "incoming label" and "outgoing lable" ... well in the new architectures there is no such things.

It is a "global label" or "path label" with adjacency information.

So to support legacy hardware new control plane has to make up from single label now two (identical) labels to pass it to data plane. Now also data plane must be smart to check that and program its state per your suggestion.

Why would we do that other then due to worry about legacy chipsets feared to be non compliant to new RFC ?

Many thx,

************* Email Confidentiality Notice ********************
The information contained in this e-mail message (including any
attachments) may be confidential, proprietary, privileged, or otherwise
exempt from disclosure under applicable laws. It is intended to be
conveyed only to the designated recipient(s). Any use, dissemination,
distribution, printing, retaining or copying of this e-mail (including its
attachments) by unintended recipient(s) is strictly prohibited and may
be unlawful. If you are not an intended recipient of this e-mail, or believe
that you have received this e-mail in error, please notify the sender
immediately (by replying to this e-mail), delete any and all copies of
this e-mail (including any attachments) from your system, and do not
disclose the content of this e-mail to any other person. Thank you!