On Tue, Oct 14, 2025 at 2:14 PM Dumitru Ceara via dev < [email protected]> wrote:
> While the existing tests don't really need this explicitly, an upcoming > commit (adding a multinode L3 EVPN test) will need it. It's better to > have fixed addresses anyway. > > Signed-off-by: Dumitru Ceara <[email protected]> > --- > tests/multinode-bgp-macros.at | 35 ++++++++++++++++++++--------------- > tests/multinode.at | 20 ++++++++++++-------- > 2 files changed, 32 insertions(+), 23 deletions(-) > > diff --git a/tests/multinode-bgp-macros.at b/tests/multinode-bgp-macros.at > index 95273af847..d41892b5eb 100644 > --- a/tests/multinode-bgp-macros.at > +++ b/tests/multinode-bgp-macros.at > @@ -4,12 +4,12 @@ > > OVS_START_SHELL_HELPERS > > -# m_setup_external_frr_vrf NODE VNI LOCAL_IP NETNS > +# m_setup_external_frr_vrf NODE VNI VXLAN_IP LOCAL_MAC LOCAL_IP NETNS > # > # Sets up a VRF in NETNS so that it can be used by FRR running in that > # namespace to advertise EVPN routes. > m_setup_external_frr_vrf() { > - local node=$1 vni=$2 local_ip=$3 ns=$4 > + local node=$1 vni=$2 vxlan_ip=$3 local_mac=$4 local_ip=$5 ns=$6 > > local ns_prefix="ip netns exec $ns " > local vrf=vrf-$vni > @@ -25,10 +25,13 @@ m_setup_external_frr_vrf() { > check m_as $node $ns_prefix ip link add $br type bridge > on_exit "m_as $node $ns_prefix ip link del $br" > check m_as $node $ns_prefix ip link set $br master $vrf addrgenmode > none > + check m_as $node $ns_prefix ip link set $br address $local_mac > + check m_as $node $ns_prefix ip addr add dev $br $local_ip > check m_as $node $ns_prefix ip link set dev $br up > > # Add VXLAN VTEP for the VNI. > - check m_as $node $ns_prefix ip link add $vxlan type vxlan id $vni > dstport 4789 local $local_ip nolearning > + check m_as $node $ns_prefix ip link add $vxlan type vxlan \ > + id $vni dstport 4789 local $vxlan_ip nolearning > on_exit "m_as $node $ns_prefix ip link del $vxlan" > check m_as $node $ns_prefix ip link set dev $vxlan up > check m_as $node $ns_prefix ip link set $vxlan master $br > @@ -41,13 +44,14 @@ m_setup_external_frr_vrf() { > check m_as $node $ns_prefix ip link set $lo up > } > > -# m_setup_external_frr_router NODE BGP_AS BGP_ROUTER_ID BGP_IP [VNI] > +# m_setup_external_frr_router NODE BGP_AS BGP_ROUTER_ID BGP_IP BGP_MAC > [VNI] > # > # Sets up an external FRR BGP speaker in a network namespace on the > # ovn-fake-multinode node NODE. The BGP autonomous system is configured > to be > -# BGP_AS. The speaker uses as BGP IP address, BGP_IP > +# BGP_AS. The speaker uses as BGP IP address, BGP_IP and BGP_MAC as mac > +# address. > m_setup_external_frr_router() { > - local node=$1 bgp_as=$2 bgp_router_id=$3 bgp_ip=$4 vni=$5 > + local node=$1 bgp_as=$2 bgp_router_id=$3 bgp_ip=$4 bgp_mac=$5 vni=$6 > local br_name=br-$node > > check m_as $node ovs-vsctl add-br $br_name > @@ -120,9 +124,9 @@ m_setup_external_frr_router() { > " | podman exec -i $node vtysh $frr_flags > > # Configure VRF, if any provided. > - bgp_ip=$(echo $bgp_ip | cut -f 1 -d '/') > + vxlan_ip=$(echo $bgp_ip | cut -f 1 -d '/') > if [[[ -n "$vni" ]]]; then > - m_setup_external_frr_vrf $node $vni $bgp_ip frr-ns > + m_setup_external_frr_vrf $node $vni $vxlan_ip $bgp_mac $bgp_ip > frr-ns > fi > } > > @@ -266,12 +270,12 @@ m_setup_ovn_frr_router() { > " | podman exec -i $node vtysh > } > > -# m_setup_host_frr_vrf NODE VNI LOCAL_IP > +# m_setup_host_frr_vrf NODE VNI VXLAN_IP LOCAL_MAC LOCAL_IP > # > # Sets up a VRF in the default net namespace so that it can be used by OVN > # and FRR to advertise EVPN routes. > m_setup_host_frr_vrf() { > - local node=$1 vni=$2 local_ip=$3 > + local node=$1 vni=$2 vxlan_ip=$3 local_mac=$4 local_ip=$5 > > local vrf=vrf-$vni > local br=br-$vni > @@ -288,6 +292,7 @@ m_setup_host_frr_vrf() { > check m_as $node ip link add $br type bridge > on_exit "m_as $node ip link del $br" > check m_as $node ip link set $br master $vrf addrgenmode none > + check m_as $node ip link set $br address $local_mac > check m_as $node ip link set dev $br up > > # Add VXLAN VTEP for the VNI (linked to the OVS vxlan_sys_<port> > interface). > @@ -298,7 +303,7 @@ m_setup_host_frr_vrf() { > local dstport=$((60000 + $vni)) > check m_as $node ip link add $vxlan type vxlan \ > dev vxlan_sys_${vxlan_port} \ > - id $vni dstport $dstport local $local_ip nolearning > + id $vni dstport $dstport local $vxlan_ip nolearning > on_exit "m_as $node ip link del $vxlan" > check m_as $node ip link set dev $vxlan up > check m_as $node ip link set $vxlan master $br > @@ -311,7 +316,7 @@ m_setup_host_frr_vrf() { > check m_as $node ip link set $lo up > } > > -# m_setup_host_frr_router NODE BGP_AS BGP_ROUTER_ID BGP_IP VNI > +# m_setup_host_frr_router NODE BGP_AS BGP_ROUTER_ID BGP_IP BGP_MAC VNI > # > # Sets up an FRR BGP speaker in the default network namespace on the > # ovn-fake-multinode node NODE. This speaker is running on a ovs bridge > @@ -320,7 +325,7 @@ m_setup_host_frr_vrf() { > # The BGP autonomous system is configured to be BGP_AS and the FRR > instance > # runs in vrf-VNI. > m_setup_host_frr_router() { > - local node=$1 bgp_as=$2 bgp_router_id=$3 bgp_ip=$4 vni=$5 > + local node=$1 bgp_as=$2 bgp_router_id=$3 bgp_ip=$4 bgp_mac=$5 vni=$6 > > local br_name=br-$node physnet=physnet_${node}_ext0 > local lr=$(m_ovn_frr_router_name $node) > @@ -363,8 +368,8 @@ m_setup_host_frr_router() { > " | podman exec -i $node vtysh > > # Configure VRF. > - bgp_ip=$(echo $bgp_ip | cut -f 1 -d '/') > - m_setup_host_frr_vrf $node $vni $bgp_ip > + vxlan_ip=$(echo $bgp_ip | cut -f 1 -d '/') > + m_setup_host_frr_vrf $node $vni $vxlan_ip $bgp_mac $bgp_ip > } > > OVS_END_SHELL_HELPERS > diff --git a/tests/multinode.at b/tests/multinode.at > index c6a414af3f..de61903d71 100644 > --- a/tests/multinode.at > +++ b/tests/multinode.at > @@ -3055,11 +3055,11 @@ add_guest_vm_and_connections() { > $default_route $default_route_gw $lrp_guest_join > } > > -m_setup_external_frr_router ovn-gw-1 4200000100 41.41.41.41 > 41.41.41.41/32 > -m_setup_ovn_frr_router <http://41.41.41.41/32-m_setup_ovn_frr_router> > ovn-gw-1 4210000000 14.14.14.14 12:fb:d6:66:99:1c 10 > +m_setup_external_frr_router ovn-gw-1 4200000100 41.41.41.41 > 41.41.41.41/32 12:fb:d6:66:99:0c > +m_setup_ovn_frr_router ovn-gw-1 4210000000 14.14.14.14 > 12:fb:d6:66:99:1c 10 > > -m_setup_external_frr_router ovn-gw-2 4200000200 42.42.42.42 > 42.42.42.42/32 > -m_setup_ovn_frr_router <http://42.42.42.42/32-m_setup_ovn_frr_router> > ovn-gw-2 4210000000 24.24.24.24 22:fb:d6:66:99:2c 20 > +m_setup_external_frr_router ovn-gw-2 4200000200 42.42.42.42 > 42.42.42.42/32 22:fb:d6:66:99:0c > +m_setup_ovn_frr_router ovn-gw-2 4210000000 24.24.24.24 > 22:fb:d6:66:99:2c 20 > > OVS_WAIT_UNTIL([m_as ovn-gw-2 vtysh -c 'show bgp vrf ovnvrf20 neighbors' > | grep -qE 'Connections established 1']) > OVS_WAIT_UNTIL([m_as ovn-gw-1 vtysh -c 'show bgp vrf ovnvrf10 neighbors' > | grep -qE 'Connections established 1']) > @@ -3624,9 +3624,13 @@ CHECK_VRF() > > vni=10 > ext_bgp_ip_gw1=42.42.$vni.11 > +ext_bgp_mac_gw1=00:00:01:00:00:$vni > host_bgp_ip_gw1=42.42.$vni.12 > +host_bgp_mac_gw1=00:00:00:01:00:$vni > ext_bgp_ip_gw2=42.42.$vni.21 > +ext_bgp_mac_gw2=00:00:02:00:00:$vni > host_bgp_ip_gw2=42.42.$vni.22 > +host_bgp_mac_gw2=00:00:00:02:00:$vni > > # Create an 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 > @@ -3637,11 +3641,11 @@ host_bgp_ip_gw2=42.42.$vni.22 > check m_as ovn-gw-1 ovs-vsctl set open . > external-ids:ovn-evpn-vxlan-ports=4789 > check m_as ovn-gw-2 ovs-vsctl set open . > external-ids:ovn-evpn-vxlan-ports=4789 > > -m_setup_external_frr_router ovn-gw-1 4200000100 $ext_bgp_ip_gw1 > $ext_bgp_ip_gw1/24 $vni > -m_setup_host_frr_router ovn-gw-1 4210000000 $host_bgp_ip_gw1 > $host_bgp_ip_gw1/24 $vni > +m_setup_external_frr_router ovn-gw-1 4200000100 $ext_bgp_ip_gw1 > $ext_bgp_ip_gw1/24 $ext_bgp_mac_gw1 $vni > +m_setup_host_frr_router ovn-gw-1 4210000000 $host_bgp_ip_gw1 > $host_bgp_ip_gw1/24 $host_bgp_mac_gw1 $vni > > -m_setup_external_frr_router ovn-gw-2 4200000200 $ext_bgp_ip_gw2 > $ext_bgp_ip_gw2/24 $vni > -m_setup_host_frr_router ovn-gw-2 4210000000 $host_bgp_ip_gw2 > $host_bgp_ip_gw2/24 $vni > +m_setup_external_frr_router ovn-gw-2 4200000200 $ext_bgp_ip_gw2 > $ext_bgp_ip_gw2/24 $ext_bgp_mac_gw2 $vni > +m_setup_host_frr_router ovn-gw-2 4210000000 $host_bgp_ip_gw2 > $host_bgp_ip_gw2/24 $host_bgp_mac_gw2 $vni > > OVS_WAIT_UNTIL([m_as ovn-gw-1 vtysh -c 'show bgp neighbors' | grep -qE > 'Connections established 1']) > OVS_WAIT_UNTIL([m_as ovn-gw-2 vtysh -c 'show bgp neighbors' | grep -qE > 'Connections established 1']) > -- > 2.51.0 > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > Looks good to me, thanks. Acked-by: Ales Musil <[email protected]> _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
