Hi all,

Cross posting because I'm not sure whether this is more of interest to NETCONF 
clients or a general YANG & datastore question.

In IETF Interfaces there is a leaf 'type'. Here is a snippet of the model:

      leaf type {
        type identityref {
          base interface-type;
        }
        mandatory true;
        description
          "The type of the interface.

           When an interface entry is created, a server MAY
           initialize the type leaf with a valid value

This says that although the leaf is mandatory, a NETCONF client creating a new 
interface does not have to specify/provide that leaf. That strikes me as the 
first unusual point.

Secondly -> this also means that a NETCONF client may send a config with 
elements X, Y, and Z, but then later read back the config to see X, Y, Z and T  
(e.g. type). But they never configured the type leaf.

Shouldn't most clients generally assume that what they write, they read back 
(unless there are 'choice' or 'when' statements involved of course, but that 
are part of the YANG and any auto-clearing behavior from those would be 
expected)?

Or does 'anything go' / 'market decides' when it comes to behavior like this 
explained in 'description' statements?

Is it just fine that some NETCONF servers auto-magically create some (extra) 
data nodes inside a list entry that a client created? (would like to see 
opinions from multiple people on this - especially client developers).

I would think that each and every magic creation/deletion/changes done by a 
server (i.e. that aren't part of the YANG, except perhaps part of a 
human-readable (non-machine parsable) 'description' statement) would require 
some special handling code on the client (or app above the client) side.

I can imagine several alternatives to the way it was modelled above:
1) NMDA approach: make the leaf optional. If the operator doesn't set that 
leaf, then reading the conventional datastores doesn't return that leaf. But 
reading the operational DS could return the actual system selected value.
2) separate config & state leafs for 'type':  make the leaf optional. If the 
operator doesn't set that leaf, then reading the conventional datastores 
doesn't return that leaf. But have another state leaf called 'oper-type'.

I'm not proposing to re-open the IETF Interface model. Just using it to ask 
questions about server created config data and explore alternatives.

Jason
_______________________________________________
netmod mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to