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)
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
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)
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)
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
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'])
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])
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])
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])
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])
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])
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)'])
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])
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])
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)'])
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])
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)'])
(
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)'])
(
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
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
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])
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
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)
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)
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[[]]
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
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
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
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
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
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])
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
])
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
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'
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
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
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
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
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 --\
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 --\
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 --\
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 --\
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 --\
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 --\
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
# 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 --\
# 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)
# 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
# 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
# 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)"
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
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)'
[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(
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)'
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)'
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 -- \
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
# 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`'
# 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])
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 -- \
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
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
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)'])
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
-- 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
], [])
-- 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
], [])
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
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)
])
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)
])
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)
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)
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)
])
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)'])
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
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`'
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
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)
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)
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)
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 --\
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 --\
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)
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)
])
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
])
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)
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)
])
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
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],
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"
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"
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"
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'])
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)
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])
AT_SETUP([ofproto-dpif - ICMPv6])
OVS_VSWITCHD_START
-ADD_OF_PORTS([br0], 1)
+add_of_ports br0 1
AT_CAPTURE_FILE([ofctl_monitor.log])
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])