get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 103404,
    "url": "http://patches.dpdk.org/api/patches/103404/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20211102040556.7840-6-venkatkumar.duvvuru@broadcom.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<20211102040556.7840-6-venkatkumar.duvvuru@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20211102040556.7840-6-venkatkumar.duvvuru@broadcom.com",
    "date": "2021-11-02T04:05:41",
    "name": "[v3,05/20] net/bnxt: add capability option for socket redirect",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "a875eaaf87e0d7f58a11df7bb4ed79482ab60435",
    "submitter": {
        "id": 1635,
        "url": "http://patches.dpdk.org/api/people/1635/?format=api",
        "name": "Venkat Duvvuru",
        "email": "venkatkumar.duvvuru@broadcom.com"
    },
    "delegate": {
        "id": 1766,
        "url": "http://patches.dpdk.org/api/users/1766/?format=api",
        "username": "ajitkhaparde",
        "first_name": "Ajit",
        "last_name": "Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20211102040556.7840-6-venkatkumar.duvvuru@broadcom.com/mbox/",
    "series": [
        {
            "id": 20191,
            "url": "http://patches.dpdk.org/api/series/20191/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=20191",
            "date": "2021-11-02T04:05:36",
            "name": "fixes and enhancements to Truflow",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/20191/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/103404/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/103404/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 9EDABA0C4D;\n\tTue,  2 Nov 2021 05:06:42 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 5598C4112E;\n\tTue,  2 Nov 2021 05:06:14 +0100 (CET)",
            "from relay.smtp-ext.broadcom.com (lpdvacalvio01.broadcom.com\n [192.19.166.228])\n by mails.dpdk.org (Postfix) with ESMTP id AB7844112E\n for <dev@dpdk.org>; Tue,  2 Nov 2021 05:06:12 +0100 (CET)",
            "from S60.dhcp.broadcom.net (unknown [10.123.66.170])\n (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n (No client certificate requested)\n by relay.smtp-ext.broadcom.com (Postfix) with ESMTPS id ED332EA;\n Mon,  1 Nov 2021 21:06:10 -0700 (PDT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com ED332EA",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com;\n s=dkimrelay; t=1635825972;\n bh=1wMFserZI1L3yJndGTUw3OVZ5vAw2kAI3giio00oVYM=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=K6HTSoAO3QWOSMKuGGJ2tNYPlGhI/siWHVp1mFBNXDaELcvtxsrRcqXLUTDLLjPdj\n 5F2k4sup273B5Lze3gMGY34Bu0DM/PFyG5fNPPH5XcVhcaoRD853V/gBJ2IQwnxV48\n cijw8KW2CM2Y88V5hJ3z7LiEA7zvRNSXbMWOw44U=",
        "From": "Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>",
        "To": "dev@dpdk.org",
        "Cc": "Kishore Padmanabha <kishore.padmanabha@broadcom.com>,\n Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>",
        "Date": "Tue,  2 Nov 2021 09:35:41 +0530",
        "Message-Id": "<20211102040556.7840-6-venkatkumar.duvvuru@broadcom.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20211102040556.7840-1-venkatkumar.duvvuru@broadcom.com>",
        "References": "<20211001055909.27276-1-venkatkumar.duvvuru@broadcom.com>\n <20211102040556.7840-1-venkatkumar.duvvuru@broadcom.com>",
        "Subject": "[dpdk-dev] [PATCH v3 05/20] net/bnxt: add capability option for\n socket redirect",
        "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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Kishore Padmanabha <kishore.padmanabha@broadcom.com>\n\nAdded support for socket redirect feature capability so applications\ncan enable or disable this feature. This patch contains the template\nchanges.\n\nSigned-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>\nSigned-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>\nReviewed-by: Michael Baucom <michael.baucom@broadcom.com>\nReviewed-by: Randy Schacher <stuart.schacher@broadcom.com>\n---\n drivers/net/bnxt/bnxt.h                       |  13 --\n drivers/net/bnxt/bnxt_ethdev.c                | 203 ------------------\n drivers/net/bnxt/tf_ulp/bnxt_ulp.c            |  11 +-\n drivers/net/bnxt/tf_ulp/bnxt_ulp.h            |   6 +-\n drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c       |  10 +-\n .../generic_templates/ulp_template_db_enum.h  |   8 +-\n .../generic_templates/ulp_template_db_tbl.c   |   5 +-\n 7 files changed, 30 insertions(+), 226 deletions(-)",
    "diff": "diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h\nindex e3e38ffa19..c65e360446 100644\n--- a/drivers/net/bnxt/bnxt.h\n+++ b/drivers/net/bnxt/bnxt.h\n@@ -1054,19 +1054,6 @@ int32_t\n bnxt_ulp_create_vfr_default_rules(struct rte_eth_dev *vfr_ethdev);\n int32_t\n bnxt_ulp_delete_vfr_default_rules(struct bnxt_representor *vfr);\n-void bnxt_get_iface_mac(uint16_t port, enum bnxt_ulp_intf_type type,\n-\t\t\tuint8_t *mac, uint8_t *parent_mac);\n-uint16_t bnxt_get_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type);\n-uint16_t bnxt_get_parent_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type);\n-struct bnxt *bnxt_get_bp(uint16_t port);\n-uint16_t bnxt_get_svif(uint16_t port_id, bool func_svif,\n-\t\t       enum bnxt_ulp_intf_type type);\n-uint16_t bnxt_get_fw_func_id(uint16_t port, enum bnxt_ulp_intf_type type);\n-uint16_t bnxt_get_parif(uint16_t port, enum bnxt_ulp_intf_type type);\n-uint16_t bnxt_get_phy_port_id(uint16_t port);\n-uint16_t bnxt_get_vport(uint16_t port);\n-enum bnxt_ulp_intf_type\n-bnxt_get_interface_type(uint16_t port);\n int bnxt_rep_dev_start_op(struct rte_eth_dev *eth_dev);\n \n void bnxt_cancel_fc_thread(struct bnxt *bp);\ndiff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c\nindex f385723a9f..bf034db336 100644\n--- a/drivers/net/bnxt/bnxt_ethdev.c\n+++ b/drivers/net/bnxt/bnxt_ethdev.c\n@@ -5056,209 +5056,6 @@ static void bnxt_config_vf_req_fwd(struct bnxt *bp)\n \tBNXT_HWRM_CMD_TO_FORWARD(HWRM_OEM_CMD);\n }\n \n-struct bnxt *\n-bnxt_get_bp(uint16_t port)\n-{\n-\tstruct bnxt *bp;\n-\tstruct rte_eth_dev *dev;\n-\n-\tif (!rte_eth_dev_is_valid_port(port)) {\n-\t\tPMD_DRV_LOG(ERR, \"Invalid port %d\\n\", port);\n-\t\treturn NULL;\n-\t}\n-\n-\tdev = &rte_eth_devices[port];\n-\tif (!is_bnxt_supported(dev)) {\n-\t\tPMD_DRV_LOG(ERR, \"Device %d not supported\\n\", port);\n-\t\treturn NULL;\n-\t}\n-\n-\tbp = (struct bnxt *)dev->data->dev_private;\n-\tif (!BNXT_TRUFLOW_EN(bp)) {\n-\t\tPMD_DRV_LOG(ERR, \"TRUFLOW not enabled\\n\");\n-\t\treturn NULL;\n-\t}\n-\n-\treturn bp;\n-}\n-\n-uint16_t\n-bnxt_get_svif(uint16_t port_id, bool func_svif,\n-\t      enum bnxt_ulp_intf_type type)\n-{\n-\tstruct rte_eth_dev *eth_dev;\n-\tstruct bnxt *bp;\n-\n-\teth_dev = &rte_eth_devices[port_id];\n-\tif (BNXT_ETH_DEV_IS_REPRESENTOR(eth_dev)) {\n-\t\tstruct bnxt_representor *vfr = eth_dev->data->dev_private;\n-\t\tif (!vfr)\n-\t\t\treturn 0;\n-\n-\t\tif (type == BNXT_ULP_INTF_TYPE_VF_REP)\n-\t\t\treturn vfr->svif;\n-\n-\t\teth_dev = vfr->parent_dev;\n-\t}\n-\n-\tbp = eth_dev->data->dev_private;\n-\n-\treturn func_svif ? bp->func_svif : bp->port_svif;\n-}\n-\n-void\n-bnxt_get_iface_mac(uint16_t port, enum bnxt_ulp_intf_type type,\n-\t\t   uint8_t *mac, uint8_t *parent_mac)\n-{\n-\tstruct rte_eth_dev *eth_dev;\n-\tstruct bnxt *bp;\n-\n-\tif (type != BNXT_ULP_INTF_TYPE_TRUSTED_VF &&\n-\t    type != BNXT_ULP_INTF_TYPE_PF)\n-\t\treturn;\n-\n-\teth_dev = &rte_eth_devices[port];\n-\tbp = eth_dev->data->dev_private;\n-\tmemcpy(mac, bp->mac_addr, RTE_ETHER_ADDR_LEN);\n-\n-\tif (type == BNXT_ULP_INTF_TYPE_TRUSTED_VF)\n-\t\tmemcpy(parent_mac, bp->parent->mac_addr, RTE_ETHER_ADDR_LEN);\n-}\n-\n-uint16_t\n-bnxt_get_parent_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type)\n-{\n-\tstruct rte_eth_dev *eth_dev;\n-\tstruct bnxt *bp;\n-\n-\tif (type != BNXT_ULP_INTF_TYPE_TRUSTED_VF)\n-\t\treturn 0;\n-\n-\teth_dev = &rte_eth_devices[port];\n-\tbp = eth_dev->data->dev_private;\n-\n-\treturn bp->parent->vnic;\n-}\n-uint16_t\n-bnxt_get_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type)\n-{\n-\tstruct rte_eth_dev *eth_dev;\n-\tstruct bnxt_vnic_info *vnic;\n-\tstruct bnxt *bp;\n-\n-\teth_dev = &rte_eth_devices[port];\n-\tif (BNXT_ETH_DEV_IS_REPRESENTOR(eth_dev)) {\n-\t\tstruct bnxt_representor *vfr = eth_dev->data->dev_private;\n-\t\tif (!vfr)\n-\t\t\treturn 0;\n-\n-\t\tif (type == BNXT_ULP_INTF_TYPE_VF_REP)\n-\t\t\treturn vfr->dflt_vnic_id;\n-\n-\t\teth_dev = vfr->parent_dev;\n-\t}\n-\n-\tbp = eth_dev->data->dev_private;\n-\n-\tvnic = BNXT_GET_DEFAULT_VNIC(bp);\n-\n-\treturn vnic->fw_vnic_id;\n-}\n-\n-uint16_t\n-bnxt_get_fw_func_id(uint16_t port, enum bnxt_ulp_intf_type type)\n-{\n-\tstruct rte_eth_dev *eth_dev;\n-\tstruct bnxt *bp;\n-\n-\teth_dev = &rte_eth_devices[port];\n-\tif (BNXT_ETH_DEV_IS_REPRESENTOR(eth_dev)) {\n-\t\tstruct bnxt_representor *vfr = eth_dev->data->dev_private;\n-\t\tif (!vfr)\n-\t\t\treturn 0;\n-\n-\t\tif (type == BNXT_ULP_INTF_TYPE_VF_REP)\n-\t\t\treturn vfr->fw_fid;\n-\n-\t\teth_dev = vfr->parent_dev;\n-\t}\n-\n-\tbp = eth_dev->data->dev_private;\n-\n-\treturn bp->fw_fid;\n-}\n-\n-enum bnxt_ulp_intf_type\n-bnxt_get_interface_type(uint16_t port)\n-{\n-\tstruct rte_eth_dev *eth_dev;\n-\tstruct bnxt *bp;\n-\n-\teth_dev = &rte_eth_devices[port];\n-\tif (BNXT_ETH_DEV_IS_REPRESENTOR(eth_dev))\n-\t\treturn BNXT_ULP_INTF_TYPE_VF_REP;\n-\n-\tbp = eth_dev->data->dev_private;\n-\tif (BNXT_PF(bp))\n-\t\treturn BNXT_ULP_INTF_TYPE_PF;\n-\telse if (BNXT_VF_IS_TRUSTED(bp))\n-\t\treturn BNXT_ULP_INTF_TYPE_TRUSTED_VF;\n-\telse if (BNXT_VF(bp))\n-\t\treturn BNXT_ULP_INTF_TYPE_VF;\n-\n-\treturn BNXT_ULP_INTF_TYPE_INVALID;\n-}\n-\n-uint16_t\n-bnxt_get_phy_port_id(uint16_t port_id)\n-{\n-\tstruct bnxt_representor *vfr;\n-\tstruct rte_eth_dev *eth_dev;\n-\tstruct bnxt *bp;\n-\n-\teth_dev = &rte_eth_devices[port_id];\n-\tif (BNXT_ETH_DEV_IS_REPRESENTOR(eth_dev)) {\n-\t\tvfr = eth_dev->data->dev_private;\n-\t\tif (!vfr)\n-\t\t\treturn 0;\n-\n-\t\teth_dev = vfr->parent_dev;\n-\t}\n-\n-\tbp = eth_dev->data->dev_private;\n-\n-\treturn BNXT_PF(bp) ? bp->pf->port_id : bp->parent->port_id;\n-}\n-\n-uint16_t\n-bnxt_get_parif(uint16_t port_id, enum bnxt_ulp_intf_type type)\n-{\n-\tstruct rte_eth_dev *eth_dev;\n-\tstruct bnxt *bp;\n-\n-\teth_dev = &rte_eth_devices[port_id];\n-\tif (BNXT_ETH_DEV_IS_REPRESENTOR(eth_dev)) {\n-\t\tstruct bnxt_representor *vfr = eth_dev->data->dev_private;\n-\t\tif (!vfr)\n-\t\t\treturn 0;\n-\n-\t\tif (type == BNXT_ULP_INTF_TYPE_VF_REP)\n-\t\t\treturn vfr->fw_fid - 1;\n-\n-\t\teth_dev = vfr->parent_dev;\n-\t}\n-\n-\tbp = eth_dev->data->dev_private;\n-\n-\treturn BNXT_PF(bp) ? bp->fw_fid - 1 : bp->parent->fid - 1;\n-}\n-\n-uint16_t\n-bnxt_get_vport(uint16_t port_id)\n-{\n-\treturn (1 << bnxt_get_phy_port_id(port_id));\n-}\n-\n static void bnxt_alloc_error_recovery_info(struct bnxt *bp)\n {\n \tstruct bnxt_error_recovery_info *info = bp->recovery_info;\ndiff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c\nindex f1763e2519..2ac1a8625f 100644\n--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c\n+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c\n@@ -301,13 +301,14 @@ bnxt_ulp_tf_shared_session_resources_get(struct bnxt_ulp_context *ulp_ctx,\n }\n \n int32_t\n-bnxt_ulp_cntxt_app_caps_init(struct bnxt_ulp_context *ulp_ctx,\n+bnxt_ulp_cntxt_app_caps_init(struct bnxt *bp,\n \t\t\t     uint8_t app_id, uint32_t dev_id)\n {\n \tstruct bnxt_ulp_app_capabilities_info *info;\n \tuint32_t num = 0;\n \tuint16_t i;\n \tbool found = false;\n+\tstruct bnxt_ulp_context *ulp_ctx = bp->ulp_ctx;\n \n \tif (ULP_APP_DEV_UNSUPPORTED_ENABLED(ulp_ctx->cfg_data->ulp_flags)) {\n \t\tBNXT_TF_DBG(ERR, \"APP ID %d, Device ID: 0x%x not supported.\\n\",\n@@ -334,6 +335,12 @@ bnxt_ulp_cntxt_app_caps_init(struct bnxt_ulp_context *ulp_ctx,\n \t\tif (info[i].flags & BNXT_ULP_APP_CAP_UNICAST_ONLY)\n \t\t\tulp_ctx->cfg_data->ulp_flags |=\n \t\t\t\tBNXT_ULP_APP_UNICAST_ONLY;\n+\t\tif (info[i].flags & BNXT_ULP_APP_CAP_SOCKET_DIRECT) {\n+\t\t\t/* Enable socket direction only if MR is enabled in fw*/\n+\t\t\tif (BNXT_MULTIROOT_EN(bp))\n+\t\t\t\tulp_ctx->cfg_data->ulp_flags |=\n+\t\t\t\t\tBNXT_ULP_APP_SOCKET_DIRECT;\n+\t\t}\n \t}\n \tif (!found) {\n \t\tBNXT_TF_DBG(ERR, \"APP ID %d, Device ID: 0x%x not supported.\\n\",\n@@ -832,7 +839,7 @@ ulp_ctx_init(struct bnxt *bp,\n \t}\n \tBNXT_TF_DBG(DEBUG, \"Ulp initialized with app id %d\\n\", bp->app_id);\n \n-\trc = bnxt_ulp_cntxt_app_caps_init(bp->ulp_ctx, bp->app_id, devid);\n+\trc = bnxt_ulp_cntxt_app_caps_init(bp, bp->app_id, devid);\n \tif (rc) {\n \t\tBNXT_TF_DBG(ERR, \"Unable to set caps for app(%x)/dev(%x)\\n\",\n \t\t\t    bp->app_id, devid);\ndiff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp.h b/drivers/net/bnxt/tf_ulp/bnxt_ulp.h\nindex 006df9cbc5..68f1470c61 100644\n--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp.h\n+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp.h\n@@ -13,6 +13,7 @@\n #include \"rte_version.h\"\n #include \"rte_ethdev.h\"\n \n+#include \"bnxt.h\"\n #include \"ulp_template_db_enum.h\"\n #include \"ulp_tun.h\"\n #include \"bnxt_tf_common.h\"\n@@ -33,12 +34,15 @@\n #define BNXT_ULP_APP_DEV_UNSUPPORTED\t0x4\n #define BNXT_ULP_HIGH_AVAIL_ENABLED\t0x8\n #define BNXT_ULP_APP_UNICAST_ONLY\t0x10\n+#define BNXT_ULP_APP_SOCKET_DIRECT\t0x20\n+\n #define ULP_VF_REP_IS_ENABLED(flag)\t((flag) & BNXT_ULP_VF_REP_ENABLED)\n #define ULP_SHARED_SESSION_IS_ENABLED(flag) ((flag) &\\\n \t\t\t\t\t     BNXT_ULP_SHARED_SESSION_ENABLED)\n #define ULP_APP_DEV_UNSUPPORTED_ENABLED(flag)\t((flag) &\\\n \t\t\t\t\t\t BNXT_ULP_APP_DEV_UNSUPPORTED)\n #define ULP_HIGH_AVAIL_IS_ENABLED(flag)\t((flag) & BNXT_ULP_HIGH_AVAIL_ENABLED)\n+#define ULP_SOCKET_DIRECT_IS_ENABLED(flag) ((flag) & BNXT_ULP_APP_SOCKET_DIRECT)\n \n enum bnxt_ulp_flow_mem_type {\n \tBNXT_ULP_FLOW_MEM_TYPE_INT = 0,\n@@ -287,7 +291,7 @@ struct bnxt_ulp_app_capabilities_info *\n bnxt_ulp_app_cap_list_get(uint32_t *num_entries);\n \n int32_t\n-bnxt_ulp_cntxt_app_caps_init(struct bnxt_ulp_context *ulp_ctx,\n+bnxt_ulp_cntxt_app_caps_init(struct bnxt *bp,\n \t\t\t     uint8_t app_id, uint32_t dev_id);\n \n struct bnxt_ulp_resource_resv_info *\ndiff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c\nindex 2fec79a388..272195f6a2 100644\n--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c\n+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c\n@@ -115,9 +115,11 @@ bnxt_ulp_init_mapper_params(struct bnxt_ulp_mapper_create_parms *mapper_cparms,\n \tULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_FLOW_SIG_ID,\n \t\t\t    params->flow_sig_id);\n \n+\tif (bnxt_ulp_cntxt_ptr2_ulp_flags_get(params->ulp_ctx, &ulp_flags))\n+\t\treturn;\n+\n \t/* update the WC Priority flag */\n-\tif (!bnxt_ulp_cntxt_ptr2_ulp_flags_get(params->ulp_ctx, &ulp_flags) &&\n-\t    ULP_HIGH_AVAIL_IS_ENABLED(ulp_flags)) {\n+\tif (ULP_HIGH_AVAIL_IS_ENABLED(ulp_flags)) {\n \t\tenum ulp_ha_mgr_region region = ULP_HA_REGION_LOW;\n \t\tint32_t rc;\n \n@@ -129,6 +131,10 @@ bnxt_ulp_init_mapper_params(struct bnxt_ulp_mapper_create_parms *mapper_cparms,\n \t\t\t\t\t    BNXT_ULP_CF_IDX_WC_IS_HA_HIGH_REG,\n \t\t\t\t\t    1);\n \t}\n+\n+\t/* Update the socket direct flag */\n+\tif (ULP_SOCKET_DIRECT_IS_ENABLED(ulp_flags))\n+\t\tULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_SOCKET_DIRECT, 1);\n }\n \n /* Function to create the rte flow. */\ndiff --git a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h\nindex fcd460e707..31a94c14dc 100644\n--- a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h\n+++ b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h\n@@ -3,7 +3,7 @@\n  * All rights reserved.\n  */\n \n-/* date: Thu Aug 26 17:43:36 2021 */\n+/* date: Thu Sep  9 11:11:05 2021 */\n \n #ifndef ULP_TEMPLATE_DB_H_\n #define ULP_TEMPLATE_DB_H_\n@@ -211,7 +211,8 @@ enum bnxt_ulp_cf_idx {\n \tBNXT_ULP_CF_IDX_OI_VLAN_FB_VID = 71,\n \tBNXT_ULP_CF_IDX_IO_VLAN_FB_VID = 72,\n \tBNXT_ULP_CF_IDX_II_VLAN_FB_VID = 73,\n-\tBNXT_ULP_CF_IDX_LAST = 74\n+\tBNXT_ULP_CF_IDX_SOCKET_DIRECT = 74,\n+\tBNXT_ULP_CF_IDX_LAST = 75\n };\n \n enum bnxt_ulp_cond_list_opc {\n@@ -582,7 +583,8 @@ enum bnxt_ulp_template_type {\n enum bnxt_ulp_app_cap {\n \tBNXT_ULP_APP_CAP_SHARED_EN = 0x00000001,\n \tBNXT_ULP_APP_CAP_HOT_UPGRADE_EN = 0x00000002,\n-\tBNXT_ULP_APP_CAP_UNICAST_ONLY = 0x00000004\n+\tBNXT_ULP_APP_CAP_UNICAST_ONLY = 0x00000004,\n+\tBNXT_ULP_APP_CAP_SOCKET_DIRECT = 0x00000008\n };\n \n enum bnxt_ulp_fdb_resource_flags {\ndiff --git a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c\nindex 84be09b368..5383e2cd70 100644\n--- a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c\n+++ b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c\n@@ -3,7 +3,7 @@\n  * All rights reserved.\n  */\n \n-/* date: Thu Aug 26 17:43:36 2021 */\n+/* date: Thu Sep  9 11:11:05 2021 */\n \n #include \"ulp_template_db_enum.h\"\n #include \"ulp_template_db_field.h\"\n@@ -347,7 +347,8 @@ struct bnxt_ulp_app_capabilities_info ulp_app_cap_info_list[] = {\n \t.device_id               = BNXT_ULP_DEVICE_ID_THOR,\n \t.flags                   = BNXT_ULP_APP_CAP_SHARED_EN |\n \t\t\t\t   BNXT_ULP_APP_CAP_HOT_UPGRADE_EN |\n-\t\t\t\t   BNXT_ULP_APP_CAP_UNICAST_ONLY\n+\t\t\t\t   BNXT_ULP_APP_CAP_UNICAST_ONLY |\n+\t\t\t\t   BNXT_ULP_APP_CAP_SOCKET_DIRECT\n \t},\n \t{\n \t.app_id                  = 2,\n",
    "prefixes": [
        "v3",
        "05/20"
    ]
}