Re: I-D Action: draft-carpenter-6man-rfc6874bis-00.txt

Brian E Carpenter <> Wed, 07 July 2021 02:16 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 3A0D83A179A for <>; Tue, 6 Jul 2021 19:16:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.437
X-Spam-Status: No, score=-2.437 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, NICE_REPLY_A=-0.338, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id sv0wzyM65UNW for <>; Tue, 6 Jul 2021 19:16:57 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:4864:20::102e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 7719D3A17A6 for <>; Tue, 6 Jul 2021 19:16:57 -0700 (PDT)
Received: by with SMTP id p9so621509pjl.3 for <>; Tue, 06 Jul 2021 19:16:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language:content-transfer-encoding; bh=cSIzmIkqZI4N63fvFi/E4DR3XsE40BTUrbXHizPdTqQ=; b=g9gKpXYldOwD1bqMDnia6N88AqPC1umPrgwO4XJslBS0M7SmxEuEwPiQkYxoQfTCVz Xq4NVxvyEbZkPqDC4I0B65dT/kUiDg+FYevBWefvxnV9ew5jRJfyyR/GNGcmkmy3kbkG hw4HhuKSPW+dbJRJOSU7jZeq8nHvUvivGctPXO+sHb1SCdwWqX27YgO+PlWqTMUH+NmB NFecZGrTIY82K46jwjp/qRMtN1Z0kX9uh/gs8BtcVeuIYnOEf628pAJC//kGBXVa+YTY AuGFoVQA+vjbtl4b9I9TcWbckfMjiNoVl6Ht68kd621H3KZPi3vQn3Zt9S+RZpYs4alY DW1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=cSIzmIkqZI4N63fvFi/E4DR3XsE40BTUrbXHizPdTqQ=; b=Fc/YeJZhfivHW0Yba99/f+nriqKOxSBu9jVDRutEfvVE0fPk9PK31sOPopAgv40D4V JB24YshQK6eZoNID3Fy/+ZjbtMqrt+3uZ6wkubPPo1I7omPB0LZaWHqYMPK7f9Iphib4 UZ270ik2qRe0/dj4TNBYd4M3Q2JLkJWxl3p8sWPO4HTq+5SqSA4PIRueYgf01LuK9xJo Mfu4B6MdIvFqub+NkLxahQQ3OgTJtyBzWXCMpW0zmPPylmENxoAMI6h7M5ENDGHm3i/F twxW615o1gna440mDkjF8Pfq7lYLoiVjFJ12NVtAXsFMu6odMtquzTw5yfFzmayQDwJs nU0g==
X-Gm-Message-State: AOAM531v/Vtpwxy+rjQ1VFqPBcGlKPsDvx6PWkEj4mPqR99cJ70vAVXc ohrhKdQ8FNhsfIC68NdY4nNJq2oBRcJQFg==
X-Google-Smtp-Source: ABdhPJz8yjX+dIzpF9QxXNewfzOceiycr8dfwV5vN6Gs47TYmaMxorRuFaCBa8xmDWeUI95WXNjvbg==
X-Received: by 2002:a17:90a:4cc4:: with SMTP id k62mr23290497pjh.64.1625624215611; Tue, 06 Jul 2021 19:16:55 -0700 (PDT)
Received: from ?IPv6:2406:e003:1188:5b01:80b2:5c79:2266:e431? ([2406:e003:1188:5b01:80b2:5c79:2266:e431]) by with ESMTPSA id y3sm20967490pga.72.2021. (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 06 Jul 2021 19:16:54 -0700 (PDT)
Subject: Re: I-D Action: draft-carpenter-6man-rfc6874bis-00.txt
To: Andrew Cady <>, 6MAN WG <>
References: <> <> <> <> <> <> <> <28125.1625590441@localhost> <> <24972.1625597141@localhost> <>
From: Brian E Carpenter <>
Message-ID: <>
Date: Wed, 07 Jul 2021 14:16:51 +1200
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset="utf-8"
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <>
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 07 Jul 2021 02:16:59 -0000


On 07-Jul-21 08:05, Andrew Cady wrote:
> On Tue, Jul 06, 2021 at 02:45:41PM -0400, Michael Richardson wrote:
>>     >> So why do the browser implementers have such difficulties with
>>     >> processing this?  Running code wins.
>>     > There is no difficulty implementing it the way that I say to do
>>     > it!
>>     > The difficulty (or rather, refusal) is implementing it the
>>     > broken way that the standard says to do.
>> Well, each time I read your (multiple) posts, I see you describing
>> what I think that the standard already says.  Obviously, I'm wrong.
>> You also seem to be disagreeing with Brian's text, which is why
>> I'm confused.  Maybe you could just make a pull request to Brian's
>> document?
> The problem isn't with the changes Brian made.  Those changes were
> needed and good.  (By the way, thanks Brian.)
> The problem is in what was left unchanged.  Brian did not break with
> rfc6874 but that break is what is needed.  We need to propagate the fix
> back to all relevant RFCs.
> Specifically, these definitions must change:
>     ZoneID = 1*( unreserved / pct-encoded )
>     IPv6addrz = IPv6address "%25" ZoneID
> These definitions can be used instead:
>     ZoneID = 1*( unreserved )
>     IPv6addrz = IPv6address "%" ZoneID

Thanks for making a concrete proposal. My belief back when
we did RFC6874 was that this would not be acceptable in the
URI world. I'd be glad to test this belief again.
> By the way, there is a relevant mistake of fact in rfc6874:
>     According to URI syntax [RFC3986], "%" is always treated as an
>     escape character in a URI,
> The "always" part is untrue.  It is only treated that way where BNF says
> "pct-encoded".  Inside of square brackets it must instead be treated as
> an error.  Pct-encoded data is not allowed there. 

Well, it *is* allowed in a URI precisely because RFC6874 formally updates
RFC3986. I agree that the production for IPv6address in RFC3986 doesn't
include pct-encoded. However, RFC3986 section 2.4 says:

"Because the percent ("%") character serves as the indicator for
percent-encoded octets, it must be percent-encoded as "%25" for that
octet to be used as data within a URI."

As I recall the discussion nine years ago, that statement was taken
literally to mean *anywhere* in a URI. You are probably correct that a
strictly ABNF-driven parser wouldn't apply the escape mechanism except
within pct-encoded, but what do real-world parsers do?

Personally I'd be happy if we could make the change you suggest, but
we'd need to hear from the implementers.