-
Bug
-
Resolution: Duplicate
-
Medium
-
None
-
3.0.4
-
None
In bgpcep project, trying to write data to application-rib results in data incorrectly getting rejected. Steps are as below:
- Bring up controller and feature:install odl-bgpcep-bgp
- PUT below payload to http://controller-ip:restconf-port/restconf/config/bgp-rib:application-rib/127.0.0.1
{ "application-rib": [ { "id": "127.0.0.1", "tables": [ { "afi": "bgp-linkstate:linkstate-address-family", "safi": "bgp-linkstate:linkstate-subsequent-address-family", "bgp-linkstate:linkstate-routes": { "linkstate-route": [ { "path-id": 0, "route-key": "[0, 3, 0, 48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 26, 2, 0, 0, 4, 0, 0, 0, 100, 2, 1, 0, 4, 0, 0, 0, 0, 2, 3, 0, 6, 0, 1, 0, 0, 0, 5, 1, 9, 0, 5, 32, -64, -88, -2, 5]", "advertising-node-descriptors": { "as-number": 100, "domain-id": 0, "isis-node": { "iso-system-id": "AAEAAAAF" } }, "prefix-descriptors": { "ip-reachability-information": "192.168.254.5/32" }, "attributes": { "ipv4-next-hop": { "global": "192.168.122.136" }, "prefix-attributes": { "prefix-metric": 10, "sr-prefix": { "local-label": 1001, "no-php": false, "readvertisement": false, "node-sid": true, "explicit-null": false, "algorithm": "shortest-path-first" } }, "origin": { "value": "igp" }, "as-path": {}, "local-pref": { "pref": 100 } }, "identifier": 0, "protocol-id": "isis-level2" } ] }, "attributes": { "uptodate": true } } ] } ] }
3. This results in below error
{ "errors": { "error": [ { "error-type": "application", "error-tag": "operation-failed", "error-message": "canCommit encountered an unexpected failure", "error-info": "Node (urn:opendaylight:params:xml:ns:yang:bgp-linkstate?revision=2018-03-29)flags is not a valid child of (urn:opendaylight:params:xml:ns:yang:bgp-linkstate?revision=2018-03-29)sr-prefix according to the schema." } ] }}
2019-09-08T16:37:52,148 | WARN | opendaylight-cluster-data-akka.actor.default-dispatcher-3 | LocalThreePhaseCommitCohort | 171 - org.opendaylight.controller.sal-distributed-datastore - 1.11.0.SNAPSHOT | Failed to prepare transaction member-1-datastore-config-fe-0-txn-15-0 on backend org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaValidationFailedException: Node (urn:opendaylight:params:xml:ns:yang:bgp-linkstate?revision=2018-03-29)flags is not a valid child of (urn:opendaylight:params:xml:ns:yang:bgp-linkstate?revision=2018-03-29)sr-prefix according to the schema. at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:122) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:145) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:120) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:145) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:120) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:145) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:120) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:145) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:120) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:145) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:120) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:145) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:120) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:145) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:120) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:145) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:120) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:145) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:120) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:145) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:120) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:145) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:120) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:145) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.ModifiedNode.seal(ModifiedNode.java:288) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractReadyIterator.process(AbstractReadyIterator.java:47) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:298) ~[237:org.opendaylight.yangtools.yang-data-impl:3.0.4] at org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.ready(SnapshotBackedWriteTransaction.java:151) ~[196:org.opendaylight.mdsal.dom-spi:4.0.4] at org.opendaylight.controller.cluster.datastore.LocalTransactionFactoryImpl.onTransactionReady(LocalTransactionFactoryImpl.java:86) ~[171:org.opendaylight.controller.sal-distributed-datastore:1.11.0.SNAPSHOT] at org.opendaylight.controller.cluster.datastore.LocalTransactionContext.ready(LocalTransactionContext.java:82) ~[171:org.opendaylight.controller.sal-distributed-datastore:1.11.0.SNAPSHOT]
Models in question are below and data seem valid as per those:
- duplicates
-
YANGTOOLS-857 YANG parser should honor RFC7950 section 6.2.1 restrictions
- Resolved
- relates to
-
YANGTOOLS-883 YANG parser fails to detect duplicate nodes in cases
- Resolved
-
BGPCEP-880 Fix usage of duplicate child element in choice case statement in bgpcep yang files
- Resolved