From patchwork Thu Feb 20 08:05:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 13983457 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2058.outbound.protection.outlook.com [40.107.237.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8A88B1BE238 for ; Thu, 20 Feb 2025 08:06:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740038807; cv=fail; b=hJI10fkNaxUaMgsNn8L+MlmOU6JCJbDcRroPGN8/Me5b/nZp1t5+o3XnUI9s6U6vk2psWSomxJPOhbQ8Z9ndURUPx00Ud2z8jwblAFcq0WJ29oua7JC7G6uXUDAmoTzTa13TfgNnk2aQvzrP2Wck5WqySvnoErET5M7XbgSc2F0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740038807; c=relaxed/simple; bh=9dfT21zMWg9IOkoTn3AfBp1WKKIZVHNhTuh+IEPXRWc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=FXT3X39u3OYhLrqhYBHhgGOeWRlMdaELDyLsMjP9saaTpcruI6MOuXGBDSAMEP3A1VRVnyn8bANXN9XmhaKhvrWHTY1oHcFWGTpr+UayD9F9LKuQG3Trw08pt3kFi+w7c/zqBYH/bpYRr3YBjYp5LrFdHRddao/q+4aGoqrlXCE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=Gy4J04gz; arc=fail smtp.client-ip=40.107.237.58 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="Gy4J04gz" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MegNfVrQPfHgA3Wg9bMSbcnA5YUCYSsghz9vViEoUuMHBblDStJrsEVK/QFD6S5olGMKVwuPl15Da08vVdXyw0VcJecclBVmNIWgZOHPSovpys3YTh5vIYYSmZKxUTsa6lDZawWHCjvwoYKRr7jwspeb3N6Edz8VogKU+TAYWjmZ+gu0j0VbnpjCqiVhWEQ8JKX1fHcg/r3RRBXO2tP8G2snl0hDexcv/f9ehTvYrb9Snk+avy0xVDaoW4C56dMBUn/rIfBiadrnqQKw2KfgARlkPoyVU25Okfo2UUPOkqbDc3/8Ou6Kf0yVg30Ho0JdcgCIVvHFqRi0igHtGvTnpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zL5iGkFDQOC99TFm/usTFSbt/j+mCfNiDJrZBpF5OZQ=; b=dAtcwlMIck5V7qqYae+BQmjxWXeIBmLBHe55cCxnWFbOJhGkggxliaogNxrzqZyArmiwwMNxuz5isxood3+cWvuCrrVSvxbXy5EPWAeN/8pn32czs0b/J/BCF2CS6JBLtyoBH4Cjp/Eb17k2CeuC3R3rWGB3iFtR8ujRlN8SPhC8fsIrQ6XipNiK/1cA9KnKWJ1LztBx6FKWxiPa45TdvW6OkPsYke2L/2ct1FG2kwalKZHYFmDL7teIBT5+7MOjncxnXeGHmTnWPGWJjZB4F9hA62khfYmD6b5khF8OBDUuojZgnORo005jlyCdTfRuiu8zt3OwoGXWcIH0T2O6yg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zL5iGkFDQOC99TFm/usTFSbt/j+mCfNiDJrZBpF5OZQ=; b=Gy4J04gzv1vQouPXj3NP8VCZBVnVxU6mahN5iuGfvkqPjSBWA+dRXmcyZ4a02K32rnxBwYHKC2O96fBGp4ITikP4iwUemS9LTM+2/QgUfmN5c2v71RpUoGP+tKxGdbSiHSQZCzUc8uQQX8NneAEl8b1hzwWsHiwxn0ODzi6nsRHBKj1TqvV7ACQN+/XuwZRFp2SDxVw3JRbdydf4FfECFs7HE20R5I0TZuJ5BnTenIrIe4F2unHNcJLvdPmPPO1vn0ptXa02wQRgHV4F5/ygk3CQjiViNDZIoBC4fjSJInQ5Gtu4HjpVnO8LyStIYj1jliZ3mbSuARuQbNPBCrpdsQ== Received: from SN1PR12CA0089.namprd12.prod.outlook.com (2603:10b6:802:21::24) by MN2PR12MB4341.namprd12.prod.outlook.com (2603:10b6:208:262::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Thu, 20 Feb 2025 08:06:41 +0000 Received: from SA2PEPF00003AE9.namprd02.prod.outlook.com (2603:10b6:802:21:cafe::a6) by SN1PR12CA0089.outlook.office365.com (2603:10b6:802:21::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8466.16 via Frontend Transport; Thu, 20 Feb 2025 08:06:41 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by SA2PEPF00003AE9.mail.protection.outlook.com (10.167.248.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.11 via Frontend Transport; Thu, 20 Feb 2025 08:06:41 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Thu, 20 Feb 2025 00:06:30 -0800 Received: from shredder.mtl.com (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Thu, 20 Feb 2025 00:06:27 -0800 From: Ido Schimmel To: CC: , , , , , , , , , Ido Schimmel Subject: [PATCH net-next 1/6] net: fib_rules: Add DSCP mask attribute Date: Thu, 20 Feb 2025 10:05:20 +0200 Message-ID: <20250220080525.831924-2-idosch@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220080525.831924-1-idosch@nvidia.com> References: <20250220080525.831924-1-idosch@nvidia.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF00003AE9:EE_|MN2PR12MB4341:EE_ X-MS-Office365-Filtering-Correlation-Id: 1f0d8540-5c19-4758-9733-08dd51858276 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013; X-Microsoft-Antispam-Message-Info: Dl55UO+/cmjNWN0ny/TnN7NlqjMwjn+wyY42P53KdORU7O3Bro+29Y01E/04ckkVTIgcnuBP4kaW6okCkHcCRGsbm2nohhTIOaHxFbYBUkQfKNsS50+tJqclA+7ORmIbUPXUVcweiSUpDAuZsEmBj15Lhvnz2xYfIBZK5L5UmJ3dkydnCvPua3CkXBZHEfrbpZ+EvoRySGMuZiCy8Q2aN+/J0aBrdZtI5sgMeUnv+s47a/KebTPfpmKJ+p9HUL14/fuuHN9h0Omcpf+24CviBnKDBh8+2cUBpUeCRsSMCYPHI6sjyLYIHDRSR/WFu/1dGjD+uaomeJdwDI1jSjpAaFw2IoZL+uCySZ2wnQKVBV+Yv9SOFKlNKCG+8lGM5RQ8AAKfSZvTI86Kg1PD10cJ58gELkgqsOwme806IG8lLoJvo0uk7GO9OzLGF2ZXtRHHdGYuLvCL2Dxg3tZOVGF2FCK5F1BNmi2whHTG15F4d9xG0GMDcm9YjftSrPh7UWZ970m/lYZqPCV5RFerTFlbjVLCSMsAXehB/nMmmQQ5eNkQDgvFvWtnrDrGgIAk/ZUlL0gQRJ5wnHAtUzkG6GHTFcvPnMdNkqzWOVgXh3MfdFPuMWbcQSCrEQpjUxoYWKnwUeo3YCKBuse+u8xosbEhJsYz+/TB260RORCl8nu+6KPOaUdK/qOdIAjf63md18NcZxxUAmsgQOtwvac9BW43ZqPicAj0giPUec6LdGZAqC20tFmFIe1WimJfthy74FxzyqZVRMc1AsLiJNDGmzQDyvznUBeWauvGGJmYY1UvepUAEgZE2rcs5A1Vlm3YaWElZaYTEhZnp+Sm718zuUW9QAxn6hNDZ111bjYKavPcd/EmvJYnYKP29HR+ZDWYLrykHrDFjLp3nDAymxeNXLNBRIh1Toqhl74OY7GTxCYarigmalpNFrSxJVl15kW/AoJXu/2pnXfPvC/4hojVddlUszg16TDaDCJkvAeUmhyt5sBT++PqcWYlaPN2w/Ew77z9VcO/9MCn2V8D4E5C+7zro9y3UhZFdnMmiC57yIz9NZuV67Gu6/SK7fuLU+pFQKzp9MMEvUxsblw/8OcdX6fERJ4kIpKEkJoMMQ6VPGsvTY1AFch1ttRYsFkj/fmxD0O19aE4VaJji/41w80VQf3BIKD82EVpUY1ebTfzLchpTsD7nmRxzwCRTuePdqD6H5dbSsK6a0EzAZprXS0/qfxV0NQz64RyQnhaCMB7fUiGcS8JiNIcgBt38M1k0My5VUBKO7aSC5bLpFOrdbEjMZb22qWQa9r7mXESRihhP9hDdhWg1DX4kTBfAggGQ7V4I8k/LjIyPpwZcNzWJklTFkDYSv8XxfmEff6bPB8YtaQr22cd2R29PNEU5LOeuuluRA6raC1YsvuhIYBM/0f/HKPhmT2ulL59Mm8jZoNGU9krmR4VKNiWG24wxpsr/9+kyCQr6alLtdfQkzoevg5mhRF7AcqPRq1dT9xFMWeJ6qVKWTo= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2025 08:06:41.6538 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1f0d8540-5c19-4758-9733-08dd51858276 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF00003AE9.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4341 X-Patchwork-Delegate: kuba@kernel.org Add an attribute that allows matching on DSCP with a mask. Matching on DSCP with a mask is needed in deployments where users encode path information into certain bits of the DSCP field. Temporarily set the type of the attribute to 'NLA_REJECT' while support is being added. Reviewed-by: Petr Machata Signed-off-by: Ido Schimmel --- include/uapi/linux/fib_rules.h | 1 + net/core/fib_rules.c | 1 + 2 files changed, 2 insertions(+) diff --git a/include/uapi/linux/fib_rules.h b/include/uapi/linux/fib_rules.h index 95ec01b15c65..2df6e4035d50 100644 --- a/include/uapi/linux/fib_rules.h +++ b/include/uapi/linux/fib_rules.h @@ -72,6 +72,7 @@ enum { FRA_FLOWLABEL_MASK, /* flowlabel mask */ FRA_SPORT_MASK, /* sport mask */ FRA_DPORT_MASK, /* dport mask */ + FRA_DSCP_MASK, /* dscp mask */ __FRA_MAX }; diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c index 5ddd34cbe7f6..00e6fe79ecba 100644 --- a/net/core/fib_rules.c +++ b/net/core/fib_rules.c @@ -845,6 +845,7 @@ static const struct nla_policy fib_rule_policy[FRA_MAX + 1] = { [FRA_FLOWLABEL_MASK] = { .type = NLA_BE32 }, [FRA_SPORT_MASK] = { .type = NLA_U16 }, [FRA_DPORT_MASK] = { .type = NLA_U16 }, + [FRA_DSCP_MASK] = { .type = NLA_REJECT }, }; int fib_newrule(struct net *net, struct sk_buff *skb, struct nlmsghdr *nlh, From patchwork Thu Feb 20 08:05:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 13983458 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2068.outbound.protection.outlook.com [40.107.212.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 59B0C1BE238 for ; Thu, 20 Feb 2025 08:06:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.212.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740038816; cv=fail; b=ZtWfJ7CeAWOUC68icHaCEpvVYXudJbgb/C/eImMAfxzUe5r6jiKm6pmshEQno2gBwj5BsinLDzjLiOXEgeEggJReUnaku0jZNVLwGEzgqry20MbKMh03QGhxap746OsBFPbS4+B9FWgfU8Tpfgf7YhyzpOoLjmBCUdCRzMprVag= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740038816; c=relaxed/simple; bh=618uMF+xtM1wYQHlWts3LPazV5Ps9wNUvR0veIxI0Bk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=E5rTdP69z4TEYz6X3x8tOVaKrh4ZJCQBYDOaipqpmTN+K63jX5D8t1QigIMv8PaeizIDXGUUZshldqmI/WnVpZ9aEa5W4VCp3UjCyWHnQRrn1FGEW48Iuq3tUM5d/8lZNXR7ilPRoICkELm1NF7UA4TBFaJMqiUPX6CD4JKS5+4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=uB0XWdqq; arc=fail smtp.client-ip=40.107.212.68 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="uB0XWdqq" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tEOEEzhSG0KYXTZCn4Iqhk1PSsrGce2byz/EvXIFgr8GvPylqXmdAbo1GrgZO9GT5ZyywaJKa7ovNdfsGqS/NIN1s+5Mhx0FwwdIC3T1PhMQQiTOkaBWJ1okNHPMFLzrOrATXiNXTiiokg933hVVHOTFAF+0EnrttOCmhApS/ypvsFnDoEkR/puTf1/xVu1Xuj5TYfgW1FJNQLt787kqoyAyFykJ1ihTYo/AGh4/e12BexEgZa7QkUomqyhU/DgUE/fegsr7FXSg+4CVJhcchwC1DW3KEJGLLsXyEYSCREtrvUlYwYKvLiKaH4gGIl6DqbtKKq4+hBRao/AlhxIbJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=FNcWh/s95+6MkRMzQG5RzUtMfy+syLFlGq3ML1YBMzM=; b=FdSktkP1ytkAwjIjF25l09i7rGa0PrtqtU7+fE9KKvRrZZrQ8yFfIV3ad+0+zxzi81dvhIBr0xaw0HQPPqlpQPsum59DH5KBi0DXIzrPf0ILGgxyWF5RNGw2cbC75Nevo5Lj0wUFbOaaU/d9wIFiwJ0xybNe4/x97gMTvgyhkVqugwnSywaPL3+3weP4CuY3hGM2YquL5QVDGNwFR9muqpOb52HypotyD8Iey45Z/NJHDjDVt9xPOdmOFnDdncQ40uvXOndSCD+TbdpQ4z6eKoPGm8HqbJ47f12uVQ5X8PaO4uxext80wmn8VGSABPutvz9n6cdqjZnEyGzZJi5WJw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FNcWh/s95+6MkRMzQG5RzUtMfy+syLFlGq3ML1YBMzM=; b=uB0XWdqqDwO83zYe6Zc40tBVZFWJLbNEgJMnbCbwzaF+DZiuNG9BXLNnfkX/4J7yOH6yiA7LuQV+WVjsPxSJ3LN/ETC1egC+J5+pX0nAD4A44zSx5vKt6jYhTVJs2YGvTDMVUUG26wjvsfMbHSLtff6vVeedLn+y39dyEh1qFKFSe0zSI5u1RF2fRB3D/JHkO0unuhdnpF+ssp62Um3NwmhqEUp3gnZvOlNzyNKHECYzjj3JwUzMOSwIi43QuCrLrSUn+wJbUE3ufEIPQGwLnKls2UG/PjMhF9nibv3l3UrOQvYkBi354GfVfJ0yCehMVUmrp4jtjWsesMCFICXf0g== Received: from BL1PR13CA0327.namprd13.prod.outlook.com (2603:10b6:208:2c1::32) by MW6PR12MB9020.namprd12.prod.outlook.com (2603:10b6:303:240::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Thu, 20 Feb 2025 08:06:48 +0000 Received: from BL6PEPF00022570.namprd02.prod.outlook.com (2603:10b6:208:2c1:cafe::84) by BL1PR13CA0327.outlook.office365.com (2603:10b6:208:2c1::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8466.15 via Frontend Transport; Thu, 20 Feb 2025 08:06:47 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by BL6PEPF00022570.mail.protection.outlook.com (10.167.249.38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.11 via Frontend Transport; Thu, 20 Feb 2025 08:06:47 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Thu, 20 Feb 2025 00:06:34 -0800 Received: from shredder.mtl.com (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Thu, 20 Feb 2025 00:06:30 -0800 From: Ido Schimmel To: CC: , , , , , , , , , Ido Schimmel Subject: [PATCH net-next 2/6] ipv4: fib_rules: Add DSCP mask matching Date: Thu, 20 Feb 2025 10:05:21 +0200 Message-ID: <20250220080525.831924-3-idosch@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220080525.831924-1-idosch@nvidia.com> References: <20250220080525.831924-1-idosch@nvidia.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022570:EE_|MW6PR12MB9020:EE_ X-MS-Office365-Filtering-Correlation-Id: ac2bed4f-2a07-4f1f-f89f-08dd518585dc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: jWNmwC1z2x65T1a9uSZvMK2jW2INyAqc0sfZgt4udIBJJWTLlfbea2t2ELKUCapD6Lr+ByfnfxlsLDFo5hu5KcYW8+L6WeYrXlx6K4p8GxzEn11OxOWufzz0dB/qlKGxnGwZyFMSFPdLwH0cQGpQEPE0qnfYSsUbrK4kNW7BH8cCHM/DLrjb8sgITPGQy+E/T0HabNN9M3ZXmInYkY3SaOs7/Vl6YQl0SYMB/uJrHDDf2Cjb5UqIeUkNTfixuuLbO7AokiJfX9/N3EefA7nVLhZ0orxZ1Z62KqGTZ7MtOH1rRJyAKW5puqaHm1vtuVpVe69M6wWi1vWpCkHDwPhuAddMSUeSRpn3wdfdKOWXxaClH1g2xr9Vc0BqOYrbxMw+dRXuswhR/Id6BbGfMUOvnTlUvYUGYiPVR2hPjo++JgKF8Cp9d8vwuyz3deGT09Tf9ut+O/SeOW3lYukrvHJG7dhnGMGZdLE7rd5BetuCGdd+W1R1HuWWS7ijDQnqPTZFYSgZc1cE6tJYxH+/mYofx+rqNoJ3IBofMPA/zVas5l0VAGPxZNGA6XqNPGaTeF/O6FN5RIAQg6Quw3+BJQ/fUk5F+4vhrQ9d6xKsnJiJRJpozEubIJRtMADCBd5pUNbrd6sGd8T2M5BfP+Ux33A+vjYfkg8JH56V+sOcMt8cqPZtUZNtSvE4Oto/54xzAOiOmMmcWTkKT0tiMk3KfLbYMqhZfz2QeIvdYxGBHk/t6IUcIJY4KX8+vuXNCuSHTtkA2JzVTKcKr+rhPIL0p0AfEpRDf4LrwdMwK9e0BUHjt2S3vYG8QHApdsMlgOE+PyqFNPMinKpywGPdVQ2gXvEggs73YzFJjv9diXc1SCg3f1dTagRST4wphxb2JfzlfrFTzDUyPQ2m+rKXieSajEPb18yVIsmlKrH/Za8NzdteJ3z+OE9JWkk/YJgnL9fPrR+79a/VuKQ4a9IwynjbpB3VfjlZ+4+fWj5o4lKYyNV8EZpUprQM+Q6ZshhAxMdA9O029RdvapTK2uqxLreTmAqEQlW4OxO8a1Ik058Or7qwUSOb1wCdJTFMFUH3eNfBQ2C4Bt2p0le/fkEv1JZ+ohlQAWnFN7W1xonn9Luc97ZL6ecm1LjHeRGrpPFPBqASAF4CZ58sRAeA5nnANlmi0atvg2BMHAJnjPDeWDV4JWfsbc6M8RWNYezDNnOyCUvWIbkVajBB2fFXWyZmfuXfXbV17+X3AGaZNCMu0FSpdAUCmI7MWi2ZMwr7upjv9fL15w01RUSaOybq+mi0Yhnzx0OUbW2qn5wP84yfOxGfP+z6v1Zv9xZZfoLj4TxF3v5TZ11VcUkNSWaO7ay+6y26vFpNQR/qVkbgnw+yTtWoIYff6orjaM/vCYFj8dMKXX9KE0BNu3zxeTQQfuYf2BpQwokVjWUjUhU26UiZTH7tF28oS0ysF1qDbDXQc5DqKuSyNj8D24j9ugk8YLs084OJ1SdvPyZd1sPnP8byNEULk363pso= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2025 08:06:47.2798 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ac2bed4f-2a07-4f1f-f89f-08dd518585dc X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022570.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB9020 X-Patchwork-Delegate: kuba@kernel.org Extend IPv4 FIB rules to match on DSCP using a mask. The mask is only set in rules that match on DSCP (not TOS) and initialized to cover the entire DSCP field if the mask attribute is not specified. Reviewed-by: Petr Machata Signed-off-by: Ido Schimmel --- net/ipv4/fib_rules.c | 47 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/net/ipv4/fib_rules.c b/net/ipv4/fib_rules.c index 6b3d6a957822..fa58d6620ed6 100644 --- a/net/ipv4/fib_rules.c +++ b/net/ipv4/fib_rules.c @@ -37,6 +37,7 @@ struct fib4_rule { u8 dst_len; u8 src_len; dscp_t dscp; + dscp_t dscp_mask; u8 dscp_full:1; /* DSCP or TOS selector */ __be32 src; __be32 srcmask; @@ -192,7 +193,8 @@ INDIRECT_CALLABLE_SCOPE int fib4_rule_match(struct fib_rule *rule, * to mask the upper three DSCP bits prior to matching to maintain * legacy behavior. */ - if (r->dscp_full && r->dscp != inet_dsfield_to_dscp(fl4->flowi4_tos)) + if (r->dscp_full && + (r->dscp ^ inet_dsfield_to_dscp(fl4->flowi4_tos)) & r->dscp_mask) return 0; else if (!r->dscp_full && r->dscp && !fib_dscp_masked_match(r->dscp, fl4)) @@ -235,11 +237,35 @@ static int fib4_nl2rule_dscp(const struct nlattr *nla, struct fib4_rule *rule4, } rule4->dscp = inet_dsfield_to_dscp(nla_get_u8(nla) << 2); + rule4->dscp_mask = inet_dsfield_to_dscp(INET_DSCP_MASK); rule4->dscp_full = true; return 0; } +static int fib4_nl2rule_dscp_mask(const struct nlattr *nla, + struct fib4_rule *rule4, + struct netlink_ext_ack *extack) +{ + dscp_t dscp_mask; + + if (!rule4->dscp_full) { + NL_SET_ERR_MSG_ATTR(extack, nla, + "Cannot specify DSCP mask without DSCP value"); + return -EINVAL; + } + + dscp_mask = inet_dsfield_to_dscp(nla_get_u8(nla) << 2); + if (rule4->dscp & ~dscp_mask) { + NL_SET_ERR_MSG_ATTR(extack, nla, "Invalid DSCP mask"); + return -EINVAL; + } + + rule4->dscp_mask = dscp_mask; + + return 0; +} + static int fib4_rule_configure(struct fib_rule *rule, struct sk_buff *skb, struct fib_rule_hdr *frh, struct nlattr **tb, @@ -271,6 +297,10 @@ static int fib4_rule_configure(struct fib_rule *rule, struct sk_buff *skb, fib4_nl2rule_dscp(tb[FRA_DSCP], rule4, extack) < 0) goto errout; + if (tb[FRA_DSCP_MASK] && + fib4_nl2rule_dscp_mask(tb[FRA_DSCP_MASK], rule4, extack) < 0) + goto errout; + /* split local/main if they are not already split */ err = fib_unmerge(net); if (err) @@ -366,6 +396,14 @@ static int fib4_rule_compare(struct fib_rule *rule, struct fib_rule_hdr *frh, return 0; } + if (tb[FRA_DSCP_MASK]) { + dscp_t dscp_mask; + + dscp_mask = inet_dsfield_to_dscp(nla_get_u8(tb[FRA_DSCP_MASK]) << 2); + if (!rule4->dscp_full || rule4->dscp_mask != dscp_mask) + return 0; + } + #ifdef CONFIG_IP_ROUTE_CLASSID if (tb[FRA_FLOW] && (rule4->tclassid != nla_get_u32(tb[FRA_FLOW]))) return 0; @@ -391,7 +429,9 @@ static int fib4_rule_fill(struct fib_rule *rule, struct sk_buff *skb, if (rule4->dscp_full) { frh->tos = 0; if (nla_put_u8(skb, FRA_DSCP, - inet_dscp_to_dsfield(rule4->dscp) >> 2)) + inet_dscp_to_dsfield(rule4->dscp) >> 2) || + nla_put_u8(skb, FRA_DSCP_MASK, + inet_dscp_to_dsfield(rule4->dscp_mask) >> 2)) goto nla_put_failure; } else { frh->tos = inet_dscp_to_dsfield(rule4->dscp); @@ -418,7 +458,8 @@ static size_t fib4_rule_nlmsg_payload(struct fib_rule *rule) return nla_total_size(4) /* dst */ + nla_total_size(4) /* src */ + nla_total_size(4) /* flow */ - + nla_total_size(1); /* dscp */ + + nla_total_size(1) /* dscp */ + + nla_total_size(1); /* dscp mask */ } static void fib4_rule_flush_cache(struct fib_rules_ops *ops) From patchwork Thu Feb 20 08:05:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 13983460 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2086.outbound.protection.outlook.com [40.107.243.86]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7416A1E9B12 for ; Thu, 20 Feb 2025 08:06:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.86 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740038818; cv=fail; b=GY0OnymTKroE1EAvymCDKuR74vWXZwxrTEwveeF2SrMcu7Ds1aEk2KkHebCKG/Il5H+NDI1ozf2iw6IPM3y9eHhOXJrFsGs8SBAE9T7XEgxet5TA3buw/MPYY58H8oJry7tdqChxBF+yhnnLjtA29fc398DJK8MLr0pqT8EGk/c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740038818; c=relaxed/simple; bh=qX7nlDxRNhXn/pVbxpd4X1B5pz38of0PW4XUBCaIXmI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=nlafZP9buWombPMap7wweMb1KvWT37mNDI3EuVR4bV0B5YsKbZOItaDawyKg9zP0dWht/A0e3wAO/dDp8PKB0vUdLkFNqNHFddV0Bu9QXaDdVuoIK51ioheHBfHR3ywYTnc3m8VHWtOO3ajBwO39umeJuHmltbM0NXIT4zv9/y0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=I2crY0RX; arc=fail smtp.client-ip=40.107.243.86 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="I2crY0RX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YFq0v0GbtNXitx9ziai1CSfKBnWTmfLQacvsdUFE1vZ3TlDowNNPu2Cv52s7eJzU8n0sss5djUQoWPeT1Z42N2drZcfcF/Zs7Mop+L2WtGo9YknHGkOxGdd45Al8h1ClMsBz2/v6l9Xp+mBykSKnnrc0HjzPR3+CRZY9rOmdlKRn5YlKm+wi8b457o5K98NXuVZiKOoht1sH/Ag6Zhy0acrUtX71y4ZLd1ZoCyR8vsXB/AKwtSs0BExQE2ZhntAdksbsP+2+/DbpiU05iWInylQyJRbesu9SE7wOH7Ou/Se/9XnOfV1XT84Jme3ZkUSY7omBW8UfMYuFjSv74qyfyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=HTEDS9tVGAFJnsupOUTTrjaaZV8GiTdK8VJTqXQVQk8=; b=w5HXYtoWmesiFUWhWvf2Cx8dMqFJpinBVcZ1pRVg/X41sw5uanP9hTH2VkTGNyRBISocaQegIq1lqAWQElUiNNSyHGdOUgKdF/cl7wTeVcmDxR9ziBSJyaKvUxUH0B5cXURm3BXfM0hf3tGC0rwum1L5yBi5DQzjn/J65VF86gC+GMWkA3PR3WCP6OJTSeilk946p5qz5WfQ1uHyTg9HqEZs3LbEg22NQDQ4T3SPleYEFl//3ho929Fp5WOVlPZki6f+spMPHqmOVlS1TNBtuRMWWfnyUYNy9kfb3dC38th101XibcO7ugULCmCx7ftkHxW4SSPyY7ttUs54ihdXOA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HTEDS9tVGAFJnsupOUTTrjaaZV8GiTdK8VJTqXQVQk8=; b=I2crY0RX9Oxn8JozSgZ/GqJ9xcnDhQNXZzbR44mYAGGcrL+IYN89wVICdwYtZaoTM8erIPyWFjMgMQQork981Uo1kJ9QNfbac0I0oGoxDP10u87xSQFUNqkBARIqo/s54AIVBSeIz4Uue3A7rHf9uSLvjaWFBXWZI3gx+GS4J9dZequqGb/dTNzzjnnUAakkv7V+aL3kH2FcIbPu28zCBcH9zFJvlkv4ZnL28TxGmaLPQzOXIzSLfe1H+tfahWdL4nmZ2xQIp4eUIdGYiGvFOiMU+Y7cn4SL5JKplLuTSKfQDMMAdqTQMCITz0q1OAqYTjRi1aOoUESH/+1kSiFEBQ== Received: from BL1PR13CA0308.namprd13.prod.outlook.com (2603:10b6:208:2c1::13) by CY5PR12MB6348.namprd12.prod.outlook.com (2603:10b6:930:f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.14; Thu, 20 Feb 2025 08:06:53 +0000 Received: from BL6PEPF00022570.namprd02.prod.outlook.com (2603:10b6:208:2c1:cafe::a8) by BL1PR13CA0308.outlook.office365.com (2603:10b6:208:2c1::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8466.14 via Frontend Transport; Thu, 20 Feb 2025 08:06:52 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by BL6PEPF00022570.mail.protection.outlook.com (10.167.249.38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.11 via Frontend Transport; Thu, 20 Feb 2025 08:06:52 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Thu, 20 Feb 2025 00:06:37 -0800 Received: from shredder.mtl.com (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Thu, 20 Feb 2025 00:06:34 -0800 From: Ido Schimmel To: CC: , , , , , , , , , Ido Schimmel Subject: [PATCH net-next 3/6] ipv6: fib_rules: Add DSCP mask matching Date: Thu, 20 Feb 2025 10:05:22 +0200 Message-ID: <20250220080525.831924-4-idosch@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220080525.831924-1-idosch@nvidia.com> References: <20250220080525.831924-1-idosch@nvidia.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022570:EE_|CY5PR12MB6348:EE_ X-MS-Office365-Filtering-Correlation-Id: be70cff4-4108-4590-0e12-08dd518588fe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: 5aHzw7FHtk7NK+vmO+p7iljz7AH/YEU5ziNA9jYHKirfFywr2ULt0eSVCpxzQOZI16uizcLl/Dj2xGBr+PoTw+XewfJu+ABNEq5TfeuGdQIQRWbzLdC6OyDGoex8K+QivdW4gsEB6wCVzvbZf5Dmzb1K9myVtaHloAWz96jKQbQlCbvNqB2yX5Jvrdmt2aZ9mlBb8YwnsyW88gBKopQ7UKjmTI3q/LNbRXeEzUn2PethI2XxDquaklNGE+LJQ/rr0hPheD+A+i5KBKBcdDRCYsNQEzeTsJlslQQRqCd9AHiA7l9UXY5hjw+kQthP4BM7b/981rIaLBTRByviB+jSiZ1Ix1HovHRkQKklS6kY/hsf3vMcGDF78DGbK5OzUxqSVwIB6iwlkQtPY+bEV0i4LmKCwddmA+MiHGO+gryHtfNdUqrYfEQ9p6SBdFEBizxZG6HTPhmjpwz7j+mOjgoA+wAlPDWeuNtOqTacRPIKvIewpQwNGR4WkZttahzi4915ZMjOIOJWpkSEtSGSjDdqoUDYtN4JG8TRTlavFcdlCuT7EsmlErgHwKRtXxa+idAkJQU+FFI5XDcbaDGhq4AdLy0J0SNeLToSPbwHZI/kb9OXoAIRVfs+NhM7NYpPbSnL0GOKEZwLwUxGbmG+dxbpDCgCfSWpuwu4gpbqWhq75uldt01glzewmkzf5P0MfERHZyV941nBQv0TIHa6QEwdHUB0Hy/tJDGwdSul4YXFqpJs+YTghXb2r8805AxwXQrukwRv2laH34F/TFljtIogD4NMyszwi70gs4AygsNIkV7e59U7GhXJ1sFa0CTlh0UZ6A1ODCEp1X1VNmgVFGcdvEIMIjKrxpk7qkBkX+4TXoCakcnHP1SREiKpKflHCTSafZvOAuXi9Bs9OJCKqqw/IBrque/aHrDOhbSJj2SbEtS0ik5NfjmT6z0x6Y+/69bGdzmihDGWSPlDIoEmkR9fR0Lrf0HCcy/v8+pxvEcKVAjn4yhdlhlfPVyA3N5FdEDjGmwbAND9SiJhRkBKaTbrMcW/ZWzTwJVXSfcXVtuxJFajFMIuBl1Ug3/FxVhXct+3MBJBddx2m5MRRJC88isHdZl7owLDBzoqBcck6Tku9STc+LA5g9YnioCRxU1BbPaZTk81gshjZ+YtzGMwf2Metf9EATazemL5FfjWL5OjbWdaXcy+l6ZNjqvUuIxmrL7ruANL5qU0dT3n2fHAb1h+aMuLzAVkOHQwrkfI5/ts/CliCfnkiWmY7342cpG3bswhH2CDC2HlmKrYsPBTbgIVAs3fAZIUtCw0ZJMSacszJIOaf9LEaYHUhOXxA2lR9o/Ijdb82JdqaURAWkEh8rPoHyv3RaCx7SQvmzPvxTegPhXTOexvcXyQub7/NXpVA7SFFThYsv4YxjAJ/+uUPboBmKV3XQLaPW3lHS6qiBUDJTFvdPLBV/drZEJuUNkCCxBKHc6DG8Pnn/uzKePvugto1vBE0k/rTFg/KIp76XWa/DY= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2025 08:06:52.5298 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: be70cff4-4108-4590-0e12-08dd518588fe X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022570.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6348 X-Patchwork-Delegate: kuba@kernel.org Extend IPv6 FIB rules to match on DSCP using a mask. Unlike IPv4, also initialize the DSCP mask when a non-zero 'tos' is specified as there is no difference in matching between 'tos' and 'dscp'. As a side effect, this makes it possible to match on 'dscp 0', like in IPv4. Reviewed-by: Petr Machata Signed-off-by: Ido Schimmel --- net/ipv6/fib6_rules.c | 45 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/net/ipv6/fib6_rules.c b/net/ipv6/fib6_rules.c index 0144d01417d9..fd5f7112a51f 100644 --- a/net/ipv6/fib6_rules.c +++ b/net/ipv6/fib6_rules.c @@ -29,6 +29,7 @@ struct fib6_rule { __be32 flowlabel; __be32 flowlabel_mask; dscp_t dscp; + dscp_t dscp_mask; u8 dscp_full:1; /* DSCP or TOS selector */ }; @@ -331,7 +332,7 @@ INDIRECT_CALLABLE_SCOPE int fib6_rule_match(struct fib_rule *rule, return 0; } - if (r->dscp && r->dscp != ip6_dscp(fl6->flowlabel)) + if ((r->dscp ^ ip6_dscp(fl6->flowlabel)) & r->dscp_mask) return 0; if ((r->flowlabel ^ flowi6_get_flowlabel(fl6)) & r->flowlabel_mask) @@ -360,11 +361,35 @@ static int fib6_nl2rule_dscp(const struct nlattr *nla, struct fib6_rule *rule6, } rule6->dscp = inet_dsfield_to_dscp(nla_get_u8(nla) << 2); + rule6->dscp_mask = inet_dsfield_to_dscp(INET_DSCP_MASK); rule6->dscp_full = true; return 0; } +static int fib6_nl2rule_dscp_mask(const struct nlattr *nla, + struct fib6_rule *rule6, + struct netlink_ext_ack *extack) +{ + dscp_t dscp_mask; + + if (!rule6->dscp_full) { + NL_SET_ERR_MSG_ATTR(extack, nla, + "Cannot specify DSCP mask without DSCP value"); + return -EINVAL; + } + + dscp_mask = inet_dsfield_to_dscp(nla_get_u8(nla) << 2); + if (rule6->dscp & ~dscp_mask) { + NL_SET_ERR_MSG_ATTR(extack, nla, "Invalid DSCP mask"); + return -EINVAL; + } + + rule6->dscp_mask = dscp_mask; + + return 0; +} + static int fib6_nl2rule_flowlabel(struct nlattr **tb, struct fib6_rule *rule6, struct netlink_ext_ack *extack) { @@ -409,10 +434,15 @@ static int fib6_rule_configure(struct fib_rule *rule, struct sk_buff *skb, goto errout; } rule6->dscp = inet_dsfield_to_dscp(frh->tos); + rule6->dscp_mask = frh->tos ? inet_dsfield_to_dscp(INET_DSCP_MASK) : 0; if (tb[FRA_DSCP] && fib6_nl2rule_dscp(tb[FRA_DSCP], rule6, extack) < 0) goto errout; + if (tb[FRA_DSCP_MASK] && + fib6_nl2rule_dscp_mask(tb[FRA_DSCP_MASK], rule6, extack) < 0) + goto errout; + if ((tb[FRA_FLOWLABEL] || tb[FRA_FLOWLABEL_MASK]) && fib6_nl2rule_flowlabel(tb, rule6, extack) < 0) goto errout; @@ -482,6 +512,14 @@ static int fib6_rule_compare(struct fib_rule *rule, struct fib_rule_hdr *frh, return 0; } + if (tb[FRA_DSCP_MASK]) { + dscp_t dscp_mask; + + dscp_mask = inet_dsfield_to_dscp(nla_get_u8(tb[FRA_DSCP_MASK]) << 2); + if (!rule6->dscp_full || rule6->dscp_mask != dscp_mask) + return 0; + } + if (tb[FRA_FLOWLABEL] && nla_get_be32(tb[FRA_FLOWLABEL]) != rule6->flowlabel) return 0; @@ -512,7 +550,9 @@ static int fib6_rule_fill(struct fib_rule *rule, struct sk_buff *skb, if (rule6->dscp_full) { frh->tos = 0; if (nla_put_u8(skb, FRA_DSCP, - inet_dscp_to_dsfield(rule6->dscp) >> 2)) + inet_dscp_to_dsfield(rule6->dscp) >> 2) || + nla_put_u8(skb, FRA_DSCP_MASK, + inet_dscp_to_dsfield(rule6->dscp_mask) >> 2)) goto nla_put_failure; } else { frh->tos = inet_dscp_to_dsfield(rule6->dscp); @@ -539,6 +579,7 @@ static size_t fib6_rule_nlmsg_payload(struct fib_rule *rule) return nla_total_size(16) /* dst */ + nla_total_size(16) /* src */ + nla_total_size(1) /* dscp */ + + nla_total_size(1) /* dscp mask */ + nla_total_size(4) /* flowlabel */ + nla_total_size(4); /* flowlabel mask */ } From patchwork Thu Feb 20 08:05:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 13983459 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2082.outbound.protection.outlook.com [40.107.101.82]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CC50C1E4110 for ; Thu, 20 Feb 2025 08:06:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.101.82 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740038817; cv=fail; b=chMRrxpYnJgvusoppV/5AdvPrKfruwp/Y9gyxvP8tq/4VkT3CKUdgjrOiCIgr4gWpLvTnodicbqSXqdEXAzLsdJ8ZaHJ+BwQTHCfMtbzsujC7XDDrEHV8CkFRh19X8je+I0Oef/EYNMd0Fz2H2OWBf/v58zETw0gpD4p4mbH8rc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740038817; c=relaxed/simple; bh=WBuig4FiL0EWWiUYvcBsWE1+Bo8bly5YJzdzTG8qBVY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=dbAXJokYizhhus9YCLLJqnNOdyHSxQAtCCSnyLKdwS1NE13QoYACjrjfEk/6HDo3V28iee5T+aGA3gqBc5THSNHcVypiI6XOFOd6uA8oaMjsv4yT8VeZL49UVH3Ivw6Y620LZ2ENLWKMCV5o00Cr7GKXLU/v5EfbMZgTuxyPnyY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=W/VRJFn6; arc=fail smtp.client-ip=40.107.101.82 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="W/VRJFn6" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Kn9OHBZ0xP8Gkhalnc/owEvhWEi/fMuRYHrXAWi66Cvozvlim/KcTsKSULWgSaJvWBGorJk8xafx82KJspmT1+vYam9wT6Hi+NQfnmZLt51WwT2psnLLl1I7SD8vkaqSGw94/qTrABajEivE2vaFHNsuDHsX/eCdtgViNFPzH2K/yh7TstfMttjq2yypgkHSWa9B2RK200CEv4eQuqzKcyljKeK2d36v4ngp8vdk7xhNK6RjDUn265UskbgcwtHVbNH8sWx/p1jP9QO0DEGA9vN/PHfhBS3bKAewmEphYYVuQi8UX+ZKKXQ0HdlhNOl3M44qS7mdA3wtbDGWooX96w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UMO70sBjxYZCUFVuzP00XEqpP0ew5r2Zxtx5qn4hlbI=; b=kt4dO/qWSU0QZZCX0KCENVddV8unvR2D/LaGBtLeA/Jvgclb9ZIneSD+iQzZoYhutX1ku1PUZ8hDqZE+j7u0aOlWpIK0lHGWTPBj2k4pJVeaVbNp4Nh4OMsysmKiM8P3UDXmGOYlsLQDx9Yoe+tdlg+/LilBa8eWVvcFbjka7QPI6GtftgMNy0/dkauqJMCInU2nCwcrIPrSu7pnwUsR1G4aRjQE0DIeXDU9y3uiefZds58Dtb/NAYEtLeymjaQmfSd+84WQ07T3E0ISA5efKzJFm5xexk2eEV1HCB9OLWvmsgSTlhkJAJA9o6TpSes+q4XXtu+kOzjHhzpL2NA/XQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UMO70sBjxYZCUFVuzP00XEqpP0ew5r2Zxtx5qn4hlbI=; b=W/VRJFn6KLWmg0Pse9fDUmuBpsUjDBrsCc6pTGM3Af3QmAhT+PcSYGfeLT9swmPXsiGvhzs+AUn6tWQmurX1hynDy1JYmMR5+qrG0po7qXUfA6OVqRG62s8Gl2FPPLAnnszEAclzFtLKr2X1X1vIL70waUpDwl6RLGBV1thpjuusK0m/t6w9ujCbrX/dPqEUjJo1sYwM6ErRJtPOxJpDbOaSB5J7iynUUDHfqLLovDGFidwb4PjrfbZchthreBLeErpc2wmVPUbukvPev3R/c8CrVBJN17REmpvqmH9Ek8pUe0k0cdYKPpL/dFYwrwarZDW8sSeiqfXvKhS372PBSQ== Received: from SN1PR12CA0085.namprd12.prod.outlook.com (2603:10b6:802:21::20) by CY5PR12MB6058.namprd12.prod.outlook.com (2603:10b6:930:2d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.14; Thu, 20 Feb 2025 08:06:52 +0000 Received: from SA2PEPF00003AE8.namprd02.prod.outlook.com (2603:10b6:802:21:cafe::54) by SN1PR12CA0085.outlook.office365.com (2603:10b6:802:21::20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8466.16 via Frontend Transport; Thu, 20 Feb 2025 08:06:52 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by SA2PEPF00003AE8.mail.protection.outlook.com (10.167.248.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.11 via Frontend Transport; Thu, 20 Feb 2025 08:06:52 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Thu, 20 Feb 2025 00:06:41 -0800 Received: from shredder.mtl.com (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Thu, 20 Feb 2025 00:06:37 -0800 From: Ido Schimmel To: CC: , , , , , , , , , Ido Schimmel Subject: [PATCH net-next 4/6] net: fib_rules: Enable DSCP mask usage Date: Thu, 20 Feb 2025 10:05:23 +0200 Message-ID: <20250220080525.831924-5-idosch@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220080525.831924-1-idosch@nvidia.com> References: <20250220080525.831924-1-idosch@nvidia.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF00003AE8:EE_|CY5PR12MB6058:EE_ X-MS-Office365-Filtering-Correlation-Id: f605b98a-79f0-40a5-a540-08dd51858901 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700013; X-Microsoft-Antispam-Message-Info: rDshpq94zrXxf7Fj/qWwUm5JlgtAnGl4sg/4f8XyOEL2pG+rhlM+1jGX++vAE+9gp61sCpNPMbfbkzsMjPH3EC1xgxx2nbt8Y/H5KRwr4HwHfCrWojV4JK88qk1FN7yGmTKBYrXcRSCqIUG3QKeCHp/2VWOEhNwl9v9TtduXTkcPDhINtPe2HNRSFHahZsAdHCCWGHvbeHAuGue64qz+m+IwUOJYp+ruwEVEfbw3dXhWkRRCZYrQK+/21BfOqS31VmHh4xz+tBQwsIrWSm2b7m5pFepeabPjS9BuSDH3ZuSNTyZRuL7V2c05QWjCqEROTIUnCMBbZoRtb+lU2DVFyI0sCedB0fAcrvgaByxSvhgr8nXmbjvJZLZkUt5h4W2Ee0NE45YiQZZpHxnwsN1VfikSBRmbhQZ8mVf34Ri5p0kzPssSif+kyXoDaR6Ov1arlIdu65OCKv09CnoZ1LVDvHlHkOprK1n9jWU12MfOvN8EaGy6ZxImkQh/7X4K2gtpPZszwhxORbC+dqWdsHOtdAAQatiloiM8W+RXZsMA84QDQXvnZV6d/a/EccKp/p85QoYVqjsj35fjQatf6uByLRKan7CRJLbHLibwSmaWtgWuourKI0fRdIAr/reQ6GkRYOhJHOePmC4frDIIDYLVftNcd9wzE/YIZL8uCQVyIFvcVYVsK/2SdyeZcFLSMrjsSIsdKPp8RnYppyAMIR7CGB6tFH7Ez+lqvsuOWa2jHVoti2kNAge8tuUR/B4A3n4wmIoTExuGOvEO5zp6Ryc5ZctTcWm54lslxf9stWKh2qtcAo9Z5hV9xsQ6STgCW12PPQo6m8a5i5l1H5fjQhmMceZYrEjPmmttVU/fJgQIiBnhTR0XGRIKl1iL7UxWeHE2UlDkiOSqvVIy964Dcew/AZ9T7oeK7mZ1txbVSe7MCgxc7r1TRuJZ308DpTGi+RKlXEYRNEnjh8pcVgJV9nI6KSJkxalftcGj5EprBSVAg8c2dtoknVK169nKHSJcClj/xRcvpSg6xhfWru0zYTMLfbqGfZMl1ac2A1boCeM18riMDjv7zs+ZM+d5jLVEFvIPQzXVIyjqFdap/zBNLZn9NJpIFP09i+iYtLgOX+5kc6MPWi59sUX7H8kqid6pMJbp22Jblx9c2XNeUcUzwKZaJd1kG0n7KKU9JGuvjhCoLAQ0jtVJ2VgfS6ZiLuTGs2IxEp2T8IUB3MAGsyhiaLyZy/Euow1KEtTBQI0tUDohbNp71+W1J/7SxvEmdDoXatVecw0TdRW9D5E9X7ikxUwL8W8zk13H2kY5eowKJk09LuTMtUJlm4Y1Zd67qx9/XK7ZxUHUVtQcQNfycG7pbHYzk36HRQd5kWTaI+dGHFLRYRghxcTBLCz6Pmw0fWaRnIqivEkTguZYxCdlEQvNI9PXqEUf06kKL8XIJz+273JFjJz1NM0muiO5hl18UQqieHXRldF31URSL8i44uUi+9C5+Y3OqVjFcdI1qtiYSzzLi+M= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2025 08:06:52.6002 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f605b98a-79f0-40a5-a540-08dd51858901 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF00003AE8.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6058 X-Patchwork-Delegate: kuba@kernel.org Allow user space to configure FIB rules that match on DSCP with a mask, now that support has been added to the IPv4 and IPv6 address families. Reviewed-by: Petr Machata Signed-off-by: Ido Schimmel --- net/core/fib_rules.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c index 00e6fe79ecba..4bc64d912a1c 100644 --- a/net/core/fib_rules.c +++ b/net/core/fib_rules.c @@ -845,7 +845,7 @@ static const struct nla_policy fib_rule_policy[FRA_MAX + 1] = { [FRA_FLOWLABEL_MASK] = { .type = NLA_BE32 }, [FRA_SPORT_MASK] = { .type = NLA_U16 }, [FRA_DPORT_MASK] = { .type = NLA_U16 }, - [FRA_DSCP_MASK] = { .type = NLA_REJECT }, + [FRA_DSCP_MASK] = NLA_POLICY_MASK(NLA_U8, INET_DSCP_MASK >> 2), }; int fib_newrule(struct net *net, struct sk_buff *skb, struct nlmsghdr *nlh, From patchwork Thu Feb 20 08:05:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 13983461 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2080.outbound.protection.outlook.com [40.107.102.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B56351E9B12 for ; Thu, 20 Feb 2025 08:07:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.102.80 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740038823; cv=fail; b=hALmmKq5V3jnrCgr8QsBYufZ2PnJTC/OnmWMA8yIqdjMh0V0p7mwdcIYLoMsHWh7BlO/NcSivza/nBnWRbRLglYn3rpuGW6xmFbBkUXWiAb/PqWsJANqWU2AoV9h4GyQ7nCjQGSf+VGZsgIlXKYnhhygsW6NP+hgqn8Q5ovKEew= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740038823; c=relaxed/simple; bh=WdsgSzAdmTrvO307Z/V78Y8UMMxeKBhnyZbWyiUE3us=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=RSr7wQ932EWHUvr5yYljJ6OWduF4OP4VwDAc9BbzHXa010ry962DpTJ3GJiwSlUOHKWwjwZ0APy//H2FZ1ent0PfuZdxshm0idzV7Es41TV17m1N6vwEo9eF4c5BKfCdq4YLPiaMKBfrALu0DxmMmOqwzYcpeGBF1zCY9btqfzM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=m5NAemee; arc=fail smtp.client-ip=40.107.102.80 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="m5NAemee" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yHHyp1nqDHmoLPfbAPC8ko2IkyXUQFkgk6HL/NQNAaOHIYdkjx3EF8s+jKznFdEwl985v2CIR+oj/5XsAp1ESt6xfECoTPvcuzvAcY2NPGzVSkq336FveLi9yTuKFsqfp/rdKpYdCfh1a0WHaoaZysRKVVYvEbW5DO3sK+2MoX9/8sJf8oehEDn39WmqDAMAUq7EaVQAzl+2UPOlG3ldhowEfOBSKs1Hk8Qkn6lxRYuXS6y2zLsjV/UnSVcUwEZ6VQ8xIHsqAx2uMbYwIiQVZwVndDe52fCW9YE/M0DulP4CKJmuYu0jZByPzSVIQBvibll/OTZZBURC8GD0k7L87Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=u14IjzMpcu/T7v8KurmYjTL7GimNqJd8/rKHaocg9Y0=; b=UVX2vkZ+O+9D7h2QSPKUbKz6q7r9MzE3wITwUa/zd5NLDR+KlK3nv6VplUcUiIEfMWN7LRAb+D+/kX8pbPmSjRGXtX8JHM9hWXL2fwAcSw7iETLT2rnHoX46VBBsTNbET/v0cljZ+iutrdsBboVTJZQ746Kmc87QMfrY3Z5yvFn1lYmuaJ8O3jYaU710ai+gb6kiZ545no6kO81J/TB/WNfRWpjq2aCkYA8dT6VettmllrXCaiIPrmNO0gsu5bRTXuziaPN+oIn8aeTzGdK5KeNk4fp+ISOwKv3dxEI3uRyDBDh8Aip1n09nCF6ilsga7njLJXrVdFdRByNMPsj7Bg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=u14IjzMpcu/T7v8KurmYjTL7GimNqJd8/rKHaocg9Y0=; b=m5NAemeePzWpj+/JDNkf1ghpWRPDpLuOwlIoiJh8Opa1/cWe5ENm+B0662gZ3zoSw3VrZYlvibIpQx80cyrQIAOeoNWKR6e5brMVA1BXWI6Inv5RGVwfnN/JssiPjsqoOQB23kTWBHnEeNzJpCDiI9J3FydG41qdkbj+2Q6NfqemfFddV/u5neZR9/o828cQLH6cihkrjftam7keqhmDLi3TcHgvErmGRemYTON+64+jQFRCBiWefdVeAfjLbyHo781rQMR/FAR2xOTWGb5SeO+Ow57OCcnbzQW61VXpvcH16m/0zyOD5r1TNHO/9JbsgGPXf2tUXugh28E4Ik8HsA== Received: from SN4PR0501CA0129.namprd05.prod.outlook.com (2603:10b6:803:42::46) by DM6PR12MB4266.namprd12.prod.outlook.com (2603:10b6:5:21a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Thu, 20 Feb 2025 08:06:58 +0000 Received: from SA2PEPF00003AE6.namprd02.prod.outlook.com (2603:10b6:803:42:cafe::87) by SN4PR0501CA0129.outlook.office365.com (2603:10b6:803:42::46) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8466.12 via Frontend Transport; Thu, 20 Feb 2025 08:06:57 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by SA2PEPF00003AE6.mail.protection.outlook.com (10.167.248.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.11 via Frontend Transport; Thu, 20 Feb 2025 08:06:57 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Thu, 20 Feb 2025 00:06:44 -0800 Received: from shredder.mtl.com (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Thu, 20 Feb 2025 00:06:41 -0800 From: Ido Schimmel To: CC: , , , , , , , , , Ido Schimmel Subject: [PATCH net-next 5/6] netlink: specs: Add FIB rule DSCP mask attribute Date: Thu, 20 Feb 2025 10:05:24 +0200 Message-ID: <20250220080525.831924-6-idosch@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220080525.831924-1-idosch@nvidia.com> References: <20250220080525.831924-1-idosch@nvidia.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF00003AE6:EE_|DM6PR12MB4266:EE_ X-MS-Office365-Filtering-Correlation-Id: 73506780-dd26-46e7-9e4c-08dd51858bff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024; X-Microsoft-Antispam-Message-Info: 6KGiE++bbTKFlNGx9bg49NsWM5GUnGrydkSRI5+xHHrSRB6JKLhGlGNans68Lxo+osF02Ez7Rl8rJomltGZMvIxBFgKR0VL1F8/KhYd+4YNymQlnOJ2I36ksioc3rcuXnIZ7ewFi1lqXSVAqWfwREJKher7LIihVy4DmF0YjXz7vfZIPTj34iOFnQFGrr9OGQl9Go6+ErvLxpvV/LUjsw5D/IPvoExvRParrxLbh8wd/Yn2bprEPsIo6STQLEQek2PfJDkJ01WQY4Ahnv68WQPx5EgHpvNJ1o6EYBUo+xIPwR0U6z5TI/3N0/Z2IvX7vqTLGzQ8OPx9ZfPVRTgUw6w0HHetU0JjiXDRevL0VlVNKZGgybzFMxsuF3XOIE8N4VfOIR3YRAr0aAtAYH7MS9R2wEdaWckA2T4n1FnZTWtbXIkz7ZwCaxtTNlTmz+NmsOEmJVmEb/yOZflOnesTaBbOcv43CohnYH/zzuT2ra1EM9KPliKw7NGWdCwQgCGce1DujnfZURGeQaYmLz9Xedwyk6u6W9eKaKartGuqbKnLFRrrKMl7W7XSxC6dAXCME6iLETZ9reNCrfSLfm7D6MdtOEhJNlcZrl3g6/wlf7GVxABdgAiPlgn7LjdrGjmf+H2nH9xifGOiHiibXg3jeH9eaHOT1IlvSfUlm0MvNzCdELsNe+x5YyDQW760T8uPejU7QlXS5hU86QOwVVCXAVZ9JK+F+4UZ/kB0ldLQZd3GWgwaz1Q4HZzWC2bzCWl+syO7tJNC5eB3vMmshcQvougc1Eyg7brsZgJ1nqQvHK8JWNG8Np+ISjTUFcH8xO1DFCKd67ZlCD5lLXpUjxk5sbglWDomj+65EZ+mOhSMMDqBlk3Hkg1qu9Dr1BgGK46JX3lLOdjRDDUyWUed2j9C0tFioPmAlzSKdHjs72fUQEb7GhnTe2X0LFP+15BDtNhZejabsHdKmeNoG9htcgoeeB0AQG7UBsZ1M+ij814sxbCXw4Y+cTO7jh+Y5gs4OTHUCfoW9En8/LvR35gMXgm2FeuTw9hrU7MovQJELSUJhEbfgD9G1wLHu6ouNHib0DwPRRx1XVIUzyUCUOaA6wuSsdJOfklAvSqxw+x77vDbhfEWAKJsljJpSb6xCeRY8ngkDaN9H+N4a/kuCrGelZV7AQYJ5X5ALLiZpaCOJi6HLdGyi9d+bxaHc5NLnH3GdT+NC/+msggmugtfIBYbLv/RHKaFaUHEyc/W4Z/awiRLXQJ9Hnq2oTqLMVod+hu+uE/zVR8TNJBPPgx6y24Dwf17006ZcgZ5p5ZDqSlgNCCj6AaTewgyET6V3RIZW2qnMIUG+rpZ7zv1q8QkKP0q350PW+sYxtoQtAxYsmA21UdK+oNk+Hd9/GoBZsEcGDjwGiRSDQBiDFN4XhMpMMnowjKZYXVjpqE3V511jIUuRuUkCJ+QWFCOEhmdzmBhJG6Nwvc1StQ1zYmCeTZ+gbHGA2zLzB0QlQrDDSY94jkmnqA0EWvg= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2025 08:06:57.6670 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 73506780-dd26-46e7-9e4c-08dd51858bff X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF00003AE6.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4266 X-Patchwork-Delegate: kuba@kernel.org Add new DSCP mask attribute to the spec. Example: # ./tools/net/ynl/cli.py --spec Documentation/netlink/specs/rt_rule.yaml \ --do newrule \ --json '{"family": 2, "dscp": 10, "dscp-mask": 63, "action": 1, "table": 1}' None $ ./tools/net/ynl/cli.py --spec Documentation/netlink/specs/rt_rule.yaml \ --dump getrule --json '{"family": 2}' --output-json | jq '.[]' [...] { "table": 1, "suppress-prefixlen": "0xffffffff", "protocol": 0, "priority": 32765, "dscp": 10, "dscp-mask": "0x3f", "family": 2, "dst-len": 0, "src-len": 0, "tos": 0, "action": "to-tbl", "flags": 0 } [...] Reviewed-by: Petr Machata Signed-off-by: Ido Schimmel --- Documentation/netlink/specs/rt_rule.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/netlink/specs/rt_rule.yaml b/Documentation/netlink/specs/rt_rule.yaml index b30c924087fa..de0938d36541 100644 --- a/Documentation/netlink/specs/rt_rule.yaml +++ b/Documentation/netlink/specs/rt_rule.yaml @@ -190,6 +190,10 @@ attribute-sets: name: dport-mask type: u16 display-hint: hex + - + name: dscp-mask + type: u8 + display-hint: hex operations: enum-model: directional @@ -225,6 +229,7 @@ operations: - flowlabel-mask - sport-mask - dport-mask + - dscp-mask - name: newrule-ntf doc: Notify a rule creation From patchwork Thu Feb 20 08:05:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 13983462 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2041.outbound.protection.outlook.com [40.107.223.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 361961E5B78 for ; Thu, 20 Feb 2025 08:07:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.41 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740038827; cv=fail; b=dpcd3Tc/SkrLCxR+hKHX4adwNTDJTW7ztDjuPqP+tSN56jw/ysVLJWKrikNNgvLAp4/s9fN5CHCTpY6f5+hZqPBfBGVHqPsGyjZCTj//s+GGPiyGMeSzD+c9VrJnrKFi/r+f02on27vSEnqCLWcCH7k39Gi1V8RoD6ag715kjlg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740038827; c=relaxed/simple; bh=xmeh0h+xjVp3rSedYsEEykHLcL3iqUcJmiGhYDUZ8Us=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=j3Qvc7WQ3cvybHtvhUa7pCb1RJOLSHK+8E4W2jxhTwbgAshsETN0rl7HCR1d5IIofZeOU+0tFKl4W/RT/tevdXx/apDkSGVShLAMZMTQyEXxiPuyQRM5wjSIvM4dEa986gfdVeyECOpTmU42yhB/S2pS24hT7MTjY7KnxTFWid4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=Q7dJLbsH; arc=fail smtp.client-ip=40.107.223.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="Q7dJLbsH" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Gl4BdTOQx3v/s8Tc8vwqc/RwixK8llB+ppoMt1cjqHklKZFME347Q5S/bMSrvblUBkeaL+FijX8iXLTbfMXNzkF9YQh4d6lEgqfvKSPwzX1IYU24lTnpXUOkDb13VpnO6ZxVqnNGP10oVlbARNhZDDC2hvcS+AoPCCCcyuW0IZfmcd8kR7hBPVlaM8fS05d4IHz98wXBZcaqSZONjDPIbguIGxos1RLhLTnKx2DcCJxzoyXtVTaLzbCWD5wRL47PMafZnBtT5f18XbOKXPjIeBgu1V4TfyTfLVS3Ukza34oGCEQZTf1dfDyWK1derKNhCUKIGGKT1raPMCDcQS8EaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=kahi7V23ScftKRfdweb3jD/iy7fXxEMS4DOsnwBXWlg=; b=Xy82oqGq3CNqZfWHYy9c1gj+1qQSrXqhyBaddL68nhMDV0lib2n6JWjvTZWtON01GqF62259TLUHUKGA4QStsLhXgbPR94thgIbnf3yIbr8wm0YsMTJFBUzbxa0qwkdBRRURhpJ3JMAdK4Xt4GvhNs/nAakVA5FjY3GziJsEfD/i38XGgRMc9yl8k5yEgB+6OvivblD6jB7UHXgrK9nJbpLrdiO+VFjT+fLdE5f/l1RwjAXDHaHp1l62sTtbz2EnJ/AwJoMNrT/sQ62KNbJgmLVSuR6c1UMCSSlr7E0JBL6zphbhy0/g/4lj8Fdvv9ikimT29USpvtZ6sk0SxVoqqQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kahi7V23ScftKRfdweb3jD/iy7fXxEMS4DOsnwBXWlg=; b=Q7dJLbsHUoBGvQ2aTe3IFEkwmuPVimLKCnhV+zrphQKwFiftEBAv9GyerWagugye22cb2CiK/tq1sSaYS0k63dr9VCKRivDBo1oDVKVvSAnKUtYGFSt1HftjbDhaxsPaO064sL2BI/5+oFs0uZf/If1tMEpGQmJD+TLEn9NftbohuWmSTRAj2kHWZbLe4ZaJX/XAeXgRrcGUyD4aaTzFD87n6yIWs4VFqtlx7wrPbZK/zhUdIZYN8S3Fl5+diz+doxhtpZjkCZIvr43BhYFqdjDDfPBn0NlaLqayz/ePaDAqt/k8ImQFzIafHwx518MthJyePxHTF4bddYZhYnCY9Q== Received: from SA1P222CA0119.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c5::18) by LV2PR12MB5725.namprd12.prod.outlook.com (2603:10b6:408:14c::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Thu, 20 Feb 2025 08:07:01 +0000 Received: from SA2PEPF00003AEB.namprd02.prod.outlook.com (2603:10b6:806:3c5:cafe::ce) by SA1P222CA0119.outlook.office365.com (2603:10b6:806:3c5::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8466.16 via Frontend Transport; Thu, 20 Feb 2025 08:07:01 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by SA2PEPF00003AEB.mail.protection.outlook.com (10.167.248.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.11 via Frontend Transport; Thu, 20 Feb 2025 08:07:01 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Thu, 20 Feb 2025 00:06:48 -0800 Received: from shredder.mtl.com (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Thu, 20 Feb 2025 00:06:45 -0800 From: Ido Schimmel To: CC: , , , , , , , , , Ido Schimmel Subject: [PATCH net-next 6/6] selftests: fib_rule_tests: Add DSCP mask match tests Date: Thu, 20 Feb 2025 10:05:25 +0200 Message-ID: <20250220080525.831924-7-idosch@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220080525.831924-1-idosch@nvidia.com> References: <20250220080525.831924-1-idosch@nvidia.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF00003AEB:EE_|LV2PR12MB5725:EE_ X-MS-Office365-Filtering-Correlation-Id: 31f32c52-29fe-4403-1080-08dd51858e5d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: cLbd9Hy7zVT/crr8moAhV5u35sxKrr6WV5rG0r1owGS2w0SJgAXJQLAFSZW0nR8ia28xtE6Ge+6BT78Rko/wbOQIl1LsHs1PKwqWTLgtpqxxs1soYPX8G6Qwel4sFR2fx63AS92F5EVPSr0WPn7Px4TvgWE9YqgPRE38bVvxthb4iHLSsRLvxirgs0uedS39WfrBZnNpfKYdPaC+ZV4j5bca6zvQv5s7/gRMFKbRXTpNHvE4eC/BbEn3p99iGIt4DRsurHchh9pSjnnrPSOaEjeIjj8zG68RQgRNOc5mcl+mUHFE1rMeZ7bbHBWxejmImUCARYoMRgUfVfePZKjMYQlER7IIqYGt+f/VyPzNmeQKwKyQbbrrDmjNFsFIUbb9s4+2WR3BiDpQ1ZkcuLWDjWA+MconU3tVCWZ+hiqd6XAZTmBd1SAPOUN/NJ1qe+2R+gLvjTEm6XAaDOqvS0NkDvunc/8BCfelYBTC426oP4wG7Mmj1FZkIcL+9B0hUX15giu/Tq2E9w+/c2+VXbeM0Iv3ptv29C4+3Pm0T1VJFmswZDnNrM2/uyGZZF1kEQk4xq+uoAknPl+UuEh8LCkK6AOO5km1cg7KDmHvJhuZuqweOnFSta+nyRHmCo7z+w4039RipatpCT6DMpH2i7ofj4hjqBv9kXNkkgGgioSymbVSQ9MWTXUIY8RMsCvoauRR8BGMobLs2YcheRy0Y+ITwqS+Qjr49uVf/irjP4Xmaw64oE8uyLCBSmDhNf3BgFMuBtXn5mZHAsrZY/AT1ox3utbkrSAQ/nORQrPPZgFJDvy9yVs6pvNk+G01vS7DaBEmtfO+yDvptYSpYZ2GEwxoGdO40Q8GbQUvCh7cjp2MvYaLg481/vQTmxmYm+I6CPwq7sENDJehs9aUTkCSby7qwz0xtrZBArvRQKiGP0ZlocUo/v/aNdz4muiG2JVedOmefd4RRPAbPI8yYm+PV73NZk9vaYh7RhAXIRbdkjmwEq6FIr9A/vmthD8M9EJqS3r6NIe1PBv7EbpKur8/q54k2YOaM239tgp3V0jcQRO/61eb2L26H2gFTTt9YSyjFxzPhiu2pj+4Q34dovnRJzA7gywZu6WoOsNxe6sG3P/1e/iM6qfrx2jsl+D2QkYsQrz/Ui/G3iQykx0hH0e5lvAb9VvUiLWfgiQwxPK9ZwNrnbfK7fq1yxU20Y6pW0oifEMeJcaqe7o6tCH2j9csN4GjK3U6SZG1G6CM1+z23wsWQ5tT21o9kblQsAwJg9J+808NB+xqr3i1SfUaQO/qJCEDPsTe/dabQImZhOxcr6VjVLJJSjaig8s1hEVBGJciv6F40jQwUujJVGZ5gxiqmemxq4Vub0oh3nK++8YtYcwBlzbQLm0zZCzkye+KMO5Lik1BRSWF/P6FQUWC4TmgNUZRY94ozMVpjttmplqQRfvEnGaDLGpO2WcgyTiLOcWQFwpaCN/+PCT6r18cIjhwW24C0MDwsttVTpqxEhik8NaYKzQ= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2025 08:07:01.6036 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 31f32c52-29fe-4403-1080-08dd51858e5d X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF00003AEB.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5725 X-Patchwork-Delegate: kuba@kernel.org Add tests for FIB rules that match on DSCP with a mask. Test both good and bad flows and both the input and output paths. # ./fib_rule_tests.sh IPv6 FIB rule tests [...] TEST: rule6 check: dscp redirect to table [ OK ] TEST: rule6 check: dscp no redirect to table [ OK ] TEST: rule6 del by pref: dscp redirect to table [ OK ] TEST: rule6 check: iif dscp redirect to table [ OK ] TEST: rule6 check: iif dscp no redirect to table [ OK ] TEST: rule6 del by pref: iif dscp redirect to table [ OK ] TEST: rule6 check: dscp masked redirect to table [ OK ] TEST: rule6 check: dscp masked no redirect to table [ OK ] TEST: rule6 del by pref: dscp masked redirect to table [ OK ] TEST: rule6 check: iif dscp masked redirect to table [ OK ] TEST: rule6 check: iif dscp masked no redirect to table [ OK ] TEST: rule6 del by pref: iif dscp masked redirect to table [ OK ] [...] Tests passed: 316 Tests failed: 0 Reviewed-by: Petr Machata Signed-off-by: Ido Schimmel --- tools/testing/selftests/net/fib_rule_tests.sh | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tools/testing/selftests/net/fib_rule_tests.sh b/tools/testing/selftests/net/fib_rule_tests.sh index 06c51d7ceb4a..b866bab1d92a 100755 --- a/tools/testing/selftests/net/fib_rule_tests.sh +++ b/tools/testing/selftests/net/fib_rule_tests.sh @@ -310,6 +310,25 @@ fib_rule6_test() "iif dscp no redirect to table" fi + ip rule help 2>&1 | grep -q "DSCP\[/MASK\]" + if [ $? -eq 0 ]; then + match="dscp 0x0f/0x0f" + tosmatch=$(printf 0x"%x" $((0x1f << 2))) + tosnomatch=$(printf 0x"%x" $((0x1e << 2))) + getmatch="tos $tosmatch" + getnomatch="tos $tosnomatch" + fib_rule6_test_match_n_redirect "$match" "$getmatch" \ + "$getnomatch" "dscp masked redirect to table" \ + "dscp masked no redirect to table" + + match="dscp 0x0f/0x0f" + getmatch="from $SRC_IP6 iif $DEV tos $tosmatch" + getnomatch="from $SRC_IP6 iif $DEV tos $tosnomatch" + fib_rule6_test_match_n_redirect "$match" "$getmatch" \ + "$getnomatch" "iif dscp masked redirect to table" \ + "iif dscp masked no redirect to table" + fi + fib_check_iproute_support "flowlabel" "flowlabel" if [ $? -eq 0 ]; then match="flowlabel 0xfffff" @@ -597,6 +616,25 @@ fib_rule4_test() "$getnomatch" "iif dscp redirect to table" \ "iif dscp no redirect to table" fi + + ip rule help 2>&1 | grep -q "DSCP\[/MASK\]" + if [ $? -eq 0 ]; then + match="dscp 0x0f/0x0f" + tosmatch=$(printf 0x"%x" $((0x1f << 2))) + tosnomatch=$(printf 0x"%x" $((0x1e << 2))) + getmatch="tos $tosmatch" + getnomatch="tos $tosnomatch" + fib_rule4_test_match_n_redirect "$match" "$getmatch" \ + "$getnomatch" "dscp masked redirect to table" \ + "dscp masked no redirect to table" + + match="dscp 0x0f/0x0f" + getmatch="from $SRC_IP iif $DEV tos $tosmatch" + getnomatch="from $SRC_IP iif $DEV tos $tosnomatch" + fib_rule4_test_match_n_redirect "$match" "$getmatch" \ + "$getnomatch" "iif dscp masked redirect to table" \ + "iif dscp masked no redirect to table" + fi } fib_rule4_vrf_test()