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

"Andrew G. Malis" <> Fri, 24 July 2015 20:03 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 745C71A1DBD for <>; Fri, 24 Jul 2015 13:03:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id lDOJjRNc_VEv for <>; Fri, 24 Jul 2015 13:03:57 -0700 (PDT)
Received: from ( [IPv6:2a00:1450:400c:c05::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 8B0391A1BF4 for <>; Fri, 24 Jul 2015 13:03:50 -0700 (PDT)
Received: by wibxm9 with SMTP id xm9so41316467wib.1 for <>; Fri, 24 Jul 2015 13:03:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=hH9m7Fuz2WeiqLX8iInEyd02WUduf9TD1s2xVB+hrBQ=; b=TXu6+6w6mSu7+oIYgGyigo+adIlRw/qMaXjSgk88gVabWYeXTx4ZpbF4fi2yxvg/62 l86VS/8rX/KSrG885vT0iNlRO2ede3u8S5ouDAadxVdVkV7zN534IPmUFQgzAIT4rfYr qAdlOcj/fX7CXKGyDRDFbDBUwNSYanouyBK+E6XPc7ZWRsM2W5/3CWC85+WFOO8FjL6R FJ1cw76NkGyP9XrAI5C1l9ZPTFq10hZadl/ghjWfElR0LDPm+V307XuIsozejS08yxhL WApipL/v22J5hz9o9nB96eM8B9Vz1VohZCvNmDi7wIV34NE7P0BV+ff1hcTUbW13Iw2Y lsfA==
X-Received: by with SMTP id bm8mr30443486wjb.116.1437768229346; Fri, 24 Jul 2015 13:03:49 -0700 (PDT)
MIME-Version: 1.0
Received: by with HTTP; Fri, 24 Jul 2015 13:03:29 -0700 (PDT)
In-Reply-To: <>
References: <> <> <> <> <> <> <> <> <> <>
From: "Andrew G. Malis" <>
Date: Fri, 24 Jul 2015 22:03:29 +0200
Message-ID: <>
To: Robert Raszuk <>
Content-Type: multipart/alternative; boundary="089e010d868c9463cf051ba480be"
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 20:03:59 -0000


You're free to implement your switch as you see fit. If your switch sees
identical in and out labels being provisioned (by whatever means), then you
are free to store that in an internal FIB/LIB as NOSWAP, and your data
plane will be optimized. The nice thing is that externally, your switch
(and controller, or control plane) will conform to existing MPLS specs, and
interoperate with existing equipment. This will give your customers a way
to gracefully migrate from the old switches to new ones without requiring a
fork lift upgrade, coordinating both the data and control planes.


On Fri, Jul 24, 2015 at 6:55 PM, Robert Raszuk <> wrote:

> 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.
> _______________________________________________
> mpls mailing list