首页 文章

创建打开vswitch qos和队列时的Opendaylight堆栈跟踪

提问于
浏览
0

我有一个运行良好的Opendaylight Carbon应用程序 . 现在我想为它添加QoS和队列(Open vSwitch 2.5.2) . 如果我在终端中使用ovs-vsctl创建一个qos,Opendaylight会开始记录堆栈跟踪 . ovs-vsctl命令:

sudo ovs-vsctl -- set port s1-eth1 qos=@newqos -- --id=@newqos create qos type=linux-htb other-config:max-rate=800000

堆栈跟踪(仅包含前几个堆栈跟踪):

2017-12-12 17:54:21,802 | WARN  | rd-dispatcher-23 | ShardDataTree                    | 204 - org.opendaylight.controller.sal-distributed-datastore - 1.5.2.Carbon | member-1-shard-inventory-operational: Store Tx member-1-datastore-operational-fe-0-chn-408-txn-3-0: Data validation failed for path /(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:1}]/node-connector/node-connector[{(urn:opendaylight:inventory?revision=2013-08-19)id=1}].
org.opendaylight.yangtools.yang.data.api.schema.tree.ModifiedNodeDoesNotExistException: Node /(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:1}]/node-connector/node-connector[{(urn:opendaylight:inventory?revision=2013-08-19)id=1}] does not exist. Cannot apply modification to its children.
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:281)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:288)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:288)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:288)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:288)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.StructuralContainerModificationStrategy.checkApplicable(StructuralContainerModificationStrategy.java:99)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:288)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.RootModificationApplyOperation.checkApplicable(RootModificationApplyOperation.java:72)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractDataTreeTip.validate(AbstractDataTreeTip.java:35)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.ShardDataTree.lambda$processNextPendingTransaction$0(ShardDataTree.java:743)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPending(ShardDataTree.java:789)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPendingTransaction(ShardDataTree.java:736)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.ShardDataTree.startCanCommit(ShardDataTree.java:819)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.SimpleShardDataTreeCohort.canCommit(SimpleShardDataTreeCohort.java:90)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.CohortEntry.canCommit(CohortEntry.java:97)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleCanCommit(ShardCommitCoordinator.java:236)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleReadyLocalTransaction(ShardCommitCoordinator.java:200)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.Shard.handleReadyLocalTransaction(Shard.java:675)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.Shard.handleNonRaftCommand(Shard.java:316)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.raft.RaftActor.handleCommand(RaftActor.java:270)[198:org.opendaylight.controller.sal-akka-raft:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveCommand(AbstractUntypedPersistentActor.java:44)[197:org.opendaylight.controller.sal-clustering-commons:1.5.2.Carbon]
    at akka.persistence.UntypedPersistentActor.onReceive(PersistentActor.scala:170)[185:com.typesafe.akka.persistence:2.4.18]
    at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:104)[197:org.opendaylight.controller.sal-clustering-commons:1.5.2.Carbon]
    at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:544)[178:com.typesafe.akka.actor:2.4.18]
    at akka.actor.Actor$class.aroundReceive(Actor.scala:502)[178:com.typesafe.akka.actor:2.4.18]
    at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(PersistentActor.scala:168)[185:com.typesafe.akka.persistence:2.4.18]
    at akka.persistence.Eventsourced$$anon$1.stateReceive(Eventsourced.scala:727)[185:com.typesafe.akka.persistence:2.4.18]
    at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:183)[185:com.typesafe.akka.persistence:2.4.18]
    at akka.persistence.UntypedPersistentActor.aroundReceive(PersistentActor.scala:168)[185:com.typesafe.akka.persistence:2.4.18]
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)[178:com.typesafe.akka.actor:2.4.18]
    at akka.actor.ActorCell.invoke(ActorCell.scala:495)[178:com.typesafe.akka.actor:2.4.18]
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)[178:com.typesafe.akka.actor:2.4.18]
    at akka.dispatch.Mailbox.run(Mailbox.scala:224)[178:com.typesafe.akka.actor:2.4.18]
    at akka.dispatch.Mailbox.exec(Mailbox.scala:234)[178:com.typesafe.akka.actor:2.4.18]
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[174:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc]
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[174:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc]
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[174:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc]
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[174:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc]
2017-12-12 17:54:21,803 | ERROR | lt-dispatcher-21 | LocalThreePhaseCommitCohort      | 204 - org.opendaylight.controller.sal-distributed-datastore - 1.5.2.Carbon | Failed to prepare transaction member-1-datastore-operational-fe-0-chn-408-txn-3-0 on backend
TransactionCommitFailedException{message=Data did not pass validation., errorList=[RpcError [message=Data did not pass validation., severity=ERROR, errorType=APPLICATION, tag=operation-failed, applicationTag=null, info=null, cause=org.opendaylight.yangtools.yang.data.api.schema.tree.ModifiedNodeDoesNotExistException: Node /(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:1}]/node-connector/node-connector[{(urn:opendaylight:inventory?revision=2013-08-19)id=1}] does not exist. Cannot apply modification to its children.]]}
    at org.opendaylight.controller.cluster.datastore.ShardDataTree.lambda$processNextPendingTransaction$0(ShardDataTree.java:760)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPending(ShardDataTree.java:789)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPendingTransaction(ShardDataTree.java:736)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.ShardDataTree.startCanCommit(ShardDataTree.java:819)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.SimpleShardDataTreeCohort.canCommit(SimpleShardDataTreeCohort.java:90)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.CohortEntry.canCommit(CohortEntry.java:97)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleCanCommit(ShardCommitCoordinator.java:236)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleReadyLocalTransaction(ShardCommitCoordinator.java:200)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.Shard.handleReadyLocalTransaction(Shard.java:675)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.Shard.handleNonRaftCommand(Shard.java:316)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.raft.RaftActor.handleCommand(RaftActor.java:270)[198:org.opendaylight.controller.sal-akka-raft:1.5.2.Carbon]
    at org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveCommand(AbstractUntypedPersistentActor.java:44)[197:org.opendaylight.controller.sal-clustering-commons:1.5.2.Carbon]
    at akka.persistence.UntypedPersistentActor.onReceive(PersistentActor.scala:170)[185:com.typesafe.akka.persistence:2.4.18]
    at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:104)[197:org.opendaylight.controller.sal-clustering-commons:1.5.2.Carbon]
    at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:544)[178:com.typesafe.akka.actor:2.4.18]
    at akka.actor.Actor$class.aroundReceive(Actor.scala:502)[178:com.typesafe.akka.actor:2.4.18]
    at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(PersistentActor.scala:168)[185:com.typesafe.akka.persistence:2.4.18]
    at akka.persistence.Eventsourced$$anon$1.stateReceive(Eventsourced.scala:727)[185:com.typesafe.akka.persistence:2.4.18]
    at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:183)[185:com.typesafe.akka.persistence:2.4.18]
    at akka.persistence.UntypedPersistentActor.aroundReceive(PersistentActor.scala:168)[185:com.typesafe.akka.persistence:2.4.18]
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)[178:com.typesafe.akka.actor:2.4.18]
    at akka.actor.ActorCell.invoke(ActorCell.scala:495)[178:com.typesafe.akka.actor:2.4.18]
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)[178:com.typesafe.akka.actor:2.4.18]
    at akka.dispatch.Mailbox.run(Mailbox.scala:224)[178:com.typesafe.akka.actor:2.4.18]
    at akka.dispatch.Mailbox.exec(Mailbox.scala:234)[178:com.typesafe.akka.actor:2.4.18]
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[174:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc]
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[174:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc]
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[174:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc]
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[174:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc]
Caused by: org.opendaylight.yangtools.yang.data.api.schema.tree.ModifiedNodeDoesNotExistException: Node /(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:1}]/node-connector/node-connector[{(urn:opendaylight:inventory?revision=2013-08-19)id=1}] does not exist. Cannot apply modification to its children.
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:281)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:288)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:288)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:288)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:288)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.StructuralContainerModificationStrategy.checkApplicable(StructuralContainerModificationStrategy.java:99)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:288)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.RootModificationApplyOperation.checkApplicable(RootModificationApplyOperation.java:72)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractDataTreeTip.validate(AbstractDataTreeTip.java:35)[81:org.opendaylight.yangtools.yang-data-impl:1.1.2.Carbon]
    at org.opendaylight.controller.cluster.datastore.ShardDataTree.lambda$processNextPendingTransaction$0(ShardDataTree.java:743)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.2.Carbon]
    ... 28 more

因为它显示了ModifiedNodeDoesNotExistException,我是否必须安装一些与ov相关的功能?如果是这样,哪一个?

我假设ODL收到qos和队列创建的通知,并尝试更新操作数据存储 . Exception抱怨该节点

Node /(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:1}]/node-connector/node-connector[{(urn:opendaylight:inventory?revision=2013-08-19)id=1}]

不存在 . 为什么这个nodeconnector id = openflow:1:1而不是id = 1?

Wireshark openflow显示这些异常很可能是由OFPMP_QUEUE回复触发的 . 如果没有队列,则此消息为空 . 如果存在队列(如下面的示例,队列0,1,2),它将报告端口1上队列的统计信息:

OpenFlow 1.3
    Version: 1.3 (0x04)
    Type: OFPT_MULTIPART_REPLY (19)
    Length: 136
    Transaction ID: 5709
    Type: OFPMP_QUEUE (5)
    Flags: 0x0000
    Pad: 00000000
    Queue stats
        Port number: 1
        Queue ID: 0
        Tx bytes: 60
        Tx packets: 1
        Tx errors: 0
        Duration sec: 2954916689
        Duration nsec: 174000000
    Queue stats
    Queue stats

我假设ODL无法将端口1映射到节点连接器openflow:1:1 . 这可能会导致异常,因为找不到节点连接器1 .

1 回答

  • 0

    问题确实是控制器正在解析OFPMP_QUEUE应答并想要将统计信息写入node-connector'1'而不是'openflow:1:1' . 为了测试这个假设,我在操作数据存储区中编写了自己的节点连接符“1”,包含队列0,1和2.我调整了我的应用程序以使用队列,并且我在第一篇文章中使用ovs-vsctl命令创建了队列一切正常:

    • 节点连接器'1'使用操作DS中的队列统计信息进行更新

    • 使用队列的流确实受队列最大速率的限制

    现在的问题是:

    这是一个错误
    或者我真的必须这样做
    或者我应该只使用通过ODL的OVSDB插件创建的队列吗?

    我正在从maven ODL Carbon原型开发并且无法获得OVSDB支持 . OVSDB(但?)似乎不是作为Carbon版本的插件功能而存在的 .

    任何帮助表示赞赏 .

相关问题