Re: [netmod] 6991bis: address-with-prefix-length
Ladislav Lhotka <lhotka@nic.cz> Thu, 25 April 2019 08:31 UTC
Return-Path: <lhotka@nic.cz>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 350E61200E5 for <netmod@ietfa.amsl.com>; Thu, 25 Apr 2019 01:31:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
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 oRMgVmgCWTQF for <netmod@ietfa.amsl.com>; Thu, 25 Apr 2019 01:31:33 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 364BC120075 for <netmod@ietf.org>; Thu, 25 Apr 2019 01:31:33 -0700 (PDT)
Received: by trail.lhotka.name (Postfix, from userid 109) id 81ADA1820414; Thu, 25 Apr 2019 10:31:54 +0200 (CEST)
Received: from localhost (unknown [195.113.220.121]) by trail.lhotka.name (Postfix) with ESMTPSA id 4400E1820408; Thu, 25 Apr 2019 10:31:36 +0200 (CEST)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Per Hedeland <per@hedeland.org>
Cc: netmod@ietf.org
In-Reply-To: <ff7ac95a-3544-5485-c9d6-ff2b57ecf5cd@hedeland.org>
References: <10d3413c-df96-6e7d-df82-5542bb02348d@spritelink.net> <20190401161321.seiodlfsmjjvjcp5@anna.jacobs.jacobs-university.de> <699d2c10-9b08-97f1-69d9-f66e3a83c643@spritelink.net> <20190417192013.zdhz4e5fwakm3x4a@anna.jacobs.jacobs-university.de> <048ecdb8-759e-2905-11a8-4c1caedc9371@spritelink.net> <20190417195437.gpnvh6woidqkkqtt@anna.jacobs.jacobs-university.de> <874l6vsqvi.fsf@nic.cz> <4ef7deb6-9904-6ce1-5b84-4cd18a48256d@spritelink.net> <9ffbaa76105f00cc57bf071d432299e55f024544.camel@nic.cz> <ff7ac95a-3544-5485-c9d6-ff2b57ecf5cd@hedeland.org>
Mail-Followup-To: Per Hedeland <per@hedeland.org>, netmod@ietf.org
Date: Thu, 25 Apr 2019 10:31:13 +0200
Message-ID: <87a7gewkoe.fsf@nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/hnxIm3zF1gABuKqWWOirOS5ySp4>
Subject: Re: [netmod] 6991bis: address-with-prefix-length
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Apr 2019 08:31:36 -0000
Per Hedeland <per@hedeland.org> writes: > On 2019-04-18 10:41, Ladislav Lhotka wrote: >> On Thu, 2019-04-18 at 10:09 +0200, Kristian Larsson wrote: >>> >>> On 2019-04-18 09:40, Ladislav Lhotka wrote: >>>> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> writes: >>>> >>>>> On Wed, Apr 17, 2019 at 09:35:51PM +0200, Kristian Larsson wrote: >>>>>> I wonder though, isn't ipX-address-and-prefix-length the clearer name, >>>>>> or if >>>>>> we do want to shorten then ipX-address-and-plen. I think Martin stated >>>>>> the >>>>>> case for ipX-address-and-prefix but that is IMHO not the way this is >>>>>> typically perceived by people. >>>>>> >>>>>> 1.2.3.4/24 >>>>>> ^^^^^^^----- ipv4 address >>>>>> ^^^-- ipv4 prefix length >>>>>> >>>>>> now, taking the prefix-length you know that 1.2.3 is the prefix but does >>>>>> that mean the above is an IPv4 address and a prefix? Or is it just that >>>>>> you >>>>>> can infer the prefix from the above? It's just different ways of looking >>>>>> at >>>>>> it. My experience tells me ipX-address-and-prefix-length is the clearer >>>>>> way >>>>>> of conveying what this is. >>>>>> >>>>> >>>>> I guess this is somewhat subjective. The prefix length is the number >>>>> used to convey what the prefix is. So you are effectively defining an >>>>> address and the prefix that this address belongs to. ;-) >>>> >>>> Strictly speaking, what is being defined by the number is a subnet mask. >>> >>> Heh, amazing how something so binary can turn out to be so subjective ;) >>> This sort of turns into philosophical questions and I'm not sure we need >>> to straighten it all out. I'd still call the prefix-length the >>> prefix-length. It directly maps to the typical subnet mask >>> representation and as you say, they can be thought of as the same thing. >>> >>> Does this mean you prefer ipX-address-and-subnet-mask? Because I think >> >> No. >> >>> that when someone reads that they are going to expect a value that looks >>> like 1.2.3.4/255.255.255.0 rather than 1.2.3.4/24, which is why I still >>> think ipX-address-and-prefix-length (possibly s/prefix-length/plen/) is >>> the better name :) >>> >>> >>>>> Given that we already have ip-prefix (which does as well use a prefix >>>>> length to convey what the prefix is), it seems ip-address-and-prefix >>>>> is more consistent with the existing RFC 6991 definitions. Being >>>>> consistent with what we have was the main reason for me to prefer >>>>> ip-address-and-prefix. >>>> >>>> I am not in favour of adding this type. Having ip-prefix next to >>>> ip-address-and-prefix is confusing. >>> >>> Confusing or not, they are NOT interchangeable and actually do different >>> things, which is why both are needed. There's plenty of precedence to >> >> I actually agree with you. It is a historical accident that these two different >> things got mixed up (and some vendors contributed to this). I would argue that >> >> - IP prefix is a set of IP addresses, and as such can be thought of as a single >> entity. >> >> - IP address and subnet mask/prefix are two separate things, the latter being an >> instruction for routing to *other* destination addresses. > > Agreed - except the not entirely minor nit that the thing after the > "/" is not a prefix but a *prefix-length*. Another way of putting it Yes, you are right, mea culpa. > is that the IP address is a property of an interface, while the > prefix-length or subnet mask is a property of the network that an > interface is connected to. > > So this would clearly be two separate values "bundled" into one, and > despite the similar syntax, it is radically different from the > existing ip*-prefix types, which really do represent a single value - > as Kristian pointed out earlier in the thread, the value is the > initial N bits of a set of IP addresses - i.e. a prefix, as the name > says. > > Thus if these types should be added, I don't think there is any reason > to have a naming that is "consistent" with the existing ip*-prefix > types - rather the naming should highlight the difference. And since > the two values given are an IP address and a prefix-length, the > natural choice would be ip*-address-and-prefix-length. > > Using ip*-address-and-prefix would be both inaccurate (neither of the > two values is a prefix, although they can of course be combined to > compute a one) and IMHO confusing due to the similarity in naming of > the existing ip*-prefix types. > > If ip*-address-and-prefix-length is considered too verbose/clunky > (although I don't know why this matters for a type name), a reasonable > shorter form could IMHO be ip*-address-and-length - the prefix-length > is of course a length, but it is not a prefix. Kristian's > ip*-address-and-plen is of course even shorter, and could be > considered to have more information, but I believe we generally try to > avoid at least non-obvious abbreviations in the YANG modules. > >>> this, like postgresql has data types (cidr and inet) that map exactly to >>> this behaviour, i.e. both store something that looks like an IP address >>> and a prefix-length but one (cidr for pg) forces bits in host portion to >>> be set to all 0. Python ipaddress has the same with IPv4Address and >>> IPv4Interface. >>> >>> >>>> Moreover, the most natural use for >>>> this type would be the address specification in the "ietf-ip" module, >>>> but we already have two leaves there: ip and prefix-length. >>> >>> Like I said in another mail, I think it is nice if these common >>> datatypes become used by vendors and implementors. Many use proprietary >> >> That's fine, but we can also define a *grouping* of IP address and subnet prefix >> length. And if we stick to the leaves "ip" and "prefix-length", this grouping >> can be used in the next revision of RFC 7277. This would be my preferred >> solution. > > From a data modelling perspective, having separate leafs for separate > values should be the natural choice, and I don't think anyone is > suggesting that the "bundled" type, if added, should be used in e.g. > RFC 7277. A grouping could be nice, but it is still two separate > leafs. Yes, and it is IMO how it should be. As Martin pointed out, complicated lexical representations are difficult to deal with, e.g. in XPath expressions. > > This is no solution to Kristian's problem, which as far as I > understand is about having a YANG model for existing devices that > already *use* the "bundled" type, i.e. it "needs" to be a single leaf > in the YANG module. I doubt this is a real problem - a netconf/restconf server backend can easily translate the two separate leaves into a single string if necessary. Backends on other devices may well need to use the IP address and mask separately. Lada > > Whether this need is enough motivation to actually add these types to > ietf-inet-types I don't really know. There is no real cost in doing it > per se, but it could have the negative consequence that it is taken as > an encouragement/"blessing" to use these types when writing new > modules that *don't* "need" to use them. Bad from a data modelling > perspectve, and bad for the operational reasons that Martin gave an > example of while I was writing this. But maybe the 'description' > statement could warn against this. > > --Per -- Ladislav Lhotka Head, CZ.NIC Labs PGP Key ID: 0xB8F92B08A9F76C67
- [netmod] 6991bis: address-with-prefix-length Kristian Larsson
- Re: [netmod] 6991bis: address-with-prefix-length Juergen Schoenwaelder
- Re: [netmod] 6991bis: address-with-prefix-length Acee Lindem (acee)
- Re: [netmod] 6991bis: address-with-prefix-length Acee Lindem (acee)
- Re: [netmod] 6991bis: address-with-prefix-length Martin Bjorklund
- Re: [netmod] 6991bis: address-with-prefix-length Acee Lindem (acee)
- Re: [netmod] 6991bis: address-with-prefix-length Michael Rehder
- Re: [netmod] 6991bis: address-with-prefix-length Michael Rehder
- Re: [netmod] 6991bis: address-with-prefix-length Martin Bjorklund
- Re: [netmod] 6991bis: address-with-prefix-length Kristian Larsson
- Re: [netmod] 6991bis: address-with-prefix-length Kristian Larsson
- Re: [netmod] 6991bis: address-with-prefix-length Mahesh Jethanandani
- Re: [netmod] 6991bis: address-with-prefix-length Kristian Larsson
- Re: [netmod] 6991bis: address-with-prefix-length Acee Lindem (acee)
- Re: [netmod] 6991bis: address-with-prefix-length Mahesh Jethanandani
- Re: [netmod] 6991bis: address-with-prefix-length Kristian Larsson
- Re: [netmod] 6991bis: address-with-prefix-length Christian Hopps
- Re: [netmod] 6991bis: address-with-prefix-length Jeff Tantsura
- Re: [netmod] 6991bis: address-with-prefix-length tom petch
- Re: [netmod] 6991bis: address-with-prefix-length Juergen Schoenwaelder
- Re: [netmod] 6991bis: address-with-prefix-length Rob Wilton (rwilton)
- Re: [netmod] 6991bis: address-with-prefix-length Kristian Larsson
- Re: [netmod] 6991bis: address-with-prefix-length Rob Wilton (rwilton)
- Re: [netmod] 6991bis: address-with-prefix-length Martin Bjorklund
- Re: [netmod] 6991bis: address-with-prefix-length Juergen Schoenwaelder
- Re: [netmod] 6991bis: address-with-prefix-length Rob Wilton (rwilton)
- Re: [netmod] 6991bis: address-with-prefix-length Acee Lindem (acee)
- Re: [netmod] 6991bis: address-with-prefix-length Rob Wilton (rwilton)
- Re: [netmod] 6991bis: address-with-prefix-length tom petch
- Re: [netmod] 6991bis: address-with-prefix-length Rob Wilton (rwilton)
- Re: [netmod] 6991bis: address-with-prefix-length Reshad Rahman (rrahman)
- Re: [netmod] 6991bis: address-with-prefix-length Martin Bjorklund
- Re: [netmod] 6991bis: address-with-prefix-length Mahesh Jethanandani
- Re: [netmod] 6991bis: address-with-prefix-length Juergen Schoenwaelder
- Re: [netmod] 6991bis: address-with-prefix-length Christian Hopps
- Re: [netmod] 6991bis: address-with-prefix-length Alex Campbell
- Re: [netmod] 6991bis: address-with-prefix-length Christian Hopps
- Re: [netmod] 6991bis: address-with-prefix-length Kristian Larsson
- Re: [netmod] 6991bis: address-with-prefix-length Kristian Larsson
- Re: [netmod] 6991bis: address-with-prefix-length Juergen Schoenwaelder
- Re: [netmod] 6991bis: address-with-prefix-length Kristian Larsson
- Re: [netmod] 6991bis: address-with-prefix-length Juergen Schoenwaelder
- Re: [netmod] 6991bis: address-with-prefix-length Ladislav Lhotka
- Re: [netmod] 6991bis: address-with-prefix-length Kristian Larsson
- Re: [netmod] 6991bis: address-with-prefix-length Ladislav Lhotka
- Re: [netmod] 6991bis: address-with-prefix-length Juergen Schoenwaelder
- Re: [netmod] 6991bis: address-with-prefix-length Martin Bjorklund
- Re: [netmod] 6991bis: address-with-prefix-length Juergen Schoenwaelder
- Re: [netmod] 6991bis: address-with-prefix-length Martin Bjorklund
- Re: [netmod] 6991bis: address-with-prefix-length Per Hedeland
- Re: [netmod] 6991bis: address-with-prefix-length Martin Bjorklund
- Re: [netmod] 6991bis: address-with-prefix-length Juergen Schoenwaelder
- Re: [netmod] 6991bis: address-with-prefix-length Kristian Larsson
- Re: [netmod] 6991bis: address-with-prefix-length Kristian Larsson
- Re: [netmod] 6991bis: address-with-prefix-length Martin Bjorklund
- Re: [netmod] 6991bis: address-with-prefix-length Rob Wilton (rwilton)
- Re: [netmod] 6991bis: address-with-prefix-length tom petch
- Re: [netmod] 6991bis: address-with-prefix-length Ladislav Lhotka
- Re: [netmod] 6991bis: address-with-prefix-length Kristian Larsson