This page describes how to generate NETCONF emulator from your own YANG.
Download NETCONF emulator boilerplate from here: https://drive.google.com/drive/folders/1Md2zGKBKuIMnhTlYhiVSVhIeU-1fGqK6
$ ls emulator-oc-xt3300 Dockerfile emulator/ src/
- Download ConfD Basic installer for linux from here: http://www.tail-f.com/confd-basic/
( It's license free, but you need cisco devnet account to download it) Put the installer (confd-basic-X.X.linux.i686.installer.bin) into the boilerplate
$ ls emulator-oc-xt3300 Dockerfile confd-basic-6.6.linux.i686.installer.bin* emulator/ src/
Open Dockerfile and edit the version of ConfD Basic
$ cat emulator-oc-xt3300/Dockerfile FROM i386/ubuntu:xenial EXPOSE 830 COPY confd-basic-6.6.linux.i686.installer.bin /opt # Edit here WORKDIR /opt RUN apt update \ && apt install -y openssh-client make \ && ./confd-basic-6.6.linux.i686.installer.bin confd COPY emulator /opt/emulator COPY src /opt/src RUN cd confd && . ./confdrc \ && cd ../emulator && make && ./setup.sh WORKDIR /opt/emulator ENTRYPOINT ["./entry.sh"]
Put your own YANG files into src/yang/
$ ls emulator-oc-xt3300/src/yang iana-if-type@2016-11-23.yang openconfig-interfaces@2016-05-26.yang openconfig-terminal-device@2016-12-22.yang ietf-interfaces@2014-05-08.yang openconfig-optical-amplifier@2016-03-31.yang openconfig-transport-line-common@2016-03-31.yang ietf-yang-types@2013-07-15.yang openconfig-platform-transceiver@2016-12-22.yang openconfig-transport-types@2016-12-22.yang openconfig-extensions@2015-10-09.yang openconfig-platform-types@2016-06-06.yang openconfig-types@2017-01-13.yang openconfig-if-ethernet@2016-12-22.yang openconfig-platform@2016-06-06.yang put-your-yangs-here
- Now you are ready to run your own NETCONF emulator. Please exec "docker run"!!
Username / password are set as admin/admin.
If you want to check that your docker instance works correctly and is healthy, you can use NETCONF client emulator like netconf-console command and send "hello" request to emulator.
If emulator responds "hello" message correctly, it works fine! And also you can see the loaded yang models from the <capabilities> in the hello reply message.$ netconf-console --host=localhost --port=830 -u admin -p admin --hello <?xml version="1.0" encoding="UTF-8"?> <hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <capabilities> <capability>urn:ietf:params:netconf:base:1.0</capability> <capability>urn:ietf:params:netconf:base:1.1</capability> <capability>urn:ietf:params:netconf:capability:candidate:1.0</capability> <capability>urn:ietf:params:netconf:capability:confirmed-commit:1.0</capability> <capability>urn:ietf:params:netconf:capability:confirmed-commit:1.1</capability> <capability>urn:ietf:params:netconf:capability:xpath:1.0</capability> <capability>urn:ietf:params:netconf:capability:validate:1.0</capability> <capability>urn:ietf:params:netconf:capability:validate:1.1</capability> <capability>urn:ietf:params:netconf:capability:rollback-on-error:1.0</capability> <capability>urn:ietf:params:netconf:capability:with-defaults:1.0?basic-mode=explicit&also-supported=report-all-tagged</capability> <capability>urn:ietf:params:netconf:capability:yang-library:1.0?revision=2016-06-21&module-set-id=206f40597ee8e8d35d0f0e10eebccb9e</capability> <capability>http://tail-f.com/ns/netconf/actions/1.0</capability> <capability>http://tail-f.com/ns/netconf/extensions</capability> <capability>http://openconfig.net/yang/interfaces?module=openconfig-interfaces&revision=2016-05-26</capability> <capability>http://openconfig.net/yang/interfaces/ethernet?module=openconfig-if-ethernet&revision=2016-12-22</capability> <capability>http://openconfig.net/yang/openconfig-ext?module=openconfig-extensions&revision=2015-10-09</capability> <capability>http://openconfig.net/yang/openconfig-types?module=openconfig-types&revision=2017-01-13</capability> <capability>http://openconfig.net/yang/optical-amplfier?module=openconfig-optical-amplifier&revision=2016-03-31</capability> <capability>http://openconfig.net/yang/platform?module=openconfig-platform&revision=2016-06-06</capability> <capability>http://openconfig.net/yang/platform-types?module=openconfig-platform-types&revision=2016-06-06</capability> <capability>http://openconfig.net/yang/platform/transceiver?module=openconfig-platform-transceiver&revision=2016-12-22</capability> <capability>http://openconfig.net/yang/terminal-device?module=openconfig-terminal-device&revision=2016-12-22</capability> <capability>http://openconfig.net/yang/transport-line-common?module=openconfig-transport-line-common&revision=2016-03-31</capability> <capability>http://openconfig.net/yang/transport-types?module=openconfig-transport-types&revision=2016-12-22</capability> <capability>http://tail-f.com/ns/aaa/1.1?module=tailf-aaa&revision=2015-06-16</capability> <capability>http://tail-f.com/ns/common/query?module=tailf-common-query&revision=2017-12-15</capability> <capability>http://tail-f.com/ns/kicker?module=tailf-kicker&revision=2017-09-28</capability> <capability>http://tail-f.com/yang/acm?module=tailf-acm&revision=2013-03-07</capability> <capability>http://tail-f.com/yang/common?module=tailf-common&revision=2018-03-01</capability> <capability>http://tail-f.com/yang/common-monitoring?module=tailf-common-monitoring&revision=2013-06-14</capability> <capability>http://tail-f.com/yang/confd-monitoring?module=tailf-confd-monitoring&revision=2013-06-14</capability> <capability>http://tail-f.com/yang/netconf-monitoring?module=tailf-netconf-monitoring&revision=2016-11-24</capability> <capability>http://tail-f.com/yang/xsd-types?module=tailf-xsd-types&revision=2017-11-20</capability> <capability>urn:ietf:params:xml:ns:yang:iana-crypt-hash?module=iana-crypt-hash&revision=2014-08-06&features=crypt-hash-sha-512,crypt-hash-sha-256,crypt-hash-md5</capability> <capability>urn:ietf:params:xml:ns:yang:iana-if-type?module=iana-if-type&revision=2016-11-23</capability> <capability>urn:ietf:params:xml:ns:yang:ietf-inet-types?module=ietf-inet-types&revision=2013-07-15</capability> <capability>urn:ietf:params:xml:ns:yang:ietf-interfaces?module=ietf-interfaces&revision=2014-05-08&features=pre-provisioning,if-mib,arbitrary-names</capability> <capability>urn:ietf:params:xml:ns:yang:ietf-netconf-acm?module=ietf-netconf-acm&revision=2012-02-22</capability> <capability>urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring?module=ietf-netconf-monitoring&revision=2010-10-04</capability> <capability>urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?module=ietf-netconf-notifications&revision=2012-02-06</capability> <capability>urn:ietf:params:xml:ns:yang:ietf-yang-library?module=ietf-yang-library&revision=2016-06-21</capability> <capability>urn:ietf:params:xml:ns:yang:ietf-yang-types?module=ietf-yang-types&revision=2013-07-15</capability> <capability>urn:ietf:params:xml:ns:netconf:base:1.0?module=ietf-netconf&revision=2011-06-01</capability> <capability>urn:ietf:params:xml:ns:yang:ietf-netconf-with-defaults?module=ietf-netconf-with-defaults&revision=2011-06-01</capability> </capabilities> <session-id>32</session-id> </hello>