On Thu, Jun 15, 2017 at 5:27 AM, Juergen Schoenwaelder <
j.schoenwael...@jacobs-university.de> wrote:

> Andy,
>
> section 5.1 of draft-ietf-netmod-revised-datastores-02.txt discusses
> the XPath context. An xpath expression in a config-false container
> will resolve to the operational state.
>
>

So the usual method of "augment when" is broken:

WRONG: Will evaluate when-stmt against config

   augment /foo {
       when "some condition";
       container stats { }
  }

 Correct: Will evaluate when-stmt against operational:

   augment /foo {
       container stats {
         config false;
         when "different condition";
       }
   }

Forcing the augmenting node to be the XPath context node impacts the
possible expressions.
I think the RD draft should make all this clear.



/js
>


Andy


>
> On Wed, Jun 14, 2017 at 11:07:35AM -0700, Andy Bierman wrote:
> > Hi,
> >
> > I don't know if getting rid of /foo-state is such a great idea,
> > especially wrt/ counters and other objects that are not
> > related to intended config vs. applied config.
> >
> > Q1) how does a client know the difference between an auto-generated
> > foo-state.yang and a real foo-state.yang?  Seem like a YANG extension
> > is needed to flag an auto-generated foo-state.yang
> >
> > Q2) How does XPath reference an operational node if the /foo-state
> > subtree has been moved to the /foo config subtree?
> >
> > module foo {
> >
> >      container foo {
> >           leaf stat-collect-type {
> >              type enumeration {
> >                enum stat-set1;
> >                enum stat-set2;
> >              }
> >            }
> >       }
> >
> >      container foo-state {
> >           config false;
> >           leaf stat-collect-type {
> >              type enumeration {
> >                enum stat-set1;
> >                enum stat-set2;
> >              }
> >            }
> >            container stat-set1 {
> >               when "../stat-collect-type = 'stat-set1'";
> >               ...
> >            }
> >            container stat-set2 {
> >               when "../stat-collect-type = 'stat-set2'";
> >               ...
> >            }
> >      }
> > }
> >
> > In this example, there is a request stat collect type
> /foo/stat-collect-type
> > and there is an operational value (what the server/device is capable
> > of collecting -- e.g. client requests stat-set2 knowing the server
> > will change it to stat-set1 if set2 not supported)
> >
> > So if /foo-state is folded into /foo (because that is the intent -- to
> get
> > rid of this extra stat-collect-type leaf), then how do the when-stmts
> > get applied to the operational value instead of the configured value?
> > The same issue applies if the when-stmts are within an augment-stmt
> >
> > WANT:
> >
> >  augment /foo-state {
> >     when "stat-collect-type = 'stat-set1'";
> >     container stat-set1 {
> >        ...
> >     }
> >  }
> >
> > RD Provides:
> >
> >   augment /foo {
> >     when "stat-collect-type = 'stat-set1'";
> >     container stat-set1 {
> >        config false;
> >        ...
> >     }
> >  }
> >
> > There is no way to use when-stmt to reference the operational value.
> > This is a rather common usage of the when-stmt, so it should not
> > be removed if RD is used.
> >
> >
> >
> > Andy
>
> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod
>
>
> --
> 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/>
>
_______________________________________________
netmod mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to