get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 130673,
    "url": "http://patchwork.dpdk.org/api/patches/130673/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20230823070855.27532-12-hemant.agrawal@nxp.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20230823070855.27532-12-hemant.agrawal@nxp.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230823070855.27532-12-hemant.agrawal@nxp.com",
    "date": "2023-08-23T07:08:54",
    "name": "[11/12] crypto/dpaa2_sec: add NAT-T support in IPsec offload",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "cfb51b83efcc88d5d01124f2b0d65a9c4cfd9bb1",
    "submitter": {
        "id": 477,
        "url": "http://patchwork.dpdk.org/api/people/477/?format=api",
        "name": "Hemant Agrawal",
        "email": "hemant.agrawal@nxp.com"
    },
    "delegate": {
        "id": 6690,
        "url": "http://patchwork.dpdk.org/api/users/6690/?format=api",
        "username": "akhil",
        "first_name": "akhil",
        "last_name": "goyal",
        "email": "gakhil@marvell.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20230823070855.27532-12-hemant.agrawal@nxp.com/mbox/",
    "series": [
        {
            "id": 29321,
            "url": "http://patchwork.dpdk.org/api/series/29321/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=29321",
            "date": "2023-08-23T07:08:43",
            "name": "crypto/dpaax_sec: misc enhancements",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/29321/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/130673/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/130673/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 2444D430DE;\n\tWed, 23 Aug 2023 09:10:34 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id A76E04328C;\n\tWed, 23 Aug 2023 09:09:30 +0200 (CEST)",
            "from EUR04-DB3-obe.outbound.protection.outlook.com\n (mail-db3eur04on2061.outbound.protection.outlook.com [40.107.6.61])\n by mails.dpdk.org (Postfix) with ESMTP id DE0494325E\n for <dev@dpdk.org>; Wed, 23 Aug 2023 09:09:26 +0200 (CEST)",
            "from PAXPR04MB9328.eurprd04.prod.outlook.com (2603:10a6:102:2b6::15)\n by PA4PR04MB9711.eurprd04.prod.outlook.com (2603:10a6:102:267::17)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.26; Wed, 23 Aug\n 2023 07:09:25 +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.6699.020; Wed, 23 Aug 2023\n 07:09:25 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=Rg2H8umIOQlnzrmjKQ0T1RTENgj0NG2rFs8LMhjXXjSt3tYUShx3AM1hTV9E1VMLpWWoDaaV9uzUyyAghxSdv9rzoIxqlr5xH+WTlIfk+JhE0EIv+m8NqSxl3YEdquN2smnJAmPSKi9isxu7/wBK6w864NzK5kgiL6n56XjBfFQYJA7YDC9wF0r+EUbvy5ZVLZ/R591/c6Od6eyVfqVrc7O8BPTcTJxaWQuOA4/DnRVcabsJ3zCJ36P90nXNqXX18yNe46yfzAt14A9/DbqsqAAl161VlGEXKkY6vWUqYjG3pZUEoshOPEoz8YRuewXxdlTqGEDvmQZeApfKU/K21Q==",
        "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=XA3iSylW7m8SBjJ/5eGQvsU5l6F5v5P8qm7YhOh3ZyE=;\n b=WbP+CGwb7+YWZbY5I0OfMtmrYnnUPKPDSAqMVBM3I7sePev5bYbmt9N1xq8D+FZIn1i7mVXuzMb/v22V6BXqZRA9WfIgZys/DsgQOTaoM0xuaRafBbPvUuBPEcX60KPgsb061THQWg75VtfrZGPkFXAgJdZ5uSL1oDz11OfipBuIlQdTCMW3MuADn+3SSJ9/fhhvo9p9VxVCbJLNKeAZkJffl7XjyP4/0ilzF7P9kWtcrhSe0LhKX/8MRMXGrVn3VYIu8cI/gqj3nc8jlFivpgYs2EXFpeD7bdn1AUj81grEgNewBD8INnMDIOeOm43etAV9sbtEmQgXA/Te6AGviw==",
        "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=XA3iSylW7m8SBjJ/5eGQvsU5l6F5v5P8qm7YhOh3ZyE=;\n b=ZSmUXtw1vMVkzFbDPZ9NKtAJeh4he0k1b4BN8YpnSsNVigegLNY1y97KP76fGqUBTSIlns9IWNgx0kfFkICapNlmwOEC6qgiiwsdu8qdvrb24rjGeksdvm8NVu854G4xx8BdC1qKJOMJiYnrwELdwn67zCIlcfcUKHIRJtteUSo=",
        "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": "dev@dpdk.org",
        "Cc": "gakhil@marvell.com",
        "Subject": "[PATCH 11/12] crypto/dpaa2_sec: add NAT-T support in IPsec offload",
        "Date": "Wed, 23 Aug 2023 12:38:54 +0530",
        "Message-Id": "<20230823070855.27532-12-hemant.agrawal@nxp.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20230823070855.27532-1-hemant.agrawal@nxp.com>",
        "References": "<20230823070855.27532-1-hemant.agrawal@nxp.com>",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "SG2PR02CA0072.apcprd02.prod.outlook.com\n (2603:1096:4:54::36) 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_|PA4PR04MB9711:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "d7dce668-088b-421b-bfba-08dba3a7e263",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n lxO/Wsh/HPbr89pScMlC8/5iZT33uBrauyxooWsoW7bOht5Ae8ePGxVClWoqdhWwgBZSzpqgAJJ0JbwIiCCJMZ5qDRtNzmgSDRHKJ2qeBtAEl+R4zXpxE9of/IQ5UbCTI5It0pBxIiVTXKJduPU6iRkUkFTK2XKAVCcK3PVymJul1MCrAIJIO6L/1GLLAf1Y6OBhBWd6Dhj/m8R63wp1hhqzySCZkZfPXBKlkOMvQf3RuibeEvV9zxIs9MPgsfeuL4PUMBtxMx54A3RIPuq33ctB2SWdL3gRoyBZ4WQ8Zygmfz4FtqZcdJzwaNDfJp90cyeohAnubr6wKas4gofnGHW+KoQ4QZcDHZlg/Senefv40GlRv1a2oNYhWj9aq4p6hxZ4kkD47anxJtKZTGkaEPXwMf9TUGltSXVKmeuxqg+xjgsNmOAq4Kv7RvUEJ9x4s4WUw+TSHHGDZLGFByX3hH0ansdVcNkd+e18ulbKAu69kevEnoRe+Y/x+/tKpsFjt+PLF7HgBuwrZ+piRDYlvWxgg5iVndapiQg+e6x+zobPiAqPBDvvWpCrxnhNU9EgQnNC2dywWOiQp2/dZZKxZyaIviMSTXMjJQdED64QW1heYbKFYQ0/fYjRRWr2q8FS",
        "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)(39860400002)(366004)(346002)(136003)(376002)(396003)(1800799009)(451199024)(186009)(83380400001)(2906002)(52116002)(66946007)(6486002)(6506007)(478600001)(2616005)(26005)(5660300002)(44832011)(1076003)(4326008)(8936002)(8676002)(38100700002)(38350700002)(6666004)(66556008)(316002)(6916009)(66476007)(41300700001)(6512007)(86362001)(36756003);\n DIR:OUT; SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n c1uYpLiz1z+dUZg/m9n8hhs/u0Jmlwv8wZ72APyvdtu0agqzpOgxEIzgOrfCQgFV3/vOncYL5ffzwdZuXgoRM5yjlGNmkzTWOm9kbOevWHJr12kyWOS+ukofEO2Kc1/vpY4KUsleH/bPJ03b2tZ9AAW42IvY4abA9wLWEB+vjg2XH2KgJcRrBLharLqMai0KogTeNlJW06D/CTNIdwu08MNgTb7bAfU5Xgn5+naAdE8boZIcgLqloUTLq2pzww6XZKmMDhR6MmfHLPgD73JPmBVRAmsktDJkhXjfHuvYfSMjqovn9asUeMJme+sKhUnFkVzfFXc6+Fn8S7vB9a6MLrkifoJBlOfnvEvm4t4YJSCgYoHxNfJG59Ht0GfCpK2IsU4qQNhLA8zuVeKxSLhGR6FDM55LCzup9os+ENm/mbRuGXWgX954Z7sohFINPVs/+P5yA1Svx1SSHkItt/p98y/19lV8etJcIgd80pBHCWkrRegJ4LlqsU/86OfI1L0oIHMuea5oPuIidivBi03LuTzMNkrrTwAhZYyVb//1qIdmZeZQHrfBCy2QYUftqQH6RqNnpUMzmmM2j7WHr+3Kw3kcN9V9cqtzYaCxNnthyJxm1YhQt/r7bcf+Sibr+0t5C265ZfhGVUe3fZkBWn6t0pau8Axzil806sB1vudEliwCoRzHxAyiKCmIwYA94k+YsJ0CKmDiJRnEpo6ipFfMO/TPvXAagA3ixtABwQLYB7P5A+fxum9VnT+Bj1QHHzfel3iRBL56Kj6EAPa9dUixEBkkBnRLjTs9asmimh6y3ico/mokYMtXxMTLQCn4hQU+dNp0DRfr/9vFRq8hk7AbgsHhmgGX0EBpfiKUDDmwTODwQF8QvNuc5n5vA/Gn1lznAgAyl8NvJ3VyVmWvex0QCnNLSSfPorM7HW9hOzEhV8cwOOdRG3cOXea33kx9ISHa0QQdXHY2jTwrO0YuB8Z1l1H0OHeDKra72jyQnbzZcaUJdeO9TIIld5n/kL3NkrEABzsWiXiFpDUC+sK222dI23BEiyjHcDvHT3GK3Rau3SRPbUIA7nGGBXs+a22BzMH5a5CVOLbNrDq9rgqk+bj92OGOkJqXrK7bd/qrWnH+AS3Sui+xfXTycqxh5dZKCFBnqMzvesLcQFrEScuq+ZYbde+lGDmV5mYtfIhMHwCa8zaNKqkmg8oriRzBwILZNSijz6dDoBYDMELKdcTP9GXaw5+NAfnsUJB7GlUIdyBDPxKBH/aGrvbh6pVipUxO+z2BTa8WC7w8UgjdWVt3D6JzI5CmaWCaBMAMfmAoP+Exq2iKOfZj7qTZ2hgLSQMbmqjjt8ohtfSUaDGoqbkJ8iAGGo5CxCS9XP0ZvFqRgqgS9sK+OAgw/OjihLf//h3LevCDDFAQ6B25CsXxT7Fi3K5ugW/Ixs2mbRFVvHwJE2y4kl9l2xd7/2q9H62NH8Z32gmBXSLNONiMStZc9IWnScZzzC/KCPnYNVmFoxT/yvcD+n2ZwtDWhj7Wo9VB0D7yejNWP/NqkQ3vOAjP+sIpTJjvSKSXlQmZMkS+Lzp5KZbHI6cQNla9vaOSuQxB+naNnI6ghmtpUv2QTZuHH7yqsAx/LQ==",
        "X-OriginatorOrg": "nxp.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n d7dce668-088b-421b-bfba-08dba3a7e263",
        "X-MS-Exchange-CrossTenant-AuthSource": "PAXPR04MB9328.eurprd04.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "23 Aug 2023 07:09:25.7957 (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 PGiQ2rZ3oIoXhThIws8KlAoezXp/eVrK/MgvS6ekV6y+C7FbHdPjVCzvpHjGQ1GsDbaXE2humAPKyyKzke3ZRQ==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "PA4PR04MB9711",
        "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 7fd15de1a5..675ee49489 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 *) (ip4_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": [
        "11/12"
    ]
}