YumaPro README
Last Updated: 2024-10-10
Pre-Build steps:
Compiler flag locations:
set
netconf/src/platform/platform.profile
details if neededsee
netconf/src/platform/procdefs.h
for common H defsCFLAGS and other make details are here
To build:
> cd to the yumapro top directory
> make [Build Variables]
> sudo make [Build Variables] install
Build Notes
To build all default components (shared libs) on Linux, this will build all default components and install it in the default locations:
make [FLAGS]
[sudo] make [FLAGS] install
For example, to build all default components (shared libs) on Fedora, 64-bit:
make LIB64=1
[sudo] make LIB64=1 install
For example, to build all default components (shared libs) except /usr/lib/yuma/libtoaster.so
make NOTOASTER=1
[sudo] make NOTOASTER=1 install
External file dependencies (for netconfd, optional):
/etc/services
/etc/ssh/sshd_config
/etc/apache2/sites-available/yang-api.conf
/etc/apache2/sites-available/restconf.conf
a2ensite yang-api
a2ensite restconf
a2enmod fcgi
SELinux config to allow access to port 830
Default Installed Programs:
/usr/bin/db-api-app [WITH_DB_API]
/usr/bin/yangcli-pro
/usr/bin/yangdump-pro
/usr/bin/yangdump-sdk [PRIOR TO 22.10T-9]
/usr/bin/yangdiff-pro
/usr/bin/ypcontrol
/usr/bin/ypwatcher
/usr/bin/yp-shell [WITH_CLI]
/usr/bin/yp-ha-app [WITH_YP_HA]
/usr/sbin/netconfd-pro
/usr/sbin/netconf-subsystem-pro
/usr/sbin/restconf [WITH_RESTCONF]
/usr/sbin/yang-api [WITH_YANGAPI]
Default Installed Libraries:
/usr/lib/libyumapro_agt.so.MM.NN
/usr/lib/libyumapro_db-api.so.MM.NN [WITH_DB_API]
/usr/lib/libyumapro_mgr.so.MM.NN
/usr/lib/libyumapro_ncx.so.MM.NN
/usr/lib/libyumapro_sil-sa.so.MM.NN [WITH_SIL_SA]
/usr/lib/libyumapro_ycli.so.MM.NN
/usr/lib/libyumapro_ycontrol.so.MM.NN [WITH_YCONTROL]
/usr/lib/yumapro/libtoaster.so
/usr/lib/yumapro/libyp_system.so
/usr/lib/yumapro/libsil-error.so
Default Installed Libraries if LIB64=1:
/usr/lib64/...
Default Installed Additional Files:
/usr/share/doc/yumapro/* -- user documentation /etc/yumapro/* -- sample application config files /usr/share/yumapro/* -- root of all YumaPro static data files /usr/share/yumapro/modules/* -- root of default installed YANG modules /usr/man/man1/* -- man page files installed here
User-Specific Files
$HOME/.yumapro -- yangcli-pro and netconfd-pro files
YumaPro Package Variants:
# the docs are no longer split into several bundles for installation # Instead, 1 bundle for RPM and 1 for Debian are produced # # yumapro-doc # # BINARY PACKAGES # # yumapro-sdk ==> PACKAGE=DEVELOPER # yumapro-pthreads ==> PACKAGE=DEVELOPER PTHREADS=1 # yangcli-pro ==> PACKAGE=CLIENT # # NO LONGER USED # # yumapro ==> PACKAGE=USER # yumapro ==> PACKAGE=SERVER #
Build Variables:
BASIC
BASIC=1: build yumapro-sdk-basic package Used by YumaWorks packaging only. Do Not Use!
BITBAKE
BITBAKE=1: build for Yocto/bitbake environment.
Should set NO_LIBSSH2=1 and NO_LIBSSL=1 if building yp-shell.
Can also use STATIC=1 and STATIC_SERVER=1.
Do not use UCLINUX=1.
BUILD_LIBS_ONLY
BUILD_LIBS_ONLY=1: build only the libraries (static and or dynamic)
Do not build the SDK applications.
Do not use dl library in the yangcli_show_extern.cpp file
CENTOS
CENTOS5=1: build for the CentOS 5.10 platform.
Must also use LIB64=1 for x86_64 architecture.
CLANG
CLANG=1: use clang instead of gcc for the C compiler and use clang++ instead of g++ for the C++ compiler and linker
Default is to use gcc. Ignored if any of these flags set:
CROSS_TARGET
PACKAGE_BUILD
GPROFILE
CLANG_ASAN
CLANG_ASAN=1: use clang in LeakSanitizer mode; For debugging only; will force the compiler and linker to use clang and add flags such as -fsanitize=address
COVERITY
COVERITY=1: special flag used with MAC=1 to allow Coverity
Static Analysis tools to run on Ubuntu but build with MAC=1 compiler flags. DO NOT USE THIS FLAG FOR A REAL BUILD.
CROSS_TARGET
CROSS_TARGET=<string>: Define the prefix to use for a cross target toolchain.
Example CROSS_TARGET=arm-linux-gnueabi-
Note that cross compiling requires that the target architecture linker finds the correct external libraries such as libxml2
Do not use this parameter for uCLinux. Use UCLINUX=1
Do not use this parameter for Yocto. Use BITBAKE=1 instead
The tool names will be appended to the $(CROSS_TARGET) value if it is set. E.g. $(CROSS_TARGET)gcc will resolve to arm-linux-gnueabi-gcc
CYGWIN
CYGWIN=1: build on windows within cygwin environment (OBSOLETE! NOT SUPPORTED!)
DEBIAN
DEBIAN=1: set for Ubuntu packaging build; do not use in normal builds, Used by YumaWorks packaging only. Do Not Use!
DEBIAN_MAKE
DEBIAN_MAKE=1: set for ubuntu packaing build; do not use in normal builds; Indicates compile phase of build Used by YumaWorks packaging only. Do Not Use!
DEBUG
This parameter is used to enable extra debugging checks and logging in the YumaPro programs.
DEBUG=1: set to add gdb symbols instead of -O2;
does not remove the #ifdef DEBUG function NULL pointer checks in external functions
the symbol
DEBUG
is defined unless the make flag PRODUCTION=1 is usedThis is often used to make feature debugging possible for programmers without adding that code to production builds
Example Usage:
#ifdef DEBUG
#define FOO_DEBUG 1
#endif
// ...
#ifdef FOO_DEBUG
if (LOGDEBUG2) {
log_debug2("\nfoo: some internal feature debugging info");
}
#endif // FOO_DEBUG
DEBUG2
This parameter is used to enable even more extra debugging checks and logging in the YumaPro programs.
DEBUG2=1: set to enable extra debugging code
DEBUG=1 must also be set
Used sometimes to enable debugging of specific sub-components within a module
Example Usage:
#ifdef DEBUG
#ifdef DEBUG2
#define FOO_DEBUG_PARSE 1
#endif
#endif
DEBUG_LOG_TLS
DEBUG_LOG_TLS=1: set to enable output buffer tracing for netconfd-pro using WITH_OPENSSL=1 on a NETCONF over TLS session
This option may be a security risk since the raw buffer output is not pre-screened for passwords or other sensitive data
The --log-level must be set to 'debug2' or higher for the buffer to be logged
DESTDIR
DESTDIR=string: set the debian target build (default NULL)
This variable must always be set for 'fake-root' builds such as Yocto Linux or PetaLinux
The YP_SYSROOT parameter is usually needed in addition to this parameter to set the 'sysroot' in the compiler
DOC
DOC=1: debian packaging build flag to build the yuma-doc package. Do not use in normal builds.
DOCDIR
DOCDIR=/path/to/docs: set to override the default location to install user manuals, which is $(PREFIX)/share/doc/yumapro with default prefix is /usr/share/doc/yumapro
ETC_PREFIX
ETC_PREFIX=string: set the top etc dir (after DESTDIR)
default: /etc
EVAL (INTERNAL)
EVAL=1: build the evaluation version of the YumaPro software Used by YumaWorks packaging only. Do Not Use!
The following server restrictions will apply:
250 requests before error returned for every request
10 sessions
EVERYTHING
EVERYTHING=1: build all optional code modules.
This flag cannot be be used if PACKAGE_BUILD=1 is set.
Must not use for packaging builds, which always set individual flags
Some optional code modules are not included in this flag if they are rare or require special support libraries
Do not use in production builds!
Some test modules are included if this flag is used
The definition of this macro is different in every release train
Equivalent to:
WITH_CLI=1
EXTRA_CFLAGS
EXTRA_CFLAGS=<string> : Additional compiler flags to add to the CFLAGS directive. It will be added to CPPFLAGS as well for C++ compilation
FREEBSD
FREEBSD=1: Build for a FreeBSD platform
FORCE_YUMA_HOME
FORCE_YUMA_HOME=1: use when building SIL libraries to link against a development version of yuma. The YUMA_HOME environment variable must be set, and it must point to the 'netconf' directory:
Bash example using 'mybranch':
export YUMA_HOME=/home/andy/swdev/yuma/trunk/branches/mybranch/netconf
The yuma include (H) files from $(YUMA_HOME)/src/* will be used instead of the system H files in /usr/include/yuma.
The libagt and libncx libraries from $(YUMA_HOME)/target/lib will be used instead of the system libraries in /usr/lib or /usr/lib64. The static versions (libagt.a and libncx.a) will be expected if STATIC=1 is also set. Otherwise the dynamic library versions will be expected instead.
FULL_STATIC
FULL_STATIC=1: solve linking problems forcing static versions of all external libraries (used only by debian package build) This is deprecated and no longer used in any packaging builds
GO_BIN
GO_BIN=<dirspec>: specify the $GOBIN variable dirspec to use when building YP-gNMI application. Default is $HOME/go/bin. Ignored if PACKAGE_BUILD=1 is also used.
GO_PATH
GO_PATH=<dirspec>: specify the $GOPATH variable dirspec to use when building YP-gNMI application. Default is $HOME/go. Ignored if PACKAGE_BUILD=1 is also used.
GPROFILE
GPROFILE=1: add -pg to the CFLAGS to enable GCC profiling The STATIC=1 option should also be used.
GUI_LOGGING
GUI_LOGGING=1: internal flag used to build libyumapro_ncx without the log_common and log_append functions so the Qt version of these functions can be used instead
HOST
HOST=string: standard make variable for cross-compile Must be set correctly together with CROSS_TARGET
Example:
make HOST=mips64-octeon-linux-gnu CROSS_TARGET=mips64-octeon-linux-gnu-
INC_PREFIX
INC_PREFIX=string: set the base string for the include path
The default is $(DESTDIR)$(INSTALL_PREFIX)/include
Used for cross-compiling to change the location for all built-in include file searches.
The USER_INC parameter can be used to inject -I directives into the compiler command.
The INC_PREFIX and USER_INC parameters can be used together.
INSTALL_PREFIX
INSTALL_PREFIX=string: set the top install dir (after DESTDIR)
default for all but MacOSX: /usr
default for MacOSX: /usr/local
LIB_PREFIX
LIB_PREFIX=string: set the base string for the library path for linking. The default is $(INSTALL_PREFIX)/lib
Used for cross-compiling to change the location for all built-in library searches.
The USER_LIB parameter can be used to inject -L directives into the linker command.
The LIB_PREFIX and USER_LIB parameters can be used together.
LIB64
LIB64=1: install and look for SIL libs in /usr/lib64/yuma instead of /usr/lib/yuma (used by FC14 64 bit)
LIBSSH2_TRACE
LIBSSH2_TRACE=1: Use the debug version of the libssh2 library instead of the normal libssh2-1 library.
used for debugging only
ignored if the flag NO_LIBSSH2=1 is used
This must be built from sources and installed
in /usr/local/lib
(the default location).
Example build steps:
cd libssh2-1.11
cmake -DENABLE_DEBUG_LOGGING=ON -DCMAKE_BUILD_TYPE=Debug -B bld
cmake --build bld
cd bld
sudo make install
Check if the files are installed:
ls -l /usr/local/lib/libssh2*
-rw-r--r-- 1 root root 1611932 Nov 12 13:10 /usr/local/lib/libssh2.a
lrwxrwxrwx 1 root root 12 Nov 12 13:12 /usr/local/lib/libssh2.so -> libssh2.so.1
lrwxrwxrwx 1 root root 16 Nov 12 13:12 /usr/local/lib/libssh2.so.1 -> libssh2.so.1.0.1
-rw-r--r-- 1 root root 867096 Nov 12 13:10 /usr/local/lib/libssh2.so.1.0.1
The library 'libyumapro_mgr' must be built using DEBUG=1.
The file netconf/src/mgr/api-session.cpp
contains the
SSH client code. This calls 'libssh2_trace' which causes libssh2 to generate
packet traces for SSH2 packets.
MAC
MAC=1: set to compile for MacOsX
MANDIR
MANDIR=/path/to/man: set to override the default location to install man pages, which is $(PREFIX)/share/man/man.1 with default prefix is /usr/share/man/man.1
MCHECK
MCHECK=1: enables mcheck heap corruption checking
Used when getting heap corruption errors
Run mcheck(0) in the gdb debugger as needed.
MEMTRACE
MEMTRACE=1: enables mtrace debugging
Used when Memory leak error message printed upon exit.
Need to install glibc-utils for the 'mtrace' program.
Tools will generate an 'mtracefile' in the CWD.
Run mtrace /path/to/program ./mtracefile
MODULES
MODULES=1: used in debian build only to install just the YumaPro YANG Modules files for packaging
NETCONFD_LIB
NETCONFD_LIB=1: build the netconfd-pro server as a static library for uCLinux or BusyBox. The netconfd-pro code will be built as a static library instead of a stand-alone program.
Default target will be /usr/lib/libyumapro_netconfd-pro.a
NOFLOAT
NOFLOAT=1: disable use of double and tgmath.h; XPath eval of complex numbers will cause invalid results;
The platform.profile make rules will not set the internal 'HAS_FLOAT' C define if the 'NOFLOAT' make flag is used. The 'double' in the 'ncx_num_t' structure will use an 'int64' instead of a 'double' so the struct will be the same size.
Warning
This option is deprecated and MUST NOT be used. It will be removed in a future release train
XPath evaluations will not be correct if the 'double' data type is not available
NOTOASTER
NOTOASTER=1: disables building the example toaster SIL
NO_LIBSSH2
NO_LIBSSH2=1: removes libssh2 code from build; used for uCLinux which only supports yp-shell, not yangcli-pro This will remove NETCONF over SSH support from the mgr and ycli directories. Do not use if building yangcli-pro.
NO_LIBSSL
NO_LIBSSL=1: removes libssl code from build; used for uCLinux which only supports yp-shell, not yangcli-pro This will remove RESTCONF over SSL support from the mgr and ycli directories. Do not use if building yangcli-pro.
NO_LIBTECLA
NO_LIBTECLA=1: removes libtecla usage and linkage from from code for libyumapro_ycli. This is used when the libraries are built for the yuma-bench GUI code. Do not use unless the BUILD_LIBS_ONLY=1 flag is also used.
NO_POLL
NO_POLL=1 removes the "poll()" function usage in ncx/ses.c This is not available on Windows platforms. The ses_poll_ready function will always return FALSE if this flag is set. This only affects Client SSH processing. It has no effect on the server operation.
NO_SYSLOG
NO_SYSLOG=1: remove syslog support and includes of Linux syslog.h Windows does not have syslog so set this flag if also setting WINDOWS=1
NO_YPACK
NO_YPACK=1: do not use the YPACK macro to pack some structures This will cause more memory to be used, but may be needed if the target platform does not support it. YPACK is only used if __GNUC__ macro is set. Refer to netconf/src/platform/procdefs.h for details.
PACKAGE
PACKAGE=<pkgname>: set for Ubuntu packaging build;
Do not use in normal builds. Needed to pick the variant that is being installed in a dummy dir and packaged
This is an internal flag! Not all package variants are currently maintained or built each month!
Values:
CLIENT: used in debian build only to install just the yangcli-pro files for packaging
CLIENT2: used in debian build only to install just the yangcli-pro, yangdump-pro, and yangdiff-pro files for packaging
DOCS: used with DOC=1 debian build only to build the yumapro-docs package
DOCS2: used with DOC=1 debian build only to build the yumapro-client-docs package
COMPILER: used in debian build only to install just the yangdump-pro files for packaging
DEVELOPER: used in debian build only to install all of the YumaPro user binaries (including developer files)
SERVER: used in debian build only to install just the YumaPro Server files for packaging to run on an embedded system (NOT USED OR SUPPORTED)
TOOLS: used in debian build only to install all of the developer tools. Similar to DEVELOPER but does not install any server binaries.
USER: used in debian build only to install all of the YumaPro user binaries (no developer files) (NOT USED OR SUPPORTED)
PACKAGE_BUILD
PACKAGE_BUILD=1: set in debian and fedora packlaging scripts to indicate a packaging build is in progress.
PACKAGE_HOST_BUILD
PACKAGE_HOST_BUILD=1: set in debian and fedora packaging scripts by the host machine setting up the sources; Use with DOC=1. This sets up $HOME/Packaging/yuma_docs so the packaging builds have PDF and HTML files already made for the release
PIPE_RESTRICTED
PIPE_RESTRICTED=1: Affects yp-shell and yangcli-pro only; Causes the pipe command to be restricted to the sget, sget-config and show commands. Default is to allow pipe command on any command
PREFIX
PREFIX=string: set the top install dir (after DESTDIR) default: /usr
!!! NO LONGER SUPPORTED OR USED !!!
!!! SEE :ref:`INSTALL_PREFIX` INSTEAD !!!
PRODUCTION
PRODUCTION=1: disables the --DDEBUG flag definition in compilation so all #ifdef DEBUG code is removed
PTHREADS
PTHREADS=1: generate a threaded version of the server. Adds '-pthread' to the gcc CFLAGS and links with the pthread library (see pthread.h).
PY_SIL_VENV
PY_SIL_VENV=<path>: specify the location of the Python virtual environment.
If provided, the PY-SIL Python libraries will be installed within the virtual environment. Otherwise, it will be installed globally.
RELEASE
RELEASE=N: sets the release number in the version string.
Used in package builds only
The version in a git build will be based on the git branch name
Example: RELEASE=6 for release train 21.10 -> 21.10-6
REMOVE_SCHEMA_AUG_LEAFS
REMOVE_SCHEMA_AUG_LEAFS=1: remove the 'conformance' and 'module-type' leafs from the /netconf-state/schemas/schema list. The deprecated leafs are added if --with-yumaworks-system is true. They will be removed from the 22.10 release train when the status is changed to obsolete.
SHLIB_NCX
SHLIB_NCX=1: used in debian build only to install just the YumaPro Server libncx files for packaging This is no longer used!
STATIC
STATIC=1:set to use static libraries such as libncx.a, instead of dynamic libraries like libncx.so
STATIC_LIBSYSTEM
STATIC_LIBSYSTEM=static-libspec
The relative or absolute filespec representing the static libyp_system library. Used when STATIC_SERVER=1. Used from the netconf/src/netconfd-pro directory.
Default: ../../../libsystem/lib/libyp_system-static.a
STATIC_SERVER
STATIC_SERVER=1:set to use force the server to not use any dynamic linked SIL code. The -dl linker option will not be used and the dlopen, dlclose type of SIL invocation will not be used. The server will expect the STATIC_LIBSYSTEM library to be available when netconfd-pro is linked
STATIC_SIL
STATIC_SIL=<string> This is used to link static SIL libraries into the netconfd-pro program, using the STATIC_SERVER=1 flag and optionally the NETCONFD_LIB=1 flag. See the README-STATIC-SIL.txt file for more details
STATIC_SILSA
STATIC_SILSA=<string>
This is used to link static SIL-SA libraries into the sil-sa-app or combo-app programs. See the README-STATIC-SILSA.txt file for more details
TEST
TEST=1: make will include the 'netconf/test' directory Run this command before make test, e.g. make TEST=1; make test; sudo make install Can be run from top or netconf directory
TIMEOUT_DAYS
TIMEOUT_DAYS=N
N is a number from 1 to maxint, e.g. 100
This is an internal flag used in the packaging make procedure for programs that will expire a certain number of days after the build date.
Only used for the yumapro-sdk-basic and yangcli-pro packages
Does not affect the netconfd-pro program
Does affect yangcli-pro, yangdump-pro, and yangdiff-pro programs
A warning is printed if the expiration date is within 5 days
An error is printed and the program exits if the current date is past the expiration date
TIMER_MONO_CLOCK
TIMER_MONO_CLOCK=1: make will use clock_gettime() for server timers instead of time(). This also requires _POSIX_TIMERS and _POSIX_MONOTONIC_CLOCK be defined. The system clock can be changed by settimeofday() which can affect timers.
This option is enabled by EVERYTHING=1.
UCLINUX
UCLINUX=1: build a small static server for the uCLinux OS.
The netconfd-pro, netconf-subsystem-pro, and yp-shell programs are supported. No distributed services are supported such as YP-HA, DB-API, SIL-SA. No ypwatcher support.
Need to use flags: STATIC=1 STATIC_SERVER=1 NO_LIBSSH2=1 NO_LIBSSL=1 This platform is not officially supported because the dropbear SSH performance is so slow that it is operationally unusable. If dropbear performance is ever improved this may change.
USE_WERROR
USE_WERROR=1: use -Werror in the compile process
Default is not to use -Werror.
USER_SERVER_INC
USER_SERVER_INC=string: specify some include directives (-I) to be added to the make command CINC variable. The flags apply to the server only.
This parameter is obsolete. Use USER_INC instead for cross-compiling.
USER_SERVER_LIB
USER_SERVER_LIB=string: specify some include directives (-L, -l) to be added to the netconfd-pro make command LIBS variable The flags apply to the netconfd-pro program only.
This parameter is obsolete. Use USER_LIB instead for cross-compiling.
USER_INC
USER_INC=string: specify some include directives (-I) to be added to the compile command. This is used to provide include files from a different location than the makefile would normally look.
The INC_PREFIX parameter is used to change the start directory for all built-in include searches. This parameter contains a space-separated string of -I directives. Quotes are needed if any whitespace is used.
Example USER_INC="-I$HOME/xcompile/inc -I$HOME/platform/include"
USER_LIB
USER_LIB=string: specify some library search directives to be added to the link command for all executable programs. This is often used when cross-compiling and libraries are needed from multiple locations.
This parameter contains a space-separated string of -L directives. Quotes are needed if any whitespace is used.
Example USER_LIB=-L$HOME/xcompile/lib
WEB_DIR
WEB_DIR=<dirspec>: Use the specified <dirspec> as directory when installing the yang-api and/or restconf programs directly into a WEB server sub-directory (non-production build)
Default is '$(DESTDIR)/var/www/yang-api'.
WEB_GROUP
WEB_GROUP=<name>: Use the specified <name> as the group name when installing the yang-api and/or restconf programs directly into a WEB server sub-directory (non-production build)
Default is 'www-data'.
WEB_USER
WEB_USER=<name>: Use the specified <name> as the user name when installing the yang-api and/or restconf programs directly into a WEB server sub-directory (non-production build)
Default is 'www-data'.
WINDOWS
WINDOWS=1: Select code for Windows QtCreator using MinGW 8.1.0
The make files in this project are not used. Instead qmake is used to generate the makefile. This flag is experimental and only used by the YumaBench GUI to build SDK libraries on Windows 10. This flag is not supported for external use at this time.
WINDOWS_PRINTF
WINDOWS_PRINTF=1: Select Windows printf formatting for size_t parameters. This is '%zu' for most compilers. The MinGW compiler for Qt on Windows will incorrectly generate a warning about an unknown format type. Use -Wno-format to suppress this warning. Qt APIs expect the format '%zu' and the GUI crashes if '%I64u' is used instead.
Do not use. Not supported at this time.
WITH_CALLHOME
WITH_CALLHOME=1: build the IETF Call-Home reverse connection support
Default is not to add this code. Included with EVERYTHING=1. Parts of Call-home may be patented by Juniper, Inc.
WITH_CLI
WITH_CLI=1: build the netconfd-pro server with the CLI protocol included.
Default is not to add this code.
WITH_COAP
WITH_COAP=1: build the netconfd-pro server with the CoAP protocol included. Default is not to add this code
This option is obsolete. CoAP over RESTCONF is obsolete and NOT SUPPORTED. DO NOT USE!
WITH_CURL
WITH_CURL=1: build the netconfd-pro server with libcurl support included.
Default is not to add this code.
WITH_IETF_INTERFACES
WITH_IETF_INTERFACES=1: build the ietf-interfaces SIL code for the netconfd-pro server. Will also include the IF-MIB module if WITH_SNMP=1 is used as well.
Default is to build this module in package builds, but not other builds
WITH_IETF_SYSTEM
WITH_IETF_SYSTEM=1: build the ietf-system SIL code for the netconfd-pro server. Will also include the libsystem-linux library. For more details, please refer to ietf-system.yang.
Default is not to add this code.
This module is for instructional purposes only and is not supported as a production module at this time.
WITH_GDB
WITH_GDB=1: add -ggdb3 to CFALGS even if DEBUG not set
Default is not to add this flag if DEBUG=1 not set
WITH_GET2_TEST
WITH_GET2_TEST=1: build the libget2-test library enable the SIL-SA library for the get2-test module
The server must be started with --module=get2-test and the sil-sa-app must be run for the distributed operational data test to work
WITH_GET3_TEST
WITH_GET3_TEST=1: build the libget3-test library enable the SIL-SA library for the get3-test module
The server must be started with --module=get3-test and the sil-sa-app must be run for the distributed operational data test to work
WITH_GNMI
WITH_GNMI=1: build the YP-gNMI protocol
Must also use WITH_YCONTROL=1 and WITH_RESTCONF=1
Will not work unless the YP-gNMI code is present
WITH_GRPC
WITH_GRPC=1: build the netconfd-pro server with the YP-gRPC protocol included.
Default is not to add this code.
WITH_HOOKS_TEST
WITH_HOOKS_TEST=1: build the libhooks-test directory to install the SIL code for the hooks-test YANG module
Not supported if STATIC=1 is used
WITH_HOOKS_TEST_SILSA
WITH_HOOKS_TEST_SILSA=1: build the libhooks-test-silsa directory to install the SIL-SA code for the hooks-test-silsa YANG module.
The server must be started with --module=hooks-test-silsa and the sil-sa-app must be run for the distributed Hook callbacks test to work.
WITH_LIB_SHOW
WITH_LIB_SHOW=1: add the libshow directory to the build This builds the example libyp_show.so library. Normally off in regular builds and always on in package builds.
WITH_LIB_SYSTEM
WITH_LIB_SYSTEM=1: add the libsystem directory to the build This builds the example yp-system directory. Normally off in regular builds and always on in package builds.
WITH_OPENSSL
WITH_OPENSSL=1: build the netconfd-pro server with OpenSSL library support for NETCONF over TLS protocol. Default is not to add this code.
WITH_PY_SIL
WITH_PY_SIL=1: build the netconfd-pro server with PY-SIL library support. Default is not to add this code.
Note
The 'py-sil-app' program will not be usable unless
WITH_PY_SIL_INSTALL=1 make flag is also used
make install-dev is run from the py-sil source directory
- Installed Programs:
/usr/bin/py-sil-app
- Installed pyang plugin:
py-sil-gen.py
This feature is not enabled with the EVERYTHING make flag.
WITH_PY_SIL_INSTALL
WITH_PY_SIL_INSTALL=1: install the netconfd-pro server PY-SIL libraries so the 'py-sil-app' will work.
Note
Using this option will cause 'python pip' to be run as root which is not recommended. Run 'make install-dev' as a regular user instead.
- Installed Python Libraries:
pysilcommonlibrary
pycontrollibrary
pyncxlibrary
pysillibrary
This feature is not enabled with the EVERYTHING make flag.
WITH_RESTCONF
WITH_RESTCONF=1: build the netconfd-pro server with the RESTCONF protocol included. Default is not to add this code. If set will load ietf-restconf-monitoring module and enable SIL library for this module.
WITH_SM_TEST
WITH_SM_TEST=1: build the libsm-test library enable the SIL library for the get2-test module.
The server must be started with --module=get2-test.
WITH_SCHEMA_MOUNT
WITH_SCHEMA_MOUNT=1: build the netconfd-pro server with the Schema Mount functionality included. Default is not to add this code.
WITH_SERVER_ROOT
WITH_SERVER_ROOT=1: enable the Multi-Instance Mode feature in the server. This enables the --server-root CLI parameter.
Flag introduced in 24.10-1
WITH_SIL_ERROR
WITH_SIL_ERROR=1: add the sil-error directory to the build This allows SIL errors to be easily generated during the specified SIL callback phase for different data node types. Used for developer testing to force corner-case transaction code to be invoked.
WITH_SNMP
WITH_SNMP=1: build the SNMP server protocol support. Requires that WITH_RESTCONF=1 also be used in the make commands.
WITH_SUPPORT_SAVE
WITH_SUPPORT_SAVE=1: build the yumawork-support-save module into the server. Used to add <get-support-save> operation does not cause any server problems.
WITH_SYSTEST_SIL
WITH_SYSTEST_SIL=1: build the test SIL libraries in the systest-sil directory. Used for regression testing to make sure code stub SIL does not cause any server problems. Ignored if PACKAGE_BUILD=1 is also used.
WITH_TEMPLATES
WITH_TEMPLATES=1: build the server code for the yumaworks-templates module, to support configuration templates.
WITH_YANG11
WITH_YANG11=1: Allow YANG 1.1 code to be enabled; Deprecated.
This flag MUST be set to 1 in the 16.10 release train.
This flag MUST NOT be set for the 14.04 or 15.10 release trains.
This flag is forced on starting in 16.10 and later.
WITH_YANGAPI
WITH_YANGAPI=1: build the netconfd-pro server with the YANG-API protocol included. Default is not to add this code. This protocol is obsolete and not supported.
WITH_YANG_CBOR
WITH_YANG_CBOR=1: Use the YANG over CBOR binary encoding. (Experimental) Replaces the WITH_YANG_HASH Experimental code. This flag must be enabled to support CBOR encoding of YANG data.
This feature is not enabled with the EVERYTHING make flag.
If this make flag is set then the 'ncx_sid_t' data type will be used
YANG_SID16: deprecated - DO NOT USE
YANG_SID32: used in LSID mode. This is the default if no YANG_SID flag set.
YANG_SID64: required in IETF SID mode.
Warning
The YumaPro software does not work with the shared library 'libcbor.so' installed with the 'libcbor-dev' package. Instead, the GitHub version of libcbor must be used and the static library built from sources.
The file /usr/share/yumapro/util/mk-cbor.sh
is available
to do all the steps to get, build, and install 'libcbor.a'.
This must be done before the YumaPro software can be built
with the WITH_YANG_CBOR=1 make flag.
WITH_YANG_HASH
WITH_YANG_HASH=1: build the libdict module and add support (REMOVED) for fast lookup via YANG Hash object dictionary (Experimental). THIS FLAG IS REMOVED. THE IETF CBOR encoding uses SID values NOT YANG-Hash. Use WITH_YANG_CBOR instead.
Obsolete and not supported.
WITH_YANG_PUSH
WITH_YANG_PUSH=1: build the YANG-PUSH functionality in the server for Push Telemetry support
WITH_YANGMAP
WITH_YANGMAP=1: build the agt_yangmap functionality for YANG model mapping feature. Used in yp-shell only.
WITH_YCONTROL
WITH_YCONTROL=1: build the netconfd-pro server with the YumaPro Control Protocol sub-system, plus ycontrol and sil-sa libraries. Used for distributed server instrumentation.
WITH_YP_HA
WITH_YP_HA=1: build the YP-HA server redundancy protocol support Requires that WITH_YCONTROL=1 also be used in the make commands.
WITH_YUMA_ARP
WITH_YUMA_ARP=1: build the libyuma-arp directory to install the SIL code for the yuma-arp YANG module.
Obsolete: do not use.
WITH_YUMA_INTERFACES
WITH_YUMA_INTERFACES=1: build the libyuma-interfaces directory to install the SIL code for the yuma-interfaces YANG module.
Obsolete: do not use.
WITH_YUMA_NACM
WITH_YUMA_NACM=1: build the agt_acm_nacm code and enable it in the agt_acm module.
This module is obsolete and not supported at all. Do not use!
WITH_YUMA_PROC
WITH_YUMA_PROC=1: build the libyuma-proc directory to install the SIL code for the yuma-proc YANG module.
WITH_ZEROMQ
WITH_ZEROMQ=1: build the yangcli-gw application. This is available starting in the 23.10T release train. Refer to the YumaPro yangcli-gw Manual for details.
XCODE
XCODE=<path>: specify the location of XCode usr/include directory Only relevant if MAC=1 also set.
Default:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/
Developer/SDKs/MacOSX10.11.sdk/usr/include
YANG_SID16
This flag is used if the WITH_YANG_CBOR flag is set. It indicates that the SID data type is a 'uint16' number.
YANG_SID16 == 32K SIDs
DEPRECATED: DO NOT USE! NOT SUPPORTED!
YANG_SID32
This flag is used if the WITH_YANG_CBOR flag is set. It indicates that the SID data type is a 'uint32' number.
This is the expected mode if Localized SID Mode is used.
This is the default mode if no YANG_SID make flag is set.
YANG_SID32 == 2G SIDs (31 bits)
YANG_SID64
This flag is used if the WITH_YANG_CBOR flag is set. It indicates that the SID data type is a 'uint64' number.
This is the expected mode if IETF SID Mode is used.
YANG_SID64 == 9.2 x 10^^18 SIDs (63 bits)
YP_SYSROOT
YP_SYSROOT=<path-string> : specify the --sysroot parameter for the compiler and linker. The poath cannot have any whitespace in it.
Example:
YP_SYSROOT=/opt/SDK/sysroots/aarch64-xilinx-linux
Added to CFLAGS and CXXFLAGS:
--sysroot=/opt/SDK/sysroots/aarch64-xilinx-linux