From patchwork Mon Jan 15 19:18:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 861040 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="Isfmu1fp"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zL38x3VS4z9sNV for ; Tue, 16 Jan 2018 06:20:33 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751254AbeAOTUa (ORCPT ); Mon, 15 Jan 2018 14:20:30 -0500 Received: from mail-db5eur01on0083.outbound.protection.outlook.com ([104.47.2.83]:18756 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751210AbeAOTU0 (ORCPT ); Mon, 15 Jan 2018 14:20:26 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Mre/+Cb4P5ZxMA/ZhjzfbXG+C0703TLlNhHng3pkKcw=; b=Isfmu1fpIQ6Be+E9+kcpwEsIkuGG8Sf4L5vasYI63z0/yEqqG6ZzZEKzb2iXOv3UA2SyU/mBfzeF+uSLh3Ru4cSeroTaxMU9bo3z56pRCsZwUBtk6OvYc8DN5tO3QjXKqeJjsTaRXdzqViEbSxTcyjE2VLO+zWfUsqL5OHvlMpk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; Received: from localhost.localdomain (5.29.216.175) by AM5PR0501MB2004.eurprd05.prod.outlook.com (2603:10a6:203:1a::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.407.7; Mon, 15 Jan 2018 19:20:15 +0000 From: Ido Schimmel To: netdev@vger.kernel.org, linux-kselftest@vger.kernel.org Cc: davem@davemloft.net, shuah@kernel.org, dsahern@gmail.com, nikolay@cumulusnetworks.com, roopa@cumulusnetworks.com, andy@greyhouse.net, jiri@mellanox.com, mlxsw@mellanox.com, saeedm@mellanox.com, tariqt@mellanox.com, jhs@mojatatu.com, lucasb@mojatatu.com, f.fainelli@gmail.com, vivien.didelot@savoirfairelinux.com, andrew@lunn.ch, jakub.kicinski@netronome.com, simon.horman@netronome.com, Ido Schimmel Subject: [RFC PATCH net-next 04/12] selftests: forwarding: Add a test for basic IPv4 and IPv6 routing Date: Mon, 15 Jan 2018 21:18:45 +0200 Message-Id: <20180115191853.26129-5-idosch@mellanox.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180115191853.26129-1-idosch@mellanox.com> References: <20180115191853.26129-1-idosch@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [5.29.216.175] X-ClientProxiedBy: DB6PR05CA0016.eurprd05.prod.outlook.com (2603:10a6:6:14::29) To AM5PR0501MB2004.eurprd05.prod.outlook.com (2603:10a6:203:1a::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 57db9b51-ab99-4336-2606-08d55c4d0404 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:AM5PR0501MB2004; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2004; 3:UeWNW71+EDCZDshCwpKmQ90+nTkWNf2EOsn1bea2852WlAZb3pQqVy/3ieh2EOf4A/ggjW8qBKM/1PXMNJgaqn23C7rhkCyTKG8mp17ozJnWVpsrIB/8/O05H3ckIMaPBPYM69UpflcaaoAY2IJkaYT11WHd6Xl4mZGX71cnfRghOfj1FoMMwVIBu5SxtvbSIROQlIy/g42UsNXMWF0NWUz6du5oFA3xUqSQmQmQYbI/NtfECjkaygS3lPG1LmLn; 25:4PUvpV/+M4kzPKnlf2mpQ+ZKG3vLvFuj1bYa8P6PJdU63XRNfPHbCSWpg6RMlkIFxlWogBrS7lEc5YeF2eo1rUph8CrUKXV+Lz0HqPLKSWNZf6n8z7Lk2H9e+liOPsu8G594XdrXaaEBp/8AvIGnot/jGDjrNb/c0sXXlUM169vAZqH95j4wa7km2FzcCkd6u+60ymeSoUwN65hK/z8VZkomCSfPUZdTy1uD9Ldyk6u2LaNqEi6tXjpUdDzWoocEWi6fhykKphdh1Zmnv4JMUwcAIlCSyjPTilIZItXTrcxJVSLa+QB32C9dnSq4bjDfJAUnR89zT1DIkp97EsMvHw==; 31:CaSvW/DyyEAgSD0vYTANvCUT71eETZ57e33ZmF0aSSoueEtKOG1jJjSq3dmcmjdidlKi5IRs700lfGz/8QKjoRRQ5fJLD3PtxtZTA/821lMZaB11GMY+K7WQuvaVreFrMPIelpMTdaueDpXBRk/yfxSIUgBX3fWkTv5xJhdLWv6fjrG1bqLBNBmQBQeF+JhbvoGAP0C08D0LFP2xpUzIuSJYec3pHa+HQMvos/dEdLw= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2004: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2004; 20:QTMSVo+og4Cl5+KNI13sSQm8DQ+tR/cu94Yp8+Wznginx78GG1dtek5mSALYUQePlK++5Y67DlMd/KQyrzbp0iLEZJW0+GMYi6lsGVWFPKBJeygMUx3MAsIK9hPB6Hk0h1ufWviKlMpfh/XoOfOd0SeEQiVRi0ofpvL9VAxZYIh0Lu43SeqmxjjI5errKNHhijVz9fnTW2OnNuJGOFHlWySj/voqGDPdlE1puMhROariUwzMoJwMP8pP1XLuL/welu9y4GD9OPMbdk41QaUeRCnw+OexsZSeGCi6UbBCHJc+EACYpdMk4b+Hr0W7fGliWqWZhJxJgYEA8FOuZ+WbDPnym9W8tTuU1Urc+QqBZTVTMCZ/MPoY09v2HZUVbxGJwiKldTXt0wjl0Co45GrIFavzUFjBs8gOE2tg30rNCmz/RBh58uJgJNzWgy0t1J/c4urXMnsxsx/PcZpziRL/YESIfwPvh4BIPJJNG2H2OW0d5Apiqw9GWkKfuREKar2Z; 4:YaKVc+jcaP1cq/2pAg91lDUQdBkjpNqdIwT4/8e4t2UC07OMJK3gQJMfeBXVoTGnkzMUUms6ME1eXfMK1rfHMMlcrm0T7U1y0MdaeY/oeb58p7eQCkOVH0LbDhfcGlB/TLGc0HzrDjNkS5YkhUBl8+c+vHKzYeQ3zz04BAAW0xXhAF+WNlj3FKIqx3nmCQ+law0EhJHz/c55IKvOpQK3d/MPtOM0hBX2fI73Mm1kuodutilEVTTP0b3eA2EckRB5P999N4fWP3I1hekb7yC5Wg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(8121501046)(5005006)(10201501046)(3231023)(944501161)(3002001)(93006095)(93001095)(6055026)(6041268)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(6072148)(201708071742011); SRVR:AM5PR0501MB2004; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:AM5PR0501MB2004; X-Forefront-PRVS: 0553CBB77A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(39860400002)(346002)(376002)(39380400002)(366004)(396003)(189003)(199004)(6116002)(53936002)(6486002)(6506007)(386003)(59450400001)(2906002)(7416002)(478600001)(1076002)(3846002)(36756003)(50226002)(8676002)(81156014)(37156001)(81166006)(106356001)(8936002)(305945005)(105586002)(68736007)(52116002)(76176011)(6512007)(86362001)(47776003)(575784001)(50466002)(48376002)(316002)(71446004)(16586007)(107886003)(66066001)(4326008)(16526018)(6666003)(97736004)(25786009)(39060400002)(51416003)(5660300001)(2950100002)(7736002)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0501MB2004; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2004; 23:khuohGkccxE2I7azaTnqwjv3t+d0GFeKjX7Ir9N2/J2HJnR+oz3A895gO7qQ5XA7gRltqZ1fKzq6pNZ0h2QMNPgS7cB9tFARU4MK4Rj+u1ITbMuJIdGhbIOmocFA6Rq2q2GQcH8rn7jUO532+9d2tSyXg/KGW/eLTFatM35hCF5PxlcAk/TJiuQGwHzQfYc07vnjaSSzEEbrcpuFWLTwpqqOZbXUq1sYWKHJSdQ2OIZ2G2FYrMUif/AROVEzzISJApgKb7lfNzzQD4fFUAwq2TXOdS9va/Y0V/fl+ocCoPqrLwtfKZroGx8EfD6FLfIQjepIIfCRZ3GQjr7m+Z4QLlS48BydsZF+Jo006w4trj5R5DTd0nTGFxlj5Kry7SP5KvkJI17KO4IrfyFhkGmUnluV5TRbxfsnX5XtY8OQtg0zJuDForHibKi5NaKapPI5zumHk1JHx/PAan6hULSSyJA4qiibWxnzyWCTYKMqDSSDOssu+/yYmeuZzlA4McJDZ3ubdIqwmK+bo2T+e4+Ova/nH9hvTkA5GiF78QC+sbwwUk9ipRrSmT9/9NIcm1S7qZ/RjpgBnxhJZP2BGMO7crpYSqvJDzTStA2SGqUVexbEgv7q3akd89CjM0npYl4rbvixBhswImg2jzw+Kj3/u2x506zYShekHldwlBzV4uwRbWMB1/lI0ZhAvscPV3IDkmSqOICZooSIidj2QTPeTlh16E+N9Y04Tf//qFp5EkIB9npwoYdHbtp0q6kfbXpuAP70PomQveFhgcU/mQ+L0LoKBMB3FPXE1/Q/Lr5A3Fy5erpZMpbPXdOnYdcAfRcVveN4Pecvay2atx1/h4yBE4XsUKwwmrutVxhME/PPLV+6hFiVrV+Gn2ZhWwec3o6pQIWmwID+dCK/yw968x+vhPfBZIBWNVmbuihYRoBzMhNYnYCuWHRiM4ZMoeDxHNu8LSHfs5oovqjTe3AYxhJaZDvaT5Sgn3NWDEebNteJ/sA1HLIjK9zobjvLggSigC5yS7ceaUz2ml79rVEOhNVJfZKJsWSPIVc1j7c894FfrUMj94yB1Hg74g9Y33ewccxVUXg3GuveAinMPKagj7hiisz6EaLu8JK1LP0azNgw1VbI0wG4GI454GsMMHjQJmqxW8JP3Iz3t1IWDB9TxGq9PU6GFTkkmYDM1ytWqoTZrfVZ+olx7JPBmh2k12lu11psSFzn3U9vSCvaGavNzoLBvawmF2agadQCqxCI6BFnbV2xgDD18HayWHBohJITmWrM X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2004; 6:vtTsNooIxnsybmo3YlH33wXn698dk2xNayOi7FAefC0X/qavrAPpLzDczsk1yyL8qehp35/Rsg6Be7iHZaVT0TbTg57L8jJMxfeXUTEYniPB1eH/7EKUdQYKfc2Y/AKdvAT7P9itWiX9aGeg6Ry+3aEYKNaoLbv4PG9vClyz4/yOMPUVfemoqP7W1bGExwICAbaaRTmbuucQKkyZjMWpqxSJyhi84i8Ksx6OYc+sxBGcXBdfDQUeVvSRqvnMXA4M9uI9tyegJrq0nzLI1ayWUhvW3rVbO+PCVnCvwsXPd+LH4qeoBs+aRB1Uhy9t2cz4w9UYGI/NOcH1CYWM2y/YA8XsidDzBdaGVtltcAiY8cg=; 5:KV2ICaWx+RQETZqZm2CyPVrkueyXFl40cVrP41VBd1twL5R44YXNchFHz110kWYk+NzctFCEhejzmUNgBWUSM3Y8NFCK6BsFjpb58S2J1kDMDCY11f9q0N1p4wid7xXEKSOW9NLNGUTwmjmkvhdfI0ouACf8HJn1BWOAJSrVSQc=; 24:dUi8wRaEWHiSTI12WSpSZu3MKp1yoNh1IW/owEopjDfKavS/FAYvzX9VUYvsTEY0TL6heYCh+p9ZLsph93QklsPgq9z4a2LHiKk7b+jA2og=; 7:7lBMOiDqUeVkANPnrMmoWaMcKBwU9TqW7onMFf7P0daUaPYzEJwE4IQStSerkaBTXkd6Q0IW1jEw3+SLvLnxVud6YNLhruErsyR2Um+nnhCyL3/yQ/BD8lOgw0bVTtvUQVCOZkbP8MDG2bCOogMDuhlyKgtCTKa71ouvojTt6YpanAbk3bzZ0yhC2nyEVjq3ivhP9TixwWl90ek3HvTFb/UEJb2xqBj5K+dLdR+lTnuOyLEQrI72CmBBSAybOQeU SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2018 19:20:15.4128 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 57db9b51-ab99-4336-2606-08d55c4d0404 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0501MB2004 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Configure two hosts which are directly connected to the same router and test IPv4 and IPv6 ping. Use a large MTU and check that ping is unaffected. Signed-off-by: Ido Schimmel --- tools/testing/selftests/forwarding/Makefile | 2 +- tools/testing/selftests/forwarding/lib.sh | 15 +++ tools/testing/selftests/forwarding/router.sh | 131 +++++++++++++++++++++++++++ 3 files changed, 147 insertions(+), 1 deletion(-) create mode 100755 tools/testing/selftests/forwarding/router.sh diff --git a/tools/testing/selftests/forwarding/Makefile b/tools/testing/selftests/forwarding/Makefile index ef9380c49123..4efb0c96af94 100644 --- a/tools/testing/selftests/forwarding/Makefile +++ b/tools/testing/selftests/forwarding/Makefile @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 # Makefile for forwarding selftests -TEST_PROGS := bridge.sh +TEST_PROGS := bridge.sh router.sh include ../lib.mk diff --git a/tools/testing/selftests/forwarding/lib.sh b/tools/testing/selftests/forwarding/lib.sh index 03e5253b30d8..11b6f6101d10 100644 --- a/tools/testing/selftests/forwarding/lib.sh +++ b/tools/testing/selftests/forwarding/lib.sh @@ -176,6 +176,21 @@ bridge_ageing_time_get() echo $((ageing_time / 100)) } +forwarding_enable() +{ + ipv4_fwd=$(sysctl -n net.ipv4.conf.all.forwarding) + ipv6_fwd=$(sysctl -n net.ipv6.conf.all.forwarding) + + sysctl -q -w net.ipv4.conf.all.forwarding=1 + sysctl -q -w net.ipv6.conf.all.forwarding=1 +} + +forwarding_restore() +{ + sysctl -q -w net.ipv6.conf.all.forwarding=$ipv6_fwd + sysctl -q -w net.ipv4.conf.all.forwarding=$ipv4_fwd +} + ### Tests ### ping_test() diff --git a/tools/testing/selftests/forwarding/router.sh b/tools/testing/selftests/forwarding/router.sh new file mode 100755 index 000000000000..79ad6cba9118 --- /dev/null +++ b/tools/testing/selftests/forwarding/router.sh @@ -0,0 +1,131 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +NUM_NETIFS=4 +source lib.sh + +h1_create() +{ + vrf_create "vrf-h1" 1 + ip link set dev $h1 master vrf-h1 + + ip link set dev vrf-h1 up + ip link set dev $h1 up + + ip address add 192.0.2.2/24 dev $h1 + ip address add 2001:db8:1::2/64 dev $h1 + + ip route add 198.51.100.0/24 vrf vrf-h1 nexthop via 192.0.2.1 + ip route add 2001:db8:2::/64 vrf vrf-h1 nexthop via 2001:db8:1::1 +} + +h1_destroy() +{ + ip route del 2001:db8:2::/64 vrf vrf-h1 + ip route del 198.51.100.0/24 vrf vrf-h1 + + ip address del 2001:db8:1::2/64 dev $h1 + ip address del 192.0.2.2/24 dev $h1 + + ip link set dev $h1 down + vrf_destroy "vrf-h1" 1 +} + +h2_create() +{ + vrf_create "vrf-h2" 2 + ip link set dev $h2 master vrf-h2 + + ip link set dev vrf-h2 up + ip link set dev $h2 up + + ip address add 198.51.100.2/24 dev $h2 + ip address add 2001:db8:2::2/64 dev $h2 + + ip route add 192.0.2.0/24 vrf vrf-h2 nexthop via 198.51.100.1 + ip route add 2001:db8:1::/64 vrf vrf-h2 nexthop via 2001:db8:2::1 +} + +h2_destroy() +{ + ip route del 2001:db8:1::/64 vrf vrf-h2 + ip route del 192.0.2.0/24 vrf vrf-h2 + + ip address del 2001:db8:2::2/64 dev $h2 + ip address del 198.51.100.2/24 dev $h2 + + ip link set dev $h2 down + vrf_destroy "vrf-h2" 2 +} + +router_create() +{ + ip link set dev $rp1 up + ip link set dev $rp2 up + + ip address add 192.0.2.1/24 dev $rp1 + ip address add 2001:db8:1::1/64 dev $rp1 + + ip address add 198.51.100.1/24 dev $rp2 + ip address add 2001:db8:2::1/64 dev $rp2 +} + +router_destroy() +{ + ip address del 2001:db8:2::1/64 dev $rp2 + ip address del 198.51.100.1/24 dev $rp2 + + ip address del 2001:db8:1::1/64 dev $rp1 + ip address del 192.0.2.1/24 dev $rp1 + + ip link set dev $rp2 down + ip link set dev $rp1 down +} + +setup_prepare() +{ + h1=${NETIFS[p1]} + rp1=${NETIFS[p2]} + + rp2=${NETIFS[p3]} + h2=${NETIFS[p4]} + + netifs_arr=($h1 $rp1 $rp2 $h2) + + vrf_prepare + + h1_create + h2_create + + router_create + + forwarding_enable +} + +cleanup() +{ + forwarding_restore + + router_destroy + + h2_destroy + h1_destroy + + vrf_cleanup +} + +trap cleanup EXIT + +setup_prepare +setup_wait + +ping_test "vrf-h1" 198.51.100.2 +ping_test "vrf-h1" 2001:db8:2::2 + +old_mtu=$(mtu_get $h1) +mtu_change 9000 "${netifs_arr[@]}" +ping_test "vrf-h1" 198.51.100.2 +ping_test "vrf-h1" 2001:db8:2::2 +mtu_change $old_mtu "${netifs_arr[@]}" + +exit $EXIT_STATUS