Yes, Option 2 seems best. Cheers,
Einar > On 11 Jan 2018, at 17:56, Robert Wilton -X (rwilton - ENSOFT LIMITED at > Cisco) <rwil...@cisco.com> wrote: > > > > On 11/01/2018 13:47, Martin Bjorklund wrote: >> Hi, >> >> To summarize this, I think we have three options for the three nodes >> 'model-name', 'mfg-name', and 'serial-num': >> >> 1. Do nothing (keep the nodes as config true). >> >> 2. Make these three nodes config false (fairly simple change). >> (vendors can augment w/ their own config true nodes). >> >> 3. Add three new nodes for the configured values. >> >> >> After thinking about this some more, and discussing with Benoit, I >> think the best path forward is to do 2, i.e., mark the nodes >> 'model-name', 'mfg-name', and 'serial-num' as "config false". As such >> they would not be configurable, and thus contain the detected values. >> If no value is detected, the node is not present. > Option 2 suits me. It keeps it simple. > >> >> Note that 1 or 3 can be done in a future update to this module (or by >> a vendor). > Agreed. > > Thanks, > Rob > > >> >> >> /martin >> >> >> Martin Bjorklund <m...@tail-f.com> wrote: >>> Hi, >>> >>> "Bogaert, Bart (Nokia - BE/Antwerp)" <bart.boga...@nokia.com> wrote: >>>> Hi, >>>> >>>> --- snip --- >>>> >>>>> state.”, so the above sentence only applies for the second case below. >>>> Ok. >>>> >>>>> 2. The second case is that something is detected but it can’t be read. >>>>> We do not see a reason to use the value configured for the leafs >>>>> ‘serial-num’, ‘mfg-name’ and ‘model-name’ of a matching entry in the >>>>> configuration data. These leafs are defined as optional so why would >>>>> we report something entered by an operator in the operational >>>>> datastore that intends to report on what is detected? Is it not >>>>> better to not report them at all? In an NMDA context it would be >>>>> possible to have a different value (or no value at all) for certain >>>>> leafs while there is something in the running/intended datastore. >>>> The normal NMDA procedure for a configuration leaf is to repeat it in >>>> operational state. This is then the "applied configuration". >>>> I don't think we should have a special rule for these leafs. >>>> >>>> This also means that a client that just wants to read all the serial >>>> numbers can do so from one place, the operational state, regardless of >>>> how they came into existance. >>>> >>>> [Bogaert, Bart ] >>>> >>>> We do understand that a target of NMDA is to read out the actually >>>> applied data in one request. But the result should not be >>>> confusion. A key word is “applied”. >>>> >>>> Section 5.3 of draft-ietf-netmod-revised-datastores-09 also contains >>>> (I put a part of the section between ***): >>>> The datastore schema for <operational> MUST be a superset of the >>>> combined datastore schema used in all configuration datastores except >>>> that configuration data nodes supported in a configuration datastore >>>> ***MAY be omitted from <operational> if a server is not able to >>>> accurately report them ***. >>> Note that this text talks about the *schema*. It is intended for >>> servers to migrate to NMDA without having to instrument all config >>> nodes in <operational> immediately. If you apply this to >>> ietf-hardware, it could be a server that implements the node >>> "serial-num" in config, but not in <operational> (which would be >>> weird). >>> >>>> For example, it is expected that the value of multiple leafs need to >>>> be a consistent set, e.g. the mfg-name, the model-name, and the >>>> serial-num. >>>> Suppose we have a use case in which a hardware component is >>>> planned/configured (e.g. a board supporting DSL interfaces) but a >>>> different one is plugged (e.g. a board supporting ethernet >>>> interfaces). >>>> Suppose it is possible to read some fields on the detected component >>>> but due to an issue not to read other fields. >>>> If in that case the operational datastore will be completed with the >>>> data taken from the running datastore, then the presented view might >>>> be inconsistent. >>> This is true for other similar nodes as well - "asset-id" and "uri". >>> >>>> The question is also: what data is applied? Our assumption: if there >>>> is a mismatch between detected versus configured hardware, then the >>>> interface/service related data that is configured consistently with >>>> the planned hardware is not applied on the mismatching >>>> hardware. I.e. the detected hardware is not brought in service so not >>>> ‘applied’, the operational datastore only (accurately) reports on what >>>> is detected. >>> If there is a mismatch and the server doesn't apply the configured >>> values, then obviously the configured 'mfg-name' etc are not copied to >>> <operational>. >>> >>>> We do not see this as a special rule for this data but rather would >>>> apply a general rule: >>>> - if there is a ‘missing resource’, then the data is not reported in the >>>> operational datastore. >>>> - If the server is not able to report accurately, then the data is >>>> omitted from the operational >>> I think that if you want complete separation between the values of >>> 'mfg-name', 'model-name', and 'serial-num' in configuration and >>> operational state, then these should be modelled as separate leafs. >>> We should have a config false leaf 'serial-num' that only contains the >>> detected value (if found), and a config true leaf 'config-serial-num' >>> or something, that contains the configured serial number. >>> >>> But if this is the case, I wonder if it wouldn't be better to leave >>> such additional config objects to vendors, and simply make these three >>> nodes config false in ietf-hardware. >>> >>> >>> /martin >>> >>>> Regards, Bart >>>> >>>> /martin >>>> >>>> >>>>> Best regards, Bart >>>>> >>>>> -----Original Message----- >>>>> From: netmod [mailto:netmod-boun...@ietf.org] On Behalf Of Robert >>>>> Wilton >>>>> Sent: Thursday, December 21, 2017 4:14 PM >>>>> To: Martin Bjorklund <m...@tail-f.com>; netmod@ietf.org >>>>> Subject: Re: [netmod] AD review of draft-ietf-netmod-entity-06 >>>>> >>>>> Hi Martin, >>>>> >>>>> >>>>> On 21/12/2017 11:37, Martin Bjorklund wrote: >>>>>> Hi, >>>>>> >>>>>> I need WG input on this issue. The question is how to handle >>>>>> 'serial-num', 'mfg-name', and 'model-name'. I think they should all >>>>>> be treated the same. Based on previous WG discussion (see e.g. the >>>>>> mail thread "draft-ietf-netmod-entity issue #13"), I think they >>>>>> should all be configurable, but the configured value is only used in >>>>>> operational state if the system cannot read it from the hardware. >>>>> I think that this approach is probably OK: >>>>> - The client can always see the real value if it is available. >>>>> - If it is not available then they can assign a value via >>>>> configuration. >>>>> >>>>> I was also considering an alternative approach of having a separate >>>>> set of config false leaves for the "burnt in values". And then having >>>>> the configurable leaves always override the default operational >>>>> values. E.g. similar to how an interface MAC address would expect to >>>>> be handled. >>>>> >>>>> But one set of leaves is probably sufficient. >>>>> >>>>> Thanks, >>>>> Rob >>>>> >>>>> >>>>>> So I suggest the following changes: >>>>>> >>>>>> OLD: >>>>>> >>>>>> leaf serial-num { >>>>>> type string; >>>>>> config false; >>>>>> description >>>>>> "The vendor-specific serial number string for the >>>>>> component. The preferred value is the serial number >>>>>> string actually printed on the component itself (if >>>>>> present)."; >>>>>> reference "RFC 6933: entPhysicalSerialNum"; >>>>>> } >>>>>> >>>>>> NEW: >>>>>> >>>>>> leaf serial-num { >>>>>> type string; >>>>>> description >>>>>> "The vendor-specific serial number string for the >>>>>> component. The preferred value is the serial number >>>>>> string actually printed on the component itself (if >>>>>> present). >>>>>> >>>>>> This leaf can be configured. There are two use cases for >>>>>> this; as a 'post-it' note if the server cannot determine >>>>>> this value from the component, or when pre-provisioning a >>>>>> component. >>>>>> >>>>>> If the server can determine the serial number from the >>>>>> component, then that value is always used in operational >>>>>> state, even if another value has been configured."; >>>>>> reference "RFC 6933: entPhysicalSerialNum"; >>>>>> } >>>>>> >>>>>> And corresponding text for 'mfg-name' and 'model-name'. >>>>>> >>>>>> And also: >>>>>> >>>>>> OLD: >>>>>> >>>>>> When the server detects a new hardware component, it >>>>>> initializes a list entry in the operational state. >>>>>> >>>>>> If the server does not support configuration of hardware >>>>>> components, list entries in the operational state are >>>>>> initialized with values for all nodes as detected by the >>>>>> implementation. >>>>>> >>>>>> Otherwise, the following procedure is followed: >>>>>> >>>>>> 1. If there is an entry in the /hardware/component list in >>>>>> the intended configuration with values for the nodes >>>>>> 'class', 'parent', 'parent-rel-pos' that are equal to >>>>>> the detected values, then: >>>>>> >>>>>> 1a. If the configured entry has a value for 'mfg-name' >>>>>> that is equal to the detected value, or if the >>>>>> 'mfg-name' value cannot be detected, then the list >>>>>> entry in the operational state is initialized with the >>>>>> configured values for all configured nodes, including >>>>>> the 'name'. >>>>>> >>>>>> Otherwise, the list entry in the operational state is >>>>>> initialized with values for all nodes as detected by >>>>>> the implementation. The implementation may raise an >>>>>> alarm that informs about the 'mfg-name' mismatch >>>>>> condition. How this is done is outside the scope of >>>>>> this document. >>>>>> >>>>>> 1b. Otherwise (i.e., there is no matching configuration >>>>>> entry), the list entry in the operational state is >>>>>> initialized with values for all nodes as detected by >>>>>> the implementation. >>>>>> >>>>>> If the /hardware/component list in the intended >>>>>> configuration is modified, then the system MUST behave as if >>>>>> it re-initializes itself, and follow the procedure in >>>>>> (1)."; >>>>>> >>>>>> NEW: >>>>>> >>>>>> When the server detects a new hardware component, it >>>>>> initializes a list entry in the operational state. >>>>>> >>>>>> If the server does not support configuration of hardware >>>>>> components, list entries in the operational state are >>>>>> initialized with values for all nodes as detected by the >>>>>> implementation. >>>>>> >>>>>> Otherwise, the following procedure is followed: >>>>>> >>>>>> 1. If there is an entry in the /hardware/component list in >>>>>> the intended configuration with values for the nodes >>>>>> 'class', 'parent', 'parent-rel-pos' that are equal to >>>>>> the detected values, then the list entry in operational >>>>>> state is initialized with the configured values, >>>>>> including the 'name'. The leafs 'serial-num', >>>>>> 'mfg-name', and 'model-name' are treated specially; see >>>>>> their descriptions for details. >>>>>> >>>>>> 2. Otherwise (i.e., there is no matching configuration >>>>>> entry), the list entry in the operational state is >>>>>> initialized with values for all nodes as detected by >>>>>> the implementation. >>>>>> >>>>>> If the /hardware/component list in the intended >>>>>> configuration is modified, then the system MUST behave as if >>>>>> it re-initializes itself, and follow the procedure in >>>>>> (1)."; >>>>>> >>>>>> >>>>>> >>>>>> /martin >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> Benoit Claise <bcla...@cisco.com> wrote: >>>>>>> On 12/20/2017 4:00 PM, Martin Bjorklund wrote: >>>>>>>> Benoit Claise <bcla...@cisco.com> wrote: >>>>>>>>> Hi Martin, >>>>>>>>> >>>>>>>>> Thanks. >>>>>>>>> Only kept the relevant excerpts. >>>>>>>>>>> - Some objects are read-write in RFC6933: >>>>>>>>>>> entPhysicalSerialNum >>>>>>>>>>> entPhysicalAlias >>>>>>>>>>> entPhysicalAssetID >>>>>>>>>>> entPhysicalUris >>>>>>>>>>> >>>>>>>>>>> For example, entPhysicalSerialNum being read-write always bothered >>>>>>>>>>> me. >>>>>>>>>>> serial-num is now "config false", which is a good news IMO. >>>>>>>>>> Actually, this was not the intention. In >>>>>>>>>> draft-ietf-netmod-entity-03 this is configurable. I missed this >>>>>>>>>> in the conversion to NMDA. >>>>>>>>> Ah. So no good news in this case... >>>>>>>>>>> In the reverse direction, entPhysicalMfgName is read-only in >>>>>>>>>>> RFC6933, while it's "config true" in draft-ietf-netmod-entity >>>>>>>>>> Yes, this was added per request from the WG. See e.g. the >>>>>>>>>> thread "draft-ietf-netmod-entity issue #13". >>>>>>>>> Sure. It was mainly an observation. >>>>>>>>>> However, I think that what we have now is probably not correct. >>>>>>>>>> I think that all nodes 'serial-num', 'mfg-name', and 'model-name' >>>>>>>>>> should be config true, and the description of list 'component' >>>>>>>>>> updated to reflect that all these tree leafs are handled the same >>>>>>>>>> way. >>>>>>>>>> >>>>>>>>>> I would like to know what the WG thinks about this. >>>>>>>>> Talking as a contributor this time. >>>>>>>>> It seems that inventory management is kind of broken when someone >>>>>>>>> can change 'serial-num', 'mfg-name', and 'model-name. >>>>>>>> They can't really change them. The configured values are only >>>>>>>> used (i.e. visible in the operational state) if the device cannot >>>>>>>> detect them automatically. I.e., they work as "post-it" notes only. >>>>>>> If I look at, for example, the mfg-name, description, this is not >>>>>>> what it says. >>>>>>> >>>>>>> leaf mfg-name { >>>>>>> type string; >>>>>>> description >>>>>>> "The name of the manufacturer of this physical component. >>>>>>> The preferred value is the manufacturer name string >>>>>>> actually printed on the component itself (if present). >>>>>>> >>>>>>> Note that comparisons between instances of the >>>>>>> model-name, >>>>>>> firmware-rev, software-rev, and the serial-num nodes are >>>>>>> only meaningful amongst component with the same value of >>>>>>> mfg-name. >>>>>>> >>>>>>> If the manufacturer name string associated with the >>>>>>> physical component is unknown to the server, then this >>>>>>> node is not instantiated."; >>>>>>> reference "RFC 6933 <https://tools.ietf.org/html/rfc6933>: >>>>>>> entPhysicalMfgName"; >>>>>>> >>>>>>> Regards, Benoit >>>>>>> >>>>>>>> /martin >>>>>>>> . >>>>>>>> >>>>>> _______________________________________________ >>>>>> 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 > > _______________________________________________ > 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