Re: [netmod] NMDA - different valid keys for config vs state

"Reshad Rahman (rrahman)" <> Thu, 10 May 2018 17:27 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 8EA2B12DA46 for <>; Thu, 10 May 2018 10:27:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -14.509
X-Spam-Status: No, score=-14.509 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id dRx3MEyjeOjv for <>; Thu, 10 May 2018 10:27:54 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 1118512DA25 for <>; Thu, 10 May 2018 10:27:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;;; l=12422; q=dns/txt; s=iport; t=1525973273; x=1527182873; h=from:to:subject:date:message-id:mime-version; bh=PyINzse/smplJl/f7p+9PdVfF1bENNlZzbJQm/AU80U=; b=L8WLQAJKOPOJqMbcT9i8jltU3k83OUNQB5C41ruLBGzww6fZY70QJ70z HtvzS4htkeyfhkJYmOChuN36VhctGrPs6sFOv0MuZVNvRxh2L3yFtEZUw ukZ/DEAOr/tie5JqjMheiG22DssoPNxk5m/lNXoOrIhrz/fMVD0WHaMyJ 0=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AZAQBggPRa/4gNJK1cGQEBAQEBAQE?= =?us-ascii?q?BAQEBAQcBAQEBAYJNdmF7KAqDZ4gDjG2BeYEPjjyEdxSBZAsshEAcgmYhNBg?= =?us-ascii?q?BAgEBAQEBAQJsKIUoAQYjBGQBCBEDAQIrAgQwHQoEARKDIwKBG2SrVYFpM4h?= =?us-ascii?q?EgkiIJYFUP4EPI4JohEABEgE/gmAwgiQCiCCIY4cqCQKOTYxlgiuOBAIREwG?= =?us-ascii?q?BJAEcOGFxcBU7KgGCGAmQRW+BFYxsgR8BgRcBAQ?=
X-IronPort-AV: E=Sophos;i="5.49,386,1520899200"; d="scan'208,217";a="390394374"
Received: from ([]) by with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 May 2018 17:27:52 +0000
Received: from ( []) by (8.14.5/8.14.5) with ESMTP id w4AHRqSG029570 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 10 May 2018 17:27:52 GMT
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.1320.4; Thu, 10 May 2018 12:27:51 -0500
Received: from ([]) by ([]) with mapi id 15.00.1320.000; Thu, 10 May 2018 12:27:51 -0500
From: "Reshad Rahman (rrahman)" <>
To: "Sterne, Jason (Nokia - CA/Ottawa)" <>, "" <>
Thread-Topic: [netmod] NMDA - different valid keys for config vs state
Thread-Index: AQHT6IQ52NIcwEznSqKvxUfMt6AfTA==
Date: Thu, 10 May 2018 17:27:51 +0000
Message-ID: <>
Accept-Language: en-US
Content-Language: en-US
user-agent: Microsoft-MacOutlook/10.b.0.180311
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_F9CB1241DC5A48AB97A188AD3D83E8BBciscocom_"
MIME-Version: 1.0
Archived-At: <>
Subject: Re: [netmod] NMDA - different valid keys for config vs state
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: NETMOD WG list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 10 May 2018 17:27:57 -0000

I thought this had been discussed previously but couldn’t find the email.

IMO  option 1) makes more sense, the key range should be a superset of config and oper since the model applies to both. Don’t know if there’s any mechanism which allows for different range per datastore.


From: netmod <> on behalf of "Sterne, Jason (Nokia - CA/Ottawa)" <>
Date: Thursday, May 10, 2018 at 1:07 PM
To: "" <>
Subject: [netmod] NMDA - different valid keys for config vs state

Hi all,

In the NMDA approach we're trying to combine config & state into the same common tree structure.   i.e. For a given list, model a single list that contains both config & state, vs separate lists for each of config & state.

But what happens when the valid value space for config vs state is different ?   For example -> what if an implementation has internally created interfaces with names that start with '_internal_' and doesn't allow configuration of those interfaces ?

If there were separate config vs state lists then the config list may have a pattern associated with the key that disallows names that start with '_internal_'.

To keep the spirit of NMDA it would be a shame to split into separate config & state lists for this case.  Any recommendations ?

1) make the 'pattern' for the key be a superset (i.e. allow _internal_) and then just reject config requests for _internal_ interfaces (e.g. at commit time) ?

2) make the 'pattern' more strict to match config, and then return _internal_ interfaces for state queries (that in theory break the pattern for the key) ?

3) other suggestions ?

Another example could be an integer key that has a larger range for state than it does for config (i.e. IDs >1000 are for internal entries only, not configurable).