Re: [Softwires] Checksum neutrality and L4-protocol independence

Rémi Després <despres.remi@laposte.net> Tue, 14 February 2012 14:34 UTC

Return-Path: <despres.remi@laposte.net>
X-Original-To: softwires@ietfa.amsl.com
Delivered-To: softwires@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F1C4B21F8745 for <softwires@ietfa.amsl.com>; Tue, 14 Feb 2012 06:34:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.709
X-Spam-Level:
X-Spam-Status: No, score=-1.709 tagged_above=-999 required=5 tests=[AWL=-0.011, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_41=0.6, MIME_8BIT_HEADER=0.3]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RYAdkRfKLliF for <softwires@ietfa.amsl.com>; Tue, 14 Feb 2012 06:34:37 -0800 (PST)
Received: from smtpout.laposte.net (smtpout2.laposte.net [193.253.67.227]) by ietfa.amsl.com (Postfix) with ESMTP id 311F321F8715 for <softwires@ietf.org>; Tue, 14 Feb 2012 06:34:36 -0800 (PST)
Received: from [192.168.0.21] ([88.166.221.144]) by mwinf8503-out with ME id ZqaZ1i00637Y3f403qaZzJ; Tue, 14 Feb 2012 15:34:34 +0100
Mime-Version: 1.0 (Apple Message framework v1084)
Content-Type: multipart/alternative; boundary="Apple-Mail-12-883038579"
From: Rémi Després <despres.remi@laposte.net>
In-Reply-To: <CAFUBMqW+RrHKYJbgLBSbm3RebQWcr6oMZRcCwbv3_QR13MLV1Q@mail.gmail.com>
Date: Tue, 14 Feb 2012 15:34:33 +0100
Message-Id: <9FD6B92C-9B42-4A30-9FF5-30A86F845E72@laposte.net>
References: <B140D6B2-1B19-43D7-9B63-6BEA83CEB164@juniper.net> <3AAD65F3-5169-49B7-9698-E820EF419B35@employees.org> <53ACB4FC-988F-443C-A936-1CA5B13180EB@free.fr> <C694D7DC-2F98-434F-8123-751E2C1A98D0@employees.org> <081C7074-F5E2-46B7-B2C8-E033F3E5BC15@laposte.net> <B94D39A0-CA66-4AE6-BDC5-E4DFA2D47BEC@employees.org> <A8A6FDA2-0FFC-44D2-BEDF-29FB012D3113@laposte.net> <4749FAFA-A522-4795-9B8A-9AA4B030E075@employees.org> <C38B2AD1-08F1-4ECD-8ADB-AE88BC34A0B9@laposte.net> <CAFUBMqW+RrHKYJbgLBSbm3RebQWcr6oMZRcCwbv3_QR13MLV1Q@mail.gmail.com>
To: Maoke <fibrib@gmail.com>
X-Mailer: Apple Mail (2.1084)
Cc: Softwires WG <softwires@ietf.org>
Subject: Re: [Softwires] Checksum neutrality and L4-protocol independence
X-BeenThere: softwires@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: softwires wg discussion list <softwires.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/softwires>, <mailto:softwires-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/softwires>
List-Post: <mailto:softwires@ietf.org>
List-Help: <mailto:softwires-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/softwires>, <mailto:softwires-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2012 14:34:39 -0000

Le 2012-02-14 à 12:09, Maoke a écrit :

> Remi, Ole, and others,
> 
> sorry but i follow this quite late due to recent busy work. i would like to share some of my understandings to this issue. 
> 
> 2012/2/6 Rémi Després <despres.remi@laposte.net>
> 
> Le 2012-02-05 à 10:05, Ole Trøan a écrit :
> ...
> >>> any A+P solution requires support for L4 protocols to extract ports.
> >>> L4 checksum rewrite, as well as port extraction will have to be supported for all new L4 protocols.
> >>> the L4 checksum rewrite approach can work with any checksum algorithm.
> >>> that said, do we really think NAT44s will be upgraded to support any new L4?
> >>
> >> Imagine a variant of the SCTP of RFC4960 is introduced where the TCP-like checksum MAY be used to facilitate its deployment, say SCTP-bis (not a bad idea IMHO, but here just a hypothesis to answer your point).
> >> => 4rd-H would be compatible with it without any evolution; RFC6145 would need an upgrade to support it.
> 
> i understand that Remi's concern is, RFC6145 left an "OPTIONAL" for the support of the DCCP checksum. this "OPTIONAL" may impact as 1) for the single translation, DCCP checksum check might fail in the alien protocol family; 2) for the double translation, there is a risk that the sender-translator has done the L4 checksum rewrite while the receiver side doesn't, and thus the DCCP checksum transparency is voilated. the same concern is applicable for the SCTP, if someday TCP-fashion checksum is applied too.

This is indeed one point.

> if the both sides consistently do not do L4 checksum-rewriting for DCCP, there is no problem for the end-to-end communication but only the boxes in IPv6 domains, if they check the L4 checksum to approve the packet integrity, might drop packets with wrong checksum. it could be a recommendation if RFC6145 would make the L4 checksum rewriting fixed for any protocols or make an emphasis on the consistency in configuration, (i.e., OPTIONAL in the term of domain operation rather than in the term of equipment making/configuration). 
>  
> >>
> >> Upgrading NAT44s to support this SCTP-bis would be trivial (ports as the same place as usual can be mapped as usual.
> >
> > my point is that MAP is L4 aware anyway, and has to be modified to support any new transport protocol. since code modifications have to be made, then having a checksum neutral function at the network layer doesn't help much. you still need to change code. L4 rewrite is also more flexible in that it will support _any_ checksum algorithm, and most importantly is already implemented in every node.
> 
> Thus, you continue to negate that 4rd-U would support without any change a protocol such as, for example, a SCTP variant using TCP-like checksum instead of its CRC32c checksum.
> 
> This negation is AFAIK based on a lack of understanding:
> - UDP, TCP, DCCP, SCTP have the same places for port their fields, but have their own places for their checksum fields.
> - A solution based on L4 checksum adjustment MUST know _for each protocol_ where checksum fields are placed.
> - A solution based on checksum neutrality of IPv6 addresses doesn't need to know where checksum fields are placed.
> - For address sharing, knowing places of port fields is sufficient.
> 
> however, dear Remi, the problem is,


ANOTHER problem. 
The point just above remains true, right?
 
> even we have the checksum neutrality in address scheme, there are still some problems need to concern:
> 1) ICMPv6 checksum contains pseudo-header like TCP while ICMPv4 doesn't and therefore the checksum rewrite is anyway needed for ICMP; we cannot ensure that future L4 procotols may definitely have the same checksum as in TCP.

ICMP is as subject per se, and dealt with as such.
(ICMP isn't a transport protocol having _port fields at their usual place_)
>  
> 2) in the environment where single translation is also envolved (either stateless or stateful), L4 checksum rewriting is a MUST because sometimes there is only one address of the (src, dst)-pair following the checksum-neutral address scheme. (this is mentioned in RFC6052, giving up to enforce the checksum-neutrality in the address format, to my knowledge).

I have aways acknowledged that L4 update is necessary for single translation, no disagreement.
But here the problem is stateless IPv4 service across IPv6, a different problem where there is no such necessity.

> therefore, even it is possible that the address scheme could support checksum neutrallity, the equipment designer must anyway make the module for L4 rewrite for any well-known L4 protocol (and fortunately it is not a big coding at all).

Coding complexity is not the point (trivial in both cases).
The point is that, where it can be used, checksum neutrality is MORE GENERAL than L4 update.
Besides, but less important, it is simpler as far as the number of specifications it depends on is concerned (no need to know where checksum fields are for different protocols).


> i understand Ole has the same opinion: as we anyway have it,

There can be implementations of BRs that are independent of single translation.
They don't need to know where checksums are placed in various protocols.
 

> we don't need it in the address scheme standard

One can live with a standard less good than it could be but, since we are working for the future, let's make them as good as we can now.
In any case, this is no excuse to claim that, with checksum neutrality the following is not correct "BRs need no change for any new protocol having ports at their usual place and TCP-like checksum" (DCCP, SCTP if it would acce^t TCP-like checksum, any other.)
 

> (but it could be a recommendation for the operators to enable the address-level checksum neutrality,

What remains to be seen is what is gained by not having it a MUST while we are specifying a new standard for a new problem.

Cheers,
RD

> put in either prefix or interface id, through the address assignment, in order to help any L4 protocol when its TCP-flavor checksum rewrite happens not to be considered/implemented). 
> 
> cheers,
> maoke