[ovs-dev] [PATCH 02/10] tests: Change ADD_OF_PORTS from macro to shell function.

Ben Pfaff blp at ovn.org
Thu Jan 28 20:49:40 UTC 2016


On Thu, Jan 28, 2016 at 12:30:12PM -0800, Jarno Rajahalme wrote:
> Do we have an issue with the generated testsuite size?

Well, it's a 10 MB shell script, so I like to take opportunities to
reduce the size when I can.

> Acked-by: Jarno Rajahalme <jarno at ovn.org>

Thanks!

> > On Jan 27, 2016, at 9:51 AM, Ben Pfaff <blp at ovn.org> wrote:
> > 
> > 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 <blp at ovn.org>
> > ---
> > 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 817931f..c9ad1e6 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 at ovs-dummy: hit:0 missed:0
> > 	br0:
> > diff --git a/tests/classifier.at b/tests/classifier.at
> > index 3520acd..b110508 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 2b2fc28..97d78bf 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 aa2f1bb..75db58f 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 at 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 at 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 bace0f5..bb3e9ee 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 61a6be5..f206442 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 2c4a971..0c033da 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 883528d..bab7627 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.1.3
> > 
> > 
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
> 
> 
> 
> 



More information about the dev mailing list