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 (2025.09) Vanadium MDSAL release brings improved DataObjectModification sealed hierarchy in MDSAL-889 and coerceStep method introduced in MDSAL-892.

They together simplifies user experience when dealing with datastore changes enabling usage of Java enhanced switch and getting rid of nullness warnings for dataBefore()/dataAfter() methods.

New Features

  • Added DataObjectModification#coerceKeyStep in MDSAL-892

Deprecated Features

  • Deprecated DataObjectModification#ModificationType in MDSAL-889

Removed Features

  • Removed deprecated DataObjectModification methods in MDSAL-889

Resolved Issues

The following table lists the issues resolved in this release.

Issues resolved in versions 15.0.0 through 15.0.2 (JIRA)

Type

Key

Summary

Resolution

Fix Version(s)

Bug

MDSAL-891

Bad addressing in AbstractDataObjectModification.getModifiedChildContainer(Class, Class)

Done

14.0.18, 15.0.0

Improvement

MDSAL-892

Add DataObjectModification.coerceKeyStep()

Done

14.0.19, 15.0.1

Improvement

MDSAL-889

Remodel DataObjectModification

Done

15.0.0

New Feature

MDSAL-893

Package mdsal-eos-dom-simple as odl-mdsal-eos-single

Done

14.0.20, 15.0.2

Story

MDSAL-875

Migrate features to template-feature-parent

Done

15.0.2

Task

MDSAL-890

Remove DOMRpcRouter.notification(Publish)Service() methods

Done

15.0.0

Task

MDSAL-888

Remove DOMRpcRouter.{action,rpc}(Provider)Service() methods

Done

15.0.0

Task

MDSAL-887

Remove most InstanceIdentifier-using methods from mdsal-binding-api

Done

15.0.0

Task

MDSAL-886

Split out IETF-defined models into their own repository

Done

15.0.0

Task

MDSAL-885

Remove Clustered(DOM)DataTreeChangeListener

Done

15.0.0

Known Issues

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