Re: [netmod] Last Call: draft-ietf-netmod-snmp-cfg-03 (20131220)

B Lukovic <blukovic@ndt-inc.com> Mon, 03 February 2014 16:31 UTC

Return-Path: <blukovic@ndt-inc.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7CA411A0117 for <netmod@ietfa.amsl.com>; Mon, 3 Feb 2014 08:31:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.799
X-Spam-Level:
X-Spam-Status: No, score=0.799 tagged_above=-999 required=5 tests=[BAYES_50=0.8, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham
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 mkgutoKWYBCk for <netmod@ietfa.amsl.com>; Mon, 3 Feb 2014 08:31:15 -0800 (PST)
Received: from mail19g.g19.rapidsite.net (mail19g.g19.rapidsite.net [204.202.242.83]) by ietfa.amsl.com (Postfix) with ESMTP id 880CB1A0032 for <netmod@ietf.org>; Mon, 3 Feb 2014 08:31:15 -0800 (PST)
Received: from mxmtaout05.va1.mxservers.net (208.55.215.83) by mail19g.g19.rapidsite.net (RS ver 1.0.95vs) with SMTP id 0-010895075 for <netmod@ietf.org>; Mon, 3 Feb 2014 11:31:15 -0500 (EST)
Received: from unknown [161.58.75.15] (EHLO mmm1913.dulles19-verio.com) by mxmtaout05.va1.mxservers.net(mxl_mta-6.15.0-3) with ESMTP id 154cfe25.0.4106830.00-489.7207771.mxmtaout05.va1.mxservers.net (envelope-from <blukovic@ndt-inc.com>); Mon, 03 Feb 2014 11:31:13 -0500 (EST)
X-MXL-Hash: 52efc4516a16d0fb-ba44492eec20d1a6c3530b15d9487ec88c0d93e6
Received: (qmail 42436 invoked from network); 3 Feb 2014 16:31:13 -0000
Received: from unknown (HELO ?192.168.0.21?) (blukovic@135.23.154.141) by with ESMTPA; 3 Feb 2014 16:31:13 -0000
Message-ID: <52EFC452.2000406@ndt-inc.com>
Date: Mon, 03 Feb 2014 11:31:14 -0500
From: B Lukovic <blukovic@ndt-inc.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130107 Thunderbird/17.0.2
MIME-Version: 1.0
To: mbj@tail-f.com
References: <014201cef85b$81260cf0$837226d0$@comcast.net> <20140111.101300.219049272.mbj@tail-f.com> <52D9B9CF.5010605@ndt-inc.com> <20140202.220948.230573655.mbj@tail-f.com>
In-Reply-To: <20140202.220948.230573655.mbj@tail-f.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Spam: [F=0.2000000000; CM=0.500; MH=0.500(2014020311); S=0.200(2010122901)]
X-MAIL-FROM: <blukovic@ndt-inc.com>
X-SOURCE-IP: [161.58.75.15]
X-AnalysisOut: [v=2.0 cv=dvBs/Sc4 c=1 sm=1 a=IcBn81/O6j4k4bHiM4CBQw==:17 a]
X-AnalysisOut: [=jl2ymW9NZSsA:10 a=AYCwLKwzVxgA:10 a=63bDUHjCYPkA:10 a=BLc]
X-AnalysisOut: [eEmwcHowA:10 a=8nJEP1OIZ-IA:10 a=A1sffi52AAAA:8 a=TohxSeLk]
X-AnalysisOut: [LhgA:10 a=Cu5yUJOAILstRd5oQ9MA:9 a=wPNLvfGTeEIA:10 a=pbPsB]
X-AnalysisOut: [PsJn90A:10 a=Suolaw17ZHt0xvOx:21 a=DYOlKQh9GRrrwVIj:21]
X-SF-Loop: 1
Cc: netmod@ietf.org
Subject: Re: [netmod] Last Call: draft-ietf-netmod-snmp-cfg-03 (20131220)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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: Mon, 03 Feb 2014 16:31:17 -0000

The point is that if the data is created over SNMP there is no way with 
proposed yang module
to preserve all info in the configuration.
When the agent is restarted (or new config committed), agent would 
"invent indices" and
this is, in my opinion, the problem (not functionally, agent would still 
function correctly).
But for SNMP manager monitoring the agent:
- index change would indicate change in configuration.
- getnext order could be different

A few examples:
Lets say target address table has N entries, all using the same set of 
parameters ( = one row in snmpTargetParamsTable).

Changing parameters for all N addresses:
SNMP - one row changed
NETCONF- N rows changed

Suspend communication with all N targets:
SNMP - delete one row in target params table (or set it to 
notInService), target address table preserves all targets
NETCONF- delete whole target list

Regarding proposed solutions
1) create "list targetparams" ...
basically map snmpTargetParamsTable to Yang,
complication could be solved as in SNMP mib, i.e. instead of leafref 
(forcing each target row to have valid params)
this could be just a string making "loose" coupling.

2) replace optional "notify-filter-profile" leaf with mandatory 
"param-name" leaf, ...
You are right, I overlooked that "list notify-filter-profile" should be 
updated with "param-name" as well

and a new one

3) add optional "leaf param-name" to "list target" so 
snmpTargetParamsName could be preserved
If missing, agent would generate appropriate index for snmpTargetParamsTable

I prefer option 1)

     Borislav

On 2/2/2014 4:09 PM, Martin Bjorklund wrote:
> Hi,
>
> B Lukovic <blukovic@ndt-inc.com> wrote:
>> Hi,
>>
>> Re: target address/target params tables.
>> snmpTargetParamsName is not mapped into yang module.
>> This prevents agent from restoring snmp configuration after
>> restart/reload (assuming configuration is yang based).
>> E.g. agent is configured through snmp, "t1" and "t2" are rows in
>> targetAddress, "p1" is row in targetParams.
>> Both rows in targetAddressTable:
>>      "t1",...,"p1",...
>>      "t2",...,"p1",...
>> "point" to the same row in targetParamsTable:
>>      "p1", "v2c", "public"
>> saved as yang, targetParams row(s) are merged with rows of targetAddress:
>>      <target>
>>        <name>t1</name>
>>        ...
>>        <v2c>
>>          <security-name>public</security-name>
>>        </v2c>
>>      ..
>>      </target>
>>      <target>
>>        <name>t2</name>
>>        ...
>>        <v2c>
>>          <security-name>public</security-name>
>>        </v2c>
>>      ..
>>      </target>
>>
>> SNMP agent initialized from this config would not know the original
>> index ("p1") used in targetParamsTable.
>> One can argue that "locally arbitrary" in description of
>> snmpTargetParamsName allows agent to reassign indices,
>> but I believe this would lead to confusion.
> If data is created over NETCONF, the system will invent some index for
> the snmpTargetParamsName.  If the data is created over SNMP, the
> snmpTargetParamsName is simply not shown over NETCONF.
>
>
>> Possible solutions:
>> -  create "targetparams" list (index = leaf "name"), replace
>>     "params" choice with leaf "params" with type leafref { path
>>     "/snmp/targetparams/name" }
> This is certainly possible, but it introduces an extra level of
> indirection that complicates the model.
>
>> -  leave "params" choice, replace optional "notify-filter-profile"
>>     leaf with mandatory "param-name" leaf,
>>     explain relation between "param-name" and
>>     "notify-filter-profile/name" in description of "param-name"
> I don't think this solves the problem, since some reference is needed
> between the notify-filter-profile and the target-params.
>
>
>
> /martin
>