Re: [tcpm] Fwd: New Version Notification for draft-gont-tcpm-urgent-data-00

Andrew Yourtchenko <ayourtch@cisco.com> Tue, 28 October 2008 03:46 UTC

Return-Path: <tcpm-bounces@ietf.org>
X-Original-To: tcpm-archive@megatron.ietf.org
Delivered-To: ietfarch-tcpm-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 488953A688A; Mon, 27 Oct 2008 20:46:59 -0700 (PDT)
X-Original-To: tcpm@core3.amsl.com
Delivered-To: tcpm@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E2EFB3A6979 for <tcpm@core3.amsl.com>; Mon, 27 Oct 2008 20:46:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.389
X-Spam-Level: *
X-Spam-Status: No, score=1.389 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FRT_STOCK2=3.988]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zWe6-iXA0x-2 for <tcpm@core3.amsl.com>; Mon, 27 Oct 2008 20:46:57 -0700 (PDT)
Received: from av-tac-bru.cisco.com (odd-brew.cisco.com [144.254.15.119]) by core3.amsl.com (Postfix) with ESMTP id 90BBA3A688A for <tcpm@ietf.org>; Mon, 27 Oct 2008 20:46:56 -0700 (PDT)
X-TACSUNS: Virus Scanned
Received: from strange-brew.cisco.com (localhost [127.0.0.1]) by av-tac-bru.cisco.com (8.11.7p3+Sun/8.11.7) with ESMTP id m9S3ksq07713; Tue, 28 Oct 2008 04:46:54 +0100 (CET)
Received: from kk-son (dhcp-peg3-vl30-144-254-7-191.cisco.com [144.254.7.191]) by strange-brew.cisco.com (8.11.7p3+Sun/8.11.7) with ESMTP id m9S3kbG07615; Tue, 28 Oct 2008 04:46:37 +0100 (CET)
Date: Tue, 28 Oct 2008 04:46:36 +0100
From: Andrew Yourtchenko <ayourtch@cisco.com>
X-X-Sender: ayourtch@zippy.stdio.be
To: Fernando Gont <fernando@gont.com.ar>
In-Reply-To: <200810280203.m9S23foZ023071@venus.xmundo.net>
Message-ID: <Pine.LNX.4.64.0810280313370.22106@zippy.stdio.be>
References: <200810280000.m9S00h4E029878@venus.xmundo.net> <A56C813C-B46D-4A02-A905-DD6B7E163156@windriver.com> <200810280203.m9S23foZ023071@venus.xmundo.net>
MIME-Version: 1.0
Cc: tcpm@ietf.org, David Borman <david.borman@windriver.com>
Subject: Re: [tcpm] Fwd: New Version Notification for draft-gont-tcpm-urgent-data-00
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: ayourtch@cisco.com
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://www.ietf.org/mailman/private/tcpm>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: tcpm-bounces@ietf.org
Errors-To: tcpm-bounces@ietf.org

Hello David,

thanks a lot for the comments. Addition to Fernando's comments inline.

On Mon, 27 Oct 2008, Fernando Gont wrote:

>> it to the application out-of-band.  To fix that, the SO_OOBINLINE
>> socket option was introduced, and is still around today.  All
>> applications that use urgent data should be using the SO_OOBINLINE
>> option, there's no excuse for using the old, broken BSD interpretation
>> about urgent data.
>
> Well, this seems to be the default for all major TCP implementations (see our 
> survey).
>

Just to add - the code I created for testing was deliberately 
without the SO_OOBINLINE - under the "naive" premise that indeed
this protocol implementation bug would've been corrected by 
now and the "standards-compliant" behaviour would be the default.

>> All applications that use
>>urgent data should be using the SO_OOBINLINE option, there's no excuse for 
>>using the old, broken BSD interpretation about urgent data.

Again, the deliberate "naive expectation" was that the old and known 
broken implementation is *not* the default in the today's TCP stacks, but 
would require a configuration tweak to fallback to buggy behaviour used in 
the legacy applications.

>
>> There isn't anything wrong with the 793/1122 definition of the Urgent
>> Pointer.
>
> The specific issue we are discussing is that the Urgent pointer is defined in 
> RFC 793 as pointing "to the byte following the last byte of urgent data". RFC 
> 1122 later corrected this definitation, stating that it points to "the last 
> byte of urgent data".
>

So, we have three options:

- "old and buggy" semantics
   -> default with no additional effort 
- the incorrect semantics from the RFC793 - correct by the RFC1122
   -> default after adding the additional code to set
      the socket to SO_OOBINLINE to get away from the "old and buggy" one
- the "standard" RFC1122 semantics
   -> achievable with SO_OOBINLINE setsockopt *and* the
      host-global configuration switch.

The latter two are split because at least in one scenario within 
the set that we tested there was an observable difference in the 
behaviour - while again this can be classified as a "bug",
it pretty much leaves the reasonable answer to the question
"How to interoperably use the urgent pointer/data in TCP for my 
application?" to be "Don't" ?

thanks,
andrew
_______________________________________________
tcpm mailing list
tcpm@ietf.org
https://www.ietf.org/mailman/listinfo/tcpm