get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/129942/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 129942,
    "url": "https://patches.dpdk.org/api/patches/129942/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20230808100036.215477-1-getelson@nvidia.com/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20230808100036.215477-1-getelson@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230808100036.215477-1-getelson@nvidia.com",
    "date": "2023-08-08T10:00:36",
    "name": "ethdev: remove init_color from METER_MARK action",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "8bc1c9c80ac77064b4006d8cc1dc47447a200927",
    "submitter": {
        "id": 1882,
        "url": "https://patches.dpdk.org/api/people/1882/?format=api",
        "name": "Gregory Etelson",
        "email": "getelson@nvidia.com"
    },
    "delegate": {
        "id": 319,
        "url": "https://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20230808100036.215477-1-getelson@nvidia.com/mbox/",
    "series": [
        {
            "id": 29129,
            "url": "https://patches.dpdk.org/api/series/29129/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=29129",
            "date": "2023-08-08T10:00:36",
            "name": "ethdev: remove init_color from METER_MARK action",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/29129/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/129942/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/129942/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id D685E4300B;\n\tTue,  8 Aug 2023 12:01:17 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id B0E8343247;\n\tTue,  8 Aug 2023 12:01:17 +0200 (CEST)",
            "from NAM12-BN8-obe.outbound.protection.outlook.com\n (mail-bn8nam12on2078.outbound.protection.outlook.com [40.107.237.78])\n by mails.dpdk.org (Postfix) with ESMTP id F13FD40A87\n for <dev@dpdk.org>; Tue,  8 Aug 2023 12:01:15 +0200 (CEST)",
            "from PH8PR07CA0016.namprd07.prod.outlook.com (2603:10b6:510:2cd::24)\n by BN9PR12MB5210.namprd12.prod.outlook.com (2603:10b6:408:11b::23)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.27; Tue, 8 Aug\n 2023 10:01:09 +0000",
            "from SN1PEPF0002529E.namprd05.prod.outlook.com\n (2603:10b6:510:2cd:cafe::43) by PH8PR07CA0016.outlook.office365.com\n (2603:10b6:510:2cd::24) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.27 via Frontend\n Transport; Tue, 8 Aug 2023 10:01:12 +0000",
            "from mail.nvidia.com (216.228.117.161) by\n SN1PEPF0002529E.mail.protection.outlook.com (10.167.242.5) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.6652.20 via Frontend Transport; Tue, 8 Aug 2023 10:01:12 +0000",
            "from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com\n (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.5; Tue, 8 Aug 2023\n 03:00:56 -0700",
            "from nvidia.com (10.126.231.35) by rnnvmail201.nvidia.com\n (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.37; Tue, 8 Aug 2023\n 03:00:51 -0700"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=O61eq8RCsN3tUi2qymdWAsVDC+Oeq3ZIPhxK/l4wZIJsQkQ5w2afiwArzkkhLWdKzJJlUvDVXqAm3aaSP3jW+E/36vqlnzyPgYmWGSmq9bbn493T61+eO/PUbDw1/Zcuhn1KJFKKfIa1Vk38yB0T2VED0j5LjYa0x1gRRYxrnlft6cHn6XHsQ0SghGugPR/y5NHcULYDF11GfwYPsUl1z8TbbVYGWbwhMQMam+TAwDJIdplQOLPCdG+H5NJlR7Bs2PzvzOjDhM++Jnb4C2lOEEAFaVk1pnQ5IrVITew9bTMr5QZYlamHT7K6roGb/+MCDBLZaz/BuhxcYZKGPsIs9w==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n 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;\n bh=xum6sl4RXJBnjieEkcPdUcMyphlxyLFFmXcRLm1HV+c=;\n b=JdHkzAC4EPmIbhlHdJHzABlaZ8wIzZ16zI3ede2aBHKnhf7ajVsj3oPsz8VpUbxm3EHcg/rONdyddLiPs1d2Qjq3PR0MZJTe8y6q84s/f71MKJWax3ExcJz20i0eagcHvgpQhPkBe3YpAkPxqZ3OyYLPo1H2U5+MWGJS0ISpGgpDBYpPR85LUQluYA9SQdxmn9JpstWIX9NuPJjU1rrRyGHf1dl892olTff+863amXv6tQq7tHPTOv6ZrQuOpLmmDbO+s7QbmJhmZzJcU/qkqUoiZ/wy70NIWEZ6WjrO1oan7eIYlJJ5QDtj/xZEOpQG6MK2e1fZvO8TvA3J3AsmZw==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com;\n dkim=none (message not signed); arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=xum6sl4RXJBnjieEkcPdUcMyphlxyLFFmXcRLm1HV+c=;\n b=QaYDfxM9msjnfsPlOmF+Ke+zcv2fSQJ5YR6IDA15o5vpaEmR8rsaXx9UpIKBBJxoS6SofqbPQuY7nFMhW7N0aVK1UBqoUVpQEXUV6QR5LzQB1jWfRlwH6xD8zOk6FDMu6rWuSCUl20gUOclkq3WdQHXC2mN0fdqbFNqqJUOk6bo7HqaFMoaOMcySjTq5hXTI9XQDezrRWSkT3Or7QhKwgYLSpbmZdGWu7Aggv1QiJQUggxxBjNrKAlh9Q516nWNLzeRpxJApSY6w/Sq3cYmNwpTrXbtKBoXdPO4ub7nRMuFCStHrIq6ESpqHQlsmP/4lXVUEIHR+gRywSKA0lJraSw==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.117.161)\n smtp.mailfrom=nvidia.com;\n dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.117.161 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C",
        "From": "Gregory Etelson <getelson@nvidia.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<getelson@nvidia.com>, <mkashani@nvidia.com>, <rasland@nvidia.com>, \"Ori\n Kam\" <orika@nvidia.com>, Aman Singh <aman.deep.singh@intel.com>, Yuying Zhang\n <yuying.zhang@intel.com>, Matan Azrad <matan@nvidia.com>, \"Viacheslav\n Ovsiienko\" <viacheslavo@nvidia.com>, Suanming Mou <suanmingm@nvidia.com>,\n Thomas Monjalon <thomas@monjalon.net>, Ferruh Yigit <ferruh.yigit@amd.com>,\n Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>",
        "Subject": "[PATCH] ethdev: remove init_color from METER_MARK action",
        "Date": "Tue, 8 Aug 2023 13:00:36 +0300",
        "Message-ID": "<20230808100036.215477-1-getelson@nvidia.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"UTF-8\"",
        "Content-Transfer-Encoding": "8bit",
        "X-Originating-IP": "[10.126.231.35]",
        "X-ClientProxiedBy": "rnnvmail201.nvidia.com (10.129.68.8) To\n rnnvmail201.nvidia.com (10.129.68.8)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "SN1PEPF0002529E:EE_|BN9PR12MB5210:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "9e08e6a0-80b8-4060-5f17-08db97f6659d",
        "X-LD-Processed": "43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n yiCppdNE91CA7HKHS5Io89TiYzFjV3rTV8fjG5kYJm7G7kvKd1GQOhDOXPpYGvbllPYStUvtonJJO44EYWAbeqGjEunRKShluRInSD9I+f/K2HBEIAwvQRMoH+lTvadFqfRdkYP2cugBrcoM1U4HkLyhCs4eU0EOskoxqCB7qaIvQ6hp7AOGZGnWkGOdbzgYRUqKzyNThoA/W28AEWjbnmEF3aLQW6JhFbOVwe66Og+Uynz56nhWz5meIDbCrJ8o70y6ByGKbp3NTLofghjrgoj8G8VM0v1MxXUJqXqkfBFfRs9t8eWrGiw7XWn6OhxzkvqceQcdFPgvHEyTFSnJm54WmI8WHUrBkdn9FxcH9W0rQKMYIJynW605C6vfdV0Gf85rEIyUc4fkfvqUTaWG5ijtMmxdjoX/MDgvjDfqN1CW+6ZZRr8zd+4UbjS3zw8Qrhb6hcLD6eswdvw33XmVJJOGEganKt+T+APFQX73T09Qo9cuXoG2OCTvziyrJJX3Bf3z8M67BkDrO7PexzC14LcsmF9wO8ADQsFKF0/naqA3znW91ReILKYqW6437WTuIzgtbz2afrN1XAaAdO+yGL8bdCFr71P78qtb0HD3h2EzPZqDWgHvN4EuoZLeX/lhnZzP0EWs2hzqfa9/SQLM6+tth7xD9KZ5urj6RoLibJyqyhUfJpvUjZ13fKjlY2h7/2WXdSGHnoVfLPXdeMV6j7NBuXibmNmdEsHNuXhC2slGj/dFzCjmV6B0z/xG14so",
        "X-Forefront-Antispam-Report": "CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE;\n SFS:(13230028)(4636009)(346002)(136003)(39860400002)(376002)(396003)(1800799003)(186006)(451199021)(82310400008)(40470700004)(46966006)(36840700001)(40480700001)(55016003)(1076003)(26005)(40460700003)(36756003)(54906003)(5660300002)(86362001)(2906002)(4326008)(8676002)(70206006)(316002)(6916009)(8936002)(41300700001)(6666004)(70586007)(7696005)(356005)(82740400003)(7636003)(478600001)(426003)(36860700001)(83380400001)(47076005)(2616005)(16526019)(336012)(6286002);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "08 Aug 2023 10:01:12.4368 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 9e08e6a0-80b8-4060-5f17-08db97f6659d",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n SN1PEPF0002529E.namprd05.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BN9PR12MB5210",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "Indirect list API defines 2 types of action update:\n• Action mutable context is always shared between all flows\n  that referenced indirect actions list handle.\n  Action mutable context can be changed by explicit invocation\n  of indirect handle update function.\n• Flow mutable context is private to a flow.\n  Flow mutable context can be updated by indirect list handle\n  flow rule configuration.\n\n`METER_MARK::init_color` is flow resource.\nCurrent flows implementation placed `init_color` in the\n`rte_flow_action_meter_mark` making it action level resource.\n\nThe patch removes `init_color` from the `rte_flow_action_meter_mark`\nstructure.\n\nAPI change:\nThe patch removed:\n• struct rte_flow_action_meter_mark::init_color\n\n• struct rte_flow_update_meter_mark::init_color_valid\n\nSigned-off-by: Gregory Etelson <getelson@nvidia.com>\n---\n app/test-pmd/cmdline_flow.c     |  8 ---\n app/test-pmd/config.c           |  1 -\n drivers/net/mlx5/mlx5_flow_hw.c | 97 ++++++++++++++-------------------\n lib/ethdev/rte_flow.h           |  6 +-\n 4 files changed, 43 insertions(+), 69 deletions(-)",
    "diff": "diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c\nindex 94827bcc4a..54daede7cb 100644\n--- a/app/test-pmd/cmdline_flow.c\n+++ b/app/test-pmd/cmdline_flow.c\n@@ -575,7 +575,6 @@ enum index {\n \tACTION_METER_POLICY,\n \tACTION_METER_POLICY_ID2PTR,\n \tACTION_METER_COLOR_MODE,\n-\tACTION_METER_INIT_COLOR,\n \tACTION_METER_STATE,\n \tACTION_OF_DEC_NW_TTL,\n \tACTION_OF_POP_VLAN,\n@@ -2227,7 +2226,6 @@ static const enum index action_meter_mark[] = {\n \tACTION_METER_PROFILE,\n \tACTION_METER_POLICY,\n \tACTION_METER_COLOR_MODE,\n-\tACTION_METER_INIT_COLOR,\n \tACTION_METER_STATE,\n \tACTION_NEXT,\n \tZERO,\n@@ -6175,12 +6173,6 @@ static const struct token token_list[] = {\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_meter_mark, color_mode)),\n \t\t.call = parse_vc_conf,\n \t},\n-\t[ACTION_METER_INIT_COLOR] = {\n-\t\t.name = \"mtr_init_color\",\n-\t\t.help = \"meter initial color\",\n-\t\t.next = NEXT(action_meter_mark, NEXT_ENTRY(ITEM_METER_COLOR_NAME)),\n-\t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_meter_mark, init_color)),\n-\t},\n \t[ACTION_METER_STATE] = {\n \t\t.name = \"mtr_state\",\n \t\t.help = \"meter state\",\ndiff --git a/app/test-pmd/config.c b/app/test-pmd/config.c\nindex 11f3a22048..415da109dc 100644\n--- a/app/test-pmd/config.c\n+++ b/app/test-pmd/config.c\n@@ -3179,7 +3179,6 @@ port_queue_action_handle_update(portid_t port_id,\n \t\tif (mtr_update.meter_mark.policy)\n \t\t\tmtr_update.policy_valid = 1;\n \t\tmtr_update.color_mode_valid = 1;\n-\t\tmtr_update.init_color_valid = 1;\n \t\tmtr_update.state_valid = 1;\n \t\tupdate = &mtr_update;\n \t\tbreak;\ndiff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c\nindex 5395969eb0..8ddef811ee 100644\n--- a/drivers/net/mlx5/mlx5_flow_hw.c\n+++ b/drivers/net/mlx5/mlx5_flow_hw.c\n@@ -1344,8 +1344,7 @@ flow_hw_meter_mark_alloc(struct rte_eth_dev *dev, uint32_t queue,\n \taso_mtr->state = (queue == MLX5_HW_INV_QUEUE) ?\n \t\t\t  ASO_METER_WAIT : ASO_METER_WAIT_ASYNC;\n \taso_mtr->offset = mtr_id - 1;\n-\taso_mtr->init_color = (meter_mark->color_mode) ?\n-\t\tmeter_mark->init_color : RTE_COLOR_GREEN;\n+\taso_mtr->init_color = fm->color_aware ? RTE_COLORS : RTE_COLOR_GREEN;\n \t/* Update ASO flow meter by wqe. */\n \tif (mlx5_aso_meter_update_by_wqe(priv->sh, queue, aso_mtr,\n \t\t\t\t\t &priv->mtr_bulk, user_data, push)) {\n@@ -1380,9 +1379,6 @@ flow_hw_meter_mark_compile(struct rte_eth_dev *dev,\n \t/* Compile METER_MARK action */\n \tacts[aso_mtr_pos].action = pool->action;\n \tacts[aso_mtr_pos].aso_meter.offset = aso_mtr->offset;\n-\tacts[aso_mtr_pos].aso_meter.init_color =\n-\t\t(enum mlx5dr_action_aso_meter_color)\n-\t\trte_col_2_mlx5_col(aso_mtr->init_color);\n \t*index = aso_mtr->fm.meter_id;\n \treturn 0;\n }\n@@ -2068,9 +2064,6 @@ flow_hw_shared_action_construct(struct rte_eth_dev *dev, uint32_t queue,\n \t\t\treturn -1;\n \t\trule_act->action = pool->action;\n \t\trule_act->aso_meter.offset = aso_mtr->offset;\n-\t\trule_act->aso_meter.init_color =\n-\t\t\t(enum mlx5dr_action_aso_meter_color)\n-\t\t\trte_col_2_mlx5_col(aso_mtr->init_color);\n \t\tbreak;\n \tcase MLX5_INDIRECT_ACTION_TYPE_QUOTA:\n \t\tflow_hw_construct_quota(priv, rule_act, idx);\n@@ -2483,9 +2476,6 @@ flow_hw_actions_construct(struct rte_eth_dev *dev,\n \t\t\t\t\t\t\tpool->action;\n \t\t\trule_acts[act_data->action_dst].aso_meter.offset =\n \t\t\t\t\t\t\taso_mtr->offset;\n-\t\t\trule_acts[act_data->action_dst].aso_meter.init_color =\n-\t\t\t\t(enum mlx5dr_action_aso_meter_color)\n-\t\t\t\trte_col_2_mlx5_col(aso_mtr->init_color);\n \t\t\tbreak;\n \t\tcase RTE_FLOW_ACTION_TYPE_METER_MARK:\n \t\t\t/*\n@@ -8659,6 +8649,45 @@ flow_hw_action_handle_create(struct rte_eth_dev *dev, uint32_t queue,\n \treturn handle;\n }\n \n+static int\n+mlx5_flow_update_meter_mark(struct rte_eth_dev *dev, uint32_t queue,\n+\t\t\t    const struct rte_flow_update_meter_mark *upd_meter_mark,\n+\t\t\t    uint32_t idx, bool push,\n+\t\t\t    struct mlx5_hw_q_job *job, struct rte_flow_error *error)\n+{\n+\tstruct mlx5_priv *priv = dev->data->dev_private;\n+\tstruct mlx5_aso_mtr_pool *pool = priv->hws_mpool;\n+\tconst struct rte_flow_action_meter_mark *meter_mark = &upd_meter_mark->meter_mark;\n+\tstruct mlx5_aso_mtr *aso_mtr = mlx5_ipool_get(pool->idx_pool, idx);\n+\tstruct mlx5_flow_meter_info *fm;\n+\n+\tif (!aso_mtr)\n+\t\treturn rte_flow_error_set(error, EINVAL,\n+\t\t\t\t\t  RTE_FLOW_ERROR_TYPE_UNSPECIFIED,\n+\t\t\t\t\t  NULL, \"Invalid meter_mark update index\");\n+\tfm = &aso_mtr->fm;\n+\tif (upd_meter_mark->profile_valid)\n+\t\tfm->profile = (struct mlx5_flow_meter_profile *)\n+\t\t\t(meter_mark->profile);\n+\tif (upd_meter_mark->color_mode_valid)\n+\t\tfm->color_aware = meter_mark->color_mode;\n+\tif (upd_meter_mark->state_valid)\n+\t\tfm->is_enable = meter_mark->state;\n+\t/* Update ASO flow meter by wqe. */\n+\tif (mlx5_aso_meter_update_by_wqe(priv->sh, queue,\n+\t\t\t\t\t aso_mtr, &priv->mtr_bulk, job, push))\n+\t\treturn rte_flow_error_set(error, EINVAL,\n+\t\t\t\t\t  RTE_FLOW_ERROR_TYPE_UNSPECIFIED,\n+\t\t\t\t\t  NULL, \"Unable to update ASO meter WQE\");\n+\t/* Wait for ASO object completion. */\n+\tif (queue == MLX5_HW_INV_QUEUE &&\n+\t    mlx5_aso_mtr_wait(priv->sh, MLX5_HW_INV_QUEUE, aso_mtr))\n+\t\treturn rte_flow_error_set(error, EINVAL,\n+\t\t\t\t\t  RTE_FLOW_ERROR_TYPE_UNSPECIFIED,\n+\t\t\t\t\t  NULL, \"Unable to wait for ASO meter CQE\");\n+\treturn 0;\n+}\n+\n /**\n  * Update shared action.\n  *\n@@ -8689,15 +8718,9 @@ flow_hw_action_handle_update(struct rte_eth_dev *dev, uint32_t queue,\n \t\t\t     struct rte_flow_error *error)\n {\n \tstruct mlx5_priv *priv = dev->data->dev_private;\n-\tstruct mlx5_aso_mtr_pool *pool = priv->hws_mpool;\n \tconst struct rte_flow_modify_conntrack *ct_conf =\n \t\t(const struct rte_flow_modify_conntrack *)update;\n-\tconst struct rte_flow_update_meter_mark *upd_meter_mark =\n-\t\t(const struct rte_flow_update_meter_mark *)update;\n-\tconst struct rte_flow_action_meter_mark *meter_mark;\n \tstruct mlx5_hw_q_job *job = NULL;\n-\tstruct mlx5_aso_mtr *aso_mtr;\n-\tstruct mlx5_flow_meter_info *fm;\n \tuint32_t act_idx = (uint32_t)(uintptr_t)handle;\n \tuint32_t type = act_idx >> MLX5_INDIRECT_ACTION_TYPE_OFFSET;\n \tuint32_t idx = act_idx & ((1u << MLX5_INDIRECT_ACTION_TYPE_OFFSET) - 1);\n@@ -8724,44 +8747,8 @@ flow_hw_action_handle_update(struct rte_eth_dev *dev, uint32_t queue,\n \t\tbreak;\n \tcase MLX5_INDIRECT_ACTION_TYPE_METER_MARK:\n \t\taso = true;\n-\t\tmeter_mark = &upd_meter_mark->meter_mark;\n-\t\t/* Find ASO object. */\n-\t\taso_mtr = mlx5_ipool_get(pool->idx_pool, idx);\n-\t\tif (!aso_mtr) {\n-\t\t\tret = -EINVAL;\n-\t\t\trte_flow_error_set(error, EINVAL,\n-\t\t\t\tRTE_FLOW_ERROR_TYPE_UNSPECIFIED,\n-\t\t\t\tNULL, \"Invalid meter_mark update index\");\n-\t\t\tbreak;\n-\t\t}\n-\t\tfm = &aso_mtr->fm;\n-\t\tif (upd_meter_mark->profile_valid)\n-\t\t\tfm->profile = (struct mlx5_flow_meter_profile *)\n-\t\t\t\t\t\t\t(meter_mark->profile);\n-\t\tif (upd_meter_mark->color_mode_valid)\n-\t\t\tfm->color_aware = meter_mark->color_mode;\n-\t\tif (upd_meter_mark->init_color_valid)\n-\t\t\taso_mtr->init_color = (meter_mark->color_mode) ?\n-\t\t\t\tmeter_mark->init_color : RTE_COLOR_GREEN;\n-\t\tif (upd_meter_mark->state_valid)\n-\t\t\tfm->is_enable = meter_mark->state;\n-\t\t/* Update ASO flow meter by wqe. */\n-\t\tif (mlx5_aso_meter_update_by_wqe(priv->sh, queue,\n-\t\t\t\t\t\t aso_mtr, &priv->mtr_bulk, job, push)) {\n-\t\t\tret = -EINVAL;\n-\t\t\trte_flow_error_set(error, EINVAL,\n-\t\t\t\tRTE_FLOW_ERROR_TYPE_UNSPECIFIED,\n-\t\t\t\tNULL, \"Unable to update ASO meter WQE\");\n-\t\t\tbreak;\n-\t\t}\n-\t\t/* Wait for ASO object completion. */\n-\t\tif (queue == MLX5_HW_INV_QUEUE &&\n-\t\t    mlx5_aso_mtr_wait(priv->sh, MLX5_HW_INV_QUEUE, aso_mtr)) {\n-\t\t\tret = -EINVAL;\n-\t\t\trte_flow_error_set(error, EINVAL,\n-\t\t\t\tRTE_FLOW_ERROR_TYPE_UNSPECIFIED,\n-\t\t\t\tNULL, \"Unable to wait for ASO meter CQE\");\n-\t\t}\n+\t\tret = mlx5_flow_update_meter_mark(dev, queue, update, idx, push,\n+\t\t\t\t\t\t  job, error);\n \t\tbreak;\n \tcase MLX5_INDIRECT_ACTION_TYPE_RSS:\n \t\tret = flow_dv_action_update(dev, handle, update, error);\ndiff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h\nindex 86ed98c562..b44e6077ad 100644\n--- a/lib/ethdev/rte_flow.h\n+++ b/lib/ethdev/rte_flow.h\n@@ -4025,8 +4025,6 @@ struct rte_flow_action_meter_mark {\n \tstruct rte_flow_meter_policy *policy;\n \t/** Metering mode: 0 - Color-Blind, 1 - Color-Aware. */\n \tint color_mode;\n-\t/** Initial Color applied to packets in Color-Aware mode. */\n-\tenum rte_color init_color;\n \t/** Metering state: 0 - Disabled, 1 - Enabled. */\n \tint state;\n };\n@@ -4045,12 +4043,10 @@ struct rte_flow_update_meter_mark {\n \tuint32_t policy_valid:1;\n \t/** The color mode will be updated. */\n \tuint32_t color_mode_valid:1;\n-\t/** The initial color will be updated. */\n-\tuint32_t init_color_valid:1;\n \t/** The meter state will be updated. */\n \tuint32_t state_valid:1;\n \t/** Reserved bits for the future usage. */\n-\tuint32_t reserved:27;\n+\tuint32_t reserved:28;\n };\n \n /**\n",
    "prefixes": []
}