get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 56829,
    "url": "http://patches.dpdk.org/api/patches/56829/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1563786795-14027-3-git-send-email-matan@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": "<1563786795-14027-3-git-send-email-matan@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1563786795-14027-3-git-send-email-matan@mellanox.com",
    "date": "2019-07-22T09:12:49",
    "name": "[02/28] net/mlx5: add LRO APIs and initial settings",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "ed5248c4481c6eaf4d63f2522436d557bea11c55",
    "submitter": {
        "id": 796,
        "url": "http://patches.dpdk.org/api/people/796/?format=api",
        "name": "Matan Azrad",
        "email": "matan@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/1563786795-14027-3-git-send-email-matan@mellanox.com/mbox/",
    "series": [
        {
            "id": 5639,
            "url": "http://patches.dpdk.org/api/series/5639/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=5639",
            "date": "2019-07-22T09:12:48",
            "name": "net/mlx5: support LRO",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/5639/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/56829/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/56829/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 4AE271BDFA;\n\tMon, 22 Jul 2019 11:13:36 +0200 (CEST)",
            "from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129])\n\tby dpdk.org (Postfix) with ESMTP id 98E431BDE4\n\tfor <dev@dpdk.org>; Mon, 22 Jul 2019 11:13:24 +0200 (CEST)",
            "from Internal Mail-Server by MTLPINE2 (envelope-from\n\tmatan@mellanox.com)\n\twith ESMTPS (AES256-SHA encrypted); 22 Jul 2019 12:13:22 +0300",
            "from pegasus07.mtr.labs.mlnx (pegasus07.mtr.labs.mlnx\n\t[10.210.16.112])\n\tby labmailer.mlnx (8.13.8/8.13.8) with ESMTP id x6M9DMjR010084;\n\tMon, 22 Jul 2019 12:13:22 +0300"
        ],
        "From": "Matan Azrad <matan@mellanox.com>",
        "To": "Shahaf Shuler <shahafs@mellanox.com>, Yongseok Koh <yskoh@mellanox.com>, \n\tViacheslav Ovsiienko <viacheslavo@mellanox.com>",
        "Cc": "dev@dpdk.org, Dekel Peled <dekelp@mellanox.com>",
        "Date": "Mon, 22 Jul 2019 09:12:49 +0000",
        "Message-Id": "<1563786795-14027-3-git-send-email-matan@mellanox.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1563786795-14027-1-git-send-email-matan@mellanox.com>",
        "References": "<1563786795-14027-1-git-send-email-matan@mellanox.com>",
        "Subject": "[dpdk-dev] [PATCH 02/28] net/mlx5: add LRO APIs and initial settings",
        "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": "From: Dekel Peled <dekelp@mellanox.com>\n\nAdd command-line argument to set LRO session timeout.\nAdd LRO settings struct in PMD configuration struct.\nAdd support of LRO offload in port configuration.\nAdd macros and function to check if LRO is supported and enabled.\n\nSigned-off-by: Dekel Peled <dekelp@mellanox.com>\nAcked-by: Matan Azrad <matan@mellanox.com>\n---\n drivers/net/mlx5/mlx5.c        |  6 ++++++\n drivers/net/mlx5/mlx5.h        | 16 ++++++++++++++++\n drivers/net/mlx5/mlx5_ethdev.c |  2 +-\n drivers/net/mlx5/mlx5_rxq.c    | 22 +++++++++++++++++++++-\n drivers/net/mlx5/mlx5_rxtx.h   |  3 ++-\n 5 files changed, 46 insertions(+), 3 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c\nindex 37d3c08..5bef431 100644\n--- a/drivers/net/mlx5/mlx5.c\n+++ b/drivers/net/mlx5/mlx5.c\n@@ -138,6 +138,9 @@\n /* Device parameter to configure the maximum number of dump files per queue. */\n #define MLX5_MAX_DUMP_FILES_NUM \"max_dump_files_num\"\n \n+/* Configure timeout of LRO session (in microseconds). */\n+#define MLX5_LRO_TIMEOUT_USEC \"lro_timeout_usec\"\n+\n #ifndef HAVE_IBV_MLX5_MOD_MPW\n #define MLX5DV_CONTEXT_FLAGS_MPW_ALLOWED (1 << 2)\n #define MLX5DV_CONTEXT_FLAGS_ENHANCED_MPW (1 << 3)\n@@ -1052,6 +1055,8 @@ struct mlx5_dev_spawn_data {\n \t\tconfig->mr_ext_memseg_en = !!tmp;\n \t} else if (strcmp(MLX5_MAX_DUMP_FILES_NUM, key) == 0) {\n \t\tconfig->max_dump_files_num = tmp;\n+\t} else if (strcmp(MLX5_LRO_TIMEOUT_USEC, key) == 0) {\n+\t\tconfig->lro.timeout = tmp;\n \t} else {\n \t\tDRV_LOG(WARNING, \"%s: unknown parameter\", key);\n \t\trte_errno = EINVAL;\n@@ -1100,6 +1105,7 @@ struct mlx5_dev_spawn_data {\n \t\tMLX5_MR_EXT_MEMSEG_EN,\n \t\tMLX5_REPRESENTOR,\n \t\tMLX5_MAX_DUMP_FILES_NUM,\n+\t\tMLX5_LRO_TIMEOUT_USEC,\n \t\tNULL,\n \t};\n \tstruct rte_kvargs *kvlist;\ndiff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h\nindex 7aad94d..4074a7e 100644\n--- a/drivers/net/mlx5/mlx5.h\n+++ b/drivers/net/mlx5/mlx5.h\n@@ -183,6 +183,21 @@ struct mlx5_hca_attr {\n /* Default PMD specific parameter value. */\n #define MLX5_ARG_UNSET (-1)\n \n+#define MLX5_LRO_SUPPORTED(dev) \\\n+\t(((struct mlx5_priv *)((dev)->data->dev_private))->config.lro.supported)\n+\n+#define MLX5_LRO_ENABLED(dev) \\\n+\t((dev)->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_TCP_LRO)\n+\n+#define MLX5_FLOW_IPV4_LRO\t(1 << 0)\n+#define MLX5_FLOW_IPV6_LRO\t(1 << 1)\n+\n+/* LRO configurations structure. */\n+struct mlx5_lro_config {\n+\tuint32_t supported:1; /* Whether LRO is supported. */\n+\tuint32_t timeout; /* User configuration. */\n+};\n+\n /*\n  * Device configuration structure.\n  *\n@@ -233,6 +248,7 @@ struct mlx5_dev_config {\n \tint txq_inline_max; /* Max packet size for inlining with SEND. */\n \tint txq_inline_mpw; /* Max packet size for inlining with eMPW. */\n \tstruct mlx5_hca_attr hca_attr; /* HCA attributes. */\n+\tstruct mlx5_lro_config lro; /* LRO configuration. */\n };\n \n /**\ndiff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c\nindex 6c9bcf1..1125e16 100644\n--- a/drivers/net/mlx5/mlx5_ethdev.c\n+++ b/drivers/net/mlx5/mlx5_ethdev.c\n@@ -659,7 +659,7 @@ struct ethtool_link_settings {\n \tinfo->max_tx_queues = max;\n \tinfo->max_mac_addrs = MLX5_MAX_UC_MAC_ADDRESSES;\n \tinfo->rx_queue_offload_capa = mlx5_get_rx_queue_offloads(dev);\n-\tinfo->rx_offload_capa = (mlx5_get_rx_port_offloads() |\n+\tinfo->rx_offload_capa = (mlx5_get_rx_port_offloads(dev) |\n \t\t\t\t info->rx_queue_offload_capa);\n \tinfo->tx_offload_capa = mlx5_get_tx_port_offloads(dev);\n \tif (mlx5_get_ifname(dev, &ifname) == 0)\ndiff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c\nindex 0535ce3..e68de50 100644\n--- a/drivers/net/mlx5/mlx5_rxq.c\n+++ b/drivers/net/mlx5/mlx5_rxq.c\n@@ -124,6 +124,21 @@\n }\n \n /**\n+ * Check whether LRO is supported and enabled for the device.\n+ *\n+ * @param dev\n+ *   Pointer to Ethernet device.\n+ *\n+ * @return\n+ *   0 if disabled, 1 if enabled.\n+ */\n+inline int\n+mlx5_lro_on(struct rte_eth_dev *dev)\n+{\n+\treturn (MLX5_LRO_SUPPORTED(dev) && MLX5_LRO_ENABLED(dev));\n+}\n+\n+/**\n  * Allocate RX queue elements for Multi-Packet RQ.\n  *\n  * @param rxq_ctrl\n@@ -386,14 +401,19 @@\n /**\n  * Returns the per-port supported offloads.\n  *\n+ * @param dev\n+ *   Pointer to Ethernet device.\n+ *\n  * @return\n  *   Supported Rx offloads.\n  */\n uint64_t\n-mlx5_get_rx_port_offloads(void)\n+mlx5_get_rx_port_offloads(struct rte_eth_dev *dev)\n {\n \tuint64_t offloads = DEV_RX_OFFLOAD_VLAN_FILTER;\n \n+\tif (MLX5_LRO_SUPPORTED(dev))\n+\t\toffloads |= DEV_RX_OFFLOAD_TCP_LRO;\n \treturn offloads;\n }\n \ndiff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h\nindex bc8a61a..2f688ac 100644\n--- a/drivers/net/mlx5/mlx5_rxtx.h\n+++ b/drivers/net/mlx5/mlx5_rxtx.h\n@@ -323,8 +323,9 @@ struct mlx5_hrxq *mlx5_hrxq_get(struct rte_eth_dev *dev,\n int mlx5_hrxq_ibv_verify(struct rte_eth_dev *dev);\n struct mlx5_hrxq *mlx5_hrxq_drop_new(struct rte_eth_dev *dev);\n void mlx5_hrxq_drop_release(struct rte_eth_dev *dev);\n-uint64_t mlx5_get_rx_port_offloads(void);\n+uint64_t mlx5_get_rx_port_offloads(struct rte_eth_dev *dev);\n uint64_t mlx5_get_rx_queue_offloads(struct rte_eth_dev *dev);\n+int mlx5_lro_on(struct rte_eth_dev *dev);\n \n /* mlx5_txq.c */\n \n",
    "prefixes": [
        "02/28"
    ]
}