if test $j = 1; then
ovn-nbctl lport-set-addresses lp$i$j "f0:00:00:00:00:$i$j 192.168.0.$i$j" unknown
else
- ovn-nbctl lport-set-addresses lp$i$j "f0:00:00:00:00:$i$j 192.168.0.$i$j"
+ if test $j = 3; then
+ ip_addrs="192.168.0.$i$j fe80::ea2a:eaff:fe28:$i$j/64 192.169.0.$i$j"
+ else
+ ip_addrs="192.168.0.$i$j"
+ fi
+ ovn-nbctl lport-set-addresses lp$i$j "f0:00:00:00:00:$i$j $ip_addrs"
ovn-nbctl lport-set-port-security lp$i$j f0:00:00:00:00:$i$j
fi
done
sleep 1
ovn-sbctl dump-flows -- list multicast_group
+echo "------ hv1 dump ------"
+as hv1 ovs-vsctl show
+as hv1 ovs-ofctl -O OpenFlow13 dump-flows br-int
+
+echo "------ hv2 dump ------"
+as hv2 ovs-vsctl show
+as hv2 ovs-ofctl -O OpenFlow13 dump-flows br-int
+
+echo "------ hv3 dump ------"
+as hv3 ovs-vsctl show
+as hv3 ovs-ofctl -O OpenFlow13 dump-flows br-int
+
# Given the name of a logical port, prints the name of the hypervisor
# on which it is located.
vif_to_hv() {
hv=`vif_to_hv $inport`
as $hv ovs-appctl netdev-dummy/receive vif$inport $request
- if test X$reply_ha == X; then
+ if test X$reply_ha = X; then
# Expect to receive the broadcast ARP on the other logical switch ports
# if no reply is expected.
local i j
tip_unknown=`ip_to_hex 11 11 11 11`
test_arp $s f000000000$s $sip $tip f000000000$d #9
test_arp $s f000000000$s $sip $tip_unknown #10
+
+ if test $jd = 3; then
+ # lport[123]3 has an additional ip 192.169.0.[123]3.
+ tip=`ip_to_hex 192 169 0 $id$jd`
+ test_arp $s f000000000$s $sip $tip f000000000$d #9
+ fi
done
done
done
done
+# set address for lp13 with invalid characters.
+# lp13 should be configured with only 192.168.0.13.
+ovn-nbctl lport-set-addresses lp13 "f0:00:00:00:00:13 192.168.0.13 invalid 192.169.0.13"
+sip=`ip_to_hex 192 168 0 11`
+tip=`ip_to_hex 192 168 0 13`
+test_arp 11 f00000000011 $sip $tip f00000000013
+
+tip=`ip_to_hex 192 169 0 13`
+#arp request for 192.169.0.13 should be flooded
+test_arp 11 f00000000011 $sip $tip
+
# Allow some time for packet forwarding.
# XXX This can be improved.
sleep 1
echo
done
done
+
+# Gracefully terminate daemons
+for daemon in ovn-controller ovn-northd ovsdb-server; do
+ ovs-appctl -t $daemon exit
+done
AT_CLEANUP
# 2 hypervisors, 4 logical ports per HV
done
done
+# Gracefully terminate daemons
+for daemon in ovn-controller ovn-northd ovsdb-server; do
+ ovs-appctl -t $daemon exit
+done
AT_CLEANUP
AT_SETUP([ovn -- 3 HVs, 1 VIFs/HV, 1 GW, 1 LS])
AT_CHECK([sort $i.packets], [0], [expout])
echo
done
+
+# Gracefully terminate daemons
+for daemon in ovs-vtep ovn-controller-vtep ovn-controller ovn-northd ovsdb-server; do
+ ovs-appctl -t $daemon exit
+done
AT_CLEANUP
# 3 hypervisors, 3 logical switches with 3 logical ports each, 1 logical router
done
done
done
+
+# Gracefully terminate daemons
+for daemon in ovn-controller ovn-northd ovsdb-server; do
+ ovs-appctl -t $daemon exit
+done
AT_CLEANUP