Re: [mpls] Last Call: <draft-ietf-mpls-in-udp-04.txt> (Encapsulating MPLS in UDP) to Proposed Standard

Joe Touch <touch@isi.edu> Mon, 27 January 2014 18:01 UTC

Return-Path: <touch@isi.edu>
X-Original-To: mpls@ietfa.amsl.com
Delivered-To: mpls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2C8DD1A001E; Mon, 27 Jan 2014 10:01:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.735
X-Spam-Level:
X-Spam-Status: No, score=-4.735 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.535] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rWy0CR_VzjB3; Mon, 27 Jan 2014 10:01:17 -0800 (PST)
Received: from vapor.isi.edu (vapor.isi.edu [128.9.64.64]) by ietfa.amsl.com (Postfix) with ESMTP id AC1D41A0256; Mon, 27 Jan 2014 10:01:17 -0800 (PST)
Received: from [128.9.160.166] (abc.isi.edu [128.9.160.166]) (authenticated bits=0) by vapor.isi.edu (8.13.8/8.13.8) with ESMTP id s0RI0olq024489 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 27 Jan 2014 10:00:53 -0800 (PST)
Message-ID: <52E69ED3.1060005@isi.edu>
Date: Mon, 27 Jan 2014 10:00:51 -0800
From: Joe Touch <touch@isi.edu>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0
MIME-Version: 1.0
To: stbryant@cisco.com
References: <201401240320.s0O3KsR9013700@maildrop2.v6ds.occnc.com> <52E2BBC0.2030203@isi.edu> <52E68C12.2050308@cisco.com> <98034F7E-47CF-4ABE-A199-A9DB4DACBC2E@isi.edu> <52E69462.9030703@cisco.com>
In-Reply-To: <52E69462.9030703@cisco.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Cc: "mpls@ietf.org" <mpls@ietf.org>, IETF discussion list <ietf@ietf.org>
Subject: Re: [mpls] Last Call: <draft-ietf-mpls-in-udp-04.txt> (Encapsulating MPLS in UDP) to Proposed Standard
X-BeenThere: mpls@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Multi-Protocol Label Switching WG <mpls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mpls>, <mailto:mpls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/mpls/>
List-Post: <mailto:mpls@ietf.org>
List-Help: <mailto:mpls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mpls>, <mailto:mpls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Jan 2014 18:01:20 -0000

On 1/27/2014 9:16 AM, Stewart Bryant wrote:
>
> Sorry, are you talking the same h/w that does IP c/s?

It's been trivial to implement this for TCP checksums for a long time. 
18 years ago I showed how to do it for what was then $40 at 1Gbps (RFC 
1936).

They're done in hardware in many network interface cards on end systems, 
and it's been necessary for routers that use TCP tunnels as well.

Splitting headers from packet body for high-throughput routing has been 
known and done for a long time too (e.g., S. Walton, A. Hutton, and J. 
Touch, “High-Speed Data Paths in Host-Based Routers,” IEEE Computer, 
Nov. 1998, pp. 46-52.); during body transfer, the contents can easily be 
summed, and that sum can be combined with the header sum easily too.

Joe

> That h/w can only see the IP header.
>
> S
>
>
> On 27/01/2014 16:48, Joe Touch wrote:
>> Those same mechanisms have provided hardware checksum support for a
>> very long time.
>>
>> Joe
>>
>>> On Jan 27, 2014, at 8:40 AM, Stewart Bryant <stbryant@cisco.com> wrote:
>>>
>>>> On 24/01/2014 19:15, Joe Touch wrote:
>>>>
>>>>> This eliminates the "expands the reach of MPLS argument".
>>>>>
>>>>> First UDP checksums:
>>>>>
>>>>>    The UDP checksum is at the beginning of the payload.  Please see
>>>>> http://www.ietf.org/mail-archive/web/mpls/current/msg11279.html
>>>>>    This makes filling in a new UDP checksum infeasible on most high
>>>>> end
>>>>>    hardware.
>>>> That argument would make sense if most hardware wasn't
>>>> store-and-forward on a per-packet basis.
>>> They may be store and forward, but most of the high end designs
>>> use multiple grades of memory putting the packet in "slow memory"
>>> and providing a snapshot of the header in "fast memory" to the
>>> forwarder. Thus although the whole packet is in the system, it
>>> it is not accessible to the engine that would need to calculate the
>>> c/s.
>>>
>>> Stewart
>> .
>>
>
>