../_images/logo.png

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 ncx/xml_util functions

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.