Model-Driven Service Abstraction Layer (MD-SAL)¶
Overview¶
MD-SAL provides infrastructure for binding YANG models to Java object model and infrastructure for providing YANG-defined interaction patterns: * Reactive datastore update * RPC and Action invocation * Notification sourcing and delivery
Behavior/Feature Changes¶
The Binding mapping of type bits
YANG statement has been updated to use a dedicated common
superinterface, BitsTypeObject
. Furthermore individual bits within these classes are now represented
as primitive boolean
values rather than nullable Boolean
objects.
New Features¶
Both DOMRpcProviderService
and RpcProviderService
have gained the ability to register single-type
and flexible multi-type RPC implementations. RpcConsumerRegistry
have gained the ability to access single-RPC
handles. These capabilities are based on new codegen feature, which generates @FunctionalInterface
interfaces
for each individual rpc
, similar to how action
statements are processed.
Binding code generator now recognizes RFC8040 rc:yang-data
extensions and generates corresponding interfaces.
Deprecated Features¶
NotificationService.registerNotificationListener()
method has been deprecated, along with its Binding
specification interfaces based on NotificationListener
. These will be removed in a future major release.
RpcProviderService.registerRpcImplementation()
methods, RpcConsumerRegistry.getRpcService()
methods and
Binding specification interfaces based on RpcService
have been deprecated. These will be removed in a future
major release.
Removed Features¶
No removed features.
Resolved Issues¶
The following table lists the issues resolved in this release.
Type |
Key |
Summary |
Resolution |
Fix Version(s) |
---|---|---|---|---|
AbstractPingPongTransactionChain is not idempotent |
Done |
10.0.9, 11.0.13, 12.0.2 |
||
WriteTransaction.mergeParentStructure{Merge,Put} does not work with augmentation InstanceIdentifier |
Done |
12.0.1 |
||
Runtime types fail with leafref typedef and disabled features |
Done |
11.0.12, 12.0.0 |
||
Fix mdsal-binding-dom-codec module definition |
Done |
11.0.12, 12.0.0 |
||
Runtime types fail to be generated for ietf-keystore |
Done |
10.0.8, 11.0.10, 12.0.0 |
||
DOMDataTreeCommitCohort does not expose EffectiveModelContext |
Done |
11.0.8, 12.0.0 |
||
Wildcard KeyedInstanceIdentifier cannot be constructed |
Done |
10.0.7, 11.0.8, 12.0.0 |
||
Remove AbstractIetf(Inet,Yang)Util |
Done |
12.0.0 |
||
Annotate generated serialVersionUID with @java.io.Serial |
Done |
10.0.7, 11.0.8, 12.0.0 |
||
InstanceIdentifierBuilder should be variadic to KeyedInstanceIdentifier |
Done |
12.0.0 |
||
mdsal-dom-schema-osgi needs to propagate YangFeatureProviders |
Done |
11.0.10, 12.0.0 |
||
ModuleInfoSnapshot{Builder,Resolver} should propagate supported features |
Done |
11.0.9, 12.0.0 |
||
Add Automatic-Module-Name declarations to packaged models |
Done |
12.0.0 |
||
Convert mdsal-eos-binding-adapter to a JPMS module |
Done |
12.0.0 |
||
Convert mdsal-binding-dom-adapter to a JPMS module |
Done |
12.0.0 |
||
Convert mdsal-dom-broker to a JPMS module |
Done |
12.0.0 |
||
Convert mdsal-dom-schema-osgi to a JPMS module |
Done |
12.0.0 |
||
Add DataBroker.registerListener(DataTreeIdentifier,DataListener) |
Done |
12.0.0 |
||
Do not use BindingReflections.getQName |
Done |
12.0.0 |
||
Rehost BindingReflections.getModuleInfo() to BindingRuntimeHelpers |
Done |
12.0.0 |
||
Rename yang.binding.{Identifiable,Identifier} |
Done |
12.0.0 |
||
Remove convience model artifacts |
Done |
12.0.0 |
||
Update mdsal-binding-dom-{codec,adapter} to deal with AugmentationNode being removed |
Done |
12.0.0 |
||
Rehost BindingMapping |
Done |
12.0.0 |
||
Remove binding.spec.util package |
Done |
12.0.0 |
Known Issues¶
The following table lists the known issues that exist in this release.
Resolved Issues in SR1¶
The following table lists the issues resolved in Service Release 1.
Type |
Key |
Summary |
Resolution |
Fix Version(s) |
---|---|---|---|---|
Documentation of how models are registered with OSGI |
Done |
12.0.3 |
||
Fix links in README |
Done |
12.0.3 |
Known Issues in SR1¶
The following table lists the known issues that exist in Service Release 1.
Resolved Issues in SR2¶
The following table lists the issues resolved in Service Release 2.
Type |
Key |
Summary |
Resolution |
Fix Version(s) |
---|---|---|---|---|
Define serialization proxies for (DOM)DataTreeIdentifier |
Done |
11.0.16, 12.0.4, 13.0.0 |
Known Issues in SR2¶
The following table lists the known issues that exist in Service Release 2.
Type |
Key |
Summary |
Status |
Affected Version(s) |
Fix Version(s) |
---|---|---|---|---|---|
IAE during dynamic proxy instantiation |
Resolved |
10.0.9, 11.0.15, 12.0.4, 13.0.0 |
11.0.16, 12.0.5, 13.0.0 |