From patchwork Wed Nov 10 16:28:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Horman X-Patchwork-Id: 1553498 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=corigine.onmicrosoft.com header.i=@corigine.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-corigine-onmicrosoft-com header.b=hV3Sn6qE; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=2605:bc80:3010::133; helo=smtp2.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4Hq9Ky4d4xz9sCD for ; Thu, 11 Nov 2021 03:29:42 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 365F34045F; Wed, 10 Nov 2021 16:29:37 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JcTvB5XReGca; Wed, 10 Nov 2021 16:29:36 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp2.osuosl.org (Postfix) with ESMTPS id 472A440423; Wed, 10 Nov 2021 16:29:34 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id ED900C001E; Wed, 10 Nov 2021 16:29:33 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 076F2C003F for ; Wed, 10 Nov 2021 16:29:30 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 9A9B2403D1 for ; Wed, 10 Nov 2021 16:29:28 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp4.osuosl.org (amavisd-new); dkim=pass (1024-bit key) header.d=corigine.onmicrosoft.com Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xSLRJ-07tsOR for ; Wed, 10 Nov 2021 16:29:28 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on20711.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe59::711]) by smtp4.osuosl.org (Postfix) with ESMTPS id D62E7403DB for ; Wed, 10 Nov 2021 16:29:27 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ahoJaG+PbrdJlA6iUW7fCWFvxvBegAjH3URSzKxM4w7JDfUoNMtKsoDufsQwDJMCbMLu2KZbjkkzswXnf9ewEDfHuWYzUOlz8dgY+LYapzM7r5TsMR2ScoiPYE0Fx/D+u/kdvoBfK8D2LrjUqmwGro/o79IcDAr6xbb6aGKzKDiQhBTzKiuf+/Wwe6RkmyK9A9npXj49xafOtVS99a9H182WpoPyhGamloV6bYRv8inpCLXyAbtlF4T1Skj/z9weEb246CWlYRVfQRlWDi8cbUwhXRA0884wwjDpGv+ASuks81AV2ZIvxwWXTWF/FSc81q2z2FkQxeS32M+E7Ite+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=P4m/eN1l7yYXziUqe4PdKMfuGtx5MIPFhr9YMyRk28k=; b=Exu3jALKbypuKjAZy7cIqWP86FAgtgU/JbuMriSDJ0C7gfjV163/1MVROXmwcY+ELlOqqvfxHMEIHDGVCNfz0/rMyja1MnGE+z4d4Y18mhFtyAmlfdpj0rktT1rVfHQBBhtYs+fBN7oCNRPtdTIpClWiRIWXC+sULA5628wswd7YAJ7VNIQrWi8DiDlCnmILdGGqIgXeDWOKNEsRrOlsGaeaqHESocT7eTYsZIkRFMqHlfv251ZqOAZY1NsJlULwep8xxaoLECLbEWw/1yi6j0KCAdfvk7f6ktOC0jQYKuHLD8vIINiPaKAmjWjyikJBwX/yKrQYrUqXs4qlk0H3+w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=P4m/eN1l7yYXziUqe4PdKMfuGtx5MIPFhr9YMyRk28k=; b=hV3Sn6qExVR5hD64FiwrrKggO6C1/EDJ3SboOPf/WMQANvJ9MGTWEfzIlQiLehRV5vW2EbZTjxI/zJ0qEvbvxKuMOcjBKQTEIes0sUabDfIe5f/3aYcLqoXRX3lxwN1+WXn9CwrQtnshl/blLyReBoGwoBLvPa53A2wzBsyp+Is= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from PH0PR13MB4842.namprd13.prod.outlook.com (2603:10b6:510:78::6) by PH0PR13MB5639.namprd13.prod.outlook.com (2603:10b6:510:12a::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.14; Wed, 10 Nov 2021 16:29:25 +0000 Received: from PH0PR13MB4842.namprd13.prod.outlook.com ([fe80::e1d9:64d0:cb4f:3e90]) by PH0PR13MB4842.namprd13.prod.outlook.com ([fe80::e1d9:64d0:cb4f:3e90%9]) with mapi id 15.20.4690.005; Wed, 10 Nov 2021 16:29:25 +0000 From: Simon Horman To: dev@openvswitch.org Date: Wed, 10 Nov 2021 17:28:54 +0100 Message-Id: <20211110162858.20101-4-simon.horman@corigine.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20211110162858.20101-1-simon.horman@corigine.com> References: <20211110162858.20101-1-simon.horman@corigine.com> X-ClientProxiedBy: AM0PR02CA0224.eurprd02.prod.outlook.com (2603:10a6:20b:28f::31) To PH0PR13MB4842.namprd13.prod.outlook.com (2603:10b6:510:78::6) MIME-Version: 1.0 Received: from madeliefje.horms.nl (80.113.23.202) by AM0PR02CA0224.eurprd02.prod.outlook.com (2603:10a6:20b:28f::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend Transport; Wed, 10 Nov 2021 16:29:23 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b7048c34-c298-4f1f-5be4-08d9a4674223 X-MS-TrafficTypeDiagnostic: PH0PR13MB5639: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CwRADy/kZ0E297UHx25K/wXw295WI3eBSaHItZ7K/zWvsTEeHOu6pTzbskigvsmi9pR3PzlsTKgyN4IwCbPU2/k8Iur/FI+ir2liOyLs47y0op8Wi23pcWsCbqBazbCLuy7juiXoczntLA68P/C+J/q+Fd1tJKudDKsIwwn8o34+bWURSUKB6qmarc6JGIlkyYudjYP9E1jqcb6OCsBwMo5N3T6FDzLudK261nocayJVcosMrAui/rvzV46XHUQ+fgpsymHcEjG9xkKBEW47pRET/rlwyMyx/taQ/XuYH+hXfgCWc7u7EUsYkujG0u3XULVVEhpt+btZlb4AgCqYyvAtHuj4b7gnvu02HZwgIttnkl0xdSdY9xNLeEqQ2QwLoq+mrQJ/jn1KzhpMA6rBZH6wq3GoqFV01egve1KC+lrdJzfWtLyFW0A641ILqgQL111Y66uMcETPDrlPCmpwockapZny06zSX/U87OLkBdMdKxwPyj21qtoaWVYxaLCKGOMXlXdnfnpBDHFjNRFTaiDuvm5vcTk9e6UwjVD25G/De8AfEbAQjCFzvAblMQ233c0eGgyMHE2YYPQRSIMtJcZrL7TbcNzAhp0oTUE6N2KWBMm8l+KigraqtXDjRpTas2xtZ1lKME+C/oYpL9Ub6o45f8aAfEl74FCj2N8TtK9w60hzbvk6xLJdyRQxzcW4za6rH/UD5eq39jONj/FwEg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR13MB4842.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(346002)(376002)(396003)(39830400003)(366004)(136003)(1076003)(36756003)(86362001)(8676002)(66946007)(54906003)(107886003)(6512007)(44832011)(6666004)(316002)(6916009)(956004)(66476007)(508600001)(4326008)(5660300002)(8936002)(2906002)(6506007)(52116002)(186003)(6486002)(26005)(38100700002)(38350700002)(66556008)(2616005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9z2GoG8vMATkEcg6qL1XDL74+lYpIW2Cdcpw3Dk9izjwiS9sTMprbCfBaMIocqSsdh0xYJyyovFecLtTiBioM/GKsSMoggxtSb/BFlfTsaVnghJLbZCzm1uK/Ch0MQh4vDLMWSFKWYYiYX03+gAsXdcTgrccljY9p66CnidMr5S2KCAOYduq6xtWBOnAHr70UBjwCvzdydScVYSjBaz2ZApKWD19or9/yj68LcShH/qX6RxezdGjAfmiJAHTliX8bgePLkD/ZaNoD8H+bIN2DBgSZpd7YobNWhfDCoceUd6Gj1BfJl81eWjhT99I47n2ctVM4L6O654IupOTFJB0owYt7XgRrd8rkhUCIVdXwPLJ2/0AmlPiTBZRtOnkMl6si6j1vvRLHfYSY4BBCV+xt/MrZLku5ZuhB2C8x02l8tehtfuOMmWkJ1j2dFIFuhEOZgmLRsX/Y+q+W7NfFbe6bTw0UjMckXQLRn1ENV26skZYTBcrCw1f8yGpWWvZ9JEqjw6PcIah09CZazBgrS8K5DVGwEmFCHwWsDlM0WjcyPb0OTe/Ctdyawc7Q6Mb5ru8yPi1I7Iy3U3haPgCQWPgfM4NB7F7WuNL3vs0sQw1dSg9NR69wYPADooE6hBFYisVlYVHWRqJ8C9GrOVHa2Dnzxxrf6cyl/hEVuP1ntkTk/23sXVrI4B5lsBX04VamiOaHoMAHBz+vMqIOJlkP2d/B6MAXJXXFfit10RuXPqHjnYbDOt7cx5OoshfKXeL4QbPPzdS+PopKF8fFyY+MxykbbDxz0StWM993rtQbCYzgI4fm+CZr2v++5YruXjgUP6rH7yLeOcz95Twg27l8m21lR0YZIibVVtoe4ADDK2zocvRCbgknH/BXcwjYBs+oECUH1bSnGUhCy2Ps+xHTUR3CLVdmt9qBBhfRY9bMRsxre6uE0BGSgE541Sh1xHOUpZDr3aFI4cf1dldTSCWjbxnXkGEno0JgweltMYlfR79GsRrqfJmc1Cxb/SB2v7NcRJEWKK59OlkLTgTZEu60t5vK4vVIJRm16rahwEvq0X9OmJhLG1tAezOjMLq/tog7E9sCkXoDZbG0WTHX3nF5e/UO5Uo/6EQFRryYwX2vqKxqQOdrtJmpnVBdmIIivJ9Qi3W2vSkeqM9HXph3k0YWTswkIWDWWX/4EzfM8eaD+v6PoW2oznP+wuTu7WLjZCGRG4akdEzJsqcF1xVgTUWST/ruMnVukCQ7F8WBgoGRSYYBA0ZSnwkGoHMZ4VkSpqcA8mA3yRZyH9gotqmSOUjMJKgExUrPveeEAWvrpyP1kmt8uT+2/HhenI5tQHl2luQeVZpksjaJ5WJaLhxLBLaIOkNro9Vv/hcuLekE/LTY0688wKcMgTVtK+KpFx1ok+L27tVrfNW0AbDZV37q9FsRNtm9E4zj1oGZLtP2eQUHVLSvoYYHqg9Vwc+wxs0U3N5WDsNoNsegxVjsNMfqSEMHqBlBkO5TSuEZVOTEo7AVbCdfVz5kLWLe10Ahl1nUjwjkQrkCiNrJBNJ6qZ8Unh+K/9zCAFu1NWbJ/ih6CTwD7P+Z7skAb3W+WJ1ls5q6sqE6eH208C5dmzKJb6m82boTdJKUWE3FKp/qehjOrDGr/Li65TT9R88MlI96OhcZlDgDXt8BZKRstdXJQeMpuw43Ktvmg== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: b7048c34-c298-4f1f-5be4-08d9a4674223 X-MS-Exchange-CrossTenant-AuthSource: PH0PR13MB4842.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2021 16:29:24.9936 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3YIcR4n51EfEFQZq3jrGVQCPM2dWmopUayqz3zLoItE7+W+mSrTDuWQQtHJ7bUkjQ7IY5iJc9ix/FcWU2Sga5sCq5c64C7BQ5+ugj6d8GdY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR13MB5639 Cc: Baowen Zheng , Tianyu Yuan , oss-drivers@corigine.com Subject: [ovs-dev] [PATCH/RFC 3/7] netdev-offload-tc: get police action for meter configuration X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" From: Tianyu Yuan Retrieve configuration of meter actions in TC flower classifiers (flows in the TC datapath). These actions are TC police action instances referred to by index. Signed-off-by: Tianyu Yuan Signed-off-by: Simon Horman --- lib/netdev-offload-tc.c | 5 +++++ lib/tc.c | 28 ++++++++++++++++++++++++++++ lib/tc.h | 2 ++ 3 files changed, 35 insertions(+) diff --git a/lib/netdev-offload-tc.c b/lib/netdev-offload-tc.c index 0387b9b2e..3222f9e54 100644 --- a/lib/netdev-offload-tc.c +++ b/lib/netdev-offload-tc.c @@ -1015,6 +1015,11 @@ parse_tc_flower_to_match(struct tc_flower *flower, nl_msg_put_u32(buf, OVS_ACTION_ATTR_RECIRC, action->chain); } break; + case TC_ACT_METER: { + nl_msg_put_u32(buf, OVS_ACTION_ATTR_METER, + action->meter.meter_id); + } + break; } } } diff --git a/lib/tc.c b/lib/tc.c index 9fb7eba07..3993498b0 100644 --- a/lib/tc.c +++ b/lib/tc.c @@ -1704,6 +1704,32 @@ nl_parse_act_csum(struct nlattr *options, struct tc_flower *flower) return 0; } +static const struct nl_policy police_policy[] = { + [TCA_POLICE_TBF] = { .type = NL_A_UNSPEC, + .min_len = sizeof(struct tc_police), + .optional = false, }, +}; + +static int nl_parse_act_meter(struct nlattr *options, struct tc_flower *flower) +{ + struct nlattr *attrs[__TCA_POLICE_MAX]; + const struct tc_police *tc_police; + const struct nlattr *meter_parms; + struct tc_action *action; + + action = &flower->actions[flower->action_count++]; + if (!nl_parse_nested(options, police_policy, attrs, + ARRAY_SIZE(police_policy))){ + VLOG_ERR_RL(&error_rl, "failed to parse meter action options"); + return EPROTO; + } + meter_parms = attrs[TCA_POLICE_TBF]; + tc_police = nl_attr_get_unspec(meter_parms, sizeof *tc_police); + action->meter.meter_id = POLICY_INDEX_TO_METER_ID(tc_police->index); + action->type = TC_ACT_METER; + return 0; +} + static const struct nl_policy act_policy[] = { [TCA_ACT_KIND] = { .type = NL_A_STRING, .optional = false, }, [TCA_ACT_COOKIE] = { .type = NL_A_UNSPEC, .optional = true, }, @@ -1762,6 +1788,8 @@ nl_parse_single_action(struct nlattr *action, struct tc_flower *flower, /* Added for TC rule only (not in OvS rule) so ignore. */ } else if (!strcmp(act_kind, "ct")) { nl_parse_act_ct(act_options, flower); + } else if (!strcmp(act_kind, "police")){ + nl_parse_act_meter(act_options, flower); } else { VLOG_ERR_RL(&error_rl, "unknown tc action kind: %s", act_kind); err = EINVAL; diff --git a/lib/tc.h b/lib/tc.h index 6ba7f946c..0f7de8677 100644 --- a/lib/tc.h +++ b/lib/tc.h @@ -56,6 +56,8 @@ enum tc_flower_reserved_prio { * the prefix of meter related policy, following 16 bits are mapped by * meter_id, last 8 bits are reserved for bands in further. */ #define METER_ID_TO_POLICY_INDEX(meter_id) 0xff << 24 | (meter_id + 1) << 8 +/* Mapping policy_index to meter_id */ +#define POLICY_INDEX_TO_METER_ID(index) (((index >> 8) & 0xffff) - 1) enum tc_qdisc_hook { TC_INGRESS,