Re: [tsvwg] OCS option in draft-ietf-tsvwg-udp-options-07

Joe Touch <touch@strayalpha.com> Sat, 09 March 2019 19:29 UTC

Return-Path: <touch@strayalpha.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 46313124B91 for <tsvwg@ietfa.amsl.com>; Sat, 9 Mar 2019 11:29:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.22
X-Spam-Level:
X-Spam-Status: No, score=-1.22 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_NEUTRAL=0.779, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=strayalpha.com
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 gTnt-DEMG9bo for <tsvwg@ietfa.amsl.com>; Sat, 9 Mar 2019 11:29:05 -0800 (PST)
Received: from server217-3.web-hosting.com (server217-3.web-hosting.com [198.54.115.226]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C4EAE12426E for <tsvwg@ietf.org>; Sat, 9 Mar 2019 11:29:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=strayalpha.com; s=default; h=To:References:Message-Id: Content-Transfer-Encoding:Cc:Date:In-Reply-To:From:Subject:Mime-Version: Content-Type:Sender:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=vWAvpRyT55AoJuFlLCk9UKCOxvtgtRIWGvvkrWiqs4c=; b=JwjUklM4DfEGw6EsOrG/pXEVU 8SKBJlMdAsQbP1SgX4+uvJCRafAu+6W6AQjzMkIKwXU8WjQEL9dFXXvEqnv0Mid7H9aTCDWR6/0G2 5uMIwgzkKun6teMIrw2sN06nLp7qER0fGC2ZzXQnK2tnlbBgIxMMJGdE8XmLJWFsoQpV/whTyWv1x jhoxIWLMVqshVclqL2BDJPzOOWw6PCAUlhyDsCZLerELG7BCWLubIYBD7LORqFS2SsXc0ZFq/Tzua Tetsv4T5yJYJVP41T18jlYo3EMncHuPi8cPLv1aTi8fEBxZBIxBKRwzNxW/7mMt2KHdFDXwoK98Xk cmmC4yk9w==;
Received: from cpe-172-250-240-132.socal.res.rr.com ([172.250.240.132]:51244 helo=[192.168.1.77]) by server217.web-hosting.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <touch@strayalpha.com>) id 1h2heU-003kWP-R4; Sat, 09 Mar 2019 14:29:00 -0500
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Joe Touch <touch@strayalpha.com>
In-Reply-To: <CACL_3VFg-EWCYHZ4+kYV30vjNzPs90ysAu5SCdLNb+9OPxE+3g@mail.gmail.com>
Date: Sat, 09 Mar 2019 11:28:57 -0800
Cc: tsvwg <tsvwg@ietf.org>, Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Content-Transfer-Encoding: quoted-printable
Message-Id: <B1D19ABC-428B-42D8-AE97-BF3B967B1140@strayalpha.com>
References: <CACL_3VFg-EWCYHZ4+kYV30vjNzPs90ysAu5SCdLNb+9OPxE+3g@mail.gmail.com>
To: "C. M. Heard" <heard@pobox.com>
X-Mailer: Apple Mail (2.3445.9.1)
X-OutGoing-Spam-Status: No, score=-0.5
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server217.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - strayalpha.com
X-Get-Message-Sender-Via: server217.web-hosting.com: authenticated_id: touch@strayalpha.com
X-Authenticated-Sender: server217.web-hosting.com: touch@strayalpha.com
X-Source:
X-Source-Args:
X-Source-Dir:
X-From-Rewrite: unmodified, already matched
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/t4AF4mYQFHybOcEvMfYRsZIA1BQ>
Subject: Re: [tsvwg] OCS option in draft-ietf-tsvwg-udp-options-07
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 09 Mar 2019 19:29:07 -0000

This one’s a bit long - we need to converge quickly if the draft is going to be updated in time for the cutoff.

Please comment asap…

Joe

PS =  yes, we talk about TLV but need to explain that some options are exceptions (OCS, NOP, EOL). I also need to update the OCS to be 3 bytes long (in the table and figure). Those are in addition to the issues below.

-------

Raffaelo and Mike both pointed out:

> On Mar 9, 2019, at 5:23 AM, C. M. Heard <heard@pobox.com> wrote:
> ...
> the errant middleboxes that CCO is designed to work around do not use the
> correct length value in their (re)computation of the UDP checksum. ...

Well, there are several implications here:

1. we can add in the option length, BUT that also means:
	(a) we need to declare that the option area consumes the whole of the surplus area (no chance for other uses)
	OR
	(b) that the surplus area is always zero
	OR 
	(c) that OCS covers even the surplus area (it doesn’t need to be zero; it does need to be included)

	we need a choice here. AFAICT, the safest (a)

2. we don’t need OCS alignment; what we do need is to “coordinate” the alignment of a 16-bit of the length to the OCS checksum field
	i.e.:
	- calculate the length needed (IPlen - UDP len)
	- if OCS checksum field is not 16-bit aligned to the start of the option area, then swap bytes
	- add the result to the OCS checksum (‘pseudo header’ seems a bit heavy here, but same point)

As Derek noted:
> As I recall the LITE+FRAG use case has no data in the UDP payload
> (i.e UDP header length is zero)?
> 
> For this case, there is another way to work around a broken path (be it
> boxes, NICs, or whatever), that is simply to send with UDP header checksum
> of zero, and contain any necessary checksums in the UDP slack space.


3. we have to deal with LITE/LITE+FRAG 
	we *can* use UDP CS=0, but that also may involve overriding the user’s desires here (i.e., the user API says “use UDP CS” and we’re not doing that)
	which means we have a choice:
	(d) override so that things work, i.e., force UDP CS=0 and then
		(d.1) do OCS as a check on our stuff only
		OR
		(d.2) disallow the use of OCS (if CS=0, what’s the point?)
		OR
		(d.3) use OCS=0 (this seems like a waste)
	OR
	(e) ignore the user setting of CS, then:
		(e.1) always do OCS as a check
		OR
		(e.2) if UDP CS=0, omit OCS (save space), basically like d.2 
		OR
		(e.3) if UDP CS=0, use OCS=0 (basically like e.2

If we do any of the (e) variants, we could either:
	(f.1) require users to disable UDP CS to use OCS
	OR
	(f.2) ignore the user UDP CS setting

So which is it?

I don’t like assuming user correct configuration (f.1).

So to me it’s (f.2) and (d.1). 

Thoughts?

also Derek noted:

> The OCS/CCO case can cover that, except for the LITE (w/o FRAG) case.
> 
> For the latter I guess we could also use UDP checksum of zero, and have
> an option to restore a proper checksum for the UDP data at the receiver,
> however that will still leave legacy receivers experiencing such packets
> as unchecksumed.


5. the LITE only case

The whole point of LITE is that some of the IP payload isn’t checksummed. 

> Given that we're supposed to veryify such receivers can accept
> LITE (w/o FRAG) and hold soft state, maybe this is acceptable?


We don’t have a requirement that such receivers can accept LITE before we start using it, so soft state won’t help here.

> we can send
> LITE (w/o FRAG) using UDP checksum of zero, and the additional
> option encoding the actual checksum for the UDP data.
> 
> This additional checksum could simply be the existing defined
> ACS option.

ACS uses a CRC, not IP checksum. That’s a LOT more work in software, so this isn’t a viable alternative.

IMO, we leave this one alone. The whole point of LITE is to do less work - if that means the LITE data corrupts the entire packet, then so be it. Then LITE basically fails.

------