get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 47792,
    "url": "https://patches.dpdk.org/api/patches/47792/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1541266779-10519-1-git-send-email-ophirmu@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": "<1541266779-10519-1-git-send-email-ophirmu@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1541266779-10519-1-git-send-email-ophirmu@mellanox.com",
    "date": "2018-11-03T17:39:45",
    "name": "[v4] net/mlx5: set RSS key to NULL to indicate default RSS",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "3108022b279bc9dda918b3bf503b4e029d104722",
    "submitter": {
        "id": 793,
        "url": "https://patches.dpdk.org/api/people/793/?format=api",
        "name": "Ophir Munk",
        "email": "ophirmu@mellanox.com"
    },
    "delegate": {
        "id": 6624,
        "url": "https://patches.dpdk.org/api/users/6624/?format=api",
        "username": "shahafs",
        "first_name": "Shahaf",
        "last_name": "Shuler",
        "email": "shahafs@mellanox.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1541266779-10519-1-git-send-email-ophirmu@mellanox.com/mbox/",
    "series": [
        {
            "id": 2242,
            "url": "https://patches.dpdk.org/api/series/2242/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=2242",
            "date": "2018-11-03T17:39:45",
            "name": "[v4] net/mlx5: set RSS key to NULL to indicate default RSS",
            "version": 4,
            "mbox": "https://patches.dpdk.org/series/2242/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/47792/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/47792/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 04204A49;\n\tSat,  3 Nov 2018 18:39:49 +0100 (CET)",
            "from EUR04-HE1-obe.outbound.protection.outlook.com\n\t(mail-eopbgr70054.outbound.protection.outlook.com [40.107.7.54])\n\tby dpdk.org (Postfix) with ESMTP id 4476023D\n\tfor <dev@dpdk.org>; Sat,  3 Nov 2018 18:39:47 +0100 (CET)",
            "from VI1PR0502MB3743.eurprd05.prod.outlook.com (52.134.8.154) by\n\tVI1PR0502MB3917.eurprd05.prod.outlook.com (52.134.6.26) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.1273.25; Sat, 3 Nov 2018 17:39:45 +0000",
            "from VI1PR0502MB3743.eurprd05.prod.outlook.com\n\t([fe80::84d3:8812:d45c:98e4]) by\n\tVI1PR0502MB3743.eurprd05.prod.outlook.com\n\t([fe80::84d3:8812:d45c:98e4%4]) with mapi id 15.20.1294.028;\n\tSat, 3 Nov 2018 17:39:45 +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=c3OxVxaveP65FOXj2M8P4ThArNn/HfTh1XWCl0oAc6o=;\n\tb=OoVPDSPembVJYt4pDjgqKiAZbtvEnvm9L24GbdD1N1pw6ca2pqKNDF2zF7TnR3pq4xxxX7kTYhWOvsipFY5eSqXdJBV0UUiLH9HO5jhk8G2xfQaxyXUQngyTaD26GSjz8hiQpaEll4gnlUEOMMc92oiY2QlYEc9wl5pLwOhh+iE=",
        "From": "Ophir Munk <ophirmu@mellanox.com>",
        "To": "Yongseok Koh <yskoh@mellanox.com>, \"dev@dpdk.org\" <dev@dpdk.org>",
        "CC": "Asaf Penso <asafp@mellanox.com>, Shahaf Shuler <shahafs@mellanox.com>,\n\tThomas Monjalon <thomas@monjalon.net>, Olga Shern <olgas@mellanox.com>,\n\tOphir Munk <ophirmu@mellanox.com>",
        "Thread-Topic": "[PATCH v4] net/mlx5: set RSS key to NULL to indicate default\n\tRSS",
        "Thread-Index": "AQHUc5w1kPPZXZZPOE6fLC27YFZmnQ==",
        "Date": "Sat, 3 Nov 2018 17:39:45 +0000",
        "Message-ID": "<1541266779-10519-1-git-send-email-ophirmu@mellanox.com>",
        "References": "<1541260115-4368-1-git-send-email-ophirmu@mellanox.com>",
        "In-Reply-To": "<1541260115-4368-1-git-send-email-ophirmu@mellanox.com>",
        "Accept-Language": "en-US",
        "Content-Language": "en-US",
        "X-MS-Has-Attach": "",
        "X-MS-TNEF-Correlator": "",
        "x-clientproxiedby": "LO2P265CA0127.GBRP265.PROD.OUTLOOK.COM\n\t(2603:10a6:600:9f::19) To VI1PR0502MB3743.eurprd05.prod.outlook.com\n\t(2603:10a6:803:11::26)",
        "authentication-results": "spf=none (sender IP is )\n\tsmtp.mailfrom=ophirmu@mellanox.com; ",
        "x-ms-exchange-messagesentrepresentingtype": "1",
        "x-originating-ip": "[37.142.13.130]",
        "x-ms-publictraffictype": "Email",
        "x-microsoft-exchange-diagnostics": "1; VI1PR0502MB3917;\n\t6:XnzN8Q0/7XQSpiGPYwrYnUE0/yVY9HRVzRy4Es/YtObC8UKPmI+AKhTJtHfW+mEZPOwQYwzKkUTmuQpCWCTFWKOB4o/dzcVin1M/84FEm5cMp23ksPbUBLev+rZ4i9qdIxBsLDL8eofeO9xacIkj1W2/yyXWvQC0ntlIC4SRYq6DjLnQgVNR/R5LGgIQmLzxrahVK0XYAJz0lclPsawDUnUP7oAY6ni8MoIWobMzFFXViKkmk4zA3M/VYmTGfUtF9/lVgku6QnuyQJOPurkknKmUsDDp3AA8248eeJ1FhF3gzaBun1Yyu/ak6j4zczaJPDFH0hZ53EWpAEUlG5xaiiCOtpN4ea6sgJGmK1PHJ7r25joNvn1Hf+bnAK651bmUeZeNmcEgjjJh6A241RhwmD4RAbfg5iB8b1C1plXNF5hp35A/lZQNjhspH464X7bHICmG2cASjVAdI3AJZysyZw==;\n\t5:QPBoGouUSD3S7BsU1ciXg4hX8MBaybxmj17gTPnxdCzyDus6eVg5TvRdtCWM5MagwG2py+iER5fjWKOAOakNMsJL2irForDIZSaOVWN2bd9kGauPCbpSuKHV/rh2yUa5o2l/aIn7JUQNfdZ15fdNzmfaNUmWXSJcMdrPJePZ/tI=;\n\t7:9VOcjJ3XeXZ/T6DTKsh1rN2MSRGa/T1ZGQ9XS4jS7iUOjY0nFJiA83kXKkKjSH8R62sOJCj+v9OEvZfE97aUvkh4v9UaVabjNYPvuoJTDiJyzhoAcDD/OEU82ldRKmYmBEl0BkvJjjsl6KOzTDUMaA==",
        "x-ms-office365-filtering-correlation-id": "c7d3d487-a004-4ac1-f013-08d641b35836",
        "x-ms-office365-filtering-ht": "Tenant",
        "x-microsoft-antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989299)(5600074)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020);\n\tSRVR:VI1PR0502MB3917; ",
        "x-ms-traffictypediagnostic": "VI1PR0502MB3917:",
        "x-ld-processed": "a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr",
        "x-microsoft-antispam-prvs": "<VI1PR0502MB3917F15D6252852AAC58B85CD1C80@VI1PR0502MB3917.eurprd05.prod.outlook.com>",
        "x-exchange-antispam-report-test": "UriScan:(278428928389397);",
        "x-ms-exchange-senderadcheck": "1",
        "x-exchange-antispam-report-cfa-test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231382)(944501410)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(148016)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123564045)(20161123558120)(201708071742011)(7699051)(76991095);\n\tSRVR:VI1PR0502MB3917; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0502MB3917; ",
        "x-forefront-prvs": "08457955C4",
        "x-forefront-antispam-report": "SFV:NSPM;\n\tSFS:(10009020)(39860400002)(136003)(376002)(366004)(396003)(346002)(189003)(199004)(26005)(386003)(6506007)(256004)(186003)(102836004)(105586002)(106356001)(86362001)(11346002)(2616005)(71200400001)(71190400001)(476003)(446003)(6116002)(486006)(66066001)(6436002)(3846002)(2900100001)(97736004)(25786009)(6486002)(6512007)(4326008)(53936002)(6306002)(7736002)(305945005)(316002)(54906003)(110136005)(36756003)(5660300001)(107886003)(14454004)(966005)(478600001)(8676002)(52116002)(8936002)(2906002)(76176011)(99286004)(81156014)(81166006)(68736007)(2501003);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0502MB3917;\n\tH:VI1PR0502MB3743.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; \n\tPTR:InfoNoRecords; MX:1; A:1; ",
        "received-spf": "None (protection.outlook.com: mellanox.com does not designate\n\tpermitted sender hosts)",
        "x-microsoft-antispam-message-info": "QLCGPdfpluOiLbr3IKBGVZHOvY8SXl55RxKrzGhYybIEPGuJunm3pVhW4PDMD28VmxMX6WPNzKgq9sC6k1pVtllG3SJ0BDBJ8vmQu0trwYu0oHKbETeJ+N9MDlgzklc8EpmYbAV8dXo6MAYDnH8Jo1Rq9fL0sMO0w0QjcDH1aYnHgO0TBjdBJpZj5GP3eIFkt13o/MPpo0o3BU7OVGHXJ7BZnbIFCkxws2njsuHEh1ADwNHyLIEx0LbxHf5ktfkl5IQgyhPsjrgN8ufJIvjl2X37tnZvpkU7topQoEO7wY9miUzfOC8fGxDWYKty3c+cSPgxMakihEhw81JtZwuYRwU4taFK338xdm9Til9uYUo=",
        "spamdiagnosticoutput": "1:99",
        "spamdiagnosticmetadata": "NSPM",
        "Content-Type": "text/plain; charset=\"iso-8859-1\"",
        "Content-Transfer-Encoding": "quoted-printable",
        "MIME-Version": "1.0",
        "X-OriginatorOrg": "Mellanox.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "c7d3d487-a004-4ac1-f013-08d641b35836",
        "X-MS-Exchange-CrossTenant-originalarrivaltime": "03 Nov 2018 17:39:45.7263\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted",
        "X-MS-Exchange-CrossTenant-id": "a652971c-7d2e-4d9b-a6a4-d149256f461b",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "VI1PR0502MB3917",
        "Subject": "[dpdk-dev] [PATCH v4] net/mlx5: set RSS key to NULL to indicate\n\tdefault RSS",
        "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": "Applications which add RSS rules must supply an RSS key and length.\nIf an application is only interested in default RSS operation it\nshould not care about the exact RSS key.\nBy setting the key to NULL - the PMD will use the default RSS key.\nIn addition if the application does not care about the RSS type it can\nset it to 0 and the PMD will use the default type (ETH_RSS_IP).\n\nSigned-off-by: Ophir Munk <ophirmu@mellanox.com>\n---\nv1:\nInitial release\n\nv2, v3:\nRebase + following code review\n\nv4:\nAvoid sgementation faulut by not allowing in cation validation key=NULL ane key_len!=0\nSee https://patches.dpdk.org/patch/47645/\n\n\n doc/guides/nics/mlx5.rst           |  1 +\n drivers/net/mlx5/mlx5_flow.c       |  8 +++++++-\n drivers/net/mlx5/mlx5_flow_dv.c    |  7 +++++--\n drivers/net/mlx5/mlx5_flow_verbs.c |  8 ++++++--\n drivers/net/mlx5/mlx5_rxq.c        | 18 ++++--------------\n 5 files changed, 23 insertions(+), 19 deletions(-)",
    "diff": "diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst\nindex 1dc3282..0303152 100644\n--- a/doc/guides/nics/mlx5.rst\n+++ b/doc/guides/nics/mlx5.rst\n@@ -54,6 +54,7 @@ Features\n - Support for scattered TX and RX frames.\n - IPv4, IPv6, TCPv4, TCPv6, UDPv4 and UDPv6 RSS on any number of queues.\n - Several RSS hash keys, one for each flow type.\n+- Default RSS operation with no hash key specification.\n - Configurable RETA table.\n - Support for multiple MAC addresses.\n - VLAN filtering.\ndiff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c\nindex 107a4f0..be2cc6b 100644\n--- a/drivers/net/mlx5/mlx5_flow.c\n+++ b/drivers/net/mlx5/mlx5_flow.c\n@@ -912,7 +912,13 @@ uint32_t mlx5_flow_adjust_priority(struct rte_eth_dev *dev, int32_t priority,\n \t\t\t\t\t  RTE_FLOW_ERROR_TYPE_ACTION_CONF,\n \t\t\t\t\t  &rss->level,\n \t\t\t\t\t  \"tunnel RSS is not supported\");\n-\tif (rss->key_len < MLX5_RSS_HASH_KEY_LEN)\n+\t/* allow RSS key_len 0 in case of NULL (default) RSS key. */\n+\tif (rss->key_len == 0 && rss->key != NULL)\n+\t\treturn rte_flow_error_set(error, ENOTSUP,\n+\t\t\t\t\t  RTE_FLOW_ERROR_TYPE_ACTION_CONF,\n+\t\t\t\t\t  &rss->key_len,\n+\t\t\t\t\t  \"RSS hash key length 0\");\n+\tif (rss->key_len > 0 && rss->key_len < MLX5_RSS_HASH_KEY_LEN)\n \t\treturn rte_flow_error_set(error, ENOTSUP,\n \t\t\t\t\t  RTE_FLOW_ERROR_TYPE_ACTION_CONF,\n \t\t\t\t\t  &rss->key_len,\ndiff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c\nindex c11ecd4..cdf3377 100644\n--- a/drivers/net/mlx5/mlx5_flow_dv.c\n+++ b/drivers/net/mlx5/mlx5_flow_dv.c\n@@ -1758,8 +1758,11 @@\n \t\t\tmemcpy((*flow->queue), rss->queue,\n \t\t\t       rss->queue_num * sizeof(uint16_t));\n \t\tflow->rss.queue_num = rss->queue_num;\n-\t\tmemcpy(flow->key, rss->key, MLX5_RSS_HASH_KEY_LEN);\n-\t\tflow->rss.types = rss->types;\n+\t\t/* NULL RSS key indicates default RSS key. */\n+\t\trss_key = !rss->key ? rss_hash_default_key : rss->key;\n+\t\tmemcpy(flow->key, rss_key, MLX5_RSS_HASH_KEY_LEN);\n+\t\t/* RSS type 0 indicates default RSS type ETH_RSS_IP. */\n+\t\tflow->rss.types = !rss->types ? ETH_RSS_IP : rss->types;\n \t\tflow->rss.level = rss->level;\n \t\t/* Added to array only in apply since we need the QP */\n \t\tflow->actions |= MLX5_FLOW_ACTION_RSS;\ndiff --git a/drivers/net/mlx5/mlx5_flow_verbs.c b/drivers/net/mlx5/mlx5_flow_verbs.c\nindex 2e506b9..54ac620 100644\n--- a/drivers/net/mlx5/mlx5_flow_verbs.c\n+++ b/drivers/net/mlx5/mlx5_flow_verbs.c\n@@ -925,14 +925,18 @@\n \t\t\t\tstruct mlx5_flow *dev_flow)\n {\n \tconst struct rte_flow_action_rss *rss = action->conf;\n+\tconst uint8_t *rss_key;\n \tstruct rte_flow *flow = dev_flow->flow;\n \n \tif (flow->queue)\n \t\tmemcpy((*flow->queue), rss->queue,\n \t\t       rss->queue_num * sizeof(uint16_t));\n \tflow->rss.queue_num = rss->queue_num;\n-\tmemcpy(flow->key, rss->key, MLX5_RSS_HASH_KEY_LEN);\n-\tflow->rss.types = rss->types;\n+\t/* NULL RSS key indicates default RSS key. */\n+\trss_key = !rss->key ? rss_hash_default_key : rss->key;\n+\tmemcpy(flow->key, rss_key, MLX5_RSS_HASH_KEY_LEN);\n+\t/* RSS type 0 indicates default RSS type (ETH_RSS_IP). */\n+\tflow->rss.types = !rss->types ? ETH_RSS_IP : rss->types;\n \tflow->rss.level = rss->level;\n \t*action_flags |= MLX5_FLOW_ACTION_RSS;\n }\ndiff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c\nindex 6df8997..eef4850 100644\n--- a/drivers/net/mlx5/mlx5_rxq.c\n+++ b/drivers/net/mlx5/mlx5_rxq.c\n@@ -1794,10 +1794,6 @@ struct mlx5_hrxq *\n \t\trte_errno = ENOMEM;\n \t\treturn NULL;\n \t}\n-\tif (!rss_key_len) {\n-\t\trss_key_len = MLX5_RSS_HASH_KEY_LEN;\n-\t\trss_key = rss_hash_default_key;\n-\t}\n #ifdef HAVE_IBV_DEVICE_TUNNEL_SUPPORT\n \tif (tunnel) {\n \t\tqp_init_attr.comp_mask =\n@@ -1823,11 +1819,8 @@ struct mlx5_hrxq *\n \t\t\t\tIBV_QP_INIT_ATTR_RX_HASH,\n \t\t\t.rx_hash_conf = (struct ibv_rx_hash_conf){\n \t\t\t\t.rx_hash_function = IBV_RX_HASH_FUNC_TOEPLITZ,\n-\t\t\t\t.rx_hash_key_len = rss_key_len ? rss_key_len :\n-\t\t\t\t\t\t   MLX5_RSS_HASH_KEY_LEN,\n-\t\t\t\t.rx_hash_key = rss_key ?\n-\t\t\t\t\t       (void *)(uintptr_t)rss_key :\n-\t\t\t\t\t       rss_hash_default_key,\n+\t\t\t\t.rx_hash_key_len = rss_key_len,\n+\t\t\t\t.rx_hash_key = (void *)(uintptr_t)rss_key,\n \t\t\t\t.rx_hash_fields_mask = hash_fields,\n \t\t\t},\n \t\t\t.rwq_ind_tbl = ind_tbl->ind_table,\n@@ -1845,11 +1838,8 @@ struct mlx5_hrxq *\n \t\t\t\tIBV_QP_INIT_ATTR_RX_HASH,\n \t\t\t.rx_hash_conf = (struct ibv_rx_hash_conf){\n \t\t\t\t.rx_hash_function = IBV_RX_HASH_FUNC_TOEPLITZ,\n-\t\t\t\t.rx_hash_key_len = rss_key_len ? rss_key_len :\n-\t\t\t\t\t\t   MLX5_RSS_HASH_KEY_LEN,\n-\t\t\t\t.rx_hash_key = rss_key ?\n-\t\t\t\t\t       (void *)(uintptr_t)rss_key :\n-\t\t\t\t\t       rss_hash_default_key,\n+\t\t\t\t.rx_hash_key_len = rss_key_len,\n+\t\t\t\t.rx_hash_key = (void *)(uintptr_t)rss_key,\n \t\t\t\t.rx_hash_fields_mask = hash_fields,\n \t\t\t},\n \t\t\t.rwq_ind_tbl = ind_tbl->ind_table,\n",
    "prefixes": [
        "v4"
    ]
}