Commit graph

563 commits

Author SHA1 Message Date
Sylvain Cadilhac
02e6d9cecb Add conformance-type to modules-state 2018-10-27 13:51:42 +02:00
Olof hagsand
af16760279 * Stream replay support
* RFC8040 Restconf replay support: start-time and stop-time query parameter support
    * This only applies to "native" restconf stream support, Nchan mode has different replay functionality
  * RFC5277 Netconf replay support using <startTime> and
  * Replay support is only in-memory and not persistent. External time-series DB could be added.
2018-10-27 11:12:01 +02:00
Olof hagsand
77e56868d4 Load netconf notification and add create-subscription to yang. 2018-10-23 20:43:59 +02:00
Olof hagsand
71eddeaa74 * Restconf stream notification support - two variants.
* Both a "native" stream support and one using nginx/nchan pub/sub.
  * See (apps/restconf/README.md) for details.
* clixon-config YAML file has new revision: 2018-10-21.
2018-10-21 22:19:38 +02:00
Olof hagsand
a4e29bcdb7 * All yang modules are stored in the clicon_dbspec_yang() option.
* Except clixon-config module due to bug reported below
* Bug: Top-level Yang symbol cannot be called "config" in any imported yang file.
  * datastore uses "config" as reserved keyword for storing any XML whoich collides with code for detecting Yang sanit
2018-10-19 15:26:22 +02:00
Olof hagsand
7de80e9fcd added netconf capabilities in hello 2018-10-17 22:45:16 +02:00
Olof hagsand
40cda7b6a4 * ietf-netconf yang module added with candidate, validate, startup and xpath features enabled.
* Added urn:ietf:params:netconf:capability:yang-library:1.0
* Thanks SCadilhac for helping out, see https://github.com/clicon/clixon/issues/39
* uri_percent_encode() and xml_chardata_encode() changed to use stdarg parameters
2018-10-17 22:36:59 +02:00
Olof hagsand
7046925fc3 disable pub/sub test 2018-10-15 22:30:22 +02:00
Olof Hagsand
d5f4969780 * Set access/subscribe base URL with: CLICON_STREAM_URL_PREFIX (default https\
://localhost/streams).
    * Example: new stream "foo" will get access URL: https://localhost/streams/\
foo
  * Optional pub/sub support enabled by ./configure --enable-publish
    * Set publish URL base with: CLICON_STREAM_PUB_PREFIX (default http://local\
host/pub)
    * Example: new stream "foo" will get pub URL: https://localhost/pub/foo
2018-10-15 22:08:38 +02:00
Olof hagsand
dcec834455 Merge branch 'develop' of https://github.com/clicon/clixon into develop 2018-10-12 18:42:03 +02:00
Olof hagsand
65c44b41e8 RFC 7895:
* Changed Netconf hello to single capabilty urn:ietf:params:netconf:capability:yang-library:1.0 according to YANG 1.1 RFC7950 Sec 5.6.4.
  * Set by option: CLICON_MODULE_LIBRARY_RFC7895 - enabled by default
  * Option CLICON_MODULE_SET_ID is set and changed when modules change.
2018-10-12 18:41:53 +02:00
Olof Hagsand
15031d7a49 stream debug 2018-10-12 08:05:48 +00:00
Olof Hagsand
a23c1ec68d Added CLIXON_DEFAULT_CONFIG=/usr/local/etc/clixon.xml as option and in exampl\
e (so you dont need to provide -f command-line option).
2018-10-11 19:03:35 +00:00
Olof hagsand
507e03742d Yang 1.1 action syntax added (but function is not supported) 2018-10-10 22:27:46 +02:00
Olof hagsand
52021c3856 features 2018-10-10 20:38:34 +02:00
Olof hagsand
ea77e7f02d * YANG Features
* Yang 1.1 feature and if-feature according to RFC 7950 7.20.1 and 7.20.2.
  * See https://github.com/clicon/clixon/issues/41
  * Features are declared via CLICON_FEATURE in the configuration file.
  * logical combination of features not implemented, eg if-feature "not foo or
* Identity without any identityref:s caused SEGV
2018-10-10 20:11:20 +02:00
Olof hagsand
acb8748470 * Generilized top-level yang parsing functions
* Clarified semantics of main yang module:
    * -y option to commands MUST specify filename
    * CLICON_YANG_MODULE_MAIN MUST specify a module
    * yang_parse() changed to take either filename or module name and revision.
  * Removed clicon_dbspec_name[_set]().
    * Use yang_main_module_name() instead.
  * Replaced yang_spec_main with yang_spec_parse_module
  * Added yang_spec_parse_file
2018-10-07 11:04:33 +02:00
Olof hagsand
782f75a7b9 div edits 2018-10-03 20:20:26 +02:00
Olof hagsand
4d419aab54 backend_notify backward compatible 2018-09-30 15:12:36 +02:00
Olof hagsand
98f3cd0e32 * Major rewrite of event streams
* If you used old event callbacks API, you need to switch to the streams API
    * See clixon_stream.[ch]
  * Old streams API which needs to be removed include:
    * clicon_log_register_callback()
    * subscription_add() --> stream_register()
    * backend_notify() and backend_notify_xml() - use stream_notify() instead
* Example uses "NETCONF" stream instead of "ROUTING"
* Added timeout option -t for clixon_netconf - quit after max time.
2018-09-30 14:51:30 +02:00
Olof hagsand
d7fbe75c9e added clixon_stream.[ch] 2018-09-23 17:50:19 +02:00
Olof hagsand
07542269ec Event stream discovery support
Added config options CLICON_MODULE_LIBRARY_RFC7895, CLICON_STREAM_DISCOVERY_RFC5277, LICON_STREAM_DISCOVERY_RFC804
2018-09-23 17:45:22 +02:00
Olof hagsand
74fc0800ae * Limited support of RFC 7895 YANG Module Library to list modules:
* That is, limited support of: ietf-yang-library.yang
  * For example: `<module><name>example</name><revision/></module><module><name>ietf-restconf-monitoring</name><revision>2017-01-26</revision></module>...`
* Comply to RFC 8040 3.5.3.1 rule: api-identifier = [module-name ":"] identifier
  * The "module-name" was a no-op before.
  * This means that there was no difference between eg: GET /restconf/data/ietf-yang-library:modules-state and GET /restconf/data/XXXX:modules-state
2018-09-22 16:30:58 +02:00
Olof hagsand
0631be19cb * Notification event streams enhancements
* Yang 1.1 notification support
  * Event stream discovery support according to RFC 5277 Sec 3.2.5.1 (netconf) and RFC 8040 (restconf)
2018-09-18 22:49:29 +02:00
Olof Hagsand
f37fdb954f ECONNRESET 2018-08-27 20:20:43 +00:00
Olof Hagsand
2cadfa167e EPEER 2018-08-27 20:14:27 +00:00
Olof Hagsand
de2d5be6dd export populate 2018-08-27 19:07:52 +00:00
Olof Hagsand
bb6d043d6c deprecated readdir_r with readdir 2018-08-05 16:34:45 +02:00
Olof Hagsand
7564bcd9b2 docker improvement 2018-08-05 12:20:37 +02:00
Olof Hagsand
7c94991fe9 * clixon_restconf and clixon_netconf now take -D <level> as command-line option\
instead of just -D
  * This aligns to clixon_cli and clixon_backend
2018-08-03 13:24:41 +02:00
Olof Hagsand
10ada483e5 Memory error in backend transaction revert 2018-08-01 18:34:44 +02:00
Olof Hagsand
656800cdd3 order backend cmd options; open syslog only if syslog is enabled 2018-08-01 07:13:33 +00:00
Olof Hagsand
0355942740 flush log file 2018-07-30 18:08:34 +00:00
Olof Hagsand
c53f3f2fe3 Added file logging (-l f or -l f<file>) for cases where neither syslog nor stderr is useful\
.
2018-07-30 17:35:45 +00:00
Olof Hagsand
ef9bb742d1 axismap not used 2018-07-30 13:32:45 +00:00
Olof Hagsand
66e232beba moved xpath debug level from 1 to 2 2018-07-30 11:56:48 +00:00
Olof hagsand
e497238b8b restconf dual getopt 2018-07-29 20:54:58 +02:00
Olof hagsand
f9a97c57ca set /www-data access only if sudo 2018-07-29 20:22:20 +02:00
Olof Hagsand
e48f8dd00e clixon_netconf -S is obsolete. Use clixon_netconf -l s instead.
* Unified log handling for all clicon applications using -l e|o|s|f.
  * The options stand for e:stderr, o:stdout, s: syslog, f:file
2018-07-29 19:41:10 +02:00
Olof Hagsand
5164db3603 Added clicon_log_init(.., CLICON_LOG_FILE) option and clicon_log_file() for c\
ases where neither syslog or stderr is useful.
2018-07-26 20:13:02 +02:00
Olof Hagsand
156660419e * Set dir /www-data with www-data as owner, see https://github.com/clicon/clixo\
n/issues/37
2018-07-26 12:54:14 +02:00
Olof Hagsand
968435ec5e internal backend socket family 2018-07-25 12:45:00 +02:00
Olof Hagsand
539a60d613 backend socket options -a -u 2018-07-25 11:40:06 +02:00
Olof hagsand
c6a62b96de sock ipv4 2018-07-24 22:27:52 +02:00
Olof Hagsand
b7eb89962d clixon-sock not mandatory since family may be inet 2018-07-24 18:57:10 +00:00
Olof Hagsand
666d74bf1b Added -l option for clixon_backend for directing syslog to stderr or stdout i\
f running in foreground
2018-07-24 17:59:17 +02:00
Olof Hagsand
f1f0dafcbc Merge branch 'develop' of https://github.com/clicon/clixon into develop 2018-07-24 17:44:37 +02:00
Olof hagsand
c1b790e0a5 freebsd 2018-07-23 21:52:48 +02:00
Olof Hagsand
4daafd1650
Merge pull request #36 from dcornejo/master
Makefile in util directory didn't use LDFLAGS when building binaries
2018-07-23 17:52:55 +02:00
Dave Cornejo
ea4a5ceda1 Makefile in util directory didn't use LDFLAGS when building binaries
This affects installations where the libraries are installed outside
the normal library search paths (e.g. FreeBSD puts ports libraries
in /usr/local/lib by default, which is not on the default lib path)
2018-07-22 14:21:46 -10:00