Hi, Sorry for the late reply.
On Fri, Dec 6, 2024 at 12:05 PM Dumitru Ceara <[email protected]> wrote: > > On 10/22/24 8:33 PM, Tiago Pires via dev wrote: > > This commit add a new ovn-ic test for the ovn-fake-multinode with 3 AZs > > testing IPv4/IPv6 connectivity between them. > > > > Signed-off-by: Tiago Pires <[email protected]> > > --- > > Hi Tiago, > > Sorry for the delay in reviewing this. > > > tests/multinode-macros.at | 80 +++++++++++++++++++++ > > tests/multinode.at | 141 ++++++++++++++++++++++++++++++++++++++ > > 2 files changed, 221 insertions(+) > > > > diff --git a/tests/multinode-macros.at b/tests/multinode-macros.at > > index 5b171885e..cafb9d967 100644 > > --- a/tests/multinode-macros.at > > +++ b/tests/multinode-macros.at > > @@ -54,6 +54,7 @@ m_central_as () { > > } > > > > check_fake_multinode_setup() { > > + skip_fake_node_multi_az_setup > > check m_as ovn-central-az1-1 ovn-nbctl --wait=sb sync > > AT_CHECK([m_as ovn-chassis-1 ovn-appctl -t ovn-controller version], > > [0], [ignore]) > > AT_CHECK([m_as ovn-chassis-2 ovn-appctl -t ovn-controller version], > > [0], [ignore]) > > @@ -189,4 +190,83 @@ m_wait_for_ports_up() { > > fi > > } > > > > +skip_fake_node_multi_az_setup() { > > + m_as ovn-central-az3-1 ovn-nbctl --wait=sb sync > > + if [[ $? == 0 ]] ; then > > + AT_CHECK([exit 77]) > > It took me some searching but I guess this is because of: > https://www.gnu.org/software/autoconf/manual/autoconf-2.66/html_node/Writing-Testsuites.html > > " > — Macro: AT_SKIP_IF (shell-condition) > > Determine whether the test should be skipped because it requires > features that are unsupported on the machine under test. shell-condition > is a shell expression such as a test command. Tests before AT_SKIP_IF > will be executed and may still cause the test group to fail. You can > instantiate this macro many times from within the same test group. > > You should use this macro only for very simple skip conditions. If the > shell-condition could emit any kind of output you should instead use > AT_CHECK like > > AT_CHECK([if shell-condition; then exit 77; fi]) > > so that such output is properly recorded in the testsuite.log file." > > > + fi > > +} > > + > > +check_fake_node_multi_az_setup() { > > + m_as ovn-central-az3-1 ovn-nbctl --wait=sb sync > > + if [[ $? != 0 ]] ; then > > + AT_CHECK([exit 77]) > > + fi > > + > > + # Check if the fake multinode setup is using SSL, it will > > + # skip if it is enabled. The cleanup will break the setup, > > + # so it is recommended to use without SSL in order to > > + # test the OVN IC with fake multinode setup. > > + m_as ovn-chassis-1 ovs-vsctl list open | grep "ssl:" > > + if [[ $? == 0 ]] ; then > > + AT_CHECK([exit 77]) > > + fi > > +} > > + > > +check_fake_multinode_setup_by_az() { > > + check_fake_node_multi_az_setup > > + > > + m_as ovn-central-az1-1 ovn-nbctl --wait=sb sync > > + m_as ovn-central-az2-1 ovn-nbctl --wait=sb sync > > + m_as ovn-central-az2-1 ovn-nbctl --wait=sb sync > > Should we prepend these 3 commands with "check "? > I will propose a new version and fix it! > > + > > + for c in $1 > > + do > > + m_as $c ovn-appctl -t ovn-controller version > > + done > > +} > > + > > +cleanup_multinode_resources_by_az() { > > + check_fake_node_multi_az_setup > > + m_as ovn-central-az1-1 rm -f /etc/ovn/ovnnb_db.db > > + m_as ovn-central-az1-1 /usr/share/ovn/scripts/ovn-ctl restart_northd > > + m_as ovn-central-az2-1 rm -f /etc/ovn/ovnnb_db.db > > + m_as ovn-central-az2-1 /usr/share/ovn/scripts/ovn-ctl restart_northd > > + m_as ovn-central-az3-1 rm -f /etc/ovn/ovnnb_db.db > > + m_as ovn-central-az3-1 /usr/share/ovn/scripts/ovn-ctl restart_northd > > + check m_as ovn-central-az1-1 ovn-nbctl --wait=sb sync > > + check m_as ovn-central-az2-1 ovn-nbctl --wait=sb sync > > + check m_as ovn-central-az3-1 ovn-nbctl --wait=sb sync > > + > > + for c in $1 > > + do > > + m_as $c ovs-vsctl del-br br-int > > + m_as $c ip --all netns delete > > Maybe also prepend check here? > I will propose a new version and fix it! > > + done > > +} > > + > > +configure_multinode_az() { > > + # Configure OVN IC by AZ > > + check m_as ovn-central-az1-1 ovn-nbctl set-connection ptcp:6641 > > + check m_as ovn-central-az1-1 ovn-sbctl set-connection ptcp:6642 > > + check m_as ovn-central-az1-1 ovn-nbctl set NB_Global . > > name=ovn-central-az1-1 > > + check m_as ovn-central-az1-1 ovn-nbctl set NB_Global . > > options:ic-route-adv=true \ > > + options:ic-route-learn=true > > + check m_as ovn-central-az2-1 ovn-nbctl set-connection ptcp:6641 > > + check m_as ovn-central-az2-1 ovn-sbctl set-connection ptcp:6642 > > + check m_as ovn-central-az2-1 ovn-nbctl set NB_Global . > > name=ovn-central-az2-1 > > + check m_as ovn-central-az2-1 ovn-nbctl set NB_Global . > > options:ic-route-adv=true \ > > + options:ic-route-learn=true > > + check m_as ovn-central-az3-1 ovn-nbctl set-connection ptcp:6641 > > + check m_as ovn-central-az3-1 ovn-sbctl set-connection ptcp:6642 > > + check m_as ovn-central-az3-1 ovn-nbctl set NB_Global . > > name=ovn-central-az3-1 > > + check m_as ovn-central-az3-1 ovn-nbctl set NB_Global . > > options:ic-route-adv=true \ > > + options:ic-route-learn=true > > + > > + # Configure OVN IC Gateway > > + check m_as ovn-gw-1 ovs-vsctl set open . > > external-ids:ovn-is-interconn=true > > + check m_as ovn-gw-2 ovs-vsctl set open . > > external-ids:ovn-is-interconn=true > > + check m_as ovn-gw-3 ovs-vsctl set open . > > external-ids:ovn-is-interconn=true > > +} > > + > > OVS_END_SHELL_HELPERS > > diff --git a/tests/multinode.at b/tests/multinode.at > > index 408e1118d..c43255c89 100644 > > --- a/tests/multinode.at > > +++ b/tests/multinode.at > > @@ -1591,3 +1591,144 @@ AT_CHECK([cat ch1_eth2.tcpdump], [0], [dnl > > ]) > > > > AT_CLEANUP > > + > > +AT_SETUP([ovn multinode - ovn-ic - inter-AZ IPv4/IPv6]) > > This test gets skipped in CI: > > ovn multinode - ovn-ic - inter-AZ IPv4/IPv6 skipped > (multinode-macros.at:239) > That is intentional, the CI will need to create the ovn-ic setup, maybe we can add it to the CI. > > + > > +# Check that ovn-fake-multinode setup is up and running - requires > > additional nodes > > +check_fake_multinode_setup_by_az 'ovn-chassis-1 ovn-chassis-2 > > ovn-chassis-3 ovn-gw-1 ovn-gw-2 ovn-gw-3' > > + > > +# Delete the multinode NB and OVS resources before starting the test. > > +cleanup_multinode_resources_by_az 'ovn-chassis-1 ovn-chassis-2 > > ovn-chassis-3 ovn-gw-1 ovn-gw-2 ovn-gw-3' > > + > > +# Configure OVN IC by AZ > > +configure_multinode_az > > + > > +# Test Inter-AZ routing > > + > > +# Create the Transit Switch > > +m_as ovn-central-az1-1 ovn-ic-nbctl ts-add ts-1 > > + > > +# AZ1 - Create one logical switch with one port > > +check m_as ovn-central-az1-1 ovn-nbctl ls-add sw1-az1 > > +check m_as ovn-central-az1-1 ovn-nbctl lsp-add sw1-az1 sw1-az1-port1 > > +check m_as ovn-central-az1-1 ovn-nbctl lsp-set-addresses sw1-az1-port1 > > "40:54:00:00:01:01 10.0.1.3 2001::3" > > + > > +# AZ1 - Create a logical router and attach the logical switch > > +check m_as ovn-central-az1-1 ovn-nbctl lr-add lr1 > > +check m_as ovn-central-az1-1 ovn-nbctl lrp-add lr1 lr1-sw1-az1 > > 00:00:00:00:ff:01 10.0.1.1/24 2001::1/64 > > +check m_as ovn-central-az1-1 ovn-nbctl lsp-add sw1-az1 sw1-az1-lr1 > > +check m_as ovn-central-az1-1 ovn-nbctl lsp-set-type sw1-az1-lr1 router > > +check m_as ovn-central-az1-1 ovn-nbctl lsp-set-addresses sw1-az1-lr1 router > > +check m_as ovn-central-az1-1 ovn-nbctl lsp-set-options sw1-az1-lr1 > > router-port=lr1-sw1-az1 > > + > > +# AZ1 - Create the LRP, LSP and interconnect to the Transit Switch > > +check m_as ovn-central-az1-1 ovn-nbctl lrp-add lr1 lr1-ts-1 > > 00:00:00:00:00:01 169.254.251.1/24 fe80:10::1/64 > > +check m_as ovn-central-az1-1 ovn-nbctl lrp-set-gateway-chassis lr1-ts-1 > > ovn-gw-1 > > +check m_as ovn-central-az1-1 ovn-nbctl lsp-add ts-1 lr1-lsp1 -- \ > > + lsp-set-addresses lr1-lsp1 router -- \ > > + lsp-set-type lr1-lsp1 router -- \ > > + lsp-set-options lr1-lsp1 router-port=lr1-ts-1 > > + > > +m_as ovn-chassis-1 ip link del sw1-az1-p1-p > > +m_as ovn-chassis-1 /data/create_fake_vm.sh sw1-az1-port1 sw1-az1-p1 > > 40:54:00:00:01:01 1342 10.0.1.3 24 10.0.1.1 2001::3/64 2001::1 > > + > > +# AZ2 - Create one logical switch with one port > > +check m_as ovn-central-az2-1 ovn-nbctl ls-add sw1-az2 > > +check m_as ovn-central-az2-1 ovn-nbctl lsp-add sw1-az2 sw1-az2-port1 > > +check m_as ovn-central-az2-1 ovn-nbctl lsp-set-addresses sw1-az2-port1 > > "40:54:00:00:02:01 10.0.2.3 2002::3" > > + > > +# AZ2 - Create a logical router and attach the logical switch > > +check m_as ovn-central-az2-1 ovn-nbctl lr-add lr2 > > +check m_as ovn-central-az2-1 ovn-nbctl lrp-add lr2 lr2-sw1-az2 > > 00:00:00:00:ff:02 10.0.2.1/24 2002::1/64 > > +check m_as ovn-central-az2-1 ovn-nbctl lsp-add sw1-az2 sw1-az2-lr2 > > +check m_as ovn-central-az2-1 ovn-nbctl lsp-set-type sw1-az2-lr2 router > > +check m_as ovn-central-az2-1 ovn-nbctl lsp-set-addresses sw1-az2-lr2 router > > +check m_as ovn-central-az2-1 ovn-nbctl lsp-set-options sw1-az2-lr2 > > router-port=lr2-sw1-az2 > > + > > +# AZ2 - Create the LRP, LSP and interconnect to the Transit Switch > > +check m_as ovn-central-az2-1 ovn-nbctl lrp-add lr2 lr2-ts-1 > > 00:00:00:00:00:02 169.254.251.2/24 fe80:10::2/64 > > +check m_as ovn-central-az2-1 ovn-nbctl lrp-set-gateway-chassis lr2-ts-1 > > ovn-gw-2 > > +check m_as ovn-central-az2-1 ovn-nbctl lsp-add ts-1 lr2-lsp1 -- \ > > + lsp-set-addresses lr2-lsp1 router -- \ > > + lsp-set-type lr2-lsp1 router -- \ > > + lsp-set-options lr2-lsp1 router-port=lr2-ts-1 > > + > > +m_as ovn-chassis-2 ip link del sw1-az2-p1-p > > +m_as ovn-chassis-2 /data/create_fake_vm.sh sw1-az2-port1 sw1-az2-p1 > > 40:54:00:00:02:01 1342 10.0.2.3 24 10.0.2.1 2002::3/64 2002::1 > > + > > +# AZ3 - Create one logical switch with one port > > +check m_as ovn-central-az3-1 ovn-nbctl ls-add sw1-az3 > > +check m_as ovn-central-az3-1 ovn-nbctl lsp-add sw1-az3 sw1-az3-port1 > > +check m_as ovn-central-az3-1 ovn-nbctl lsp-set-addresses sw1-az3-port1 > > "40:54:00:00:03:01 10.0.3.3 2003::3" > > + > > +# AZ3 - Create a logical router and attach the logical switch > > +check m_as ovn-central-az3-1 ovn-nbctl lr-add lr3 > > +check m_as ovn-central-az3-1 ovn-nbctl lrp-add lr3 lr3-sw1-az3 > > 00:00:00:00:ff:03 10.0.3.1/24 2003::1/64 > > +check m_as ovn-central-az3-1 ovn-nbctl lsp-add sw1-az3 sw1-az3-lr3 > > +check m_as ovn-central-az3-1 ovn-nbctl lsp-set-type sw1-az3-lr3 router > > +check m_as ovn-central-az3-1 ovn-nbctl lsp-set-addresses sw1-az3-lr3 router > > +check m_as ovn-central-az3-1 ovn-nbctl lsp-set-options sw1-az3-lr3 > > router-port=lr3-sw1-az3 > > + > > +# AZ3 - Create the LRP, LSP and interconnect to the Transit Switch > > +check m_as ovn-central-az3-1 ovn-nbctl lrp-add lr3 lr3-ts-1 > > 00:00:00:00:00:03 169.254.251.3/24 fe80:10::3/64 > > +check m_as ovn-central-az3-1 ovn-nbctl lrp-set-gateway-chassis lr3-ts-1 > > ovn-gw-3 > > +check m_as ovn-central-az3-1 ovn-nbctl lsp-add ts-1 lr3-lsp1 -- \ > > + lsp-set-addresses lr3-lsp1 router -- \ > > + lsp-set-type lr3-lsp1 router -- \ > > + lsp-set-options lr3-lsp1 router-port=lr3-ts-1 > > + > > +m_as ovn-chassis-1 ip link del sw1-az3-p1-p > > +m_as ovn-chassis-3 /data/create_fake_vm.sh sw1-az3-port1 sw1-az3-p1 > > 40:54:00:00:03:01 1342 10.0.3.3 24 10.0.3.1 2003::3/64 2003::1 > > + > > +# Test routes from lr2 and lr3 were learned to lr1 > > +AT_CHECK([m_as ovn-central-az1-1 ovn-nbctl lr-route-list lr1 | > > + grep learned | awk '{print $1, $2}' | sort], [0], [dnl > > +10.0.2.0/24 169.254.251.2 > > +10.0.3.0/24 169.254.251.3 > > +2002::/64 fe80:10::2 > > +2003::/64 fe80:10::3 > > +]) > > + > > +# Test routes from lr1 and lr3 were learned to lr2 > > +AT_CHECK([m_as ovn-central-az2-1 ovn-nbctl lr-route-list lr2 | > > + grep learned | awk '{print $1, $2}' | sort], [0], [dnl > > +10.0.1.0/24 169.254.251.1 > > +10.0.3.0/24 169.254.251.3 > > +2001::/64 fe80:10::1 > > +2003::/64 fe80:10::3 > > +]) > > + > > +# Test routes from lr1 and lr2 were learned to lr3 > > +AT_CHECK([m_as ovn-central-az3-1 ovn-nbctl lr-route-list lr3 | > > + grep learned | awk '{print $1, $2}' | sort], [0], [dnl > > +10.0.1.0/24 169.254.251.1 > > +10.0.2.0/24 169.254.251.2 > > +2001::/64 fe80:10::1 > > +2002::/64 fe80:10::2 > > +]) > > + > > +# Ping IPv4 test Inter-AZ - AZ1 vs AZ2 > > +M_NS_CHECK_EXEC([ovn-chassis-1], [sw1-az1-p1], [ping -q -c 3 -i 0.3 -w 2 > > 10.0.2.3 | FORMAT_PING], \ > > +[0], [dnl > > +3 packets transmitted, 3 received, 0% packet loss, time 0ms > > +]) > > + > > +# Ping IPv4 test Inter-AZ - AZ1 vs AZ3 > > +M_NS_CHECK_EXEC([ovn-chassis-1], [sw1-az1-p1], [ping -q -c 3 -i 0.3 -w 2 > > 10.0.3.3 | FORMAT_PING], \ > > +[0], [dnl > > +3 packets transmitted, 3 received, 0% packet loss, time 0ms > > +]) > > + > > +# Ping IPv6 test Inter-AZ - AZ1 vs AZ2 > > +M_NS_CHECK_EXEC([ovn-chassis-1], [sw1-az1-p1], [ping6 -q -c 3 -i 0.3 -w 2 > > 2002::3 | FORMAT_PING], \ > > +[0], [dnl > > +3 packets transmitted, 3 received, 0% packet loss, time 0ms > > +]) > > + > > +# Ping IPv6 test Inter-AZ - AZ1 vs AZ3 > > +M_NS_CHECK_EXEC([ovn-chassis-1], [sw1-az1-p1], [ping6 -q -c 3 -i 0.3 -w 2 > > 2003::3 | FORMAT_PING], \ > > +[0], [dnl > > +3 packets transmitted, 3 received, 0% packet loss, time 0ms > > +]) > > + > > +AT_CLEANUP > > Regards, > Dumitru > -- _‘Esta mensagem é direcionada apenas para os endereços constantes no cabeçalho inicial. Se você não está listado nos endereços constantes no cabeçalho, pedimos-lhe que desconsidere completamente o conteúdo dessa mensagem e cuja cópia, encaminhamento e/ou execução das ações citadas estão imediatamente anuladas e proibidas’._ * **‘Apesar do Magazine Luiza tomar todas as precauções razoáveis para assegurar que nenhum vírus esteja presente nesse e-mail, a empresa não poderá aceitar a responsabilidade por quaisquer perdas ou danos causados por esse e-mail ou por seus anexos’.* _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
