Re: [v6ops] M/O flags and PD

Tore Anderson <tore@fud.no> Fri, 30 October 2015 06:58 UTC

Return-Path: <tore@fud.no>
X-Original-To: v6ops@ietfa.amsl.com
Delivered-To: v6ops@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C4D5D1A6F5A for <v6ops@ietfa.amsl.com>; Thu, 29 Oct 2015 23:58:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level:
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 eneGxJ0DIXMB for <v6ops@ietfa.amsl.com>; Thu, 29 Oct 2015 23:58:56 -0700 (PDT)
Received: from greed.fud.no (greed.fud.no [IPv6:2a02:c0:1001:100::145]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D1F741B37EB for <v6ops@ietf.org>; Thu, 29 Oct 2015 23:58:55 -0700 (PDT)
Received: from [2a02:c0:2:1:1194:17:0:1029] (port=44726 helo=echo.ms.redpill-linpro.com) by greed.fud.no with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <tore@fud.no>) id 1Zs3eD-0001jx-Q0; Fri, 30 Oct 2015 07:58:49 +0100
Date: Fri, 30 Oct 2015 07:58:49 +0100
From: Tore Anderson <tore@fud.no>
To: otroan@employees.org
Message-ID: <20151030075849.5ad90ed6@echo.ms.redpill-linpro.com>
In-Reply-To: <39B7C63D-A31A-4F3D-8487-5A9FF917F939@employees.org>
References: <20151019195001.22760.2580.idtracker@ietfa.amsl.com> <5AB28826-8E45-461F-AA7B-5D45F218FC18@cisco.com> <20151028113851.530c649d@echo.ms.redpill-linpro.com> <CAJE_bqd1263SaqU61sqqk_4Tne1GzE4_kMUhuLMgY42Cyc6m_A@mail.gmail.com> <5631232E.4020701@gmail.com> <20151029203951.06a4d4fd@envy.fud.no> <39B7C63D-A31A-4F3D-8487-5A9FF917F939@employees.org>
X-Mailer: Claws Mail 3.12.0 (GTK+ 2.24.28; x86_64-redhat-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/v6ops/A1cGbTua-cpBhOih13V_nc5zrEE>
Cc: "v6ops@ietf.org" <v6ops@ietf.org>, 神明達哉 <jinmei@wide.ad.jp>
Subject: Re: [v6ops] M/O flags and PD
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: v6ops discussion list <v6ops.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/v6ops>, <mailto:v6ops-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/v6ops/>
List-Post: <mailto:v6ops@ietf.org>
List-Help: <mailto:v6ops-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/v6ops>, <mailto:v6ops-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 30 Oct 2015 06:58:58 -0000

Hi Ole,

* otroan@employees.org

> I've changed subject.
> 
> > I am in 100% agreement with you, but I have clearly failed to express
> > this correctly. What I have been meaning to say is that IA_PD is
> > considered part of the "other configuration" (a.k.a. "not addresses")
> > class of DHCPv6 options whose availability can be explicitly signaled
> > through O=1 *or* implicitly through M=1.
> 
> that's incorrect.

I hear you say that, but I am struggling to find any reference in any
standard that supports this view. Mailing list posts doesn't really
count here, even if they number in the thousands. I'm interested in
learning which section of which RFC is telling me I'm incorrect. Give
me a pointer to that and I'll shut up.

We can even disregard RFC 7084, as it's not a standard. RFC 4861
Section 4.2 is where the flags and their meaning is specified. It says,
and I quote:

      M              1-bit "Managed address configuration" flag.  When
                     set, it indicates that addresses are available via
                     Dynamic Host Configuration Protocol [DHCPv6].

                     If the M flag is set, the O flag is redundant and
                     can be ignored because DHCPv6 will return all
                     available configuration information.

      O              1-bit "Other configuration" flag.  When set, it
                     indicates that other configuration information is
                     available via DHCPv6.  Examples of such information
                     are DNS-related information or information on other
                     servers within the network.

So DHCPv6-provided configuration is divided into two categories:

1) addresses
2) other

The availability of both of these categories of configuration is
signalled through the M/O flags. Nowhere that I can find is a third
«other than "other"» category of DHCPv6-provided configuration defined
or even hinted at.

So to me, the only logical interpretation of the above, is that the
availability of every single DHCPv6 option - including IA_PD - is
signalled through the O/M flags.

What RFC 4861 goes on to say makes me even more certain of this
interpretation:

        Note: If neither M nor O flags are set, this indicates that no
        information is available via DHCPv6.

> 7084 pseudocode:
> if A=1: do SLAAC
> 
> if M=1
>  /* include IA_NA in request to DHCPv6 server /*
>  /* include requests for other configuration options (not IA_*) /*
> else if O==1:
>  /* include requests for other configurations options */
> 
> do DHCP PD (include other options as indicated above)

Your pseudocode seems to confirm that you consider the IA_PD to be in
this third apparently-not-specified-anywhere «other than "other"»
category of DHCPv6-provided configuration.

It also appears to ignore the «If neither M nor O flags are set, this
indicates that no information is available via DHCPv6» statement. (But
I would agree that ignoring this "indication" is not forbidden.)

And finally it does not faithfully represent RFC 7084. Your code will
unconditionally request IA_PD in the O=M=0 case, while RFC 7084 says
this combination is «out of scope»:

   WPD-4:  By default, the IPv6 CE router MUST initiate DHCPv6 prefix
           delegation when either the M or O flags are set to 1 in a
           received Router Advertisement (RA) message.  Behavior of the
           CE router to use DHCPv6 prefix delegation when the CE router
           has not received any RA or received an RA with the M and the
           O bits set to zero is out of scope for this document.

In other words, your pseudocode seems to instead represent this
requirement (which is *not* a quote from RFC 7084):

   WPD-4:  By default, the IPv6 CE router MUST initiate DHCPv6 prefix
           delegation.

That said, I do not mean to say that requesting IA_PD when O=M=0 is a
wrong thing to do for a RFC 7084 CE. The O=M=0 case is, after all, left
unspecified.

> your pseudocode also had the bug of coupling DHCP and SLAAC address
> assignment.

Agreed.

In any case, I think we can also agree that it is improper for
draft-jjmb-v6ops-unique-ipv6-prefix-per-host-00 to imply that the
availability of IA_PD is contingent on the M flag alone?

The authors could avoid opening this apparent can of worms by changing
the current bullet:

   o  M-flag = 0 (UE/subscriber address is not managed through DHCPv6),
      this flag may be set to 1 in the future if/when DHCPv6 prefix
      delegation support over Wi-Fi is desired)

With:

   o  M-flag = 0 (UE/subscriber address is not managed through DHCPv6).

That way, the draft doesn't say anything controversial, and we can
leave the discussion on if IA_PD is «addresses», «other than
addresses», or «other than "other than addresses"» for another day.

[The draft does in any case goes on to say that O should be set to 1,
which means the described network already accomodates for (future) use
of IA_PD for both of our world views: an UE implemented by me would
then request IA_PD because of O=1, and one written by you would - AIUI
- just ignore the O/M flags and request IA_PD unconditionally.]

Tore