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)

../_images/release_schedule.png

From 20.10 (or earlier) to 21.10

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

YANG Module Changes in 22.10

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:

CLI Parameter Changes in 23.10

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:

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:

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 returned

    • The '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

  • ietf-system-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

  • ietf-system.yang

    • 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.

  • yumaworks-zmqapi.yang

    • 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:

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

  • 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

  • Added --sil-skip-global-edit-apply

  • 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

  • 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 7895

    • Default 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