Re: Objection to draft-ietf-6man-rfc4291bis-07.txt

Simon Hobson <> Tue, 28 March 2017 13:20 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 3F799129539 for <>; Tue, 28 Mar 2017 06:20:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 8KtKYZi_HLMb for <>; Tue, 28 Mar 2017 06:20:13 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 6ED34129680 for <>; Tue, 28 Mar 2017 06:20:12 -0700 (PDT)
X-Quarantine-ID: <6V-9beGwcH_8>
X-Virus-Scanned: Debian amavisd-new at
X-Amavis-Alert: BAD HEADER SECTION, Header line longer than 998 characters: References: <20[...]
Received: from [] ( []) by (Postfix) with ESMTPSA id 070041BC37 for <>; Tue, 28 Mar 2017 13:20:23 +0000 (UTC)
Content-Type: text/plain; charset=windows-1252
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
Subject: Re: Objection to draft-ietf-6man-rfc4291bis-07.txt
From: Simon Hobson <>
In-Reply-To: <>
Date: Tue, 28 Mar 2017 14:19:59 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <fd> <> <1b6154d2-14a7-0d85-7a81-18a5367c03>
X-Mailer: Apple Mail (2.1510)
Archived-At: <>
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 28 Mar 2017 13:20:16 -0000

Alexandre Petrescu <> wrote:

>> It is customary to always write the "lowest value that fits"
> I did not know it was customary?  Maybe it should be documented.

It probably is somewhere - but I'm not a walking encyclopaedia of RFCs 1

> As opposed to IPv4 decimal notation, in IPv6 hexa it's very difficult to
> compare visually two IPv6 addresses, and tell which is lower value.
>> - ie the one where all the non-prefix bits are zero. So fe80::/10
>> fits - all the bits after the first 10 are zero fe81::/10 does not
>> fit - when you mask off the non-prefix bits you get a different
>> value
> Well, makes sense.
> But from this to say that LL addresses are _only_ those that start with
> fe80 there is a long way.
>> So while in terms of maths, after doing the masking you get the same
>> result, by not applying the "all host bits are zero" rule - you have
>> introduced confusion for humans.
> Ok.
> But humans introduce further confusion when mandating these host bits to
> be 0.
> These bits are not necessarily 0 - they can be whatever.

It depends on the context. If you are talking about a HOST address, then clearly the host identifier part of the address will be non-zero. If you are talking about a subnet (or prefix on IPv6 terminology) then it's non-sensical to have the host identifier non-zero.

Taking a simple example. If you talk about then I'd take that as meaning the host with host identifier "123" in the subnet If you used it in the context of anything other than talking about a host address then I;d take you task for not using the *network* address of

>> hence why we don't use that. It's all to do with consistency and
>> avoidance of confusion. And we need as much of that as we can - I
>> know plenty of supposedly network capable people who cannot
>> understand the concept of being a valid IP address !
> But there should be a way to say that is just one valid example, not the only one.
> That is also a private address. is a HOST address, it is not a NETWORK address. As explained above, if you apply the right operations, it comes down to being HOST 1.0.0 in NETWORK There is absolutely no confusion here, that's really basic IPv4 operations. Sadly a lot of people can't cope with these basics !

> Just like when one types 'ls abc*' vs typing 'ls abcd'.

Those two commands are not the same. The first is about all files starting abc (analogous to all IPs or hosts in a subnet), the second is about the one file abcd (analogous to a single IP/host in a network).

>> But to be frank, I still can't see what the proposal is about - just
>> what use case does it solve ?
> Well, the discussion is issued from the following observations:
> - rfc4291bis calls it fe80::/10 with a 64bit IID, whereas rfc2464bis
>  calls it fe80::/64 - which is right?

Right, so this is really nothing about using masks, prefix notation, etc - it's purely that somewhere along the line there's been an inconsistency in definition. One definition says one thing, another says something else.
By one definition, fe81::<some 64 bit ID> is a link local address, while by another definition it isn't.
I would suggest that the way to deal with that is to discuss which is correct and have one or both RFCs updated so they say the same thing. Unless there's something in the context that makes them both right.
Given that there are implementations "in the wild" relying on fe80::<something>/64, it might be hard to settle on the wider ranging definition and accept that the rest of fe80::/10 is effectively lost to other uses - having been lost in the gap between the definitions.