[dhcwg] Why the precedence stuff is in draft-ietf-dhc-dhcpv6-netboot-05

Ted Lemon <Ted.Lemon@nominum.com> Tue, 06 October 2009 21:06 UTC

Return-Path: <Ted.Lemon@nominum.com>
X-Original-To: dhcwg@core3.amsl.com
Delivered-To: dhcwg@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 2658328C194 for <dhcwg@core3.amsl.com>; Tue, 6 Oct 2009 14:06:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.321
X-Spam-Level:
X-Spam-Status: No, score=-6.321 tagged_above=-999 required=5 tests=[AWL=0.278, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lzT1Csxk5S7O for <dhcwg@core3.amsl.com>; Tue, 6 Oct 2009 14:06:49 -0700 (PDT)
Received: from exprod7og125.obsmtp.com (exprod7og125.obsmtp.com [64.18.2.28]) by core3.amsl.com (Postfix) with ESMTP id DB11B28C14B for <dhcwg@ietf.org>; Tue, 6 Oct 2009 14:06:48 -0700 (PDT)
Received: from source ([64.89.228.229]) (using TLSv1) by exprod7ob125.postini.com ([64.18.6.12]) with SMTP ID DSNKSsuxysTDS3jWz89riuefXVkpqMaxnMPH@postini.com; Tue, 06 Oct 2009 14:08:27 PDT
Received: from webmail.nominum.com (webmail.nominum.com [64.89.228.50]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (Client CN "webmail.nominum.com", Issuer "Go Daddy Secure Certification Authority" (verified OK)) by shell-too.nominum.com (Postfix) with ESMTP id C80A81B82F8 for <dhcwg@ietf.org>; Tue, 6 Oct 2009 14:08:34 -0700 (PDT)
Received: from vpna-148.vpn.nominum.com (64.89.227.148) by exchange-01.win.nominum.com (64.89.228.50) with Microsoft SMTP Server (TLS) id 8.1.393.1; Tue, 6 Oct 2009 14:08:25 -0700
Content-Type: text/plain; charset="us-ascii"; format="flowed"; delsp="yes"
MIME-Version: 1.0 (Apple Message framework v1076)
From: Ted Lemon <Ted.Lemon@nominum.com>
In-Reply-To: <E835528B-EE8D-427E-A132-2B31B67CF058@nominum.com>
Date: Tue, 06 Oct 2009 14:08:22 -0700
Content-Transfer-Encoding: 7bit
Message-ID: <09907F6C-E868-434B-944B-87C76E8A1137@nominum.com>
References: <16A6AF20B09CDF48A96DABA42BF6793744EB8D4AD9@GVW1092EXB.americas.hpqcorp.net> <200910062041.n96Kf4WS021306@cichlid.raleigh.ibm.com> <E835528B-EE8D-427E-A132-2B31B67CF058@nominum.com>
To: "dhcwg@ietf.org WG" <dhcwg@ietf.org>
X-Mailer: Apple Mail (2.1076)
Subject: [dhcwg] Why the precedence stuff is in draft-ietf-dhc-dhcpv6-netboot-05
X-BeenThere: dhcwg@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <dhcwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/dhcwg>
List-Post: <mailto:dhcwg@ietf.org>
List-Help: <mailto:dhcwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 06 Oct 2009 21:06:50 -0000

The precedence stuff was my idea, so don't blame the authors.   The  
reason I proposed that they add it is that the draft as written prior  
to my comments depended on the order that the options appeared in the  
packet.   This seemed like a bad idea to me, since it placed a new  
requirement on servers and a new requirement on clients.

The new requirement it placed on servers was that the administrator be  
able to specify the order that options appear in the packet.   In  
particular, it would have been necessary not only that the bootfile  
options appear in a particular order, but also that the bootfile  
parameters options appear in a particular order.   Not only that, but  
the relative order in which the bootfile options and bootfile  
parameters options appeared was relevant, and would have to be  
specifiable by the administrator.

The new requirement placed on clients was that the client process  
options in the order they appeared in the packet.   This may not seem  
like a particularly onerous requirement, but it's not clear to me how  
to implement it, since the packet is a tree.   Is the order the  
options are processed depth-first, or breadth-first?   It also  
precludes storing the options in a hash table.

By using a precedence number, these problems are eliminated.   The  
administrator simply chooses the precedence, and this reaches the  
client in whatever order it reaches the client.   The precedence  
numbers present a clear map for the client to follow in choosing the  
order in which it processes the options, independent of their order  
within the packet.

The other solution to this problem, which is what the authors  
initially proposed, was just to make the boot parameters option a  
single option with suboptions, and to make the order of the suboptions  
in that option determine the processing order of the packets.   This  
has the same order-preserving requirement, although preserving order  
is arguably easier in this case.   We argued against the suboption  
method at the time because it seemed unnecessary, but perhaps we were  
premature.

Or perhaps the right thing to do is to have two options that don't  
recur: a bootfile-list option, and a bootfile-parameters-list  
option.   We already require the server and client to preserve the  
order of fields within options, so this would work fine.   The only  
problem is that the administrator now has to count fields in the  
options to ensure that the correspondence between fields is maintained.

Stephen Jacob proposed eliminating the wildcard bootfile-parameters  
option precedence, with the idea that this would remove some  
complexity.   In the two-option case it does remove complexity, and so  
is worth considering.   In the multiple-option or multiple-suboption  
cases I don't think it removes any real complexity, though.