NETCONF¶
Overview¶
The NETCONF projects hosts multiple components relating to IETF’s NETCONF Working Group:
Northbound and southbound plugins for NETCONF protocol, as described in RFC-6241
Northbound plugin for RESTCONF protocol, as described in RFC-8040
Northnound plugin for descring RESTCONF endpoint in terms of OpenAPI 3.0
Behavior/Feature Changes¶
The transport layer of the NETCONF protocol implementation has been completely refactored. This effort has all but unified the ‘normal’ and ‘call-home’ mode of operation. This results in a more maintaintanable codebase with much easier feature parity between the two modes.
RESTCONF implementation has been been refactored to a large extent, taking advantage of JAX-RS asynchronous requests, so that operations on the datastore and NETCONF devices no longer pin the HTTP thread.
The OpenAPI component has been completely modernized. It is now based on Swagger UI vesion 5.13.0 and is memory usage has been brought under control.
New Features¶
No new features.
Deprecated and Removed Features¶
The odl-yanglib
experimental feature has been removed.
Resolved Issues¶
The following table lists the issues resolved in this release.
Type |
Key |
Summary |
Resolution |
Fix Version(s) |
---|---|---|---|---|
Stream URLs constructed are incorrect for Netty endpoint |
Done |
8.0.2 |
||
OpenAPI: Fails to generate example for List with min-elements and leafref type child |
Done |
7.0.10, 8.0.2 |
||
Parser error in the TransportPCE openapi documentation (swagger) |
Done |
7.0.10, 8.0.2 |
||
Encapsulate netconf-node state |
Done |
8.0.2 |
||
RESTCONF server does not adverize “defaults” capability |
Done |
6.0.9, 7.0.10, 8.0.2 |
||
Notifications not available with ODL-based NETCONF server |
Done |
7.0.9, 8.0.1 |
||
NETCONF server does not advertise :interleave capability |
Done |
6.0.9, 7.0.9, 8.0.1 |
||
MessageBodyWriter not found for YangErrorsBody |
Done |
8.0.1 |
||
MessageBodyWriter is not found for YANG Patch reply causing HTTP 500 Error |
Done |
7.0.8, 8.0.1 |
||
Netty SSE implementation is not consistent with JAXRS one |
Done |
8.0.1 |
||
RESTCONF server does not list :yang-patch capability |
Done |
6.0.9, 7.0.10, 8.0.2 |
||
Insert of top-level node via restconf returns internal server error (500) |
Done |
8.0.1 |
||
restconf-server-jaxrs endpoint returns 500 error for host-meta requests |
Done |
6.0.9, 7.0.8, 8.0.1 |
||
Missing default restconf NB config file |
Done |
6.0.9, 7.0.8, 8.0.0 |
||
Random failures of transport-ssh tests |
Done |
6.0.9, 7.0.8, 8.0.0 |
||
NetconfDeviceCommunicator does not release semaphore after disconnection |
Done |
6.0.9, 7.0.8, 8.0.0 |
||
Intermittent failure to emit RESTCONF body |
Done |
7.0.7, 8.0.0 |
||
Accumulating KeepaliveTask executions |
Done |
6.0.9, 7.0.8, 8.0.0 |
||
Openapi: Missing schema for node processed by another parent |
Done |
7.0.8, 8.0.0 |
||
Accumulating “Keepalive RPC failed with error” |
Done |
6.0.9, 7.0.8, 8.0.0 |
||
sal-remote create-notification-stream is not working |
Done |
7.0.10, 8.0.2 |
||
NPE on topology PUT device without credentials |
Done |
8.0.0 |
||
RESTCONF OPTIONS on /data does not produce Accept-Patch |
Done |
7.0.10, 8.0.2 |
||
OpenApi missing POST request to device root |
Done |
7.0.8, 8.0.0 |
||
Mounting a device does not work when multiple TLS Certificates are present |
Done |
8.0.0 |
||
Refactor restconf-nb wiring |
Done |
8.0.0 |
||
Do not restart YangLibraryWriterSingleton on URL provider change |
Done |
7.0.8, 8.0.0 |
||
OpenAPI: improve parameters validation |
Done |
8.0.1, 9.0.0 |
||
Clean UncancellableFuture class |
Done |
8.0.0 |
||
Update netconf-keystore model for unified storage of encoded keys and certificates |
Done |
8.0.0 |
||
Turn RestconfStrategy into interface |
Done |
8.0.0 |
||
Simplify ensureParentsByMerge |
Done |
8.0.0 |
||
OpenAPI: Improve control over width/depth from UI |
Done |
8.0.0 |
||
OpenAPI: Improve anydata example |
Done |
7.0.8, 8.0.0 |
||
Remove device from operational topology on failure |
Done |
6.0.9, 7.0.8, 8.0.0 |
||
Openapi: Add ability to limit string example length |
Done |
6.0.8, 7.0.7, 8.0.0 |
||
Unify certificates payload for keystore RPCs |
Done |
8.0.0 |
||
Eliminate ensureParentsByMerge logic for NETCONF devices |
Done |
7.0.8, 8.0.0 |
||
OpenAPI: Create SchemasEntity class to simplify SchemasStream |
Done |
7.0.8, 8.0.0 |
||
Document RemoteDeviceCommunicator#sendRequest method |
Done |
8.0.0 |
||
Make connection timeout and keep-alive configurable for Call-Home services |
Done |
8.0.0 |
||
Refactor RESTCONF server error reporting |
Done |
8.0.0 |
||
Define a netconf-api capability model |
Done |
8.0.0 |
||
No documentation of Netconf over TLS |
Done |
7.0.9, 8.0.0 |
||
Provide SSE support for HTTP transport |
Done |
8.0.0 |
||
OpenAPI: limit document size with depth/width parameters |
Done |
8.0.0 |
||
Provide RESTCONF over a dedicated Netty-based endpoint |
Done |
8.0.1 |
||
Support external Auth service integration for HTTP Transport |
Done |
8.0.0 |
||
Adapt user guide for netconf-node state encapsulation |
Done |
8.0.2 |
||
Update netconf user guide to Netty based endpoint settings |
Done |
8.0.1 |
Known Issues¶
The following table lists the known issues that exist in this release.
Type |
Key |
Summary |
Status |
Affected Version(s) |
Fix Version(s) |
---|---|---|---|---|---|
Encoded slash %2F in URI is not parsed properly by RESTCONF Netty endpoint |
Resolved |
8.0.1, 8.0.2 |
8.0.3 |
||
Java heap space in TransportPCE openapi documentation (swagger) after the logging step |
Resolved |
7.0.10, 8.0.2 |
7.0.11, 8.0.3 |
||
WWW-Authenticate header is not returned with 401 Unauthorized response by Netty based HTTP server |
Resolved |
8.0.1 |
8.0.3 |
||
transport-http leaks ByteBuf |
Confirmed |
8.0.1 |
8.0.3 |
||
Testtool self-registration request rejected by Netty based RESTCONF server |
Resolved |
8.0.1 |
8.0.3 |
||
CallHomeSshServerTest is unstable |
Confirmed |
8.0.0 |
8.0.3, 9.0.0 |
||
OpenApi: Add response body example for ROOT operations GET |
In Progress |
7.0.10, 8.0.2 |
7.0.11, 8.0.3 |
||
OpenApi: Add response body example for ROOT data GET |
In Progress |
7.0.10, 8.0.2 |
7.0.11, 8.0.3 |
||
Request timeout is too long for NETCONF keepalive |
Open |
5.0.9, 6.0.8, 7.0.5, 8.0.0 |
Carbon SR3, Nitrogen SR1, Oxygen, Oxygen SR2, Oxygen SR3 |