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, thank you for the patch, I have just one question down below. > 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. > AT_CLEANUP > > AT_SETUP([redirect-bridged to non-gw destination switch port]) > -- > 2.51.0 > > Regards, Ales _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
