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

[Lithium redesign] flow not sent to switch if priority is not explicitly set.

    XMLWordPrintable

Details

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

    • 3603

    Description

      If a priority is not explicitly set, the default (0x8000 == 32768) should
      be used and given in the flow_mod to the switch. This used to be the case,
      but now we are rejecting and showing an NPE ERROR:

      2015-06-05 15:44:46,121 | ERROR | lt-dispatcher-21 | DataTreeChangeListenerActor | 179 - org.opendaylight.controller.sal-distributed-datastore - 1.2.0.SNAPSHOT | Error notifying listener org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter@2b426549
      java.lang.NullPointerException: flow priority must not be null
      at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:226)[61:com.google.guava:18.0.0]
      at org.opendaylight.openflowplugin.impl.registry.flow.FlowRegistryKeyFactory$FlowRegistryKeyDto.<init>(FlowRegistryKeyFactory.java:41)
      at org.opendaylight.openflowplugin.impl.registry.flow.FlowRegistryKeyFactory.create(FlowRegistryKeyFactory.java:29)
      at org.opendaylight.openflowplugin.impl.services.SalFlowServiceImpl.addFlow(SalFlowServiceImpl.java:68)
      at org.opendaylight.yangtools.yang.binding.util.RpcMethodInvokerWithInput.invokeOn(RpcMethodInvokerWithInput.java:30)[69:org.opendaylight.yangtools.yang-binding:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.binding.util.AbstractMappedRpcInvoker.invokeRpc(AbstractMappedRpcInvoker.java:52)[69:org.opendaylight.yangtools.yang-binding:0.7.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcImplementationAdapter.invoke(BindingDOMRpcImplementationAdapter.java:85)[157:org.opendaylight.controller.sal-binding-broker-impl:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcImplementationAdapter.invokeRpc(BindingDOMRpcImplementationAdapter.java:72)[157:org.opendaylight.controller.sal-binding-broker-impl:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.dom.broker.impl.RoutedDOMRpcRoutingTableEntry.invokeRpc(RoutedDOMRpcRoutingTableEntry.java:57)[154:org.opendaylight.controller.sal-broker-impl:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRoutingTable.invokeRpc(DOMRpcRoutingTable.java:186)[154:org.opendaylight.controller.sal-broker-impl:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRouter.invokeRpc(DOMRpcRouter.java:124)[154:org.opendaylight.controller.sal-broker-impl:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.invoke0(RpcServiceAdapter.java:64)[157:org.opendaylight.controller.sal-binding-broker-impl:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.access$000(RpcServiceAdapter.java:42)[157:org.opendaylight.controller.sal-binding-broker-impl:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter$RpcInvocationStrategy.invoke(RpcServiceAdapter.java:156)[157:org.opendaylight.controller.sal-binding-broker-impl:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.invoke(RpcServiceAdapter.java:95)[157:org.opendaylight.controller.sal-binding-broker-impl:1.2.0.SNAPSHOT]
      at com.sun.proxy.$Proxy82.addFlow(Unknown Source)[184:org.opendaylight.openflowplugin.model.flow-service:0.1.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.applications.frm.impl.FlowForwarder.add(FlowForwarder.java:149)[188:org.opendaylight.openflowplugin.applications.forwardingrules-manager:0.1.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.applications.frm.impl.FlowForwarder.add(FlowForwarder.java:47)[188:org.opendaylight.openflowplugin.applications.forwardingrules-manager:0.1.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.applications.frm.impl.AbstractListeningCommiter.onDataTreeChanged(AbstractListeningCommiter.java:59)[188:org.opendaylight.openflowplugin.applications.forwardingrules-manager:0.1.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:41)[157:org.opendaylight.controller.sal-binding-broker-impl:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataChanged(DataTreeChangeListenerActor.java:53)[179:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:37)[179:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:34)[171:org.opendaylight.controller.sal-clustering-commons:1.2.0.SNAPSHOT]
      at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:167)[164:com.typesafe.akka.actor:2.3.10]
      at akka.actor.Actor$class.aroundReceive(Actor.scala:467)[164:com.typesafe.akka.actor:2.3.10]
      at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:97)[164:com.typesafe.akka.actor:2.3.10]
      at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)[164:com.typesafe.akka.actor:2.3.10]
      at akka.actor.ActorCell.invoke(ActorCell.scala:487)[164:com.typesafe.akka.actor:2.3.10]
      at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:254)[164:com.typesafe.akka.actor:2.3.10]
      at akka.dispatch.Mailbox.run(Mailbox.scala:221)[164:com.typesafe.akka.actor:2.3.10]
      at akka.dispatch.Mailbox.exec(Mailbox.scala:231)[164:com.typesafe.akka.actor:2.3.10]
      at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[161:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
      at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[161:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
      at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[161:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
      at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[161:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]

      example flow xml:
      <flow xmlns="urn:opendaylight:flow:inventory">
      <instructions><instruction>
      <order>0</order>
      <apply-actions>
      <action>
      <order>0</order>
      <output-action>
      <output-node-connector>FLOOD</output-node-connector>
      </output-action>
      </action>
      </apply-actions>
      </instruction>
      </instructions>
      <match>
      <ethernet-match>
      <ethernet-type>
      <type>0x800</type>
      </ethernet-type>
      </ethernet-match>
      <ipv4-source>11.3.0.0/16</ipv4-source>
      <ipv4-destination>99.0.0.0/8</ipv4-destination>
      </match>
      <table_id>0</table_id>
      <id>1</id>
      </flow>

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            Unassigned Unassigned
            jluhrsen Jamo Luhrsen
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: