On Thu, Jan 14, 2016 at 12:42 PM, Russell Bryant <russ...@ovn.org> wrote:
> The OVN localnet port test case did not cover having 2 ports on the same > network and on the same hypervisor. It also turns out that this case is > broken. Update the test case to demonstrate the problem. A solution > should be able to uncomment these additional test_packet lines and have > the test case still pass. > > Reported-at: http://openvswitch.org/pipermail/dev/2016-January/064413.html > Signed-off-by: Russell Bryant <russ...@ovn.org> > --- > tests/ovn.at | 51 +++++++++++++++++++++++++++++++++------------------ > 1 file changed, 33 insertions(+), 18 deletions(-) > > diff --git a/tests/ovn.at b/tests/ovn.at > index a80f9a3..b990116 100644 > --- a/tests/ovn.at > +++ b/tests/ovn.at > @@ -737,8 +737,9 @@ for i in 1 2 3; do > done > AT_CLEANUP > > -# 2 hypervisors, 2 logical ports per HV > -# 2 locally attached networks, 1 port per HV on each network > +# 2 hypervisors, 4 logical ports per HV > +# 2 locally attached networks (one flat, one vlan tagged over same device) > +# 2 ports per HV on each network > AT_SETUP([ovn -- 2 HVs, 2 lports/HV, localnet ports]) > AT_KEYWORDS([ovn-localnet]) > AT_SKIP_IF([test $HAVE_PYTHON = no]) > @@ -756,7 +757,7 @@ for i in 1 2; do > ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys > ovn_attach n1 br-phys 192.168.0.$i > > - for j in 1 2; do > + for j in 1 2 3 4; do > ovs-vsctl add-port br-int vif$i$j -- \ > set Interface vif$i$j external-ids:iface-id=lp$i$j \ > options:tx_pcap=hv$i/vif$i$j-tx.pcap \ > @@ -769,7 +770,7 @@ for i in 1 2; do > > ovn-nbctl lswitch-add $lswitch_name > > - if test $j -eq 1; then > + if test $j -le 2; then > ovn-nbctl lport-add $lswitch_name $ln_port_name > else > ovn-nbctl lport-add $lswitch_name $ln_port_name "" 101 > @@ -807,7 +808,7 @@ trim_zeros() { > sed 's/\(00\)\{1,\}$//' > } > for i in 1 2; do > - for j in 1 2; do > + for j in 1 2 3 4; do > : > $i$j.expected > done > done > @@ -822,23 +823,37 @@ test_packet() { > done > } > > -# lp11 and lp21 are on the same network. (phys, untagged) > +# lp11 and lp21 are on the same network (phys, untagged) > +# and on different hypervisors > test_packet 11 f00000000021 f00000000011 1121 21 > test_packet 21 f00000000011 f00000000021 2111 11 > > -# lp12 and lp22 are on the same network. (phys, VLAN 101) > -test_packet 12 f00000000022 f00000000012 1222 22 > -test_packet 22 f00000000012 f00000000022 2212 12 > +# lp11 and lp12 are on the same network (phys, untagged) > +# and on the same hypervisor > +# TODO this is broken. > +#test_packet 11 f00000000012 f00000000011 1112 12 > +#test_packet 12 f00000000011 f00000000012 1211 11 > + > +# lp13 and lp23 are on the same network (phys, VLAN 101) > +# and on different hypervisors > +test_packet 13 f00000000023 f00000000013 1323 23 > +test_packet 23 f00000000013 f00000000023 2313 13 > + > +# lp13 and lp14 are on the same network (phys, VLAN 101) > +# and on the same hypervisor > +# TODO this is broken. > +#test_packet 13 f00000000014 f00000000013 1314 14 > +#test_packet 14 f00000000013 f00000000014 1413 13 > > # Ports that should not be able to communicate > -test_packet 11 f00000000012 f00000000011 1112 > -test_packet 11 f00000000022 f00000000011 1122 > -test_packet 21 f00000000012 f00000000021 2112 > -test_packet 21 f00000000022 f00000000021 2122 > -test_packet 12 f00000000011 f00000000012 1211 > -test_packet 12 f00000000021 f00000000012 1221 > -test_packet 22 f00000000011 f00000000022 2211 > -test_packet 22 f00000000021 f00000000022 2221 > +test_packet 11 f00000000013 f00000000011 1113 > +test_packet 11 f00000000023 f00000000011 1123 > +test_packet 21 f00000000013 f00000000021 2113 > +test_packet 21 f00000000023 f00000000021 2123 > +test_packet 13 f00000000011 f00000000013 1311 > +test_packet 13 f00000000021 f00000000013 1321 > +test_packet 23 f00000000011 f00000000023 2311 > +test_packet 23 f00000000021 f00000000023 2321 > > # Allow some time for packet forwarding. > # XXX This can be improved. > @@ -860,7 +875,7 @@ as hv2 ovs-ofctl -O OpenFlow13 dump-flows br-int > > # Now check the packets actually received against the ones expected. > for i in 1 2; do > - for j in 1 2; do > + for j in 1 2 3 4; do > file=hv$i/vif$i$j-tx.pcap > echo $file > $PYTHON "$top_srcdir/utilities/ovs-pcap.in" $file | trim_zeros > > $i$j.packets > -- > 2.5.0 > > Port 22 and 44 are not used, but that's not a problem. Acked-by: Han Zhou <zhou...@gmail.com <b...@ovn.org>> _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev