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

Andrew Qu <> Fri, 24 July 2015 08:07 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id E6BC01B3023 for <>; Fri, 24 Jul 2015 01:07:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.574
X-Spam-Status: No, score=-1.574 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, IP_NOT_FRIENDLY=0.334, T_RP_MATCHES_RCVD=-0.01, UNPARSEABLE_RELAY=0.001] autolearn=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id iIHVUghR6ubN for <>; Fri, 24 Jul 2015 01:07:01 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id C877B1B2FF2 for <>; Fri, 24 Jul 2015 01:07:00 -0700 (PDT)
X-Listener-Flag: 11101
Received: from [(] by (envelope-from <>) (Cellopoint E-mail Firewall v3.9.12 Build 0312 with TLS) with ESMTP id 467061139; Fri, 24 Jul 2015 04:06:47 -0500
Received: from ([fe80::2898:86df:e627:42ee]) by ([::1]) with mapi id 14.03.0181.006; Fri, 24 Jul 2015 04:06:47 -0400
From: Andrew Qu <>
To: Alexander Vainshtein <>, Robert Raszuk <>, Shahram Davari <>
Thread-Topic: [mpls] draft-fang-mpls-label-forwarding-no-swap - how much does it really save?
Thread-Index: AQHQxdE8jUti3orAQEqCOvm3DZDbXZ3qQZhg
Date: Fri, 24 Jul 2015 08:06:45 +0000
Message-ID: <>
References: <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
x-originating-ip: []
x-tm-as-product-ver: SMEX-
x-tm-as-result: No--55.277100-8.000000-31
x-tm-as-user-approved-sender: No
x-tm-as-user-blocked-sender: No
Content-Type: multipart/alternative; boundary="_000_EA360A7AB9D90D4B9E9173B6D27C371EE3F60C0DMTKMBS61N1media_"
MIME-Version: 1.0
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:07:04 -0000

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).

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

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

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

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?

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,