[Softwires] Review of draft-ietf-softwire-multicast-prefix-option-11

Tomek Mrugalski <tomasz.mrugalski@gmail.com> Tue, 10 January 2017 16:57 UTC

Return-Path: <tomasz.mrugalski@gmail.com>
X-Original-To: softwires@ietfa.amsl.com
Delivered-To: softwires@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B26B7129D2F for <softwires@ietfa.amsl.com>; Tue, 10 Jan 2017 08:57:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 vsoqS36WkwHE for <softwires@ietfa.amsl.com>; Tue, 10 Jan 2017 08:57:28 -0800 (PST)
Received: from mail-lf0-x230.google.com (mail-lf0-x230.google.com [IPv6:2a00:1450:4010:c07::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 20BED12944E for <softwires@ietf.org>; Tue, 10 Jan 2017 08:57:28 -0800 (PST)
Received: by mail-lf0-x230.google.com with SMTP id v186so65325668lfa.1 for <softwires@ietf.org>; Tue, 10 Jan 2017 08:57:28 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:to:message-id:date:user-agent:mime-version :content-transfer-encoding; bh=7DdRAQ/Hfvxt0LFiKlSG01z31AOnsRnxZT9jkmqUGWs=; b=Hik5NvhCiMd4uTqMl8XGFDoTnWLsocxCJmO+C2At4SCNgjmqxlWjC6AD+SA4KxJvML iBzjIIjJPv2GayR2qV9oQE6mHCyJ8CHHrvlhBwUHLdt+XbRTrsX0rIpNRPgfhsbUFtYi jdSgpqYCxstx/J813eSpNuDUtiVj8DPuKVXzPhAJsQZHwrFOV6wpciqyXX++ROTOh7YF anuG+8BRQR7o2Df7e4H9zeQxClxuC4iS5DpjwxyPCzVMM04CFRN5UMDF6n9/nh9JCTPr JmEb31cG35twrJCMhR+x3ZWBpp1ry41DdtaODYupQom9GcsR7FmawiOM4W2p5oa6nGi1 9tGA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:message-id:date:user-agent :mime-version:content-transfer-encoding; bh=7DdRAQ/Hfvxt0LFiKlSG01z31AOnsRnxZT9jkmqUGWs=; b=qXsR2lai8vqHIk24pbOt5ex6gHDmVmu7iKM7SON35rG3hdB7hN3Z/97MspHO4V2O4H NIiPnw4lnhFHG1t6fF9Nfyd7KToM3OzMx9qXE+o9sEokevUY2neyEJqK6FOKG4C7FaCr MpmMJjRorQYvvpUsoG5axmkFkNRvV0ug0DoCHLQk3nVCrU52D7a6a+241auU3BLSwzdb K80lk+ae2oIO/cfZ4iRudQqyNEm+NMI7nehx8Hl6r7LF06UsaUxmtt8ioO8sNBOSxpua 1Z++Fui3yO+MZUyn7VqBduY4gU/ZvhXXO2eUU6sjYs1ZGEV2316lOPigdqMWYPruxy6R jctg==
X-Gm-Message-State: AIkVDXI7v7Kp0Q5awj/fXrZWuJgQZzxkkoclCJsuSrzqHQSdSiBKasOyYvTARKSmc4mdlg==
X-Received: by 10.25.227.14 with SMTP id a14mr1645391lfh.42.1484067446023; Tue, 10 Jan 2017 08:57:26 -0800 (PST)
Received: from [192.168.0.9] (109241207033.gdansk.vectranet.pl. [109.241.207.33]) by smtp.googlemail.com with ESMTPSA id t126sm610074lff.31.2017.01.10.08.57.24 for <softwires@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 10 Jan 2017 08:57:25 -0800 (PST)
From: Tomek Mrugalski <tomasz.mrugalski@gmail.com>
To: Softwires-wg <softwires@ietf.org>
Message-ID: <1ca9a67e-cce5-4196-7475-370307128752@gmail.com>
Date: Tue, 10 Jan 2017 17:57:24 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/softwires/v6wNKUGtngFMuSMuTxQRFsunxWQ>
Subject: [Softwires] Review of draft-ietf-softwire-multicast-prefix-option-11
X-BeenThere: softwires@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: softwires wg discussion list <softwires.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/softwires>, <mailto:softwires-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/softwires/>
List-Post: <mailto:softwires@ietf.org>
List-Help: <mailto:softwires-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/softwires>, <mailto:softwires-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Jan 2017 16:57:30 -0000

I have reviewed draft-ietf-softwire-multicast-prefix-option-11 and have
one significant and several minor comments.

Major issues:

1. The DHCPv6 option format. The format used (3 prefixes stuffed in a
single option) are not the preferred way to convey this kind of
information. This format is against the recommendation of DHCPv6 Option
Guidelines (RFC7227). See section 5.3 of that RFC. This is not a
nit-pick. There are a number of strong arguments for favouring 3 simple
options over one complex one. Here they are:

- implementing simple option is trivial as this format is already
supported by most DHCPv6 implementations, so it's a matter of extending
existing code to cover additional option codes.

- deploying is easier. Many implementations allow to define this kind of
option with configuration change and no need for software change.

- better handling of optional prefixes. Section 3 says that the
asm-length, ssm-length and unicast-length can be 0. This means that
depending on the deployment, all of those fields are optional. This
would be better handled with separate options that are simply not
configured on the server when not needed.

- better failure recovery. The text in section 2 says that some of the
prefixes are supposed to belong to well known prefixes. What the client
is supposed to do when the server sends a value that does not meet that
criteria? With a single option you'd have some sort of unclear decision
tree to ignore part of the option content. With 3 separate options, it's
simple - ignore the whole option.

Now, there's one complication here: scope preservation. I'm not familiar
with the multicast technologies you're configuring, so I won't make any
specific recommendations here. If you send multiple instances of the
ASM, SSM and prefix64, are they logically grouped together? My
understanding is that the scope is encoded on the second octet of the
multicast address, right? So when you send multiple instances, it should
be possible to preserve the scope by matching whatever scope you have in
IPv4 with the IPv6 prefix with the same scope. I don't claim to know
much about multicast, though. I may be wrong on this.

Now, if you considered all of the above, read RFC7227 and still believe
that having a single option rather than 3 is better way to go, I won't
insist. But you should add an explanation of the benefits of having a
single complex option that outweigh the simplicity proposed by 7227.

Minor issues:

2. The explanation in last paragraph in Section 3 doesn't work for me.
It says one option rather than three are easier to detect environments
where multicastis not enabled. Not configuring 3 options is as simple as
not configuring 1 option. Also, the text references Section 6 of
RFC7051, which only says nothing about one complex vs three simple
options. It just says the DHCPv6 server and client code has to be
modified. If you want to follow that recommendation, using 3 options is
actually easier, because you can configure most clients and server with
custom options. That's a big plus for easier deployment when you can
just tweak the config file and be done rather than needing a new version
of the software.

3. Failure recovery. The text doesn't say what the client is supposed to
do when the server is misconfigured. In particular, if the prefixes are
supposed to belong to well known pools (e.g. a supposedly multicast
prefix that does not start with ff), what to do when they aren't. Should
just that prefix be discarded or the whole option?

4. What's the allowed prefix length is for ASM_PREFIX64 and SSM_PREFIX64
is? Section 4, 2nd paragraph says it must be /96, but section 3 says
allowed values are from 0 to 128. As a DHCPv6 client and server
implementor, I'm confused what sanity checks I'm supposed to implement
here. Those two paragraphs seem to contradict each other.

5. Nit: I would add "DHCPv6" in the title of section 4.

6. Nit: Section 5: "DHCPv6 client MUST include OPTION_V6_PREFIX64 in its
OPTION_ORO." => "DHCPv6 client MUST include OPTION_V6_PREFIX64 code in
its OPTION_ORO".

That's it. IANA asked me to formulate my opinion on this draft no later
than Jan. 17th, so I'd appreciate authors' response before that date.

Tomek