On 11/4/25 7:30 AM, Ales Musil wrote: > On Mon, Nov 3, 2025 at 1:44 PM Dumitru Ceara <[email protected]> wrote: > >> This commit enhances the "ovn multinode bgp L3 EVPN" multinode test >> ensuring that OVN advertised logical router NAT and load balancer IPs >> are indeed accessible from external hosts through an L3 EVPN fabric. >> >> The functionality was already present, NAT/LB IP routes are advertised >> as regular OVN routes in the VRF that's monitored by FRR, since v25.03, >> so no code changes are required. The FRR speaker further advertises >> these as Type-5 EVPN routes for the external BGP speaker to use. >> >> Reported-at: https://issues.redhat.com/browse/FDP-2079 >> Signed-off-by: Dumitru Ceara <[email protected]> >> --- >> > > Hi Dumitru, >
Hi Ales, > thank you for the patch, I have just one question down below. > Thanks for the review! > >> tests/multinode.at | 73 +++++++++++++++++++++++++++++++--------------- >> 1 file changed, 49 insertions(+), 24 deletions(-) >> >> diff --git a/tests/multinode.at b/tests/multinode.at >> index 2c90e5d7d8..31b0ae47ef 100644 >> --- a/tests/multinode.at >> +++ b/tests/multinode.at >> @@ -3687,10 +3687,14 @@ ext_bgp_ip_gw1=42.10.$vni.11 >> ext_bgp_mac_gw1=00:00:01:00:00:$vni >> host_bgp_ip_gw1=42.10.$vni.12 >> host_bgp_mac_gw1=00:00:00:01:00:$vni >> +nat_ip_gw1=42.10.$vni.13 >> +lb_ip_gw1=42.10.$vni.14 >> ext_bgp_ip_gw2=42.20.$vni.21 >> ext_bgp_mac_gw2=00:00:02:00:00:$vni >> host_bgp_ip_gw2=42.20.$vni.22 >> host_bgp_mac_gw2=00:00:00:02:00:$vni >> +nat_ip_gw2=42.20.$vni.23 >> +lb_ip_gw2=42.20.$vni.24 >> >> # Create a flat, distributed OVN localnet switch, with EVPN configured. >> check m_as ovn-gw-1 ovs-vsctl set open . >> external-ids:ovn-bridge-mappings=public:br-ex >> @@ -3729,32 +3733,38 @@ check m_as ovn-gw-2 ip link set lo-wl-$vni master >> vrf-$vni >> check m_as ovn-gw-2 ip a a dev lo-wl-$vni 77.77.2.$vni/32 >> check m_as ovn-gw-2 ip link set lo-wl-$vni up >> >> -check multinode_nbctl >> \ >> - -- lr-add lr >> \ >> - -- set logical_router lr options:dynamic-routing=true >> \ >> - options:requested-tnl-key=$vni >> \ >> - -- lrp-add lr lr-gw1 $host_bgp_mac_gw1 $host_bgp_ip_gw1/24 >> \ >> - -- lrp-set-gateway-chassis lr-gw1 ovn-gw-1 10 >> \ >> - -- lrp-add lr lr-gw2 $host_bgp_mac_gw2 $host_bgp_ip_gw2/24 >> \ >> - -- lrp-set-gateway-chassis lr-gw2 ovn-gw-2 10 >> \ >> - -- lrp-add lr lr-int1 00:00:00:00:01:02 30.0.1.1/24 >> \ >> - -- lrp-set-options lr-int1 dynamic-routing-redistribute=connected >> \ >> - -- lrp-add lr lr-int2 00:00:00:00:01:02 30.0.2.1/24 >> \ >> - -- lrp-set-options lr-int2 dynamic-routing-redistribute=connected >> \ >> - -- ls-add ls >> \ >> - -- lsp-add-localnet-port ls ls-ln public >> \ >> - -- lsp-add-router-port ls ls-lr-gw1 lr-gw1 >> \ >> - -- lsp-add-router-port ls ls-lr-gw2 lr-gw2 >> \ >> - -- ls-add ls-int1 >> \ >> - -- lsp-add-router-port ls-int1 ls-int1-lr lr-int1 >> \ >> - -- ls-add ls-int2 >> \ >> +check multinode_nbctl >> \ >> + -- lr-add lr >> \ >> + -- set logical_router lr options:dynamic-routing=true >> \ >> + options:requested-tnl-key=$vni >> \ >> + -- lrp-add lr lr-gw1 $host_bgp_mac_gw1 $host_bgp_ip_gw1/24 >> \ >> + -- lrp-set-gateway-chassis lr-gw1 ovn-gw-1 10 >> \ >> + -- lrp-add lr lr-gw2 $host_bgp_mac_gw2 $host_bgp_ip_gw2/24 >> \ >> + -- lrp-set-gateway-chassis lr-gw2 ovn-gw-2 10 >> \ >> + -- lrp-add lr lr-int1 00:00:00:00:01:02 30.0.1.1/24 >> \ >> + -- lrp-set-options lr-int1 >> dynamic-routing-redistribute=connected,nat,lb \ >> + -- lrp-add lr lr-int2 00:00:00:00:01:02 30.0.2.1/24 >> \ >> + -- lrp-set-options lr-int2 >> dynamic-routing-redistribute=connected,nat,lb \ >> + -- ls-add ls >> \ >> + -- lsp-add-localnet-port ls ls-ln public >> \ >> + -- lsp-add-router-port ls ls-lr-gw1 lr-gw1 >> \ >> + -- lsp-add-router-port ls ls-lr-gw2 lr-gw2 >> \ >> + -- ls-add ls-int1 >> \ >> + -- lsp-add-router-port ls-int1 ls-int1-lr lr-int1 >> \ >> + -- ls-add ls-int2 >> \ >> -- lsp-add-router-port ls-int2 ls-int2-lr lr-int2 >> >> -check multinode_nbctl \ >> - -- lsp-add ls-int1 w1 \ >> - -- lsp-set-addresses w1 "00:00:00:00:00:01 30.0.1.11" \ >> - -- lsp-add ls-int2 w2 \ >> - -- lsp-set-addresses w2 "00:00:00:00:00:02 30.0.2.11" >> +check multinode_nbctl >> \ >> + -- lsp-add ls-int1 w1 >> \ >> + -- lsp-set-addresses w1 "00:00:00:00:00:01 30.0.1.11" >> \ >> + -- lr-nat-add lr dnat_and_snat $nat_ip_gw1 30.0.1.11 w1 >> 00:00:00:00:01:11 \ >> + -- lb-add lb1 $lb_ip_gw1 30.0.1.11 >> \ >> + -- lr-lb-add lr lb1 >> \ >> + -- lsp-add ls-int2 w2 >> \ >> + -- lsp-set-addresses w2 "00:00:00:00:00:02 30.0.2.11" >> \ >> + -- lr-nat-add lr dnat_and_snat $nat_ip_gw2 30.0.2.11 w2 >> 00:00:00:00:02:11 \ >> + -- lb-add lb2 $lb_ip_gw2 30.0.2.11 >> \ >> + -- lr-lb-add lr lb2 >> >> check m_as ovn-gw-1 /data/create_fake_vm.sh w1 w1 \ >> 00:00:00:00:00:01 1500 30.0.1.11 24 30.0.1.1 1000::11/64 1000::1 >> @@ -3809,6 +3819,21 @@ OVS_WAIT_FOR_OUTPUT([m_as ovn-gw-2 ovs-ofctl >> dump-flows br-int table=OFTABLE_GET >> 2 >> ]) >> >> +AS_BOX([Check traffic to "fabric" hosts - ping from fabric towards NAT/LB >> IPs]) >> +OVS_WAIT_UNTIL([m_as ovn-gw-1 ip netns exec frr-ns ip vrf exec vrf-$vni >> ping -c1 $nat_ip_gw1]) >> +OVS_WAIT_UNTIL([m_as ovn-gw-1 ip netns exec frr-ns ip vrf exec vrf-$vni >> ping -c1 $lb_ip_gw1]) >> +OVS_WAIT_UNTIL([m_as ovn-gw-2 ip netns exec frr-ns ip vrf exec vrf-$vni >> ping -c1 $nat_ip_gw2]) >> +OVS_WAIT_UNTIL([m_as ovn-gw-2 ip netns exec frr-ns ip vrf exec vrf-$vni >> ping -c1 $lb_ip_gw2]) >> + >> +check multinode_nbctl --wait=hv set logical_router lr \ >> + options:dynamic-routing-redistribute-local-only=true >> + >> +AS_BOX([Check traffic to "fabric" hosts - ping from fabric towards NAT/LB >> IPs - local-only=true]) >> +OVS_WAIT_UNTIL([m_as ovn-gw-1 ip netns exec frr-ns ip vrf exec vrf-$vni >> ping -c1 $nat_ip_gw1]) >> +OVS_WAIT_UNTIL([m_as ovn-gw-1 ip netns exec frr-ns ip vrf exec vrf-$vni >> ping -c1 $lb_ip_gw1]) >> +OVS_WAIT_UNTIL([m_as ovn-gw-2 ip netns exec frr-ns ip vrf exec vrf-$vni >> ping -c1 $nat_ip_gw2]) >> +OVS_WAIT_UNTIL([m_as ovn-gw-2 ip netns exec frr-ns ip vrf exec vrf-$vni >> ping -c1 $lb_ip_gw2]) >> + >> > > > Should we also check the route presence? > > I know that the traffic should be a good enough indicator, but it still > might be a good idea to have an explicit check. > It's better indeed. I'll prepare a v2. Thanks, Dumtiru _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
