Can you check the sequence of port status messages comes from ovs, the reason is determined from the openflow port status (OFPT_PORT_STATUS) reason field.
Also, from the below email chain I can understand it is a live migration and I don't think the sequence of events will be same for live VM migration(as our code written with cold migration events in mind). Please capture wireshark, so we can understand the sequence of events. Regards, Arun From: Faseela K Sent: Wednesday, February 07, 2018 11:44 PM To: Nobin Mathew <[email protected]>; Hari Prasad <[email protected]>; [email protected] Cc: Venkatrangan G - ERS, HCL Tech <[email protected]>; D Arunprakash <[email protected]>; odl netvirt dev <[email protected]>; openflowplugin-dev <[email protected]> Subject: RE: [genius-dev] While migrating Vm instances, connection failed between the VM instances. Hi Arun, Hari is executing a series of VM migrations, and at some random times, he observes that NodeConnetor add event for the migrated VM comes with PortReason.Update, and hence we ignore the event. Could you please give us some pointers on when this can happen? Thanks, Faseela From: Nobin Mathew Sent: Wednesday, February 07, 2018 7:24 PM To: Hari Prasad <[email protected]<mailto:[email protected]>>; Faseela K <[email protected]<mailto:[email protected]>>; [email protected]<mailto:[email protected]> Cc: Venkatrangan G - ERS, HCL Tech <[email protected]<mailto:[email protected]>>; D Arunprakash <[email protected]<mailto:[email protected]>> Subject: RE: [genius-dev] While migrating Vm instances, connection failed between the VM instances. Yes it is the same reason. Someone from openflow plugin side has to debug further. -Nobin From: Hari Prasad [mailto:[email protected]] Sent: Wednesday, February 07, 2018 6:00 PM To: Nobin Mathew; Faseela K; [email protected]<mailto:[email protected]> Cc: Venkatrangan G - ERS, HCL Tech; D Arunprakash Subject: RE: [genius-dev] While migrating Vm instances, connection failed between the VM instances. Hi Nobin, Yes, We can see from below debug log portReason as 'UPDATE' instead of 'ADD' for failure port. Successful Vm instance: (Add event) ------------------------------- 2018-02-01 01:48:55,831 | DEBUG | eChangeHandler-0 | InterfaceInventoryStateListener | 232 - org.opendaylight.genius.interfacemanager-impl - 0.3.0 | Received NodeConnector Add Event: InstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector, 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:615256118989]]], org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector[key=NodeConnectorKey [_id=Uri [_value=openflow:615256118989:5]]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector]}, FlowCapableNodeConnector{getAdvertisedFeatures=PortFeatures [_tenMbHd=false, _tenMbFd=false, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=false, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false], getConfiguration=PortConfig [_pORTDOWN=true, _nORECV=false, _nOFWD=false, _nOPACKETIN=false], getCurrentFeature=PortFeatures [_tenMbHd=false, _tenMbFd=true, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=true, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false], getCurrentSpeed=10000, getHardwareAddress=MacAddress [_value=fe:16:3e:25:00:bc], getMaximumSpeed=0, getName=tap5be6a5a8-f9, getPeerFeatures=PortFeatures [_tenMbHd=false, _tenMbFd=false, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=false, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false], getPortNumber=PortNumberUni [_uint32=5], getQueue=[], getReason=Add, getState=State{isBlocked=false, isLinkDown=true, isLive=false, augmentations={}}, getSupported=PortFeatures [_tenMbHd=false, _tenMbFd=false, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=false, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false]} Failure Vm instance: (Add event) --------------------------------------- 2018-02-01 01:49:05,833 | DEBUG | eChangeHandler-0 | InterfaceInventoryStateListener | 232 - org.opendaylight.genius.interfacemanager-impl - 0.3.0 | Received NodeConnector Add Event: InstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector, 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:615256118989]]], org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector[key=NodeConnectorKey [_id=Uri [_value=openflow:615256118989:6]]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector]}, FlowCapableNodeConnector{getAdvertisedFeatures=PortFeatures [_tenMbHd=false, _tenMbFd=false, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=false, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false], getConfiguration=PortConfig [_pORTDOWN=false, _nORECV=false, _nOFWD=false, _nOPACKETIN=false], getCurrentFeature=PortFeatures [_tenMbHd=false, _tenMbFd=true, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=true, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false], getCurrentSpeed=10000, getHardwareAddress=MacAddress [_value=fe:16:3e:f2:05:63], getMaximumSpeed=0, getName=tapb01e4b4e-ef, getPeerFeatures=PortFeatures [_tenMbHd=false, _tenMbFd=false, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=false, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false], getPortNumber=PortNumberUni [_uint32=6], getQueue=[], getReason=Update, getState=State{isBlocked=false, isLinkDown=false, isLive=false, augmentations={}}, getSupported=PortFeatures [_tenMbHd=false, _tenMbFd=false, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=false, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false]} Thanks, Hari From: Nobin Mathew [mailto:[email protected]] Sent: Wednesday, February 07, 2018 5:37 PM To: Hari Prasad <[email protected]<mailto:[email protected]>>; Faseela K <[email protected]<mailto:[email protected]>>; [email protected]<mailto:[email protected]> Cc: Venkatrangan G - ERS, HCL Tech <[email protected]<mailto:[email protected]>>; D Arunprakash <[email protected]<mailto:[email protected]>> Subject: RE: [genius-dev] While migrating Vm instances, connection failed between the VM instances. + Arun Hi Hari, Seems like a wrong PortReason we received, 2018-02-01 01:49:05,833 | DEBUG | eChangeHandler-0 | InterfaceInventoryStateListener | 232 - org.opendaylight.genius.interfacemanager-impl - 0.3.0 | Received NodeConnector Add Event: InstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector, 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:615256118989]]], org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector[key=NodeConnectorKey [_id=Uri [_value=openflow:615256118989:6]]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector]}, FlowCapableNodeConnector{getAdvertisedFeatures=PortFeatures [_tenMbHd=false, _tenMbFd=false, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=false, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false], getConfiguration=PortConfig [_pORTDOWN=false, _nORECV=false, _nOFWD=false, _nOPACKETIN=false], getCurrentFeature=PortFeatures [_tenMbHd=false, _tenMbFd=true, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=true, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false], getCurrentSpeed=10000, getHardwareAddress=MacAddress [_value=fe:16:3e:f2:05:63], getMaximumSpeed=0, getName=tapb01e4b4e-ef, getPeerFeatures=PortFeatures [_tenMbHd=false, _tenMbFd=false, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=false, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false], getPortNumber=PortNumberUni [_uint32=6], getQueue=[], getReason=Update, getState=State{isBlocked=false, isLinkDown=false, isLive=false, augmentations={}}, getSupported=PortFeatures [_tenMbHd=false, _tenMbFd=false, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=false, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false]} 2018-02-01 01:49:05,833 | ERROR | eChangeHandler-0 | InterfaceInventoryStateListener | 232 - org.opendaylight.genius.interfacemanager-impl - 0.3.0 | Dropping Port update event for tapb01e4b4e-ef, as DPN id is changed from 70513051040409 to 615256118989 Hari, will you be able to print the PortReason, with a debug build? -Nobin From: Hari Prasad [mailto:[email protected]] Sent: Wednesday, February 07, 2018 4:24 PM To: Nobin Mathew; Faseela K; [email protected]<mailto:[email protected]> Cc: Venkatrangan G - ERS, HCL Tech Subject: RE: [genius-dev] While migrating Vm instances, connection failed between the VM instances. Hi Nobin, Please find the attachments for operational & config Ds. Thanks, Hari From: Nobin Mathew [mailto:[email protected]] Sent: Tuesday, February 06, 2018 4:32 PM To: Faseela K <[email protected]<mailto:[email protected]>>; Hari Prasad <[email protected]<mailto:[email protected]>>; [email protected]<mailto:[email protected]> Cc: Venkatrangan G - ERS, HCL Tech <[email protected]<mailto:[email protected]>> Subject: RE: [genius-dev] While migrating Vm instances, connection failed between the VM instances. Hari, I am looking into it. -Nobin From: Faseela K Sent: Monday, February 05, 2018 5:58 PM To: Hari Prasad; [email protected]<mailto:[email protected]> Cc: Venkatrangan G - ERS, HCL Tech; Nobin Mathew Subject: RE: [genius-dev] While migrating Vm instances, connection failed between the VM instances. Nobin, Could you please help Hari on this bug? https://jira.opendaylight.org/browse/NETVIRT-1049<https://apac01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fjira.opendaylight.org%2Fbrowse%2FNETVIRT-1049&data=02%7C01%7Chari.pr%40hcl.com%7Cabb8ac80f39b429b3bf208d56c622e35%7Cdd85efd06a9c4fee843ed525fa4be3ca%7C0%7C0%7C636534091316604213&sdata=55diqQe0tpdJB81RFrvuWd06kBGaEghqyx1IWXFhH7M%3D&reserved=0> Thanks, Faseela From: Hari Prasad [mailto:[email protected]] Sent: Monday, February 05, 2018 5:50 PM To: Faseela K <[email protected]<mailto:[email protected]>>; [email protected]<mailto:[email protected]> Cc: Venkatrangan G - ERS, HCL Tech <[email protected]<mailto:[email protected]>> Subject: RE: [genius-dev] While migrating Vm instances, connection failed between the VM instances. Hi Faseela, Thank you very much for the response on this issue. Please find the attachment for dump flows. I'm not sure but the below code snippet from InterfaceInventoryStateListener.java is skipping a removel event for failure port. if (!Objects.equals(dpnIdOld, dpnIdNew)) { if (fcNodeConnectorNew.getReason() != PortReason.Add) { LOG.error("Dropping Port update event for {}, as DPN id is changed from {} to {}", fcNodeConnectorNew.getName(), dpnIdOld, dpnIdNew); return; } } else { LOG.warn("Port number update detected for {}", fcNodeConnectorNew.getName()); } //VM Migration or Port Number Update: Delete existing interface entry for older DPN LOG.debug("Triggering NodeConnector Remove Event for the interface: {}, {}, {}", portName, nodeConnectorId, nodeConnectorIdOld); remove(nodeConnectorId, nodeConnectorIdOld, fcNodeConnectorNew, portName, false); Can you please visit the bug for more details. Thanks and Regards, Hari From: Faseela K [mailto:[email protected]] Sent: Monday, February 05, 2018 12:02 PM To: Hari Prasad <[email protected]<mailto:[email protected]>>; [email protected]<mailto:[email protected]> Cc: Venkatrangan G - ERS, HCL Tech <[email protected]<mailto:[email protected]>> Subject: RE: [genius-dev] While migrating Vm instances, connection failed between the VM instances. Hi Hari, Genius InterfaceManager will not check for the port status flags coming in NodeConnector Add Event, and hence this should not cause any issue for the flow programming. This status comes from OVS and we just reflect the same state.So, if your PORT on OVS is really down after the migration, that can be a problem, and SSH will not work. You could check "ovs-ofctl show <bridge-name>" to see the status of the ports on the switch. Also, please give the flow dumps on both the switches, if you see that some flows are failed to be programmed after migration, so that we can analyse the failure. Thanks, Faseela From: [email protected]<mailto:[email protected]> [mailto:[email protected]] On Behalf Of Hari Prasad Sent: Thursday, February 01, 2018 5:29 PM To: [email protected]<mailto:[email protected]> Cc: Venkatrangan G - ERS, HCL Tech <[email protected]<mailto:[email protected]>> Subject: [genius-dev] While migrating Vm instances, connection failed between the VM instances. Hi All, While migrating Vm instances, connection (ssh and ping) failed between the VM instances. PFB bug https://jira.opendaylight.org/browse/NETVIRT-1049<https://apac01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fjira.opendaylight.org%2Fbrowse%2FNETVIRT-1049&data=02%7C01%7Chari.pr%40hcl.com%7Cabb8ac80f39b429b3bf208d56c622e35%7Cdd85efd06a9c4fee843ed525fa4be3ca%7C0%7C0%7C636534091316604213&sdata=55diqQe0tpdJB81RFrvuWd06kBGaEghqyx1IWXFhH7M%3D&reserved=0> Bug reproduction steps: --------------------------------- 1.Create Network 1 and Network 2 2. Create VM1 with Network 1 3. Create VM2 with Network 2 4.Live migration for VM1 5.Verify whether ssh connection from controller node is working (ssh connection established) 6.Live migration for VM2 7.Verify whether ssh connection from controller node is working (ssh connection failed) If not reproduce by above steps, please do repeat VM migration one host to another host After checking logs, there are some Node Connector update events missed (InterfaceInventoryStateListener.java) for failure VM instance. And the Add event received with some conflict data for success and failure Vm instances. Successful Vm instance: (Add event) ------------------------------- 2018-02-01 01:48:55,831 | DEBUG | eChangeHandler-0 | InterfaceInventoryStateListener | 232 - org.opendaylight.genius.interfacemanager-impl - 0.3.0 | Received NodeConnector Add Event: InstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector, 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:615256118989]]], org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector[key=NodeConnectorKey [_id=Uri [_value=openflow:615256118989:5]]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector]}, FlowCapableNodeConnector{getAdvertisedFeatures=PortFeatures [_tenMbHd=false, _tenMbFd=false, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=false, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false], getConfiguration=PortConfig [_pORTDOWN=true, _nORECV=false, _nOFWD=false, _nOPACKETIN=false], getCurrentFeature=PortFeatures [_tenMbHd=false, _tenMbFd=true, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=true, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false], getCurrentSpeed=10000, getHardwareAddress=MacAddress [_value=fe:16:3e:25:00:bc], getMaximumSpeed=0, getName=tap5be6a5a8-f9, getPeerFeatures=PortFeatures [_tenMbHd=false, _tenMbFd=false, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=false, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false], getPortNumber=PortNumberUni [_uint32=5], getQueue=[], getReason=Add, getState=State{isBlocked=false, isLinkDown=true, isLive=false, augmentations={}}, getSupported=PortFeatures [_tenMbHd=false, _tenMbFd=false, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=false, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false]} Failure Vm instance: (Add event) --------------------------------------- 2018-02-01 01:49:05,833 | DEBUG | eChangeHandler-0 | InterfaceInventoryStateListener | 232 - org.opendaylight.genius.interfacemanager-impl - 0.3.0 | Received NodeConnector Add Event: InstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector, 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:615256118989]]], org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector[key=NodeConnectorKey [_id=Uri [_value=openflow:615256118989:6]]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector]}, FlowCapableNodeConnector{getAdvertisedFeatures=PortFeatures [_tenMbHd=false, _tenMbFd=false, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=false, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false], getConfiguration=PortConfig [_pORTDOWN=false, _nORECV=false, _nOFWD=false, _nOPACKETIN=false], getCurrentFeature=PortFeatures [_tenMbHd=false, _tenMbFd=true, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=true, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false], getCurrentSpeed=10000, getHardwareAddress=MacAddress [_value=fe:16:3e:f2:05:63], getMaximumSpeed=0, getName=tapb01e4b4e-ef, getPeerFeatures=PortFeatures [_tenMbHd=false, _tenMbFd=false, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=false, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false], getPortNumber=PortNumberUni [_uint32=6], getQueue=[], getReason=Update, getState=State{isBlocked=false, isLinkDown=false, isLive=false, augmentations={}}, getSupported=PortFeatures [_tenMbHd=false, _tenMbFd=false, _hundredMbHd=false, _hundredMbFd=false, _oneGbHd=false, _oneGbFd=false, _tenGbFd=false, _fortyGbFd=false, _hundredGbFd=false, _oneTbFd=false, _other=false, _copper=false, _fiber=false, _autoeng=false, _pause=false, _pauseAsym=false]} Can you please help me to sort out the issue , Why these events are received with false data (Is that due to neutron sending request or OVS sending request) ? Please find the attachments for more detailed logs. Thanks & Regards, Hari ::DISCLAIMER:: -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The contents of this e-mail and any attachment(s) are confidential and intended for the named recipient(s) only. E-mail transmission is not guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or may contain viruses in transmission. The e mail and its contents (with or without referred errors) shall therefore not attach any liability on the originator or HCL or its affiliates. Views or opinions, if any, presented in this email are solely those of the author and may not necessarily reflect the views or opinions of HCL or its affiliates. Any form of reproduction, dissemination, copying, disclosure, modification, distribution and / or publication of this message without the prior written consent of authorized representative of HCL is strictly prohibited. If you have received this email in error please delete it and notify the sender immediately. Before opening any email and/or attachments, please check them for viruses and other defects. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_______________________________________________ openflowplugin-dev mailing list [email protected] https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
