Hi,

I changed the DNS zone data model to use this pattern - it looks
good and works great:

- module:
  https://gitlab.labs.nic.cz/llhotka/zone-data-yang/blob/master/dns-zones.yang
  
- tree:
  https://gitlab.labs.nic.cz/llhotka/zone-data-yang/raw/master/model.tree

Lada

Martin Bjorklund <[email protected]> writes:

> Hi,
>
> I think this could work (thanks Robert; maybe this is what you
> meant!):
>
>   container zones {
>     list zone {
>       ...
>       list rrset {
>         ...
>         leaf type {
>           type identityref { ... }
>         }
>         list rdata {
>           key id;
>           ...
>           choice type-specific-params {
>             mandatory true;
>             // to be augmented with type-specific nodes
>           }
>         }
>       }
>     }
>   }
>
> And then in another module:
>
>   augment "/dnsz:zones/dnsz:zone/dnsz:rrset/dnsz:rdata"
>         + "/type-specific-parameters" {
>     when "derived-from-or-self(../dnsz:type,'iana-dns-parameters',"
>        + "'TLSA')";
>
>     leaf certificate-usage {
>       mandatory true;
>       ...
>     }
>   }
>
> The empty mandatory choice formally tells the client that additional
> cases are expected.
>
> (If the empty choice looks fishy, it is probably often possible to
> define at least one case inline...)
>
> This pattern is nice to the client, since there is no way an
> additional augmenting module can break a working client.
>
>
> /martin
>

-- 
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