Please, ignore this patch, it doesn't help.

On Wed, Jul 19, 2017 at 12:07 PM, Miguel Angel Ajo <[email protected]>
wrote:

> For testing l3ha datapath we have an external port on a separate sim
> instance (ext1), and we send an UDP packet that we expect to see
> going through the specific MASTER gateway (gw1 or gw2) and reaching
> the final ext1-vif port on ext1.
>
> ovn_arp_populate macro din't know about the BRIDGE/IP/MAC of ext1-vif
> port, and didn't populate the tables, so in some cases an ARP
> request was sent from alice external distributed port to the external
> network, which wasn't expected on the OVN_CHECK_PACKETS macro.
>
> This patch adds a macro to let us register extra arp entries before
> running the tests, also makes sure that ovn-controller has synchronized
> and waits one more second to make sure that BFD sessions are fully
> established between gateways.
>
> Signed-off-by: Miguel Angel Ajo <[email protected]>
> ---
>  tests/ofproto-macros.at | 11 ++++++++++-
>  tests/ovn.at            | 17 ++++++++++++-----
>  2 files changed, 22 insertions(+), 6 deletions(-)
>
> diff --git a/tests/ofproto-macros.at b/tests/ofproto-macros.at
> index 23b0321..afba585 100644
> --- a/tests/ofproto-macros.at
> +++ b/tests/ofproto-macros.at
> @@ -235,6 +235,15 @@ net_attach () {
>          || return 1
>  }
>
> +# ovn_register_arp BRIDGE IP MAC
> +#
> +# Registers bridge/ip/mac triplet to the arp_table list which can be
> +# populated via the ovn_populate_arp function.
> +ovn_register_arp() {
> +    local sandbox=$1 bridge=$2 ip=$3 mac=$4
> +    arp_table="$arp_table $sandbox,$bridge,$ip,$mac"
> +}
> +
>  # ovn_attach NETWORK BRIDGE IP [MASKLEN]
>  #
>  # First, this command attaches BRIDGE to interconnection network NETWORK,
> just
> @@ -247,7 +256,7 @@ ovn_attach() {
>      net_attach $net $bridge || return 1
>
>      mac=`ovs-vsctl get Interface $bridge mac_in_use | sed s/\"//g`
> -    arp_table="$arp_table $sandbox,$bridge,$ip,$mac"
> +    ovn_register_arp $sandbox $bridge $ip $mac
>      ovs-appctl netdev-dummy/ip4addr $bridge $ip/$masklen >/dev/null ||
> return 1
>      ovs-appctl ovs/route/add $ip/$masklen $bridge >/dev/null || return 1
>      ovs-vsctl \
> diff --git a/tests/ovn.at b/tests/ovn.at
> index 248aea4..22d3ab1 100644
> --- a/tests/ovn.at
> +++ b/tests/ovn.at
> @@ -6851,7 +6851,6 @@ ovs-vsctl -- add-port br-int ext1-vif1 -- \
>  # Pre-populate the hypervisors' ARP tables so that we don't lose any
>  # packets for ARP resolution (native tunneling doesn't queue packets
>  # for ARP resolution).
> -ovn_populate_arp
>
>  ovn-nbctl create Logical_Router name=R1
>
> @@ -6907,11 +6906,19 @@ as gw1 ovs-vsctl set open .
> external-ids:ovn-bridge-mappings=phys:br-phys
>  as gw2 ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys
>  as ext1 ovs-vsctl set open . external-ids:ovn-bridge-
> mappings=phys:br-phys
>
> -AT_CHECK([ovn-nbctl --timeout=3 --wait=sb sync], [0], [ignore])
> +AT_CHECK([ovn-nbctl --timeout=3 --wait=hv sync], [0], [ignore])
>
> -# Allow some time for ovn-northd and ovn-controller to catch up.
> -# XXX This should be more systematic.
> -sleep 2
> +ovn_register_arp ext1 br-phys 172.16.1.3 f0:00:00:01:02:04
> +
> +ovn_populate_arp
> +
> +for x in hv1 gw1 gw2 ext1; do
> +   echo tnl/arp/show at ${x}:
> +   as $x ovs-appctl tnl/arp/show
> +done
> +
> +# allow BFD sessions to be established and up/steady
> +sleep 3
>
>  ip_to_hex() {
>      printf "%02x%02x%02x%02x" "$@"
> --
> 1.8.3.1
>
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to