You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

This page describes how to generate NETCONF emulator from your own YANG.


  1. Download NETCONF emulator boilerplate from here: https://drive.google.com/drive/folders/1Md2zGKBKuIMnhTlYhiVSVhIeU-1fGqK6

    $ ls emulator-oc-xt3300
    Dockerfile  emulator/   src/
  2. 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)
  3. 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/
  4. 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"]
  5. 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
  6. Now you are ready to run your own NETCONF emulator. Please exec "docker run"!!
  7. Username / password are set as admin/admin. 

  8. 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&amp;also-supported=report-all-tagged</capability>
        <capability>urn:ietf:params:netconf:capability:yang-library:1.0?revision=2016-06-21&amp;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&amp;revision=2016-05-26</capability>
        <capability>http://openconfig.net/yang/interfaces/ethernet?module=openconfig-if-ethernet&amp;revision=2016-12-22</capability>
        <capability>http://openconfig.net/yang/openconfig-ext?module=openconfig-extensions&amp;revision=2015-10-09</capability>
        <capability>http://openconfig.net/yang/openconfig-types?module=openconfig-types&amp;revision=2017-01-13</capability>
        <capability>http://openconfig.net/yang/optical-amplfier?module=openconfig-optical-amplifier&amp;revision=2016-03-31</capability>
        <capability>http://openconfig.net/yang/platform?module=openconfig-platform&amp;revision=2016-06-06</capability>
        <capability>http://openconfig.net/yang/platform-types?module=openconfig-platform-types&amp;revision=2016-06-06</capability>
        <capability>http://openconfig.net/yang/platform/transceiver?module=openconfig-platform-transceiver&amp;revision=2016-12-22</capability>
        <capability>http://openconfig.net/yang/terminal-device?module=openconfig-terminal-device&amp;revision=2016-12-22</capability>
        <capability>http://openconfig.net/yang/transport-line-common?module=openconfig-transport-line-common&amp;revision=2016-03-31</capability>
        <capability>http://openconfig.net/yang/transport-types?module=openconfig-transport-types&amp;revision=2016-12-22</capability>
        <capability>http://tail-f.com/ns/aaa/1.1?module=tailf-aaa&amp;revision=2015-06-16</capability>
        <capability>http://tail-f.com/ns/common/query?module=tailf-common-query&amp;revision=2017-12-15</capability>
        <capability>http://tail-f.com/ns/kicker?module=tailf-kicker&amp;revision=2017-09-28</capability>
        <capability>http://tail-f.com/yang/acm?module=tailf-acm&amp;revision=2013-03-07</capability>
        <capability>http://tail-f.com/yang/common?module=tailf-common&amp;revision=2018-03-01</capability>
        <capability>http://tail-f.com/yang/common-monitoring?module=tailf-common-monitoring&amp;revision=2013-06-14</capability>
        <capability>http://tail-f.com/yang/confd-monitoring?module=tailf-confd-monitoring&amp;revision=2013-06-14</capability>
        <capability>http://tail-f.com/yang/netconf-monitoring?module=tailf-netconf-monitoring&amp;revision=2016-11-24</capability>
        <capability>http://tail-f.com/yang/xsd-types?module=tailf-xsd-types&amp;revision=2017-11-20</capability>
        <capability>urn:ietf:params:xml:ns:yang:iana-crypt-hash?module=iana-crypt-hash&amp;revision=2014-08-06&amp;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&amp;revision=2016-11-23</capability>
        <capability>urn:ietf:params:xml:ns:yang:ietf-inet-types?module=ietf-inet-types&amp;revision=2013-07-15</capability>
        <capability>urn:ietf:params:xml:ns:yang:ietf-interfaces?module=ietf-interfaces&amp;revision=2014-05-08&amp;features=pre-provisioning,if-mib,arbitrary-names</capability>
        <capability>urn:ietf:params:xml:ns:yang:ietf-netconf-acm?module=ietf-netconf-acm&amp;revision=2012-02-22</capability>
        <capability>urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring?module=ietf-netconf-monitoring&amp;revision=2010-10-04</capability>
        <capability>urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?module=ietf-netconf-notifications&amp;revision=2012-02-06</capability>
        <capability>urn:ietf:params:xml:ns:yang:ietf-yang-library?module=ietf-yang-library&amp;revision=2016-06-21</capability>
        <capability>urn:ietf:params:xml:ns:yang:ietf-yang-types?module=ietf-yang-types&amp;revision=2013-07-15</capability>
        <capability>urn:ietf:params:xml:ns:netconf:base:1.0?module=ietf-netconf&amp;revision=2011-06-01</capability>
        <capability>urn:ietf:params:xml:ns:yang:ietf-netconf-with-defaults?module=ietf-netconf-with-defaults&amp;revision=2011-06-01</capability>
      </capabilities>
      <session-id>32</session-id>
    </hello>


  • No labels