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

He: Unable to control a OF 1.3 switch after a Role-Request message for the switch fails

    XMLWordPrintable

Details

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

    • 5050

    Description

      When the Helium version of OpenFlow plugin connected to an OpenFlow 1.3 switch, it failed to execute a role push request.
      As the result, the plugin could not do anything to the switch, including installing flow entries.

      The issue occasionally happens when the Helium version connects to OpenFlow 1.3 switches.

      For example, it occurred in the VTN CSIT, too.
      https://jenkins.opendaylight.org/releng/view/vtn/job/vtn-csit-1node-manager-only-beryllium/67/artifact/karaf.log

      I had not observed this issue before yesterday, so I guess the bug is created recently, likely yesterday.

      I used the ODL controller which was built today from the latest source code of the stable/beryllium branch of the VTN project to detect the issue.
      When I observed the issue, I ran just one single controller.

      The error messages I saw in the karaf.log are as follows:

      2016-01-21 06:45:08,556 | INFO | entLoopGroup-9-7 | ConnectionAdapterImpl | 159 - org.opendaylight.openflowjava.openflow-protocol-impl - 0.7.0.SNAPSHOT | Hello received / branch
      2016-01-21 06:45:08,558 | INFO | entLoopGroup-9-7 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | requestOpenflowEntityOwnership: Registered controller for the
      ownership of Uri [_value=openflow:6]
      2016-01-21 06:45:08,559 | INFO | entLoopGroup-9-7 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | setSlaveRole: Set controller as a SLAVE controller for 6
      2016-01-21 06:45:08,559 | INFO | ofEntity-0 | RolePushTask | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | Pushing SLAVE role configuration to device openflow:6
      2016-01-21 06:45:08,559 | INFO | ofEntity-0 | RolePushTask | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | Received generation-id 18446744073709551615 for role change request from device 6
      2016-01-21 06:45:08,560 | INFO | ofEntity-0 | RolePushTask | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | Pushing role change SLAVE config request with generation-id 0 to device 6
      2016-01-21 06:45:08,560 | INFO | pool-28-thread-1 | StatNodeRegistrationImpl | 167 - org.opendaylight.openflowplugin.applications.statistics-manager - 0.2.0.SNAPSHOT | Received onNodeUpdated for node FlowCapableNodeUpdated [_description=None, _hardware=Open vSwitch, _manufacturer=Nicira, Inc., _serialNumber=None, _software=2.1.0]
      2016-01-21 06:45:08,560 | INFO | lt-dispatcher-22 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | onDeviceOwnershipChanged: Set controller as a MASTER controller because it's the OWNER of the Entity{type='openflow', id=/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:general-entity?revision=2015-08-20)entity/entity[

      {(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:general-entity?revision=2015-08-20)name=openflow:6}

      ]}
      2016-01-21 06:45:08,564 | INFO | ofEntity-0 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | setSlaveRole: Controller is set as a SLAVE for 6

      2016-01-21 06:45:08,567 | INFO | lt-dispatcher-22 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | registerRoutedRPCForSwitch: Registered routed rpc for ModelDrivenSwitch openflow:6
      2016-01-21 06:45:08,567 | INFO | ofEntity-0 | RolePushTask | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | Pushing MASTER role configuration to device openflow:6
      2016-01-21 06:45:08,568 | WARN | entLoopGroup-9-7 | ResponseExpectedRpcListener | 159 - org.opendaylight.openflowjava.openflow-protocol-impl - 0.7.0.SNAPSHOT | Request for RpcResultKey [xid=12, outputClazz=org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutput] did not receive a response
      2016-01-21 06:45:08,568 | WARN | entLoopGroup-9-7 | ConnectionAdapterImpl | 159 - org.opendaylight.openflowjava.openflow-protocol-impl - 0.7.0.SNAPSHOT | received unexpected rpc response: RpcResultKey [xid=13, outputClazz=org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutput]
      016-01-21 06:45:08,568 | ERROR | ofEntity-0 | RolePushTask | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | Role push request failed for device [6]
      org.opendaylight.openflowplugin.openflow.md.core.session.RolePushException: Giving up role change: read generation-id failed Timeout waiting for task.
      at org.opendaylight.openflowplugin.openflow.md.core.session.RolePushTask.call(RolePushTask.java:117)[162:org.opendaylight.openflowplugin:0.2.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.openflow.md.core.session.RolePushTask.call(RolePushTask.java:38)[162:org.opendaylight.openflowplugin:0.2.0.SNAPSHOT]
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_75]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_75]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_75]
      at java.lang.Thread.run(Thread.java:745)[:1.7.0_75]
      2016-01-21 06:45:08,569 | ERROR | ofEntity-0 | RolePushTask | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | Generation ID is NULL for device [6]
      2016-01-21 06:45:08,569 | WARN | ofEntity-0 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | onDeviceOwnershipChanged: Controller is not able to set the MASTER role for 6.
      org.opendaylight.openflowplugin.openflow.md.core.session.RolePushException: Giving up role change: current generation-id can not be read
      at org.opendaylight.openflowplugin.openflow.md.core.session.RolePushTask.call(RolePushTask.java:129)[162:org.opendaylight.openflowplugin:0.2.0.SNAPSHOT]
      at org.opendaylight.openflowplugin.openflow.md.core.session.RolePushTask.call(RolePushTask.java:38)[162:org.opendaylight.openflowplugin:0.2.0.SNAPSHOT]
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_75]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_75]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_75]
      at java.lang.Thread.run(Thread.java:745)[:1.7.0_75]
      2016-01-21 06:45:08,569 | INFO | ofEntity-0 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | onDeviceOwnershipChanged: ..and this instance is owner of the device 6. Closing the registration, so other entity can become owner and attempt to be master controller.
      2016-01-21 06:45:08,571 | INFO | lt-dispatcher-22 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | registerRoutedRPCForSwitch: Skipping routed rpc registration for ModelDrivenSwitch openflow:6
      2016-01-21 06:45:08,575 | INFO | ofEntity-0 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | deregisterRoutedRPCForSwitch: De-registered routed rpc for ModelDrivenSwitch openflow:6
      2016-01-21 06:45:08,575 | INFO | ofEntity-0 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | onDeviceOwnershipChanged: ..and registering it back to participate in ownership and re-try
      2016-01-21 06:45:08,575 | INFO | ofEntity-0 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | onDeviceOwnershipChanged: re-registered candidate for ownership of the 6
      2016-01-21 06:45:08,575 | INFO | ofEntity-0 | RolePushTask | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | Pushing SLAVE role configuration to device openflow:6
      2016-01-21 06:45:08,576 | INFO | ult-dispatcher-3 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | onDeviceOwnershipChanged: Set controller as a MASTER controller because it's the OWNER of the Entity{type='openflow', id=/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:general-entity?revision=2015-08-20)entity/entity[

      {(urn:opendaylight:params:xml:ns:yang: controller:md:sal:core:general-entity?revision=2015-08-20)name=openflow:6}

      ]}

      Attachments

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

        Activity

          People

            Avishnoi Anil Vishnoi
            Hideyuki1985 Hideyuki Tai
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: