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