get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 45332,
    "url": "https://patches.dpdk.org/api/patches/45332/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20180925150340.25378-4-jackmin@mellanox.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": "<20180925150340.25378-4-jackmin@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20180925150340.25378-4-jackmin@mellanox.com",
    "date": "2018-09-25T15:03:40",
    "name": "[3/3] net/mlx5: eswitch-modify MAC address actions",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "41187fdeb63b938ff5508eadf8a4e7a999feb7ff",
    "submitter": {
        "id": 1065,
        "url": "https://patches.dpdk.org/api/people/1065/?format=api",
        "name": "Xiaoyu Min",
        "email": "jackmin@mellanox.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/20180925150340.25378-4-jackmin@mellanox.com/mbox/",
    "series": [
        {
            "id": 1498,
            "url": "https://patches.dpdk.org/api/series/1498/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=1498",
            "date": "2018-09-25T15:03:37",
            "name": "ethdev: add generic MAC address rewrite actions",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/1498/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/45332/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/45332/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id B5D321B430;\n\tTue, 25 Sep 2018 17:04:36 +0200 (CEST)",
            "from EUR03-DB5-obe.outbound.protection.outlook.com\n\t(mail-eopbgr40089.outbound.protection.outlook.com [40.107.4.89])\n\tby dpdk.org (Postfix) with ESMTP id C86BB1B426\n\tfor <dev@dpdk.org>; Tue, 25 Sep 2018 17:04:32 +0200 (CEST)",
            "from dev-r630-08.mtbc.labs.mlnx (118.201.220.138) by\n\tVI1PR0501MB2031.eurprd05.prod.outlook.com (2603:10a6:800:36::17) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1164.20;\n\tTue, 25 Sep 2018 15:04:28 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;\n\ts=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=v0MfuqAI22RCVjRArsrvM/YierWTW4vboLfPBMHs/ng=;\n\tb=h7z3kQUhw1BSEMBa8yeECymXY8xAq9n56JY8OX6696bETTfNvX+oibhsD16qVPomcy15uUns1oqiLqXnHINVsK3oUX9DF3F4f+vZXcvSMprU9yHtgRmjIYhwBleIJ0osQ9bHIZTp1Zx5ZLc4ryWUKQGqTSIrYo10gVN51tdHFQE=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=jackmin@mellanox.com; ",
        "From": "Xiaoyu Min <jackmin@mellanox.com>",
        "To": "ferruh.yigit@intel.com, Shahaf Shuler <shahafs@mellanox.com>,\n\tYongseok Koh <yskoh@mellanox.com>",
        "Cc": "dev@dpdk.org",
        "Date": "Tue, 25 Sep 2018 23:03:40 +0800",
        "Message-Id": "<20180925150340.25378-4-jackmin@mellanox.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20180925150340.25378-1-jackmin@mellanox.com>",
        "References": "<20180925150340.25378-1-jackmin@mellanox.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[118.201.220.138]",
        "X-ClientProxiedBy": "HK2PR04CA0053.apcprd04.prod.outlook.com\n\t(2603:1096:202:14::21) To VI1PR0501MB2031.eurprd05.prod.outlook.com\n\t(2603:10a6:800:36::17)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "9c8ca4f4-4ab5-4193-633c-08d622f8324e",
        "X-MS-Office365-Filtering-HT": "Tenant",
        "X-Microsoft-Antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);\n\tSRVR:VI1PR0501MB2031; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; VI1PR0501MB2031;\n\t3:kXqkmfFD0aFqEkptCNIJ9lT6D2+WiBlE+wfRlfHWBPlaGkFbbjg4ZIlmVSvQdWXRpf7jcXnO2hcAo5O9z5YmA5kFzlC6jshKyFmDQOAFIKglf77XHw9hoFd+eXoPIwWSmYk09FE81x+5Hvi9naK49atLMXa7he2a/iWnOoOsX1gqHARfvdRnn0nY7DG1HQ4mg+rt6WOPjPZAMUS9O9uQ/R6jsB9V0BVDGhysSI9XoVG0VkqPhqIllchdv1viUlq4;\n\t25:RPFOZ17tVLku6WOentGTGfmSc0mS9BBcrXL2Y4THOmflv0dxJlvoxxwVUMqhTkZftIH77qIH0IfPRekK3jscoQUpSktG4MKbp273a3zZcROwwPCXvkcdvGDgCFHddcSeQ/2MEK0t40sncLbZGwrI6r0rERFPR088IZPc5j5iq45A+ThJBhwONMPp38Owhxf1c6yd9EcB3ZBl1beGrT0mYLGDVOJK9+eqW1WjFRlB21DXuAIHOR+FsscapjSl1d8x4zDn4zBiK1ilw+l1T7SH/FqvpjA8JFa34c5QvXTkoj6Txj9KSe/qFaLIYw+yFn1RbTyY5L2wYPY7Q0/ryD7ejw==;\n\t31:j2ZzYzPabjyoN5anNATzbC25BuzotZLP76ab8IdWihdd/xiPPXrePovDlilNP3Q+xDAsABQ/uVYstIaGkFy4FI5F9IQ47bawmSK0jR/6tFszgU/UD0u9y3zJq1PcIx9kgESqfowet1cvx5ilDcroRxI9MDT+xSOvPTp8GE8XlEnCMMccUmL386w/ceXz01ggDSL+5Dbn+D168Vg8z0AgxzrpgErVJ/aXZH9gdmLOF0c=",
            "1; VI1PR0501MB2031;\n\t20:RhPFeLE4cURI5GKiVERJwcizCdG8uNPy8jqw4Ye/4QE5+DggiCHqR7Zqywmn33OtYLnZD51fUGzhaEiuDvBcx+T0ew2XAztf0PiobY+OFaZxDDCjkL6lmTBmoNcTBuVMS2ON9UKOixvJWKzYI27cN5JWywVJfS8nuVhzs0nf1Nq6ok2CJRDMNtN6QLlCVYNpoHnZSf4veSp2mWQ21Na1FoFPRb7RGPKE+lKED/UA+Sn4+dEhXf8XN0JWcNBmOZohpWjLXDC/sFGeKfqt6Gwday++o2X43xyPP9RbvzVvEefSpK7TsMfzokUpGXTdN1ife2TvDpxf/MAvdl+m3Lz9gnr0odQDY65H5Xrx6L5oem9+UPVI606nT62xzhLCstj1x6b05J0nCMu8xs0jEOQNyFji3hyWMhx4auoqJu3NlDe46u0jENnB6v33b0QxosPEeORQXPbLYmm46V69gwP3YIf2OK88n4U04iEcMQCrEZCXxVBXC9wcdxqcMKyQhJHY;\n\t4:Exr45TZ43ZO38d1RucyY2BUIHUZsWQnuI7SwpANWzX4DO/euzm8fVGHMGkVakwmxSbTOdiy/CRrYh7jKC7C4wVluoOF5IawEZgWJ4e/Nv9MWzdPoAVO/IeJ9wBzBRyZKpHZ7kWUvtaGCRIutT5eF7+Zr+suj3mtksK6nJznv3udyuMU24fOvvfsLgCoIzdVEc+SXFNr4wPWuK52vNrTgem1gelDCR8c24JR20NMiGCt36haJgtajXNnmdfFg/ciapH2/CiU/KgiTc1WcClHF1Q==",
            "=?us-ascii?Q?1; VI1PR0501MB2031;\n\t23:M8rvPtUdKG4NBBh2gTyUydlkwtJvTSyUz+yvt/x?=\n\topzc/vYOlOZivO/BuManwBtiOaamBr0+u9UhxinbyCLtNoUVdnnpB1gD5D6zo8CDz69nZRdTQaPO2y5zUA86PRYjb/iUjDTrDBlVTPZmx3jgdBnMel+qeJpnsfIr0myNEZ9uUqiyUkrqbjB8+v/TpYhb1/XZX1pARACZ8qVSdWuGNX+5Aj8TfpeUkx9CDK43hp9YzdNVhnr1Wygwz38crQeMme8k0RbD7o4B3xhbgk9HQapPZYvAJWzohI5gCtmVcRk0WN+K4L3a4GHnaKYClZvuUzNrxtKKXOdZMA/neKNOdkW+l80BY8lp/BqJqg/8ZzHW3ClU+Zic7fxk4qvEQNR6J/tWH1v9qL/taYsWHQGq2UM5Agz9ksOWkw0W2/07iPfKektILOuSTfljmtlByrwTxDTUHcQi+PYmfulrsX8dgHey4R34lqSa0MGetMuvUfgFi1OeAwKwUhM93efMgooVWBQbYForGREK1rBnbo5WXiy4Y/b9UWWDVclvzpxoD7lGj7v9bW8D5ai0D623BJZ6Dt7eFuGUhXsZ3m/1+KH2mdfC3tjiKEWVv26sUDBX/n3MqAWolxALfjYpkK7dUW2xhsUxE/p87QzmASuY8gFid6PDGcspcFEOZJVdyoNV0XUr8qdv9xx/NWik/a7YyvjoF4Y+6xlJt7WaYoYNy1kWmZhFzJhewwMFEBlQLN4/ah/4h8zudtyEr+2nWcKuLFY6xjWn2u1UgX+OFlIdBA1EtS0vCLjtR+LCyC11Z/KyyscFHPORY5NctOsPh62jInZBvJBoJjYFHR9UCfeGoo18dNq8NtpqcjnKSeX9X/dXomX7FylPQ7YxgKEX/+Cne+9WPj5U0V9v4Ae6uF9FmDKEMM/5TgVCLlsQ62B+d0Rud9vUm5n3eI1bO/OuCsm4nN2UAAVgd0VvIXwlfUjqVv4/6J3mAsVqeSgrJE4k3S/dpsLLOl2SxqYpRkZycgiIgT2/LHO8CZkkWazwj3DmDNwyTrvkZMdz8+ZiTVQLeTJBaPlkNwpjlYL00crufr58LP4QwTNr3Z/2WGqeiP8n6PhzEB6ip/fJz4/VTU5JT96VaMO3/GBNnvEODMvSYy5AzGVU/qyphGWYaf9wOaJ10TtafkxDmZ5bsd38yO3gAXL+oh7P3zQacJFPFZUnkBOPMp0cRDaVKI5ibCceW3n5lx5OZs2SBeFhpg/jINaTVBU+PSAkso5oWPFgGeKwAUkdcN05O",
            "1; VI1PR0501MB2031;\n\t6:5cKNHPgj7gK2iFB3FTOvjfrBe5Ttx6v+y/OMjOCTHUwBUNU9Fc/Q+MLL6C0yj2DicGDu31AZsMt0T8hdqyB0+Tl0PqnewxcXgexwjYUB8yOsIf3Tx8dQnfTHr+fe8OkXioNaq1ht7v8OS93BxMehFn31DoGPoaL6sGWSmN/Km7hz+zuHzfBMFLbvq17YZKKNxR/ccNIrBAuZlwwp+p2HmNyeJNF42PkAMmi5v2fQE7qJT1L90SsM4IJpEt0AzSp/cKT7Eswy+CxjohXN6QSPgqObAqXQ/uyP71rXrLWRnZkJR9TIjdZY+kIv2CzMX1kS84Qew5+KKO84DFdsMwLoyJeFGrf7hvNzUNHYn4dc6I3j9x5rxYvz2pDEwRL+ojN7aAJwwvMhkncZ8MMPoRpO8jDmFNU6ztf0rs5sdWo8VOx61CAVnh8aVzZj3Oe2hpqJcBYKaI4xcHBt7Lb8xkNBDw==;\n\t5:c/ccgclj8Vu4Pk2eVtyfve1xDnjngKTFl/kNZ2BWTr7oU8TgCiGHhm8TFH3zncyCK0yZOnhAcJ8POxKTf4nR2VDVRWq+Pvz4FPGEi4cWW4cvxhGlPb53HXc2XqXf0L4IiSaxCUdcrasxSSb+F5Ij0yV5mHOtqrWGhIG+VCt45Ak=;\n\t7:jO/kOhMFpvDRzTtVseY10fnXE63h0AMWIgvXBnpVhUcsHpH8c2DLK6kuEbtCK6m4QA/ckbApTbw27VVeEK7cHM9P0BARnSPKvzyBYcGAQWbMh5tIJpVE8Mt3+Zl6LpA1Hxdrk7+EG0/ZOPwWtrJv2UrQ+bS0MPkI+k5M/A6hGt2aGFZm428wELSlNOViWyV0/xePqg4Otjsz/FYQbZQkWOpLbKs1b7rQwz5BjS1eAaYVG1JkXLPpTMLE2bu0HeSZ"
        ],
        "X-MS-TrafficTypeDiagnostic": "VI1PR0501MB2031:",
        "X-Microsoft-Antispam-PRVS": "<VI1PR0501MB2031D6F4C495E39B0D5F38DCCC160@VI1PR0501MB2031.eurprd05.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3231355)(944501410)(52105095)(3002001)(6055026)(149066)(150027)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123558120)(201708071742011)(7699051);\n\tSRVR:VI1PR0501MB2031; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0501MB2031; ",
        "X-Forefront-PRVS": "08062C429B",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(396003)(136003)(366004)(346002)(376002)(39860400002)(199004)(189003)(26005)(956004)(6506007)(106356001)(105586002)(386003)(446003)(11346002)(486006)(2616005)(186003)(16526019)(476003)(6666003)(6486002)(305945005)(478600001)(34290500001)(8676002)(7736002)(2906002)(81166006)(97736004)(81156014)(5660300001)(6512007)(6116002)(3846002)(6636002)(1076002)(53936002)(16586007)(4326008)(25786009)(110136005)(48376002)(51416003)(76176011)(52116002)(68736007)(50466002)(36756003)(50226002)(14444005)(316002)(575784001)(66066001)(47776003)(86362001)(8936002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0501MB2031;\n\tH:dev-r630-08.mtbc.labs.mlnx; \n\tFPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; ",
        "Received-SPF": "None (protection.outlook.com: mellanox.com does not designate\n\tpermitted sender hosts)",
        "X-Microsoft-Antispam-Message-Info": "IK0SGPGYhfGHdysr4ajWnYE0HkcmMsRTMaAUUiyHuy/dNswDs4+UPRE/CR2sGWej8GWMg30aGH29/qIc7zDH6X0Rb+CQYrGzYxJCalc82Fp/v5ngQuzxE5vFDRJpNPEh+WOWmQnRaxZtssEpNWbLdOJM8nK1KQqXqaG5C5yx+Y5X7sNMD8KERqZJSn9Mp+kJPJIZq9s/e0tgtz868xuN6Y+ZDN/Na2ApapB8rFyb3/HH0iKvPdAH9+xeWKf6zP9ZlI1duVCwH6KFXGl9+XURqrwB+LhCtNSbnUTPpXeJ1DMQ7QF4Kf7zIlPLb13asTFmX83btDyNS4HArBkf5uBjNxhixB1tCYDWB5DOBpB7M2Q=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "Mellanox.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "25 Sep 2018 15:04:28.7646\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "9c8ca4f4-4ab5-4193-633c-08d622f8324e",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "a652971c-7d2e-4d9b-a6a4-d149256f461b",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "VI1PR0501MB2031",
        "Subject": "[dpdk-dev] [PATCH 3/3] net/mlx5: eswitch-modify MAC address actions",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Offload following modify MAC address actions to E-Switch\nvia TC-Flower driver\n\n- RTE_FLOW_ACTION_TYPE_SET_MAC_SRC\n- RTE_FLOW_ACTION_TYPE_SET_MAC_DST\n\nThe corresponding rte_flow_item_eth must be present in\nrte_flow pattern\n\nOnly support modify outer layer MAC address\n\nSigned-off-by: Xiaoyu Min <jackmin@mellanox.com>\n---\n drivers/net/mlx5/mlx5_flow.h     |  2 ++\n drivers/net/mlx5/mlx5_flow_tcf.c | 62 +++++++++++++++++++++++++++++++-\n 2 files changed, 63 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h\nindex 5237e31dd..76c4e8398 100644\n--- a/drivers/net/mlx5/mlx5_flow.h\n+++ b/drivers/net/mlx5/mlx5_flow.h\n@@ -95,6 +95,8 @@\n #define MLX5_ACTION_SET_TP_DST (1u << 16)\n #define MLX5_ACTION_SET_TTL (1u << 17)\n #define MLX5_ACTION_DEC_TTL (1u << 18)\n+#define MLX5_ACTION_SET_MAC_SRC (1u << 19)\n+#define MLX5_ACTION_SET_MAC_DST (1u << 20)\n \n /* possible L3 layers protocols filtering. */\n #define MLX5_IP_PROTOCOL_TCP 6\ndiff --git a/drivers/net/mlx5/mlx5_flow_tcf.c b/drivers/net/mlx5/mlx5_flow_tcf.c\nindex af88c4a0d..cb60c3e05 100644\n--- a/drivers/net/mlx5/mlx5_flow_tcf.c\n+++ b/drivers/net/mlx5/mlx5_flow_tcf.c\n@@ -303,7 +303,9 @@ struct flow_tcf_ptoi {\n \t\t(act) == RTE_FLOW_ACTION_TYPE_SET_TP_SRC    || \\\n \t\t(act) == RTE_FLOW_ACTION_TYPE_SET_TP_DST    || \\\n \t\t(act) == RTE_FLOW_ACTION_TYPE_SET_TTL       || \\\n-\t\t(act) == RTE_FLOW_ACTION_TYPE_DEC_TTL) ?       \\\n+\t\t(act) == RTE_FLOW_ACTION_TYPE_DEC_TTL       || \\\n+\t\t(act) == RTE_FLOW_ACTION_TYPE_SET_MAC_SRC   || \\\n+\t\t(act) == RTE_FLOW_ACTION_TYPE_SET_MAC_DST) ?   \\\n \t\t1 : 0; })\n #define MAX_PEDIT_KEYS (128)\n #define SZ_PEDIT_KEY_VAL (4)\n@@ -327,6 +329,33 @@ flow_tcf_calc_pedit_keys(const uint64_t size)\n \treturn keys;\n }\n \n+static void\n+flow_tcf_pedit_key_set_mac(const struct rte_flow_action *actions,\n+\t\t\t   struct pedit_parser *p_parser)\n+{\n+\tint idx = p_parser->sel.nkeys;\n+\tuint32_t off =\n+\t\tactions->type == RTE_FLOW_ACTION_TYPE_SET_MAC_SRC ? 6 : 0;\n+\tconst struct rte_flow_action_set_mac *conf =\n+\t\t(const struct rte_flow_action_set_mac *)actions->conf;\n+\n+\tp_parser->keys[idx].off = off;\n+\tp_parser->keys[idx].mask = ~UINT32_MAX;\n+\tp_parser->keys_ex[idx].htype = TCA_PEDIT_KEY_EX_HDR_TYPE_ETH;\n+\tp_parser->keys_ex[idx].cmd = TCA_PEDIT_KEY_EX_CMD_SET;\n+\tmemcpy(&p_parser->keys[idx].val,\n+\t\tconf->mac_addr, SZ_PEDIT_KEY_VAL);\n+\tidx++;\n+\tp_parser->keys[idx].off = off + SZ_PEDIT_KEY_VAL;\n+\tp_parser->keys[idx].mask = 0xFFFF0000;\n+\tp_parser->keys_ex[idx].htype = TCA_PEDIT_KEY_EX_HDR_TYPE_ETH;\n+\tp_parser->keys_ex[idx].cmd = TCA_PEDIT_KEY_EX_CMD_SET;\n+\tmemcpy(&p_parser->keys[idx].val,\n+\t\tconf->mac_addr + SZ_PEDIT_KEY_VAL,\n+\t\tETHER_ADDR_LEN - SZ_PEDIT_KEY_VAL);\n+\tp_parser->sel.nkeys = (++idx);\n+}\n+\n static void\n flow_tcf_pedit_key_set_dec_ttl(const struct rte_flow_action *actions,\n \t\t\t\tstruct pedit_parser *p_parser,\n@@ -447,6 +476,10 @@ flow_tcf_create_pedit_mnl_msg(struct nlmsghdr *nl,\n \t\t\tflow_tcf_pedit_key_set_dec_ttl(*actions,\n \t\t\t\t\t\t\t&p_parser, item_flags);\n \t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_SRC:\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_DST:\n+\t\t\tflow_tcf_pedit_key_set_mac(*actions, &p_parser);\n+\t\t\tbreak;\n \t\tdefault:\n \t\t\tgoto pedit_mnl_msg_done;\n \t\t}\n@@ -535,6 +568,14 @@ flow_tcf_get_pedit_actions_size(const struct rte_flow_action **actions,\n \t\t\tkeys += flow_tcf_calc_pedit_keys(TTL_LEN);\n \t\t\tflags |= MLX5_ACTION_DEC_TTL;\n \t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_SRC:\n+\t\t\tkeys += flow_tcf_calc_pedit_keys(ETHER_ADDR_LEN);\n+\t\t\tflags |= MLX5_ACTION_SET_MAC_SRC;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_DST:\n+\t\t\tkeys += flow_tcf_calc_pedit_keys(ETHER_ADDR_LEN);\n+\t\t\tflags |= MLX5_ACTION_SET_MAC_DST;\n+\t\t\tbreak;\n \t\tdefault:\n \t\t\tgoto get_pedit_action_size_done;\n \t\t}\n@@ -1041,6 +1082,12 @@ flow_tcf_validate(struct rte_eth_dev *dev,\n \t\tcase RTE_FLOW_ACTION_TYPE_DEC_TTL:\n \t\t\taction_flags |= MLX5_ACTION_DEC_TTL;\n \t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_SRC:\n+\t\t\taction_flags |= MLX5_ACTION_SET_MAC_SRC;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_DST:\n+\t\t\taction_flags |= MLX5_ACTION_SET_MAC_DST;\n+\t\t\tbreak;\n \t\tdefault:\n \t\t\treturn rte_flow_error_set(error, ENOTSUP,\n \t\t\t\t\t\t  RTE_FLOW_ERROR_TYPE_ACTION,\n@@ -1093,6 +1140,15 @@ flow_tcf_validate(struct rte_eth_dev *dev,\n \t\t\t\t\t\t  actions,\n \t\t\t\t\t\t  \"no IP found in pattern\");\n \t}\n+\tif (action_flags &\n+\t    (MLX5_ACTION_SET_MAC_SRC | MLX5_ACTION_SET_MAC_DST)) {\n+\t\tif (!(item_flags & MLX5_FLOW_LAYER_OUTER_L2))\n+\t\t\treturn rte_flow_error_set(error, ENOTSUP,\n+\t\t\t\t\t\t  RTE_FLOW_ERROR_TYPE_ACTION,\n+\t\t\t\t\t\t  actions,\n+\t\t\t\t\t\t  \"no ethernet found in\"\n+\t\t\t\t\t\t  \" pattern\");\n+\t}\n \treturn 0;\n }\n \n@@ -1244,6 +1300,8 @@ flow_tcf_get_actions_and_size(const struct rte_flow_action actions[],\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_TP_DST:\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_TTL:\n \t\tcase RTE_FLOW_ACTION_TYPE_DEC_TTL:\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_SRC:\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_DST:\n \t\t\tsize += flow_tcf_get_pedit_actions_size(&actions,\n \t\t\t\t\t\t\t\t&flags);\n \t\t\tbreak;\n@@ -1788,6 +1846,8 @@ flow_tcf_translate(struct rte_eth_dev *dev, struct mlx5_flow *dev_flow,\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_TP_DST:\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_TTL:\n \t\tcase RTE_FLOW_ACTION_TYPE_DEC_TTL:\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_SRC:\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_DST:\n \t\t\tna_act_index =\n \t\t\t\tmnl_attr_nest_start(nlh, na_act_index_cur++);\n \t\t\tflow_tcf_create_pedit_mnl_msg(nlh,\n",
    "prefixes": [
        "3/3"
    ]
}