Re: [sipcore] WGLC: draft-ietf-sipcore-name-addr-guidance

worley@ariadne.com (Dale R. Worley) Thu, 16 March 2017 19:46 UTC

Return-Path: <worley@alum.mit.edu>
X-Original-To: sipcore@ietfa.amsl.com
Delivered-To: sipcore@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 34969129A3E for <sipcore@ietfa.amsl.com>; Thu, 16 Mar 2017 12:46:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.934
X-Spam-Level:
X-Spam-Status: No, score=-1.934 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_SOFTFAIL=0.665] autolearn=no autolearn_force=no
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 4owFJymGMlH6 for <sipcore@ietfa.amsl.com>; Thu, 16 Mar 2017 12:46:44 -0700 (PDT)
Received: from resqmta-ch2-02v.sys.comcast.net (resqmta-ch2-02v.sys.comcast.net [IPv6:2001:558:fe21:29:69:252:207:34]) (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 EDD911299E5 for <sipcore@ietf.org>; Thu, 16 Mar 2017 12:46:43 -0700 (PDT)
Received: from resomta-ch2-14v.sys.comcast.net ([69.252.207.110]) by resqmta-ch2-02v.sys.comcast.net with SMTP id obLKcSrnJWRJ0obMAcn2qc; Thu, 16 Mar 2017 19:46:42 +0000
Received: from hobgoblin.ariadne.com ([24.60.114.4]) by resomta-ch2-14v.sys.comcast.net with SMTP id obM7cI3zwgvEdobM9crnGd; Thu, 16 Mar 2017 19:46:42 +0000
Received: from hobgoblin.ariadne.com (hobgoblin.ariadne.com [127.0.0.1]) by hobgoblin.ariadne.com (8.14.7/8.14.7) with ESMTP id v2GJkdCO004548; Thu, 16 Mar 2017 15:46:39 -0400
Received: (from worley@localhost) by hobgoblin.ariadne.com (8.14.7/8.14.7/Submit) id v2GJkcF2004545; Thu, 16 Mar 2017 15:46:38 -0400
X-Authentication-Warning: hobgoblin.ariadne.com: worley set sender to worley@alum.mit.edu using -f
From: worley@ariadne.com
To: Robert Sparks <rjsparks@nostrum.com>
Cc: sipcore@ietf.org
In-Reply-To: <8d7c905c-3c4f-7475-4e89-5cfd66a07602@nostrum.com> (rjsparks@nostrum.com)
Sender: worley@ariadne.com
Date: Thu, 16 Mar 2017 15:46:38 -0400
Message-ID: <87lgs5ypgh.fsf@hobgoblin.ariadne.com>
X-CMAE-Envelope: MS4wfMine/RLTGSd8LgFnjJeJ7JtyoUg6ak5V7tSWfOI37sDGqbnc41drSzvJ/pfYkRHgEwhSoUzszuSAaKVTCsti6PehOPteg2CaAG5V/hJBRpV87qwMdwr 7w6FwO+xMa+wfLncniWI6jPAIeJ7xeOE22DMJ6DSBrvGLn5vCYjOQjZ4SfhTinvK/+4Bl4usHleb5QZr4DmPkygpSxJRBtDxEwM=
Archived-At: <https://mailarchive.ietf.org/arch/msg/sipcore/d6jDyGwhLTaq1ryTAg4ffpTZd9Y>
Subject: Re: [sipcore] WGLC: draft-ietf-sipcore-name-addr-guidance
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sipcore>, <mailto:sipcore-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/sipcore/>
List-Post: <mailto:sipcore@ietf.org>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Mar 2017 19:46:45 -0000

Robert Sparks <rjsparks@nostrum.com> writes:
>> 1.  Introduction
>>
>>     It is important to note that a message formed without honoring the
>>     constraint will still be syntactically valid, but would be
>>     interpreted differently.
>>
>> This is a subtle point...  If the <...> is omitted, the header will
>> necessarily still be syntactically valid according to the BNF, reading
>> the original URI as an addr-spec -- the BNF is ambiguous in that way.
>> What *might* happen is that the header becomes parsable according to
>> the BNF in a different way also, one that parses the URI as multiple
>> elements.  E.g.,
>>
>>      From: sip:10.0.0.1,sip:x@10.0.0.0
>>
>> can be either parsed as one URI with user "10.0.0.1,sip" and password
>> "x", or two URIs, one "sip"10.0.0.1" and one "sip:x@10.0.0.0.
>>
>> OTOH,
>>
>>      From: sip:10.0.0.1,@10.0.0.0
>>
>> can only be parsed with the BNF as a single URI, because "@10.0.0.0"
>> doesn't parse as a URI.
>>
>> So it's more accurate to say
>>
>>     It is important to note that a header formed without honoring the
>>     constraint will still be syntactically valid, but might be
>>     syntactically ambiguous and interpreted differently than it was
>>     formed.
> s/formed/intended/?

You could phrase it that way.

> But I don't think changing will to might is correct.
>
> Can you construct a case where the refined guidance says you have to use 
> the <>, and if  leave them out you get the same interpretation?

Let me see if I made a mistake here...

If you form the header and violate the guidance by not using <>, the
header will necessarily be parsable *by the BNF alone* in the way it was
constructed.  It might also be parsable by the BNF alone in another
way.  What the guidance does is resolve the parsing ambiguity by
favoring the interpretation of comma, etc. as separators in the header
rather than as characters in the URI.

So if you want a From header containing "sip:10.0.0.1,sip:x@10.0.0.0",
which has user "10.0.0.1,sip" and password "x", you should write:

      From: <sip:10.0.0.1,sip:x@10.0.0.0>

and if you write

      From: sip:10.0.0.1,sip:x@10.0.0.0

it's interpreted as two URIs, "sip:10.0.0.1" and "sip:x@10.0.0.0", which
is syntactically correct but not what was intended.  (It's also
semantically incorrect.)

If you want a From header containing "sip:10.0.0.1,@10.0.0.0", which has
user "10.0.0.1,", you should write

      From: <sip:10.0.0.1,@10.0.0.0>

but if you do it wrong and write

      From: sip:10.0.0.1,@10.0.0.0

there's only one way to parse it with the BNF, and that is as you
intended it.

There's sort of an open issue as to what to do with that last header.
Since the guidance forbids its use, there's no requirement for
implementations to successfully parse it.  But since there's only one
way to parse it with the BNF, it's likely that a considerable number of
implementations parse it as it was intended.

At this point, I think the discussion is getting into the weeds
regarding exactly how you describe the bad things that might happen if
one violates the guidance, and I'll leave it to you!

>> (Perhaps I'm not understanding how the "Reference" column of that table
>> is to be used.)

> So this is hard.
>
> My opinion is that it would be a mistake to try to mark updates in the 
> iana registry as you suggest.
> Rather, the registry should point to the main defining document, and 
> only the main defining document.
> Readers can follow the Updates links from the RFC pages.
> (Note that we _have_ changed that registry to reflect Obsoletes, which 
> is consistent with the above.)
>
> My rational for that opinion is that we already have the Updates 
> metadata in two databases (the RFC Editor and the datatracker). We have 
> had, an expect will continue to have, conversations about moving to one 
> authoritative database for that. If we were to try to also track this in 
> the IANA registries, that unification gets even harder.

And putting the updates information in the registry would be an
additional duplication, which is undesirable in general.  The loss is
that in following the "RFC X updates RFC Y" links, RFC X may not update
RFC Y in regard to a particular registry item, and there's no recording
of that.

I'm OK with this as a policy.

Dale