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

Java Binding generator core has been rewritten from scratch. This has been coming for a long time and was finally forced by YANG Tools performance requirements. The implementation now performs a better-informed analysis of the required mapping, eliminating a large class of issues and allows us to solve some long-standing failures with strange models encountered in the wild.

Java Bindings generated by this release break compatibility by not generating legacy bridge methods generated by previous releases shipping in Aluminium and Magnesium.

New Features

Netty Replication feature has been promoted to full production status. It is now available as odl-mdsal-replicate-netty.

Deprecated Features

The ability to perform atomic operations on multiple datastores is terminally deprecated and will be removed in the next major release.

Removed Features

Internal APIs and implementations pertaining to DOMDataTreeShard, DataTreeProducer and DataTreeConsumer have been removed. Functionality offered by these is not currently covered by any construct, but we expect to deliver replacements in near future.

Resolved Issues

The following table lists the issues resolved in this release.

Issues resolved in versions 8.0.0 through 8.0.5 (JIRA)

Type

Key

Summary

Resolution

Fix Version(s)

Bug

MDSAL-682

Netty replication source fails to shutdown

Done

7.0.10, 8.0.2

Bug

MDSAL-681

DOMActionProviderService does not support fallback routing

Done

6.0.11, 7.0.10, 8.0.2

Bug

MDSAL-679

ActionProviderService is not registering action into DOMRpcRouter

Done

6.0.11, 7.0.9, 8.0.2

Bug

MDSAL-677

ietf-topology contains invalid leafrefs

Done

6.0.11, 7.0.9, 8.0.1

Bug

MDSAL-668

Issue serializing object type defined by a leafref

Done

7.0.8, 8.0.0

Bug

MDSAL-664

Binding codegen generates invalid enforcer for String/length

Done

6.0.11, 7.0.8, 8.0.0

Bug

MDSAL-663

Wrong included submodule resource name

Done

7.0.8, 8.0.0

Bug

MDSAL-662

replicate-netty fails to start up

Done

7.0.7, 8.0.0

Bug

MDSAL-661

Generated enforcers fail to intepret length restriction

Done

5.0.17, 6.0.9, 7.0.6, 8.0.0

Improvement

MDSAL-672

Cleanup dependency declarations

Done

8.0.0

Improvement

MDSAL-665

Document yang-ext:mount extension

Done

8.0.0

Improvement

MDSAL-649

Import type names where possible

Done

8.0.0

Improvement

MDSAL-602

Add non-null getters for leaf objects

Done

8.0.0

Task

MDSAL-674

DOMDataTreeChangeListener.onInitialData() should be non-default

Done

8.0.0

Task

MDSAL-671

Promote odl-mdsal-exp-replicate-netty

Done

8.0.0

Task

MDSAL-666

Reserve class namespace for RPC definitions

Done

8.0.0

Task

MDSAL-660

Remove Producer/Consumer APIs

Done

8.0.0

Task

MDSAL-659

Remove compatibility boolean getters

Done

8.0.0

Task

MDSAL-540

Remove compatibility Builder.setFoo(List<Foo>)

Done

8.0.0

Task

MDSAL-490

Remove compatibility setters/contructors for Uint types

Done

8.0.0

Task

MDSAL-232

Migrate codegen plugins to FileGenerator APIs

Done

8.0.0

Known Issues

The following table lists the known issues that exist in this release.

Issues affecting versions 8.0.0 through 8.0.5 (JIRA)

Type

Key

Summary

Status

Affected Version(s)

Fix Version(s)

Bug

MDSAL-694

VerifyException thrown when resolving leafrefs with TAPI models

Resolved

8.0.0, 8.0.5

8.0.6

Bug

MDSAL-689

Multiple issues during global context update

Resolved

6.0.0, 6.0.11, 7.0.0, 7.0.9, 8.0.0, 8.0.5

6.0.12, 7.0.10, 8.0.6

Bug

MDSAL-678

Incorrect @NonNull with binary requireFoo()

Resolved

7.0.9, 8.0.0

7.0.10, 8.0.6