On Mon, Apr 11, 2022 at 11:09 AM Randy Presuhn < randy_pres...@alumni.stanford.edu> wrote:
> Hi - > > On 2022-04-11 10:43 AM, Joel M. Halpern wrote: > > Do we have reason to believe that no one outside the IETF has used > > ip-address as we published in ways that need a zone? > > It seems like wishful thinking. There's really no way to verify that > no one anywhere has used the specification as it was intended. > > > It seems to me that the first step in the plan below is reasonable. But > > Agreed. > > > changing ip-address itself seems a bad idea. If one means no-zone, use > > the -no-zone typedef. > > I'd go further. There are at least two bad ideas in the second step: > (1) the incompatible change to ip-address > IMO this change aligns with the operational expectations and actual usage. To Acee's point, nobody has said (on this list) that they used ip-address and wanted zones, or supported it. There isn't any YANG statement (yet) that could warn the user that a typedef is going to have an NBC-change in 2 years, and then another (in 2 years) stating the NBC change occurred. Real code (and YANG is just more source code) needs incompatible changes once in a while. Some languages have deprecation warnings. YANG needs that, and hopefully the versioning work will address it. (2) the deprecation of ip-address-no-zone, which would trigger > maintenance headaches for everyone who used that type > correctly in the first place. > agreed that this does not need to be deprecated > > Hoping that Yang versioning would be able to paper over the > resulting mess strikes me as overly optimistic. > > The NBC issues are real (as this thread clearly demonstrates). There are corner-cases where an incompatible change is the least worst solution. > Randy > > Andy > > Yours, > > Joel > > > > On 4/11/2022 1:28 PM, Andy Bierman wrote: > >> > >> > >> On Mon, Apr 11, 2022 at 10:07 AM Rob Wilton (rwilton) > >> <rwilton=40cisco....@dmarc.ietf.org > >> <mailto:40cisco....@dmarc.ietf.org>> wrote: > >> > >> Hi all, > >> > >> Thanks for the comments on this thread so far. It would be nice if > >> we are able to come to some sort of rough consensus to a solution. > >> > >> I think that there is consensus that the YANG type ip-address (and > >> the v4/v6 versions) are badly named as the prominent default type > >> name has been given to the unusual variant of including zone > >> information. > >> > >> Based on the comments on this thread, it also seems likely to me > >> that most of the usages of ip-address in YANG RFCs is likely to be > >> wrong, and the intention was that IP addresses without zones was > >> intended. At a rough count, of the published RFC YANG models at > >> github YangModels/standard/ietf/RFC/ to be: > >> 86 uses of ip-address > >> 68 uses of ipv4-address > >> 66 uses of ipv6-address > >> > >> 1 use of ip-address-no-zone > >> 4 uses of ipv4-address-no-zone > >> 4 uses of ipv6-address-no-zone > >> > >> These types appear in 49 out of the 141 YANG modules published in > >> RFCs. At a quick guess/check it looks like these 49 YANG modules > >> may appear in 40-50 RFCs. > >> > >> As mentioned previously, it is also worth comparing this to the > >> OpenConfig YANG modules: > >> They have redefined ip-address (and v4/v6 variants) to exclude zone > >> information and have defined separate types include zone > information. > >> There are no explicit uses of the "-zoned" variants of OpenConfig IP > >> addresses in the latest OpenConfig github repository. However, > >> approximately a third of the IP address types are still to the > >> ietf-inet-types.yang rather than openconfig-inet-types.yang, so in > >> theory some of those 58 entries could still intentionally be > >> supporting zoned IP addresses, but I would expect that the vast > >> majority would not. > >> I do see some strong benefit if this basic type being defined in the > >> same way in both IETF and OC YANG, and I believe that the OC folks > >> have got the definition right. > >> > >> I see that some are arguing that the zone in the ip-address > >> definition is effectively optional, and implementations are not > >> really obliged to implement it. I don't find that argument > >> compelling, at least not with the current definition of ip-address > >> in RFC 6991. I see a clear difference between a type defined with > >> an incomplete regex that may allow some invalid values and a type > >> that is explicitly defined to included additional values in the > >> allowable value space. Further, I believe that a client just > >> looking at the YANG module could reasonably expect a server that > >> implements a data node using ip-address would be expected to support > >> IP zones, where they are meaningful, or otherwise they should > >> deviate that data node to indicate that they don't conform to the > >> model. > >> > >> We also need to be realistic as to what implementations will do. > >> They are not going to start writing code to support zones just > >> because they are in the model. They will mostly reject IP addresses > >> with zone information. Perhaps some will deviate the type to > >> ip-address-no-zone, but probably most won't. > >> > >> The option of respinning approx. 40-50 RFCs to fix this doesn't feel > >> at all appealing. This would take a significant amount of > >> time/effort and I think that we will struggle to find folks who are > >> willing to do this. Although errata could be used to point out the > >> bug, then can't be used to fix it, all the errata would be "hold for > >> document update" at best. Further, during the time that it would > >> take us to fix it, it is plausible that more incorrect usages of > >> ip-address will likely occur (but perhaps could be policed via > >> scripted checks/warnings). > >> > >> > >> I still feel the right long-term solution here is to get to a state > >> where the "ip-address" type means what 99% of people expect it to > >> mean, i.e., excluding zone information. > >> > >> Given the pushback on making a single non-backwards compatible > >> change to the new definition, I want to ask whether the following > >> might be a possible path that gains wider consensus: > >> > >> (1) In RFC 6991 bis, I propose that we: > >> (i) define new ip-address-with-zone types (and v4 and v6 versions) > >> and keep the -no-zone versions. > >> (ii) we change the description of "ip-address" to indicate: > >> - Although the type allows for zone information, many > >> implementations are unlikely to accept zone information in most > >> scenarios (i.e., so the description of the type more accurately > >> reflects reality). > >> - A new ip-address-with-zone type has been introduced to use where > >> zoned IP addresses are required/useful, and models that use > >> ip-address with the intention of supporting zoned IP addresses MUST > >> migrate to ip-address-with-zone. > >> - In the future (at least 2 years after RFC 6991 bis is published), > >> the expectation is that the definition of ip-address will change to > >> match that of ip-address-no-zone. > >> > >> (2) Then in 2 years time, we publish RFC 6991-bis-bis to change the > >> definition of ip-address to match ip-address-no-zone and deprecate > >> the "-no-zone" version at the same time. > >> > >> My reasoning as to why to take this path is: > >> (1) It is a phased migration, nothing breaks, 3rd parties have time > >> to migrate. > >> (2) It ends up with the right definition (with the added bonus that > >> it aligns to the OC definition). > >> (3) It doesn't require us republishing 40+ RFCs. > >> (4) it hopefully allows us to use YANG versioning to flag this as an > >> NBC change, along with the other standards to help mitigate this > >> change (import revision-or-derived, YANG packages, schema > >> comparison). > >> > >> I would be keen to hear thoughts on whether this could be a workable > >> consensus solution - i.e., specifically, you would be able to live > >> with it. > >> > >> > >> > >> This is a very thoughtful proposal. Looks good to me. > >> > >> It does introduce a window in which some new modules might start using > >> 'ip-address-no-zone'. > >> Should they wait for the real 'ip-address' in 2 more years or just use > >> 'ip-address-no-zone'? > >> > >> The leaf description-stmt using 'ip-address' should specify if any > >> zone support is required. > >> The default could be 'none' so no mention is needed most of the time. > >> > >> > >> > >> > >> Regards, > >> Rob > >> > >> > >> > >> Andy > >> > >> > >> > -----Original Message----- > >> > From: netmod <netmod-boun...@ietf.org > >> <mailto:netmod-boun...@ietf.org>> On Behalf Of Randy Presuhn > >> > Sent: 08 April 2022 18:59 > >> > To: Christian Hopps <cho...@chopps.org <mailto:cho...@chopps.org > >> > >> > Cc: l...@ietf.org <mailto:l...@ietf.org>; netmod@ietf.org > >> <mailto:netmod@ietf.org> > >> > Subject: Re: [netmod] [Lsr] I-D Action: > >> draft-ietf-lsr-ospfv3-extended-lsa- > >> > yang-10.txt > >> > > >> > Hi - > >> > > >> > On 2022-04-08 5:11 AM, Christian Hopps wrote: > >> > .. > >> > > Instead, Acee (I'm not sure I'd call him WG B :) is asserting > >> that > >> > > *nobody* actually wanted the current type, and it has been > >> misused > >> > > everywhere and all over. The vast majority of implementations > in > >> > > operation probably can't even handle the actual type (Andy's > >> point). So, > >> > > Acee is just the messenger of bad news here. Please note that > >> the AD in > >> > > charge of all this agreed with Acee as well. > >> > > >> > That's not the impression one gets from modules like > >> > https://www.ietf.org/archive/id/draft-ietf-mpls-mldp-yang-10.txt > >> <https://www.ietf.org/archive/id/draft-ietf-mpls-mldp-yang-10.txt> > >> > which employs both types. So, regardless of whether one is > >> willing > >> > to respect YANG's compatibility rules, it's no longer a matter of > >> > speculation whether a name change would cause actual damage - > >> > it clearly would. Furthermore, my recollection is that the > >> > WG *did* discuss whether the "zonable" property was needed, so > >> > any argument based on the assertion that "*nobody* actually > >> > wanted the current type" seems to me to based on a false premise. > >> > > >> > Randy > >> > > >> > _______________________________________________ > >> > netmod mailing list > >> > netmod@ietf.org <mailto:netmod@ietf.org> > >> > https://www.ietf.org/mailman/listinfo/netmod > >> <https://www.ietf.org/mailman/listinfo/netmod> > >> > >> _______________________________________________ > >> netmod mailing list > >> netmod@ietf.org <mailto:netmod@ietf.org> > >> https://www.ietf.org/mailman/listinfo/netmod > >> <https://www.ietf.org/mailman/listinfo/netmod> > >> > >> > >> _______________________________________________ > >> netmod mailing list > >> netmod@ietf.org > >> https://www.ietf.org/mailman/listinfo/netmod > > > > _______________________________________________ > > netmod mailing list > > netmod@ietf.org > > https://www.ietf.org/mailman/listinfo/netmod > > _______________________________________________ > netmod mailing list > netmod@ietf.org > https://www.ietf.org/mailman/listinfo/netmod >
_______________________________________________ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod