Problem


Some YANG modules have top-level mandatory objects, even though this is not recommended for YANG design.  This means that as soon as the module is loaded into the server, a mandatory configuration node must be present or the <running> configuration will not be valid.


> netconfd-pro module=ietf-syslog


Starting netconfd-pro...
Copyright (c) 2008-2012, Andy Bierman, All Rights Reserved.
Copyright (c) 2012-2018, YumaWorks, Inc., All Rights Reserved.

Starting ypwatcher...
Warning: sil code for module 'ietf-syslog' not found
Error: top-level NP container 'syslog' is mandatory
ietf-syslog.yang:230.3: error(384): top-level mandatory objects are not allowed

Load module 'ietf-syslog' failed (top-level mandatory objects are not allowed)
Error: server exit due to init2 error (top-level mandatory objects are not allowed)

netconfd-pro: init returned (top-level mandatory objects are not allowed)




It is possible for the server instrumentation code to populate the mandatory nodes during the boot-up phase, so that is why this is only a warning in the YANG compiler:


> yangdump-pro ietf-syslog

Warning: top-level NP container 'syslog' is mandatory
ietf-syslog.yang:230.3: warning(1048): top-level object is mandatory

*** /home/andy/modules/ietf-syslog.yang
*** 0 Errors, 1 Warnings



Solution


The server can be configured to allow the startup and running configurations to fail validation tests at startup. The operator can provide the missing mandatory nodes using normal NETCONF or RESTCONF edit operations.


To configure the server to allow top-level mandatory nodes:


> netconfd-pro --startup-error=continue --running-error=continue