get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 45323,
    "url": "https://patches.dpdk.org/api/patches/45323/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20180925134718.18945-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": "<20180925134718.18945-4-jackmin@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20180925134718.18945-4-jackmin@mellanox.com",
    "date": "2018-09-25T13:47:18",
    "name": "[3/3] net/mlx5: eswitch-modify TTL actions",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "e35d16f39d11e04e038ac2cc53dee621f497d4ba",
    "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/20180925134718.18945-4-jackmin@mellanox.com/mbox/",
    "series": [
        {
            "id": 1495,
            "url": "https://patches.dpdk.org/api/series/1495/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=1495",
            "date": "2018-09-25T13:47:15",
            "name": "ethdev: add generic TTL rewrite actions",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/1495/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/45323/comments/",
    "check": "warning",
    "checks": "https://patches.dpdk.org/api/patches/45323/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 061E91B1F3;\n\tTue, 25 Sep 2018 15:48:05 +0200 (CEST)",
            "from EUR01-VE1-obe.outbound.protection.outlook.com\n\t(mail-ve1eur01on0060.outbound.protection.outlook.com [104.47.1.60])\n\tby dpdk.org (Postfix) with ESMTP id 0CD071B1EA\n\tfor <dev@dpdk.org>; Tue, 25 Sep 2018 15:48:03 +0200 (CEST)",
            "from dev-r630-08.mtbc.labs.mlnx (118.201.220.138) by\n\tDB6PR0501MB2023.eurprd05.prod.outlook.com (2603:10a6:4:6::17) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.1164.22; Tue, 25 Sep 2018 13:47:59 +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=zhIRQIVlhySSTz2mzNzlMVAxBvbnj67XA/Xz+ha8J1k=;\n\tb=lWehFTBwONr3fT49do9Sc29zyKf/B6xlg2apHf6gCbPMC4UpSJH0G6FOwRpTOrQQzR0pCkDdhPSxXKXkGbp6TRC6Djjrv6QCnfCpfqBINIWaV8XhbqiVPBG8OTq6LoRjhiruo2TO48bx9zlTa49ufDI0C9ASvizLBNVt5+tw7qo=",
        "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 21:47:18 +0800",
        "Message-Id": "<20180925134718.18945-4-jackmin@mellanox.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20180925134718.18945-1-jackmin@mellanox.com>",
        "References": "<20180925134718.18945-1-jackmin@mellanox.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[118.201.220.138]",
        "X-ClientProxiedBy": "HK0PR03CA0050.apcprd03.prod.outlook.com\n\t(2603:1096:203:52::14) To DB6PR0501MB2023.eurprd05.prod.outlook.com\n\t(2603:10a6:4:6::17)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "cbf026f3-4bca-44b7-a141-08d622ed82e6",
        "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:DB6PR0501MB2023; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; DB6PR0501MB2023;\n\t3:xBNrnnGmIXhZdbo2yfMN/LDBw+lDryLu9jZfEleZw8fbEbrk/MnAhVp8Z5r/M8mjUlIPLw9WIrcxDUpqbyoxzVFAsC9nwnlcwHOm3Kkbkz+XBej6jjwn8oM+LWRG0kdI7YrgICHOtHTytS8leiIxDdT3Sc/dreNk2jQnj8IbgGtywtlEC0HA79261VAQx34jqHL1E+GFubrT2hC1ZI+POVhLkVxsBdTTVPlAJUbRnL+6i+TbyO0Bl7nHalQR7D8J;\n\t25:eK7qKAdGBewv6O+nXLf442vTq/BioyyVCr7TC1PxnJ5FH+Vq2GIh9tkppmFa+7joiu4DR8a/ndxmhK/oE7SYueAhJXuCXv+3P4HTogmoaxd9cALdC08heiJFd1HFIhNyAYNlFbEthJXBks3h3NYI+r4XjeVgNC+PIH2LhoaCYomWhEshLMH7JGAI/qnWkPMXbPB4OB5Myed41uUp7Pp3aH4fYHRzEBiwdLCehAR9eZNJDAOSnOKnngeu8WlwNVb5Meo7t42xKyYbQ/ms3kCDHR3AVsJU4migidqSkQ005JW7AwPwfatQKuXMm2ufoxEsIfhqqLhlOmIiuH1i3XuZmw==;\n\t31:rIj6YJAq/5PydVqT1eeLUm8PLEfWtmaRk2bLefkAgNuDwnKJkWBRwR+hOEroGOz/zDUpqiHwY+AQObmCrZdqGDKmkAr1iJRYI4R8yReFYwSwpdKgS1wGAHbEQO0aoycMeu5pFMdHKmCiK7G54cvI1mKvh8FtY20F0WR8wVccIYBuAoYGUW0oIh7G/Pg72QD+2WFg0A1SGmZAezjIaeppL10MX2+ZIMZSpVt+PqGPyYc=",
            "1; DB6PR0501MB2023;\n\t20:th6S7HfQQUmKA0AEOfgNOTIAwTBn8WGEPLLlnnIq/b3iNVERT0CzSjGaxPUZb5867qMn5EXhcBCcAWOeMDlkZ29BKTmQYymCJqR2K7dBMR0/wG1Pb+5pkEkb5UkjdXg+ifgRsEEn7fEpJtujXIiDcSC2eeYqgrBrVz0TSoQ8RFddFTTm0dh3wVNsfpE9h0uyzQ2eIUn1dLrjicq+8K94OmubAKO9cEccuwe01xDdiwoW6QjA0HdvWRpGumwg/wjuH19GIlX47MOoL8rr76ZBp47PpBJbaYhEPqCxDKqvgWButmN91bn7G2NEqBPIAJEyKrTYvvYyncbV1wqjfSSlF+1gSuoTwr5bWQHEZhdEz2JZE5KUCR00ynpdy6Tg86AeDkTHCdaabq8dB4gV6yr3dKpZ011Ko5s212q36HlKaIHo/sOEJpYd703qbF4mG6OyWtjlVpC6hOM5daZTaEdNfvE1o/FfEn6jxlDmMMIr3Xc0uu5D+20GrW1neMZ2VQB0;\n\t4:tuctpAWvvwH4enYA8TBB/Bi5CYu1vzop+EajtIGytKbSi4GGlSJNU3jdVmggxsK3gvjuqtksT7dXwol69FMlT2vBnvoHiVdP0mn2FJdnW1y0TvZ6Kh5mvxZa6bN05iQsbr0xoxHXHtYP031CyOZ794a0Lrrc+TwF19z/vJ+fJkH6LL5Sh8qJY64AFP9yPnzUGEcxIg/xwIBZW0YwzgQV1/5VTBX2dFAt1lKifRi2AaKK3QhqnZbk/sOyk2ctBb+18TdH0gGNHRblQGC+H4H81Q==",
            "=?us-ascii?Q?1; DB6PR0501MB2023;\n\t23:gnSm1Xv2WHuPIVemEMHPYYAlUnjltnEUHAgDcQX?=\n\tCYTItJpAWd+e2sDyw/R/n3pCxt+HhuGZHWMHB76Lupke44MuYy8rrFBc6G1oEQlFBAmmqqAh8Cz/+/l2Bcy7K6XWHw721IB7Fm6tBP6DHo3i/CzVi8ojkIcf6Eog2322lIsiYBePUHMfk9JKBzB+CD0x5M5x/oErE23KnibRdazJ0u7421gSqW4Cpu5PWBN91UXkqvVziMImd7WhwOWVZ7JUMwCp6bsBCVIfvtGhzyc0qORhtA5WONIuMPors0V8o2G4L+PJ4HLcDQRhqPjklJ6EniMn8lXq7fTO7fvnBjMm02nCTR8IwiWX8H0bUfH6gVxFnnQIIbUePBpfABcgaPtulF4+NpF5zgLmtDEd7vRMU52ESGEAtpVxe4gz6PbjQfvFZ8ww/bTRJYDTg8Laho6yz/YG5K1XPIgGJrt5CUDpuB9xeCePn4G6EkKY1VydK7D9qd6WNrWWZpW9EUht86RBm9RLn1apEGYU7eD7J1gKJf417DdtAX6nxan1uhFshywEvFv+fskMx+N08VemXHvIMGsZfwtL/PS6VOmrUbJ4czHNwoN/xUNwTuGDatqbyCeoOzR+luJqMfIOZSwdwzvJcQebdtOxnlP7BdoTa8aSPgD29TaCJgXA/jD+2reRn02jB6htrjJGROqmUtaadBov++7NSxMpmsgLawS4z8ktTrV6F3FVSC+ZQmEIykTNCUesEC4E8Xz+lgRqukNdM2UpQS1yFOL+F4JfEH03kN6XrpoNMdOp+OCu8AXtLaEHyy4NisJ0ZxirUVeG8Q8qO5uO5zUHn+ov6clH2WFNu8KTy75kmgZIxcAMBMnB2q0TqQQ85SsMusfV2Ox1+iyw2Ni39J4t09noo/T9v0x1uQudQ84E5IlZnVEzV1hnR8daDV4lvfLeHMvM0frEM3xWsxbqaKkwzIWqwiwAk7zk193ykxDDw2TEbFCidCCnH/e1+xH9tgBIA/SZK2rNpmJTFYLS6egsGaqF72FwLKxl1qLTwlY+oRP+oc9AMvgYVZbvUWQ01tXXhZR0r4VMrKb8IS80bT7xj9kxde/4nxHnARvwzblMfuenSiY2vL23rFWd3FhrXJBFZ//yqHlxXW4GqXmNfKYlhAFIBFYKltz72eY6Jv5DofQVW3iV56f2hGz9irg6wFRoP4eS9YM0eCE14+RUBM/3Wz1mkhBsfM0TaAoN5y3dOV6oU8jUXXxHTbsAVSu3cq4A8AK3S6K2AoqKPUpgP",
            "1; DB6PR0501MB2023;\n\t6:PTqpsALLntt2KdR2QCKzPG0lHuqaIVaMLDuUHIUnBALWIsG/AdkkQEjTQuLD4IkhRp0DSRGHE8l3FnbbAfOFEgeIA2R2Yb3wWr2CbT/N8m6Xhklf0BgVseKptb1ZaH5pFvguZftoCuoKrRP9To43VA7861nE3wr9y8XdfcGR+I8YZzT8NzYwhIhXfEat9C9il/Sdn+NC9hXbL7bsjXgADZHQDRSmt38tYHD+eSxQxg34RtNiyObSbZLNfnMOS5sNDqbMpp3UVFniFIj3q5mxAGNfyabN9OpEfLYET4EwY1P12qMrrLSx7aIphwUCZLzBztvv+ajT/fXADAU1Sum3bN33NPrJD3o90ZtZ09ghF4lDCiCz1bVAmf9KmG3T9jxq9iFNwbDZNOE9WpwvKqhzL8z3xpwRwKbtxqcQ9i4tWir5omLiQD/X+vAUYo6SUYErgjGT852iDqDpNg9cpP2q6Q==;\n\t5:/7bfo3ZtPvfazrI/jQAd7Zi6P2+gKzRhMdhfnltAe9ZHaWdYDvdAYyESIEr73V3gjFb3zWLtOtVjtloCVIrL0hPy/Vn6qY5BH3gnafRyY94kZDyW8Rfjyj3iUze9nFzERr5cI6VNRSq/fJ6sjY2cWQI06ATcwaZ3lGSfGQuRxlM=;\n\t7:sGPvleqH/fF7UKreA1XIka5Y2pzD74rQpky+5rtPQZHhn7jpMM4fxHJ2izIDYsGh+sLdn30O6rll+ojjtce/itRbyK4axdOYsccw7QRQtZQT61Ec8LxaBEWdC+uATux9ZXnfM/XJ4GgAQhsdlynnRCxqIuu6enyV5kqYBJZjQjb2oibChey9dO8ZET0+0Kscbjpmybqir7brkWXoa39LPdHtmk/FHzWIvagb1N01aEj6ohx5kV8pENM7XUhQ4L5g"
        ],
        "X-MS-TrafficTypeDiagnostic": "DB6PR0501MB2023:",
        "X-Microsoft-Antispam-PRVS": "<DB6PR0501MB20232DAA329B73D13A009AD6CC160@DB6PR0501MB2023.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)(8121501046)(5005006)(93006095)(93001095)(3231355)(944501410)(52105095)(10201501046)(3002001)(6055026)(149066)(150027)(6041310)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(201708071742011)(7699051);\n\tSRVR:DB6PR0501MB2023; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0501MB2023; ",
        "X-Forefront-PRVS": "08062C429B",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(346002)(366004)(136003)(396003)(39860400002)(376002)(199004)(189003)(6512007)(4326008)(446003)(68736007)(11346002)(476003)(486006)(86362001)(2616005)(575784001)(16586007)(956004)(3846002)(14444005)(5660300001)(25786009)(6506007)(316002)(6636002)(106356001)(26005)(110136005)(105586002)(6666003)(6116002)(386003)(1076002)(50226002)(186003)(16526019)(2906002)(36756003)(478600001)(81156014)(305945005)(7736002)(50466002)(52116002)(48376002)(81166006)(51416003)(8676002)(97736004)(76176011)(66066001)(53936002)(47776003)(6486002)(8936002)(34290500001);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0501MB2023;\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": "Y7YorWrPvQr13AB/9I26akQNzwqTsIjRQ/bmUuUh38L8jBZ/d7d+bTZojfzJ5F1Os7UPw20ZPyN0pXSq2zbWsvY3FAHBvHQTwr1Nu3CrRhqj/AEkyGRefKGlu6IFYckNI+zgve+DgQ5FzabWzrDeXkE9ZZ5aUHFBQGRRHeFEMOIFvhtqeISRfDTkwWONONrAmFXJzsA/yltcixRZS7h9Bmh7JA6w2d5xmU4xDv+JRDNR04GDyh4sdFmzP0dqTk+EbTgjztQlzCwhV9LsnPWV8k2AaROEbtSJ8emwpAgfx1o98voOZiYb85Iu8AzNrdDwLv78CDQCyESU4U128DwMvZ7V8MAbQkmWgHHeGjVEDow=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "Mellanox.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "25 Sep 2018 13:47:59.5098\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "cbf026f3-4bca-44b7-a141-08d622ed82e6",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "a652971c-7d2e-4d9b-a6a4-d149256f461b",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DB6PR0501MB2023",
        "Subject": "[dpdk-dev] [PATCH 3/3] net/mlx5: eswitch-modify TTL 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 TTL actions to E-Swtich via\nTC-Flower driver\n\n- RTE_FLOW_ACTION_TYPE_SET_TTL\n- RTE_FLOW_ACTION_TYPE_DEC_TTL\n\nThe corresponding IP protocol rte_flow_item_ipv[4|6]\nmust be present in rte_flow pattern otherwith PMD\nreturn error\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 | 74 +++++++++++++++++++++++++++++++-\n 2 files changed, 74 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h\nindex be182a643..5237e31dd 100644\n--- a/drivers/net/mlx5/mlx5_flow.h\n+++ b/drivers/net/mlx5/mlx5_flow.h\n@@ -93,6 +93,8 @@\n #define MLX5_ACTION_SET_IPV6_DST (1u << 14)\n #define MLX5_ACTION_SET_TP_SRC (1u << 15)\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 \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 85c92f369..af88c4a0d 100644\n--- a/drivers/net/mlx5/mlx5_flow_tcf.c\n+++ b/drivers/net/mlx5/mlx5_flow_tcf.c\n@@ -217,6 +217,10 @@ struct tc_pedit_sel {\n #define TP_PORT_LEN 2 /* Transport Port (UDP/TCP) Length */\n #endif\n \n+#ifndef TTL_LEN\n+#define TTL_LEN 1\n+#endif\n+\n /** Empty masks for known item types. */\n static const union {\n \tstruct rte_flow_item_port_id port_id;\n@@ -297,7 +301,9 @@ struct flow_tcf_ptoi {\n \t\t(act) == RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC  || \\\n \t\t(act) == RTE_FLOW_ACTION_TYPE_SET_IPV6_DST  || \\\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_TP_DST    || \\\n+\t\t(act) == RTE_FLOW_ACTION_TYPE_SET_TTL       || \\\n+\t\t(act) == RTE_FLOW_ACTION_TYPE_DEC_TTL) ?       \\\n \t\t1 : 0; })\n #define MAX_PEDIT_KEYS (128)\n #define SZ_PEDIT_KEY_VAL (4)\n@@ -321,6 +327,34 @@ flow_tcf_calc_pedit_keys(const uint64_t size)\n \treturn keys;\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+\t\t\t\tuint64_t item_flags)\n+{\n+\tint idx = p_parser->sel.nkeys;\n+\n+\tp_parser->keys[idx].mask = 0xFFFFFF00;\n+\tif (item_flags & MLX5_FLOW_LAYER_OUTER_L3_IPV4) {\n+\t\tp_parser->keys_ex[idx].htype = TCA_PEDIT_KEY_EX_HDR_TYPE_IP4;\n+\t\tp_parser->keys[idx].off = 8; /* IPv4 TTL Offset */\n+\t}\n+\tif (item_flags & MLX5_FLOW_LAYER_OUTER_L3_IPV6) {\n+\t\tp_parser->keys_ex[idx].htype = TCA_PEDIT_KEY_EX_HDR_TYPE_IP6;\n+\t\tp_parser->keys[idx].off = 7; /* IPv6 HopLimit Offset */\n+\t}\n+\tif (actions->type == RTE_FLOW_ACTION_TYPE_DEC_TTL) {\n+\t\tp_parser->keys_ex[idx].cmd = TCA_PEDIT_KEY_EX_CMD_ADD;\n+\t\tp_parser->keys[idx].val = 0xFF;\n+\t} else {\n+\t\tp_parser->keys_ex[idx].cmd = TCA_PEDIT_KEY_EX_CMD_SET;\n+\t\tp_parser->keys[idx].val =\n+\t\t\t((const struct rte_flow_action_set_ttl *)\n+\t\t\t actions->conf)->ttl_value;\n+\t}\n+\tp_parser->sel.nkeys = (++idx);\n+}\n+\n static void\n flow_tcf_pedit_key_set_tp_port(const struct rte_flow_action *actions,\n \t\t\t\tstruct pedit_parser *p_parser,\n@@ -408,6 +442,11 @@ flow_tcf_create_pedit_mnl_msg(struct nlmsghdr *nl,\n \t\t\tflow_tcf_pedit_key_set_tp_port(*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_TTL:\n+\t\tcase RTE_FLOW_ACTION_TYPE_DEC_TTL:\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\tdefault:\n \t\t\tgoto pedit_mnl_msg_done;\n \t\t}\n@@ -488,6 +527,14 @@ flow_tcf_get_pedit_actions_size(const struct rte_flow_action **actions,\n \t\t\tkeys += flow_tcf_calc_pedit_keys(TP_PORT_LEN);\n \t\t\tflags |= MLX5_ACTION_SET_TP_DST;\n \t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_TTL:\n+\t\t\tkeys += flow_tcf_calc_pedit_keys(TTL_LEN);\n+\t\t\tflags |= MLX5_ACTION_SET_TTL;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_DEC_TTL:\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\tdefault:\n \t\t\tgoto get_pedit_action_size_done;\n \t\t}\n@@ -988,13 +1035,20 @@ flow_tcf_validate(struct rte_eth_dev *dev,\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_TP_DST:\n \t\t\taction_flags |= MLX5_ACTION_SET_TP_DST;\n \t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_TTL:\n+\t\t\taction_flags |= MLX5_ACTION_SET_TTL;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_DEC_TTL:\n+\t\t\taction_flags |= MLX5_ACTION_DEC_TTL;\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 \t\t\t\t\t\t  actions,\n \t\t\t\t\t\t  \"action not supported\");\n \t\t}\n-\t\tif (IS_MODIFY_ACTION(actions->type)) {\n+\t\tif (IS_MODIFY_ACTION(actions->type) &&\n+\t\t    actions->type != RTE_FLOW_ACTION_TYPE_DEC_TTL) {\n \t\t\tif (!actions->conf)\n \t\t\t\treturn rte_flow_error_set(error, ENOTSUP,\n \t\t\t\t\t\tRTE_FLOW_ERROR_TYPE_ACTION_CONF,\n@@ -1029,6 +1083,16 @@ flow_tcf_validate(struct rte_eth_dev *dev,\n \t\t\t\t\t\t\"no TCP/UDP item found in\"\n \t\t\t\t\t\t\" pattern\");\n \t}\n+\tif (action_flags &\n+\t   (MLX5_ACTION_SET_TTL | MLX5_ACTION_DEC_TTL)) {\n+\t\tif (!(item_flags &\n+\t\t     (MLX5_FLOW_LAYER_OUTER_L3_IPV4 |\n+\t\t      MLX5_FLOW_LAYER_OUTER_L3_IPV6)))\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 IP found in pattern\");\n+\t}\n \treturn 0;\n }\n \n@@ -1178,6 +1242,8 @@ flow_tcf_get_actions_and_size(const struct rte_flow_action actions[],\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_IPV6_DST:\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_TP_SRC:\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\t\tsize += flow_tcf_get_pedit_actions_size(&actions,\n \t\t\t\t\t\t\t\t&flags);\n \t\t\tbreak;\n@@ -1451,6 +1517,7 @@ flow_tcf_translate(struct rte_eth_dev *dev, struct mlx5_flow *dev_flow,\n \t\t\t\t\t\t  RTE_BE16(0x0fff)));\n \t\t\tbreak;\n \t\tcase RTE_FLOW_ITEM_TYPE_IPV4:\n+\t\t\titem_flags |= MLX5_FLOW_LAYER_OUTER_L3_IPV4;\n \t\t\tmask.ipv4 = flow_tcf_item_mask\n \t\t\t\t(items, &rte_flow_item_ipv4_mask,\n \t\t\t\t &flow_tcf_mask_supported.ipv4,\n@@ -1490,6 +1557,7 @@ flow_tcf_translate(struct rte_eth_dev *dev, struct mlx5_flow *dev_flow,\n \t\t\t}\n \t\t\tbreak;\n \t\tcase RTE_FLOW_ITEM_TYPE_IPV6:\n+\t\t\titem_flags |= MLX5_FLOW_LAYER_OUTER_L3_IPV6;\n \t\t\tmask.ipv6 = flow_tcf_item_mask\n \t\t\t\t(items, &rte_flow_item_ipv6_mask,\n \t\t\t\t &flow_tcf_mask_supported.ipv6,\n@@ -1718,6 +1786,8 @@ flow_tcf_translate(struct rte_eth_dev *dev, struct mlx5_flow *dev_flow,\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_IPV6_DST:\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_TP_SRC:\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\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"
    ]
}