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 most important new feature is implementation of support for RFC 8639 subscribed notifications, including filtering, counters and stop-time features. The next note worthy delivered efforts are migration to Apache Pekko and migration of RESTCONF OpenAPI to Netty.
New Features¶
Deprecated and Removed Features¶
There are no deprecated or removed features.
Resolved Issues¶
The following table lists the issues resolved in this release.
Type |
Key |
Summary |
Resolution |
Fix Version(s) |
|---|---|---|---|---|
Stop SSE stream on subscription termination |
Done |
9.0.0 |
||
Netty RESTCONF endpoint freezes when request handler throws |
Done |
8.0.8, 9.0.0 |
||
Semaphore concurrent RPC limit permit not released after session down in NetconfDeviceCommunicator |
Done |
7.0.12, 8.0.8, 9.0.0 |
||
Deadlock risk with Session Lock & KeepaliveTask Synchronization |
Done |
7.0.12, 8.0.8, 9.0.0 |
||
Unable to update leaf-list data with the merge operation in a YANG-PATCH request |
Done |
7.0.12, 8.0.8, 9.0.0 |
||
Unable to update leaf-list data with PUT request on the device |
Done |
7.0.12, 8.0.8, 9.0.0 |
||
Getting leaf-list data from device fails with a 500 Server Error |
Done |
7.0.12, 8.0.8, 9.0.0 |
||
IETF get-config is failing with rpc-reply transformation error |
Done |
7.0.12, 8.0.8, 9.0.0 |
||
Restconf returns 500 for invalid PUT data |
Done |
8.0.8, 9.0.0 |
||
Restconf return 500 Server Error if YangPatch body is incorrect |
Done |
7.0.12, 8.0.8, 9.0.0 |
||
Call Home Device Connection Failure |
Done |
8.0.4, 9.0.0 |
||
Device attempts to reconnect even if client config throws exception |
Done |
7.0.11, 8.0.4, 9.0.0 |
||
Netconf does not attempt reconnection if initial session is closed |
Done |
7.0.12, 8.0.6, 9.0.0 |
||
Refactor HTTPServerSession pipeline setup |
Done |
9.0.0 |
||
Reconfigured device failed to reconnect with: IllegalStateException: Transaction factory was closed. No further operations allowed. |
Done |
7.0.11, 8.0.4, 9.0.0 |
||
Description of subscription query parameters is wrong |
Done |
7.0.11, 8.0.4, 9.0.0 |
||
HTTP/2 cleartext upgrade flow fails for Java built in HttpClient |
Done |
8.0.4, 9.0.0 |
||
Reconnection failure after deleting and re-adding call-home devices |
Done |
7.0.11, 8.0.4, 9.0.0 |
||
StreamWriterFacade.warnLegacyAttribute() warning on rpc-reply message-id |
Done |
7.0.12, 8.0.6, 9.0.0 |
||
Integrate SubscriptionStateService |
Done |
9.0.0 |
||
Refactor SubscriptionStateMachine |
Done |
9.0.0 |
||
Remove transaction to update mountpoint to connecting state before device removal |
Done |
7.0.12, 8.0.4, 9.0.0 |
||
Offload transport-http request processing |
Done |
8.0.4, 9.0.0 |
||
Add transport.http.AcceptHeader and its parser |
Cannot Reproduce |
8.0.4, 9.0.0 |
||
Require properly-parameterized TransportChannelListener |
Done |
9.0.0 |
||
OpenAPI: improve parameters validation |
Done |
8.0.1, 9.0.0 |
||
Migrate to Apache Pekko |
Done |
9.0.0 |
||
Expose support for TCP MD5 Signature option from NettyTransportSupport |
Done |
9.0.0 |
||
Add filtering to notification subscriptions |
Done |
9.0.0 |
||
Expose NETCONF event stream for RESTCONF subscriptions |
Done |
9.0.0 |
||
Add support for RFC 8639 notification subscriptions |
Done |
9.0.0 |
||
Implement stop-time |
Done |
9.0.0 |
||
Refactor ReceiverHolder into RestconfStream class |
Won’t Do |
9.0.0 |
||
Get stream info for subscription |
Done |
9.0.0 |
||
Enable subscription filtering tests |
Done |
9.0.0 |
||
Apply counting of excluded notifications |
Won’t Do |
9.0.0 |
||
Refactor subscription state service |
Done |
9.0.0 |
||
Populate subtree filters using DTCL |
Done |
9.0.0 |
||
Implement (databind) SubtreeMatcher |
Done |
9.0.0 |
||
Implement (databind) SubtreeFilterWriter |
Done |
9.0.0 |
||
Implement (databind) SubtreeFilterReader |
Done |
9.0.0 |
||
Implement counters |
Done |
9.0.0 |
||
Add netconf.databind.subtree.SubtreeFilter |
Done |
9.0.0 |
||
Add netconf.api.subtree.SubtreeFilter |
Done |
9.0.0 |
||
Test NETCONF stream is updated when model context changes |
Duplicate |
9.0.0 |
||
Create integration test for writing filter into config |
Done |
9.0.0 |
||
Improve stream existence check with subscribed stream registry |
Done |
9.0.0 |
||
Provide Java based tests for OpenApi over Netty |
Done |
9.0.0 |
||
Migrate restconf-openapi to Netty |
Done |
9.0.0 |
||
OpenAPI: add metadata endpoint |
Done |
8.0.2, 9.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) |
|---|---|---|---|---|---|
Received data order from GET request is not preserved |
Resolved |
7.0.11, 8.0.7, 9.0.0 |
10.0.0, 7.0.12, 8.0.8, 9.0.1 |
||
Netty doesn’t return error on non-existing mountpoint |
Confirmed |
8.0.7, 9.0.0 |
10.0.0, 8.0.9, 9.0.1 |
||
Stop-time is not removed from datastore during modifySubscription |
Confirmed |
9.0.0 |
10.0.0 |