Hi Andy,
On 23/12/2015 21:35, Andy Bierman wrote:
On Wed, Dec 23, 2015 at 12:52 PM, Robert Wilton
<[email protected] <mailto:[email protected]>> wrote:
Hi,
On 23/12/2015 18:22, Acee Lindem (acee) wrote:
From: Andy Bierman <[email protected] <mailto:[email protected]>>
Date: Wednesday, December 23, 2015 at 11:18 AM
To: Acee Lindem <[email protected] <mailto:[email protected]>>
Cc: Ladislav Lhotka <[email protected] <mailto:[email protected]>>, Kent
Watsen <[email protected] <mailto:[email protected]>>,
"[email protected] <mailto:[email protected]>" <[email protected]
<mailto:[email protected]>>
Subject: Re: [netmod] NETMOD WG LC: draft-ietf-netmod-opstate-reqs-01
On Wed, Dec 23, 2015 at 8:11 AM, Acee Lindem (acee)
<[email protected] <mailto:[email protected]>> wrote:
From: Andy Bierman <[email protected]
<mailto:[email protected]>>
Date: Wednesday, December 23, 2015 at 10:46 AM
To: Acee Lindem <[email protected] <mailto:[email protected]>>
Cc: Ladislav Lhotka <[email protected]
<mailto:[email protected]>>, Kent Watsen <[email protected]
<mailto:[email protected]>>, "[email protected]
<mailto:[email protected]>" <[email protected]
<mailto:[email protected]>>
Subject: Re: [netmod] NETMOD WG LC:
draft-ietf-netmod-opstate-reqs-01
On Wed, Dec 23, 2015 at 7:01 AM, Acee Lindem (acee)
<[email protected] <mailto:[email protected]>> wrote:
On 12/23/15, 3:22 AM, "netmod on behalf of
Ladislav Lhotka"
<[email protected]
<mailto:[email protected]> on behalf of
[email protected] <mailto:[email protected]>> wrote:
>
>> On 23 Dec 2015, at 04:06, Kent Watsen
<[email protected]
<mailto:[email protected]>> wrote:
>>
>>
>>
>>
>>
>>
>> On 12/21/15, 2:21 PM, "netmod on behalf of
Ladislav Lhotka"
>><[email protected]
<mailto:[email protected]> on behalf of
[email protected] <mailto:[email protected]>> wrote:
>>
>>>
>>>> On 21 Dec 2015, at 19:02, Juergen Schoenwaelder
>>>><[email protected]
<mailto:[email protected]>> wrote:
>>>>
>>>> On Mon, Dec 21, 2015 at 06:47:49PM +0100,
Benoit Claise wrote:
>>>>
>>>>> I hope that nobody disagrees that the
operational state design and
>>>>>how
>>>>> to structure the models are the two
blocking factors to publish YANG
>>>>> models. If you disagree or don't see this,
let me know, I should
>>>>> communicate better.
>>>>
>>>> Even if it may spoil your day, I disagree
that there is a blocking
>>>> factor that should stop us from publishing
models. There seem to be
>>>> ways to address the requirements without
having to block all work or
>>>> to redo what that we have published. But
sure, if you make it a
>>>> blocking factor, it will be one.
>>>
>>> I agree with Juergen. It is not clear to me
how the proposed split
>>>between intended and applied configuration is
supposed to affect the
>>>data models we are working on.
>>
>>
>> As I understand it, solution #1 affects the
models themselves, whereas
>>solutions #2 and #3 are transparent to the models.
>
>Then #1 looks like a non-starter to me.
I’d like to point out that we also have the
requirement to allow retrieval
of derived-state along with intended-config and
applied-config. This will
require modification to most of the existing YANG
drafts as most now have
separate trees for config and operational state.
Note that this is
discussed in sections 6, 7.3, and 7.4 of
https://www.ietf.org/id/draft-wilton-netmod-opstate-yang-02.txt.
A NETCONF <get> with a subtree filter can retrieveg
both config and non-config subtrees
at the same time. A new RPC can be added (or
existing <get> RPC extended) to
filter various conditions. I don't see how the YANG
data layout affects the definition
of "rpc" statements in another module.
There is the requirement to be able to do the retrievals
but there is also this requirement:
C. The mappings needs to be programmatically consumable
Now, if the derived-state nodes are located with the
config-nodes, then this is readily satisfied. Another way
of satisfying the requirement may be structural and
naming conventions but this is not as sure as co-location.
There can be meta-data returned (XML attributes) that
identify the additional properties.
This is better co-location since the pattern cannot be
unintentional (as it can with the
config-within-state containers).
This may be an option for published models. However, for models
in development, wouldn’t it be easier to just move the nodes
rather than defining the relationships in meta-data?
Just relying on meta-data to relate config and state would
probably add a lot of relations noise to the models. I would
imagine that this would make the models source YANG files harder
to read, and potentially have a slight negative performance impact
in the clients - which may be important if they have to relate
many nodes.
The meta-data is not defined in the YANG models. It is defined for the
protocol.
Co-location doesn't really scale. A system may have candidate,
running, startup,
and even proprietary "state-related" data collections. It would take 3
or 4 copies of the data to
model these datastores inside the data models.
I think that we may be talking across purposes. My comments are
regarding the relationship between operational nodes (aka derived state)
and configuration, as per Acee's comments regarding my draft above.
But IMO any solution that burdens the server with retrieval
requests while the device is busy applying config will only
make the problem worse.
I think that with the OpenConfig model based approach, the assumption is
that they would register to be notified of changes to the datastore
nodes. If it is possible to register for such notifications with an
appropriate level of filtering/granularity then I imaging that a
management client wouldn't necessarily need to ever poll/read the data
(except on corned case scenarios). Instead, it can just rely on push
notifications of the nodes that have changed. I would think that such a
system would be performant.
Hence why I think that it is best to use co-location where
possible, and just use explicit meta-data where the nodes are
further apart in the data tree.
I looked at your draft.
Thanks.
Is it implemented anywhere?
No. Realistically, I would expect that it would need to gain more
support before anyone would spend time implementing it.
It requires a custom parser that sometimes parses the leaf "foo" as a
YANG leaf
but if the special request is made, then the reply will be returning
"foo" as a container of leafs,
instead of a leaf like normal.
Yes, agreed.
I'm not sure whether you have had the opportunity to look at the version
2 of the draft that I published at the beginning of the week. The main
body of the draft hasn't really changed, but I have added an appendix
with a possible overview of how it might be implemented using attributes
(as you previously suggested). If you have time to review the appendix,
then I would be interested to know whether this is what you had broadly
envisaged.
This still leaves the question as to what to do with the
interfaces vs interfaces-state. There would seem to be two
possible solutions to me: (1) merge the trees together as per
OpenConfig, or (2) add a special case rule for interfaces. I
think that this is an issue that neither Kent's nor my draft fully
addresses.
This is different -- interfaces-state can contain discovered
interfaces that
have not been configured yet.
Yes, of course, but has the downside that it forces a separation between
the configuration and operational state for interfaces.
Personally, ignoring all the backwards compatibility issues, I would
prefer that interfaces and interfaces-state were a combined single list
(as proposed by OpenConfig). E.g. something along the lines of:
- the system can still provide an operational list of discovered
interfaces so that clients can know what is there.
- but management agents would be expected to explicitly configure
(i.e. create an entry for) all interfaces for which it wanted to
retrieve data for.
Thanks,
Rob
_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod