From patchwork Tue Dec 26 19:10:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: William Tu X-Patchwork-Id: 853011 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="CIJQ9UZ7"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z5ltb5jhbz9s0g for ; Wed, 27 Dec 2017 06:10:31 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751083AbdLZTKY (ORCPT ); Tue, 26 Dec 2017 14:10:24 -0500 Received: from mail-pf0-f196.google.com ([209.85.192.196]:46035 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750764AbdLZTKX (ORCPT ); Tue, 26 Dec 2017 14:10:23 -0500 Received: by mail-pf0-f196.google.com with SMTP id u19so18964719pfa.12 for ; Tue, 26 Dec 2017 11:10:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=Rl5LV3IeD8DYb7Hi2r4X1j6XyLe82n7KV6dcgcEBfAs=; b=CIJQ9UZ7J3ViIJmYBf+BiWhT2zAC/aINwfvzP0OqLCmSBiPVtB8ANnG6S00cyadIpM /2cNF9vEDLfntEhGlpNYBoQaga+v7UknpPfjWXpefkH94gX/AVqlnSSwrFPnlHXH9jDS fIvSBBAgNkTbyc3cLNTvO3Q3jn5Fd0//GPEIRRoQrfI07z98cI4JUL8xIrMR+miPofeJ A6bu4YGV88Cfl/8HmTsbHBalwWJVFHRHlgeSY0twssTymqyBnOemlXGvsoqTjHehIFjd eQcJSanFK9d/rYHJ57eJwLNAnOfAQvhlXutXmGlIEwkHzer1Vy+vY9VS3ycn/9nMNc1j WloA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=Rl5LV3IeD8DYb7Hi2r4X1j6XyLe82n7KV6dcgcEBfAs=; b=k88/9ajuuCZ9Xc/KXxrp2vH7GQklYVrir7WvTqoVRgdOLIYQG29dYu9OHgiIC4ZN+v uNg56EgI2ycY26BYBozC5H5nXJJz1HnOJMz/y/X2HVL0OXuXNJTNoBk9PuT3/fgaQC6Z lzXuzUXpP6QqLBGj5xR49YYHQ18BQFIa9NwU8+ZCXv3zulyQV3A2DOLNCb0fRagITaph jzeIOhxURUuNSIx05jshrcnBiZ2hPlRqPPhH+bFJ7UsLpsxrk3GKE8AE/HB1zPMtCLkL CG2PdBza+RHRcTUZzq/SiR7Aa5CGTe1EIbYaXeIPu1rldFugGRf2ZD4UjnUXfh+zXkW0 hkNw== X-Gm-Message-State: AKGB3mLlhAgoTBUPkaHv/DMKwZmXC8Q9Cc7HpW/G4q5DXJ/psM2Xl5i8 AonQJpDcUjopzhr+7Z4diALvSl7B X-Google-Smtp-Source: ACJfBosGaEZk8/DjYBcUp9atSvls2fNsz8+GygvbqUucmPIWPBVzFrrC3i8v3CXeJgltWpd0DmVdMw== X-Received: by 10.101.96.11 with SMTP id m11mr616887pgu.206.1514315423136; Tue, 26 Dec 2017 11:10:23 -0800 (PST) Received: from sc9-mailhost3.vmware.com ([208.91.2.1]) by smtp.gmail.com with ESMTPSA id c10sm49872533pgu.61.2017.12.26.11.10.22 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 26 Dec 2017 11:10:22 -0800 (PST) From: William Tu To: netdev@vger.kernel.org Subject: [PATCH net-next] selftests: rtnetlink: add erspan and ip6erspan Date: Tue, 26 Dec 2017 11:10:07 -0800 Message-Id: <1514315407-13721-1-git-send-email-u9012063@gmail.com> X-Mailer: git-send-email 2.7.4 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add test cases for ipv4, ipv6 erspan, v1 and v2 native mode and external (collect metadata) mode. Signed-off-by: William Tu --- tools/testing/selftests/net/rtnetlink.sh | 131 +++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) diff --git a/tools/testing/selftests/net/rtnetlink.sh b/tools/testing/selftests/net/rtnetlink.sh index dada4ab69142..a622eeecc3a6 100755 --- a/tools/testing/selftests/net/rtnetlink.sh +++ b/tools/testing/selftests/net/rtnetlink.sh @@ -598,6 +598,135 @@ kci_test_ip6gretap() ip netns del "$testns" } +kci_test_erspan() +{ + testns="testns" + DEV_NS=erspan00 + ret=0 + + ip link help erspan 2>&1 | grep -q "^Usage:" + if [ $? -ne 0 ];then + echo "SKIP: erspan: iproute2 too old" + return 1 + fi + + ip netns add "$testns" + if [ $? -ne 0 ]; then + echo "SKIP erspan tests: cannot add net namespace $testns" + return 1 + fi + + # test native tunnel erspan v1 + ip netns exec "$testns" ip link add dev "$DEV_NS" type erspan seq \ + key 102 local 172.16.1.100 remote 172.16.1.200 \ + erspan_ver 1 erspan 488 + check_err $? + + ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24 + check_err $? + + ip netns exec "$testns" ip link set dev $DEV_NS up + check_err $? + + ip netns exec "$testns" ip link del "$DEV_NS" + check_err $? + + # test native tunnel erspan v2 + ip netns exec "$testns" ip link add dev "$DEV_NS" type erspan seq \ + key 102 local 172.16.1.100 remote 172.16.1.200 \ + erspan_ver 2 erspan_dir ingress erspan_hwid 7 + check_err $? + + ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24 + check_err $? + + ip netns exec "$testns" ip link set dev $DEV_NS up + check_err $? + + ip netns exec "$testns" ip link del "$DEV_NS" + check_err $? + + # test external mode + ip netns exec "$testns" ip link add dev "$DEV_NS" type erspan external + check_err $? + + ip netns exec "$testns" ip link del "$DEV_NS" + check_err $? + + if [ $ret -ne 0 ]; then + echo "FAIL: erspan" + return 1 + fi + echo "PASS: erspan" + + ip netns del "$testns" +} + +kci_test_ip6erspan() +{ + testns="testns" + DEV_NS=ip6erspan00 + ret=0 + + ip link help ip6erspan 2>&1 | grep -q "^Usage:" + if [ $? -ne 0 ];then + echo "SKIP: ip6erspan: iproute2 too old" + return 1 + fi + + ip netns add "$testns" + if [ $? -ne 0 ]; then + echo "SKIP ip6erspan tests: cannot add net namespace $testns" + return 1 + fi + + # test native tunnel ip6erspan v1 + ip netns exec "$testns" ip link add dev "$DEV_NS" type ip6erspan seq \ + key 102 local fc00:100::1 remote fc00:100::2 \ + erspan_ver 1 erspan 488 + check_err $? + + ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24 + check_err $? + + ip netns exec "$testns" ip link set dev $DEV_NS up + check_err $? + + ip netns exec "$testns" ip link del "$DEV_NS" + check_err $? + + # test native tunnel ip6erspan v2 + ip netns exec "$testns" ip link add dev "$DEV_NS" type ip6erspan seq \ + key 102 local fc00:100::1 remote fc00:100::2 \ + erspan_ver 2 erspan_dir ingress erspan_hwid 7 + check_err $? + + ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24 + check_err $? + + ip netns exec "$testns" ip link set dev $DEV_NS up + check_err $? + + ip netns exec "$testns" ip link del "$DEV_NS" + check_err $? + + # test external mode + ip netns exec "$testns" ip link add dev "$DEV_NS" \ + type ip6erspan external + check_err $? + + ip netns exec "$testns" ip link del "$DEV_NS" + check_err $? + + if [ $ret -ne 0 ]; then + echo "FAIL: ip6erspan" + return 1 + fi + echo "PASS: ip6erspan" + + ip netns del "$testns" +} + kci_test_rtnl() { kci_add_dummy @@ -612,6 +741,8 @@ kci_test_rtnl() kci_test_gre kci_test_gretap kci_test_ip6gretap + kci_test_erspan + kci_test_ip6erspan kci_test_bridge kci_test_addrlabel kci_test_ifalias