From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (unknown [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id CA5F98017D for ; Tue, 6 Oct 2026 22:28:16 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 696MR4C2028569; Wed, 7 Oct 2026 01:27:04 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 696MR4C2028569 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="tbV0Dceh" Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 696MQxIs028556 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Wed, 7 Oct 2026 01:26:59 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 696MQxIs028556 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-48c4f6f6691so2948801f8f.2 for ; Tue, 06 Oct 2026 15:26:59 -0700 (PDT) X-Gm-Message-State: AFq9FYJf9Qh+pRNeC4u+FthoGH3twQZJqSwrMj5DGb4gSaoqz5h3bd8J +q0FXHKh5q0hTYawiht2+CJRAncm1eqCemtQncibwRijYJ1pml9Yksv7AEX7vpiNT8md8ROgVRM uFHZffEHJZSmg0svhjQzJGvHDmeT+4KC7xie5yUa8CQ9YlWDqr4aHWg== X-Gm-Gg: AYBFou1KOjFz3ub8MXYvfkkKTJjrW9VvR0H9YvZ0KlBHRfOyzR5YZS70kgeoSZet39d eUFbhwOk2I5XWgvdBgXTRgzK9gdyviylFSMN04U1DnnMWS9haX3nrq8VaBVcMdVQjYAgwzEsQ/5 d+QCcafTRJYrg271KEbYCdREdLhLtOKmHaWenY2d97TXp/vrKOVNZv0ZpWe/2hmCrx507BWD0+p XN9KHyjQ0LCr56jI5ADMlzHKlnSQGf0e43ypFDZBN5eegcNd8+beKqeIKbp8DHzRJ8Nu19DFZjF Vlwg2o34D8qlEAoEP7QR9DOjDXw7GbrNbCZjJ/7fpBYEtga47eOnnk3wFzurFLBUXVrJlKGh8fG RDBkk6AgG3WtApPgcVF2G25uh X-Received: by 2002:adf:f001:0:b0:48a:fbcf:6f43 with SMTP id ffacd0b85a97d-48c72897157mr790741f8f.54.1791325618964; Tue, 06 Oct 2026 15:26:58 -0700 (PDT) X-Received: by 2002:adf:f001:0:b0:48a:fbcf:6f43 with SMTP id ffacd0b85a97d-48c72897157mr790721f8f.54.1791325618406; Tue, 06 Oct 2026 15:26:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1791325618; cv=none; d=google.com; s=arc-20260327; b=YikQUzGLa8h/sxZ0RyK7g/zJOjJWhQ7T0UcrxERxq68ac8FqiX3aYt5htIcVJ4ZHxH /FOJwLzCJhEesj6Z8QiqdnWcIA/FygJQEbCsohU+HTlx+v3WGUtZuPQPyifzPerrurLr gdge7F2aJmjT9Gz5rn4bPWZZRzderlDELcZHuNZorgLcKKnVhA9hkL+Ai53tEDla9bzP J1G+5CDJZfjUDVyjfk8Dl2hUV6uzdmin8rJuSzsHzgcsAmvmhpjDGFN1wgO2ebqNIy8F 9bxMbQxy/MQjeVPirt14/LH25MGPiKqlQkEcgxM7uQ57qEv/E9oBN730Z7/A8qEfTudv OHJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=mg5MuoLwsIxJyaRT36SM4LOdRPNudIIPn/Z1uWjnSpY=; fh=WpT6aB7RBAGHZeWZzqAr71yzRFbPTYkPWKsRagLn48Q=; b=F6qM9wlrE9jb93WAsMT+rAFgstsgNJqVG0t3GRD5KP9ErZK842Hc2PuPbTB+Nb7nb2 GldqXsEKjFsSo/P6hqEz2/8q/+fdWsESqibzW5mP1WiqTJN1Ul07MEV6dYzEwkiH7fE4 FKgoAQ77HjfLV5atbfK2MuqnCkt4Ojs87rk3zvVUjr4civNHbz8dsKCl9ekNe8QIG828 3QrWcPztZOGyw0IvZhP2paBZWKOr+OWIihkqTK0c7wZPNd92FO9QFQr6iC8yEqW3qJJp IbyuDbgWj6GalhawkeksFHHwlV6pv/AcLg9Y4o12m5WU4Ri9um0GosuWq3zNqmASnuw9 pz5A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=tbV0Dceh; spf=pass (google.com: domain of eva.kurchatova@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=eva.kurchatova@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-48c7248690asi1523814f8f.249.2026.10.06.15.26.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Oct 2026 15:26:58 -0700 (PDT) Received-SPF: pass (google.com: domain of eva.kurchatova@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=tbV0Dceh; spf=pass (google.com: domain of eva.kurchatova@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=eva.kurchatova@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=MIME-Version:Message-ID:Date:Subject:From: Content-Type; bh=mg5MuoLwsIxJyaRT36SM4LOdRPNudIIPn/Z1uWjnSpY=; b=tbV0DcehwyGj f2g8wIVvP2gJ0/E+JQ66kb8HGPNLZyXfGdCV1Jbe9kxB+hcR+oxEDoOKMRkP9X6sqo6L6jzSw7NZk EM22J/US+HjjA8Woy5BFkZVrCRabxtZMOfRzF6hbswppVPhQrBwgI3qkvzwqjYi4Cl8Y/6x3AHdPi M/eqIPEKUMbGEJr+G5vOIC+fC9v78ZXSZlw48GgQnpr+q07AexDc3nn2SM1EthxwqEiCZGirsNiOZ n9CRdx4/VuBFECeH3meeGFjr7ifVcJlF9PNxBKyMMlJLet4UhHfc7cGyYbixf1fGqgT3+z1bXknna vfG8bCl7Y1c0lF60gYzbog==; Received: from ch-vpn.virtuozzo.com ([130.117.225.6] helo=LekKit-T14) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1xEDZQ-004qsv-2O; Wed, 07 Oct 2026 00:26:47 +0200 From: Eva Kurchatova To: khorenko@virtuozzo.com Date: Wed, 7 Oct 2026 01:26:19 +0300 Message-ID: <20261006222651.2510417-2-eva.kurchatova@virtuozzo.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261006222651.2510417-1-eva.kurchatova@virtuozzo.com> References: <20261006222651.2510417-1-eva.kurchatova@virtuozzo.com> MIME-Version: 1.0 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 v3 1/1] selftests: drv-net-hw: skip the tests that need a real interface X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org ethtool, ethtool_extended_state, ethtool_rmon, hw_stats_l3 and hw_stats_l3_gre need hardware: link speed, extended link state, rmon counters, L3 statistics offload. With no interfaces configured lib.sh substitutes a veth pair, and every case fails on what veth does not have. Upstream runs these tests on real hardware only and dropped the veth check in commit 0c499a351777 ("selftests: forwarding: Ditch skip_on_veth()"), so this patch is not for upstream. Skip before sourcing lib.sh, which creates the pair as it is sourced and would leave it behind. The check takes the interfaces the way lib.sh does, from the command line or forwarding.config, and skips when the first one is a veth, or does not exist and would be created as one. Real interfaces named there run with NETIF_CREATE and NETIF_TYPE left at their defaults, as lib.sh only creates what is missing. https://virtuozzo.atlassian.net/browse/VSTOR-139651 Feature: fix selftests Signed-off-by: Eva Kurchatova --- .../testing/selftests/drivers/net/hw/Makefile | 1 + .../selftests/drivers/net/hw/ethtool.sh | 5 +++ .../drivers/net/hw/ethtool_extended_state.sh | 5 +++ .../selftests/drivers/net/hw/ethtool_rmon.sh | 5 +++ .../selftests/drivers/net/hw/hw_stats_l3.sh | 5 +++ .../drivers/net/hw/hw_stats_l3_gre.sh | 5 +++ .../selftests/drivers/net/hw/skip_on_veth.sh | 33 +++++++++++++++++++ 7 files changed, 59 insertions(+) create mode 100644 tools/testing/selftests/drivers/net/hw/skip_on_veth.sh diff --git a/tools/testing/selftests/drivers/net/hw/Makefile b/tools/testing/selftests/drivers/net/hw/Makefile index e556b5150a51..39aece5e2776 100644 --- a/tools/testing/selftests/drivers/net/hw/Makefile +++ b/tools/testing/selftests/drivers/net/hw/Makefile @@ -19,6 +19,7 @@ TEST_PROGS = \ TEST_FILES := \ ethtool_lib.sh \ + skip_on_veth.sh \ # TEST_INCLUDES := \ diff --git a/tools/testing/selftests/drivers/net/hw/ethtool.sh b/tools/testing/selftests/drivers/net/hw/ethtool.sh index fa6953de6b6d..e1fbe37a71fc 100755 --- a/tools/testing/selftests/drivers/net/hw/ethtool.sh +++ b/tools/testing/selftests/drivers/net/hw/ethtool.sh @@ -11,6 +11,11 @@ ALL_TESTS=" " NUM_NETIFS=2 lib_dir=$(dirname "$0") + +# Needs a device that can set link speed and autonegotiation +source "$lib_dir"/skip_on_veth.sh +skip_on_veth "$@" + source "$lib_dir"/../../../net/forwarding/lib.sh source ethtool_lib.sh diff --git a/tools/testing/selftests/drivers/net/hw/ethtool_extended_state.sh b/tools/testing/selftests/drivers/net/hw/ethtool_extended_state.sh index a7584448416e..1201130cae67 100755 --- a/tools/testing/selftests/drivers/net/hw/ethtool_extended_state.sh +++ b/tools/testing/selftests/drivers/net/hw/ethtool_extended_state.sh @@ -9,6 +9,11 @@ ALL_TESTS=" NUM_NETIFS=2 lib_dir=$(dirname "$0") + +# Needs a device that reports an extended link state +source "$lib_dir"/skip_on_veth.sh +skip_on_veth "$@" + source "$lib_dir"/../../../net/forwarding/lib.sh source ethtool_lib.sh diff --git a/tools/testing/selftests/drivers/net/hw/ethtool_rmon.sh b/tools/testing/selftests/drivers/net/hw/ethtool_rmon.sh index 8f60c1685ad4..1745afe671d4 100755 --- a/tools/testing/selftests/drivers/net/hw/ethtool_rmon.sh +++ b/tools/testing/selftests/drivers/net/hw/ethtool_rmon.sh @@ -8,6 +8,11 @@ ALL_TESTS=" NUM_NETIFS=2 lib_dir=$(dirname "$0") + +# Needs a device with rmon histogram counters +source "$lib_dir"/skip_on_veth.sh +skip_on_veth "$@" + source "$lib_dir"/../../../net/forwarding/lib.sh ETH_FCS_LEN=4 diff --git a/tools/testing/selftests/drivers/net/hw/hw_stats_l3.sh b/tools/testing/selftests/drivers/net/hw/hw_stats_l3.sh index 67fafefc80be..460633f27f40 100755 --- a/tools/testing/selftests/drivers/net/hw/hw_stats_l3.sh +++ b/tools/testing/selftests/drivers/net/hw/hw_stats_l3.sh @@ -49,6 +49,11 @@ ALL_TESTS=" " NUM_NETIFS=4 lib_dir=$(dirname "$0") + +# Needs a device that offloads L3 statistics +source "$lib_dir"/skip_on_veth.sh +skip_on_veth "$@" + source "$lib_dir"/../../../net/forwarding/lib.sh source "$lib_dir"/../../../net/forwarding/tc_common.sh diff --git a/tools/testing/selftests/drivers/net/hw/hw_stats_l3_gre.sh b/tools/testing/selftests/drivers/net/hw/hw_stats_l3_gre.sh index a94d92e1abce..abe8c09700b4 100755 --- a/tools/testing/selftests/drivers/net/hw/hw_stats_l3_gre.sh +++ b/tools/testing/selftests/drivers/net/hw/hw_stats_l3_gre.sh @@ -13,6 +13,11 @@ ALL_TESTS=" " NUM_NETIFS=6 lib_dir=$(dirname "$0") + +# Needs a device that offloads L3 statistics +source "$lib_dir"/skip_on_veth.sh +skip_on_veth "$@" + source "$lib_dir"/../../../net/forwarding/lib.sh source "$lib_dir"/../../../net/forwarding/ipip_lib.sh source "$lib_dir"/../../../net/forwarding/tc_common.sh diff --git a/tools/testing/selftests/drivers/net/hw/skip_on_veth.sh b/tools/testing/selftests/drivers/net/hw/skip_on_veth.sh new file mode 100644 index 000000000000..aa2bb98dc278 --- /dev/null +++ b/tools/testing/selftests/drivers/net/hw/skip_on_veth.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +# Source with lib_dir set, ahead of lib.sh, which creates the interfaces. + +forwarding_dir="$lib_dir"/../../../net/forwarding + +# forwarding.config assigns by name into the array lib.sh declares +declare -A NETIFS + +if [[ -f $forwarding_dir/forwarding.config ]]; then + source "$forwarding_dir/forwarding.config" +fi + +: "${NETIF_CREATE:=yes}" +: "${NETIF_TYPE:=veth}" + +# Call before sourcing lib.sh, exiting after it leaves the veth pair behind +skip_on_veth() +{ + # lib.sh takes the interfaces from the command line ahead of the config + local p1=${1:-${NETIFS[p1]-}} + local kind + + if [[ -n $p1 ]] && ip link show dev "$p1" &> /dev/null; then + kind=$(ip -j -d link show dev "$p1" | jq -r '.[].linkinfo.info_kind') + [[ $kind == veth ]] || return + elif [[ $NETIF_CREATE != yes || $NETIF_TYPE != veth ]]; then + return + fi + echo "SKIP: needs a real interface, set NETIFS in forwarding.config" + exit 4 # ksft_skip, lib.sh is not sourced yet +} -- 2.56.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel