Old RESTCONF northbound scheduled for removal

Robert Varga

Hello everyone,

as you might be aware, OpenDaylight ships two versions of RESTCONF northbound.

The first is the all-familiar implementation of draft-bierman-netconf-restconf-02, available at localhost:8181/restconf.

The second is the implementation of RFC8040, available at localhost:8181/rests.

TL;DR of this email is that we plan to completely remove the first implementation in our 2022.09 Chlorine release. If it is a problem for you, please speak out now.

There are multiple reasons driving this decision:

1. The old interface does not (and cannot) support YANG 1.1 action statements, i.e. there is no way to invoke them.

2. RFC8040 implementation is considered now considered a fully-maintained and production-ready equivalent.

3. The implementation is effectively frozen, receiving only minimal updates required for it to remain working in face of upstream API changes.

4. Bringing the implementation into a shape which is maintainable in the long term requires a large-scale refactor with the associated risk of introducing regressions.

5. The implementation is the only user of a number of pieces of upstream code, preventing that code from being removed.

The tracker issue for the removal is https://jira.opendaylight.org/browse/NETCONF-837 and the plan of action is as follows:

1. Phosphorus SR2, due out 2022-01-27, will issue a single (mild) warning on startup. We will continue to install the implementation as part of the 'odl-restconf' feature.

2. 2022.03 Sulfur, due out 2022-03-17, will not install the old implementation by default. Users will be required to explicitly install the 'odl-restconf-nb-bierman02' feature. The warning introduced in step 1. will be updated to warn about the fact the feature is no longer supported and scheduled for removal in the next major release.

3. Old implementation will be removed from the netconf git repository's master branch as soon as the 3.0.x stability branch for Sulfur is created -- i.e. March/April 2022.

4. 2022.09 Chlorine, due out in September 2022, will not include the old implementation.

Unless serious objections to this are raised by 2022-01-10 we will execute it exactly as outlined above.