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

Robert Raszuk <> Fri, 24 July 2015 18:25 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 2E17F1AD1BA for <>; Fri, 24 Jul 2015 11:25:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.277
X-Spam-Status: No, score=-1.277 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id nB_0JRYRcA9H for <>; Fri, 24 Jul 2015 11:25:18 -0700 (PDT)
Received: from ( [IPv6:2a00:1450:400c:c05::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 52B3F1ACE2E for <>; Fri, 24 Jul 2015 11:25:18 -0700 (PDT)
Received: by wibud3 with SMTP id ud3so75249213wib.1 for <>; Fri, 24 Jul 2015 11:25:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=dch+Kf11ykRtomwUx9bFVdUmnVgHw0Ymvwnnu0bTzYc=; b=Blb72bZTb3/ppuEWST26SX4lEFhpZ1hO6OladE6iec9pxkKFUDsXjT+kWrz5t61hgI vpYJdMJV1rNuhyp/PBIaefX8wS+KM0Ar5mMMk+OPZsKcV8/9wahxwqX+vGF8XZQO1JAX hynW1t6o47YcmU/B6V1oqZFGtWx57A75ZS+3ykIZ0CAt5e1Oz2Q3GlrKFGemhtrTveiA owrwPeYBIG/Ba6xdeFsLxFNU2JLP2u9lfnCRpIn/8jV1d2fjuAE4KRyCjsmOt0v/O/Ig s2+CWIf5NYnMelaVIOcFaMoVzWZrvSCAyLI8EvdOGtx76X8+fl+zV/qcizmIYZsnwdpD NFig==
MIME-Version: 1.0
X-Received: by with SMTP id ft10mr29270649wjc.26.1437762317110; Fri, 24 Jul 2015 11:25:17 -0700 (PDT)
Received: by with HTTP; Fri, 24 Jul 2015 11:25:16 -0700 (PDT)
In-Reply-To: <0a8501d0c634$5bfa6540$13ef2fc0$>
References: <> <> <> <> <> <> <> <> <> <> <0a8501d0c634$5bfa6540$13ef2fc0$>
Date: Fri, 24 Jul 2015 20:25:16 +0200
X-Google-Sender-Auth: Lc-cn-yi7MlniHTgzNuU-gpUK3U
Message-ID: <>
From: Robert Raszuk <>
To: Adrian Farrel <>
Content-Type: multipart/alternative; boundary="047d7bb03a922ed36c051ba3201b"
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 18:25:21 -0000


No one in this thread is saying that 3031 is wrong. All we are saying is
that it is incomplete.

As to your objects for the domain wide/global label case I only need two:


I do not need IN_INTERFACE .. in fact as I am sure you know per interface
label space was practically never implemented. Even where it is very needed
implementations  use well known trick around it (example: for inter-as
option B on ASBRs or CSC).

As far as OUT_INTERFACE I would also leave it to FIB recursive resolution
to dynamically set it based on the BGP/IGP information.

So is this still MPLS per 3031 ? I am actually not that sure anymore.

Maybe it would be cleaner to call this MPLSv2 and document it in its own

Then of course question will come why not just use remote next hop
attribute and encapsulate with IP. Well there is class of switches which do
brilliant L2 and L2.5 but not L3. I am not sure if cost of high speed
ports, very competitive power consumption, great cooling characteristics
would be a sufficient of the market for this new work - but I do not think
this is us here in IETF to decide that.


On Fri, Jul 24, 2015 at 7:15 PM, Adrian Farrel <> wrote:

> Robert,
> You want to specify the interface between control plane and data plane?
> That's OK (although it may have been done once or twice before).
> And if you want to specify the interface between the management plane and
> the data plane, that is also OK (although it has been done before as well).
> If you want to specify that for a packet with incoming label the operation
> is NO-SWAP, that's OK.
> But note that your data model (to be generic) is going to need to also
> support SWAP.
> Thus, you will have objects...
> IN-LABEL (label)
> OUT-LABEL (label)
> Setting OPERATION to NO-SWAP saves you from setting OUT-LABEL, but doesn't
> save you from needing the object in your data model. So it is a trade in
> the design of the data model and either approach is fine.
> You can see a similar model in the LSR MIB module (3813 IIRC) and in the
> olde ATM MIB modules.
> None of the above has the slightest to do with 3031 being right or wrong.
> Adrian
> *From:* mpls [] *On Behalf Of *Robert Raszuk
> *Sent:* 24 July 2015 17:55
> *To:* Eric Rosen
> *Cc:*
> *Subject:* Re: [mpls] draft-fang-mpls-label-forwarding-no-swap - how much
> does it really save?
> Eric,
> This discussion to me is not related to data plane.
> I look at it from control plane perspective which needs to pass label
> values to date plane.
> Creating non standard optimised APIs or YANG models to send single label
> or artificially send identical labels an in and out when given architecture
> does not have it seems like no-op to me.
> Best,
> R.
> On Jul 24, 2015 6:29 PM, "Eric C Rosen" <> wrote:
> On 7/23/2015 5:31 PM, Robert Raszuk wrote:
> Going by your logic we would have a notion of "incoming IP address" and
> "outgoing IP address" in all routers in the world doing basic non NAT
> routing
> I'm not sure I understand what it means to "have a notion ... in all
> routers".  A given router only needs to implement the functionality that it
> needs to provide to those who are going to deploy it.
> However, certainly there is a distinction to be made between "incoming"
> and "outgoing" even in the case of "pure" IP.  The incoming IP header of a
> packet is always different than the outgoing IP header of that packet, due
> to the need to modify the TTL and checksum fields.
> In addition, as you point out, the incoming source address field may be
> different than the outgoing source address field, due to NAT.  And use of
> the source routing option can result in there being a difference between
> the incoming destination address field and the outgoing destination address
> field.
> Another interesting case is tunnel stitching, where the incoming source
> and destination address fields may both be different than the outgoing
> source and destination address fields.  If you want to optimize for tunnel
> stitching, you precompute the rewrite string, and to the forwarding plane
> it looks like an ordinary case of forwarding a packet.
> Of course, if your platform doesn't need to perform any of these
> functions, it doesn't have to implement them.  Similarly, if you think that
> the most common operation (or even the only operation) your platform will
> have to perform on an MPLS packet is "don't modify the label stack except
> for the TTL of the top entry", nothing stops you from optimizing for that
> case.
> BTW, I understand perfectly well that there is some controversy about
> whether it is or is not a good idea to use domain-wide labels, but that is
> not a data plane issue, and the use of domain-wide labels does not require
> a change in the data plane architecture.