> On 28 Jul 2016, at 15:57, Acee Lindem (acee) <[email protected]> wrote:
> 
> Hi Lada, 
> 
> On 7/28/16, 9:52 AM, "netmod on behalf of Ladislav Lhotka"
> <[email protected] on behalf of [email protected]> wrote:
> 
>> Robert Wilton <[email protected]> writes:
>> 
>>> On 26/07/2016 21:36, Kent Watsen wrote:
>>>> 
>>>> <Rob Wilton writes>
>>>> 
>>>> 
>>>> So my thinking is that if we can't merge "foo-state" into "foo" then
>>>> instead we should have consistent rules that explicitly state that for
>>>> all IETF models "foo" and "foo-state" are separate trees with a
>>>> consistent naming convention and structure.  That should hopefully
>>>> allow tooling to programmatically relate the two separate trees
>>>> together.  It may give a path to allow "foo-state" to be merged into
>>>> "foo" in future, but once IETF has standardized 600+ models with
>>>> separate sub-trees, I cannot see that they would get merged back
>>>> together again.
>>>> 
>>>> What other alternatives are available?  As a WG we need to tell the
>>>> other WGs how the IETF YANG models should be structured.
>>>> 
>>>> In short, unfortunately I think that we have probably already missed
>>>> the opportunity to merge "foo" and "foo-state" subtrees together ...
>>>> 
>>>> </Rob Wilton>
>>>> 
>>>> Firstly, I’m trying to get a sense of how big a problem this
>>>> foo/foo-state thing is.  [Note: by foo-state, I’m only referring to
>>>> counters, not opstate].
>>>> 
>>> RW:
>>> By counters, I think that we also mean any config false nodes that
>>> don't 
>>> directly represent "applied configuration", right?  E.g. is an
>>> interface 
>>> operationally up or down.
>>> 
>>>>   I know about RFC 7223, which was done out of consideration for
>>>> system-generated interfaces, but how many other such models are there
>>>> envisioned to be?
>>>> 
>>> RW:
>>> - Any models that augment RFC 7223 and have config false nodes will be
>>> impacted.
>>> - I thought that quite a lot of other IETF models that are in the
>>> process of being standardized have a top level split between "foo" and
>>> "foo-state".  E.g the ISIS model (draft-ietf-isis-yang-isis-cfg-08) has
>>> this split.  I suspect that all the routing models will be structured
>>> similarly.
>> 
>> Correct. One reason is that the core routing model envisions
>> system-controlled RIBs.
>> 
>>> - Although it is perhaps worth pointing out that I think that the
>>> OpenConfig modules effectively have exactly this same issue (e.g. they
>>> have a combined interfaces tree keyed by config true leaves), and they
>>> pragmatically just ignore the issue of system created interface
>>> entries.
>> 
>> The NETMOD WG considered this issue quite important in the past.
>> 
>> My impression from the OpState discussion is that we are on the quest of
>> the philosopher's stone, trying to find a shortcut where none is
>> possible in general. The long session in Berlin concentrated on the
>> life-cycle of a single parameter that's somehow configured, then
>> manipulated, and eventually ends up as operational state. IMO this
>> is too simplistic, the relationship between configuration and state can
>> be much more complex. RIB is one example - it combines contributions
>> from configuration (static routes) and derived state (routing
>> protocols).
> 
> If one were to support the Applied-Config data store, it be comprised of
> only the current state of the configured static routes.  The complete RIB
> would still need to be accessible in separate data nodes.

Yes, but I didn't talk about intended-applied. I understand that another goal 
of OpState is to unify config and (true) state and get rid of the foo and 
foo-state dichotomy in the data model. I am sceptical about it.

Lada

> 
> Thanks,
> Acee 
> 
> 
> 
>> 
>> After all, most real devices have some configuration mode and "show"
>> commands. They are separate even though there is certainly some
>> relationship between their data.
>> 
>> Lada
>> 
>>> 
>>>> Is this issue currently blocking models from progressing, or are we
>>>> getting ourselves wrapped around a hypothetical?
>>>> 
>>> RW:
>>> I think that it is blocking models from progressing.
>>> 
>>> The current guidance for "intended vs applied" is clear.  I.e. there
>>> must not be "config false" leaves in the IETF YANG data models to
>>> represent "applied config".
>>> 
>>> But there is no clear guidance for the rest of operational state that
>>> isn't applied config.  The other WGs need clear guidance (effectively
>>> now) to ensure that they can start publishing models as RFCs.
>>> 
>>> 
>>>>  If RFC 7223 is an outlier, then we can address it as a special case
>>>> (perhaps via the related-state/related-config YANG annotations).  What
>>>> do you think?
>>>> 
>>> RW:
>>> Personally, I would like one common convention that applies to all IETF
>>> YANG models.
>>> 
>>> Idealistically I would like foo and foo-state to be merged because I
>>> think that will make the models easier to use and maintain in the long
>>> term, but I don't know if we are just too late to go in that direction.
>>> 
>>> It seems to me that the NETMOD WG really should try to come to a
>>> decision quite quickly on this, but I don't know how to encourage that.
>>> 
>>> A virtual interim on just this topic perhaps?
>>> 
>>>> Next, regarding paths forward (assuming 7223 is not an outlier), I’m
>>>> thinking the opposite.  I’m quite sure that we would never merge the
>>>> 600+ models with separate subtrees back together again.  So I’m
>>>> thinking we immediately merge foo and foo-state in all active YANG
>>>> models (so that the YANG “conceptual” models are stable and good)
>>>> *and* then we use your idea to programmatically generate the
>>>> “foo-state” tree, presumably only when needed.  This foo-state tree
>>>> could be generated offline by tools and provided as a second YANG
>>>> module in drafts.  In this way, servers (opstate aware or not) can
>>>> advertise if clients can access the foo-state tree (an opstate-aware
>>>> server may still advertise it for business reasons, and it can
>>>> ‘deprecate’ the tree when no longer needed).   We could do the same
>>>> without tools today by just using a feature statement on, for
>>>> instance, the interfaces-state container, but I like pushing for
>>>> tooling upfront so that we’re guaranteed mergeability later.  Thoughts?
>>>> 
>>> RW:
>>> So the generated "foo-state" tree would contain a copy of all config
>>> false nodes in the YANG schema and a "config false copy" of any config
>>> true nodes in the YANG schema that are required to provide parental
>>> structure for the descendant config false nodes.
>>> - The Xpath expressions would also need to be adjusted, and possibly
>>> some of those might break (or need to be fixed by hand).
>>> - Groupings might be a problem, but potentially they could be expanded.
>>> 
>>> Technically this solution might work, but is it possible to get
>>> everyone 
>>> to agree that this is the right direction to go in before we spend time
>>> on this?
>>> 
>>> Thanks,
>>> Rob
>>> 
>>> 
>>>> Kent // as a contributor
>>>> 
>>> 
>>> _______________________________________________
>>> netmod mailing list
>>> [email protected]
>>> https://www.ietf.org/mailman/listinfo/netmod
>> 
>> -- 
>> Ladislav Lhotka, CZ.NIC Labs
>> PGP Key ID: E74E8C0C
>> 
>> _______________________________________________
>> netmod mailing list
>> [email protected]
>> https://www.ietf.org/mailman/listinfo/netmod

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C




_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to