[VTN-144] Failure in VTN Flowfilter CSIT to install flow with actions vtn-set-inet-src and vtn-set-inet-dst Created: 06/Sep/16 Updated: 19/Oct/17 |
|
| Status: | Open |
| Project: | vtn |
| Component/s: | VTN Manager |
| Affects Version/s: | unspecified |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Karthik Sivasamy | Assignee: | Unassigned |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| Attachments: |
|
| External issue ID: | 6643 |
| Description |
|
VTN Flowfilter CSIT which failed to install flows with actions vtn-set-inet-src and vtn-set-inet-dst in Boron. Followed below steps in creating VTN Flowfilter test case Below are the observation from the above log and Steps of VTN flowfilter 1) When the above Step-13 is executed, found path-fault issue between openflow:2 --> openflow:3. And vbridge1 status become DOWN. 2016-09-05 16:30:59,731 | TRACE | Runner: VTN Main | VTNFlowCondition | 194 - org.opendaylight.vtn.manager.implementation - 0.5.0.SNAPSHOT | cond_1: Matched the condition: match=[DL_TYPE=2048,IP_SRC=10.0.0.1,IP_DST=10.0.0.3], packet=[Ether[src=56:33:cb:a7:29:f5,dst=6a:ef:a7:a4:36:f2,type=0x800],Inet4[src=10.0.0.1,dst=10.0.0.3,proto=1,dscp=0],ICMP[type=8,code=0]] , new= {state=DOWN, path-faults=1}2) Few seconds later (5sec) missing edge added and inter switch link has been created. Which in turns resolves path-fault issue. 2016-09-05 16:31:04,338 | INFO | n-dispatcher-149 | VTNRoutingManager | 194 - org.opendaylight.vtn.manager.implementation - 0.5.0.SNAPSHOT | Inter-switch link has been created: {id=openflow:1:2, src=openflow:1:2, dst=openflow:3:3, static=false}2016-09-05 16:31:04,338 | TRACE | n-dispatcher-149 | TopologyGraph | 194 - org.opendaylight.vtn.manager.implementation - 0.5.0.SNAPSHOT | Edge added: openflow:1:2 -> openflow:3:3 ]}, new={id=openflow:3:3, name=s3-eth3, enabled=true, cost=1000, links=[ {id=openflow:3:3, peer=openflow:1:2}, {id=openflow:1:2, peer=openflow:1:2}]} ]}, new={id=openflow:1:2, name=s1-eth2, enabled=true, cost=1000, links=[ {id=openflow:3:3, peer=openflow:3:3}, {id=openflow:1:2, peer=openflow:3:3}]} 3) But packet doesn't match the condition even after the path-fault resolved. 2016-09-05 16:31:04,675 | TRACE | Runner: VTN Main | VTNFlowCondition | 194 - org.opendaylight.vtn.manager.implementation - 0.5.0.SNAPSHOT | cond_1: Does not match: match=[DL_TYPE=2048,IP_SRC=10.0.0.1,IP_DST=10.0.0.3], packet=[Ether[src=56:33:cb:a7:29:f5,dst=6a:ef:a7:a4:36:f2,type=0x806]] 4) Due to unmatched packet, flow entry installed without vtn-set-inet-src and vtn-set-inet-dst in openflow3:1 2016-09-05 16:31:04,684 | TRACE | entLoopGroup-5-5 | SendBarrierRpc | 194 - org.opendaylight.vtn.manager.implementation - 0.5.0.SNAPSHOT | send-barrier RPC has completed: node=openflow:3 , actions= {OUTPUT(port=openflow:3:1, len=65535)}We will add Report_Failure_Due_To_Bug in the failed test case. |
| Comments |
| Comment by Hideyuki Tai [ 07/Sep/16 ] |
|
Thank you for creating this bug report!!! I've checked your explanation, but it is not clear to me that which behavior of the VTN Manager was wrong. Could you make it clear which behavior of the VTN Manager was wrong? I'm thinking VTN Manager worked fine as expected. The VTN Manager didn't filter the packet, since the packet didn't match the condition. As the following log message showed, the packet was an ARP packet (type=0x806), but not an IP packet. On the other hand, the conditis for IP packets (DL_TYPE=2048). Therefore, I think the behavior of the VTN Manager was fine. 2016-09-05 16:31:04,675 (snip) cond_1: Does not match: match=[DL_TYPE=2048,IP_SRC=10.0.0.1,IP_DST=10.0.0.3], packet=[Ether[src=56:33:cb:a7:29:f5,dst=6a:ef:a7:a4:36:f2,type=0x806]] The following log message meant that the flow entry was installed for ARP packets (DL_TYPE=2054). The flow entry was not related to the flow filter. Therefore, that's fine. 2016-09-05 16:31:04,684 (snip) Flow entry has been installed: flow=[id=7f56000000000027-2, pri=11, timeout=(0,0), node=openflow:3, ingress=openflow:3:3, cond= {DL_SRC=56:33:cb:a7:29:f5,DL_DST=6a:ef:a7:a4:36:f2,DL_TYPE=2054,DL_VLAN=0}, actions= {OUTPUT(port=openflow:3:1, len=65535)}Therefore, I could not see any issues of the VTN Manager here. Could you explain which behavior of the VTN Manager was wrong in the test? I'm thinking that the test script of the CSIT may be wrong, although I've not checked the CSIT code deeply. Or, I'm thinking the path-fault caused the test failure. It could be that the VTN Manager didn't forward the IP packets between h1 and h3, and didn't install flow entries for them due to the path-fault. That could be the reason why the flow entries for the flow filter was not installed. In that case, we need to investigate why the path-fault occurred to check if the path-fault was expected or not. |
| Comment by Karthik Sivasamy [ 20/Sep/16 ] |
|
Attachment FailureCSIT.zip has been added with description: Attached Failure CSIT Karaf log with TRACE enabled for VTN and Openflowplugin |
| Comment by Karthik Sivasamy [ 20/Sep/16 ] |
|
Attachment SuccessCSIT.zip has been added with description: Attached Success CSIT Karaf log with TRACE enabled for VTN and Openflowplugin |
| Comment by Karthik Sivasamy [ 20/Sep/16 ] |
|
To investigate the inconsistent path-fault issue, The following has been added to the CIST test cases. A patch with the above changes has been pushed to git. The patch was tested in Sandbox and the issue are reproduced. Attached Karaf log zip file for Failed CSIT build and Success CSIT Build. We compared and analysed both logs to understand the issue. Analysis: On analyzing the failure karaf log, The Inter-Switch link between ports openflow:1:2 and openflow:3:3 removal was detected when the configuration was removed in the previous test case ‘Remove Portmap for If1 test case’ in Vtn Manager Dataflow test scenario. Log Snippet - VTN Manager detects link removal 2016-09-18 19:28:13,077 | TRACE | on-dispatcher-71 | TopologyGraph | 492 - org.opendaylight.vtn.manager.implementation - 0.5.1.SNAPSHOT | Edge removed: openflow:1:2 -> openflow:3:3 Also in the get vtn-inventory link edge opneflow:1:2 and openflow:3:3 is missing. And the same link ID is present in other test cases. VTN-Inventory of Delete VTN Test case in Failure case ]}, {"id":"openflow:3:2","cost":1000,"name":"s3-eth2","enabled":true}, {"id":"openflow:3:1","cost":1000,"name":"s3-eth1","enabled":true}],"openflow-version":"OF13"},{"id":"openflow:2","vtn-port":[{"id":"openflow:2:3","cost":1000,"name":"s2-eth3","enabled":true,"port-link":[ {"link-id":"openflow:1:1","peer":"openflow:1:1"}, {"link-id":"openflow:2:3","peer":"openflow:1:1"}]}, {"id":"openflow:2:2","cost":1000,"name":"s2-eth2","enabled":true}, {"id":"openflow:2:1","cost":1000,"name":"s2-eth1","enabled":true}],"openflow-version":"OF13"},{"id":"openflow:1","vtn-port":[{"id":"openflow:1:2","cost":1000,"name":"s1-eth2","enabled":true,"port-link":[ {"link-id":"openflow:3:3","peer":"openflow:3:3"}]},{"id":"openflow:1:1","cost":1000,"name":"s1-eth1","enabled":true,"port-link":[ {"link-id":"openflow:1:1","peer":"openflow:2:3"}, {"link-id":"openflow:2:3","peer":"openflow:2:3"}]}],"openflow-version":"OF13"}]}} VTN-Inventory of Delete VTN Test case in Success case. , {"id":"openflow:3:1","cost":1000,"name":"s3-eth1","enabled":true},{"id":"openflow:3:3","port-link":[ {"link-id":"openflow:3:3","peer":"openflow:1:2"}, {"link-id":"openflow:1:2","peer":"openflow:1:2"}],"cost":1000,"name":"s3-eth3","enabled":true}],"openflow-version":"OF13"},{"id":"openflow:2","vtn-port":[{"id":"openflow:2:3","port-link":[ {"link-id":"openflow:1:1","peer":"openflow:1:1"}, {"link-id":"openflow:2:3","peer":"openflow:1:1"}],"cost":1000,"name":"s2-eth3","enabled":true}, {"id":"openflow:2:2","cost":1000,"name":"s2-eth2","enabled":true}, {"id":"openflow:2:1","cost":1000,"name":"s2-eth1","enabled":true}],"openflow-version":"OF13"},{"id":"openflow:1","vtn-port":[{"id":"openflow:1:2","port-link":[ {"link-id":"openflow:3:3","peer":"openflow:3:3"}, {"link-id":"openflow:1:2","peer":"openflow:3:3"}],"cost":1000,"name":"s1-eth2","enabled":true},{"id":"openflow:1:1","port-link":[ {"link-id":"openflow:1:1","peer":"openflow:2:3"}, {"link-id":"openflow:2:3","peer":"openflow:2:3"}],"cost":1000,"name":"s1-eth1","enabled":true}],"openflow-version":"OF13"}]}} In the above vtn-inventory, {"link-id":"openflow:1:2","peer":"openflow:1:2"}is missing in node:id ""openflow:3"" and {"link-id":"openflow:1:2","peer":"openflow:3:3"}is missing in node:id ""openflow:1"" On completion of VTN Manager Dataflow Test scenario, VTN Manager Flowfilter test scenario is executed. From step 1 to step 13 the output of VTN-Inventory list doesn't contain Inter-switch link link edge opneflow:1:2 and openflow:3:3. VTN Inventory Output for the above Step 1 to step 13 - Inter-switch link is missing. ]}, {"id":"openflow:3:2","cost":1000,"name":"s3-eth2","enabled":true}, {"id":"openflow:3:1","cost":1000,"name":"s3-eth1","enabled":true}],"openflow-version":"OF13"},{"id":"openflow:2","vtn-port":[{"id":"openflow:2:3","cost":1000,"name":"s2-eth3","enabled":true,"port-link":[ {"link-id":"openflow:1:1","peer":"openflow:1:1"}, {"link-id":"openflow:2:3","peer":"openflow:1:1"}]}, {"id":"openflow:2:2","cost":1000,"name":"s2-eth2","enabled":true}, {"id":"openflow:2:1","cost":1000,"name":"s2-eth1","enabled":true}],"openflow-version":"OF13"},{"id":"openflow:1","vtn-port":[{"id":"openflow:1:2","cost":1000,"name":"s1-eth2","enabled":true,"port-link":[ {"link-id":"openflow:3:3","peer":"openflow:3:3"}]},{"id":"openflow:1:1","cost":1000,"name":"s1-eth1","enabled":true,"port-link":[ {"link-id":"openflow:1:1","peer":"openflow:2:3"}, {"link-id":"openflow:2:3","peer":"openflow:2:3"}]}],"openflow-version":"OF13"}]}} As the Inter-switch link is not present, Step 6 - ping h1 and h3 and Step 11 - ping h2 to h4 should actually fail but the ping is successful in CSIT. In the karaf log VTN Manager is able to successfully resolve the path 2016-09-18 19:28:14,002 | TRACE | Runner: VTN Main | VBridge | 492 - org.opendaylight.vtn.manager.implementation - 0.5.1.SNAPSHOT | 0: Packet route resolved: openflow:3:1 -> [LinkEdge[openflow:3:3 -> openflow:1:2], LinkEdge[openflow:1:1 -> openflow:2:3]] -> openflow:2:1 Also we cross verified the same ping test case with the successful CSIT job there in VTN-Inventory list Inter-switch link is present. 14) Verify Mininet ping between h1 and h3. -> pass (ping should not work) 2016-09-18 19:28:14,707 | WARN | on-dispatcher-71 | VTenantManager | 492 - org.opendaylight.vtn.manager.implementation - 0.5.1.SNAPSHOT | vBridge:Tenant1/vBridge1: Path fault: openflow:2 -> openflow:3 , new= {state=DOWN, path-faults=1}Due to this no flows are added to the switch by the VTN Manager. 15) Verify flowentry installed with vtn-set-inet-src (192.0.0.1) and vtn-set-inet-dst (192.0.0.3) -> As No flows are written this verification test fails in CSIT. During the execution of test 14 , Openflow plugin detects the link between Openflow:1:2 and Openflow:3:3 VTN Manager Added the link to the Inventory. 2016-09-18 19:28:16,786 | TRACE | on-dispatcher-71 | TopologyGraph | 492 - org.opendaylight.vtn.manager.implementation - 0.5.1.SNAPSHOT | Edge added: openflow:1:2 -> openflow:3:3 The missing inter switch links are added to the VTN inventory during step 15 and the subsequent tests are executed successfully in CSIT. {"vtn-nodes":{"vtn-node":[{"id":"openflow:3","vtn-port":[{"id":"openflow:3:3","cost":1000,"name":"s3-eth3","enabled":true,"port-link":[ {"link-id":"openflow:3:3","peer":"openflow:1:2"}, {"link-id":"openflow:1:2","peer":"openflow:1:2"}]}, {"id":"openflow:3:2","cost":1000,"name":"s3-eth2","enabled":true}, {"id":"openflow:3:1","cost":1000,"name":"s3-eth1","enabled":true}],"openflow-version":"OF13"},{"id":"openflow:2","vtn-port":[{"id":"openflow:2:3","cost":1000,"name":"s2-eth3","enabled":true,"port-link":[ {"link-id":"openflow:1:1","peer":"openflow:1:1"}, {"link-id":"openflow:2:3","peer":"openflow:1:1"}]}, {"id":"openflow:2:2","cost":1000,"name":"s2-eth2","enabled":true}, {"id":"openflow:2:1","cost":1000,"name":"s2-eth1","enabled":true}],"openflow-version":"OF13"},{"id":"openflow:1","vtn-port":[{"id":"openflow:1:2","cost":1000,"name":"s1-eth2","enabled":true,"port-link":[ {"link-id":"openflow:3:3","peer":"openflow:3:3"}, {"link-id":"openflow:1:2","peer":"openflow:3:3"}]},{"id":"openflow:1:1","cost":1000,"name":"s1-eth1","enabled":true,"port-link":[ {"link-id":"openflow:1:1","peer":"openflow:2:3"}, {"link-id":"openflow:2:3","peer":"openflow:2:3"}]}],"openflow-version":"OF13"}]}} In the ODL Inventory all the ODL ports are present for all the test cases. We found only the Port information and not link information in the ODL inventory. Observations - |