+---------------------------------------+ | Product : NuDesign ndCONF Linux SDKs | +---------------------------------------+ The ndCONF SDK is used to extend the functionality of the NuDesign YANG Datastore Server. The YANG Datastore Server can be accessed through NETCONF, RESTCONF, SNMP and CLI. The NuDesign ndCONF Linux SDK should run on most x86_64 Linux distributions, however it requires either openssl 1.1 or 3.0.x to be available. Older versions of openssl are not supported. Tested Linux host environments include - Rocky 8.x/9.x* (an RHEL work-a-like) - Fedora 27 - 41 - Debian 11 - 12 - Ubuntu 20.04**, 22.04, 23.10 - OpenSUSE 15.5 * may require the user to manually install libssh2 ** requires user to manually install libnettle.so.8 to run auxiliary executable 'ndtrdsclient' (command line radius client) The Install for ndCONF Eval SDK also contains these products: NETCONF Access Agent, RESTCONF Access Agent, SNMP Access Agent, NETCONF Client and mib_2_xml Compiler Tool. The Install for full version of ndCONF SDK additionally contains the ndCONF Agent Builder, a YANG Datastore Server Extensions code generator for customer's YANG modules. These product's respective Release Notes are available at https://www.ndt-inc.com/ndt/support/ under Development SDKs or Development Applications links. The evaluation license is limited to 30 days from the start date in the license. +---------------------------------------------+ | A note about pyang and python 3.14 or later | +---------------------------------------------+ The current versions of pyang, including pyang 2.6.1 installed with this SDK, does not support python versions later than 3.13. If you have installed this SDK on a system containing python 3.14 (or later) you saw a pop-up dialog warning of this issue during the installation. You have a couple alternatives. The first is to uninstall this SDK from the current system and select a system with python version 3.13 or less. The second alternative is to make a simple change to pyang itself, as outlined below. Find the file "/usr/local/lib/python3.14/site-packages/pyang-2.6.1-py3.14.egg/pyang/repository.py". With an text editor (running with root privilege), find the sequence: import pkgutil if not pkgutil.find_loader('pip'): break # abort search if pip is not installed and replace it with: import importlib.util if importlib.util.find_spec("pip") is None: break Save and exit the editor. You will now be able to use the code generation facility included with this SDK. +-------------------+ | Current Versions | +-------------------+ This release contains the following versions of executables: - NuDesign YANG Datastore TEST Agent (testagent) v 1.8.0.0 - NuDesign YANG Datastore Server (ndconfsvr, release only) v 1.8.0.0 - NuDesign NETCONF Client (ncclient) v 2.0.0.0 - NuDesign CLI Access Agent (libndtaacli.so.0) v 1.6.1.0 - NuDesign NetCONF Access Agent (libndtaanc.so.0) v 2.0.0.0 - NuDesign SNMP Access Agent (libndtaasnmp.so.0) v 1.7.0.0 - NuDesign RESTCONF Access Agent (libndtaarestconf.so.0) v 1.3.3.0 - NuDesign mib2xml v 1.4.0.0 - NuDesign ndCONF Builder (ndt3.pyc, release only) v 2.36 - NuDesign ndCONF Builder (ndtGen, release only) v 1.11 - NuDesign ietf Yang Library (libietfYangLibrary.so.0) v 1.0.0.0 - NuDesign RestCONF Test Application (restconf-submit-test.html) v 1.14 +-----------------+ | Version History | +-----------------+ ver 3.0.0.0 Mar 20, 2026 - RESTCONF - correct problems with JSON depth filtering - correct problem that led to occasionally leaving temporary files after execution. - add internal JSON parser to correct that way "depth" was being managed. - add exception handling to JSON - correct an issue with JSON output structure - ndt3.pyc - Startup config file enhanced with more data types like ‘object-identifier’, ‘OwnerString’, ‘RowPointer’ etc - Added identities to Groupings code - fnvalidate function removed from - code for anyxml, anydata added - GetRow definition changed to DataObj* GetRow (tUint32 tranId, const BString& key) - Added code for typedefs in syntax files for groupings Version 2.6.3 Feb. 13, 2026 - RESTCONF - correct several issues with JSON output - correct JSON field filtering problem. - restconf-submit-test.html - update builtin URI list in restconf-submit-test.html. Version 2.6.2 Aug.22, 2025 - RESTCONF - correct issues displaying schemas under /restconf/schemas - add method to improve presentation of JSON - correct presentation of empty JSON output - correct problem that led to occasionally leaving temporary files after execution. Version 2.6.1 July 14, 2025 - RESTCONF - correct presentation for URI "/restconf" and "/restconf/" - correct JSON ouput for /.well-known/host-meta - correct JSON ouput for /restconf/operations - correct JSON ouput for /restconf/streams/NETCONF-JSON Version 2.6.0 Mar. 17, 2025 - correct presentation of anydata and anyxml elements in JSON. - change so that yang-library-version is instrumented from the version indicated by the yang libary implementation as opposed to a static string. - add support for https streams (RESTCONF) with client certificates. - fix problem with JSON formatted notification streams where namespace information of the content was lost. - update certiciates and keys files and configuration. Version 2.5.0 Sept. 27, 2024 - updated RESTCONF with internal XML to JSON processing. Version 2.4.2 July 3, 2024 - installs pyang 2.6.1 - ndt3.pyc v 2.35 - Added switch to addin –ndt-dev. Code generated for with this switch will work with newer versions of SDK - ::Row::GetValue ; Row::GetData added to _data_if.cpp & _data_if.h - ietf-yang-push, template cpp. In Uses routine, anydata/anyxml did not do a callback. Fixed. - Various other changes made for –ndt-dev - ndtGen v 1.10 - improve handling status from generator. - handle multibyte sequence '-' and map to UTF8 '-' Version 2.4.1 Apr. 9, 2024 - add quick start pdf - update restconf-submit-test.html to allow for use on non standard web products - miscellaneous small corrections. Version 2.4 Feb. 22, 2024 - add JSON support for YANG-PATCH - add support for cross development on generated projects - documentation improvements - re-architect interface of openssl. - correct problem with a crash shutting down with some versions of openssl. - change to ndtGen so that all buildall command line parameters are passed to subordinate makes. - miscellaneous minor fixes. Version 2.3 Aug. 25, 2023 - NETCONF - call home - new licensing management. - remove man page for ndyangdemo & demostart ver 2.2 Jan 10, 2023 - add support for OpenSSL 3.x - ndt3.pyc v 2.30 - Support for 'Feature' functionality - restconf v1.1 - add conditional edit operations using 'If-Match’ & ‘If-None-Match' - improvements to depth processing. - correct problem converting XML to JSON. - correct authorization problem when http server provided "NONE" to "SSL_CLIENT_VERIFY" - restconf-submit-test.html v1.11 - change so that "Send accept header" is checked by default. - change s.t. sending "config" (content=config) is selected by default. - change s.t. content= is enabled and defaults to "config" - change s.t. content= is disabled when a writeable operation is selected. - change input focus to the URI when it's cleared. - same for the URI content area. - automatically check the "Send URI content as" check box when a write operation is selected in "Method:". - add two additional defaul SNMP USM users to the configuration, "shanopriv" & "shaaes" - update copyright notice. ver 2.1 May 31, 2022 - netconf - add cert revocation. - assorts improvements - restconf - add yang-patch implementation - improve error path information. - assorted improvements - cli - correct continual opening and closing of idle remote CLI server port - ndtGen (release only) - correct missing projects when build sub projects. - correct problem when yang document has version inf ver 2.0 Nov. 25, 2021 - netconf - add support for TLS, server and client. - restconf - add support for retrieving user group information from RADIUS - correct problem deleting entire list when invalid key information provided - removed dependencies on ndtsnmp lib. - add processing of "REMOTE_PASSWD" from client. ver 1.15 June 18, 2021 - add stream 'start' event on notification start. - add SYSLOG stream management - add per session recovery of user group information from local host for use with NACM. - restconf-submit-test.html - v 1.8 - set "Scroll Lock" automatically on streams. - event handling for stream 'start' events. - set default of maximum items of 10 (alterable) retained in stream while scroll lock is active. - ndrcstream - correct "keep alive" message timing handling. - correct buffer overrun handling - add handling for stream events. - add SYSLOG streams based on datadll derived from SYSLOG-MSG-MIB (RFC 5676) - mib2xml v1.1.0.0 -fixed trap generation for SMIv2 modules -added version info to mib2xml -added version info in footer of generated mib_...xml file - restconf - v 0.9.9.0 - ndt3.py - v 1.77 - updated code generated for handling SNMPv2-TC:RowStatus. - ndtbase - updated stream handling ver 1.14 May 4, 2021 - restconf - correct crash in some JSON to XML conversion - improve array handling in JSON to XML conversion - correct potential crash in error report handling - enable DELETE to remove individual item from a leaf-list - allow POST to add individual item to a leaf-list - correct potential crash in stream notification handling - add "Missing-namespace" & "Unknown-element" error reporting. - correct request header options in restconf-submit-test.html - change license file name. - ndtbase - external syntax validator - nacm external groups - updated error messages originating from restconf access agents - fixed locking "dirty" candidate datastore - ndtxml - added nsprefix argument to AddChildElement method ver 1.13.4 Mar. 26, 2021 - ndt3.pyc v 1.69 (release only) - remove debug output ver 1.13.3 Mar. 4, 2021 - ndt3.pyc v 1.67 (release only) - fix command line for linking multiple external libraries. ver 1.13.2 Mar. 1,2021 - ndt3.pyc v 1.66 (release only) - Fixed the generated the code in template.cpp when the leaf is the child of a case statement. The leaf is in an augment. - Fixed the issue where yang modules were not being copied to the yang directory in the generated code. The yang modules in question were submodules. - gen-info.txt now includes the command line arguments passed to the code generator - fixed bug in impl.cpp where the enum syntax was incorrect - ndtGen v 1.2.2 - correct remaining problem determining location of gen-info.txt - add --ndt-ndtGen-version - correct problem finding yang documents in a schema directories - restconf v.097 - correct problem processing errors. - fixed crash / memory leak caused by modules with augment - allow augmenting input/output of rpc and action - notification filtering (subtree & xpath) ver 1.13.1 Jan 19 2021 - corrrect introduce problem determining correct primary generation directory and project name ver 1.13.0 - Jan. 13, 2021 - restconf v 0.96 - add notification replay with filter, start-time & stop-time. - correct problem with sometimes "loosing" data in JSON to XML conversion. - correct issue in SSE encoding for event streams - correct problem incorrectly returning "201 Created" status on some PUT replace operations. - ndrcstream - change so that it detects and returns 400 status as appropriate. - improve event relay speed. - restconf-submit-test.html - v 1.6 - change so that event sessions are cancelled immediately. - change so the EvtSources are deleted after termination so that they don't continue to make requests to the server. - change so that when the request is for an event stream (prefix is /restconf/streams ) and "auto set accept events" is checked, the accept header is automatically set to "text/event-stream". - ndtaanc v 1.6 - updated peer delete handling in netconf aa - fixed handling of start/stop time in create-subscription for datetime with tz offset - ndtsys - fixed releasing "single writer, multiple reader" lock after thread termination - updated BDateTime - ndtaasnmp - updated PostCommit processing for SNMP set(s) - ndtbase - updated copy-config handling - fixed nacm when used by copy-config - yang 1.1 notifications (i.e. notifications tied to data nodes) - add notification enqueing for all streams. - ndtsocket - change stream so as to not cause exception on HUP (or any) signals - ndtGen - change so that equal signs are no longer used in parameter collection. - correct problem determining project names from yang documents. - change buildall so that it should work when invoked from any location. - add version info (1.1) ver 1.12.0 - Nov. 12, 2020 - restconf - add notification streaming - correct JSON formating problem. - add option to disable automatic update of :startup from :running - add option to have Restconf operate on :candidate with automatic commit operation, instead of :running. - correct issue with PUT causing scope of "replace" to cause removal of peer elements. - add conditional GET with "If-Match" and "If-None-Match". - update the OPTIONS response. - ndtbase - fixed order of initializing objects defined in augments - process 'must' xpaths for state objects - ndtcli - fixed a problem with file redirection when command line contained xpath expression with a '>' in it. ver 1.11.0 - Sep 3, 2020 - restconf - add (plain) PATCH - add JSON input processing - update restconf-submit-test.html - add CLI unload, load & start processing for access agents. - changed layout of data template tree in Broker (to support leafref-s) - added load/unload access agent - added InitFromStartup (so datadll & access agent can be initailized after dynamic 'load') - added NoData class & object to xxx_Impl classes that did not have Data class, required for locking - updated ndt-mgmt.yang implementation: get-data-dlls, datadll load/unload get-access-agents, accessagent load/unload - updated DbgLog::DumpTemplates - print 'augments' - added 'warm-start' trap to SNMP access agent, sent after SNMP AA is dynamically loaded after startup - updated NDCompareTrees, added flag to indicate list node that has child(ren) modified ver 1.10.1 - July 27, 2020 (Eval only) - minor adjustment to algorithm returning subtree filtered data. - minor additions of functionality in RestCONF. ver 1.10.0 - July 9, 2020 - add multi-threaded request servicing to name changed (ndtaanc) netconf access agent. - add filter type="path" to get/get-config, used in cli and ncclient - add print name of 'unknown' namespace when datastore load fails. - ietfInterfaces, map Description to Alias - update NDCompareTrees() for CmdDiff and CompareConfig - change default UDP transport wait period to be 1/10 second to reduce processor load. - add yang1.1. action - add command line option for logLevel - ndconfsvr - correct problem of creating multiple and stopping background ndconfsvr. - add restconf POST, PUT and DELETE on data resource. - add etag calculation for restconf HEAD operation - fix running datastore locking check in 'edit-config' - fix handling augment with 'when' - correct problems in XmlFilterHlp() - fixed tree compare - fixed problem data dll unloading - fixed problem DataStore::CommitAddModify - fixed problem MergeData: list and leaf-list - fixed problem in BuildInfo() (UDP tranport) if interface isn't IPv4 or 6 - improve algorithm for determining IPv4 address ver 1.9.2 - Apr 24, 2020 - correct buffer overflow problem in handling redirection of stderr. - correct issue stopping ndconfsvr deamon when it is started with a leading '-f' option. ver 1.9.1 - Apr 17, 2020 - add optional configuration file for testagent and ndconfsvr. - add r/w rootdir directory - add factory default processing - correct concurrency problems is output formatting methods. - add multiple logging levels - nacm fixed rule and rule-lists ordered by user - sync running (and candidate) tree with change dones directly by user code - add logfile management controls - restconf - add options relating to web authenticaton and https usage. ver 1.9 - Mar 11, 2020 - changes so that there is only a single libietfInterfaces.so.0 required in the configuration. - redirect stdErr to log file on testagent and ndconfsvr. - remove internal script command from ncclient. - add output redirection to file from CLI access agent. - add single writer/multiple reader lock - update implementation SNMPv2-MIB.yang (ndtaasnmp) - fixed bug in ietf-interfaces (indexes for ...layer-if) ver 1.8.2 - Feb. 14, 2020 - improve command line script handling in ncclient. - remove internal script command from ncclient. ver 1.8.1 - Jan. 29, 2020 - correct confirmed-commit issue. ver 1.8 - Jan. 28, 2020 - update and document build system, including for Source SDK. - correct a number of warnings throughout several sub projects. - update SDK user documentation. - ndtaacli: - correct a problem with opening service when in the background. - add an option to alter cli background service port. - remove "running" option from load command. - ndtaasnmp: - correct a problem with validating data with range constraints. - oc-interfaces: - correct issue with missing "name" key in interface list. - mib2xml: - fixed output for range constraint objects - correct partial-lock issue. ver 1.7.1 - Jan. 06, 2020 - Source SDK release, without ndCONF Builder. ver 1.7 - Dec. 20, 2019 - add restconf access agent - add libietfYangLibrary.so.0 (ietf Yang Library) - updated handling of "union" syntax - updated handling configuration file options: multiple sections, per agent/dll options ver 1.6 - Oct. 25, 2019 - update version list - change to libxml2 library. - add openconfig-interfaces implementation. - add get-namespaces - add "augments" support. - add '-w' and '-f' command parameters to ncclient to assist with script processing. ver 1.5 - Feb. 1, 2019 - correct a crash if using OpenSSL 1.0 and if using SNMP USM user md5des. - change software configuration of SDK to contain all files under single "root" node. - add shaaes SNMP USM user to startup-cfg.xml - add Code Generator to release version of SDK. - update documentation. - update copyright notices. - add current version list to this document. ver 1.4 - Aug. 22, 2018 - add the following features and capabilities - writable running. - partial locking. - confirmed commit. - fix problem with SNMP walk. - set testagent rev to 1.4 ver 1.02 - Mar. 2, 2018 - change handling of decimal64 ranges. - allow access to data instrumentation in one dll from a different dll - reuse instrumentation of grouping defined in imported module. The dll that implements imported yang module must be loaded first. - added Stxes() to IfDataCB - added method Syntaxes::GetEnumLabelU ver 1.01 - Feb. 27, 2018 - change main configuration file name to ndconf.xml - rebrand to ndconf - change installation path of includes and libraries to /usr/local/NuDesign/ndconf - change so that datadlls are checked for in the same directory as that specified by the ng_settings.xml "dlldir" option. - user documentation update. - update to latest code base. ver 1.00 - Jan. 12, 2018 - initial external release. ver .91 - Jan 10, 2017 - add ietf Interfaces implementation. - correct possible problem unloading the garage datadll. ver .903 - Aug 17, 2016 - correct problem processing yang:date-and-time, which affected e,g, create-subscription startTime/stopTime ver .902 - Aug 16, 2016 - add support for pre glibc 2.14 distributions - set to 'false' (disabled). ver .901 - Aug 10, 2016 - correct default file path problem. - correct Garage sub agent trap problem. - correct Usage() name problem. - update installation notes. - add man page for ndyangdemo & ncclient - update Quick Start. ver .90 - Aug 5, 2016 - Initial internal Linux release. +-----------------------+ | For Technical Support:| +-----------------------+ Tel: (416) 737-0328 Fax: (416) 445-9101 Email: contact@ndt-inc.com