On Mon, Aug 24, 2015 at 12:01 PM, Martin Bjorklund <m...@tail-f.com> wrote:
> Ladislav Lhotka <lho...@nic.cz> wrote: > > > > On 24 Aug 2015, at 20:17, Andy Bierman <a...@yumaworks.com> wrote: > > > YANG does not provide any mechanism to REQUIRE modules A and B > > > to both be implemented on a server. You may think it should, but > > > currently the YANG conformance is for an individual module. > > > > There are sections on conformance and conformance announcement, and > > they say nothing like this. > > No Andy is correct, except that if module A augments module B, then a > server that implements A MUST also implement B. > > But I don't understand what this has to do with the issue. > > I think Lada is saying it is OK to add mandatory nodes in module A because the client should know about module A. The YANG conformance model does not at all support the concept of a placeholder subtree that will be augmented by modules, based on device capabilities like interface types supported). In this design pattern, there is nothing really to implement in the base module. In this design pattern it is very restrictive to only define optional nodes. It is clear that "augment+when" is a powerful tool that is diminished if mandatory nodes cannot be added. The problem is there is no cookie-cutter formula for a safe "when" statement. The common use-case is pick-an-identity from iana-if-type. Clearly we do not intend for a server to support every interface type just because it advertises the iana-if-types module. Also, we cannot assume the client knows about module A just because it knows about iana-if-type. IMO YANG Packages could at least convey the requirement that N of M augmenting modules MUST be present if the augmented module is supported. But it does not solve the problem of breaking old clients because new mandatory nodes are added to a new revision of a server. Andy > /martin >
_______________________________________________ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod