Re: [netmod] Comment on draft-clacla-netmod-yang-model-update-02

Balazs Lengyel <balazs.lengyel@ericsson.com> Wed, 15 November 2017 10:03 UTC

Return-Path: <balazs.lengyel@ericsson.com>
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 4CEF212008A for <netmod@ietfa.amsl.com>; Wed, 15 Nov 2017 02:03:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.11
X-Spam-Level:
X-Spam-Status: No, score=-4.11 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, T_DKIM_INVALID=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (message has been altered)" header.d=ericsson.onmicrosoft.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 RLwurSQFsG0J for <netmod@ietfa.amsl.com>; Wed, 15 Nov 2017 02:03:20 -0800 (PST)
Received: from sessmg23.ericsson.net (sessmg23.ericsson.net [193.180.251.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BCDA5129449 for <netmod@ietf.org>; Wed, 15 Nov 2017 02:03:19 -0800 (PST)
X-AuditID: c1b4fb2d-2ec699c000001e3d-c3-5a0c10e5dab1
Received: from ESESSHC011.ericsson.se (Unknown_Domain [153.88.183.51]) by sessmg23.ericsson.net (Symantec Mail Security) with SMTP id 85.7A.07741.5E01C0A5; Wed, 15 Nov 2017 11:03:18 +0100 (CET)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.51) with Microsoft SMTP Server (TLS) id 14.3.352.0; Wed, 15 Nov 2017 11:03:14 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.onmicrosoft.com; s=selector1-ericsson-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Vq4xRuT2OIvkoAzvdaCD0AyO7Qfnf6OhK09uic4PqmI=; b=KphqU9l5ZpU0g5gAr3IQ+LBUGfDh99Ffa7LIPj5KDj3o8nfuzGIVUWBNMzSmojZ98ZvcFZ05+W7vL3gdarNWobhkMBgqcvp6kj0ZP2JE1SjEJMPG37wf3571UoEeEZU5ceRH0mfxJtTV9Z0/tueZlE1+ZVFNiExVZuha870EtJo=
Received: from [IPv6:2001:67c:370:128:e196:b266:ad4f:77e2] (2001:67c:370:128:e196:b266:ad4f:77e2) by AM4PR07MB3426.eurprd07.prod.outlook.com (2603:10a6:205:b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.239.4; Wed, 15 Nov 2017 10:03:13 +0000
To: Joe Clarke <jclarke@cisco.com>, netmod@ietf.org
References: <19a4129f-84b4-2d6b-8405-37b85952f53a@ericsson.com> <20171114212210.7b2g3t3nqzrhcgrs@elstar.local> <20171115053046.nr33ypoibdn4jufv@elstar.local> <9094b945-366f-145d-fbc1-5cf116f4a3bc@cisco.com>
From: Balazs Lengyel <balazs.lengyel@ericsson.com>
Message-ID: <614c9b33-774a-cbe0-0328-cfc7ad9ac11b@ericsson.com>
Date: Wed, 15 Nov 2017 18:02:52 +0800
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0
MIME-Version: 1.0
In-Reply-To: <9094b945-366f-145d-fbc1-5cf116f4a3bc@cisco.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Content-Language: en-US
X-Originating-IP: [2001:67c:370:128:e196:b266:ad4f:77e2]
X-ClientProxiedBy: SG2PR06CA0099.apcprd06.prod.outlook.com (2603:1096:3:14::25) To AM4PR07MB3426.eurprd07.prod.outlook.com (2603:10a6:205:b::11)
X-MS-Office365-Filtering-Correlation-Id: c45f533d-7e03-4504-a395-08d52c1015d1
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603258); SRVR:AM4PR07MB3426;
X-Microsoft-Exchange-Diagnostics: 1; AM4PR07MB3426; 3:RGBO34kJXA9vBv1fAa3n3R+1JFdTwDclLm0BHQkh52jLSACOYy8KizKvl/QUZAkHEWTwJqiVLo/EmjvRTx1+7e92xzQSLGrzInXzfb0zSn2VYqmhtOVGTDixKhjrxz0bm96O35lWM3s7U3Ft5BYOio/SooTPAEcpPUqv3p8L2TrIn+07IoERcozaxMOkGvA5+WuAu7oFvX+Fxc5bhq4ROEnLNoeLDZoTvIPfhfWCxtXqLxuyTgRGTeyF1+sYDC/3; 25:ZHYbFLnZEEn1we1LK6t7URoqkhX9Q+my2/Dv9sQuBEZBRmJLQhjT+TaAZwciQRKxSOTTQsRQ2cWnr3sFmQZx88k/qvitEDTR9bOYYbpFuzKgxLlOiA6mkkwXvnJuBJSYpDcRSAlFig5OBfphg3YtVnqDgh7W4R6aJMDwVX8BTlKRxv9Jr7S3R4HV2NuYHdO6d1B/lOK7pWCeXSMIy1mDz1Qf5U89EF84OMyU2EUHP3rYGI4B/mO2Ee++Pxa9uTIHa15vozDKj/qSYt5jJQs2RIIH2/LvO+jOnd23tHzVNZBdbatnTFfjujNmoBSDx3xXHHZPqPcCiR2DpqILTLTtLli1C1Q8dvT0NCX/gHkM52o=; 31:6jNRMKeNpQNAzL44n+K+unxepAid+4Yvt0UN18J5PqP9l0BojY0rnnESItTzRKi958EZ+oAHQqhk6WJ4zxwX0v+D4UR++HSO2QxvCiBk3pOCLqwQ0SKB7MFeCmeBSqzh9+x7wytQt4pvewVR7C4LyNmUDLmMDgR5yK7TCmXLvUx//YpKm7vWm4MEXOwL87hd2MjmUhBWI2MSCKrEa1g5GTD2LCm5rQBon5nmBDnRMno=
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM4PR07MB3426:
Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=balazs.lengyel@ericsson.com;
X-Microsoft-Exchange-Diagnostics: 1; AM4PR07MB3426; 20:VSIHVrObqzPAy3PgMYOQAx3zurJKaF8hdishiZNTmpHMVXyaVy0E5QE45vZJ/sqm65/Ba8RKjK92+Fx5ryGlxBdio/wMscV+T2wB42YI0RSsSTKUWbNhyZ+olVNZLlFGge+M2oGx2ZOWkKlFOSEqzeg8CvzTAGnowrrvtc57RcNABSZn+uwDSCZAreukBRT3LB8kx7IGqS/p6AU94dYdaMiuc2vCM/APbab7TqRCuJFSAofCRxqSrcuSJEampJOzwzhpO2IXJum8SAwD4P9rRto5Wn1huoYpnZrBZLirKNTmW6TJXkj0AIsUmv1vZnLjl8fYr0mwclZw7uNSVoQUr4yvXhX9X58xN8u/i4jvZBKQoOAw8PT12R0z5AoiO3C1kTSkOxuHhNClxhlglHAUgYx15A1kLtfD12XFsiTVIUtmjJuqt5Np7TgDA9TmdiJ4U2dVuxyhp6GFRh24R4jIGecZ/R6vOivh/DrAMVzMwEVXQ5J4HEfoUHGQ6rKs1XZr; 4:y1niFw2VLvIgZXz37nM9GQ48aVg62DIRO1TB5RcK8NCN1v1hdWyB6GDhHOTR9prz5OT4yS3yyFwct3TopUIPQcqa/0lHSTsqb0awtjNjtyIKEaQLR8eQ7RcRcnwNZxX1oEtRH/5rxB5aXZuFKJ/rV63e4SYrDYS52GAD5U3PSWKZ8ed1o0D/6UlkCMktzejjk4TC8XbeOkX6GYF2VqzzyZAkLaF10wjLUF/DBqyQaEuIs0BSbmfDj4YhvnzL4oQlBxBo6ID+YCjt9bQRZeyPJRToPeYLEvDWKlXRKBb5twOL9ehtazkYKb33yuDoGyXDu2kTIpxqprAeEJVh10HEvCcwRo8MEcKbzOQbD6qB3Ow=
X-Microsoft-Antispam-PRVS: <AM4PR07MB34266C13086ECD08BF9DECFDF0290@AM4PR07MB3426.eurprd07.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:(37575265505322)(158342451672863);
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(3231022)(3002001)(93006095)(93001095)(6041248)(20161123562025)(20161123564025)(20161123558100)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM4PR07MB3426; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM4PR07MB3426;
X-Forefront-PRVS: 0492FD61DD
X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(376002)(346002)(377424004)(189002)(24454002)(199003)(252514010)(33646002)(86362001)(2420400007)(6116002)(8936002)(8676002)(106356001)(36756003)(15650500001)(65826007)(53546010)(25786009)(67846002)(23676003)(81166006)(7736002)(81156014)(6666003)(1706002)(2950100002)(305945005)(4001150100001)(31696002)(97736004)(105586002)(64126003)(47776003)(50466002)(31686004)(7110500001)(58126008)(83506002)(53936002)(54356999)(101416001)(230783001)(6306002)(6486002)(229853002)(478600001)(76176999)(189998001)(966005)(5660300001)(2870700001)(6246003)(93886005)(2906002)(68736007)(65956001)(10710500007)(65806001)(50986999)(316002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR07MB3426; H:[IPv6:2001:67c:370:128:e196:b266:ad4f:77e2]; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en;
Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts)
X-Microsoft-Exchange-Diagnostics: 1;AM4PR07MB3426;23:7wcWgSCSIVR9mrmTiQDgzT5ZSPxqf2/WVlUB3xGNpgbiKNZhw7j6V81IydDj6iRp1NHty0NP+TziBRTh869xap7Y1u/RX+dynxvJCIdeZXt89QdJLR/x843eF0vbvuC5drA5K4lbMUNpP0+ChTcr+/jHTpGVRMTKPXqpniMlZtyPsP5x1qolmYm0345s2Gp4uTpeWCDHUAAFXs1ELe0HuEQjunhTbjan8ONJcPOZpZQSaImsPOC5H/aAyH80M8eiaGjRKfNLsLUPU1EGo0CkIsEFEMUicuMxBGJJwPreDU3U+k1WiH/GwYj6ghchiEBKJcr7lHHr65EzI5U7j4Rx44Avf29w23AQjTpwso8+wsMDOKGQF7R+DoQvXhU4m1g2NYEsqucHvY6O0SPvv6PIaICVD2MINAZY5bqayAg3BOxfRU3D/2pyYKwtDRhBYnTYSaiQNaZoNjtUbJGFq1/n4KbGf5jliRze+WTweYTWXXLEtlXOntnjh5OEKTzn6jlr2Bk4fNjCpNhxbIpM0gmIBFeNOOdixL3H8ejyrm5OiDnrqlszhFUxSR2NBU5N+sAGywsCfYYgVr8UrJN6zADHDIPBopgXkqPOQE04Ecd+3QHaY2G1xih1pn8Z1rPt/OXxhrkLoPHwm0B3JnAFsAo+wkEKqtcuXK3gopF37CnUKqn2WX9/YN40o00XtBNDqk1klKgttygaNsFFwsT6T8RVrsts7AghbKCEJ/3+HrA2Fz0P/kOnM+TTbos3Ed9Oet4ZWh27myAdUwm9ZVoaiR1R9K8Dy1SBa2NhAGlkaGW5I3SogmahMDg+bevSDmZaAjNIkWuVKPncKTa5kxhrI1sZ8OSBU2GiUrKbfVr6f5LNtpgw08MjF+RGbSciCXyHO8Aw+erEh4IxOGW+gNG7Gj/a5kHtAvE5La+NFkA3WHKxM+NjbLJHduP3IhDfjDoTWabHM+lQo2Hf93kkULinuuFTOk78GU8DiuZAruqR0C8EK9V6auW1agY9yj33ETeseeKa1njbQnGn2eQl5z6paEfnZxgp0+vo/nyeW4RchJiWyS47mbKtoxeoEMwR03clhOfC5VSKpjVZnKkA4HGl4hFHUfDg7GfsIpi3kes0Lt6uYEK9RwDrBYOSa+ZBU6xElgmU41ia5Rb2vjHx87EkgG6Dn4UwjiqwGFMZIMsWyZe37yy+s4GlziP43nBbLqc068lUHzYqJ+jcwgOlLXj0yNnpT/us/TlT+vksqqBRs5LeHYthvbArpLPSvhW/b0a3BjvwiA1Ur91u2ZYM/yQPCUsvgtoMXxleXOGmewyU78Ir/ZxxHDMye2rqKTKPX+/pk53d9mwblZgyEzsRBG+U+tn6UurnjKe0t0dj9ghd68cS2M5SOfyNXITSAY8En66pNswKE4VHe9KOeo6e2Iaw2ZhEWInwnIHCJCLlEl9dFXVzEHfSrMOFwEyZCNPOgxrOTRKlwfvjZcsdymXrHMq81I0BPg==
X-Microsoft-Exchange-Diagnostics: 1; AM4PR07MB3426; 6:zJFNRSDvrMSjjsUNsG+0urooGHrJOao83gcpFO8Gb4wdEBgg704fbM+ssCQTPjrto85DikS3ijZI8CajTZbnbr3xFe5cQtjdF9ie32NBkPXnjak57BPcgA4yj/t/BKa+CY70O/2Kw01AbuQQeVjBjNsPhkz7Hw4oObhLi1+GdDmaPXX+RbbHKdqc0984uH/k6rlFHM/Z4UXRla6fOqonNR6aWgoIh20tBJj7LBeQ/pmxhLUy++lXE7FqaCreygWZKF5TGvUaRmhQjtk+b1oLqazTML/4TzG9AsK93Ibhm4ftrsQ5xFL4Psi9Cy8xv/Y9FZEmQArQBdVHPRt2YkFJXeZPaGZwj+nGNVg7iDMz3sQ=; 5:d+8Z8YVzzxEmWGQH7a3ZVMjK7T9A+xuMFsjyx2FYUO747p0KfJhka4BJKvqc17DgMx5yQbG12aSmYVlY6U4spPevUhguooKxA5wei43QhTlzgXT10mvzR+cwDoyzRsHHQHcC0Aap0e+bPPqHDfC6PSsUxQNBXUSdhWmbSFWnPnI=; 24:/ccd4L5y01FRNWsxxhY6opJhk+Oy31MhS6BYcjsLXly0Vv3tswrK1I2L7rHEBwQFLuCXzFbmwqDCT8EO3gSHtXblPQ2I6BTJoycnMA9JcZ8=; 7:pzUNJH5AoGuv3/3nJdGsBe4EBnktkC1kZ0T1AXgHfg+SBp3i9syWdNu0YoznUTUKOakKJ7nYcYJKIFCcqLqKXH4llPh4O2SzS99er3LvCvBSczMG3OBlfiEIdrbXiH1sx+sTTk2kWEOQTOnYDMwqXUJS0CFUccBef2cktZ5OpFZYA3T2SMM6y4I9J/cQgQ+uckT+O8rOFISr6/KUxXY8XFC9Pwte1IfBsQxBN/yKEYjWREfWe77pu/PI+U2Keh9j
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2017 10:03:13.0264 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c45f533d-7e03-4504-a395-08d52c1015d1
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR07MB3426
X-OriginatorOrg: ericsson.com
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmplleLIzCtJLcpLzFFi42KZGbHdWPeZAE+UQetsZot9V/8wWsy/2Mjq wOQx5fdGVo8lS34yBTBFcdmkpOZklqUW6dslcGVsv7GDqWCNW8XO9xsZGxgXmXcxcnJICJhI rGw8xwRiCwkcZpR43WDRxcgFZJ9glHjxeBMzSIJFoJdZYv0zN4ii3UwSC3+VgdjCAp4S+zr/ sILYIgKmEmv/zGCGaL7CKDF3x1+wqWwCRhJT+8+zgNi8AvYSGycchRqqKnFyxwawuKhAjMTE BxcZIWoEJU7OfAIW5xSwlXh6/iPYHGYBC4mZ888zQtjyEs1bZzND2OISt57MZ4L4xkLixdvj YEdICEwBOmLqQnaIqzUkHl74C3QpB1DCV6LjhzpEzUxGidaOnSxQDewSv/+8Z4WYJCtx9Owc FogGLYnr7xVBwowCcRI71yxkhahfwi6xpXcvM0R9tsS0rqPsELa3RPuzy+wQRVdYJd5uO8wC kZCROHljLyNEYj+bxKb911gnMGrPQvL2LCSvzkLy6iwkry5gZFnFKFqcWlycm25krJdalJlc XJyfp5eXWrKJEZg4Dm75rbuDcfVrx0OMAhyMSjy8zBw8UUKsiWXFlbmHGCU4mJVEeJP7uaOE eFMSK6tSi/Lji0pzUosPMUpzsCiJ83qIAKUE0hNLUrNTUwtSi2CyTBycUg2MMwKOzvi18Xao 0s74NJW+GTcTXISdw67PufdE28b1msOqva0CbzuzMz/mcfw9vW26Lp/9skwzvim9ngvfP/sa tjngh8Z2vcesNq+LZk/e1LQwe7qCSKGUNVtRnGzy2gKVx5Msfs/6fHum4HZL748y30616OsF t9/O5wyQDJhzXed9QfAiM7kHSizFGYmGWsxFxYkAmykqChgDAAA=
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/7fu5_mDOFOl4p-SSVjJM9UlC_1w>
Subject: Re: [netmod] Comment on draft-clacla-netmod-yang-model-update-02
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
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: Wed, 15 Nov 2017 10:03:28 -0000

While a server may correctly support multiple versions, the human 
operator on the CLI has a 99% chance of mixing up which version he is 
using. Humans will not check every type and leaf  to check that they 
remember the little differences between model versions. It is a recipe 
for human mistakes. According to some statistics 50% of downtime is 
caused by human errors, so we should not provide the operator with a gun 
to shoot himself. Ericsson has a rule never to have multiple versions of 
the same module on a network node.

regards Balazs


On 2017-11-15 16:44, Joe Clarke wrote:
> On 11/15/17 00:30, Juergen Schoenwaelder wrote:
>> Another thing to consider is that foo and foo2 allows an
>> implementation to support both during transition, with foo {semver
>> 1.x.y} and foo {semver 2.x.y} this may be harder.
> I'm not convinced this a bad thing.  If a server supports multiple
> versions of a given module, which should a client use?  Did the server
> vendor test each one?
>
> I suppose my gut reaction to Lou's question as to whether a server
> should support multiple versions was, "no."  A client may have multiple
> versions loaded to support servers that support different versions.  I
> may be convinced otherwise, but I feel that this will become untenable
> over time (even if module names change).
>
> Joe
>
>> /js
>>
>> On Tue, Nov 14, 2017 at 10:22:10PM +0100, Juergen Schoenwaelder wrote:
>>> On Wed, Nov 15, 2017 at 12:51:22AM +0800, Balazs Lengyel wrote:
>>>>     Whenever a client OSS implements some higher level logic for a network
>>>>     function, something that can not be implemented in a purely model driven
>>>>     way, it is always dependent on a specific version of the Yang Module
>>>>     (YAM). If the client finds that the module has been updated on the network
>>>>     node, it has to decide if it tries to handle it as it did the previous
>>>>     version of the model or if it just stops to avoid problems. To make this
>>>>     decision the client needs to know if the module was updated in a backward
>>>>     compatible way or not. This is not addressed with the current versioning.
>>> The current rules aim at guaranteeing that definitions (with status
>>> current) remain backwards compatible. Do you have an example what the
>>> current rules fail to achieve this? Definitions with status deprecated
>>> or obsolete may not be present. But if they are present, they have the
>>> same semantics. This is the promise made to a client. (Note also that
>>> objects may be absent for reasons document in deviations or simply not
>>> accessible due to access control.)
>>>
>>>>     While having PYANG based checks for backward compatibility is a very good
>>>>     idea, a  comparison based check will never be a complete check. It is
>>>>     quite possible to change just the behavior of an rpc/action/etc.  without
>>>>     changing the YANG definition.  This will only show up as a change of the
>>>>     description statement that can not be analyzed by PYANG.
>>> The problem is to decide whether a change can break client
>>> expectations or not. Even 'bug fixes' can cause a client written to
>>> expect the old 'buggy' behaviour to fail. Also tricky are situations
>>> where behaviour was not clearly enough described and this is 'fixed'
>>> in a module update.
>>>
>>> Semantic versioning assumes that one always can clearly distinguish
>>> between incompatible updates and compatible updates. This may not be
>>> so clearly cut in practice, see above. (But then, we have the same
>>> judgement call at the end with today's update rules.)
>>>
>>>>     When upgrading a network node we might introduce non-backward compatible
>>>>     (NBC) changes. Today we need to introduce a new module for this. That
>>>>     means during the upgrade process the node must convert stored
>>>>     configuration instance data from ietf-routing to ietf-routing-2 format.
>>>>     Instead of solving this data transformation/transfer problem just for a
>>>>     few NBC data nodes, we will have to do it for the full model. This is
>>>>     complicated. In many cases the transformation of a few NBC leafs can be
>>>>     handled by good defaults or with a small script. Transferring the full
>>>>     data set is more complicated. If we allow NBC updates in some cases this
>>>>     problem is avoided.
>>> In XML land, this is mostly a change of the namespace (not of the
>>> prefix) if one keeps the same structure, no? In JSON land, the change
>>> of the module name more directly becomes visible in instance data; but
>>> this is all encoding details.
>>>
>>>>     If we update the module from ietf-routing to ietf-routing-2 ? Do we keep
>>>>     the prefix?
>>> I guess you mean the namespace, not the prefix. You can use any prefix
>>> you like.
>>>
>>>>     In one sense it should be kept as it is the same module
>>>>     "logically"; we also might have stored data including the prefix
>>>>     (identityrefs, instance-identifiers). On the other hand having multiple
>>>>     modules with the same prefix is a problem. The only good solution is to
>>>>     allow incompatible updates in some cases.
>>> If we move towards allowing incompabile updates, then we need to have
>>> a mechanism to tell which versions of modules can work together and
>>> which combinations are affected by an incompatible update. We probably
>>> need to require strict import by revision or at least 'import by
>>> compatible revision' (whatever this means at the end).
>>>
>>>>     CH 1)
>>>>
>>>>     You write
>>>>     "The YANG data modeling language [RFC7950] specifies strict rules for
>>>>     updating..."
>>>>     and again
>>>>     "When the same YANG module name is kept, the new YANG module  revision
>>>>     must always be updated in a backward-compatible way."
>>>>
>>>>     I strongly disagree. While we have strict rules about even small
>>>>     modifications to existing schema, but you are allowed to
>>>>     deprecate/obsolete big parts of the model, thereby possibly deleting
>>>>     complete subtrees from the schema. That is anything but strict backward
>>>>     compatibility.
>>>>     I find this aspect of YANG inconsistent to the level that it would need an
>>>>     errata.
>>> Marking something deprecated / obsolete means you can not be sure this
>>> is implemented. But then, even definitions with status current may not
>>> be implemented (see deviations) or they may not be accessible to a
>>> client due to access control. However, if implemented and accessible,
>>> the guarantee today is that the semantics stay the same and don't
>>> change unexpectedly.
>>>
>>>>     So practically the current rules allow backward incompatible changes that
>>>>     can only be detected by a line by line comparison of the yang modules. In
>>>>     a system with semantic versioning, you could determine backward
>>>>     compatibility just by reading the version numbers.
>>> I do not see why you need a line by line comparison. With semantic
>>> versioning, you _hope_ the semantic version number is a good enough
>>> indicator. It might also be that your client is only using a subset
>>> that did not really change even though the semantic version number
>>> changed. Or the semantic version number indicates only minor changes
>>> that sill break your client.
>>>
>>>>     CH 2.3)
>>>>     As we need to create a new Yang Module (YAM) even for the smallest
>>>>     incompatible modification, this increases the number of modules.
>>> So it seems to boil down to the question whether foo and foo2 is
>>> significantly more expensive than foo { semver 1.x.y } and foo {
>>> semver 2.x.y }. The main argument seems to be that the later keeps
>>> references that involve module names or namespaces unchanged (but
>>> they may or may not mean different things).
>>>
>>>>     IMHO YANG package definition should be a separate issue, left out of this
>>>>     document. Andy has already provided some very good ideas about this topic.
>>> I think it is necessary to think about how the semantic version
>>> numbers are used. See my remark above about imports. If we allow
>>> incompatible changes, than this has side effects and I think we are
>>> not done by just adding a semantic version number without going
>>> working throught the implications.
>>>
>>> /js
>>>
>>> -- 
>>> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>>> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>>> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>

-- 
Balazs Lengyel                       Ericsson Hungary Ltd.
Senior Specialist
Mobile: +36-70-330-7909              email: Balazs.Lengyel@ericsson.com