YumaPro Source Files
This section describes the files that are contained in the YumaPro Source Code packages.
Some YumaPro binary packages install H files and example source code:
The server C include files are copied into
/usr/include/yumapro
The example program sources is installed in
/usr/share/yumapro/src
The following table lists the files that are included within the
netconf/src
directory.
Note that not all of these source directories are included in every ‘yumapro’ source package.
Directory |
Description |
agt |
Server implementation modules |
combo-app |
Example subsystem application using DB-API and SIL-SA services |
db-api |
Subsystem DB-API service support |
db-api-app |
Example subsystem application using DB-API service |
mgr |
Client implementation support |
ncx |
Core support for YANG, XPath, XML, JSON |
netconfd-pro |
YumaPro netconfd-pro application (main server) |
platform |
Platform definition files (H and Makefile support) |
restconf |
YumaPro restconf application (FastCGI thin client to transfer external HTTP(S) connection to internal netconfd-pro socket using RESTCONF protocol |
sil-sa |
Subsystem SIL-SA service support |
sil-sa-app |
Example subsystem application using SIL-SA service |
subsys-pro |
YumaPro netconf-subsystem-pro application (thin client to transfer external connection to internal netconfd-pro socket) |
support-save-app |
Internal application to decode XML file from get-support-save |
yang-api |
YumaPro yang-api application (FastCGI thin client to transfer external HTTP(S) connection to internal netconfd-pro socket using YANG-API protocol |
yangcli-gw |
YumaPro yangcli-gw application (23.10T feature) |
yangcli-pro |
YumaPro yangcli-pro application (NETCONF client) |
yangdiff-pro |
YumaPro yangdiff-pro application (YANG Semantic Compare) |
yangdump-pro |
YumaPro yangdump-pro application (YANG Compiler with code generation support) |
yangdump-sdk (OBSOLETE) |
YumaPro yangdump-sdk application Removed starting 22.10T-9 release |
ycli |
Client and server YANG based CLI support |
ycontrol |
Subsystem YControl protocol handler |
ydump |
YANG compiler support |
ypgnmi |
YumaPro ypgnmi-app application (GO subsystem application to transfer external gNMI requests to internal netconfd-pro socket) |
ypgrpc |
YumaPro ypgrpc-go-app application (GO subsystem application to host gRPC server and communicate with netconfd-pro socket) |
yp-ha-app |
Application to control the YP-HA mode for the local server |
yp-shell |
YumaPro yp-shell application (server version of YANG based CLI with direct connection to main server) |
ypwatcher |
YumaPro ypwatcher application (server state monitoring program) |
src/ncx Directory
This directory contains the code that is used to build the 'libyumapro_ncx.so' binary shared library that is used by all YumaPro Tools programs.
It handles many of the core NETCONF/YANG data structure
support, including all of the YANG/YIN, XML, and XPath processing. The
following table describes the purpose of each file. Refer to the actual
include file (E.g., 'ncx.h' in /usr/include/yumapro
for more
details on each external function in each C source module.
src/ncx C Modules
b64 |
Encoding and decoding the YANG binary data type. |
blob |
Encoding and decoding the SQL BLOB data type. |
bobhash |
Implementation of the BOB hash function. |
cap |
NETCONF capability definitions and support functions |
cbor_parse |
YANG/CBOR Parser support for Binary Push |
cbor_wr |
YANG/CBOR Output support for Binary Push |
cfg |
NETCONF database data structures and configuration locking support. |
cli |
CLI parameter parsing data driven by YANG definitions. |
conf |
Text .conf file encoding and decoding, data driven by YANG definitions. |
def_reg |
Hash-driven definition registry for quick lookup support of some data structures. Contains back-pointers to the actual data. |
dlq |
Double linked queue support |
errmgr_dict |
Fast lookup data structures for -error message data |
errmsg |
Custom error message handling |
ext |
YANG extension data structure support |
getbulk |
Getbulk data structure support |
getcb |
Server Get Callback support |
grp |
YANG grouping data structure support |
heapchk |
Heap debugging support |
help |
Automatic help text, data-driven by YANG definitions |
ipaddr_typ |
Canonical handler for IP address data types |
json_parse |
Parse a token chain as JSON Text support, as defined in RFC 4627 |
json_wr |
JSON Output support |
libncx |
This is a wrapper for all NCX Library functions. Include individual H files instead to save compile time. OBSOLETE |
log |
System logging support |
log_syslog |
SYSLOG Logging support |
log_util |
Logging Utilities |
log_vendor_extern |
Vendor Specific Logging API |
log_vendor |
Vendor Specific Logging support |
ncx_appinfo |
YumaPro Netconf Extensions (NCX) support |
ncxconst |
YumaPro common constants |
ncx_feature |
YANG feature and if-feature statement data structure support |
ncx |
YANG module data structure support, and some utilities |
ncx_list |
Support for the ncx_list_t data structure, used for YANG bits and ncx:xsdlist data types. |
ncx_nmda |
Support for NMDA data structures and data types |
ncxmod |
File Management: Controls finding and searching for YANG/YIN files, data files, and script files |
ncx_num |
YumaPro ncx_num_t data structure support. Used for processing value nodes and XPath numbers. |
ncx_owner |
YumaPro owner attribute support |
ncx_str |
YumaPro string support. |
ncxtypes |
YumaPro common types |
obj |
YumaPro object obj_template_t data structure access |
obj_dict |
Unused experimental YANG Hash support for object identification |
obj_errmsg |
Object specific custom error message support |
obj_help |
Automated object help support used with help module |
op |
NETCONF operations definitions and support functions |
parse_util |
Common parser code used by XML and CBOR |
plock_cb |
Partial Lock Control Block support |
plock |
Partial Lock support |
rpc_err |
NETCONF <rpc-error> data structures and support functions. |
rpc |
NETCONF <rpc> and <rpc-reply> data structures and support functions |
runstack |
Script execution stack support for yangcli-pro-pro scripts |
send_buff |
NETCONF send buffer function |
ses |
NETCONF session data structures and session access functions |
ses_msg |
Message buffering support for NETCONF sessions |
sid_dict |
YANG SID dictionary for CBOR parser |
sid_file |
YANG SID file support |
sm |
Schema Mount support |
status_enum |
Return Status data type |
status |
Error code definitions and error support functions |
support_save |
<get-support-save> operation support |
thd |
POSIX Threads support |
tk |
Token chain data structures used for parsing YANG, XPath and other syntaxes. |
top |
Top-level XML node registration support. The <rpc> and <hello> elements are registered by the server. The <hello>, <rpc-reply> , and <notification> elements are registered by the client. |
tstamp |
Time and date stamp support functions |
typ |
YANG typedef data structures and access functions |
typ_userdef |
User-defined data types (callback support) |
val |
YumaPro value tree data structures and access functions |
val_child |
Support for the val_value_t data structure. child_hdrQ for NCX_BT_LIST and NCX_BT_CONTAINER |
val_tree |
AVL Tree storage of YANG List Data support |
val_unique |
YANG unique-stmt support |
val_util |
High-level utilities for some common SIL tasks related to the value tree. |
var |
User variable support, used by yangcli-pro-pro and XPath |
version |
Hardwired release train version ID |
wr_util |
Write utilitities used by XML and CBOR |
xml_msg |
XML message data structures and support functions |
xmlns |
XML Namespace registry |
xml_util |
XML parse and utility functions |
xml_val |
High level support functions for constructing XML-ready val_value_t data structures |
xml_wr |
XML output support functions and access-control protected message generation support |
xpath1 |
XPath 1.0 implementation |
xpath1_aio |
Xpath 1.0 search support fort All In One GET2 callbacks |
xpath1_cmp |
Xpath 1.0 search support; Compare support |
xpath1_fn |
Xpath 1.0 search support; XPath function library |
xpath1_get2 |
XPath 1.0 distributed data support via GET2 callbacks |
xpath1_pred |
Xpath 1.0 search support; predicate support |
xpath1_res |
Xpath 1.0 search support; XPath result support |
xpath |
XPath data structures and support functions |
xpath_wr |
Support for generating XPath expression content within an XML instance document |
xpath_yang |
Special YANG XPath construct support, such as path expressions and instance identifiers |
yangapi |
YANG-API/RESTCONF protocols support |
yangconst |
YANG constants |
yang |
YANG definitions and general support functions |
yang_data |
rc:yang-data extension support |
yang_ext |
YANG parsing and validation of the extension statement |
yang_feature |
Support for YANG Feature and if-feature statements |
yang_grp |
YANG parsing and validation of the grouping statement |
yang_hash |
YANG Hash support functions OBSOLETE |
yang_lsid |
YANG LSID support functions for CBOR encoding |
yang_obj |
YANG parsing and validation of the rpc, notification, and data definition statements |
yang_parse |
Top level YANG parse and validation support |
yang_patch |
YANG Patch support |
yang_sid |
YANG SID support functions for CBOR encoding |
yang_typ |
YANG typedef and type statement support |
yin |
YANG to YIN mapping definitions |
yinyang |
YIN to YANG translation |
ypgnmi |
YP-GNMI protocol support |
src/platform Directory
This directory contains platform support include files and Makefile support files. It is used by all YumaPro C modules to provide an insulating layer between YumaPro programs and the hardware platform that is used.
Note
For memory management, all YumaPro programs use macros instead of 'malloc' and 'free' functions directly.
Use 'm__getMem' or 'm__getObj' instead of 'malloc'
Use 'm__free' instead of 'free'
src/platform Files
curversion.h |
File generated during the build process to get the SVNVERSION number |
platform.profile |
Included by Makefiles for build support |
platform.profile.cmn |
Included by Makefiles for build support |
platform.profile.depend |
Included by Makefiles for dependency generation support |
procdefs.h |
Platform definitions. Contains basic data types and macros used throughout the YumaPro code. All C files include this file before any other YumaPro files. |
setversion.sh |
Shell script to generate the curversion.h file |
src/agt Directory
This directory contains the NETCONF server implementation and built-in module SIL code.
The following table describes the C modules contained in this directory:
src/agt C Modules
agt |
Server initialization and cleanup control points. Also contains the agt_profile_t data structure. |
agt_acm_extern |
External ACM API support |
agt_acm |
NETCONF access control implementation. Wrapper for 3 different ACM models: IETF, Yuma, and External (vendor provided) |
agt_acm_ietf |
IETF NACM (RFC 6536) support |
agt_acm_yuma |
Yuma NACM support (unused and not supported) OBSOLETE |
agt_action |
Support for the YANG 1.1 action-stmt |
agt_audit |
Audit log support |
agt_callhome |
Call Home protocol support |
agt_cap |
Server capabilities. Generates the server <capabilities> element content. |
agt_cb |
SIL callback support functions. |
agt_cfg |
Configuration Edit Transaction support |
agt_cli |
Server CLI and .conf file control functions. |
agt_commit_complete |
Commit Complete Callback support |
agt_conf |
Nested config file support |
agt_connect |
Handles the internal <ncx-connect> message sent from the netconf-subsystem-pro to the netconfd-pro server. |
agt_crypt |
Crypt-hash data type support |
agt_curl |
libcurl support for <url> parameter |
agt_db_api |
Handles the DB-API service (messages to/from subsystem) |
agt_db_lock |
Distributed DB-Lock feature support |
agt_get2 |
Second generation GET support |
agt_getbulk |
GETBULK support |
agt_hello |
Handles the incoming client <hello> message and generates the server <hello> message. |
agt_hook_util |
NETCONF Server Set/Transaction Hook utility functions. This file contains functions to support validation of callbacks and some supplemental functions. |
agt_ietf_notif |
NETCONF Base notifications (RFC 6470) |
agt_json_parse |
JSON Input support for YANG-API/RESTCONF protocols |
agt_library |
Setup the server in the library mode |
agt_modtags |
Module tags support |
agt_ncchd |
OpenSSH connect support for Call Home protocol |
agt_ncx |
NETCONF protocol operation implementation. Contains the yuma-netconf module SIL callback functions. |
agt_ncx_load |
NETCONF Server load / unload operations support |
agt_ncxserver |
Implements the ncxserver loop, handling the IO between the server NETCONF sessions and the netconf-subsystem-pro thin client program. |
agt_nmda |
NMDA module initialization and cleanup |
agt_not |
NETCONF Notifications implementation. Contains the notifications and nc-notifications modules SIL callback functions. |
agt_openssl |
Support for NETCONF over TLS protocol |
agt_plock |
Partial Lock (RFC 5717) support |
agt_profile |
Server Profile support |
agt_push |
YANG Push support |
agt_restcmn |
YANG-API/RESTCONF protocols common handler |
agt_restconf |
RESTCONF protocol handler |
agt_rpc |
NETCONF RPC operation handler |
agt_rpcerr |
NETCONF <rpc-error> generation |
agt_ses |
NETCONF session support and implementation of the YumaPro Session extensions. Contains the yuma-mysession module SIL callback functions. |
agt_signal |
Server signal handling support |
agt_sil |
Handles SIL-SA service (messages to/from subsystem) for distributed remote transactions |
agt_sil_lib |
Dynamic library management for SIL and SIL-SA libraries |
agt_sil_profile |
Handles agt_profile initialization on SIL-SA subsystems |
agt_sm |
Handles Schema Mount Management |
agt_sm_ietf |
Handles ietf-yang-schema-mount module |
agt_state |
Standard NETCONF monitoring implementation. Contains the ietf-netconf-monitoring SIL callback functions. |
agt_static_syslib |
Handles static link of yp-system library |
agt_static_yanglib |
Handles static link of ietf-yang-library |
agt_support_save |
Handles <get-support-save> operation |
agt_sys |
Server system monitoring and notification generation. Contains the yuma-system module SIL callback functions. |
agt_templates |
Support for yumaworks-templates modules |
agt_time_filter |
Supports yuma-time-filter module for efficient retrieval based on last-modified timestamp of the datastore (or data node) |
agt_timer |
SIL periodic timer callback support functions |
agt_top |
Server registration and dispatch of top-level XML messages |
agt_tree |
Subtree filtering implementation |
agt_tree_get2 |
Support for Get2 callback data retrieval |
agt_util |
SIL callback utilities |
agt_val |
Server validation, and commit support for NETCONF database operations |
agt_val_parse |
Incoming <rpc> and <config> content parse and complete YANG constraint validation |
agt_val_rollback |
Rollback support for NETCONF database operations |
agt_val_silcall |
NETCONF Server database callback handler. SIL callback code |
agt_val_unload |
Unload module support |
agt_xml |
Server XML processing interface to
|
agt_xpath |
XPath filtering implementation |
agt_yangapi_edit |
YANG-API/RESTCONF datastore editing support |
agt_yangapi |
YANG-API protocol handler |
agt_yangapi_reply |
YANG-API/RESTCONF response message handler |
agt_yangpatch |
YANG-PATCH Edit Handler for HA/RESTCONF/NETCONF |
agt_yang_cbor |
Handles YANG/CBOR management |
agt_ycontrol |
YControl Subsystem Message handler |
agt_ypcoap |
CoAP (RFC 7252) Support OBSOLETE |
agt_ypgnmi |
YP-GNMI protocol support |
agt_ypgnmi_get |
YP-GNMI protocol GET operation support |
agt_ypgnmi_not |
YP-GNMI protocol notification support |
agt_ypgnmi_set |
YP-GNMI protocol SET operation support |
agt_ypgrpc |
YP-GRPC protocol support |
agt_ypgrpc_state |
YP-GRPC monitoring implementation. Contains the yumaworks-grpc-mon SIL callback functions. |
agt_yp_ha |
High Availability module (YP-HA) |
agt_yp_ha_active |
High Availability module (YP-HA). HA Active Mode |
agt_yp_ha_standby |
High Availability module (YP-HA). HA Standby Mode |
agt_ypsnmp |
SNMP Protocol support |
agt_ypsnmp_agentx |
SNMP Protocol Agent-X support |
agt_ypsnmp_not |
SNMP Protocol Notification support |
agt_ypsnmp_proto |
SNMP Protocol Operations support |
agt_ypsnmp_sec |
SNMP Protocol Security support |
agt_ypsnmp_util |
SNMP Protocol utilities |
ietf-netconf-nmda |
NMDA protocol operations for NETCONF protocol |
u_yumaworks-cert- usermap |
Supports yumaworks-cert-usermap module for configurint NETCONF over TLS usernames |
u_yumaworks_event_ filter |
Supports yumaworks-event-filter module for disabling specific notification types (User module) |
u_yumaworks_templates |
Supports yumaworks-templates module for template-driven configuration (User module) |
yumaworks-callhome |
Supports yumaworks-callhome for Call Home configuration at run-time |
yumaworks-event- stream |
Supports yumaworks-event-stream for Event Stream configuration at run-time |
yumaworks-sm- yanglib |
Supports <get-sm-yanglib> operation for Schema Mount |
yumaworks-yang-cbor |
Contains yumaworks-yang-cbor SIL code for Binary Push |
y_yumaworks_cert_ usermap |
Supports yumaworks-cert-usermap module for configurint NETCONF over TLS usernames |
y_yumaworks_event_ filter |
Supports yumaworks-event-filter module for disabling specific notification types (Yumapro module) |
y_yumaworks_templates |
Supports yumaworks-templates module for template-driven configuration (User module) |
src/mgr Directory
This module contains the NETCONF client support code. It handles all the basic NETCONF details so a simple internal API can be used by NETCONF applications such as yangcli-pro.
The following table describes the C modules contained in this directory:
src/mgr C++ Modules
c-api-devices |
yp-client APIs for client device configuration |
c-api-session |
yp-client APIs for client session management |
c-api-users |
yp-client APIs for client user configuration |
libmgr |
Include most of the mgr libraries from 1 H file |
mgr |
Client initialization and cleanup control points. Also contains manager session control block data structure support functions. |
mgr_callhome |
Client support for NETCONF Call Home sessions |
mgr_cap |
Generate the client NETCONF <capabilities> element content |
mgr_coap |
CoAP message handler OBSOLETE |
mgr_hello |
Handles the incoming server <hello> message and generates the client <hello> message. |
mgr_http |
HTTP message handler |
mgr_io |
Handles SSH server IO support for client NETCONF sessions |
mgr_load |
Load external file variables into the system |
mgr_not |
Handles incoming server <notification> messages |
mgr_rpc |
Generate <rpc> messages going to the NETCONF server and process incoming <rpc-reply> messages from the NETCONF server. |
mgr_ses |
Handles all aspects of client NETCONF sessions. |
mgr_signal |
Client signal handler |
mgr_top |
Client registration and dispatch of top-level XML messages |
mgr_val_parse |
Incoming <rpc-reply>, <notification>, and <config> content parse and complete YANG constraint validation. |
mgr_xml |
Client XML processing interface to 'ncx/xml_util' functions |
src/subsys-pro Directory
This directory contains the netconf-subsystem-pro program. This is a
thin-client application that just transfers input and output between the
SSH server and the NETCONF server. The main C source modules are called
'netconf-subsystem' and 'subsystem'. This is a stand-alone binary
that is part of some yumapro packages. It is installed in the
/usr/sbin/
directory.
src/netconfd-pro Directory
This directory contains the netconfd-pro program, which implements
the NETCONF server. It contains one C module called netconfd-pro,
which defines the NETCONF server 'main' function. This is a stand-alone
binary that is part of some binary packages. It is installed
in the /usr/sbin/
directory.
src/yangcli-pro Directory
This directory contains the yangcli-pro program, which is the
YumaPro NETCONF client program. This is a stand-alone binary that is
part of the 'yumapro-client' and other packages. It is installed in the
/usr/bin/
directory.
src/yangdiff-pro Directory
This directory contains the yangdiff-pro program, which is the
YumaPro YANG module compare program. This is a stand-alone binary that
is part of the 'yumapro-client' and other packages. It is installed in the
/usr/bin/
directory.
The following table describes the C modules contained in this directory:
src/yangdiff-pro
yangdiff-pro |
YANG module semantic compare program |
yangdiff-pro_grp |
Implements semantic diff for YANG grouping statement |
yangdiff-pro_obj |
Implements semantic diff for YANG data definition statements |
yangdiff-pro_typ |
Implements semantic diff for YANG typedef and type statements |
yangdiff-pro_util |
Utilities used by the other yangdiff-pro C modules |
src/yangdump-pro Directory
This directory contains the yangdump-pro program, which is the
YumaPro YANG compiler program with code generation support.
This is a stand-alone binary program. The
source code is included in the YumaPro SDK Complete license. It is
installed in the /usr/bin/
directory.
src/yangdump-sdk Directory
This directory contains the yangdump-sdk program, which is the
YumaPro YANG compiler program with code generation support. This is a
stand-alone binary program. The source code is included in the YumaPro
SDK Complete license. It is installed in the /usr/bin/
directory.
Note
The yangdump-sdk program is the same as the yangdump-pro program, starting in the 21.10-4 release. This program is now obsolete, and has been removed starting in release 22.10T-9.
src/ydump Directory
This directory contains some library files to support the yangdump-pro program, which is the YumaPro YANG compiler program. This is a static library linked with that program. The source code is included in the YumaPro SDK Complete license.
The following table describes the C modules contained in this directory:
src/ydump C Modules
c |
Implements SIL C file generation |
c_util |
Utilities used for SIL code generation |
cyang |
Handle C/H file conversion (access from ydump) |
h |
Implements SIL H file generation |
html |
Implements YANG to HTML translation |
sql |
Implements SQL generation for YANG module WEB Docs |
xsd |
Implements YANG to XSD translation |
xsd_typ |
Implements YANG typedef/type statement to XSD simpleType and complexType statements |
xsd_util |
XSD conversion utilities |
xsd_yang |
YANG to XSD translation utilities |
yangdump_util |
Utilities used by all yangdump-pro C modules |
yangstats |
YANG module statistics support |
yangyin |
Implements YANG to YIN translation |
ydump |
Main library entry point |
src/ypwatcher Directory
This directory contains the ypwatcher program, which is the YumaPro
server's state monitoring program. This is a stand-alone binary program.
The source code is included in the YumaPro SDK Complete license. It is
installed in the /usr/bin/
directory.
src/ypgnmi Directory
This directory contains the ypgnmi-app program, which is the YumaPro
gNMI application. This is a stand-alone binary program. It is installed
in the /usr/bin/
directory.
The following table lists the files that are included within the 'netconf/src/ypgnmi' directory.
Directory |
Description |
gnmi |
gNMI server handling, utility functions and functions to deal with the messages |
gnmi_connect |
gNMI server code that responsible for the gNMI client to the netconfd-pro server communication |
message_handler |
Auto-generated gostruct representation of the yumaworks-yp-gnmi.yang file. Used for message handling |
netconfd_connect |
Handler for the netconfd-pro connection with ypgnmi-app |
utils |
Generic utility functions |
ycontrol |
Utilities to handle the netconfd-pro YControl messages and connections |
The ypgnmi-app.go program is a subsystem application that provides connectivity between the netconfd-pro server and gNMI clients.
src/ypgrpc Directory
This directory contains the yumapro-grpc program, which is the
YumaPro gRPC application. This is a stand-alone binary program. It is
installed in the /usr/bin/
directory.
The following table lists the files that are included within the 'netconf/src/ypgrpc' directory.
Directory |
Description |
cli |
Handle the CLI parameters for ypgrpc-go-app application |
credentials |
Package credentials loads certificates and validates user credentials. |
examples |
Stub code example for Proto files (helloworld and example Protos) |
log |
Handle the Logging for ypgrpc-go-app application |
message_handler |
Auto-generated gostruct representation of the yumaworks-yp-grpc.yang file. Used for message handling |
netconfd_connect |
Handler for the netconfd-pro connection with ypgrpc-go-app |
proto |
Proto Files handling, parsing, search and storing |
utils |
Generic utility functions |
ycontrol |
Utilities to handle the netconfd-pro YControl messages and connections |
The 'ypgrpc-go-app.go' program is a main application that provides gRPC server functionality, connectivity to the netconfd-pro server and stub code gRPC Services callback handling.