From ca5792f0d80ffd5202dfe2db9baba356c33461fa Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Tue, 26 Jan 2016 16:23:30 -0800 Subject: [PATCH] tests: Change ADD_OF_PORTS from macro to shell function. This reduces the size of the generated testsuite and makes it possible to pass arguments that vary at runtime instead of at the time of translation from .at to shell script. Signed-off-by: Ben Pfaff Acked-by: Jarno Rajahalme --- tests/bridge.at | 2 +- tests/classifier.at | 10 +- tests/learn.at | 6 +- tests/ofproto-dpif.at | 204 ++++++++++++++++++++-------------------- tests/ofproto-macros.at | 26 ++--- tests/ofproto.at | 14 +-- tests/tunnel.at | 2 +- tests/vlan-splinters.at | 2 +- 8 files changed, 134 insertions(+), 132 deletions(-) diff --git a/tests/bridge.at b/tests/bridge.at index 817931f87..c9ad1e6e5 100644 --- a/tests/bridge.at +++ b/tests/bridge.at @@ -8,7 +8,7 @@ AT_SETUP([bridge - ports that disappear get added back]) OVS_VSWITCHD_START # Add some ports and make sure that they show up in the datapath. -ADD_OF_PORTS([br0], 1, 2) +add_of_ports br0 1 2 AT_CHECK([ovs-appctl dpif/show], [0], [dnl dummy@ovs-dummy: hit:0 missed:0 br0: diff --git a/tests/classifier.at b/tests/classifier.at index 3520acd07..b11050848 100644 --- a/tests/classifier.at +++ b/tests/classifier.at @@ -30,7 +30,7 @@ m4_foreach( AT_BANNER([flow classifier lookup segmentation]) AT_SETUP([flow classifier - lookup segmentation]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2], [3]) +add_of_ports br0 1 2 3 AT_DATA([flows.txt], [dnl table=0 in_port=1 priority=16,tcp,nw_dst=10.1.0.0/255.255.0.0,action=output(3) table=0 in_port=1 priority=32,tcp,nw_dst=10.1.2.15,action=output(2) @@ -68,7 +68,7 @@ AT_CLEANUP AT_BANNER([flow classifier prefix lookup]) AT_SETUP([flow classifier - prefix lookup]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2], [3]) +add_of_ports br0 1 2 3 AT_CHECK([ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- --id=@N1 create Flow_Table name=t0], [0], [ignore], []) AT_DATA([flows.txt], [dnl table=0 in_port=1 priority=16,tcp,nw_dst=10.1.0.0/255.255.0.0,action=output(3) @@ -133,7 +133,7 @@ AT_BANNER([conjunctive match]) AT_SETUP([single conjunctive match]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2, 3, 4, 5) +add_of_ports br0 1 2 3 4 5 AT_DATA([flows.txt], [dnl conj_id=1,actions=3 priority=100,ip,ip_src=10.0.0.1,actions=conjunction(1,1/2) @@ -170,7 +170,7 @@ AT_CLEANUP AT_SETUP([multiple conjunctive match]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2, 3, 4, 5) +add_of_ports br0 1 2 3 4 5 AT_DATA([flows.txt], [dnl conj_id=1,actions=1 conj_id=2,actions=2 @@ -246,7 +246,7 @@ AT_CLEANUP # priority flow. This test checks this special case. AT_SETUP([conjunctive match priority fallback]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2, 3, 4, 5, 6, 7) +add_of_ports br0 1 2 3 4 5 6 7 AT_DATA([flows.txt], [dnl conj_id=1,actions=1 conj_id=3,actions=3 diff --git a/tests/learn.at b/tests/learn.at index 2b2fc2850..97d78bf0f 100644 --- a/tests/learn.at +++ b/tests/learn.at @@ -302,7 +302,7 @@ AT_CLEANUP # flow. AT_SETUP([learning action - self-modifying flow]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2, 3) +add_of_ports br0 1 2 3 ovs-appctl time/stop # Set up flow table for TCPv4 port learning. @@ -344,7 +344,7 @@ AT_CLEANUP # attributed correctly. AT_SETUP([learning action - self-modifying flow with idle_timeout]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2, 3) +add_of_ports br0 1 2 3 ovs-appctl time/stop # Set up flow table for TCPv4 port learning. @@ -402,7 +402,7 @@ AT_CLEANUP # attributed correctly. AT_SETUP([learning action - self-modifying flow with hard_timeout]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2, 3) +add_of_ports br0 1 2 3 ovs-appctl time/stop # Set up flow table for TCPv4 port learning. diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at index aa2f1bb44..75db58fda 100644 --- a/tests/ofproto-dpif.at +++ b/tests/ofproto-dpif.at @@ -209,8 +209,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - resubmit]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11], [12], [13], [14], [15], - [16], [17], [18], [19], [20], [21]) +add_of_ports br0 1 10 11 12 13 14 15 16 17 18 19 20 21 AT_DATA([flows.txt], [dnl table=0 in_port=1 priority=1000 icmp actions=output(10),resubmit(2),output(19),resubmit(3),output(21) table=0 in_port=2 priority=1500 icmp actions=output(11),resubmit(,1),output(16),resubmit(2,1),output(18) @@ -229,7 +228,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - goto table]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11]) +add_of_ports br0 1 10 11 echo "table=0 in_port=1 actions=output(10),goto_table(1)" > flows.txt for i in `seq 1 63`; do echo "table=$i actions=goto_table($(($i+1)))"; done >> flows.txt echo "table=64 actions=output(11)" >> flows.txt @@ -243,7 +242,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - write actions]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11], [12], [13]) +add_of_ports br0 1 10 11 12 13 AT_DATA([flows.txt], [dnl table=0 in_port=1,ip actions=output(10),write_actions(set_field:192.168.3.90->ip_src,output(12)),goto_table(1) table=1 ip actions=write_actions(output(13)),goto_table(2) @@ -260,7 +259,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - modify IPv6 Neighbor Solitication (ND)]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11], [12], [13]) +add_of_ports br0 1 10 11 12 13 AT_DATA([flows.txt], [dnl table=0 in_port=1,icmp6,icmpv6_type=135 actions=output(10),write_actions(set_field:fe80::3->nd_target,set_field:aa:aa:aa:aa:aa:aa->nd_sll,output(12)),goto_table(1) table=1 icmp6 actions=write_actions(output(13)),goto_table(2) @@ -279,7 +278,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - clear actions]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11], [12]) +add_of_ports br0 1 10 11 12 AT_DATA([flows.txt], [dnl table=0 in_port=1,ip actions=output(10),write_actions(set_field:192.168.3.90->ip_src,output(12)),goto_table(1) table=1 tcp actions=set_field:91->tp_src,output(11),clear_actions @@ -295,7 +294,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - group chaining]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11]) +add_of_ports br0 1 10 11 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=set_field:192.168.3.90->ip_src,group:123,bucket=output:11']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 'group_id=123,type=all,bucket=output:10']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=group:1234']) @@ -308,7 +307,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - all group in action list]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11]) +add_of_ports br0 1 10 11 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=output:10,set_field:192.168.3.90->ip_src,bucket=output:11']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=group:1234']) AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'], [0], [stdout]) @@ -323,7 +322,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - indirect group in action list]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10]) +add_of_ports br0 1 10 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 group_id=1234,type=indirect,bucket=output:10]) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=group:1234']) AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'], [0], [stdout]) @@ -335,7 +334,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - group actions have no effect afterwards]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10]) +add_of_ports br0 1 10 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=select,bucket=set_field:192.168.3.90->ip_src,output:10']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=group:1234,output:10']) AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'], [0], [stdout]) @@ -347,7 +346,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - all group in action set]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11]) +add_of_ports br0 1 10 11 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=output:10,set_field:192.168.3.90->ip_src,bucket=output:11']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)']) AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'], [0], [stdout]) @@ -362,7 +361,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - indirect group in action set]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10]) +add_of_ports br0 1 10 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 group_id=1234,type=indirect,bucket=output:10]) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)']) AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'], [0], [stdout]) @@ -374,7 +373,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - select group]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11]) +add_of_ports br0 1 10 11 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=select,bucket=output:10,bucket=output:11']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)']) @@ -394,7 +393,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - select group with watch port]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11]) +add_of_ports br0 1 10 11 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=select,bucket=watch_port:10,output:10,bucket=output:11']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)']) AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:07,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'], [0], [stdout]) @@ -406,7 +405,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - select group with weight]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11], [12]) +add_of_ports br0 1 10 11 12 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=select,bucket=output:10,bucket=output:11,weight=2000,bucket=output:12,weight=0']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)']) AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:07,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'], [0], [stdout]) @@ -418,7 +417,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - select group with hash selection method]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11]) +add_of_ports br0 1 10 11 AT_CHECK([ovs-ofctl -O OpenFlow15 add-group br0 'group_id=1234,type=select,selection_method=hash,fields=eth_dst,bucket=output:10,bucket=output:11']) AT_CHECK([ovs-ofctl -O OpenFlow15 add-flow br0 'ip actions=write_actions(group:1234)']) @@ -451,7 +450,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - fast failover group]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11]) +add_of_ports br0 1 10 11 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=ff,bucket=watch_port:10,output:10,bucket=watch_port:11,output:11']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)']) AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'], [0], [stdout]) @@ -463,7 +462,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - group stats single bucket]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11]) +add_of_ports br0 1 10 11 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=select,bucket=output:10,weight=2000,bucket=output:11,weight=0']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)']) ( @@ -484,7 +483,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - group stats all buckets]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11]) +add_of_ports br0 1 10 11 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=output:10,bucket=output:11']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)']) ( @@ -505,7 +504,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - registers]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [20], [21], [22], [33], [90]) +add_of_ports br0 20 21 22 33 90 AT_DATA([flows.txt], [dnl in_port=90 actions=resubmit:2,resubmit:3,resubmit:4,resubmit:91 in_port=91 actions=resubmit:5,resubmit:6,resubmit:7,resubmit:92 @@ -542,7 +541,7 @@ dnl Tests that the standardized xregs are mapped onto the legacy OVS registers dnl in the manner documented in ovs-ofctl(8). AT_SETUP([ofproto-dpif - extended registers]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2], [3]) +add_of_ports br0 1 2 3 AT_DATA([flows.txt], [dnl table=0 actions=load:0xfedcba9876543210->OXM_OF_PKT_REG1[[]],resubmit(,1) table=1,reg2=0xfedcba98,reg3=0x76543210 actions=2 @@ -561,7 +560,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - load and move order]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [10], [11]) +add_of_ports br0 1 10 11 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=output:10,move:NXM_NX_REG1[[]]->NXM_OF_IP_SRC[[]],bucket=output:11']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(load:0xffffffff->NXM_NX_REG1[[]],move:NXM_NX_REG1[[]]->NXM_NX_REG2[[]],group:1234)']) AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'], [0], [stdout]) @@ -575,7 +574,7 @@ AT_CLEANUP dnl Tests that 1.5 copy-field can copy into the standardized xregs. AT_SETUP([ofproto-dpif - copy-field into extended registers]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2], [3]) +add_of_ports br0 1 2 3 AT_DATA([flows.txt], [dnl table=0 actions=move:OXM_OF_ETH_SRC[[0..47]]->OXM_OF_PKT_REG0[[0..47]],goto_table(1) table=1,xreg0=0x0000505400000005 actions=2 @@ -595,7 +594,7 @@ AT_CLEANUP dnl Tests that 1.5 set-field with mask in the metadata register. AT_SETUP([ofproto-dpif - masked set-field into metadata]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2], [3]) +add_of_ports br0 1 2 3 AT_DATA([flows.txt], [dnl table=0 actions=set_field:0xfafafafa5a5a5a5a->metadata,goto_table(1) table=1 actions=set_field:0x6b/0xff->metadata,goto_table(2) @@ -617,8 +616,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - actset_output]) OVS_VSWITCHD_START -ADD_OF_PORTS( - [br0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13]) +add_of_ports br0 1 2 3 4 5 6 7 8 9 10 11 12 13 AT_DATA([flows.txt], [dnl table=0,actset_output=unset actions=write_actions(output(2)),goto_table(1) table=1 actions=move:ONFOXM_ET_ACTSET_OUTPUT[[0..31]]->OXM_OF_PKT_REG0[[0..31]],goto_table(2) @@ -658,7 +656,7 @@ OVS_VSWITCHD_STOP AT_CLEANUP AT_SETUP([ofproto-dpif - push-pop]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [20], [21], [22], [33], [90]) +add_of_ports br0 20 21 22 33 90 AT_DATA([flows.txt], [dnl in_port=90 actions=load:20->NXM_NX_REG0[[0..7]],load:21->NXM_NX_REG1[[0..7]],load:22->NXM_NX_REG2[[0..7]], load:33->NXM_NX_REG3[[0..7]], push:NXM_NX_REG0[[]], push:NXM_NX_REG1[[0..7]],push:NXM_NX_REG2[[0..15]], push:NXM_NX_REG3[[]], resubmit:2, resubmit:3, resubmit:4, resubmit:5 in_port=2 actions=pop:NXM_NX_REG0[[0..7]],output:NXM_NX_REG0[[]] @@ -677,7 +675,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - output]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [9], [10], [11], [55], [66], [77], [88]) +add_of_ports br0 1 9 10 11 55 66 77 88 AT_DATA([flows.txt], [dnl in_port=1 actions=resubmit:2,resubmit:3,resubmit:4,resubmit:5,resubmit:6,resubmit:7,resubmit:8 in_port=2 actions=output:9 @@ -698,7 +696,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - dec_ttl]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2], [3], [4]) +add_of_ports br0 1 2 3 4 AT_DATA([flows.txt], [dnl table=0 in_port=1 action=dec_ttl,output:2,resubmit(1,1),output:4 table=1 in_port=1 action=dec_ttl,output:3 @@ -742,7 +740,7 @@ dnl A number of similar rules are added to try and exercise dnl xrealloc sufficiently that it returns a different base pointer AT_SETUP([ofproto-dpif - dec_ttl without arguments at offset 32 in ofpacts]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1]) +add_of_ports br0 1 (for i in `seq 0 255`; do printf "dl_src=10:11:11:11:11:%02x actions=output:1,output:1,output:1,dec_ttl,controller\n" $i done) > flows.txt @@ -759,7 +757,7 @@ dnl A number of similar rules are added to try and exercise dnl xrealloc sufficiently that it returns a different base pointer AT_SETUP([ofproto-dpif - dec_ttl with arguments at offset 32 in ofpacts]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1]) +add_of_ports br0 1 (for i in `seq 0 255`; do printf "dl_src=10:11:11:11:11:%02x actions=output:1,output:1,output:1,dec_ttl(1),controller\n" $i done) > flows.txt @@ -776,7 +774,7 @@ dnl A number of similar rules are added to try and exercise dnl xrealloc sufficiently that it returns a different base pointer AT_SETUP([ofproto-dpif - note at offset 24 in ofpacts]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1]) +add_of_ports br0 1 (for i in `seq 0 255`; do printf "dl_src=10:11:11:11:11:%02x actions=output:1,output:1,note:ff,controller\n" $i done) > flows.txt @@ -786,7 +784,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - output, OFPP_NONE ingress port]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_CHECK([ovs-ofctl add-flow br0 action=normal]) @@ -804,7 +802,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - DSCP]) OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 type=dummy]) -ADD_OF_PORTS([br0], [9]) +add_of_ports br0 9 AT_DATA([flows.txt], [dnl actions=output:LOCAL,enqueue:1:1,enqueue:1:2,enqueue:1:2,enqueue:1:1,output:1,mod_nw_tos:0,output:1,output:LOCAL ]) @@ -831,7 +829,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - output/flood flags]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2], [3], [4], [5], [6], [7]) +add_of_ports br0 1 2 3 4 5 6 7 AT_DATA([flows.txt], [dnl in_port=local actions=local,flood @@ -3023,7 +3021,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - ARP modification slow-path]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 ovs-vsctl -- set Interface p2 type=dummy options:pcap=p2.pcap ovs-ofctl add-flow br0 'in_port=1,arp actions=load:2->OXM_OF_ARP_OP[[]],2,load:0xc0a88001->OXM_OF_ARP_SPA[[]],2,load:0x404444444441->OXM_OF_ARP_THA[[]],2' @@ -3694,7 +3692,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - fragment handling - trace]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2], [3], [4], [5], [6], [90]) +add_of_ports br0 1 2 3 4 5 6 90 AT_DATA([flows.txt], [dnl priority=75 tcp ip_frag=no tp_dst=80 actions=move:OXM_OF_TCP_DST[[]]->OXM_OF_TCP_SRC[[]],output:1 priority=75 tcp ip_frag=first tp_dst=80 actions=move:OXM_OF_TCP_DST[[]]->OXM_OF_TCP_SRC[[]],output:2 @@ -3743,7 +3741,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - fragment handling - upcall]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2], [3], [4], [5], [6], [90]) +add_of_ports br0 1 2 3 4 5 6 90 AT_DATA([flows.txt], [dnl priority=75 tcp ip_frag=no tp_dst=80 actions=set_field:81->tcp_dst,output:1 priority=75 tcp ip_frag=first tp_dst=80 actions=set_field:81->tcp_dst,output:2 @@ -3818,7 +3816,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - fragment handling - actions]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2], [3], [4], [5], [6], [90]) +add_of_ports br0 1 2 3 4 5 6 90 AT_CHECK([ovs-ofctl add-flow br0 "tcp,ip_frag=later actions=move:OXM_OF_TCP_DST[[0..7]]->OXM_OF_TCP_SRC[[0..7]],output:1"], [1], [], [stderr]) AT_CHECK([tail -2 stderr | sed 's/^.*|WARN|//'], [0], [dnl @@ -3920,7 +3918,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - exit]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2], [3], [10], [11], [12], [13], [14]) +add_of_ports br0 1 2 3 10 11 12 13 14 AT_DATA([flows.txt], [dnl in_port=1 actions=output:10,exit,output:11 in_port=2 actions=output:12,resubmit:1,output:12 @@ -3945,7 +3943,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - mirroring, select_all]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2, 3) +add_of_ports br0 1 2 3 ovs-vsctl \ set Bridge br0 mirrors=@m --\ --id=@p3 get Port p3 --\ @@ -3975,7 +3973,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - mirroring, select_src]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2, 3) +add_of_ports br0 1 2 3 ovs-vsctl \ set Bridge br0 mirrors=@m --\ --id=@p1 get Port p1 -- --id=@p3 get Port p3 --\ @@ -4003,7 +4001,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - mirroring, OFPP_NONE ingress port]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2) +add_of_ports br0 1 2 ovs-vsctl \ set Bridge br0 mirrors=@m --\ --id=@p2 get Port p2 --\ @@ -4024,7 +4022,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - mirroring, select_dst]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2, 3) +add_of_ports br0 1 2 3 ovs-vsctl \ set Bridge br0 mirrors=@m --\ --id=@p2 get Port p2 -- --id=@p3 get Port p3 --\ @@ -4054,7 +4052,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - mirroring, select_vlan]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2, 3) +add_of_ports br0 1 2 3 ovs-vsctl \ set Bridge br0 mirrors=@m --\ --id=@p2 get Port p2 -- --id=@p3 get Port p3 --\ @@ -4089,7 +4087,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - mirroring, output_port]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2, 3) +add_of_ports br0 1 2 3 ovs-vsctl \ set Bridge br0 mirrors=@m --\ --id=@p3 get Port p3 --\ @@ -4118,7 +4116,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - mirroring, output_vlan]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2) +add_of_ports br0 1 2 ovs-vsctl \ set Bridge br0 mirrors=@m --\ --id=@m create Mirror name=mymirror select_all=true output_vlan=12 @@ -4156,7 +4154,7 @@ AT_CLEANUP # would cause the packet to be mirrored to port 3 a second time. AT_SETUP([ofproto-dpif - mirroring with recirculation]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2, 3, 4) +add_of_ports br0 1 2 3 4 ovs-vsctl \ set Bridge br0 mirrors=@m --\ --id=@p3 get Port p3 --\ @@ -4183,7 +4181,7 @@ AT_CLEANUP # the current table rather than specifying a table). AT_SETUP([ofproto-dpif - resubmit with recirculation]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2], [3]) +add_of_ports br0 1 2 3 AT_DATA([flows.txt], [dnl table=0 in_port=1 actions=2,resubmit(,1) @@ -4208,7 +4206,7 @@ AT_CLEANUP # re-executed when execution continues later post-recirculation. AT_SETUP([ofproto-dpif - recirculation after resubmit]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_DATA([flows.txt], [dnl table=0 in_port=1 actions=resubmit(,1),2 @@ -4233,7 +4231,7 @@ AT_CLEANUP # ofproto/trace br_name br_flow [-generate|packet] AT_SETUP([ofproto-dpif - ofproto/trace command 1]) OVS_VSWITCHD_START([set bridge br0 fail-mode=standalone]) -ADD_OF_PORTS([br0], 1, 2, 3) +add_of_ports br0 1 2 3 AT_DATA([flows.txt], [dnl in_port=1 actions=output:2 @@ -4374,7 +4372,7 @@ AT_CLEANUP # The second test tests the corner cases AT_SETUP([ofproto-dpif - ofproto/trace command 2]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2) +add_of_ports br0 1 2 # Define flows odp_flow="in_port(1),eth(src=50:54:00:00:00:01,dst=50:54:00:00:00:02)" @@ -4538,7 +4536,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - ofproto/trace-packet-out]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2, 3) +add_of_ports br0 1 2 3 AT_DATA([flows.txt], [dnl in_port=1 actions=output:2 @@ -4568,7 +4566,7 @@ m4_define([OFPROTO_TRACE], AT_SETUP([ofproto-dpif - MAC learning]) OVS_VSWITCHD_START([set bridge br0 fail-mode=standalone]) -ADD_OF_PORTS([br0], 1, 2, 3) +add_of_ports br0 1 2 3 arp='eth_type(0x0806),arp(sip=192.168.0.1,tip=192.168.0.2,op=1,sha=50:54:00:00:00:05,tha=00:00:00:00:00:00)' @@ -4619,7 +4617,7 @@ AT_CHECK( [ovs-vsctl \ -- add-br br1 \ -- set bridge br1 datapath-type=dummy]) -ADD_OF_PORTS([br1], 4, 5) +add_of_ports br1 4 5 # Trace some packet arrivals in br1 to create MAC learning entries there too. OFPROTO_TRACE( @@ -4658,7 +4656,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - MAC table overflow]) OVS_VSWITCHD_START( [set bridge br0 fail-mode=standalone other-config:mac-table-size=10]) -ADD_OF_PORTS([br0], 1, 2, 3) +add_of_ports br0 1 2 3 arp='eth_type(0x0806),arp(sip=192.168.0.1,tip=192.168.0.2,op=1,sha=50:54:00:00:00:05,tha=00:00:00:00:00:00)' @@ -4718,7 +4716,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - MAC table overflow fairness]) OVS_VSWITCHD_START( [set bridge br0 fail-mode=standalone other-config:mac-table-size=10]) -ADD_OF_PORTS([br0], 1, 2, 3, 4, 5, 6) +add_of_ports br0 1 2 3 4 5 6 arp='eth_type(0x0806),arp(sip=192.168.0.1,tip=192.168.0.2,op=1,sha=50:54:00:00:00:05,tha=00:00:00:00:00:00)' @@ -4794,7 +4792,7 @@ m4_define([CHECK_SFLOW_SAMPLING_PACKET], PARSE_LISTENING_PORT([test-sflow.log], [SFLOW_PORT]) ovs-appctl time/stop - ADD_OF_PORTS([br0], 1, 2) + add_of_ports br0 1 2 ovs-vsctl \ set Interface br0 options:ifindex=1002 -- \ set Interface p1 options:ifindex=1004 -- \ @@ -5342,7 +5340,7 @@ AT_SETUP([ofproto-dpif - sFlow packet sampling - MPLS]) AT_XFAIL_IF([test "$IS_WIN32" = "yes"]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_DATA([flows.txt], [dnl table=0 dl_src=50:54:00:00:00:09 actions=push_mpls:0x8847,set_mpls_label:789,set_mpls_tc:4,set_mpls_ttl:32,2 table=0 dl_src=50:54:00:00:00:0b actions=pop_mpls:0x0800,2 @@ -5440,7 +5438,7 @@ AT_CLEANUP # cause a record to be sent. m4_define([CHECK_NETFLOW_EXPIRATION], [OVS_VSWITCHD_START([set Bridge br0 fail-mode=standalone]) - ADD_OF_PORTS([br0], 1, 2) + add_of_ports br0 1 2 ovs-appctl time/stop on_exit 'kill `cat test-netflow.pid`' @@ -5488,7 +5486,7 @@ AT_CLEANUP # Test that basic NetFlow reports active expirations correctly. m4_define([CHECK_NETFLOW_ACTIVE_EXPIRATION], [OVS_VSWITCHD_START([set Bridge br0 fail-mode=standalone]) - ADD_OF_PORTS([br0], 1, 2) + add_of_ports br0 1 2 on_exit 'kill `cat test-netflow.pid`' AT_CHECK([ovstest test-netflow --log-file --detach --no-chdir --pidfile 0:$1 > netflow.log], [0], [], [ignore]) @@ -5572,7 +5570,7 @@ dnl configure IPFIX and ensure that sample action generation works at the dnl datapath level. AT_SETUP([ofproto-dpif - Basic IPFIX sanity check]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2) +add_of_ports br0 1 2 dnl Sample every packet using bridge-based sampling AT_CHECK([ovs-vsctl -- set bridge br0 ipfix=@fix -- \ @@ -5774,8 +5772,8 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - ovs-appctl dpif/dump-dps]) OVS_VSWITCHD_START([add-br br1 -- set bridge br1 datapath-type=dummy]) -ADD_OF_PORTS([br0], [1], [2]) -ADD_OF_PORTS([br1], [3]) +add_of_ports br0 1 2 +add_of_ports br1 3 AT_CHECK([ovs-appctl dpif/dump-dps], [0], [dnl dummy@br0 @@ -5786,8 +5784,8 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - ovs-appctl dpif/show]) OVS_VSWITCHD_START([add-br br1 -- set bridge br1 datapath-type=dummy]) -ADD_OF_PORTS([br0], [1], [2]) -ADD_OF_PORTS([br1], [3]) +add_of_ports br0 1 2 +add_of_ports br1 3 AT_CHECK([ovs-appctl dpif/show], [0], [dnl dummy@ovs-dummy: hit:0 missed:0 @@ -5807,8 +5805,8 @@ AT_SETUP([ofproto-dpif - ovs-appctl dpif/dump-flows]) OVS_VSWITCHD_START([add-br br1 -- \ set bridge br1 datapath-type=dummy fail-mode=secure -- \ set Open_vSwitch . other_config:max-idle=10000]) -ADD_OF_PORTS([br0], [1], [2]) -ADD_OF_PORTS([br1], [3]) +add_of_ports br0 1 2 +add_of_ports br1 3 AT_CHECK([ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) AT_CHECK([ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=0,code=0)']) @@ -5840,7 +5838,7 @@ AT_SETUP([ofproto-dpif - ovs-appctl dpif/get-flow]) OVS_VSWITCHD_START([add-br br1 -- \ set bridge br1 datapath-type=dummy fail-mode=secure -- \ set Open_vSwitch . other_config:max-idle=10000]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_CHECK([ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) ovs-appctl revalidator/wait @@ -5934,8 +5932,8 @@ OVS_VSWITCHD_START([add-br br1 \ -- add-port br1 pbr1 -- set int pbr1 type=patch options:peer=pbr0 \ -- add-port br0 pbr0 -- set int pbr0 type=patch options:peer=pbr1]) -ADD_OF_PORTS([br0], [2]) -ADD_OF_PORTS([br1], [3]) +add_of_ports br0 2 +add_of_ports br1 3 AT_CHECK([ovs-appctl upcall/disable-ufid], [0], [Datapath dumping tersely using UFID disabled ], []) @@ -6009,8 +6007,8 @@ OVS_VSWITCHD_START([add-br br1 \ -- add-port br1 pbr1 -- set int pbr1 type=patch options:peer=pbr0 \ -- add-port br0 pbr0 -- set int pbr0 type=patch options:peer=pbr1]) -ADD_OF_PORTS([br0], [2]) -ADD_OF_PORTS([br1], [3]) +add_of_ports br0 2 +add_of_ports br1 3 AT_CHECK([ovs-appctl upcall/disable-ufid], [0], [Datapath dumping tersely using UFID disabled ], []) @@ -6054,7 +6052,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - port duration]) OVS_VSWITCHD_START([set Bridge br0 protocols=OpenFlow13]) -ADD_OF_PORTS([br0], 1, 2) +add_of_ports br0 1 2 ovs-appctl time/stop ovs-appctl time/warp 10000 @@ -6075,7 +6073,7 @@ AT_BANNER([ofproto-dpif -- megaflows]) AT_SETUP([ofproto-dpif megaflow - port classification]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_DATA([flows.txt], [dnl table=0 in_port=1 actions=output(2) ]) @@ -6093,7 +6091,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - L2 classification]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_DATA([flows.txt], [dnl table=0 in_port=1,dl_src=50:54:00:00:00:09 actions=output(2) ]) @@ -6111,7 +6109,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - L3 classification]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_CHECK([ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- --id=@N1 create Flow_Table name=t0 prefixes=nw_dst,nw_src], [0], [ignore], []) AT_DATA([flows.txt], [dnl table=0 in_port=1,icmp,nw_src=10.0.0.4 actions=output(2) @@ -6130,7 +6128,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - IPv6 classification]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_CHECK([ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- --id=@N1 create Flow_Table name=t0 prefixes=ipv6_dst,ipv6_src], [0], [ignore], []) AT_DATA([flows.txt], [dnl table=0 in_port=1,ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=output(2) @@ -6149,7 +6147,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - L4 classification]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_DATA([flows.txt], [dnl table=0 in_port=1,icmp,icmp_type=8 actions=output(2) ]) @@ -6167,7 +6165,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - normal]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_CHECK([ovs-ofctl add-flow br0 action=normal]) AT_CHECK([ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) AT_CHECK([ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) @@ -6182,7 +6180,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - mpls]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_DATA([flows.txt], [dnl table=0 dl_src=50:54:00:00:00:09 actions=push_mpls:0x8847,2 table=0 dl_src=50:54:00:00:00:0b actions=pop_mpls:0x0800,2 @@ -6202,7 +6200,7 @@ AT_CLEANUP m4_define([CHECK_MEGAFLOW_NETFLOW], [OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) - ADD_OF_PORTS([br0], [1], [2]) + add_of_ports br0 1 2 dnl NetFlow configuration disables wildcarding relevant fields on_exit 'kill `cat test-netflow.pid`' @@ -6298,7 +6296,7 @@ OVS_VSWITCHD_START( AT_CHECK([ovs-appctl netdev-dummy/set-admin-state up], 0, [OK ]) AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [7]) +add_of_ports br0 7 AT_CHECK([ovs-ofctl add-flow br0 action=normal]) AT_CHECK([ovs-ofctl add-flow br1 action=normal]) ovs-appctl time/stop @@ -6316,7 +6314,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - resubmit port action]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_DATA([flows.txt], [dnl table=0 in_port=1,ip actions=resubmit(90) table=0 in_port=90,dl_src=50:54:00:00:00:09 actions=output(2) @@ -6335,7 +6333,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - resubmit table action]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_DATA([flows.txt], [dnl table=0 in_port=1,ip actions=resubmit(,1) table=1 dl_src=50:54:00:00:00:09 actions=output(2) @@ -6355,7 +6353,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - goto_table action]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_DATA([flows.txt], [dnl table=0 in_port=1,ip actions=goto_table(1) table=1 dl_src=50:54:00:00:00:09 actions=output(2) @@ -6374,7 +6372,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - mirroring, select_all]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2], [3]) +add_of_ports br0 1 2 3 ovs-vsctl \ set Bridge br0 mirrors=@m --\ --id=@p3 get Port p3 --\ @@ -6397,7 +6395,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - mirroring, select_vlan]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2], [3]) +add_of_ports br0 1 2 3 ovs-vsctl \ set Bridge br0 mirrors=@m --\ --id=@p2 get Port p2 -- --id=@p3 get Port p3 --\ @@ -6420,7 +6418,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - move action]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_DATA([flows.txt], [dnl table=0 in_port=1 ip,actions=move:NXM_OF_IP_SRC[[]]->NXM_NX_REG0[[]],resubmit(90) table=0 in_port=90 ip,actions=move:NXM_NX_REG0[[]]->NXM_NX_REG1[[]],resubmit(91) @@ -6440,7 +6438,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - push action]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_DATA([flows.txt], [dnl table=0 in_port=1 ip,actions=push:NXM_OF_IP_SRC[[]],output(2) ]) @@ -6458,7 +6456,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - learning]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_DATA([flows.txt], [dnl table=0 in_port=1 actions=load:2->NXM_NX_REG0[[0..15]],learn(table=1,priority=65535,NXM_OF_ETH_SRC[[]],NXM_OF_VLAN_TCI[[0..11]],output:NXM_NX_REG0[[0..15]]),output:2 ]) @@ -6518,7 +6516,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - dec_ttl]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_CHECK([ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- --id=@N1 create Flow_Table name=t0 prefixes=nw_dst,nw_src], [0], [ignore], []) AT_DATA([flows.txt], [dnl table=0 in_port=1,icmp,nw_src=10.0.0.4 actions=dec_ttl,output(2) @@ -6537,7 +6535,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - set dl_dst]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_DATA([flows.txt], [dnl table=0 in_port=1 actions=mod_dl_dst(50:54:00:00:00:0a),output(2) ]) @@ -6558,7 +6556,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif megaflow - disabled]) OVS_VSWITCHD_START AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_DATA([flows.txt], [dnl table=0 in_port=1,ip,nw_dst=10.0.0.1 actions=output(2) table=0 in_port=1,ip,nw_dst=10.0.0.3 actions=drop @@ -6590,7 +6588,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - datapath port number change]) OVS_VSWITCHD_START([set Bridge br0 fail-mode=standalone]) -ADD_OF_PORTS([br0], 1) +add_of_ports br0 1 # Trace a flow that should output to p1. AT_CHECK([ovs-appctl ofproto/trace br0 in_port=LOCAL,dl_src=10:20:30:40:50:60], @@ -6764,7 +6762,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - exponential resubmit chain]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1) +add_of_ports br0 1 (for i in `seq 1 64`; do j=`expr $i + 1` echo "in_port=$i, actions=resubmit:$j, resubmit:$j, local" @@ -6782,7 +6780,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - too many output actions]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1) +add_of_ports br0 1 (for i in `seq 1 12`; do j=`expr $i + 1` echo "in_port=$i, actions=resubmit:$j, resubmit:$j, local" @@ -6800,7 +6798,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - stack too deep]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1) +add_of_ports br0 1 (for i in `seq 1 12`; do j=`expr $i + 1` echo "in_port=$i, actions=resubmit:$j, resubmit:$j, local" @@ -6820,7 +6818,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif packet-out controller]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2) +add_of_ports br0 1 2 AT_CHECK([ovs-ofctl add-flow br0 'dl_dst=50:54:00:00:00:0a actions=controller']) @@ -6921,7 +6919,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif packet-out goto_table]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2) +add_of_ports br0 1 2 AT_DATA([flows.txt], [dnl table=0 dl_dst=50:54:00:00:00:0a actions=goto_table(1) @@ -6975,7 +6973,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif packet-out table-miss (continue)]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2) +add_of_ports br0 1 2 AT_CHECK([ovs-ofctl -O OpenFlow11 add-flow br0 'table=1 dl_dst=50:54:00:00:00:0a actions=controller']) AT_CHECK([ovs-ofctl -O OpenFlow11 mod-table br0 all continue]) @@ -7026,7 +7024,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - ICMPv6]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1) +add_of_ports br0 1 AT_CAPTURE_FILE([ofctl_monitor.log]) @@ -7046,7 +7044,7 @@ AT_CLEANUP AT_SETUP([ofproto-dpif - Neighbor Discovery set-field with checksum update]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1) +add_of_ports br0 1 AT_CHECK([ovs-ofctl add-flow br0 icmp6,icmpv6_type=135,action=set_field:fe80::1-\>nd_target,set_field:32:21:14:86:11:74-\>nd_sll,output:controller]) AT_CAPTURE_FILE([ofctl_monitor.log]) diff --git a/tests/ofproto-macros.at b/tests/ofproto-macros.at index bace0f518..bb3e9ee2c 100644 --- a/tests/ofproto-macros.at +++ b/tests/ofproto-macros.at @@ -316,6 +316,21 @@ check_logs () { /|ERR|/p /|EMER|/p" ${logs} } + +# add_of_ports BRIDGE PNUM... +# +# Creates dummy interfaces in BRIDGE named pPNUM, OpenFlow port number +# PNUM, and datapath port number PNUM (the latter is a consequence of +# the dummy implementation, which tries to assign datapath port +# numbers based on port names). +add_of_ports () { + local args + local br=$1; shift + for $pnum; do + AS_VAR_APPEND([args], [" -- $br p$pnum -- set Interface p$pnum type=dummy ofport_request=$pnum"]) + done + ovs-vsctl $args +} m4_divert_pop([PREPARE_TESTS]) # OVS_VSWITCHD_STOP([WHITELIST]) @@ -336,17 +351,6 @@ m4_define([OVS_VSWITCHD_DISABLE_TUNNEL_PUSH_POP], Tunnel push-pop off ])]) -# ADD_OF_PORTS(BRIDGE, OF_PORT[, OF_PORT...]) -# -# Creates a dummy interface with an OpenFlow port number of OF_PORT and -# name of p{OF_PORT}. The dummy implementation will treat the OF_PORT -# as the datapath port number, which as the effect of making the -# OpenFlow and datapath numbers the same. -m4_define([ADD_OF_PORTS], - [ovs-vsctl m4_foreach([of_port], m4_cdr($@), - [ \ - -- add-port $1 p[]of_port -- set Interface p[]of_port type=dummy ofport_request=of_port])]) - # WAIT_FOR_DUMMY_PORTS(NETDEV_DUMMY_PORT[, NETDEV_DUMMY_PORT...]) # # Wait until the netdev dummy ports are connected to each other diff --git a/tests/ofproto.at b/tests/ofproto.at index 61a6be500..f2064424a 100644 --- a/tests/ofproto.at +++ b/tests/ofproto.at @@ -146,7 +146,7 @@ AT_CLEANUP AT_SETUP([ofproto - port-desc stats (OpenFlow 1.5)]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], 1, 2, 3) +add_of_ports br0 1 2 3 AT_CHECK([ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-ports-desc br0], [0], [stdout]) AT_CHECK([STRIP_XIDS stdout | sed 's/00:0./00:0x/'], [0], [dnl OFPST_PORT_DESC reply (OF1.5): @@ -230,7 +230,7 @@ dnl This is really bare-bones. dnl It at least checks request and reply serialization and deserialization. AT_SETUP([ofproto - queue configuration - (OpenFlow 1.0)]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_CHECK([ovs-ofctl queue-get-config br0 1], [0], [stdout]) AT_CHECK([STRIP_XIDS stdout], [0], [dnl OFPT_QUEUE_GET_CONFIG_REPLY: port=1 @@ -252,7 +252,7 @@ AT_CLEANUP AT_SETUP([ofproto - queue configuration - (OpenFlow 1.1)]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_CHECK([ovs-ofctl -O OpenFlow11 queue-get-config br0 1], [0], [stdout]) AT_CHECK([STRIP_XIDS stdout], [0], [dnl OFPT_QUEUE_GET_CONFIG_REPLY (OF1.1): port=1 @@ -267,7 +267,7 @@ AT_CLEANUP AT_SETUP([ofproto - queue configuration - (OpenFlow 1.2)]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_CHECK([ovs-ofctl -O OpenFlow12 queue-get-config br0 1], [0], [stdout]) AT_CHECK([STRIP_XIDS stdout], [0], [dnl OFPT_QUEUE_GET_CONFIG_REPLY (OF1.2): port=1 @@ -289,7 +289,7 @@ AT_CLEANUP AT_SETUP([ofproto - queue configuration - (OpenFlow 1.4)]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2]) +add_of_ports br0 1 2 AT_CHECK([ovs-ofctl -O OpenFlow14 queue-get-config br0 any | STRIP_XIDS], [0], [OFPST_QUEUE_DESC reply (OF1.4): port=1 @@ -3257,7 +3257,7 @@ dnl controllers despite the spec) as meaning a packet that was generated dnl by the controller. AT_SETUP([ofproto - packet-out from controller (OpenFlow 1.0)]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1]) +add_of_ports br0 1 # Start a monitor listening for packet-ins. AT_CHECK([ovs-ofctl -P openflow10 monitor br0 --detach --no-chdir --pidfile]) @@ -3864,7 +3864,7 @@ AT_CLEANUP AT_SETUP([ofproto - ofport_request]) OVS_VSWITCHD_START -ADD_OF_PORTS([br0], [1], [2], [3]) +add_of_ports br0 1 2 3 set_and_check_specific_ofports () { ovs-vsctl set Interface p1 ofport_request="$1" -- \ diff --git a/tests/tunnel.at b/tests/tunnel.at index 2c4a971ae..0c033daa9 100644 --- a/tests/tunnel.at +++ b/tests/tunnel.at @@ -395,7 +395,7 @@ OVS_VSWITCHD_START([dnl options:remote_ip=5.5.5.5 ofport_request=5]) OVS_VSWITCHD_DISABLE_TUNNEL_PUSH_POP -ADD_OF_PORTS([br0], [90]) +add_of_ports br0 90 AT_DATA([flows.txt], [dnl in_port=90 actions=resubmit:1,resubmit:2,resubmit:3,resubmit:4,resubmit:5 in_port=1 actions=set_field:42->tun_id,output:1 diff --git a/tests/vlan-splinters.at b/tests/vlan-splinters.at index 883528da4..bab76275f 100644 --- a/tests/vlan-splinters.at +++ b/tests/vlan-splinters.at @@ -3,7 +3,7 @@ AT_BANNER([VLAN splinters]) AT_SETUP([VLAN splinters]) AT_SKIP_IF([test "$IS_WIN32" = "yes"]) OVS_VSWITCHD_START([], [], [=override]) -ADD_OF_PORTS([br0], 1, 2, 3, 4) +add_of_ports br0 1 2 3 4 AT_CHECK([ovs-vsctl \ -- set Bridge br0 fail-mode=standalone flood_vlans=0,9,11,15 \ -- set port br0 tag=0 \ -- 2.20.1