Hi Martin,

On 08/02/2016 13:45, Martin Bjorklund wrote:
Robert Wilton <[email protected]> wrote:

On 06/02/2016 00:41, Andy Bierman wrote:
[...]

IMO, this solution is a non-starter.
OK, and yet my understanding is that the folks requesting a solution
to the opstate problem are saying that the applied datastore approach
is also a non-starter, or at least very undesirable.
But the key to finding a solution that works for everyone is to
understand *why* a datastore is a non-starter.  As I noted in a
[Caveat - I don't speak for the OpenConfig operators, this is just my perception from previous drafts, conversations, implementing some of the OpenConfig models]

My understanding is that they want something this is very similar to how the OpenConfig models look. After all, their preferred solution to the opstate problem would be for IETF to standardize on the approach used in OpenConfig model design. E.g. all config nodes are defined in groupings, and then instantiated under both "config" and "state" containers.

I believe that their concerns are primarily about how the operators systems interact with the models from a management client perspective rather than device implementation concerns.

With the OpenConfig model/approach they get:
- The choice of having one single tree that contains all the data (intended, applied and derived) - but can be split into multiple trees if they wish. (I.e. with their model they have no requirement to be aware of separate data stores at all.) - Every piece of data in that tree has a unique path to identify it (makes the data easy to interact with). - The intended config, applied config, and derived state can all be programmatically compared. - Related information is co-located in the tree (e.g. if you were browsing the data tree).

With a datastore solution, I think that it means:
- Either they have to put intended and applied config into separate trees, or they have to come up with their own scheme to combine them into a single tree (given that the cfg intended/applied names clash). - If separate trees, to ensure paths are unique they would need to prefix every path with the name of the datastore/tree (hassle). - Comparing the intended and applied trees is a bit more hassle (they would need to perform a pairwise walk across both intended and applied configuration trees). - When data is being returned from the server (if it is even allowed for two datastores to be returned in the same request) then data would not be co-located. I.e. you have to read in all the data for both intended and applied config datastores before you can start processing any of it. Whereas if the data is returned in a single tree then co-located data would be returned together and the the stream of data can be filtered/processed without building up an intermediate combined tree of all the data.

previous email, both your solution and the datastore solution rely on
the assumption that the server internally knows the difference between
the "intended" and "applied" value for the config true nodes.
Please can you clarify - I don't really follow this point.

For all solutions, it only makes sense if the server internally knows the difference between intended and applied values, so I assume that is just a given.



(Note - I don't
actually know whether they regard the solution in
draft-wilton-netmod-opstate-yang to be any more palatable.)
Right; so if their objection is that the server cannot know the
difference between "intended" and "applied" for the config true leafs,
neither of our solutions work.

And if their objection is that their proprietary protocol does
can/does not encode the datastore in the "get" request, then
I suspect that their protocol also does not know your proposed
encoding.

 From a clients operational perspective I can see how the OpenConfig
model, with separate intended config and applied config leaves that
are co-located in the schema tree makes life easy for the client in a
way that having a separate applied configuration datastore doesn't
seem to.
I can see how the applied datastore model makes life easier for the
client, e.g., a diff can be done w/o any data model knowledge at all.
Possibly. But that requires that they have to manage having a separate datastore for applied config in the first place, and I'm not convinced that doing a pairwise diff across two datastores is any easier than the equivalent "diff" algorithm that they would write for checking the config state in the OpenConfig models.

Rob




/martin


Rob



     /js (stating a clear opinion as a technical contributor)

     --
     Juergen Schoenwaelder           Jacobs University Bremen gGmbH
     Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
     Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>



Andy

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


.


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

Reply via email to