get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 63994,
    "url": "http://patches.dpdk.org/api/patches/63994/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/45ca8bcef623acf4559e2e076417098d9bed77c3.1576663258.git.dekelp@mellanox.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": "<45ca8bcef623acf4559e2e076417098d9bed77c3.1576663258.git.dekelp@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/45ca8bcef623acf4559e2e076417098d9bed77c3.1576663258.git.dekelp@mellanox.com",
    "date": "2019-12-18T10:05:46",
    "name": "[1/2] net/mlx5: fix setting of Rx hash fields",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "9f9589b34949131e2b457e79d344fb3b4a3985ac",
    "submitter": {
        "id": 1082,
        "url": "http://patches.dpdk.org/api/people/1082/?format=api",
        "name": "Dekel Peled",
        "email": "dekelp@mellanox.com"
    },
    "delegate": {
        "id": 3268,
        "url": "http://patches.dpdk.org/api/users/3268/?format=api",
        "username": "rasland",
        "first_name": "Raslan",
        "last_name": "Darawsheh",
        "email": "rasland@nvidia.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/45ca8bcef623acf4559e2e076417098d9bed77c3.1576663258.git.dekelp@mellanox.com/mbox/",
    "series": [
        {
            "id": 7887,
            "url": "http://patches.dpdk.org/api/series/7887/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=7887",
            "date": "2019-12-18T10:05:47",
            "name": "net/mlx5: update RSS action handling",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/7887/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/63994/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/63994/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 6CBE9A050F;\n\tWed, 18 Dec 2019 11:06:26 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 151251B3BB;\n\tWed, 18 Dec 2019 11:06:15 +0100 (CET)",
            "from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129])\n by dpdk.org (Postfix) with ESMTP id ED4AA5681\n for <dev@dpdk.org>; Wed, 18 Dec 2019 11:06:12 +0100 (CET)",
            "from Internal Mail-Server by MTLPINE1 (envelope-from\n dekelp@mellanox.com)\n with ESMTPS (AES256-SHA encrypted); 18 Dec 2019 12:06:05 +0200",
            "from mtl-vdi-280.wap.labs.mlnx. (mtl-vdi-280.wap.labs.mlnx\n [10.128.130.87])\n by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id xBIA64Xh010229;\n Wed, 18 Dec 2019 12:06:05 +0200"
        ],
        "From": "Dekel Peled <dekelp@mellanox.com>",
        "To": "matan@mellanox.com, viacheslavo@mellanox.com, shahafs@mellanox.com",
        "Cc": "orika@mellanox.com, dev@dpdk.org, stable@dpdk.org",
        "Date": "Wed, 18 Dec 2019 12:05:46 +0200",
        "Message-Id": "\n <45ca8bcef623acf4559e2e076417098d9bed77c3.1576663258.git.dekelp@mellanox.com>",
        "X-Mailer": "git-send-email 1.7.1",
        "In-Reply-To": "<cover.1576663258.git.dekelp@mellanox.com>",
        "References": "<cover.1576663258.git.dekelp@mellanox.com>",
        "Subject": "[dpdk-dev] [PATCH 1/2] net/mlx5: fix setting of Rx hash fields",
        "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 <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": "Rx hash fields were copied from input parameter into TIR attributes\ndirectly, with no translation. As result the copied value was wrong.\n\nThis patch adds translation of value from input bitmap to the\nappropriate format.\n\nFixes: dc9ceff73c99 (\"net/mlx5: create advanced RxQ via DevX\")\nCc: stable@dpdk.org\n\nSigned-off-by: Dekel Peled <dekelp@mellanox.com>\nAcked-by: Matan Azrad <matan@mellanox.com>\n---\n drivers/net/mlx5/mlx5_flow.h | 21 +++++++++++++++++++++\n drivers/net/mlx5/mlx5_rxq.c  | 29 +++++++++++++++++++++++++++--\n 2 files changed, 48 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h\nindex 3fff5dd..db12715 100644\n--- a/drivers/net/mlx5/mlx5_flow.h\n+++ b/drivers/net/mlx5/mlx5_flow.h\n@@ -288,6 +288,27 @@ enum mlx5_feature_name {\n /* IBV hash source bits  for IPV6. */\n #define MLX5_IPV6_IBV_RX_HASH (IBV_RX_HASH_SRC_IPV6 | IBV_RX_HASH_DST_IPV6)\n \n+/* IBV hash bits for L3 SRC. */\n+#define MLX5_L3_SRC_IBV_RX_HASH (IBV_RX_HASH_SRC_IPV4 | IBV_RX_HASH_SRC_IPV6)\n+\n+/* IBV hash bits for L3 DST. */\n+#define MLX5_L3_DST_IBV_RX_HASH (IBV_RX_HASH_DST_IPV4 | IBV_RX_HASH_DST_IPV6)\n+\n+/* IBV hash bits for TCP. */\n+#define MLX5_TCP_IBV_RX_HASH (IBV_RX_HASH_SRC_PORT_TCP | \\\n+\t\t\t      IBV_RX_HASH_DST_PORT_TCP)\n+\n+/* IBV hash bits for UDP. */\n+#define MLX5_UDP_IBV_RX_HASH (IBV_RX_HASH_SRC_PORT_UDP | \\\n+\t\t\t      IBV_RX_HASH_DST_PORT_UDP)\n+\n+/* IBV hash bits for L4 SRC. */\n+#define MLX5_L4_SRC_IBV_RX_HASH (IBV_RX_HASH_SRC_PORT_TCP | \\\n+\t\t\t\t IBV_RX_HASH_SRC_PORT_UDP)\n+\n+/* IBV hash bits for L4 DST. */\n+#define MLX5_L4_DST_IBV_RX_HASH (IBV_RX_HASH_DST_PORT_TCP | \\\n+\t\t\t\t IBV_RX_HASH_DST_PORT_UDP)\n \n /* Geneve header first 16Bit */\n #define MLX5_GENEVE_VER_MASK 0x3\ndiff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c\nindex 986ec01..906ff0e 100644\n--- a/drivers/net/mlx5/mlx5_rxq.c\n+++ b/drivers/net/mlx5/mlx5_rxq.c\n@@ -36,6 +36,7 @@\n #include \"mlx5_autoconf.h\"\n #include \"mlx5_defs.h\"\n #include \"mlx5_glue.h\"\n+#include \"mlx5_flow.h\"\n \n /* Default RSS hash key also used for ConnectX-3. */\n uint8_t rss_hash_default_key[] = {\n@@ -2452,6 +2453,7 @@ struct mlx5_hrxq *\n \t\t}\n \t} else { /* ind_tbl->type == MLX5_IND_TBL_TYPE_DEVX */\n \t\tstruct mlx5_devx_tir_attr tir_attr;\n+\t\tstruct mlx5_rx_hash_field_select *rx_hash_field_select;\n \t\tuint32_t i;\n \t\tuint32_t lro = 1;\n \n@@ -2465,8 +2467,31 @@ struct mlx5_hrxq *\n \t\tmemset(&tir_attr, 0, sizeof(tir_attr));\n \t\ttir_attr.disp_type = MLX5_TIRC_DISP_TYPE_INDIRECT;\n \t\ttir_attr.rx_hash_fn = MLX5_RX_HASH_FN_TOEPLITZ;\n-\t\tmemcpy(&tir_attr.rx_hash_field_selector_outer, &hash_fields,\n-\t\t       sizeof(uint64_t));\n+#ifdef HAVE_IBV_DEVICE_TUNNEL_SUPPORT\n+\t\ttir_attr.tunneled_offload_en = !!tunnel;\n+\t\t/* Translate hash_fields bitmap to PRM format. */\n+\t\trx_hash_field_select = hash_fields & IBV_RX_HASH_INNER ?\n+\t\t\t\t       &tir_attr.rx_hash_field_selector_inner :\n+\t\t\t\t       &tir_attr.rx_hash_field_selector_outer;\n+#else\n+\t\trx_hash_field_select = &tir_attr.rx_hash_field_selector_outer;\n+#endif\n+\t\t/* 1 bit: 0: IPv4, 1: IPv6. */\n+\t\trx_hash_field_select->l3_prot_type =\n+\t\t\t!!(hash_fields & MLX5_IPV6_IBV_RX_HASH);\n+\t\t/* 1 bit: 0: TCP, 1: UDP. */\n+\t\trx_hash_field_select->l4_prot_type =\n+\t\t\t!!(hash_fields & MLX5_UDP_IBV_RX_HASH);\n+\t\t/* Bitmask which sets which fields to use in RX Hash. */\n+\t\trx_hash_field_select->selected_fields =\n+\t\t\t((!!(hash_fields & MLX5_L3_SRC_IBV_RX_HASH)) <<\n+\t\t\t MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_SRC_IP) |\n+\t\t\t(!!(hash_fields & MLX5_L3_DST_IBV_RX_HASH)) <<\n+\t\t\t MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_DST_IP |\n+\t\t\t(!!(hash_fields & MLX5_L4_SRC_IBV_RX_HASH)) <<\n+\t\t\t MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_L4_SPORT |\n+\t\t\t(!!(hash_fields & MLX5_L4_DST_IBV_RX_HASH)) <<\n+\t\t\t MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_L4_DPORT;\n \t\tif (rxq_ctrl->obj->type == MLX5_RXQ_OBJ_TYPE_DEVX_HAIRPIN)\n \t\t\ttir_attr.transport_domain = priv->sh->td->id;\n \t\telse\n",
    "prefixes": [
        "1/2"
    ]
}