ConfD User Community

Missing deviation modules

I have a question about the default installation of Conf-D Basic related to missing ‘deviation’ modules. I believe that i have followed the instructions correctly for installing and configuring the Conf-D Basic NETCONF Server.

However, I have some NETCONF/YANG tools that are reporting the following errors when connecting to the NETCONF/YANG server:

[2022/11/04 10:51:48] Invalid YANG Library detected:
[2022/11/04 10:51:48] - failed to find deviation module 'ietf-subscribed-notifications-deviation' within module set 'common'
[2022/11/04 10:51:48] - failed to find deviation module 'ietf-yang-push-deviation' within module set 'common'

Conf-D is reporting the following via the ietf-yang-library:yang-library. However, the *-deviation modules are not reported in ietf-yang-library:module-state and are not available via command.

      <module>
        <name>ietf-subscribed-notifications</name>
        <revision>2019-09-09</revision>
        <namespace>urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications</namespace>
        <feature>encode-xml</feature>
        <feature>replay</feature>
        <feature>subtree</feature>
        <feature>xpath</feature>
        <deviation>ietf-subscribed-notifications-deviation</deviation>
      </module>

      <module>
        <name>ietf-yang-push</name>
        <revision>2019-09-09</revision>
        <namespace>urn:ietf:params:xml:ns:yang:ietf-yang-push</namespace>
        <feature>on-change</feature>
        <deviation>ietf-yang-push-deviation</deviation>
      </module>

You can see from the following, the -deviation modules are not reported in module-state or .

$ netconf-console  --get -x /modules-state/module[name=\'ietf-subscribed-notifications\']
<?xml version="1.0" encoding="UTF-8"?>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1">
  <data>
    <modules-state xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-library">
      <module>
        <name>ietf-subscribed-notifications</name>
        <revision>2019-09-09</revision>
        <namespace>urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications</namespace>
        <feature>encode-xml</feature>
        <feature>replay</feature>
        <feature>subtree</feature>
        <feature>xpath</feature>
        <deviation>
          <name>ietf-subscribed-notifications-deviation</name>
          <revision>2020-06-25</revision>
        </deviation>
        <conformance-type>implement</conformance-type>
      </module>
    </modules-state>
  </data>
</rpc-reply>


$ netconf-console  --get -x /modules-state/module[name=\'ietf-subscribed-notifications-deviation\']
<?xml version="1.0" encoding="UTF-8"?>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1">
  <data/>
</rpc-reply>


$ netconf-console  --get-schema=ietf-subscribed-notifications-deviation
Didn't get data in the reply

I’m not too familiar with deviation modules, so this could be an issue with the NETCONF/YANG tool that I’m using. However, I see from RFC8525 that deviation modules are supposed to be listed in the list of modules.

         list deviation {
           key "name revision";
           description
             "List of YANG deviation module names and revisions
              used by this server to modify the conformance of
              the module associated with this entry.  Note that
              the same module can be used for deviations for
              multiple modules, so the same entry MAY appear
              within multiple 'module' entries.

              The deviation module MUST be present in the 'module'
              list, with the same name and revision values.
              The 'conformance-type' value will be 'implement' for
              the deviation module.";
           uses common-leafs;

Are there supposed to be .fxs files installed for these deviation modules in Conf-D (ietf-subscribed-notifications-deviation.fxs and ietf-yang-push-deviation.fxs)? Can I work around this issue by compiling the .fxs files myself?

Thank you,
Matt

This is a know issue corrected by ConfD 8.0. From the ConfD 8.0 CHANGES:

By default, using the confdc option --deviation now emits the deviation file as an fxs file of its own. If the deviation fxs file already exists, the fxs file is only emitted if the yang source file has a newer modification time than the fxs file. It is possible to skip automatic emit of deviation models by using --skip-deviation-fxs. See confdc(1) for further info.

Yes. Example:

$ confdc -c -o $CONFD_DIR/etc/confd/ietf-subscribed-notifications-deviation.fxs $CONFD_DIR/src/confd/yang/ietf-subscribed-notifications-deviation.yang
$ confdc -c -o $CONFD_DIR/etc/confd/ietf-yang-push-deviation.fxs $CONFD_DIR/src/confd/yang/ietf-yang-push-deviation.yang

This works. Thank you.