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 leaf-list YANG statement has been updated to correctly take into account the ordered-by statement. The default, ordered-by system, leaf-lists are now presented as java.util.Set. This matches their semantics in terms of hashCode() and equals() methods. The mapping to java.util.List is maintained for ordered-by user leaf-lists.

The Binding mapping of type decimal64 has been updated to use org.opendaylight.yangtools.yang.common.Decimal64 instead of java.math.BigDecimal. This offers an exact match in value semantics, which were not previously correctly enforced.

The InstanceIdentifier class has been updated to reject attempts to form invalid identifiers, such as using a Notification class as a path argument.

Builder classes generated by the Binding code generator no longer implement org.opendaylight.yangtools.concepts.Builder. While this removes the ability to treat their build() methods in micro-frameworks, it also improves call site visibility, leading to better experience when refactoring code.

The iana-if-type.yang model has been updated to revision 2021-06-21.

The iana-routing-types.yang model has been updated to revision 2021-10-19.

New Features

No new features.

Deprecated Features

No deprecated features.

Removed Features

The model for RFC7223 version of ietf-interfaces.yang has been removed. This model has been obsoleted by the RFC8343 version.

The model for RFC7277 version of ietf-ip.yang has been removed. This model has been superseded by the RFC8344 version.

The model for RFC7895 version of ietf-yang-library.yang and the corresponding support code has been removed. This model has been superseded by the RFC8525 version, which provides sufficient compatibility for OpenDaylight scenarios.

AssertDataObjects utilities have been removed, as they depend on Xtend and a dormant upstream and are not used anywhere in OpenDaylight.

The unused unified-html-generator code generation plugin has been removed. It has never been productized or used in default configuration.

Resolved Issues

The following table lists the issues resolved in this release.

Issues resolved in versions 9.0.0 through 9.0.2 (JIRA)

Type

Key

Summary

Resolution

Fix Version(s)

Bug

MDSAL-738

Template issue compiling org-openroadm-pm-types@2020-03-27 yang model

Done

9.0.2

Bug

MDSAL-739

Fix the comparing wrong QNames

Done

9.0.2

Bug

MDSAL-735

StackOverflowError with bgp-linkstate

Done

9.0.0

Bug

MDSAL-732

Binding generator generates uncompilable code for leafref chain with identityref at the end

Done

8.0.13, 9.0.0

Bug

MDSAL-731

Failure to start Binding/DOM codec

Done

9.0.0

Bug

MDSAL-726

ActionService does not handle KeyedListActions

Done

8.0.13, 9.0.0

Bug

MDSAL-723

ActionProviderService.registerImplementation() does not handle KeyedListActions

Done

8.0.12, 9.0.0

Bug

MDSAL-721

ActionSpec.build() does not handle KeyedListActions

Done

8.0.11, 9.0.0

Bug

MDSAL-718

Augments fail to resolve

Done

8.0.11, 9.0.0

Bug

MDSAL-715

Binding generator fails on resolution of augment whose path contains nodes augmented from another namespace

Done

8.0.8, 9.0.0

Bug

MDSAL-712

Action(Provider)Service translates grouping Action path incorrectly

Done

8.0.8, 9.0.0

Improvement

MDSAL-730

Clean up InstanceIdentifier semantics

Done

9.0.0

Improvement

MDSAL-724

Reject invalid InstanceIdentifiers

Done

9.0.0

Improvement

MDSAL-722

Map system-ordered leaf-lists to java.util.Set

Done

9.0.0

Improvement

MDSAL-719

Take supported features into account

Done

8.0.11, 9.0.0

Improvement

MDSAL-696

Do not use DerivableSchemaNode

Done

9.0.0

Improvement

MDSAL-695

Do not use AugmentationSchemaNode.getOriginalDefinition()

Duplicate

9.0.0

Improvement

MDSAL-690

Do not reference concepts.Builder in builders

Done

9.0.0

New Feature

MDSAL-684

Package RFC8819 Module Tags models

Done

9.0.1

New Feature

MDSAL-494

Add support for listening for and publishing of instance notifications

Done

9.0.2

Story

MDSAL-563

Eliminate use of Xtend in unified-html-generator

Duplicate

9.0.0

Sub-task

MDSAL-565

Convert DocumentationTemplate.xtend to Java

Won’t Do

9.0.0

Sub-task

MDSAL-687

Do not reference SchemaNode.getPath() in mdsal-binding-generator

Duplicate

9.0.0

Sub-task

MDSAL-686

Do not reference SchemaNode.getPath() in BindingRuntimeTypes

Duplicate

9.0.0

Task

MDSAL-729

Always genenerate module DataRoot

Done

9.0.0

Task

MDSAL-720

Do not package rfc7895 ietf-yang-library

Done

9.0.0

Task

MDSAL-717

Remove AssertDataObjects

Done

9.0.0

Task

MDSAL-708

Remove RFC7223 models

Done

9.0.0

Task

MDSAL-707

Upgrade iana-routing-types to 2021-10-19

Done

9.0.0

Task

MDSAL-706

Upgrade iana-if-type to 2021-06-21

Done

9.0.0

Task

MDSAL-705

Remove RFC7277 models

Done

9.0.0

Task

MDSAL-688

Remove unified-html-generator

Done

9.0.0

Task

MDSAL-685

Do not reference SchemaNode.getPath()

Done

9.0.0

Task

MDSAL-676

Package ietf-restconf and ietf-yang-patch in mdsal

Done

9.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.

Issues resolved in versions 9.0.3 through 9.0.4 (JIRA)

Type

Key

Summary

Resolution

Fix Version(s)

Bug

MDSAL-756

PingPongTransactionChain’s cancel() always closes underlying chain

Done

10.0.0, 8.0.14, 9.0.3

Known Issues in SR1

The following table lists the known issues that exist in Service Release 1.