yumapro  20.10-10
YumaPro SDK
Constants and Data Types

Constants and data types used for NETCONF and YANG details. More...

Collaboration diagram for Constants and Data Types:

Data Structures

struct  agt_replay_subsys_t
 for the list of subsystems requesting or in progress for a config load or replay More...
 
struct  agt_syslib_cb_t
 struct to keep track of the dynamic external yp-system hooks library More...
 

Macros

#define AGT_NUM_CB   (AGT_CB_ROLLBACK+1)
 number of callbacks based on agt_cbtyp_t enumeration
 
#define AGT_MAX_PORTS   4
 maximum number of –port leaf-list values that will be saved
 
#define AGT_DEF_SUBSYS_TIMEOUT   30
 number of seconds before timeout for subsystems to respond to an edit request
 
#define AGT_DEF_CONF_FILE   (const xmlChar *)"/etc/yumapro/netconfd-pro.conf"
 default etc config filespec
 
#define AGT_DEF_FACTORY_CONFIG_FILE   (const xmlChar *)"factory-startup-cfg.xml"
 default startup-factory-file value
 
#define AGT_DEF_CONF_DIR   (const xmlChar *)"/etc/yumapro/netconfd-pro.d"
 default –confdir value
 
#define AGT_DEF_FHS_LOG_FILE   (const xmlChar *)"/var/log/netconfd-pro/server.log"
 default FHS main log location
 
#define AGT_DEF_SYSLIB_FILE   (const xmlChar *)"libyp_system.so"
 hard-wired yp-startup full library name
 
#define AGT_SYSLIB_NAME   (const xmlChar *)"yp_system"
 hard-wired yp-startup library name
 
#define AGT_DEF_BACKUP_DIR   (const xmlChar *)"$HOME/.yumapro/backups"
 default server backups directory
 
#define AGT_DEF_BACKUPS_NAME   (const xmlChar *)"backups"
 hard-wired server backups dir name
 
#define AGT_DEF_FHS_BACKUP_DIR   (const xmlChar *)"/var/lib/netconfd-pro/backups"
 hardwired FHS backups dir location
 
#define AGT_DEF_DELETE_EMPTY_NP   FALSE
 default default delete empty NP containers. More...
 
#define AGT_DEF_SYSTEM_SORTED   FALSE
 this can be over-ridden by the –system-sorted CLI parameter THIS PARAMETER IGNORED SINCE val_child DOES NOT NEED SORTING
 
#define AGT_DEF_LAX_NAMESPACES   TRUE
 default allow missing namespaces if element is unique
 
#define AGT_DEF_EVENTLOG_SIZE   1000
 default –eventlog-size value
 
#define AGT_DEF_MAX_BURST   10
 default –max-burst value
 
#define AGT_DEF_HELLO_TIMEOUT   300
 default –hello-timeout value
 
#define AGT_DEF_IDLE_TIMEOUT   3600
 default idle timeout value
 
#define AGT_DEF_LINESIZE   72
 default line size
 
#define AGT_DEF_INDENT   1
 default –indent value
 
#define AGT_DEF_MESSAGE_INDENT   -1
 default –message-indent value
 
#define AGT_DEF_MAX_SESSIONS   8
 default –max-sessions value
 
#define AGT_DEF_MAX_CLI_SESSIONS   0
 default –max-cli-sessions value
 
#define AGT_DEF_YANGAPI_SERVER_URL   (const xmlChar *)"http://localhost"
 default YANG-API URI start (obsolete)
 
#define AGT_DEF_RESTCONF_SERVER_URL   (const xmlChar *)"http://localhost"
 default RESTCONF URI start
 
#define AGT_DEF_SAVE_OWNERS   FALSE
 default –save-owners value
 
#define AGT_DEF_JSON_LEAF_LIST_1LINE   FALSE
 default allow leaf-lists on 1 line in JSON
 
#define AGT_DEF_SAVE_CONFIG_SYSTEM   FALSE
 default save config system
 
#define AGT_DEF_GETBULK_MAX   10
 default –getbulk-max value
 
#define AGT_DEF_WITH_CONFIG_ID   TRUE
 default with config-id value
 
#define AGT_DEF_WITH_OCPATTERN   FALSE
 default –with-ocpattern value
 
#define AGT_DEF_NO_NVSTORE   FALSE
 default –no-nvstore value
 
#define AGT_DEF_WITH_CALLHOME   FALSE
 default –with-callhome value
 
#define AGT_DEF_CALLHOME_RETRY_INT   60
 default –callhome-retry-interval value
 
#define AGT_DEF_CALLHOME_RETRY_MAX   10
 default –callhome-retry-max value
 
#define AGT_DEF_CALLHOME_PORT   NCX_DEF_SSH_CALLHOME
 default SSH callhome port
 
#define AGT_DEF_CALLHOME_TLS_PORT   NCX_DEF_TLS_CALLHOME
 default TLS callhome port
 
#define AGT_DEF_CALLHOME_RESTCONF_TLS_PORT   NCX_DEF_RESTCONF_TLS_CALLHOME
 default RESTCONF callhome port (not implemented)
 
#define AGT_YUMAWORKS_CALLHOME_MODULE   (const xmlChar *)"yumaworks-callhome"
 yumaworks callhome module name to configure callhome connections
 
#define AGT_YUMAWORKS_CALLHOME_REVISION   (const xmlChar *)"2020-10-17"
 yumaworks callhome module revision to configure callhome connections
 
#define AGT_DEF_NO_AUDIT_LOG   FALSE
 default –no-auditlog value
 
#define AGT_DEF_CRYPT_HASH_PREFIX   (const xmlChar *)"$6$"
 default for crypt-hash is SHA-512 id=6 This prefix includes the just the <id> field The <salt> will be generated for each new password
 
#define AGT_DEF_MIN_PASSWD_LEN   8
 hard-wired minimum password length
 
#define AGT_DEF_HA_ENABLED   FALSE
 YP-HA service enabled.
 
#define AGT_DEF_HA_SIL_STANDBY   FALSE
 default –ha-sil-standby value
 
#define AGT_DEF_HA_PORT   8088
 default –ha-port value
 
#define AGT_DEF_HA_STANDBY_MODE   AGT_HA_MODE_HOT_STANDBY
 default –ha-standby-mode value
 
#define AGT_DEF_YPCOAP_PORT   5683
 default agt_ypcoap_port value
 
#define AGT_DEF_YPCOAP_DTLS_PORT   5684
 YP-CoAP over DTLS port number (not implemented)
 
#define AGT_DEF_YPCOAP_ADDRESS   (const xmlChar *)"0.0.0.0"
 YP-CoAP over DTLS IPv4 address (not implemented)
 
#define AGT_DEF_RESTCONF_DEFAULT_ENCODING   NCX_MSG_ENCODING_JSON
 default RESTCONF encoding when no Accept header
 
#define AGT_DEF_TLS_PORT   6513
 port assignment for netconf-tls in RFC 7589
 
#define AGT_DEF_DB_LOCK_RETRY   500
 db-lock default retry interval (milli-seconds)
 
#define AGT_DEF_DB_LOCK_TIMEOUT   20
 db-lock default timeout (seconds )
 
#define AGT_DEF_WITH_YUMAWORKS_CONFIG_CHANGE   FALSE
 allow netconf-config-change to include data that changed
 
#define AGT_DEF_WITH_YUMAWORKS_CALLHOME   TRUE
 allow yumaworks-callhome module to be present
 
#define AGT_DEF_WITH_YUMAWORKS_EVENT_STREAM   TRUE
 allow yumaworks-callhome module to be present
 
#define AGT_DEF_WITH_NMDA   FALSE
 enable NMDA modules and standard datastores
 
#define AGT_DEF_STARTUP_SKIP_VALIDATION   FALSE
 enable skip startup validation at boot-time
 
#define AGT_DEF_RETURN_STATUS   FALSE
 return status to the shell on exit or not
 
#define AGT_DEF_WAIT_DATASTORE_READY   FALSE
 do not wait for datastore startup to allow sessions This is the only behavior before this parameter
 
#define AGT_SELECT_TIMEOUT_SEC   0
 number of seconds for each select timeout
 
#define AGT_SELECT_TIMEOUT_USEC   10000
 number of microseconds for each select timeout set to 1/100th sec
 
#define AGT_USER_VAR   (const xmlChar *)"user"
 identify a user variable
 
#define AGT_URL_SCHEME_LIST   (const xmlChar *)"file"
 hard-wired schema list for –with-url
 
#define AGT_URL_SCHEME_LIST_TFTP   (const xmlChar *)"file,tftp"
 hard-wired schema list for –with-url and –with-url-tftp
 
#define AGT_FILE_SCHEME   (const xmlChar *)"file:///"
 hard-wired start of file schem URL
 
#define AGT_TOASTER_MOD   (const xmlChar *)"toaster"
 name of the toaster module
 
#define AGT_TEST_MOD   (const xmlChar *)"test"
 name of the test module
 
#define AGT_SIL_SA   (const xmlChar *)"sil-sa"
 SIL-SA service name for YControl.
 
#define AGT_DB_API   (const xmlChar *)"db-api"
 DB-API service name for YControl.
 
#define AGT_YP_HA   (const xmlChar *)"yp-ha"
 YP-HA service name for YControl.
 
#define AGT_YP_GNMI   (const xmlChar *)"yp-gnmi"
 YP-GNMI service name for YControl.
 
#define AGT_YCONTROL_MOD   (const xmlChar *)"yumaworks-ycontrol"
 YANG module used for subsystem message transport.
 
#define AGT_DB_API_MOD   (const xmlChar *)"yumaworks-db-api"
 YANG module used for DB-API service messages.
 
#define AGT_SIL_SA_MOD   (const xmlChar *)"yumaworks-sil-sa"
 YANG module used for SIL-SA service messages.
 
#define AGT_PROFILE_MOD   (const xmlChar *)"yumaworks-agt-profile"
 YANG module for the agent profile.
 
#define AGT_ACTION_MOD   (const xmlChar *)"yang-attributes"
 YANG attributes module name.
 
#define AGT_YP_HA_MOD   (const xmlChar *)"yumaworks-yp-ha"
 YANG module used for YP-HA service messages.
 
#define AGT_TEMPLATES_MOD   (const xmlChar *)"yumaworks-templates"
 YANG module foryumaworks templates.
 
#define AGT_YP_GNMI_MOD   (const xmlChar *)"yumaworks-yp-gnmi"
 YANG module used for YP-GNMI service messages.
 
#define AGT_DEF_SERVER_ID   (const xmlChar *)"server1"
 default –server-id value
 
#define AGT_WITHDEF_MOD   (const xmlChar *)"ietf-netconf-with-defaults"
 YANG module for with-defaults definitions.
 
#define AGT_TEST_FL_MIN_ELEMS   bit0
 begin tests for agt_commit_test_t flags field test min-elements
 
#define AGT_TEST_FL_MAX_ELEMS   bit1
 test max-elements
 
#define AGT_TEST_FL_MANDATORY   bit2
 test mandatory
 
#define AGT_TEST_FL_MUST   bit3
 test must-stmt
 
#define AGT_TEST_FL_UNIQUE   bit4
 test unique-stmt
 
#define AGT_TEST_FL_XPATH_TYPE   bit5
 test xpath leaf path-stmt
 
#define AGT_TEST_FL_CHOICE   bit6
 test a choice
 
#define AGT_TEST_FL_WHEN   bit7
 not really a commit test; done during delete_dead_nodes()
 
#define AGT_TEST_ALL_COMMIT_MASK   (bit0|bit1|bit2|bit3|bit4|bit5|bit6)
 mask for all the commit tests
 
#define AGT_TEST_INSTANCE_MASK   (bit0|bit1|bit2|bit4|bit6)
 mask for the subset of instance tests
 
#define AGT_CLI_NOSTARTUP   (const xmlChar *)"no-startup"
 name of no-startup case
 
#define AGT_CLI_STARTUP   (const xmlChar *)"startup"
 name of startup case
 
#define AGT_CLI_FACTORY_STARTUP   (const xmlChar *)"factory-startup"
 name of factory-startup case
 
#define AGT_CLI_STARTUP_FACTORY_FILE   (const xmlChar *)"startup-factory-file"
 name of startup factory file parameter
 
#define AGT_EVAL_REQUEST_LIMIT   250
 max. More...
 
#define AGT_MAX_OWNER_ID   255
 max. More...
 
#define AGT_WATCHER   (const xmlChar *)"ypwatcher"
 name of YP-watcher program
 
#define AGT_DEF_WAT_INTERVAL   10
 default watcher check interval in seconds
 
#define AGT_DEF_SSHD_COMMAND   (const xmlChar *)"/usr/sbin/sshd"
 default SSH command for callhome use
 
#define AGT_DEF_SUBSYS_COMMAND   (const xmlChar *)"/usr/sbin/netconf-subsystem-pro"
 default subsystem command for callhome use
 
#define AGT_DEF_SNMP_SUBAGENT_PRIO   127
 internal SNMP priority
 
#define AGT_FL_AUDIT_EDIT_RUNNING   bit1
 edit-running events are generated when an edit or commit to <running> is completed.
 
#define AGT_FL_AUDIT_UPDATE_STARTUP   bit2
 update-startup events are generated when a copy to <startup> is completed.
 
#define AGT_FL_AUDIT_CLIENT_SESSION   bit3
 client session start and end events
 
#define AGT_FL_AUDIT_CONTROL_SESSION   bit4
 YControl session start and end events.
 
#define AGT_FL_AUDIT_NACM_WRITE_ERROR   bit5
 NACM write violation events.
 
#define AGT_FL_AUDIT_NACM_EXEC_ERROR   bit6
 NACM exec violation events.
 
#define AGT_FL_AUDIT_RPC_SUMMARY   bit7
 RPC summary events are generated after every RPC is handled.
 
#define AGT_FL_AUDIT_EDIT_DATA   bit8
 Add edit data to the audit log for an edit transaction log entry.
 
#define AGT_DEF_AUDIT_EVENTS   AGT_FL_AUDIT_EDIT_RUNNING
 default bits set for audit-log-events parameter
 
#define AGT_DEF_CRL_MISSING_OK   false
 default CRL missing for TLS
 
#define AGT_DEF_CRL_MODE   AGT_CRL_MODE_OFF
 default CRL mode for TLS
 
#define AGT_DEF_CVT_SUBTREE_FILTER   false
 default convert subtree to XPath parameter
 
#define AGT_DEF_PUSH_MIN_PERIOD   100
 YANG Push Periodic Subscription: units centiseconds min period 1 second.
 
#define AGT_DEF_PUSH_MIN_DAMPENING   100
 YANG Push min dampening 1 second.
 
#define AGT_DEF_PUSH_MAX_PERIODIC   16
 default max number of periodic subscriptions
 
#define AGT_DEF_PUSH_MAX_OPERATIONAL   4
 default max number of operational subscriptions
 
#define AGT_DEF_PUSH_SIMOP_ENABLED   true
 default simulated operational mode
 
#define AGT_DEF_PUSH_SIMOP_PERIOD   500
 default simop period is 5 seconds
 
#define AGT_DEF_PUSH_SIMOP_PATCH_UPDATE   true
 default simop message mode (patch or update)
 

Typedefs

typedef void(* agt_system_init_profile_fn_t) (agt_profile_t *profile)
 system init server profile callback More...
 
typedef status_t(* agt_system_init1_fn_t) (boolean pre_cli)
 system init1 callback More...
 
typedef status_t(* agt_system_init2_fn_t) (boolean pre_load)
 system init2 callback More...
 
typedef void(* agt_system_cleanup_fn_t) (void)
 system cleanup callback More...
 
typedef status_t(* agt_nvsave_fn_t) (ncx_display_mode_t encoding, const xmlChar *filespec)
 brief nvsave callback More...
 
typedef status_t(* agt_nvload_fn_t) (ncx_display_mode_t *encoding, xmlChar **filespec)
 nvload callback More...
 
typedef void(* agt_replay_fn_t) (boolean is_start)
 replay callback (agt_replay_fn_t) More...
 

Enumerations

Detailed Description

Constants and data types used for NETCONF and YANG details.

Default values can be changed by overriding the default agt_profile_t.

Macro Definition Documentation

#define AGT_DEF_DELETE_EMPTY_NP   FALSE

default default delete empty NP containers.

this behavior used to set to TRUE, before 1.15-1

#define AGT_EVAL_REQUEST_LIMIT   250

max.

EVAL requests before server stops accepting new requests

#define AGT_MAX_OWNER_ID   255

max.

owner-id that can be assigned. This parameter is stored in data as a uint8

Typedef Documentation

typedef status_t(* agt_nvload_fn_t) (ncx_display_mode_t *encoding, xmlChar **filespec)

nvload callback

this callback is invoked when some config needs to be read from non-volatile storage

Parameters
encodingaddress of encoding for the config
filespecaddress of filespec containing the config that was loaded
Return values
*encodingset to the enum for the encoding used in the config
*filespecmalloced filespec containing the config that was loaded
== NULL if loading the factory default config
Returns
status; error indicates NV-load failed somehow If return NO_ERR and *filespec == NULL then use the factory config
typedef status_t(* agt_nvsave_fn_t) (ncx_display_mode_t encoding, const xmlChar *filespec)

brief nvsave callback

this callback is invoked when some config needs to be saved to non-volatile storage

Parameters
encodingencoding format for the config (xml only allowed value)
filespecfilespec containing the config to save
Returns
status; error indicates NV-save failed somehow
typedef void(* agt_replay_fn_t) (boolean is_start)

replay callback (agt_replay_fn_t)

this callback is invoked when a configuration replay is started or finished, which has been triggered by a call to agt_request_replay()

Parameters
is_startTRUE if start; FALSE if finish
typedef void(* agt_system_cleanup_fn_t) (void)

system cleanup callback

this callback is invoked once during agt_cleanup

typedef status_t(* agt_system_init1_fn_t) (boolean pre_cli)

system init1 callback

init1 system call this callback is invoked twice; before and after CLI processing

Parameters
pre_cliTRUE if this call is before the CLI parameters have been read
FALSE if this call is after the CLI parameters have been read
Returns
status; error will abort startup
typedef status_t(* agt_system_init2_fn_t) (boolean pre_load)

system init2 callback

init2 system call this callback is invoked twice; before and after load_running_config processing

Parameters
pre_loadTRUE if this call is before the running config has been loaded
FALSE if this call is after the running config has been loaded
Returns
status; error will abort startup
typedef void(* agt_system_init_profile_fn_t) (agt_profile_t *profile)

system init server profile callback

Initialize the server profile if needed

Parameters
profileserver profile to change if needed

Enumeration Type Documentation

select the YANG module for the access control model

Enumerator
AGT_ACM_MODEL_NONE 

not set

AGT_ACM_MODEL_IETF_NACM 

IETF NACM (default)

AGT_ACM_MODEL_YUMA_NACM 

YUMA NACM (obsolete, not supported)

AGT_ACM_MODEL_EXTERNAL 

external ACM via yp_system library

matches access-control enumeration in netconfd.yang

Enumerator
AGT_ACMOD_NONE 

not set

AGT_ACMOD_ENFORCING 

full enforcement

AGT_ACMOD_PERMISSIVE 

permissive mode, read + exec allowed

AGT_ACMOD_DISABLED 

almost all access control turned off

AGT_ACMOD_OFF 

NACM completely off.

enumeration of the different server EDIT callback types These are used as array indices so there is no dummy zero enum AGT_CB_TEST_APPLY has been replaced by AGT_CB_APPLY during the edit-config procedure AGT_CB_COMMIT_CHECK has been replaced by AGT_CB_VALIDATE during the commit procedure

Enumerator
AGT_CB_VALIDATE 

P1: write operation validate.

AGT_CB_APPLY 

P2: write operation apply.

AGT_CB_COMMIT 

P3-pos: write operation commit.

AGT_CB_ROLLBACK 

P3-neg: write operation rollback.

confirmed-commit parms

Enumerator
AGT_CCPARM_NONE 

not set

AGT_CCPARM_CONFIRMED 

confirmed

AGT_CCPARM_CONFIRM_TIMEOUT 

confirm-timeout

AGT_CCPARM_PERSIST 

persist

AGT_CCPARM_PERSIST_ID 

persist-id

server callhome protocol

Enumerator
AGT_CH_PROTO_NONE 

not set

AGT_CH_PROTO_NETCONF_SSH 

netconf-over-ssh callhome

AGT_CH_PROTO_NETCONF_TLS 

netconf-over-tls callhome

AGT_CH_PROTO_RESTCONF_TLS 

restconf-over-ssh callhome

NETCONF commit types.

Enumerator
AGT_COMMIT_TYPE_NONE 

not set

AGT_COMMIT_TYPE_NORMAL 

normal client operation

AGT_COMMIT_TYPE_REPLAY 

internal replay commit

server TLS CRL mode

Enumerator
AGT_CRL_MODE_NONE 

not set

AGT_CRL_MODE_OFF 

CRL check off.

AGT_CRL_MODE_CLIENT 

CRL check client cert.

AGT_CRL_MODE_CA 

CRL check client and CA certs.

exit reasons for YControl IO loop

Enumerator
AGT_EXIT_MODE_NONE 

this value is used

AGT_EXIT_MODE_OK 

exit loop with OK

AGT_EXIT_MODE_ERROR 

exit loop with error

AGT_EXIT_MODE_TIMEOUT 

exit loop with timeout

AGT_EXIT_MODE_DROPPED 

exit loop with session dropped

server HA mode mode

Enumerator
AGT_HA_ROLE_NONE 

not set

AGT_HA_ROLE_NOT_SET 

HA role not set.

AGT_HA_ROLE_STANDBY 

HA standby role.

AGT_HA_ROLE_ACTIVE 

HA active role.

Hook types enumeration to specify Hook type.

Enumerator
AGT_HOOK_TYPE_NONE 

not set

AGT_HOOK_TYPE_SETHOOK 

Set-Hook.

AGT_HOOK_TYPE_TRANSACTION 

Transaction Hook.

AGT_HOOK_TYPE_POST_SETHOOK 

Post Set-Hook.

not used yet in YANG-API or NETCONF!

Enumerator
AGT_TM_NONE 

this value is used

AGT_TM_SHARED 

shared transactions (only value supported)

AGT_TM_PRIVATE 

private transactions

YControl transaction type.

Enumerator
AGT_TX_TYPE_NONE 

not set

AGT_TX_TYPE_GET 

GET2 transaction.

AGT_TX_TYPE_EDIT 

EDIT1 or EDIT2 transaction.

AGT_TX_TYPE_RPC 

DB-API RPC transaction.

AGT_TX_TYPE_HOOK 

hook callback for edit