get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 131739,
    "url": "https://patches.dpdk.org/api/patches/131739/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20230920133403.6420-12-hemant.agrawal@nxp.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": "<20230920133403.6420-12-hemant.agrawal@nxp.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230920133403.6420-12-hemant.agrawal@nxp.com",
    "date": "2023-09-20T13:34:01",
    "name": "[v2,11/13] crypto/dpaa2_sec: add NAT-T support in IPsec offload",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "64d90112f7c79af9dfe5244477693cac19f04c74",
    "submitter": {
        "id": 477,
        "url": "https://patches.dpdk.org/api/people/477/?format=api",
        "name": "Hemant Agrawal",
        "email": "hemant.agrawal@nxp.com"
    },
    "delegate": {
        "id": 6690,
        "url": "https://patches.dpdk.org/api/users/6690/?format=api",
        "username": "akhil",
        "first_name": "akhil",
        "last_name": "goyal",
        "email": "gakhil@marvell.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20230920133403.6420-12-hemant.agrawal@nxp.com/mbox/",
    "series": [
        {
            "id": 29574,
            "url": "https://patches.dpdk.org/api/series/29574/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=29574",
            "date": "2023-09-20T13:33:50",
            "name": "crypto/dpaax_sec: misc enhancements",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/29574/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/131739/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/131739/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 5916A425EA;\n\tWed, 20 Sep 2023 15:36:18 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 6284B42DF5;\n\tWed, 20 Sep 2023 15:34:42 +0200 (CEST)",
            "from EUR05-DB8-obe.outbound.protection.outlook.com\n (mail-db8eur05on2089.outbound.protection.outlook.com [40.107.20.89])\n by mails.dpdk.org (Postfix) with ESMTP id 78F7D42DE4\n for <dev@dpdk.org>; Wed, 20 Sep 2023 15:34:38 +0200 (CEST)",
            "from PAXPR04MB9328.eurprd04.prod.outlook.com (2603:10a6:102:2b6::15)\n by AS8PR04MB7606.eurprd04.prod.outlook.com (2603:10a6:20b:23e::8)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.27; Wed, 20 Sep\n 2023 13:34:35 +0000",
            "from PAXPR04MB9328.eurprd04.prod.outlook.com\n ([fe80::450d:89ac:4f6a:6ae2]) by PAXPR04MB9328.eurprd04.prod.outlook.com\n ([fe80::450d:89ac:4f6a:6ae2%4]) with mapi id 15.20.6792.021; Wed, 20 Sep 2023\n 13:34:35 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=Ksh0mUeH70K81LWFmnyx6IuzBwD5MyqGY7kfl4vevWIRsutVddJ8ovl3rUWr4AAYsNmQ/czb1KH4IENX7q/20hc204jYmdJuG8WC0XvRJEV2gzvhLyQtie/w6rUlc2GyzLPhRevZiAX0k6fdlJDTlTmCsCn4ySWG8/u3jD+3ydJgbxMu6VaIhdyO2zaKECfzidZOKmxRIblVpVWBEGLf8lYCQDUwhrky5ClIz9/fVoJK5l+fiWrXkXfrPqxOu35kPMV198r/uJ2aCwjO7vecfQwS6Z3l6pN8yPM1xUGZdLfGFkogOutUe13yTZ08bkA4X7c3W1OYYB0Ih41uoO7b2A==",
        "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=1xHAnZw+g4xZKOjUvnB1M5Ylqei4/YiFpjqsfetr8WA=;\n b=jtO3NvATw0dP4Va1S41pslrpuZwZyXbcoQA9SnhvQE14ju+26H/wpBQBeyHpPyVQYi+mikvfKI5HZxy0N9HlvaXQPJN1qYcP56Jp1QD03+svGfgUBxthi6SqPhLEML6KDjWzEm3wQJHAFxRQ9ZqhKW7R2B6GdDj+obgk5kCDdj8Ile8PO8f/cuhyyLlD7sKAC3Dh+EGo0+4zBnw0OMyWhDwdZRZZQ2pdBEtpVV74Cs8+JdDfcm2j9xMF0c0Bx/bClhR1cgItgT+s94jQpCMODRDLDx0Ru81o0krPEU6ZuddRkcTdTZHeS8ZuDQscKzD5LlJoIH3pSCNvlKQmrUpVRA==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass\n header.d=nxp.com; arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=1xHAnZw+g4xZKOjUvnB1M5Ylqei4/YiFpjqsfetr8WA=;\n b=rJ3kkYw9hCmSLa+4ypsKabEAaE3xAV2lSM590pndgzAoTKiRxHRAJmXKk368oXXkDvNvtFmjsmeJv8KSJG9Xf9Ln2zbtSLQ1MkeS7SXYm3VFgNpKtMeO1JtRUKmZ0DSwvKIHAt984zH6bVFJue7Hk3/Vi57UUFtLR6qh6DQNRx4=",
        "Authentication-Results": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nxp.com;",
        "From": "Hemant Agrawal <hemant.agrawal@nxp.com>",
        "To": "gakhil@marvell.com",
        "Cc": "dev@dpdk.org",
        "Subject": "[PATCH v2 11/13] crypto/dpaa2_sec: add NAT-T support in IPsec offload",
        "Date": "Wed, 20 Sep 2023 19:04:01 +0530",
        "Message-Id": "<20230920133403.6420-12-hemant.agrawal@nxp.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20230920133403.6420-1-hemant.agrawal@nxp.com>",
        "References": "<20230823070855.27532-1-hemant.agrawal@nxp.com>\n <20230920133403.6420-1-hemant.agrawal@nxp.com>",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "SI2PR01CA0015.apcprd01.prod.exchangelabs.com\n (2603:1096:4:191::15) To PAXPR04MB9328.eurprd04.prod.outlook.com\n (2603:10a6:102:2b6::15)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "PAXPR04MB9328:EE_|AS8PR04MB7606:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "d3687fca-e6da-4b9b-a4a2-08dbb9de546b",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n a4lSnrupj96obCw2wC65UjZO/RZBb9pHjvduYw8OUKmDW4gCwkpkREEjFiqmKt2p8YktjxhIVykyu4D2uXIgbnOWvtKcKnaJ2kMJI3+MhpSFNGCRxtHHpnuBfw+P4m0iTmjFvAXcjrAns/Q9ElDDNnKJw1Sz+xwJie4FdNL1P5LKY5U6ARrWUQ98MR1iAxF5/88Q8zw424xsSnXa2aVMUPDUQfJmsK63eZpTAoTniNQXfxgU4yMJLbcTLOjR1cQCQJ/uNXwaFlGKw6gGtum9sPXt8cvJ+2Rn+W3LIgn+1jUJtAX6i52p3PxFiaYaSMF+Vjvso0TXEJhS+dppqJOHFEu/AWnq+bR83FuQsBAknBG815vr1+lv/FXjcF+eJCOLhHrFpEyZTykmEiajKkBAAcO6kAHgIpsFqR4IiS5ln1pjpPgQKn+yhaeAFuzXoaosNG2sjGz8PFsPTWwhHOOrnFmCp6vXyn29xSpvEbiMYCRsQQmF0oz9oHvDgfL/640+nEgnnprQriUgVAGet2jdtCB+RpYf3H7jk5YX/5KKy1d5PFCYzwFIkA22QgGVRaOa5Ps7ePNzn1dWzYmByZZ3xScvlFJ9CXOiZysDABJHJ4f2VHqM41UNEuHNcjW2bZHX",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:PAXPR04MB9328.eurprd04.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230031)(396003)(366004)(136003)(376002)(346002)(39860400002)(451199024)(186009)(1800799009)(6506007)(52116002)(6666004)(6512007)(478600001)(26005)(6486002)(4326008)(2616005)(41300700001)(5660300002)(2906002)(66946007)(66476007)(66556008)(8676002)(83380400001)(8936002)(6916009)(44832011)(316002)(1076003)(86362001)(36756003)(38100700002)(38350700002);\n DIR:OUT; SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n re/d7UfKp+IZfibPqi9W876TeIbsjpOFVfj1Fjo28ses+LzJsFaH91lG3Sovfziu+GTkqCHbbkmCU178xy2YqByzVy2HogY4Nup9/0MmtCD125XfhyeD2ExdRNNGW80XiPH9JJ7ftbg9/7LaUvP728RKGjhCdS4zm3MVeIjoEidPkLqRYWIBauYvuWJ1milOFhVqPPvtM3+/d/t4WRQvhpa4LSlbXqrNf6aG+ZJlD7H9I0yUsJIebH21Fet7+PvBevydOCASOpwfTY43gZr/Rt1q4zSmQ5kbNA9ZOUga9gcV6KOlyHgTGVBQnA6x6vcoJpuR72B8ZmpVVhuWg5WghhkTWjN1z0XaZbY+/JLdG3uRWQYxfm1cUhSYu901JyaEZ5j+OyX+CBe8eJQZeXr5+Y5Sz1vqEYtWb6yt+VJsdRhrf7D+/4JDBaDDeZFEomv3NgsllIL7ACy9y+D2q/fJh89rOJ5O0UHzH2XiAJbqFExeFHr/1EMuGlM5/1SacFcwXCDuQczacAohEiaZtzTMcPsbSSZWngTQoTPO9MC/U5bKcU6CqzEtgRwalMNZI6MVbRhwhANGCHPtx29dodS2F3BKCOHA2FYBTM5PFyKYUJGd0f0BygUWhoCfD7Z0REol8tiYNMHHugfK1SIlv44j09utNehSHB+Y0HKAvu1nggQsRB15EKxtPNVD8RSFU/Sje336AfUkZUiaDmH1lRLyr38YxSt8Qj1WIdhVdZ+VZ5cIPjb0ZBxIv2TYK79RRBfrHkVicaoI/oFhE4LGAhWiVlmhuep6QCCTc/3Oyz3NyJ/z1PmY6UjIBDISzPpLgfcxSBtdP4LZ2YwF6YhnIOQrv1MfQkHwoS9SxZm8Zn5zio2k41EV8NiOHNDm75665jVTRX3Qnny3AyK3l3IGmQIbOkCXPlQLYquO4DxC2cwmg9OZd0TE1nJEFi3CdRwwH9BrxiHSmyoUSQgVaLS+txdvKF83zW2viPAqwhEqL1cvbvMZ5KMQtr4Fvyb450558SdxKwnxg1QTK83bJe9Gj7k9+5OlofU9xKQm8FPIWT2MMdT5EcEX4yeqTxlBGJo2soPK4Ru8erjHIg6rXUdeKzH802+Yp77ZD+lGM00p1hRwhkir+J3IYvDQSw65vely9SLMU//U+QGBLtAON1DkubhTtosOA69bUY/tXZi/Hsaeov05wfR4FV5x3lLQNNC9xHs3Rbl7w9eDu6869RdRSLC/6OBpszCtcKX67tN3C3dwRjoKcBKW3Uo7yPERNut5EZlPRVOmfXPAGr/rJAy1NwVOr/gzAozqWJjnh1tY2an+TnCePCoKSNXjsZ4hHTvvtgDQt4t0VNiLxZkJc9bPCmawI/U63naeiSa4xc2NGAUt6Gm5924r7cDzzO3SR1X71DpKC6xadhd1HbGqh5akOCMqtqZsayCTvdmwQ6//gDhEwC3+DvUD1LOFhcsTielvop0+h6rIVQ9U/i1OQX7sphY3IHzJ8XOIF3yx9C5dmDzzTbYkdWmG8C+V9AdK4D5LT3sMbPiU5XJBB2tHv0KQe2wagJZ2j458vGs5gUDYDlyZCbjxn2vuDALUc3gDt/BJ/Bjou1vnRDRxV3WeZNrfHZDclA==",
        "X-OriginatorOrg": "nxp.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n d3687fca-e6da-4b9b-a4a2-08dbb9de546b",
        "X-MS-Exchange-CrossTenant-AuthSource": "PAXPR04MB9328.eurprd04.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "20 Sep 2023 13:34:35.4882 (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "686ea1d3-bc2b-4c6f-a92c-d99c5c301635",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n GMoMndevApcU+r/dDn/w5GQlFSvzof1lu9RIxj3xIa8KIKMzTqymQm9Orp21yOBEVx37r8C5BT5ZcTuZqLJCMg==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AS8PR04MB7606",
        "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": "This patch adds supports for UDP encapsulation in NAT-T for\nIPSEC security protocol offload case.\n\nSigned-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>\n---\n drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 101 ++++++++++++++------\n drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h   |   3 +\n 2 files changed, 75 insertions(+), 29 deletions(-)",
    "diff": "diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c\nindex 85830347c6..809c357423 100644\n--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c\n+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c\n@@ -10,6 +10,7 @@\n #include <unistd.h>\n \n #include <rte_ip.h>\n+#include <rte_udp.h>\n #include <rte_mbuf.h>\n #include <rte_cryptodev.h>\n #include <rte_malloc.h>\n@@ -3162,9 +3163,9 @@ dpaa2_sec_set_ipsec_session(struct rte_cryptodev *dev,\n \n \tsession->ctxt_type = DPAA2_SEC_IPSEC;\n \tif (ipsec_xform->direction == RTE_SECURITY_IPSEC_SA_DIR_EGRESS) {\n-\t\tuint8_t *hdr = NULL;\n-\t\tstruct ip ip4_hdr;\n-\t\tstruct rte_ipv6_hdr ip6_hdr;\n+\t\tuint8_t hdr[48] = {};\n+\t\tstruct rte_ipv4_hdr *ip4_hdr;\n+\t\tstruct rte_ipv6_hdr *ip6_hdr;\n \t\tstruct ipsec_encap_pdb encap_pdb;\n \n \t\tflc->dhr = SEC_FLC_DHR_OUTBOUND;\n@@ -3187,38 +3188,77 @@ dpaa2_sec_set_ipsec_session(struct rte_cryptodev *dev,\n \n \t\tencap_pdb.options = (IPVERSION << PDBNH_ESP_ENCAP_SHIFT) |\n \t\t\tPDBOPTS_ESP_OIHI_PDB_INL |\n-\t\t\tPDBOPTS_ESP_IVSRC |\n \t\t\tPDBHMO_ESP_SNR;\n-\t\tif (ipsec_xform->options.dec_ttl)\n-\t\t\tencap_pdb.options |= PDBHMO_ESP_ENCAP_DTTL;\n+\n+\t\tif (ipsec_xform->options.iv_gen_disable == 0)\n+\t\t\tencap_pdb.options |= PDBOPTS_ESP_IVSRC;\n \t\tif (ipsec_xform->options.esn)\n \t\t\tencap_pdb.options |= PDBOPTS_ESP_ESN;\n \t\tif (ipsec_xform->options.copy_dscp)\n \t\t\tencap_pdb.options |= PDBOPTS_ESP_DIFFSERV;\n+\t\tif (ipsec_xform->options.ecn)\n+\t\t\tencap_pdb.options |= PDBOPTS_ESP_TECN;\n \t\tencap_pdb.spi = ipsec_xform->spi;\n \t\tsession->dir = DIR_ENC;\n \t\tif (ipsec_xform->tunnel.type ==\n \t\t\t\tRTE_SECURITY_IPSEC_TUNNEL_IPV4) {\n \t\t\tif (ipsec_xform->options.copy_df)\n \t\t\t\tencap_pdb.options |= PDBHMO_ESP_DFBIT;\n-\t\t\tencap_pdb.ip_hdr_len = sizeof(struct ip);\n-\t\t\tip4_hdr.ip_v = IPVERSION;\n-\t\t\tip4_hdr.ip_hl = 5;\n-\t\t\tip4_hdr.ip_len = rte_cpu_to_be_16(sizeof(ip4_hdr));\n-\t\t\tip4_hdr.ip_tos = ipsec_xform->tunnel.ipv4.dscp;\n-\t\t\tip4_hdr.ip_id = 0;\n-\t\t\tip4_hdr.ip_off = 0;\n-\t\t\tip4_hdr.ip_ttl = ipsec_xform->tunnel.ipv4.ttl;\n-\t\t\tip4_hdr.ip_p = IPPROTO_ESP;\n-\t\t\tip4_hdr.ip_sum = 0;\n-\t\t\tip4_hdr.ip_src = ipsec_xform->tunnel.ipv4.src_ip;\n-\t\t\tip4_hdr.ip_dst = ipsec_xform->tunnel.ipv4.dst_ip;\n-\t\t\tip4_hdr.ip_sum = calc_chksum((uint16_t *)(void *)\n-\t\t\t\t\t&ip4_hdr, sizeof(struct ip));\n-\t\t\thdr = (uint8_t *)&ip4_hdr;\n+\t\t\tip4_hdr = (struct rte_ipv4_hdr *)hdr;\n+\n+\t\t\tencap_pdb.ip_hdr_len = sizeof(struct rte_ipv4_hdr);\n+\t\t\tip4_hdr->version_ihl = RTE_IPV4_VHL_DEF;\n+\t\t\tip4_hdr->time_to_live = ipsec_xform->tunnel.ipv4.ttl;\n+\t\t\tip4_hdr->type_of_service =\n+\t\t\t\tipsec_xform->tunnel.ipv4.dscp;\n+\t\t\tip4_hdr->hdr_checksum = 0;\n+\t\t\tip4_hdr->packet_id = 0;\n+\t\t\tip4_hdr->fragment_offset = 0;\n+\t\t\tmemcpy(&ip4_hdr->src_addr,\n+\t\t\t\t&ipsec_xform->tunnel.ipv4.src_ip,\n+\t\t\t\tsizeof(struct in_addr));\n+\t\t\tmemcpy(&ip4_hdr->dst_addr,\n+\t\t\t\t&ipsec_xform->tunnel.ipv4.dst_ip,\n+\t\t\t\tsizeof(struct in_addr));\n+\t\t\tif (ipsec_xform->options.udp_encap) {\n+\t\t\t\tuint16_t sport, dport;\n+\t\t\t\tstruct rte_udp_hdr *uh =\n+\t\t\t\t\t(struct rte_udp_hdr *) (hdr +\n+\t\t\t\t\t\tsizeof(struct rte_ipv4_hdr));\n+\n+\t\t\t\tsport = ipsec_xform->udp.sport ?\n+\t\t\t\t\tipsec_xform->udp.sport : 4500;\n+\t\t\t\tdport = ipsec_xform->udp.dport ?\n+\t\t\t\t\tipsec_xform->udp.dport : 4500;\n+\t\t\t\tuh->src_port = rte_cpu_to_be_16(sport);\n+\t\t\t\tuh->dst_port = rte_cpu_to_be_16(dport);\n+\t\t\t\tuh->dgram_len = 0;\n+\t\t\t\tuh->dgram_cksum = 0;\n+\n+\t\t\t\tip4_hdr->next_proto_id = IPPROTO_UDP;\n+\t\t\t\tip4_hdr->total_length =\n+\t\t\t\t\trte_cpu_to_be_16(\n+\t\t\t\t\t\tsizeof(struct rte_ipv4_hdr) +\n+\t\t\t\t\t\tsizeof(struct rte_udp_hdr));\n+\t\t\t\tencap_pdb.ip_hdr_len +=\n+\t\t\t\t\tsizeof(struct rte_udp_hdr);\n+\t\t\t\tencap_pdb.options |=\n+\t\t\t\t\tPDBOPTS_ESP_NAT | PDBOPTS_ESP_NUC;\n+\t\t\t} else {\n+\t\t\t\tip4_hdr->total_length =\n+\t\t\t\t\trte_cpu_to_be_16(\n+\t\t\t\t\t\tsizeof(struct rte_ipv4_hdr));\n+\t\t\t\tip4_hdr->next_proto_id = IPPROTO_ESP;\n+\t\t\t}\n+\n+\t\t\tip4_hdr->hdr_checksum = calc_chksum((uint16_t *)\n+\t\t\t\t(void *)ip4_hdr, sizeof(struct rte_ipv4_hdr));\n+\n \t\t} else if (ipsec_xform->tunnel.type ==\n \t\t\t\tRTE_SECURITY_IPSEC_TUNNEL_IPV6) {\n-\t\t\tip6_hdr.vtc_flow = rte_cpu_to_be_32(\n+\t\t\tip6_hdr = (struct rte_ipv6_hdr *)hdr;\n+\n+\t\t\tip6_hdr->vtc_flow = rte_cpu_to_be_32(\n \t\t\t\tDPAA2_IPv6_DEFAULT_VTC_FLOW |\n \t\t\t\t((ipsec_xform->tunnel.ipv6.dscp <<\n \t\t\t\t\tRTE_IPV6_HDR_TC_SHIFT) &\n@@ -3227,18 +3267,17 @@ dpaa2_sec_set_ipsec_session(struct rte_cryptodev *dev,\n \t\t\t\t\tRTE_IPV6_HDR_FL_SHIFT) &\n \t\t\t\t\tRTE_IPV6_HDR_FL_MASK));\n \t\t\t/* Payload length will be updated by HW */\n-\t\t\tip6_hdr.payload_len = 0;\n-\t\t\tip6_hdr.hop_limits =\n-\t\t\t\t\tipsec_xform->tunnel.ipv6.hlimit;\n-\t\t\tip6_hdr.proto = (ipsec_xform->proto ==\n+\t\t\tip6_hdr->payload_len = 0;\n+\t\t\tip6_hdr->hop_limits = ipsec_xform->tunnel.ipv6.hlimit ?\n+\t\t\t\t\tipsec_xform->tunnel.ipv6.hlimit : 0x40;\n+\t\t\tip6_hdr->proto = (ipsec_xform->proto ==\n \t\t\t\t\tRTE_SECURITY_IPSEC_SA_PROTO_ESP) ?\n \t\t\t\t\tIPPROTO_ESP : IPPROTO_AH;\n-\t\t\tmemcpy(&ip6_hdr.src_addr,\n+\t\t\tmemcpy(&ip6_hdr->src_addr,\n \t\t\t\t&ipsec_xform->tunnel.ipv6.src_addr, 16);\n-\t\t\tmemcpy(&ip6_hdr.dst_addr,\n+\t\t\tmemcpy(&ip6_hdr->dst_addr,\n \t\t\t\t&ipsec_xform->tunnel.ipv6.dst_addr, 16);\n \t\t\tencap_pdb.ip_hdr_len = sizeof(struct rte_ipv6_hdr);\n-\t\t\thdr = (uint8_t *)&ip6_hdr;\n \t\t}\n \n \t\tbufsize = cnstr_shdsc_ipsec_new_encap(priv->flc_desc[0].desc,\n@@ -3277,6 +3316,10 @@ dpaa2_sec_set_ipsec_session(struct rte_cryptodev *dev,\n \t\t\tdecap_pdb.options |= PDBOPTS_ESP_ESN;\n \t\tif (ipsec_xform->options.copy_dscp)\n \t\t\tdecap_pdb.options |= PDBOPTS_ESP_DIFFSERV;\n+\t\tif (ipsec_xform->options.ecn)\n+\t\t\tdecap_pdb.options |= PDBOPTS_ESP_TECN;\n+\t\tif (ipsec_xform->options.dec_ttl)\n+\t\t\tdecap_pdb.options |= PDBHMO_ESP_DECAP_DTTL;\n \n \t\tif (ipsec_xform->replay_win_sz) {\n \t\t\tuint32_t win_sz;\ndiff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h b/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h\nindex d3e2df72b0..cf6542a222 100644\n--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h\n+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h\n@@ -930,6 +930,7 @@ static const struct rte_security_capability dpaa2_sec_security_cap[] = {\n \t\t\t.mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,\n \t\t\t.direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,\n \t\t\t.options = {\n+\t\t\t\t.udp_encap = 1,\n \t\t\t\t.copy_df = 1,\n \t\t\t\t.copy_dscp = 1,\n \t\t\t\t.esn = 1,\n@@ -946,6 +947,8 @@ static const struct rte_security_capability dpaa2_sec_security_cap[] = {\n \t\t\t.mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,\n \t\t\t.direction = RTE_SECURITY_IPSEC_SA_DIR_INGRESS,\n \t\t\t.options = {\n+\t\t\t\t.iv_gen_disable = 1,\n+\t\t\t\t.udp_encap = 1,\n \t\t\t\t.copy_df = 1,\n \t\t\t\t.copy_dscp = 1,\n \t\t\t\t.esn = 1,\n",
    "prefixes": [
        "v2",
        "11/13"
    ]
}