Skip to content

Commit f6e030d

Browse files
Sashhkaadceara
authored andcommitted
tests: ARP to VIF port on LS with localnet port.
Verify that ARP requests from internal/external network to a VIF port succeed when vif is in logical switch that also has a localnet port. Also re-add the "NAT with only dnat_and_snat NAT configured: IPv4" test. Signed-off-by: Alexandra Rukomoinikova <ARukomoinikova@k2.cloud> Signed-off-by: Dumitru Ceara <dceara@redhat.com>
1 parent 78659fe commit f6e030d

1 file changed

Lines changed: 136 additions & 0 deletions

File tree

tests/system-ovn.at

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21053,6 +21053,68 @@ OVS_TRAFFIC_VSWITCHD_STOP(["/.*error receiving.*/d
2105321053
AT_CLEANUP
2105421054
])
2105521055

21056+
OVN_FOR_EACH_NORTHD([
21057+
AT_SETUP([NAT with only dnat_and_snat NAT configured: IPv4])
21058+
AT_KEYWORDS([ovnnat])
21059+
21060+
ovn_start
21061+
OVS_TRAFFIC_VSWITCHD_START()
21062+
21063+
ADD_BR([br-int])
21064+
ADD_BR([br-ext])
21065+
21066+
ovs-ofctl add-flow br-ext action=normal
21067+
# Set external-ids in br-int needed for ovn-controller
21068+
ovs-vsctl \
21069+
-- set Open_vSwitch . external-ids:system-id=hv1 \
21070+
-- set Open_vSwitch . external-ids:ovn-remote=unix:$ovs_base/ovn-sb/ovn-sb.sock \
21071+
-- set Open_vSwitch . external-ids:ovn-encap-type=geneve \
21072+
-- set Open_vSwitch . external-ids:ovn-encap-ip=169.0.0.1 \
21073+
-- set Open_vSwitch . external-ids:ovn-bridge-mappings=phynet:br-ext
21074+
-- set bridge br-int fail-mode=secure other-config:disable-in-band=true
21075+
21076+
# Start ovn-controller
21077+
start_daemon ovn-controller
21078+
21079+
check ovn-nbctl lr-add lr1
21080+
check ovn-nbctl ls-add sw0
21081+
check ovn-nbctl ls-add public
21082+
21083+
check ovn-nbctl lrp-add lr1 rp-sw0 00:00:01:01:02:03 192.168.1.1/24
21084+
check ovn-nbctl lrp-add lr1 rp-public 00:00:02:01:02:03 172.16.1.1/24
21085+
21086+
check ovn-nbctl lsp-add-router-port sw0 sw0-rp rp-sw0
21087+
check ovn-nbctl lsp-add-router-port public public-rp rp-public
21088+
21089+
check ovn-nbctl lsp-add-localnet-port public localnet phynet
21090+
21091+
ADD_NAMESPACES(sw01-x)
21092+
ADD_VETH(sw01-x, sw01-x, br-int, "192.168.1.2/24", "f0:00:00:01:02:03", \
21093+
"192.168.1.1")
21094+
check ovn-nbctl lsp-add sw0 sw01-x \
21095+
-- lsp-set-addresses sw01-x "f0:00:00:01:02:03 192.168.1.2"
21096+
21097+
ADD_NAMESPACES(ext-foo)
21098+
ADD_VETH(ext-foo, ext-foo, br-ext, "172.16.1.100/24", "00:10:10:01:02:13", \
21099+
"172.16.1.1")
21100+
21101+
# Create distributed nat and set gw chassis to non-exisrting
21102+
# one - to check distributed NAT on non gw-chassis.
21103+
check ovn-nbctl lrp-set-gateway-chassis rp-public hv2
21104+
check ovn-nbctl lr-nat-del lr1
21105+
check ovn-nbctl lr-nat-add lr1 dnat_and_snat 172.16.0.1 192.168.1.2 sw01-x 00:00:04:00:00:01
21106+
21107+
NS_EXEC([ext-foo], [ip r add 172.16.0.1/32 dev ext-foo])
21108+
NS_CHECK_CONNECTIVITY([ext-foo], [sw01-x], 172.16.0.1)
21109+
21110+
OVN_CLEANUP_CONTROLLER([hv1])
21111+
OVN_CLEANUP_NORTHD
21112+
as
21113+
OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d
21114+
/connection dropped.*/d"])
21115+
AT_CLEANUP
21116+
])
21117+
2105621118
OVN_FOR_EACH_NORTHD([
2105721119
AT_SETUP([ACL CT translation - UDP fragmentation])
2105821120
AT_KEYWORDS([acl_ct_translation_udp_fragmentation])
@@ -21782,3 +21844,77 @@ OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d
2178221844

2178321845
AT_CLEANUP
2178421846
])
21847+
21848+
OVN_FOR_EACH_NORTHD([
21849+
AT_SETUP([VIF port connected to localnet network])
21850+
#
21851+
# Topology:
21852+
# (fabric) -- localnet-port -- LS --- DGP(chassis2) -- LR
21853+
# |
21854+
# |
21855+
# VM (chassis1)
21856+
#
21857+
# It is expected that ARP requests to this port are allowed on the chassis that hosts this port.
21858+
21859+
ovn_start
21860+
OVS_TRAFFIC_VSWITCHD_START()
21861+
ADD_BR([br-int])
21862+
ADD_BR([br-ext])
21863+
21864+
ovs-ofctl add-flow br-ext action=normal
21865+
# Set external-ids in br-int needed for ovn-controller
21866+
ovs-vsctl \
21867+
-- set Open_vSwitch . external-ids:system-id=hv1 \
21868+
-- set Open_vSwitch . external-ids:ovn-remote=unix:$ovs_base/ovn-sb/ovn-sb.sock \
21869+
-- set Open_vSwitch . external-ids:ovn-encap-type=geneve \
21870+
-- set Open_vSwitch . external-ids:ovn-encap-ip=169.0.0.1 \
21871+
-- set Open_vSwitch . external-ids:ovn-bridge-mappings=phynet:br-ext \
21872+
-- set bridge br-int fail-mode=secure other-config:disable-in-band=true
21873+
21874+
# Start ovn-controller
21875+
start_daemon ovn-controller
21876+
21877+
check ovn-nbctl lr-add lr1
21878+
check ovn-nbctl ls-add public
21879+
21880+
check ovn-nbctl lrp-add lr1 rp-public 00:00:02:01:02:03 172.31.1.1/24
21881+
check ovn-nbctl lsp-add-router-port public public-rp rp-public
21882+
check ovn-nbctl lsp-add-localnet-port public localnet phynet
21883+
check ovn-nbctl lrp-set-gateway-chassis rp-public hv2
21884+
21885+
ADD_NAMESPACES(ext)
21886+
ADD_VETH(ext, ext, br-ext, "172.31.1.2/24", "f0:00:00:01:02:02", \
21887+
"172.31.1.1")
21888+
ADD_NAMESPACES(lsp1)
21889+
ADD_VETH(lsp1, lsp1, br-int, "172.31.1.3/24", "f0:00:00:01:02:03", \
21890+
"172.31.1.1")
21891+
ADD_NAMESPACES(lsp2)
21892+
ADD_VETH(lsp2, lsp2, br-int, "172.31.1.4/24", "f0:00:00:01:02:04", \
21893+
"172.31.1.1")
21894+
21895+
check ovn-nbctl lsp-add public lsp1
21896+
check ovn-nbctl lsp-set-addresses lsp1 "f0:00:00:01:02:03 172.31.1.3"
21897+
check ovn-nbctl lsp-add public lsp2
21898+
check ovn-nbctl lsp-set-addresses lsp2 "f0:00:00:01:02:04 172.31.1.4"
21899+
21900+
check ovn-nbctl --wait=hv sync
21901+
21902+
NS_CHECK_EXEC([ext], [ping -q -c 3 -i 0.3 -w 2 172.31.1.3 | FORMAT_PING], \
21903+
[0], [dnl
21904+
3 packets transmitted, 3 received, 0% packet loss, time 0ms
21905+
])
21906+
21907+
NS_CHECK_EXEC([lsp1], [ping -q -c 3 -i 0.3 -w 2 172.31.1.4 | FORMAT_PING], \
21908+
[0], [dnl
21909+
3 packets transmitted, 3 received, 0% packet loss, time 0ms
21910+
])
21911+
21912+
OVN_CLEANUP_CONTROLLER([hv1])
21913+
OVN_CLEANUP_NORTHD
21914+
21915+
as
21916+
OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d
21917+
/connection dropped.*/d"])
21918+
21919+
AT_CLEANUP
21920+
])

0 commit comments

Comments
 (0)