Subject: [netmod] YANG conformance-stmt

From: Andy Bierman <[email-masked]>
Date: Thu, 01 May 2008 21:45:37 -0700

Hi,

Here is a first stab at a conformance example,
even simpler than SMIv2 (which some people may or may not like).

   - only accessible objects can be listed in the conformance section.
     (This includes nodes, rpcs, and notifications)

   - only nodes in the module namespace can be listed in the conformance
     section.

   - there is no conformance info for a typedef or a grouping or augment
     (that I am suggesting).  Instead the expanded target nodes are
     specified in the module with the uses.

   - top-level augment from module A to a subtree in module B must be
     documented in the conformance section for module A

--------------------------

Phil's example:

module A {
     revision 2008-01-01 { ... }
     grouping one {
         leaf foo { ... }
         leaf goo { ... }
     }

     // no conformance section needed

}

// revision 2008-04-01 left out for brevity

module A {
     revision 2008-05-01 { ... }
     grouping one {
         leaf foo { ... }
         leaf goo { ... }
         leaf super-cool { ... }
         leaf way-super-cool { ... }
     }

     capability way-super-cool-stuff {
       description
         "Implements the Acme way super-cool features, if supported.";
     }

     // no conformance section needed
}

module B {
     import A {
         prefix A;
     }

     container zed {
         uses A:one;
     }

     conformance 2008-01-01 {
       requires "/zed/foo";
       requires "/zed/goo";
       requires "/zed/way-super-cool" {
         description "acme super cool stuff capability needed";
         when-capability "A:way-super-cool-stuff";
       }
     }

}

module C {
     import A {
          prefix A;
     }
     import B { ... }   // do not see how this import is used

     container yancy {
         uses A:one;
     }

     conformance 2008-04-01 {
       requires "/yancy/foo";
       requires "/yancy/goo";
       requires "/yancy/super-cool";
     }
}

-------------------------------

In this example, module B wants the newest way-super-cool leaf
but not the super-cool leaf (could be deprecated by the time the
implementation for B is updated).

Module C was updated when super-cool was released, and has not
yet been updated to way-super-cool (may never be updated).

There should be a 1:1 correspondence between
conformance-stmt and revision-stmt.

Andy

_______________________________________________
netmod mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/netmod