Clixon 5.8.0 release

This commit is contained in:
Olof hagsand 2022-07-28 09:35:20 +02:00
parent bb069aa7b8
commit 6f5149cc32
7 changed files with 35 additions and 34 deletions

View file

@ -2,9 +2,9 @@ name: Clixon CI
on: on:
push: push:
branches: [ master, callhome, with-defaults ] branches: [ master, with-defaults ]
pull_request: pull_request:
branches: [ master, callhome, with-defaults ] branches: [ master, with-defaults ]
jobs: jobs:
build: build:

View file

@ -1,6 +1,6 @@
# Clixon Changelog # Clixon Changelog
* [5.8.0](#580) Planned: July 2022 * [5.8.0](#580) 28 July 2022
* [5.7.0](#570) 17 May 2022 * [5.7.0](#570) 17 May 2022
* [5.6.0](#560) 8 March 2022 * [5.6.0](#560) 8 March 2022
* [5.5.0](#550) 20 January 2022 * [5.5.0](#550) 20 January 2022
@ -36,12 +36,12 @@
* [3.3.1](#331) June 7 2017 * [3.3.1](#331) June 7 2017
## 5.8.0 ## 5.8.0
Planned: July 2022 28 July 2022
### New features ### New features
* Clixon SNMP frontend * New SNMP frontend
* Support of SNMP for retreiving and setting values via net-snmp using a MIB-YANG mapping defined in RFC6643. * Support for SNMP for retreiving and setting values via net-snmp using MIB-YANG mapping defined in RFC6643.
* For details, see [SNMP section of user manual](https://clixon-docs.readthedocs.io/en/latest/snmp.html) * For details, see [SNMP section of user manual](https://clixon-docs.readthedocs.io/en/latest/snmp.html)
* YANG `clixon-config@2022-03-21.yang` changes: * YANG `clixon-config@2022-03-21.yang` changes:
* Added options: * Added options:
@ -49,30 +49,26 @@ Planned: July 2022
* `CLICON_SNMP_MIB` * `CLICON_SNMP_MIB`
* New configure options: * New configure options:
* `--enable-netsnmp` * `--enable-netsnmp`
* `--with-mib-generated-yang-dir=DIR` * `--with-mib-generated-yang-dir=DIR` (test only)
* Thanks to Siklu Communications LTD for sponsoring this work * Thanks: Siklu Communications LTD for sponsoring this work
* YANG Action (RFC 7950 Section 7.15) * YANG Action (RFC 7950 Section 7.15)
* Register action callback with `action_callback_register()`, see main example * Register action callback with `action_callback_register()`
* The main example contains example code
* Remains: check list keys, validate output * Remains: check list keys, validate output
* See [Support for "action" statement](https://github.com/clicon/clixon/issues/101) * See [Support for "action" statement](https://github.com/clicon/clixon/issues/101)
* TEXT syntax parseable for loading files * TEXT syntax is now parseable
* Previously only supported output * This means you can save and load TEXT syntax files, as additions to XML/JSON/CLI formats
* Previously only output was supported.
* TEXT output format changed (see API changes) * TEXT output format changed (see API changes)
* [Documentation](https://clixon-docs.readthedocs.io/en/latest/datastore.html#other-formats) * FOr more info, see [user manual](https://clixon-docs.readthedocs.io/en/latest/datastore.html#other-formats)
* See [Support performant load_config_file(...) for TEXT format](https://github.com/clicon/clixon/issues/324) * See [Support performant load_config_file(...) for TEXT format](https://github.com/clicon/clixon/issues/324)
### API changes on existing protocol/config features ### API changes on existing protocol/config features
Users may have to change how they access the system Users may have to change how they access the system
* Augmented XML uses default namespace
* Instead of using prefixes for augmented XML, assign the default namespace
* This does not change the semantics, but changes the way XML rpefixes are used
* Example augmented ipv4 into interface:
* Previously: `<interface><ip:ipv4 xmlns:ip="urn:...:ietf-ip"><ip:enabled>...`
* Now: `<interface><ipv4 xmlns="urn:...:ietf-ip"><enabled>...`
* TEXT file format changed * TEXT file format changed
* With new parsing of TEXT format, the output is changed * With new parsing of TEXT format, the output is changed
* Namespace/modulename added to top-level * Namespace/modulename added to top-level
@ -80,6 +76,12 @@ Users may have to change how they access the system
* List key support: `a x y { ... }` * List key support: `a x y { ... }`
* See compile-time option `TEXT_LIST_KEYS` * See compile-time option `TEXT_LIST_KEYS`
* Keep backward-compatible non-top-level prefix with compile-time option `TEXT_SYNTAX_NOPREFIX` * Keep backward-compatible non-top-level prefix with compile-time option `TEXT_SYNTAX_NOPREFIX`
* Augmented XML uses default namespace
* Instead of using prefixes for augmented XML, assign the default namespace
* This does not change the semantics, but changes the way XML prefixes are used
* Example augmented ipv4 into interface:
* Previously: `<interface><ip:ipv4 xmlns:ip="urn:...:ietf-ip"><ip:enabled>...`
* Now: `<interface><ipv4 xmlns="urn:...:ietf-ip"><enabled>...`
### C/CLI-API changes on existing features ### C/CLI-API changes on existing features
@ -89,11 +91,9 @@ Developers may need to change their code
* Functions are merged, ie removed and replaced with more generic functions * Functions are merged, ie removed and replaced with more generic functions
* Added `skiptop` parameter, if set only apply to children of a node, skip top node * Added `skiptop` parameter, if set only apply to children of a node, skip top node
* default is 0 * default is 0
* The new API is as follows, with how to change old functions to new: * The new API is as follows:
* `clixon_xml2file()` - Print internal tree as XML to file * `clixon_xml2file()` / `clixon_xml2cbuf()` - Print internal tree as XML to file or buffer, respectively
* `clixon_xml2cbuf()` - Print internal tree as XML to buffer * `clixon_json2file()` / `clixon_json2cbuf()` - Print internal tree as JSON to file or buffer, respectively
* `clixon_json2file()` - Print internal tree as JSON to file
* `clixon_json2cbuf()` - Print internal tree as JSON to buffer
* `clixon_cli2file()` - Print internal tree as CLI format to file * `clixon_cli2file()` - Print internal tree as CLI format to file
* `clixon_txt2file()` - Print internal tree as text format to file * `clixon_txt2file()` - Print internal tree as text format to file
* As developer, you need to replace the old functions to the new API as follows: * As developer, you need to replace the old functions to the new API as follows:
@ -115,15 +115,15 @@ Developers may need to change their code
* Break-out RFC 7950 Section 6.1 tokenization * Break-out RFC 7950 Section 6.1 tokenization
* This enables full string lexical parsing of some rules previously not fully compliant, including: * This enables full string lexical parsing of some rules previously not fully compliant, including:
* refine, uses-augment, augment, if-feature, type, base. * refine, uses-augment, augment, if-feature, type, base.
* Also solves previous tokenization issues * Also fixes some previous tokenization issues
* [String concatenation in YANG model leads to syntax error ](https://github.com/clicon/clixon/issues/265) * [String concatenation in YANG model leads to syntax error ](https://github.com/clicon/clixon/issues/265)
* [Can't use + symbol in the enum statement without quotes](https://github.com/clicon/clixon/issues/241) * [Can't use + symbol in the enum statement without quotes](https://github.com/clicon/clixon/issues/241)
* Added XPATH function `boolean()`
* This caused problem for new NTP YANG in RFC 9249
* Full RFC 7950 if-feature-expr support (Section 7.20.2) * Full RFC 7950 if-feature-expr support (Section 7.20.2)
* Previous implementation did not handle nested if-feature expressions * Previous implementation did not handle nested if-feature expressions
* As part of fixing: [YANG if-feature does not support nested boolean expression](https://github.com/clicon/clixon/issues/341) * As part of fixing: [YANG if-feature does not support nested boolean expression](https://github.com/clicon/clixon/issues/341)
* Added new yacc/lex parser for if-feature-expr string * Added new yacc/lex parser for if-feature-expr string
* Added XPATH function `boolean()`
* This caused problem for new NTP YANG in RFC 9249
* [Feature Request: Log SSL events](https://github.com/clicon/clixon/issues/331) * [Feature Request: Log SSL events](https://github.com/clicon/clixon/issues/331)
* Added syslog NOTICE on failed user certs * Added syslog NOTICE on failed user certs

View file

@ -13,10 +13,10 @@ See [documentation](https://clixon-docs.readthedocs.io), [project page](https://
Clixon is open-source and dual licensed. Either Apache License, Version 2.0 or GNU Clixon is open-source and dual licensed. Either Apache License, Version 2.0 or GNU
General Public License Version 2; you choose, see [LICENSE.md](LICENSE.md). General Public License Version 2; you choose, see [LICENSE.md](LICENSE.md).
Clixon has a master branch continuously tested with CI, but releases are made ca every second month. Latest 5.6.0 release is from March 2022. Next is planned for May 2022. See [CHANGELOG.md](CHANGELOG.md) release history. Clixon has a master branch continuously tested with CI, but releases are made ca every second month. Latest 5.8.0 release is from July 2022. Next is planned for September 2022. See [CHANGELOG.md](CHANGELOG.md) release history.
Clixon interaction is best done posting issues, pull requests, or joining the Clixon interaction is best done posting issues, pull requests, or joining the
[slack channel](https://clixondev.slack.com). [slack channel](https://clixondev.slack.com).
[Slack invite](https://join.slack.com/t/clixondev/shared_invite/zt-1b5y2pno7-g4Ih92CrBK1dxTgip1Hkvw)(updated 23/6 2022, valid 30d) [Slack invite](https://join.slack.com/t/clixondev/shared_invite/zt-1da9fdr51-G~W5CES01_TRVdg5oXo43w)(updated 28/7 2022, valid 30d)
Clixon is sponsored by [Rubicon Communications LLC(Netgate)](https://www.netgate.com/) Clixon is sponsored by [Rubicon Communications LLC(Netgate)](https://www.netgate.com/)

2
configure vendored
View file

@ -2276,7 +2276,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
CLIXON_VERSION_MAJOR="5" CLIXON_VERSION_MAJOR="5"
CLIXON_VERSION_MINOR="8" CLIXON_VERSION_MINOR="8"
CLIXON_VERSION_PATCH="0" CLIXON_VERSION_PATCH="0"
CLIXON_VERSION="\"${CLIXON_VERSION_MAJOR}.${CLIXON_VERSION_MINOR}.${CLIXON_VERSION_PATCH}.PRE\"" CLIXON_VERSION="\"${CLIXON_VERSION_MAJOR}.${CLIXON_VERSION_MINOR}.${CLIXON_VERSION_PATCH}\""
# Debug flag # Debug flag
# Check whether --enable-debug was given. # Check whether --enable-debug was given.

View file

@ -50,7 +50,7 @@ AC_CONFIG_AUX_DIR(config-aux)
CLIXON_VERSION_MAJOR="5" CLIXON_VERSION_MAJOR="5"
CLIXON_VERSION_MINOR="8" CLIXON_VERSION_MINOR="8"
CLIXON_VERSION_PATCH="0" CLIXON_VERSION_PATCH="0"
CLIXON_VERSION="\"${CLIXON_VERSION_MAJOR}.${CLIXON_VERSION_MINOR}.${CLIXON_VERSION_PATCH}.PRE\"" CLIXON_VERSION="\"${CLIXON_VERSION_MAJOR}.${CLIXON_VERSION_MINOR}.${CLIXON_VERSION_PATCH}\""
# Debug flag # Debug flag
AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug],[Build with debug symbols, default: no]),[ AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug],[Build with debug symbols, default: no]),[

View file

@ -217,11 +217,12 @@ wait_restconf
new "try restconf rpc status" new "try restconf rpc status"
expectpart "$(curl $CURLOPTS -X POST -H "Content-Type: application/yang-data+json" $RCPROTO://localhost/restconf/operations/clixon-lib:process-control -d '{"clixon-lib:input":{"name":"restconf","operation":"status"}}')" 0 "HTTP/$HVER 200" '{"clixon-lib:output":' '"active":' '"pid":' expectpart "$(curl $CURLOPTS -X POST -H "Content-Type: application/yang-data+json" $RCPROTO://localhost/restconf/operations/clixon-lib:process-control -d '{"clixon-lib:input":{"name":"restconf","operation":"status"}}')" 0 "HTTP/$HVER 200" '{"clixon-lib:output":' '"active":' '"pid":'
new "Set backend debug using restconf" # debug setting clutters screen
expectpart "$(curl $CURLOPTS -X POST -H 'Content-Type: application/yang-data+json' $RCPROTO://localhost/restconf/operations/clixon-lib:debug -d '{"clixon-lib:input":{"level":1}}')" 0 "HTTP/$HVER 204" #new "Set backend debug using restconf"
#expectpart "$(curl $CURLOPTS -X POST -H 'Content-Type: application/yang-data+json' $RCPROTO://localhost/restconf/operations/clixon-lib:debug -d '{"clixon-lib:input":{"level":1}}')" 0 "HTTP/$HVER 204"
new "Set restconf debug using netconf" new "Set restconf debug using netconf"
expecteof_netconf "$clixon_netconf -qf $cfg" 0 "$DEFAULTHELLO" "<rpc $DEFAULTNS><edit-config><target><candidate/></target><config><restconf $RESTCONFNS><debug>1</debug></restconf></config></edit-config></rpc>" "" "<rpc-reply $DEFAULTNS><ok/></rpc-reply>" #expecteof_netconf "$clixon_netconf -qf $cfg" 0 "$DEFAULTHELLO" "<rpc $DEFAULTNS><edit-config><target><candidate/></target><config><restconf $RESTCONFNS><debug>1</debug></restconf></config></edit-config></rpc>" "" "<rpc-reply $DEFAULTNS><ok/></rpc-reply>"
new "2. Get status" new "2. Get status"
rpcstatus true running rpcstatus true running

View file

@ -26,7 +26,7 @@ module clixon-restconf {
in clixon-config in clixon-config
***** BEGIN LICENSE BLOCK ***** ***** BEGIN LICENSE BLOCK *****
Copyright (C) 2020 Olof Hagsand and Rubicon Communications, LLC(Netgate) Copyright (C) 2020-2022 Olof Hagsand and Rubicon Communications, LLC(Netgate)
This file is part of CLIXON This file is part of CLIXON