Hi all,

As I observed, when an OpenFlow 1.3 switch (OVS) is connecting to the ODL 
Lithium version of OpenFlow plugin, the normal role set process can be divided 
into two steps:
   step 1 - firstly push a slave role request.
   step 2 - Received EOS message and push a master role request as a response.
Could you please tell me what the design intent of above role set process?  
(Hellium design directly push a master role request)

What's more, I found step 2 failed occasionally, especially when the switch 
reconnected to the ODL . It seems that getting watching entity failed cause the 
issue.

The related messages I found in log is as following :
opendaylight-user@root>2016-06-14 13:48:59,551 | INFO  | entLoopGroup-5-3 | 
SystemNotificationsListenerImpl  | 182 - org.opendaylight.openflowplugin.impl - 
0.2.2.Beryllium-SR2 | ConnectionEvent: Connection closed by devi
ce, Device:/172.21.77.28:42997, NodeId:null
2016-06-14 13:49:00,344 | INFO  | entLoopGroup-5-4 | ConnectionAdapterImpl      
      | 178 - org.opendaylight.openflowjava.openflow-protocol-impl - 
0.7.2.Beryllium-SR2 | Hello received / branch
2016-06-14 13:49:00,359 | INFO  | entLoopGroup-5-4 | DeviceManagerImpl          
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
ConnectionEvent: Device connected to controller, Device:/172.21.7
7.28:42998, NodeId:Uri [_value=openflow:1]
2016-06-14 13:49:00,361 | INFO  | entLoopGroup-5-4 | StatisticsManagerImpl      
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
Schedule Statistics poll for node:Uri [_value=openflow:1]
2016-06-14 13:49:00,361 | DEBUG | entLoopGroup-5-4 | RoleManagerImpl            
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
Sending new role BECOMESLAVE to device Uri [_value=openflow:1]
2016-06-14 13:49:00,367 | INFO  | entLoopGroup-5-4 | SalRoleServiceImpl         
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
SetRole called with input:SetRoleInput [_controllerRole=BECOMESLA
VE, _node=NodeRef [_value=KeyedInstanceIdentifier{targetType=interface 
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node, 
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819
.Nodes, 
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node[key=NodeKey
 [_id=Uri [_value=openflow:1]]]]}], augmentation=[]]
2016-06-14 13:49:00,373 | INFO  | entLoopGroup-5-4 | SalRoleServiceImpl         
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
Requesting state change to BECOMESLAVE
2016-06-14 13:49:00,377 | INFO  | entLoopGroup-5-4 | SalRoleServiceImpl         
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
RoleChangeTask called on device:openflow:1 OFPRole:BECOMESLAVE
2016-06-14 13:49:00,382 | INFO  | entLoopGroup-5-4 | RoleService                
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
getGenerationIdFromDevice called for device:openflow:1
2016-06-14 13:49:00,388 | INFO  | entLoopGroup-5-4 | RoleContextImpl            
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
Initialization main candidate for node Uri [_value=openflow:1]
2016-06-14 13:49:00,393 | DEBUG | entLoopGroup-5-4 | RoleContextImpl            
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
Register candidate for entity Entity{type='openflow', id=/(urn:op
endaylight: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:1}]}
2016-06-14 13:49:00,398 | DEBUG | entLoopGroup-5-4 | RoleManagerImpl            
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
Notifying registered listeners for role initialization done, no.
of listeners 1
2016-06-14 13:49:00,404 | INFO  | entLoopGroup-5-4 | LifecycleConductorImpl     
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
initialization phase for node Uri [_value=openflow:1] in role con
text was successful, continuing to next context.
2016-06-14 13:49:00,401 | DEBUG | lt-dispatcher-25 | RoleManagerImpl            
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
Received EOS message: wasOwner:false isOwner:true hasOwner:true f
or entity type openflow and node -> no watching entity, disregarding 
notification <-
2016-06-14 13:49:00,413 | INFO  | entLoopGroup-5-4 | RoleService                
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
submitRoleChange called for device:Uri [_value=openflow:1], role:
BECOMESLAVE
2016-06-14 13:49:00,414 | DEBUG | lt-dispatcher-25 | RoleManagerImpl            
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
OwnershipChange EntityOwnershipChanged [entity=Entity{type='openf
low', 
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:1}]}, wasOwner=false, isOwner=true, hasOwner=true]
2016-06-14 13:49:00,421 | INFO  | entLoopGroup-5-4 | RoleService                
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
submitRoleChange onSuccess for device:Uri [_value=openflow:1], ro
le:BECOMESLAVE
2016-06-14 13:49:00,424 | INFO  | entLoopGroup-5-4 | RoleManagerImpl            
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | Role 
BECOMESLAVE successfully set on device Uri [_value=openflow:
1]
2016-06-14 13:49:00,425 | DEBUG | entLoopGroup-5-4 | RoleManagerImpl            
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
Notifying registered listeners for role change, no. of listeners
1
2016-06-14 13:49:00,920 | WARN  | entLoopGroup-5-4 | DeviceContextImpl          
      | 182 - org.opendaylight.openflowplugin.impl - 0.2.2.Beryllium-SR2 | 
Error processing port status message: Cannot write into transacti
on.



I guess there exists a race condition between thread entLoopGroup-5-4 and 
lt-dispatcher-25.


_______________________________________________
openflowplugin-dev mailing list
[email protected]
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

Reply via email to