* 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.
  * 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)
* Fixed: [Statements given in "load set" are order dependent](https://github.com/clicon/clixon/issues/287)
This commit is contained in:
Olof hagsand 2021-11-16 14:28:16 +01:00
parent a64464beda
commit acc9c083a4
11 changed files with 181 additions and 39 deletions

View file

@ -207,6 +207,12 @@ check_body_namespace(cxobj *x0,
*
* Check if there is a when condition. First try it on the new request (x1), then on the
* existing (x0).
* This is according to RFC 7950 8.3.2 NETCONF <edit-config> Processing
* During this processing [of edit-config] :
* o Modification requests for nodes tagged with "when", and the "when"
* condition evaluates to "false". In this case, the server MUST
* reply with an "unknown-element" <error-tag> in the <rpc-error>.
* This is somewhat strange since this is different from checking "when" at validation
* @param[in] x0p Parent of x0
* @param[in] x1 XML tree which modifies base
* @param[in] y0 Yang spec corresponding to xml-node x0. NULL if x0 is NULL