Re: [Roll] [roll] #108: trickle-mcast: should there be an explicit version field?

Robert Cragie <robert.cragie@gridmerge.com> Tue, 20 November 2012 22:57 UTC

Return-Path: <robert.cragie@gridmerge.com>
X-Original-To: roll@ietfa.amsl.com
Delivered-To: roll@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3C8F821F8787 for <roll@ietfa.amsl.com>; Tue, 20 Nov 2012 14:57:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iR2FXtuc8p93 for <roll@ietfa.amsl.com>; Tue, 20 Nov 2012 14:57:55 -0800 (PST)
Received: from mail41.extendcp.co.uk (mail41.extendcp.co.uk [79.170.44.41]) by ietfa.amsl.com (Postfix) with ESMTP id 7604D21F86E5 for <roll@ietf.org>; Tue, 20 Nov 2012 14:57:55 -0800 (PST)
Received: from client-86-9-227-213.oxfd-bam-1.adsl.virginmedia.com ([86.9.227.213] helo=[192.168.0.2]) by mail41.extendcp.com with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.77) id 1TawlJ-00061U-92; Tue, 20 Nov 2012 22:57:49 +0000
Message-ID: <50AC0B4F.8020705@gridmerge.com>
Date: Tue, 20 Nov 2012 22:59:27 +0000
From: Robert Cragie <robert.cragie@gridmerge.com>
Organization: Gridmerge Ltd.
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20121026 Thunderbird/16.0.2
MIME-Version: 1.0
To: Michael Richardson <mcr+ietf@sandelman.ca>
References: <058.a2b4f297c2cf9334c783ff7c900bdb13@trac.tools.ietf.org> <50AA2A9A.1030000@gridmerge.com> <21594.1353433215@obiwan.sandelman.ca>
In-Reply-To: <21594.1353433215@obiwan.sandelman.ca>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha1"; boundary="------------ms020104020607000209000905"
X-Authenticated-As: robert.cragie@gridmerge.com
Cc: roll@ietf.org
Subject: Re: [Roll] [roll] #108: trickle-mcast: should there be an explicit version field?
X-BeenThere: roll@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: robert.cragie@gridmerge.com
List-Id: Routing Over Low power and Lossy networks <roll.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/roll>, <mailto:roll-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/roll>
List-Post: <mailto:roll@ietf.org>
List-Help: <mailto:roll-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/roll>, <mailto:roll-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 20 Nov 2012 22:57:56 -0000

On 20/11/2012 5:40 PM, Michael Richardson wrote:
>>>>>> "Robert" == Robert Cragie <robert.cragie@gridmerge.com> writes:
>      Robert> Regarding having an explicit version field: I have thought
>      Robert> about this more and I am happy with the text in draft 02 as
>      Robert> it stands, as it leaves it free for future versions to
>      Robert> define the reserved fields in more detail providing at least
>      Robert> 1 bit is set to 1. I certainly wouldn't see the point in
>      Robert> making the whole set of reserved bits into a version number
>      Robert> as this could limit flexibility in the future.
>
> What would an existing implementation do when it sees these reserved
> bits?
<RCC>Discard the packet if any are set - that's what's specified now. So 
this can be implicitly regarded as a version number, where (rsvd == 0) 
-> version 0, (rsvd > 0) -> not version 0.</RCC>
>
> Turning reserved bits into a version number after the fact is a bad
> idea... how much would change with the version number?
> This needs to be thought out beforehand.
<RCC>
So there are currently 5 reserved bits. How many do we want to use for a 
version number? It could be argued that one bit is enough as to some 
extent in the next version, you are free to change the format providing 
earlier versions discard newer versions.

So maybe:

       0                   1 2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                      |  Option Type  |  Opt Data Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | S |M|V| rsv   |   sequence    |      seed-id (optional)       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

would be adequate where:

V = version number. Must be set to 0, must be received as 0.

Some may argue about backwards compatibility but this means you have to 
ignore bits set on receipt and you are not at liberty to change the 
header apart from filling in the reserved fields. This only works 
acceptably if the fields aren't tightly packed and there are plenty of 
reserved fields - not in this case.
</RCC>