* Preparations for Clixon 5.4 release, docs, readme:s, etc
This commit is contained in:
parent
f4b35cb270
commit
716d0cb15f
9 changed files with 43 additions and 21 deletions
42
CHANGELOG.md
42
CHANGELOG.md
|
|
@ -34,7 +34,7 @@
|
||||||
## 5.4.0
|
## 5.4.0
|
||||||
Expected: November, 2021
|
Expected: November, 2021
|
||||||
|
|
||||||
Thanks netgate for providing the dispatcher code!
|
Thanks Netgate for providing the dispatcher code (used in the pagination)!
|
||||||
|
|
||||||
### New features
|
### New features
|
||||||
|
|
||||||
|
|
@ -44,11 +44,22 @@ Thanks netgate for providing the dispatcher code!
|
||||||
* Use accessor functions `pagination_offset()`, `pagination_limit()`, etc
|
* Use accessor functions `pagination_offset()`, `pagination_limit()`, etc
|
||||||
* Reverted state data callback API to pre-5.3 (see C/CLI API changes below)
|
* Reverted state data callback API to pre-5.3 (see C/CLI API changes below)
|
||||||
* See https://clixon-docs.readthedocs.io/en/latest/pagination.html
|
* See https://clixon-docs.readthedocs.io/en/latest/pagination.html
|
||||||
|
* Added support for XPATH function `bit-is-set()`
|
||||||
|
* Added: [Recursive search CLIXON_YANG_DIR](https://github.com/clicon/clixon/issues/284)
|
||||||
|
* Added statistics for YANG: number of objects and memory used
|
||||||
|
* See clixon-lib: stats rpc
|
||||||
|
|
||||||
### 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
|
||||||
|
|
||||||
|
* Optional yangs for testing have been removed from the Clixon repo
|
||||||
|
* These were included for testing
|
||||||
|
* If you want to run the Clixon test suite you need to point `YANGMODELS`, see test/README.md
|
||||||
|
* The following configure options have been removed:
|
||||||
|
* `configure --with-opt-yang-installdir=DIR`
|
||||||
|
* `configure --enable-optyangs`
|
||||||
|
* You may need to specify standard YANGs using configure option `--with-yang-standard-dir=DIR`
|
||||||
* RPC replies now verified with YANG
|
* RPC replies now verified with YANG
|
||||||
* Stricter checking of outgoing RPC replies from server
|
* Stricter checking of outgoing RPC replies from server
|
||||||
* See [RPC output not verified by yang](https://github.com/clicon/clixon/issues/283)
|
* See [RPC output not verified by yang](https://github.com/clicon/clixon/issues/283)
|
||||||
|
|
@ -63,7 +74,8 @@ Users may have to change how they access the system
|
||||||
* Modified option: RPC stats extended with YANG stats
|
* Modified option: RPC stats extended with YANG stats
|
||||||
* New `clixon-config@2021-11-11.yang` revision
|
* New `clixon-config@2021-11-11.yang` revision
|
||||||
* Added option:
|
* Added option:
|
||||||
* CLICON_PLUGIN_CALLBACK_CHECK
|
* `CLICON_PLUGIN_CALLBACK_CHECK`
|
||||||
|
* `CLICON_YANG_AUGMENT_ACCEPT_BROKEN`
|
||||||
* Modified options:
|
* Modified options:
|
||||||
* CLICON_CLI_GENMODEL_TYPE: added OC_COMPRESS enum
|
* CLICON_CLI_GENMODEL_TYPE: added OC_COMPRESS enum
|
||||||
* CLICON_YANG_DIR: recursive search
|
* CLICON_YANG_DIR: recursive search
|
||||||
|
|
@ -79,6 +91,7 @@ Users may have to change how they access the system
|
||||||
* See also updated [https://clixon-docs.readthedocs.io/en/latest/pagination.html]
|
* See also updated [https://clixon-docs.readthedocs.io/en/latest/pagination.html]
|
||||||
* NETCONF hello errors, such as wrong session-id, prefix, namespace terminates session
|
* NETCONF hello errors, such as wrong session-id, prefix, namespace terminates session
|
||||||
* Instead of returning an rpc-error reply
|
* Instead of returning an rpc-error reply
|
||||||
|
* This conforms to RFC 6241
|
||||||
|
|
||||||
### C/CLI-API changes on existing features
|
### C/CLI-API changes on existing features
|
||||||
|
|
||||||
|
|
@ -90,28 +103,30 @@ Developers may need to change their code
|
||||||
```
|
```
|
||||||
int statedata(clicon_handle h,
|
int statedata(clicon_handle h,
|
||||||
cvec *nsc,
|
cvec *nsc,
|
||||||
char *xpath,
|
char *xpath,
|
||||||
cxobj *xstate)
|
cxobj *xstate)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Minor features
|
### Minor features
|
||||||
|
|
||||||
* Added statistics for YANG: number of objects and memory used
|
* Added configure option `--with-yang-standard-dir=DIR`
|
||||||
* See clixon-lib: stats rpc
|
* Directory of standard IETF/IEEE YANG specs
|
||||||
|
* Added option `CLICON_YANG_AUGMENT_ACCEPT_BROKEN` to accept broken yangmodels.
|
||||||
|
* This is a debug option for CI testcases where standard YANG models are broken
|
||||||
* Performance improvement
|
* Performance improvement
|
||||||
* Added ancestor config cache indicating wether the node or an ancestor is config false or true
|
* Added ancestor config cache indicating wether the node or an ancestor is config false or true
|
||||||
* Improved yang cardinality lookup
|
* Improved performance of yang cardinality lookup
|
||||||
* Added sorting of YANG statements
|
* Added sorting of YANG statements
|
||||||
* Some openconfig specs seem to have use/when before a "config" which it depends on. This leads to XML encoding being in the "wrong order.
|
* Some openconfig specs seem to have use/when before a "config" which it depends on. This leads to XML encoding being in the "wrong" order.
|
||||||
* When parsing, clixon now sorts container/list statements so that sub-statements with WHEN are put last.
|
* When parsing, clixon now sorts container/list statements so that sub-statements with WHEN are put last.
|
||||||
* See [Statements given in "load set" are order dependent](https://github.com/clicon/clixon/issues/287)
|
* See [Statements given in "load set" are order dependent](https://github.com/clicon/clixon/issues/287)
|
||||||
* Added: [Recursive search CLIXON_YANG_DIR](https://github.com/clicon/clixon/issues/284)
|
|
||||||
* Plugin context check before and after all callbacks.
|
* Plugin context check before and after all callbacks.
|
||||||
* Check blocked signals and signal handlers
|
* Check blocked signals and signal handlers
|
||||||
* Check termios settings
|
* Check termios settings
|
||||||
* Any changes to context are logged at loglevel WARNING
|
* Any changes to context are logged at loglevel WARNING
|
||||||
* New option: CLICON_PLUGIN_CALLBACK_CHECK: enable it to for checks (default false)
|
* New option: `CLICON_PLUGIN_CALLBACK_CHECK`: enable it to for checks (default false)
|
||||||
* [OpenConfig path compression](https://github.com/clicon/clixon/pull/276)
|
* Added: [OpenConfig Path Compression Support](https://github.com/clicon/clixon/issues/274)
|
||||||
|
* PR: [OpenConfig path compression](https://github.com/clicon/clixon/pull/276)
|
||||||
* C API: Added set/get pointer API to clixon_data:
|
* C API: Added set/get pointer API to clixon_data:
|
||||||
* Changed signature of `rpc_callback_call()`
|
* Changed signature of `rpc_callback_call()`
|
||||||
* Added json/cli support for cli save/load
|
* Added json/cli support for cli save/load
|
||||||
|
|
@ -124,6 +139,7 @@ Developers may need to change their code
|
||||||
|
|
||||||
### Corrected Bugs
|
### Corrected Bugs
|
||||||
|
|
||||||
|
* [JSON leaf-list output single element leaf-list does not use array](https://github.com/clicon/clixon/issues/289)
|
||||||
* [very slow execution of load_set_file #288](https://github.com/clicon/clixon/issues/288)
|
* [very slow execution of load_set_file #288](https://github.com/clicon/clixon/issues/288)
|
||||||
* [RPC output not verified by yang](https://github.com/clicon/clixon/issues/283)
|
* [RPC output not verified by yang](https://github.com/clicon/clixon/issues/283)
|
||||||
* [Statements given in "load set" are order dependent](https://github.com/clicon/clixon/issues/287)
|
* [Statements given in "load set" are order dependent](https://github.com/clicon/clixon/issues/287)
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,6 @@ Latest release is 5.3.0 from September 2021. See [CHANGELOG.md](CHANGELOG.md) re
|
||||||
|
|
||||||
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-wegsemtw-u~VRdvYPtSRKXqULDLlWJQ) (updated 26/9 2021)
|
[Slack invite](https://join.slack.com/t/clixondev/shared_invite/zt-za7p40vq-l_Ib1Cq9rX~cHCkLCdu~Aw) (updated 26/11 2021)
|
||||||
|
|
||||||
Clixon is sponsored by [Rubicon Communications LLC(Netgate)](https://www.netgate.com/)
|
Clixon is sponsored by [Rubicon Communications LLC(Netgate)](https://www.netgate.com/)
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ COPY clixon .
|
||||||
RUN adduser -D -H www-data
|
RUN adduser -D -H www-data
|
||||||
|
|
||||||
# Configure, build and install clixon
|
# Configure, build and install clixon
|
||||||
RUN ./configure --prefix=/clixon/build --with-cligen=/clixon/build --with-wwwuser=www-data --enable-optyangs --with-restconf=native
|
RUN ./configure --prefix=/clixon/build --with-cligen=/clixon/build --with-wwwuser=www-data --with-restconf=native
|
||||||
|
|
||||||
RUN make
|
RUN make
|
||||||
RUN make install
|
RUN make install
|
||||||
|
|
|
||||||
|
|
@ -138,7 +138,7 @@ clicon_files_recursive(const char *dir,
|
||||||
int res = 0;
|
int res = 0;
|
||||||
char errbuf[128];
|
char errbuf[128];
|
||||||
|
|
||||||
clicon_debug(1, "%s dir:%s", __FUNCTION__, dir);
|
clicon_debug(2, "%s dir:%s", __FUNCTION__, dir);
|
||||||
if (regexp && (res = regcomp(&re, regexp, REG_EXTENDED)) != 0) {
|
if (regexp && (res = regcomp(&re, regexp, REG_EXTENDED)) != 0) {
|
||||||
regerror(res, &re, errbuf, sizeof(errbuf));
|
regerror(res, &re, errbuf, sizeof(errbuf));
|
||||||
clicon_err(OE_DB, 0, "regcomp: %s", errbuf);
|
clicon_err(OE_DB, 0, "regcomp: %s", errbuf);
|
||||||
|
|
|
||||||
|
|
@ -170,7 +170,7 @@ struct xml{
|
||||||
struct xml *x_up_candidate; /* Candidate parent node for special cases (when+xpath) */
|
struct xml *x_up_candidate; /* Candidate parent node for special cases (when+xpath) */
|
||||||
#endif
|
#endif
|
||||||
int _x_vector_i; /* internal use: xml_child_each */
|
int _x_vector_i; /* internal use: xml_child_each */
|
||||||
int _x_i; /* internal use for sorting:
|
int _x_i; /* internal use for stable sorting:
|
||||||
see xml_enumerate and xml_cmp */
|
see xml_enumerate and xml_cmp */
|
||||||
/*----- next is body/attribute only */
|
/*----- next is body/attribute only */
|
||||||
cbuf *x_value_cb; /* attribute and body nodes have values (XXX: this consumes
|
cbuf *x_value_cb; /* attribute and body nodes have values (XXX: this consumes
|
||||||
|
|
|
||||||
|
|
@ -416,7 +416,7 @@ xml_sort(cxobj *x)
|
||||||
if ((ys = xml_spec(x)) != 0 && yang_config(ys)==0)
|
if ((ys = xml_spec(x)) != 0 && yang_config(ys)==0)
|
||||||
return 1;
|
return 1;
|
||||||
#endif
|
#endif
|
||||||
xml_enumerate_children(x);
|
xml_enumerate_children(x); /* This is to make sorting "stable", ie not change existing order */
|
||||||
qsort(xml_childvec_get(x), xml_child_nr(x), sizeof(cxobj *), xml_cmp_qsort);
|
qsort(xml_childvec_get(x), xml_child_nr(x), sizeof(cxobj *), xml_cmp_qsort);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2690,6 +2690,7 @@ yang_if_feature(clicon_handle h,
|
||||||
int opand = -1; /* -1:not set, 0:or, 1:and */
|
int opand = -1; /* -1:not set, 0:or, 1:and */
|
||||||
int enabled = 0;
|
int enabled = 0;
|
||||||
cg_var *cv;
|
cg_var *cv;
|
||||||
|
|
||||||
if ((vec = clicon_strsep(ys->ys_argument, " \t\r\n", &nvec)) == NULL)
|
if ((vec = clicon_strsep(ys->ys_argument, " \t\r\n", &nvec)) == NULL)
|
||||||
goto done;
|
goto done;
|
||||||
/* Two steps: first detect operators
|
/* Two steps: first detect operators
|
||||||
|
|
@ -3026,7 +3027,8 @@ schema_nodeid_iterate(yang_stmt *yn,
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
if (ys == NULL){
|
if (ys == NULL){
|
||||||
clicon_debug(1, "%s: %s not found", __FUNCTION__, id);
|
clicon_debug(1, "%s: %s not found, last id found:%s",
|
||||||
|
__FUNCTION__, id, yang_argument_get(yp));
|
||||||
goto ok;
|
goto ok;
|
||||||
}
|
}
|
||||||
yp = ys; /* ys is matched */
|
yp = ys; /* ys is matched */
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,9 @@ On ubuntu this may be enough:
|
||||||
```
|
```
|
||||||
sudo apt install afl
|
sudo apt install afl
|
||||||
```
|
```
|
||||||
Or get source: `https://github.com/google/AFL`
|
|
||||||
|
Or get source: `https://github.com/google/AFL`, see
|
||||||
|
docs/QuickStartGuide.txt for instructions, essentially type `make`
|
||||||
|
|
||||||
You may have to change cpu frequency:
|
You may have to change cpu frequency:
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ Build and install a clixon system (in particular the backend, the CLI will be re
|
||||||
Build and install CLIgen statically:
|
Build and install CLIgen statically:
|
||||||
```
|
```
|
||||||
./configure LINKAGE=static INSTALLFLAGS="" CC=/usr/bin/afl-clang-fast
|
./configure LINKAGE=static INSTALLFLAGS="" CC=/usr/bin/afl-clang-fast
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
```
|
```
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
@ -39,7 +41,7 @@ Below is an example of how to do this for the main example. You can replace the
|
||||||
make
|
make
|
||||||
sudo make install
|
sudo make install
|
||||||
|
|
||||||
cd example # Compile and install application plugins (here main example)
|
cd example/main # Compile and install application plugins (here main example)
|
||||||
make clean
|
make clean
|
||||||
make
|
make
|
||||||
sudo make install
|
sudo make install
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue