The new m_setup_*() helpers configure the Linux interfaces and bridges while the m_config_*() helpers set up the FRR configuration and additional VRFs (if needed).
This allows the m_setup_*() macros to be reused by upcoming commits for other similar BGP tests. Signed-off-by: Dumitru Ceara <[email protected]> --- tests/multinode-bgp-macros.at | 65 +++++++++++++++++++++++++++++------ tests/multinode.at | 24 ++++++++----- 2 files changed, 70 insertions(+), 19 deletions(-) diff --git a/tests/multinode-bgp-macros.at b/tests/multinode-bgp-macros.at index d41892b5eb..06d1806eae 100644 --- a/tests/multinode-bgp-macros.at +++ b/tests/multinode-bgp-macros.at @@ -44,14 +44,13 @@ 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 BGP_MAC [VNI] +# m_setup_external_frr_router NODE BGP_IP # # 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 and BGP_MAC as mac +# ovn-fake-multinode node NODE. The speaker uses as BGP IP address, BGP_IP. # address. m_setup_external_frr_router() { - local node=$1 bgp_as=$2 bgp_router_id=$3 bgp_ip=$4 bgp_mac=$5 vni=$6 + local node=$1 bgp_ip=$2 local br_name=br-$node check m_as $node ovs-vsctl add-br $br_name @@ -95,6 +94,17 @@ m_setup_external_frr_router() { fi on_exit "m_as $node systemctl stop frr" check m_as $node systemctl start frr +} + +# m_config_external_frr_router NODE BGP_AS BGP_ROUTER_ID BGP_IP BGP_MAC [VNI] +# +# Configures 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 and BGP_MAC as mac +# address. +m_config_external_frr_router() { + local node=$1 bgp_as=$2 bgp_router_id=$3 bgp_ip=$4 bgp_mac=$5 vni=$6 + local br_name=br-$node frr_flags="-N frr-ns" if m_is_fedora; then @@ -173,17 +183,17 @@ m_ovn_frr_switch_localnet_port_name() { } # m_setup_ovn_frr_router NODE BGP_AS BGP_IP BGP_MAC VNI +# m_setup_ovn_frr_router NODE BGP_MAC VNI # # Sets up an FRR BGP speaker in a VRF in the default network namespace on the # ovn-fake-multinode node NODE. This speaker is running on an interface bound -# to a local OVN logical switch, ls-NODE-ext0, and uses the same BGP_IP and -# BGP_MAC address as a logical router, lr-NODE-ext0, with -# routing-protocol-redirect enabled. +# to a local OVN logical switch, ls-NODE-ext0, and uses the same BGP_MAC +# address as a logical router, lr-NODE-ext0, with routing-protocol-redirect +# enabled. # -# The BGP autonomous system is configured to be BGP_AS and the FRR instance -# runs in vrf VNI. +# The FRR instance runs in vrf VNI. m_setup_ovn_frr_router() { - local node=$1 bgp_as=$2 bgp_ip=$3 bgp_mac=$4 vni=$5 + local node=$1 bgp_mac=$2 vni=$3 local br_name=br-$node physnet=physnet_${node}_ext0 local lr=$(m_ovn_frr_router_name $node) local lrp=$(m_ovn_frr_router_port_name $node) @@ -243,8 +253,21 @@ m_setup_ovn_frr_router() { check multinode_nbctl --wait=hv sync m_wait_for_ports_up +} - echo "configure +# m_config_ovn_frr_router NODE BGP_AS BGP_IP VNI +# +# Configures an FRR BGP speaker in a VRF in the default network namespace on +# the ovn-fake-multinode node NODE. This speaker is running on an interface +# bound to a local OVN logical switch, ls-NODE-ext0, and uses the same BGP_IP +# as a logical router, lr-NODE-ext0, with routing-protocol-redirect enabled. +# +# The BGP autonomous system is configured to be BGP_AS and the FRR instance +# runs in vrf VNI. +m_config_ovn_frr_router() { + local node=$1 bgp_as=$2 bgp_ip=$3 vni=$4 + +echo "configure ip prefix-list no-default seq 5 deny 0.0.0.0/0 ip prefix-list no-default seq 10 permit 0.0.0.0/0 le 32 @@ -338,6 +361,26 @@ m_setup_host_frr_router() { # Configure the BGP IP on the bridge LOCAL interface. check m_as $node ip addr add $bgp_ip dev $br_name check m_as $node ip link set $br_name up +} + +# m_config_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 +# interface (simulating the fabric connection). +# +# The BGP autonomous system is configured to be BGP_AS and the FRR instance +# runs in vrf-VNI. +m_config_host_frr_router() { + 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) + local lrp=$(m_ovn_frr_router_port_name $node) + local ls=$(m_ovn_frr_switch_name $node) + local lsp=$(m_ovn_frr_switch_port_name $node) + local lsp_bgp=$(m_ovn_frr_switch_bgp_port_name $node) + local lsp_ln=$(m_ovn_frr_switch_localnet_port_name $node) # NOTE: we set "no bgp ebgp-requires-policy" to simplify EVPN deployments. echo "configure diff --git a/tests/multinode.at b/tests/multinode.at index de61903d71..604a9bd0f2 100644 --- a/tests/multinode.at +++ b/tests/multinode.at @@ -3055,11 +3055,15 @@ 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 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-1 41.41.41.41/32 +m_config_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 12:fb:d6:66:99:1c 10 +m_config_ovn_frr_router ovn-gw-1 4210000000 14.14.14.14 10 -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 +m_setup_external_frr_router ovn-gw-2 42.42.42.42/32 +m_config_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 22:fb:d6:66:99:2c 20 +m_config_ovn_frr_router ovn-gw-2 4210000000 24.24.24.24 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']) @@ -3641,11 +3645,15 @@ host_bgp_mac_gw2=00:00:00:02:00:$vni 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 $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-1 $ext_bgp_ip_gw1/24 +m_config_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_config_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 $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 +m_setup_external_frr_router ovn-gw-2 $ext_bgp_ip_gw2/24 +m_config_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 +m_config_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
