Report Issue

MD-SAL

Documentation

Security Considerations

  • Do you have any external interfaces other than RESTCONF?
    • No
  • Other security issues?
    • No

Quality Assurance

Migration

  • Is it possible to migrate from the previous release? If so, how?
    • Yes, no specific steps outside of API adjustments are needed.

Compatibility

  • Is this release compatible with the previous release?
    • This release breaks both run-time and compile-time compatibility of generated Java code. Code generated with Fluorine codegen will not load in previous releases and code generated using previous releases of codegen will not load in Fluorine.
  • Any API changes?
    • Code generated with this release is API-incompatible with code generated by previous releases and requires some mechanic adjustment of users.
    • Both DOM and Binding APIs have stopped using CheckedFuture in favor of either ListenableFuture and FluentFuture, making it easier for asynchronous users to create processing pipelines.
    • RFC6021 versions of ietf-inet-types and ietf-yang-types have been removed
  • Any configuration changes?
    • No

Issues Fixed

  • New feature * MDSAL-283 Action support in MDSAL DOM
  • Epic * MDSAL-229 mdsal-dom-api: get rid of CheckedFuture
  • Improvement * MDSAL-2 Naming conflict appears when key of list is constructed from leaf with name key * MDSAL-45 InstanceIdentifier does not properly capture choice-case child relationship * MDSAL-244 @SuppressWarnings(“all”) on all generated code * MDSAL-312 Split BindingGeneratorImpl into two classes * MDSAL-313 Differentiate between declared (XSD) and enforcement (java.util.regex) patterns * MDSAL-317 Generated enumerations should be implementing a yang-binding Enumeration interface * MDSAL-325 Modernize YangModuleInfo * MDSAL-326 Binding V1 maps identities to java.lang.Class * MDSAL-327 Imports for nested generated classes do no work * MDSAL-337 WriteTransaction.submit() should return FluentFuture<? extends CommitInfo> * MDSAL-339 Improve QNAME static field * MDSAL-340 Use Wildcard under ClusterSingletonService * MDSAL-342 DataObjectModification not able find child via getModifiedChildContainer * MDSAL-353 mdsal-binding-dom-adapter should proxy DOM services automatically * MDSAL-363 Eliminate odl-mdsal-models feature
  • Task * MDSAL-228 Milestone: provide alternative APIs without CheckedFuture * MDSAL-318 Update identifier mapping for Java 9 * MDSAL-338 Remove RFC6021 models
  • Bug * MDSAL-130 Java Binding: improve union type implementation * MDSAL-194 exception while configuring bgp peer (boron and carbon) * MDSAL-220 Incorporate ietf-routing with Java binding v1 * MDSAL-253 BindingToNormalizedNodeCodec fails to deserialize union of leafrefs * MDSAL-300 Binding V1 fails when action input is augmented * MDSAL-304 Binding V2 maps identities to java.lang.Class * MDSAL-309 V1 codegen generates enum constants that are not valid Java identifiers * MDSAL-314 Binding DTO pattern enforcement does not honor ‘modifier invert-match’ * MDSAL-320 Binding V1 fails to generate code for nested enumeration/union construct * MDSAL-321 Binding V1 generates incorrect code for nested classes * MDSAL-323 Wrong local variable naming used for setter on generated builder * MDSAL-324 Binding V1 fails to generate for nested unions with numbered leaves * MDSAL-328 ClassCastException when accessing augmentations * MDSAL-332 Class name conflict if identity and grouping share the same name in one package * MDSAL-335 Pattern restrictions ignored for derived types * MDSAL-344 YangModuleInfo fails when faced with no revisions * MDSAL-345 Augmentation targeting root choice fails * MDSAL-346 BindingReflections.getModelRootPackageName() fails when module has no revision * MDSAL-348 enumerated type with enum value ‘optional’ is not compilable * MDSAL-349 Codegen fails when there is an Override class present * MDSAL-351 Subclassed type wrappers fail to check restrictions * MDSAL-352 leafref to leaf of type enum in grouping causes codegen failure * MDSAL-359 Exception in SystemReadyService followed by system instability * MDSAL-360 Union type fails to check its constituent types * MDSAL-362 Thread deadlock between mdsal and bgpcep when running Controller Clustering CSIT job * MDSAL-364 Generate unions generate getValue() * MDSAL-365 Codegen fails when a grouping contains an enumeration leaf

Known Issues

  • List key known issues with workarounds
    • None

End-of-life

  • List of features/APIs which are EOLed, deprecated, and/or removed in this release
    • odl-mdsal-models feature has been removed and instead following fine-grained features are provided: * odl-mdsal-model-draft-bierman-netconf-restconf-02 * odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01 * odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal * odl-mdsal-model-draft-ietf-lisp-lcaf-10 * odl-mdsal-model-draft-ietf-netmod-acl-model-07 * odl-mdsal-model-draft-ietf-netmod-iana-afn-safi-00 * odl-mdsal-model-odl-l2-types * odl-mdsal-model-rfc6991 * odl-mdsal-model-rfc7223 * odl-mdsal-model-rfc7224 * odl-mdsal-model-rfc7277 * odl-mdsal-model-rfc7895 * odl-mdsal-model-rfc7952 * odl-mdsal-model-rfc8294 * odl-mdsal-model-rfc8342 * odl-mdsal-model-rfc8343 * odl-mdsal-model-rfc8344 * odl-mdsal-model-rfc8345 * odl-mdsal-model-rfc8345-non-nmda * odl-mdsal-model-rfc8348 * odl-mdsal-model-rfc8348-non-nmda * odl-mdsal-model-rfc8349

Standards

  • List of standrads implemented and to what extent
    • The following YANG models are provided for application use * RFC6991 * RFC7223 * RFC7224 * RFC7277 * RFC7895 * RFC7952 * RFC8294 * RFC8342 * RFC8343 * RFC8344 * RFC8345 * RFC8348 * RFC8349

Release Mechanics