Upgrading YumaPro
There are some considerations needed when upgrading to a new release train. This section describes the differences between release trains and highlights any non-backward compatible changes.
LTS Release Schedule
Each October a new 5 year release train is started, since 2017. YumaPro SDK has been in production since 2012.
There are 4 lifecycle phases for each release train:
Active: Minor enhancements can be made in the first year (green)
Maintenance: Bug fixes only for release 13 through 2.5 years (yellow)
Sustaining: SEV1 and SEV2 bug fixes only for remainder of 5 years (orange)
EOL: End-of-life; Support terminated for the release train (red)
From 20.10 (or earlier) to 21.10
Refer to the KnowledgeBase article
From 21.10 to 22.10
This section summarizes the new and changed features in the YumaPro SDK 22.10 release train.
New Features in 22.10
gRPC Protocol (YumaPro gRPC User Guide)
YANG Module Changes in 22.10
Old ietf-inet-types.yang module removed
Version 2010-09-24 removed since it is no longer used
New YANG modules:
CLI Parameter Changes in 22.10
Added --highres-event-time
Changed eventTime timestamp to use highRes by default
Added --log-highres-datetime
high-res timestanps in 'custom' log headers
Default is false so no behavior change
Added --max-lock-hold-time
Default is 0 so no change in behavior
Added --max-user-sessions
Default is 0 so no change in behavior
Added --sil-cc-callback-all
Access new CommitCompletenes even if target=running
Default is false so no change in behavior
Added --tls-deprecated-ok
Change: TLS 1.0 now disabled by default
Must set to true to allow TLS 1.0
Added --with-error-number
Some clients do not parse the error-number correctly
Sometimes not needed
Default is to add error-number, so no behavior change
Added --tcp-connect-timeout
Changed TCP connect wait from blocking to non-blocking by default
Changed TCP timeout default from system timeout value to 10 sec by default
Added --with-yumaworks-lock
New <lock-all> and <unlock-all> operations
Default is true to add module but optional to use
From 22.10 to 23.10
This section summarizes the new and changed features in the YumaPro SDK 23.10 release train.
New Features in 23.10
Programs Removed in 23.10
The 'yangdump-sdk' program has been removed. Use the 'yangdump-pro' program instead.
YANG Module Changes in 23.10
New YANG modules:
Only enabled if --with-yang-cbor set to 'true'
The Binary Push feature is not supported for production use in this release train.
Only enabled if Schema Mount feature active
yumaworks-schema-mount-annot.yang
Only enabled if Schema Mount feature active
Only enabled if Schema Mount feature active
Only enabled if --with-yang-cbor set to 'true'
The Binary Push feature is not supported for production use in this release train.
New YANG Extensions
Add ywx:sil-xpath-function extension
Add ywx:sort-type extension
Add ywx:hidden-from-cli extension
CLI Parameter Changes in 23.10
Changed --with-yang11-hello default from false to true
This change causes YANG 1.1 module capabilities to be removed from "<hello>" and from the
/netconf-state/capabilities
containerMust set to 'false' to get YANG 1.0 (22.10) behavior
Set to 'true' for standards conformance and faster session startup.
Updated --audit-log-events
add bit 'rpc-error'
Default is no behavior change
Deprecate --create-empty-npcontainers
Use --return-empty-npcontainers instead.
Default is no behavior change
Add --create-empty-npcontainers-ro
Already deprecated, use --return-empty-npcontainers instead.
Default is no behavior change
-
Default is no behavior change
Add --return-empty-npcontainers
Default is no behavior change
Recommend setting to 'false'
Add --sm-config
Used by the Schema Mount feature
No default
Add sm-config-encoding
Used by the Schema Mount feature
Parameter ignored unless feature is used
-
Default is no behavior change
Used with the ywx:sort-type YANG extension
Changed --system-sorted from status deprecated to status current
Add --user-parm
No default
-
Default is enabled but no behavior change unless the --sm-config parameter is also set
Add --with-yang-cbor
Default is no behavior change
The Binary Push feature is not supported for production use in this release train.
Add --with-yumaworks-sm-yanglib
Default is enabled but no behavior change unless the --with-schema-mount and --sm-config parameters are also set
Add --yang-sid-mode
Default is no behavior change unless --with-yang-cbor is set to 'true'.
The Binary Push feature is not supported for production use in this release train.
From 23.10 to 24.10
This section summarizes the new and changed features in the YumaPro SDK 24.10 release train.
New Features in 24.10
New server features in 24.10:
Multi-Instance Mode (source code and Advanced Binary only)
RESTCONF Resource Types now support RFC 8527 for NMDA datastores
YumaPro PY-SIL Manual (source code and Advanced Binary only)
YumaPro yangcli-gw Manual (source code only)
New yangcli-pro Features in 24.10:
Call Home Server can be configured at run-time in yangcli-pro (source code and Advanced Binary only)
New yangcli-pro Commands in 24.10:
show subscriptions command
Removed Features in 24.10
The GET1 Callback has been deprecated for several years. It is no longer supported for new YANG module development.
Server Design Changes in 24.10
Internal Error Handling:
Server functions no longer use 'assert' or 'SET_ERROR' in case any programming errors are encountered
If NULL parameters encountered then an
ERR_NCX_MISSING_PARM
error is returnedThe 'SET_ERROR' macro has not been removed but it is no longer used in the YumaPro source code
The new 'FLAG_INT_ERROR` macro is used instead of 'SET_ERROR' which just prints an error message to the log
Graceful error recovery is done instead of forcing a server crash with 'assert(0)`
SIL and SIL-SA code stubs generated by 'yangdump-pro' now use 'FLAG_INT_ERROR' instead of 'SET_ERROR'
Conditional Compilation Requirements:
Structs defined in H files that can be used by SIL and SIL-SA modules have been changed as needed so they are always the same size, even if different compiler flags are used
SIL and SIL-SA code still need proper flags set to include conditional function definitions, etc.
No changed structures are intended for SIL or SIL-SA use but may be accessible through the various control blocks passed to the callback functions
The SNMP parameters in the RESTCONF control block (yangapi_cb_t) have been moved to their own control block (yangapi_snmp_cb_t)
YANG Module Changes in 24.10
New YANG modules:
ietf-notification-capabilities.yang
Only enabled if YANG Push is enabled
The WITH_YANG_PUSH=1 compiler flag is required to build support for this module in the source code.
The top-level 'libietf-caps/src' directory contains the source code
-
Only enabled if YANG Push is enabled
The WITH_YANG_PUSH=1 compiler flag is required to build support for this module in the source code.
The top-level 'libietf-caps/src' directory contains the source code
-
Only enabled if
module ietf-system
used in the server configuration.The WITH_IETF_SYSTEM=1 compiler flag is required to build support for this module in the source code.
The top-level 'libietf-system/src' directory contains the source code for the YANG instrumentation.
The top-level 'libsystem-linux/src' directory contains the source code for the Linux system bindings.
-
Only used by the 'yangcli-gw' program described in the YumaPro yangcli-gw Manual
The WITH_ZEROMQ=1 compiler flag is required to build support for this module in the source code.
This module is available in source distributions only.
This module and support code are not included in binary packages in the 24.10 release train. Use the binary packages in the 24.10T release train.
This module is not supported in the 24.10 release train
Updated YANG Modules:
-
Replaced DRAFT version with RFC version from RFC 9595
-
Added the "<protocol-control>" subsystem request message
-
Added support for SIL-SA Global Callbacks APIs
-
Added the <protocol-control> operation
CLI Parameter Changes in 24.10
Added --audit-log-localtime
Supported by netconfd-pro
Generate audit log timestamps using the local time zone
Default is false so no behavior change
Added --disable-imported-ok
Supported by netconfd-pro
Disable 'import-only' data nodes from the configuration
Default is to change server behavior!
Must set to 'false' to preserve the old incorrect behavior.
Added --disabled-protocols
Supported by netconfd-pro
Disable specified protocols at boot-time
Affects Session Admission Control only
Used with Protocol Control APIs to enable and disable client protocols at runtime
Added --hide-command
Supported by yangcli-pro and yp-shell
Hide commands from tab and help but still enabled
Ignored if --disable-command is configured for the same command.
Introduced 24.10-3
Modified --max-getbulk
Supported by netconfd-pro
Changed the meaning of the setting '0' so that the internal limit for callbacks will be 512 entries. Previously this internal limit was set to 100 entries.
Added a range to the YANG type definition so only the values 0 .. 512 are accepted
Added --pymodpath
Supported by py-sil-app
Specify the module path for PY-SIL application
Supported in the 'Advanced' feature set only
The WITH_PY_SIL=1 and WITH_YCONTROL=1 make flags must be used to enable this feature in a source build
Added --return-error-with-data
Supported by netconfd-pro
Return <rpc-error> after <data>. E.g., GET2 Callback errors after data is finished
Affects server Error Handling
Added --server-root
Supported by netconfd-pro
Required to use Multi-Instance Mode
Supported in the 'Advanced' feature set only
The WITH_SERVER_ROOT=1 make flag must be used to enable this feature in a source build
Added --show-headers
Supported by yp-shell and yangcli-pro
Remove rpc-reply header log traces from the server response output
The default is 'false' so output is not changed
Recommend setting to 'true'
Added --sil-edit3
Supported by yangdump-pro
Enable SIL and SIL-SA code generation using the new EDIT3 Callback template
Recommended instead of the EDIT2 Callback template.
Added --sil-skip-global-edit-validate
Supported by netconfd-pro
Controls whether the server skips the Global EDIT Callbacks during the Validate Phase
Default is false
Added --sil-skip-global-edit-apply
Supported by netconfd-pro
Controls whether the server skips the Global EDIT Callbacks during the the Apply Phase
Default is false
Added --warn-off-yang
Supported by netconfd-pro, yangcli-pro, yp-shell, yangdiff-pro, yangdump-pro
Enable or disable YANG compiler warnings
The default is 'false' (no change)
Added --with-confirmed-commit
Supported by netconfd-pro
Enable or disable the :confirmed-commit capability in NETCONF
The default is 'true' (no change)
Ignored unless --target='candidate' is used (default)
Added --with-new-notifs
Supported by netconfd-pro
Enable the ietf-subscribed-notifications.yang module from RFC 8639 even if YANG Push is not used
Does not remove old notifications defined in RFC 5277
Default is to change server behavior!
MUST set to 'false' to preserve the old behavior
Added --with-new-yanglib
Supported by netconfd-pro
Enable the ietf-yang-library.yang module from RFC 8525 even if YANG Push is not used
Does not remove the
/modules-state
container defined in RFC 7895Default is to change server behavior!
MUST set to 'false' to preserve the old behavior
Added --zmqapi-gateway-id
Supported by yangcli-gw
Specifies the server ID string for the ZMQAPI Protocol
The WITH_ZEROMQ=1 make flag must be used to enable this feature in a source build
This feature is not available in 24.10 binary packages, and is not supported in the 24.10 release train
Added --zmqapi-publisher-endpoint
Supported by yangcli-gw
Specifies the ZeroMQ publisher endpoint for the ZMQAPI Event Channel
The WITH_ZEROMQ=1 make flag must be used to enable this feature in a source build
This feature is not available in 24.10 binary packages, and is not supported in the 24.10 release train
Added --zmqapi-responder-endpoint
Supported by yangcli-gw
Specifies the ZeroMQ responder endpoint for the ZMQAPI Command Channel
The WITH_ZEROMQ=1 make flag must be used to enable this feature in a source build
This feature is not available in 24.10 binary packages, and is not supported in the 24.10 release train