Uploaded image for project: 'OpenFlowPlugin'
  1. OpenFlowPlugin
  2. OPNFLWPLUG-881

Openflow plugin fails to control OF10 Switches

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Done
    • None
    • None
    • General
    • None
    • Operating System: All
      Platform: All

    • 8239

    Description

      Versions

      ODL: Carbon
      (build: https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/distribution-karaf/0.6.0-SNAPSHOT/distribution-karaf-0.6.0-20170417.101545-4929.zip)

      OVS : 2.0.2, Mininet: 2.2.1 on Ubuntu 14.0.4

      Executed Mininet using the below command
      sudo mn --controller 'remote,ip=<odl_ip>,port=6633' --topo tree,3 --switch ovsk,protocols=OpenFlow10

      Feature Installed in ODL : odl-vtn-manager that uses odl-openflowplugin.

      Problems:

      a. VTN invokes statistics rpc that fails with the below Error Message

      ----------- start of log snippet

      java.lang.IllegalArgumentException: Metadata not available for modification NodeModification [identifier=(urn:opendaylight:inventory?revision=2013-08-19)node-connector[

      {(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:1:LOCAL}

      ], modificationType=TOUCH, childModification={AugmentationIdentifier

      {childNames=[(urn:opendaylight:port:statistics?revision=2013-12-14)flow-capable-node-connector-statistics]}

      =NodeModification [identifier=AugmentationIdentifier

      {childNames=[(urn:opendaylight:port:statistics?revision=2013-12-14)flow-capable-node-connector-statistics]}

      , modificationType=TOUCH, childModification={(urn:opendaylight:port:statistics?revision=2013-12-14)flow-capable-node-connector-statistics=NodeModification [identifier=(urn:opendaylight:port:statistics?revision=2013-12-14)flow-capable-node-connector-statistics, modificationType=WRITE, childModification={}]}]}]
      at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)[65:com.google.guava:18.0.0]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:198)[101:org.opendaylight.yangtools.yang-data-impl:1.1.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.mutateChildren(AbstractNodeContainerModificationStrategy.java:139)[101:org.opendaylight.yangtools.yang-data-impl:1.1.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.applyTouch(AbstractNodeContainerModificationStrategy.java:252)[101:org.opendaylight.yangtools.yang-data-impl:1.1.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.applyMerge(AbstractNodeContainerModificationStrategy.java:170)[101:org.opendaylight.yangtools.yang-data-impl:1.1.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:213)[101:org.opendaylight.yangtools.yang-data-impl:1.1.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.mutateChildren(AbstractNodeContainerModificationStrategy.java:139)[101:org.opendaylight.yangtools.yang-data-impl:1.1.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.applyWrite(AbstractNodeContainerModificationStrategy.java:113)[101:org.opendaylight.yangtools.yang-data-impl:1.1.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.ListEntryModificationStrategy.applyWrite(ListEntryModificationStrategy.java:48)[101:org.opendaylight.yangtools.yang-data-impl:1.1.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:219)[101:org.opendaylight.yangtools.yang-data-impl:1.1.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.ModifiedNode.seal(ModifiedNode.java:282)[101:org.opendaylight.yangtools.yang-data-impl:1.1.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractReadyIterator.process(AbstractReadyIterator.java:56)[101:org.opendaylight.yangtools.yang-data-impl:1.1.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:284)[101:org.opendaylight.yangtools.yang-data-impl:1.1.0.SNAPSHOT]
      at org.opendaylight.controller.sal.core.spi.data.SnapshotBackedWriteTransaction.ready(SnapshotBackedWriteTransaction.java:139)[162:org.opendaylight.controller.sal-core-spi:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.datastore.LocalTransactionChain.onTransactionReady(LocalTransactionChain.java:94)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.datastore.LocalTransactionContext.ready(LocalTransactionContext.java:75)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.datastore.LocalTransactionContext.directCommit(LocalTransactionContext.java:86)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.datastore.TransactionProxy.getDirectCommitFuture(TransactionProxy.java:278)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.datastore.TransactionProxy.createSingleCommitCohort(TransactionProxy.java:265)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.datastore.TransactionProxy.ready(TransactionProxy.java:231)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.datastore.TransactionProxy.ready(TransactionProxy.java:53)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.databroker.AbstractDOMBrokerWriteTransaction.submit(AbstractDOMBrokerWriteTransaction.java:142)[204:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransactionChain.processTransaction(PingPongTransactionChain.java:235)[164:org.opendaylight.controller.sal-broker-impl:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransactionChain.processIfReady(PingPongTransactionChain.java:211)[164:org.opendaylight.controller.sal-broker-impl:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransactionChain.readyTransaction(PingPongTransactionChain.java:319)[164:org.opendaylight.controller.sal-broker-impl:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransactionChain$4.submit(PingPongTransactionChain.java:448)[164:org.opendaylight.controller.sal-broker-impl:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.binding.impl.AbstractWriteTransaction.doSubmit(AbstractWriteTransaction.java:134)[166:org.opendaylight.controller.sal-binding-broker-impl:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.binding.impl.BindingDOMWriteTransactionAdapter.submit(BindingDOMWriteTransactionAdapter.java:83)[166:org.opendaylight.controller.sal-binding-broker-impl:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.binding.impl.BindingDOMTransactionChainAdapter$2.submit(BindingDOMTransactionChainAdapter.java:80)[166:org.opendaylight.controller.sal-binding-broker-impl:1.5.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.device.TransactionChainManager.submitWriteTransaction(TransactionChainManager.java:175)[220:org.opendaylight.openflowplugin.impl:0.4.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.device.TransactionChainManager.initialSubmitWriteTransaction(TransactionChainManager.java:95)[220:org.opendaylight.openflowplugin.impl:0.4.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.device.DeviceContextImpl.initialSubmitTransaction(DeviceContextImpl.java:224)[220:org.opendaylight.openflowplugin.impl:0.4.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.statistics.StatisticsContextImpl$5.onSuccess(StatisticsContextImpl.java:513)[220:org.opendaylight.openflowplugin.impl:0.4.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.statistics.StatisticsContextImpl$5.onSuccess(StatisticsContextImpl.java:505)[220:org.opendaylight.openflowplugin.impl:0.4.0.SNAPSHOT]
      at com.google.common.util.concurrent.Futures$6.run(Futures.java:1319)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:185)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.SettableFuture.set(SettableFuture.java:53)[65:com.google.guava:18.0.0]
      at org.opendaylight.openflowplugin.impl.statistics.StatisticsContextImpl.statChainFuture(StatisticsContextImpl.java:283)[220:org.opendaylight.openflowplugin.impl:0.4.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.statistics.StatisticsContextImpl.access$200(StatisticsContextImpl.java:57)[220:org.opendaylight.openflowplugin.impl:0.4.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.statistics.StatisticsContextImpl$3.onSuccess(StatisticsContextImpl.java:295)[220:org.opendaylight.openflowplugin.impl:0.4.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.statistics.StatisticsContextImpl$3.onSuccess(StatisticsContextImpl.java:292)[220:org.opendaylight.openflowplugin.impl:0.4.0.SNAPSHOT]
      at com.google.common.util.concurrent.Futures$6.run(Futures.java:1319)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:185)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.Futures$ChainingListenableFuture$1.run(Futures.java:918)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.ExecutionList.add(ExecutionList.java:101)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:170)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:914)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:185)[65:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.SettableFuture.set(SettableFuture.java:53)[65:com.google.guava:18.0.0]
      at org.opendaylight.openflowplugin.impl.rpc.AbstractRequestContext.setResult(AbstractRequestContext.java:32)[220:org.opendaylight.openflowplugin.impl:0.4.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.device.listener.MultiMsgCollectorImpl.endCollecting(MultiMsgCollectorImpl.java:70)[220:org.opendaylight.openflowplugin.impl:0.4.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.device.listener.MultiMsgCollectorImpl.addMultipartMsg(MultiMsgCollectorImpl.java:58)[220:org.opendaylight.openflowplugin.impl:0.4.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.services.AbstractMultipartRequestCallback.onSuccess(AbstractMultipartRequestCallback.java:54)[220:org.opendaylight.openflowplugin.impl:0.4.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.services.AbstractMultipartRequestCallback.onSuccess(AbstractMultipartRequestCallback.java:22)[220:org.opendaylight.openflowplugin.impl:0.4.0.SNAPSHOT]
      at org.opendaylight.openflowjava.protocol.impl.core.connection.OutboundQueueEntry.complete(OutboundQueueEntry.java:121)[209:org.opendaylight.openflowjava.openflow-protocol-impl:0.9.0.SNAPSHOT]
      at org.opendaylight.openflowjava.protocol.impl.core.connection.StackedSegment.completeEntry(StackedSegment.java:113)[209:org.opendaylight.openflowjava.openflow-protocol-impl:0.9.0.SNAPSHOT]
      at org.opendaylight.openflowjava.protocol.impl.core.connection.StackedSegment.pairRequest(StackedSegment.java:153)[209:org.opendaylight.openflowjava.openflow-protocol-impl:0.9.0.SNAPSHOT]
      at org.opendaylight.openflowjava.protocol.impl.core.connection.AbstractStackedOutboundQueue.pairRequest(AbstractStackedOutboundQueue.java:203)[209:org.opendaylight.openflowjava.openflow-protocol-impl:0.9.0.SNAPSHOT]
      at org.opendaylight.openflowjava.protocol.impl.core.connection.AbstractOutboundQueueManager.onMessage(AbstractOutboundQueueManager.java:208)[209:org.opendaylight.openflowjava.openflow-protocol-impl:0.9.0.SNAPSHOT]
      at org.opendaylight.openflowjava.protocol.impl.core.connection.ConnectionAdapterImpl.consumeDeviceMessage(ConnectionAdapterImpl.java:122)[209:org.opendaylight.openflowjava.openflow-protocol-impl:0.9.0.SNAPSHOT]
      at org.opendaylight.openflowjava.protocol.impl.core.connection.AbstractConnectionAdapterStatistics.consume(AbstractConnectionAdapterStatistics.java:66)[209:org.opendaylight.openflowjava.openflow-protocol-impl:0.9.0.SNAPSHOT]
      at org.opendaylight.openflowjava.protocol.impl.core.connection.ConnectionAdapterImpl.consume(ConnectionAdapterImpl.java:43)[209:org.opendaylight.openflowjava.openflow-protocol-impl:0.9.0.SNAPSHOT]
      at org.opendaylight.openflowjava.protocol.impl.core.DelegatingInboundHandler.channelRead(DelegatingInboundHandler.java:43)[209:org.opendaylight.openflowjava.openflow-protocol-impl:0.9.0.SNAPSHOT]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)[139:io.netty.transport:4.1.8.Final]
      at org.opendaylight.openflowjava.protocol.impl.core.connection.AbstractOutboundQueueManager.channelRead(AbstractOutboundQueueManager.java:195)[209:org.opendaylight.openflowjava.openflow-protocol-impl:0.9.0.SNAPSHOT]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)[139:io.netty.transport:4.1.8.Final]
      at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)[141:io.netty.codec:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)[139:io.netty.transport:4.1.8.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)[141:io.netty.codec:4.1.8.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)[141:io.netty.codec:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)[139:io.netty.transport:4.1.8.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)[141:io.netty.codec:4.1.8.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)[141:io.netty.codec:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)[139:io.netty.transport:4.1.8.Final]
      at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:287)[143:io.netty.handler:4.1.8.Final]
      at org.opendaylight.openflowjava.protocol.impl.core.IdleHandler.channelRead(IdleHandler.java:39)[209:org.opendaylight.openflowjava.openflow-protocol-impl:0.9.0.SNAPSHOT]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)[139:io.netty.transport:4.1.8.Final]
      at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:1018)[144:io.netty.transport-native-epoll:4.1.8.Final]
      at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:394)[144:io.netty.transport-native-epoll:4.1.8.Final]
      at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:288)[144:io.netty.transport-native-epoll:4.1.8.Final]
      at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)[138:io.netty.common:4.1.8.Final]
      at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)[138:io.netty.common:4.1.8.Final]

      ---------- end of log snippet

      b. openflowplugin fails to recover even after multiple mininet restarts.

      karaf log has been attached.

      Attachments

        1. karaf.log
          763 kB
        2. karaf.log
          790 kB
        3. karaf.txt
          166 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            gvrangan Venkatrangan Govindarajan
            gvrangan Venkatrangan Govindarajan
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: