Michael Richardson <[email protected]> wrote:
>
> Thank you very much for the review.
>
> Martin Björklund via Datatracker <[email protected]> wrote:
>     > From a YANG perspective, this module is quite simple and looks good.  
> The only
>     > thing you should change is to use sx:structure (from RFC 8791) instead 
> of
>     > rc:yang-data.
>
> yes, but we need to do this across the entire set of documents.

I don't think this is necessary.

> We have an RFC8366bis in progress anyway, so the timing is right.

Ok, if you do 8366bis, then it makes sense to change it to use
sx:structure.  (Side note: if you do this, I would also suggest you
look into splitting the grouping into several groupings; it seems 8995
wanted to reuse parts of the current grouping).


>
>     > However, you wrote in the request for the review "we would want to use 
> this
>     > document as the spearhead for resolving our issue of augmenting rfc8366 
> YANG".
>     > I have read the thread on the netmod mailing list, but I am not sure I
>     > understand the problem correctly.  In the ML thread, there was the 
> example of
>     > two independent modules that augmented RFC8366:
>
>     > module B adds some leafs to RFC8366
>     > module C adds some leafs to RFC8366
>
> And then Module D wishes to inherit from B and C :-)

"inherit from" is quite generic; I would need to see a detailed
example of the definitions you envision in B, C and D to give
guidelines.

> In practical terms, this would be a constrained version of PRM.
> (combining draft-ietf-anima-constrained-voucher + draft-ietf-anima-brski-prm)
>
>     > But if the intention is to add leafs to the *existing* structure 
> defined in RFC
>     > 8366 ("voucher-artifact"), then this approach doesn't work.
>
> We do this today in RFC8995 with augment.

No, 8995 defines a *new* structure; it doens't add to the existing
one.

Perhaps an example can clarify what what I mean.  Here's an example of
some instance data as modelled by RFC 8366:

   {
     "ietf-voucher:voucher": {
       "created-on": "2016-10-07T19:31:42Z",
       "assertion": "logged",
       "serial-number": "JADA123456789",
       "idevid-issuer": "base64encodedvalue==",
       "pinned-domain-cert": "base64encodedvalue==",
       "nonce": "base64encodedvalue=="
     }
   }

An eample of instance data that matches the RFC 8995 style of defining
a *new* strucure could look like this:

   {
     "ietf-voucher-request:voucher": {
       "created-on": "2016-10-07T19:31:42Z",
       "assertion": "proximity",
       "serial-number" : "JADA123456789",
       "nonce": "base64encodedvalue==",
       "proximity-registrar-cert": "base64encodedvalue=="
    }
  }

If instead we wanted to *add* to the exisitng structure in RFC 8366,
it could have looked like this:

   {
     "ietf-voucher:voucher": {
       "created-on": "2016-10-07T19:31:42Z",
       "assertion": "proximity",
       "serial-number" : "JADA123456789",
       "nonce": "base64encodedvalue==",
       "ietf-voucher-request:proximity-registrar-cert": "base64encodedvalue=="
    }
  }

(Note that this is hypothetical; it is not possible to do this with
the current RFC 8366, since it uses rc:yang-data).

Now, lets assume we have antother module "ietf-B", which is
independent of "ietf-voucher-request", that also wants to add a leaf
(say "contact") to the voucher.  An example of instance data could
look like this:

   {
     "ietf-voucher:voucher": {
       "created-on": "2016-10-07T19:31:42Z",
       "assertion": "proximity",
       "serial-number" : "JADA123456789",
       "nonce": "base64encodedvalue==",
       "ietf-voucher-request:proximity-registrar-cert": "base64encodedvalue==",
       "ietf-b:contact": "[email protected]"
    }
  }


So it all depends on what you want to do with the instance documents -
are they supposed to be "locked down" by explicit strcutures in
different RFCs, or do the RFCs define pieces of structures that can be
combined by implementations?

>
>     > If this is the
>     > intention, the base structure needs to be defined with sx:structure, 
> and B and
>     > C would have to use sx:augment-structure to add their leafs.  This 
> approach
>     > would e.g. allow an implementation to instantiate a "voucher-artifact"
>     > structure with leaves from *both* B and C, even though they are 
> independent
>     > modules.
>
> We want to go this way, but we want to be sure we are really doing it wrong.
> Do you have an opinion about whether there is just a bug in pyang's SID.py?
> Or is there something else missing in the YANG?

Yes this is missing in pyang.  I have asked the authors of the sid
plugin to have a look at this.


/martin



>
>
>
>
>
>
> --
> Michael Richardson <[email protected]>   . o O ( IPv6 IøT consulting )
>            Sandelman Software Works Inc, Ottawa and Worldwide
>
>
>
>

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

Reply via email to