[YANGTOOLS-830] Allow extensions to bind to multiple revisions Created: 11/Nov/17  Updated: 08/Jun/19

Status: Confirmed
Project: yangtools
Component/s: parser
Affects Version/s: None
Fix Version/s: None

Type: New Feature Priority: Medium
Reporter: Robert Varga Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Blocks
blocks YANGTOOLS-403 Add support for tailf:action Confirmed

 Description   

Upstreams like IETF and OpenConfig a revising their models, which means the same extension can appear with multiple revisions.

While we can specify the extension support to be bound to no revision, this is not accurate and does not completely cover the range of possibilities allowed for RFC7950 – a model does not have to specify a revision initially and may specify revision later. In this context a non-present revision means that the extension should be binding to non-revisioned model only.

To properly support this use case, StatementDefinition needs to express whether statementName() is specifying exact revision, any wildcard, or a range of revisions.

Range of revisions is required to support the case where a semantic change occurs in the model and there are multiple revision cover one semantic. An example is: what would happen if openconfig-extensions.yang defined openconfig-encrypted-value in two revisions before switching to openconfig-hashed-value?



 Comments   
Comment by Robert Varga [ 17/Oct/18 ]

This actually needs a StatementSupport extension, i.e. a statement has a StatementDefinition, which is its unique semantic identifier. StatementSupports bind to declared and produce a semantic identifier – hence StatementSupport implementation needs to specify to what QNames it binds.

Generated at Wed Feb 07 20:54:26 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.