[VTN-128] CSIT for VTN Manager failed to verify ICMP action values in flowentries Created: 23/Mar/16  Updated: 19/Oct/17  Resolved: 18/Jul/16

Status: Resolved
Project: vtn
Component/s: VTN Manager
Affects Version/s: unspecified
Fix Version/s: None

Type: Bug
Reporter: Karthik Sivasamy Assignee: Unassigned
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Zip Archive icmp_karaf.zip    
External issue ID: 5587

 Description   

The CSIT flow filter test case is failing in the verification of action ICMP code and type in flowentreis

Order of Test scenarios execution
• VTN Flow filter
• vBridge Flow filter
• vBridge Interface flow filter.

Topology used
h1,h2 <--> s2 <-> s1 <-> s3 <--> h3,h4

Following are the steps followed in the CSIT test script for both OF10 and OF13.

1. Create Tenant1
2. Create vBridge1
3. Create interfaces(if1 and if2) in vBridge1
4. Create portmapping for if1 and if2.
5. Ping h1 and h3
6. Verify Ping success
7. Create vBridge2,
8. Create interfaces(if3and if4) in Vbridge 2,
9. Create portmapping for if3 and if4.
10. Ping h3 and h4
11. Verify ping success
12. Add flow condition to match h1, h3 ip address
13. Add VTN flowfilter to set flow action ("vtn-set-icmp-code-action" and "vtn-set-icmp-type-action")
14. Ping h1 and h3
15. Verify ping failure
16. Read the flow entries in mininet switch s3 to verify actions=mod_tp_dst and mod_tp_src are set or not.
17. Remove VTN Flowfilter index which has ICMP values
18. Add VBR flowfilter to set flow action ("vtn-set-icmp-code-action" and "vtn-set-icmp-type-action")
19. Ping h1 and h3
20. Verify ping failure
21. Read the flow entries in mininet switch s3 to verify actions=mod_tp_dst and mod_tp_src are set or not.
22. Remove VTN Flowfilter index which has ICMP values
23. Add VBRIf flowfilter in If1 to set flow action ("vtn-set-icmp-code-action" and "vtn-set-icmp-type-action")
24. Ping h1 and h3
25. Verify ping failure
26. Read the flow entries in mininet switch s3 to verify actions=mod_tp_dst and mod_tp_src are set or not.
27 Remove VTN Flowfilter index which has ICMP values
28. Delete flow condition
29. Delete vtn1

In the above steps, Test cases failed in the below cases.

For OF10:
In step 15, step 19 and step 23 we are expecting verify ping failure(mininet ping should not success between hosts h1 and h3) but pinging between hosts which makes test failures.
Because we have set action ICMP type=3 and cpde =1 which defines destination unreachable.

For OF13:
In step 16, step 20 and step 24 reading the flow entries in mininet switch s3 to verify actions=mod_tp_dst and mod_tp_src are set or not. But test cases fails and in mininet flows ICMP code and type values(mod_tp_src and mod_tp_dst) are not set.

To understand the above issues, analyzed karaf log for VTN Manager module while the above steps were executed. Flow entry were installed with ICMP values and removed only when remove flowfilter cases were excuted. But test fails only when verifying flows in mininet.
Attached log as zip file icmp_karaf.zip:
karaf log file name -> icmp_karaf.log

For OF10:
VTN Flow filter - Test steps 13-17
a) Flow entry install request is issued in line 2444 at time stamp 2016-03-23 05:43:14,065
b) Flow entries remove request has be issued in line 2648 at time stamp 2016-03-23 05:43:35,214

VBR Flow filter – Test steps 18 – 22
a) Flow entry install request is issued in line 2720 at time stamp 2016-03-23 05:43:35,263
b) Flow entries remove request has be issued in line 2927 at time stamp 2016-03-23 05:43:56,464

VBRIF Flow filter – Test steps 23 – 27
a) Flow entry install request is issued in line 2996 at time stamp 2016-03-23 05:43:56,507
b) Flow entries remove request has be issued in line 3167 at time stamp 2016-03-23 05:44:17,695

For OF13:
VTN Flow filter - Test steps 13-17
a) Flow entry install request is issued in line 6832 at time stamp 2016-03-23 05:48:03,683
b) Flow entries remove request has be issued in line 7036 at time stamp 2016-03-23 05:48:36,091

VBR Flow filter – Test steps 18 – 22
a) Flow entry install request is issued in line 7092 at time stamp 2016-03-23 05:48:36,130
b) Flow entries remove request has be issued in line 7236 at time stamp 2016-03-23 05:49:09,014

VBRIF Flow filter – Test steps 23 – 27
a) Flow entry install request is issued in line 7286 at time stamp 2016-03-23 05:49:09,053
b) Flow entries remove request has be issued in line 7484 at time stamp 2016-03-23 05:49:41,478

Copied dumpflow output from Mininet in Sandbox:

dump-flow log for OF10 in switch s3: Here we can see ICMP code and type value set as actions=mod_tp_dst:1,mod_tp_src:3

      • s3 ------------------------------------------------------------------------
        NXST_FLOW reply (xid=0x4):
        cookie=0x7f5600000000000e, duration=21.079s, table=0, n_packets=19, n_bytes=1862, idle_age=1, priority=14,icmp,in_port=3,vlan_tci=0x0000,dl_src=86:1f:a7:79:cb:69,dl_dst=46:fa:9e:28:b0:12,nw_src=10.0.0.1,nw_dst=10.0.0.3 actions=mod_tp_dst:1,mod_tp_src:3,output:1 <<-------------
        cookie=0x7f5600000000000f, duration=20.106s, table=0, n_packets=18, n_bytes=1764, idle_timeout=300, idle_age=1, priority=12,ip,in_port=1,vlan_tci=0x0000,dl_src=46:fa:9e:28:b0:12,dl_dst=86:1f:a7:79:cb:69,nw_src=10.0.0.3 actions=output:3
        cookie=0x7f56000000000010, duration=15.094s, table=0, n_packets=0, n_bytes=0, idle_timeout=300, idle_age=15, priority=11,arp,in_port=1,vlan_tci=0x0000,dl_src=46:fa:9e:28:b0:12,dl_dst=86:1f:a7:79:cb:69 actions=output:3
        cookie=0x7f56000000000011, duration=15.091s, table=0, n_packets=0, n_bytes=0, idle_age=15, priority=11,arp,in_port=3,vlan_tci=0x0000,dl_src=86:1f:a7:79:cb:69,dl_dst=46:fa:9e:28:b0:12 actions=output:1

dump-flow log for OF13 in switch s3: Here ICMP code and type values are not set in flowentries.

      • s3 ------------------------------------------------------------------------
        OFPST_FLOW reply (OF1.3) (xid=0x2):
        cookie=0x7f57ffffffffffff, duration=73.772s, table=0, n_packets=75, n_bytes=5612, send_flow_rem priority=0 actions=CONTROLLER:65535
        cookie=0x7f56000000000037, duration=24.247s, table=0, n_packets=0, n_bytes=0, send_flow_rem priority=11,arp,in_port=3,vlan_tci=0x0000/0x1fff,dl_src=26:33:e6:4b:32:58,dl_dst=86:d0:90:26:f9:06 actions=output:1
        cookie=0x7f56000000000038, duration=24.242s, table=0, n_packets=0, n_bytes=0, idle_timeout=300, send_flow_rem priority=11,arp,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=86:d0:90:26:f9:06,dl_dst=26:33:e6:4b:32:58 actions=output:3
        mininet>

Attached karaf log file as icmp_karaf.zip



 Comments   
Comment by Karthik Sivasamy [ 23/Mar/16 ]

Attachment icmp_karaf.zip has been added with description: Karaf log enabled TRACE for VTN Manager

Comment by Karthik Sivasamy [ 14/Jul/16 ]

Steps followed for verifying the Bug:
=====================================

Tested with Be/SR2 distro for verification of action ICMP code and type in flowentries.

Since ICMP code and type are not supported in ovs2.3.0
I have updated mininet with latest OVS 2.5.0.

Issue is not reproduced. Now i can see in flowentries created with ICMP code and type actions successfully.

Verified both Karaf.log and mininet, i have seen icmp parameters.

Followed the same steps which i followed when i raised the bug, which is in the earlier commetns.

Mininet Output:
===============

      • s3 ------------------------------------------------------------------------
        NXST_FLOW reply (xid=0x4):
        cookie=0x7f5600000000000a, duration=11.425s, table=0, n_packets=4, n_bytes=392, idle_age=7, priority=14,icmp,in_port=3,vlan_tci=0x0000/0x1fff,dl_src=ea:a1:b9:df:06:6e,dl_dst=9e:89:4a:13:cc:80,nw_src=10.0.0.1,nw_dst=10.0.0.3
        ============================================================================
        actions=load:0x3->NXM_OF_ICMP_CODE[],load:0x6->NXM_OF_ICMP_TYPE[],output:1
        ============================================================================
        cookie=0x7f56000000000009, duration=11.436s, table=0, n_packets=0, n_bytes=0, idle_timeout=300, idle_age=11, priority=11,arp,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=9e:89:4a:13:cc:80,dl_dst=ea:a1:b9:df:06:6e actions=output:3
        cookie=0x7f57ffffffffffff, duration=1191.123s, table=0, n_packets=239, n_bytes=20272, idle_age=3, priority=0 actions=CONTROLLER:65535
        mininet>

Karaf Log:
==========

2016-07-14 08:29:34,422 | DEBUG | TN Flow Thread-0 | FlowAddContext | 189 - org.opendaylight.vtn.manager.implementation - 0.4.2.Beryllium-SR2 | Data flow has been installed: id=9
2016-07-14 08:29:34,427 | TRACE | TN Flow Thread-0 | FlowAddContext | 189 - org.opendaylight.vtn.manager.implementation - 0.4.2.Beryllium-SR2 | Flow entry has been installed: flow=[id=7f5600000000000a-1, pri=14, timeout=(0,0), node=openflow:1, ingress=openflow:1:1, cond=

{DL_SRC=ea:a1:b9:df:06:6e,DL_DST=9e:89:4a:13:cc:80,DL_TYPE=2048,DL_VLAN=0,IP_SRC=10.0.0.1,IP_DST=10.0.0.3,IP_PROTO=1}

, actions=

{OUTPUT(port=openflow:1:2, len=65535)}

2016-07-14 08:29:34,432 | TRACE | TN Flow Thread-0 | FlowAddContext | 189 - org.opendaylight.vtn.manager.implementation - 0.4.2.Beryllium-SR2 | Flow entry has been installed: flow=[id=7f5600000000000a-2, pri=14, timeout=(0,0), node=openflow:3, ingress=openflow:3:3, cond=

{DL_SRC=ea:a1:b9:df:06:6e,DL_DST=9e:89:4a:13:cc:80,DL_TYPE=2048,DL_VLAN=0,IP_SRC=10.0.0.1,IP_DST=10.0.0.3,IP_PROTO=1}

, actions=

{SET_TP_DST(port=3), SET_TP_SRC(port=6), OUTPUT(port=openflow:3:1, len=65535)}

2016-07-14 08:29:34,436 | TRACE | TN Flow Thread-0 | FlowAddContext | 189 - org.opendaylight.vtn.manager.implementation - 0.4.2.Beryllium-SR2 | Flow entry has been installed: flow=[id=7f5600000000000a-0, pri=14, timeout=(300,0), node=openflow:2, ingress=openflow:2:1, cond=

{DL_SRC=ea:a1:b9:df:06:6e,DL_DST=9e:89:4a:13:cc:80,DL_TYPE=2048,DL_VLAN=0,IP_SRC=10.0.0.1,IP_DST=10.0.0.3,IP_PROTO=1}

, actions=

{OUTPUT(port=openflow:2:3, len=65535)}

2016-07-14 08:29:34,436 | DEBUG | TN Flow Thread-0 | FlowAddContext | 189 - org.opendaylight.vtn.manager.implementation - 0.4.2.Beryllium-SR2 | Data flow has been installed: id=10

Below are the flowentries from mininet for OF10.

1. Create Tenant1
2. Create vBridge1
3. Create interfaces(if1 and if2) in vBridge1
4. Create portmapping for if1 and if2.
5. Ping h1 and h3
6. Verify Ping success
7. Create vBridge2,
8. Create interfaces(if3and if4) in Vbridge 2,
9. Create portmapping for if3 and if4.
10. Ping h3 and h4
11. Verify ping success
12. Add flow condition to match h1, h3 ip address
13. Add VTN flowfilter to set flow action ("vtn-set-icmp-code-action" and "vtn-set-icmp-type-action")
14. Ping h1 and h3
15. Verify ping failure
16. Read the flow entries in mininet switch s3 to verify actions=mod_tp_dst and mod_tp_src are set or not.
17. Remove VTN Flowfilter index which has ICMP values
18. Add VBR flowfilter to set flow action ("vtn-set-icmp-code-action" and "vtn-set-icmp-type-action")
19. Ping h1 and h3
20. Verify ping failure
21. Read the flow entries in mininet switch s3 to verify actions=mod_tp_dst and mod_tp_src are set or not.
22. Remove VTN Flowfilter index which has ICMP values
23. Add VBRIf flowfilter in If1 to set flow action ("vtn-set-icmp-code-action" and "vtn-set-icmp-type-action")
24. Ping h1 and h3
25. Verify ping failure
26. Read the flow entries in mininet switch s3 to verify actions=mod_tp_dst and mod_tp_src are set or not.
27 Remove VTN Flowfilter index which has ICMP values
28. Delete flow condition
29. Delete vtn1

Comment by Karthik Sivasamy [ 14/Jul/16 ]

I have Tested for below keytypes,

• VTN Flow filter
• vBridge Flow filter
• vBridge Interface flow filter.

And in mininet i have created topolofy in both OF10 and OF13 switch.

Both are working fine.

Comment by Karthik Sivasamy [ 14/Jul/16 ]

Tested manually to verify ICMP code and Type action in Flowentries, by updating OVS version from 2.3.1 to 2.5.0 and found issue is not reproduced. So updated status to Resolved and "Wontfix"

Since CSIT cases not yet fixed, in releng CSIT environment, OVS version not yet updated to OVS 2.5.0. Changing of actions ICMP code and types fields are supported from OVS 2.5.0.

Once the OVS version is updated to OVS2.5.0 in releng environment, we will apply fix the patch to enable ICMP code and Type cases.

And then we will change bug status to 'Resolved' and 'Fixed'.

Generated at Wed Feb 07 20:48:07 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.