Hello,

*       Inline is needed because you might want to specify dozens of YANG 
modules with all their features and deviations. That is a lot of information,  
so yes it will take some effort to read and understand it; real life nodes do 
contain many YAMs, features, deviations. 
*       Simplified-inline is needed, because it is self-contained and often an 
instance data set only contains info for 1 or 2 YANG modules without deviations 
or feature issues
*       URL is required because it is self-describing at least via reference. 
It might describe big, complicated schemas with a single URI. Most useful when 
many files with the same complex schema are processed. 
*       External method is needed because in many environments the schema is 
already known, so it does not need to be included

 

The workgroup has agreed that all 4 methods are needed for some use-cases. We 
can restart that debate, but I hope not.

 

Regards Balazs

 

From: Andy Bierman <a...@yumaworks.com> 
Sent: 2021. július 7., szerda 20:12
To: Balázs Lengyel <balazs.leng...@ericsson.com>
Cc: Juergen Schoenwaelder <j.schoenwael...@jacobs-university.de>; Rob Wilton 
(rwilton) <rwil...@cisco.com>; netmod@ietf.org; Benoit Claise 
<benoit.cla...@huawei.com>
Subject: Re: AD review of draft-ietf-netmod-yang-instance-file-format

 

 

 

On Wed, Jul 7, 2021 at 1:01 AM Balázs Lengyel <balazs.leng...@ericsson.com 
<mailto:balazs.leng...@ericsson.com> > wrote:

Hello Andy,

There are many different use-cases for instance-data-files, each with slightly 
different requirements. 

 

 

I don't agree that the solution requires 3 ways to do the same thing.

Well, 4 if you count External which means Proprietary and Not Standard At All.

 

Inline method is needed, if you want to indicate that the file was generated by 
someone who uses some YANG modules with deviations and some features are 
not-supported. There is no way to indicate feature-support and deviations with 
the simplified-inline method.

 

 

The Inline anydata solution is very heavyweight.

Before the YANG library there was a simple URI that is easier to use

and takes up much less storage.

 

 

The URL method was requested for the use-case when you generate 
instance-data-sets repeatedly e.g. every minute with the same schema. You don’t 
want to include the content-schema in every file, so you just include a single 
URL reference. (Note the content schema may be a longer piece of text, not just 
a single YANG module+revision)

 

The solution is very complex and it will not get implemented correctly, or at 
all.

IMO this damages interoperability and prevents some companies from using the 
solution

at all, because a reader tool has so much complexity to implement.  The 
real-world result

will be tools that can only read the files they wrote (not written by another 
tool).

 

 

Regards Balazs

 

 

Andy

 

From: Andy Bierman <a...@yumaworks.com <mailto:a...@yumaworks.com> > 
Sent: 2021. július 6., kedd 21:28
To: Juergen Schoenwaelder <j.schoenwael...@jacobs-university.de 
<mailto:j.schoenwael...@jacobs-university.de> >; Andy Bierman 
<a...@yumaworks.com <mailto:a...@yumaworks.com> >; Rob Wilton (rwilton) 
<rwil...@cisco.com <mailto:rwil...@cisco.com> >; Balázs Lengyel 
<balazs.leng...@ericsson.com <mailto:balazs.leng...@ericsson.com> >; 
netmod@ietf.org <mailto:netmod@ietf.org> ; Benoit Claise 
<benoit.cla...@huawei.com <mailto:benoit.cla...@huawei.com> >
Subject: Re: AD review of draft-ietf-netmod-yang-instance-file-format

 

 

 

On Tue, Jul 6, 2021 at 11:19 AM Juergen Schoenwaelder 
<j.schoenwael...@jacobs-university.de 
<mailto:j.schoenwael...@jacobs-university.de> > wrote:

On Tue, Jul 06, 2021 at 10:56:48AM -0700, Andy Bierman wrote:
> On Tue, Jul 6, 2021 at 10:42 AM Juergen Schoenwaelder <
> j.schoenwael...@jacobs-university.de 
> <mailto:j.schoenwael...@jacobs-university.de> > wrote:
> 
> > On Tue, Jul 06, 2021 at 09:42:39AM -0700, Andy Bierman wrote:
> > >
> > > IMO the 4 separate ways to identify the schema are 3 too many, but that
> > > is what the WG wants.  It seems obvious that any reader of the file
> > > has to implement all 4 methods and any writer of the file is free to pick
> > > just one.
> > > So the feature does not really help.
> > >
> >
> > The feature statements declare that implementation won't work
> > together. Back in a day, the IETF was all about interoperability (and
> > implementation costs). Nowadays we seem to be fine if implementations
> > declare that they won't work together. Well, still slightly better
> > than having implementations fail arbitrarity.
> >
> >
> 
> This is a text file stored on a USB stick.
> There is no client or server. Just readers and writers.
> So how does a YANG feature work here?
> The reader is supposed to know how to find out if this feature is set
> before opening the file?
>
> I don't see how server capabilities discovery is relevant to a
> YANG instance file.
> The reader code will simply attempt to read the file and fail if it
> encounters
> a format that is not implemented.

I assumed that the features are carried in the instance file, i.e.,
the file declares that it uses way X to announce the schema and then
the parser can fail with a suitable error message. If the features are
not carried in the file, then they indeed seem to be useless.

Perhaps there are Y different ways to announce the features of the
instance file as well, I did not check. ;-)

 

Now you made re-read the entire draft :-(

I cannot find any text how the reader knows if this feature is set before 
reading the

file and finding out.

 

I do not see any significant use-case for the Inline method and none for the 
Uri method.

Nor do I see any reason why the Simplified-Inline method should not be mandatory

to use and always present.

 

If the use-case is offline server validation then the YANG library details need 
to be known.

The entire YANG library for the server (or relevant parts) are recorded in the 
Inline method.

Except it is complicated to store the info about how to interpret YANG schema by

reading instance files and guessing what the "anydata" contains.

 

I actually prefer a simple string based on RFC 6020 URI method, since it can

be easily integrated into the Simplified Inline form and can be parsed without 
guessing

anything about the contents of anydata.

 

https://datatracker.ietf.org/doc/html/rfc6020#section-5.6.4

 

e,g,

 

OLD:

         case simplified-inline {
               leaf-list module {
                  type module-with-revision-date;

                  ...

                }

          }

 

NEW:

 

         case simplified-inline {
               leaf-list module {
                  type union {

                       type module-with-revision-date;

                       type string;

                   }

                   ...

                }

          }

 

Example module leaf-list entry:

 

       
ietf-interfaces?revision=2018-02-20&features=if-mib,arbitrary-names&deviations=acme-deviations

 

 

IMO Simplified Inline SHOULD be the only format, and the other methods can be 
removed.

 

 

/js

 

 

Andy

 

 


-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/ 
<https://protect2.fireeye.com/v1/url?k=1b82dc7c-4419e639-1b829ce7-867b36d1634c-3d395fcf11781013&q=1&e=ce6dbbb8-8693-4ac8-abbf-4a2014b77b32&u=https%3A%2F%2Fwww.jacobs-university.de%2F>
 >

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
netmod mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to