Subject: [netmod] mandatory mess

From: Ladislav Lhotka <[email-masked]>
Date: Thu, 30 Jul 2009 20:45:41 +0200

Hi,

earlier today, when I was compiling the minutes from yesterday's
meeting, I realized I was still very confused about the notion of
"mandatory". Yes, the draft says:

o If no such ancestor [which is not a non-presence container] exists,
the leaf MUST exist.

So the next question is: Where MUST it exist? And the answer is, I
suppose: In the configuration datastore. However, at least one
interpretation of datastore content claims that a datastore only
contains data that were explicitly set by the client.

So one has to come to the conclusion in this case that a mandatory node
has to be set by the client in order to get into the datastore and thus
cannot be supplied by the server in an "initial factory setting".

I believe this is exactly what Andy asked about on Jabber yesterday but
didn't get any satisfactory answer, AFAIK.

Lada
 
-- 
Ladislav Lhotka, CESNET
PGP Key ID: E74E8C0C

---

From: Martin Bjorklund <[email-masked]>
Date: Thu, 30 Jul 2009 20:49:31 +0200 (CEST)

> contains data that were explicitly set by the client.

Can you provide a reference to this text?  I search for "client" and
"explicit" but did not find anything.

/martin

---

From: Ladislav Lhotka <[email-masked]>
Date: Thu, 30 Jul 2009 21:03:52 +0200

> "explicit" but did not find anything.

4741bis: "A configuration datastore is defined as the complete set of
configuration data that is required to get a device from its initial
default state into a desired operational state."

Doesn't this imply that the contents of the "initial default state" are
not in the configuration datastore? If "desired operational state" is
identical to "initial default state" does it mean that the configuration
datastore is empty? 

YANG draft doesn't define what a datastore is (it should, in my
opinion).

Lada
 
-- 
Ladislav Lhotka, CESNET
PGP Key ID: E74E8C0C

---

From: Martin Bjorklund <[email-masked]>
Date: Thu, 30 Jul 2009 21:20:20 +0200 (CEST)

> default state into a desired operational state."

The text above is from 5.1.

Kind of funny - if you wonder what "configuration data" means in the
text above, 4741 provides a definition in section 1.3:

   Configuration data is the set of writable data that is required to
   transform a system from its initial default state into its current
   state. 

I guess we can add to our issues list that we should clean this up.

/martin

---

From: Ladislav Lhotka <[email-masked]>
Date: Thu, 30 Jul 2009 21:41:05 +0200

>    transform a system from its initial default state into its current

OK, but still the same: configuration data are the complement of the
initial default state. I suspect in most cases the mandatory
configuration data that are initially supplied by the device actually
represent the initial default state.

Lada

-- 
Ladislav Lhotka, CESNET
PGP Key ID: E74E8C0C

---

From: Phil Shafer <[email-masked]>
Date: Thu, 30 Jul 2009 19:33:44 -0400

>cannot be supplied by the server in an "initial factory setting".

I don't grok the hangup here, but perhaps if you view it
this way it will help.  On some boxes, when the startup
mechanism notices that the configuration database is empty,
a "local client application" is triggered that loads some
factory default configuration into the configuration database.
And this "local client" need not be a NETCONF client, it
can be something as mundane as:

   [ -s $config ] || cp $factory_defaults $config

Thanks,
 Phil