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) |
---|---|---|---|---|
RestconfDocumentedExceptionMapper unable to map exceptions from mounted devices when path points to a module not in the global SchemaContext |
Duplicate |
7.0.0 |
||
RESTCONF mis-represents the root namespace |
Done |
7.0.0 |
||
Union type has wrong type |
Done |
6.0.5, 7.0.0 |
||
OpenApi: POST examples are incorrect |
Done |
4.0.9, 5.0.8, 6.0.2, 6.0.3, 7.0.0 |
||
SSE with sub identifier does not work |
Done |
5.0.8, 6.0.3, 7.0.0 |
||
Remove synchronization locking |
Done |
4.0.9, 5.0.9, 6.0.5, 7.0.0 |
||
transport-tcp transport does not work with plain NioSocketChannel |
Done |
6.0.1, 7.0.0 |
||
OpenAPI: Do not hardcode action path |
Done |
4.0.9, 5.0.8, 6.0.2, 7.0.0 |
||
Cannot generate API docs for Junos device |
Done |
7.0.0 |
||
NPE on topology create-device without credentials |
Done |
5.0.10, 6.0.6, 7.0.0 |
||
Update user-guide for for login-password removal |
Done |
7.0.0 |
||
Netconf device stays connected even when unavailable |
Done |
7.0.0 |
||
Adapt netconf testtool for login-password removal |
Done |
7.0.0 |
||
Invalid NETCONF message triggers unnecessary parsing of partial message |
Done |
4.0.9, 5.0.10, 6.0.5, 7.0.0 |
||
Duplicate ‘ignore-missing-schema-sources’ in the NETCONF node |
Done |
5.0.10, 6.0.6, 7.0.0 |
||
PUT request with insert=after cannot add last item into list |
Done |
5.0.10, 6.0.7, 7.0.2 |
||
OpenApi Remove processModule method from DefinitionGenerator |
Done |
4.0.9, 5.0.10, 6.0.5, 7.0.0 |
||
NetconfDeviceMount “Already initialized” error |
Done |
4.0.9, 5.0.10, 6.0.5, 7.0.0 |
||
OpenApi ignore min-elements conditions for list |
Done |
7.0.0 |
||
OpenAPI Generates Incorrect ‘min-elements’ for XML Leaf-List |
Done |
4.0.9, 5.0.10, 6.0.5, 7.0.0 |
||
netconf-client-mdsal emits useless namespace in filter |
Done |
5.0.8, 6.0.5, 7.0.0 |
||
OpenApi List show only string type for path parameters |
Done |
4.0.9, 5.0.10, 6.0.5, 7.0.0 |
||
OpenAPI generate multiple resources/subresources in POST request |
Done |
4.0.9, 5.0.10, 6.0.5, 7.0.0 |
||
OpenAPI POST request generates incorrect XML example payload |
Done |
4.0.9, 5.0.10, 6.0.5, 7.0.0 |
||
Create tests for POST “insert” query parameter |
Done |
7.0.0 |
||
RestconfSchemaService return 500 if model was not found |
Done |
4.0.9, 5.0.9, 6.0.5, 7.0.0 |
||
Unnecessary data change events for child-nodes-only |
Done |
6.0.4, 7.0.0 |
||
RESTCONF DataTreeChange notifications use incorrect format |
Done |
7.0.0 |
||
Incorrect subscription request URL |
Done |
6.0.3, 7.0.0 |
||
(devices) POST returns 500 on data already exists |
Done |
5.0.10, 6.0.6, 7.0.0 |
||
netconf-testtool not building when GID too big |
Done |
7.0.0 |
||
Incorrect response for failed PATCH request |
Done |
4.0.9, 5.0.10, 6.0.5, 7.0.0 |
||
OpenApi: Remove incorrect list POST requests |
Done |
4.0.9, 5.0.10, 6.0.5, 7.0.0 |
||
changed-leaf-nodes-only capability is not advertized |
Done |
7.0.0 |
||
NETCONF connection status behavior change |
Done |
6.0.1, 7.0.0 |
||
Fail to process PATCH with target containing a single forward slash |
Done |
5.0.8, 6.0.2, 7.0.0 |
||
OpenApi: Missing “all” content parameter value |
Done |
4.0.9, 5.0.8, 6.0.2, 7.0.0 |
||
Swagger document for a specific module in a specific mounted device not showing the name of the device |
Done |
4.0.9, 5.0.8, 6.0.2, 7.0.0 |
||
OpenApi returns 400 error after PUT request on toaster data |
Done |
4.0.9, 5.0.8, 6.0.2, 7.0.0 |
||
Unable to write unkeyed list with RESTCONF PUT request |
Won’t Do |
7.0.0 |
||
OpenApi: Remove paths which provide only operational data |
Done |
7.0.0 |
||
OpenApi: Broken parameters logic |
Done |
6.0.1, 7.0.0 |
||
ietf-yang-library:modules-state not available |
Done |
7.0.3 |
||
Cannot instantiate on RpcEffectiveStatementImpl… |
Done |
7.0.1 |
||
OpenAPI: Wrong path reference for netopeer2 models |
Done |
7.0.2 |
||
OpenAPI: netopeer2 duplicated mapping key |
Done |
7.0.2 |
||
OpenAPI: Iterate over models in SchemasStream |
Done |
7.0.0 |
||
OpenAPI: Iterate over models in PathsStream |
Done |
7.0.0 |
||
No implementation of subscribe-device-notification available |
Done |
7.0.2 |
||
Blocking call during NetconfDeviceSchemas acquisition |
Done |
7.0.0 |
Known Issues¶
The following table lists the known issues that exist in this release.
Type |
Key |
Summary |
Status |
Affected Version(s) |
Fix Version(s) |
---|---|---|---|---|---|
NPE on GET rests/operations |
Resolved |
7.0.3, 7.0.4 |
7.0.5 |
||
Error 500 on Notification Stream Access for Netconf Device Subscriptions |
Resolved |
7.0.0, 7.0.1, 7.0.2, 7.0.3, 7.0.4 |
7.0.5 |
||
Test Tool Fails Intermittently to Send Required Netconf Replies |
Resolved |
7.0.0 |
7.0.5 |
||
Capabilities created for yang models without revision are unavailable |
Resolved |
7.0.0, 7.0.1, 7.0.2, 7.0.3, 7.0.4 |
7.0.5 |
||
OpenAPI: Generate document for module without revision |
Resolved |
7.0.1, 7.0.2, 7.0.3, 7.0.4 |
7.0.5 |
||
Initial device connection fails due to unstable network conditions on device |
Resolved |
7.0.0 |
7.0.5 |
||
The tapi-topology’s RPCs outputs are missing |
Resolved |
6.0.7, 7.0.4 |
7.0.5 |
||
openapi / swagger does not work for TransportPCE with controller resources |
Resolved |
7.0.3 |
7.0.5 |
||
OpenAPI: not used “duplicated” schema |
Resolved |
7.0.3 |
7.0.5 |
||
sal-remote create-notification-stream is not working |
Open |
7.0.4 |
7.0.8 |