YANG Tools

Overview

YANG Tools provides a set of libraries to deal with YANG models and data modeled using them.

Behavior/Feature Changes

YANG parser will no longer take into account extension statements it does not recognize through the appropriate support class. This may affect tools relying on our previous misguided attempts to interpret their meaning.

YANG parser’s memory efficiency has been improved by about 15-20% on service-provider-grade device models.

YANG parser can now be configured to retain information about statement declaration, making it useful for IDEs and similar tools.

New Features

No new features.

Deprecated Features

Code generation plugin APIs for yang-maven-plugin contained in the yang-maven-plugin-spi artifact are deprecated and will be removed in the next major release. Their replacement live in maven-agnostic plugin-generator-api.

Resolved Issues

The following table lists the issues resolved in this release.

Issues resolved in versions 7.0.0 through 7.0.8 (JIRA)

Type

Key

Summary

Resolution

Fix Version(s)

Bug

YANGTOOLS-1312

Refining leaf-list with “default”

Done

6.0.8, 7.0.5

Bug

YANGTOOLS-1309

yang.common.ErrorTag is not Serializable

Done

7.0.5

Bug

YANGTOOLS-1308

Reactor failure with OpenROADM models

Done

7.0.4

Bug

YANGTOOLS-1301

YangError does not report error-tag

Done

6.0.7, 7.0.4

Bug

YANGTOOLS-1300

Codecs report wrong error-type in YangError

Done

6.0.7, 7.0.4

Bug

YANGTOOLS-1293

Do not keep negative cache in SharedEffectiveModelContextFactory

Done

7.0.2

Bug

YANGTOOLS-1292

AbstractEffectiveStatement.indexDataTree() fails to filter non-datatree statements

Done

7.0.2

Bug

YANGTOOLS-1291

{Input,Output}EffectiveStatement should be DataTreeEffectiveStatement

Done

7.0.2

Bug

YANGTOOLS-1289

Add support for parsing Notifications

Done

7.0.2

Bug

YANGTOOLS-1288

NormalizedNodeStreamWriterStack does not work with notifications

Done

7.0.2

Bug

YANGTOOLS-1283

SchemaInferenceStack is cannot handle leafs under choice/case

Done

7.0.1

Bug

YANGTOOLS-1282

SchemaInferenceStack is missing typedef support

Done

7.0.1

Bug

YANGTOOLS-1277

QName translation fails for identity leaf value

Done

5.0.10, 6.0.6, 7.0.0

Bug

YANGTOOLS-1224

Data codecs may mis-enforce String length constraints

Done

5.0.9, 6.0.5, 7.0.0

Bug

YANGTOOLS-1201

Unable to use prefix in augmention when argument inside submodule

Done

4.0.15, 5.0.8, 6.0.2, 7.0.0

Bug

YANGTOOLS-1200

Unable to validate new line separated key-arg nodes

Done

4.0.15, 5.0.8, 6.0.2, 7.0.0

Bug

YANGTOOLS-1192

ModifierImpl leaks post buildEffective()

Done

4.0.15, 5.0.8, 6.0.2, 7.0.0

Bug

YANGTOOLS-1189

Parser does not reject use of mis-matching augment argument

Done

7.0.0

Bug

YANGTOOLS-1180

ListModificationStrategy cannot handle child modifications

Done

6.0.2, 7.0.0

Bug

YANGTOOLS-1127

Fix SchemaContextUtil.findDataSchemaNodeForRelativeXPath()

Duplicate

7.0.0

Improvement

YANGTOOLS-1311

Correctly tag min/max element violations

Done

7.0.5

Improvement

YANGTOOLS-1310

Add malformed-message ErrorTag

Done

7.0.5

Improvement

YANGTOOLS-1306

Correctly tag unique constraint violations

Done

7.0.5

Improvement

YANGTOOLS-1294

Add support yang-ext:mount extension

Done

7.0.3

Improvement

YANGTOOLS-1287

Convert yang-data-codec-binfmt into a JPMS module

Done

7.0.1

Improvement

YANGTOOLS-1286

Convert yang-data-transform to a JPMS module

Done

7.0.1

Improvement

YANGTOOLS-1281

Convert yang-model-export to JPMS

Done

7.0.1

Improvement

YANGTOOLS-1275

Propagate SchemaSourceRepresentation symbolic names

Done

5.0.10, 6.0.6, 7.0.0

Improvement

YANGTOOLS-1266

Convert yang-data-codec-xml into a JPMS module

Done

7.0.0

Improvement

YANGTOOLS-1256

Reconsider InferredStatementContet.childCopyType storage

Done

7.0.8

Improvement

YANGTOOLS-1253

Optimize StatementContextBase layout

Done

7.0.0

Improvement

YANGTOOLS-1252

Improve SharedSchemaContextFactory

Done

7.0.0

Improvement

YANGTOOLS-1251

Clean up {Schema,Data}TreeAwareStatement lookups

Done

7.0.0

Improvement

YANGTOOLS-1233

Maintain a SchemaInferenceStack in SchemaTracker

Done

7.0.0

Improvement

YANGTOOLS-1232

Rework AbstractCodecFactory.codecFor()

Done

7.0.0

Improvement

YANGTOOLS-1231

A SchemaInferenceStack.enterDataTree()

Done

7.0.0

Improvement

YANGTOOLS-1230

Remove SchemaUtils.findParentSchemaNodesOnPath()

Done

7.0.0

Improvement

YANGTOOLS-1229

Rework SchemaContextUtil.getBaseTypeForLeafRef()

Done

7.0.0

Improvement

YANGTOOLS-1228

Remove SchemaNode.getPath() from yang-data-codec-xml

Done

7.0.0

Improvement

YANGTOOLS-1226

Move RFC7950 declared statements to yang-model-ri

Done

7.0.0

Improvement

YANGTOOLS-1225

Move AbstractDeclaredStatement et al. to yang-model-spi

Done

7.0.0

Improvement

YANGTOOLS-1223

Do not retain reused substatements

Done

7.0.0

Improvement

YANGTOOLS-1222

Defer substatement search to effective instace

Done

7.0.0

Improvement

YANGTOOLS-1220

Switch non-existent arguments to Empty instead of Void

Done

7.0.0

Improvement

YANGTOOLS-1218

Do not synchronize in ReactorStmtContext.schemaPath()

Done

5.0.9, 6.0.5, 7.0.0

Improvement

YANGTOOLS-1217

Add QNameAwareData{Input,Output}

Done

7.0.0

Improvement

YANGTOOLS-1216

Require QName instead of SchemaPath for TypeDefinition implementions

Done

7.0.0

Improvement

YANGTOOLS-1215

Make CopyHistory implement CopyableNode

Done

5.0.9, 6.0.5, 7.0.0

Improvement

YANGTOOLS-1209

Track substatement independence in StatementContextBase

Done

7.0.0

Improvement

YANGTOOLS-1208

Migrate users of StatementPolicy.legacyDeclaredCopy()

Done

7.0.0

Known Issues

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

Issues affecting versions 7.0.0 through 7.0.8 (JIRA)

Type

Key

Summary

Status

Affected Version(s)

Fix Version(s)

Bug

YANGTOOLS-1346

IAE in StatementContextBase.childCopyOf()

Resolved

7.0.0, 7.0.8

7.0.9, 8.0.0

Bug

YANGTOOLS-1276

MandatoryLeafEnforcer fails when faced with augmentations

Resolved

5.0.10, 6.0.6, 7.0.1

8.0.0