• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/sh
2# SPDX-License-Identifier: GPL-2.0-or-later
3# Copyright (c) 2018 Petr Vorel <pvorel@suse.cz>
4# Copyright (c) 2014-2017 Oracle and/or its affiliates.
5# Author: Alexey Kodanev <alexey.kodanev@oracle.com>
6#
7# Test-case 1: It requires remote host. Test will setup IPv4 and IPv6 virtual
8#              sub-nets between two hosts, then will compare TCP performance
9#              with and without VxLAN using ping or netstress test.
10#
11# Test-case 2: The same as above but must fail, because VXLAN allows
12#              to communicate only within the same VXLAN segment.
13
14TST_NEEDS_TMPDIR=1
15TST_OPTS="hi:d:"
16TST_PARSE_ARGS=virt_lib_parse_args
17TST_USAGE=virt_lib_usage
18
19virt_type="vxlan"
20start_id=16700000
21
22# Destination address, can be unicast or multicast address
23vxlan_dst_addr="uni"
24
25TST_TEST_DATA=",gbp"
26TST_TEST_DATA_IFS=","
27TST_NEEDS_TMPDIR=1
28TST_TESTFUNC=do_test
29TST_CLEANUP=virt_cleanup
30. virt_lib.sh
31
32# In average cases (with small packets less then 150 bytes) VxLAN slower
33# by 10-30%. If hosts are too close to each other, e.g. connected to the same
34# switch, VxLAN can be much slower when comparing to the performance without
35# any encapsulation.
36VIRT_PERF_THRESHOLD=${VIRT_PERF_THRESHOLD:-160}
37[ "$VIRT_PERF_THRESHOLD" -lt 160 ] && VIRT_PERF_THRESHOLD=160
38
39do_test()
40{
41	if [ -z $ip_local -o -z $ip_remote ]; then
42		tst_brk TBROK "you must specify IP address"
43	fi
44
45	virt_check_cmd virt_add ltp_v0 id 0 $2 || continue
46
47	tst_res TINFO "the same VNI must work"
48	# VNI is 24 bits long, so max value, which is not reserved, is 0xFFFFFE
49	vxlan_setup_subnet_$vxlan_dst_addr "id 0xFFFFFE $2" "id 0xFFFFFE $2"
50	virt_netperf_msg_sizes
51	virt_cleanup_rmt
52
53	tst_res TINFO "different VNI shall not work together"
54	vxlan_setup_subnet_$vxlan_dst_addr "id 0xFFFFFE $2" "id 0xFFFFFD $2"
55	virt_minimize_timeout
56	virt_compare_netperf "fail"
57	virt_cleanup_rmt
58}
59
60tst_run
61