get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 75925,
    "url": "http://patchwork.dpdk.org/api/patches/75925/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20200825115305.58490-5-huwei013@chinasoftinc.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": "<20200825115305.58490-5-huwei013@chinasoftinc.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200825115305.58490-5-huwei013@chinasoftinc.com",
    "date": "2020-08-25T11:52:58",
    "name": "[04/11] net/hns3: compatibility issues about Tx padding short frame",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "949d1edae59a6637735a182541cdee0bbe3a1680",
    "submitter": {
        "id": 1537,
        "url": "http://patchwork.dpdk.org/api/people/1537/?format=api",
        "name": "Wei Hu (Xavier)",
        "email": "huwei013@chinasoftinc.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patchwork.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20200825115305.58490-5-huwei013@chinasoftinc.com/mbox/",
    "series": [
        {
            "id": 11778,
            "url": "http://patchwork.dpdk.org/api/series/11778/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=11778",
            "date": "2020-08-25T11:52:54",
            "name": "updates for hns3 PMD driver",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/11778/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/75925/comments/",
    "check": "warning",
    "checks": "http://patchwork.dpdk.org/api/patches/75925/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 BE21FA04B1;\n\tTue, 25 Aug 2020 13:54:09 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 293701C238;\n\tTue, 25 Aug 2020 13:53:35 +0200 (CEST)",
            "from mail.chinasoftinc.com (unknown [114.113.233.8])\n by dpdk.org (Postfix) with ESMTP id 0816DE07\n for <dev@dpdk.org>; Tue, 25 Aug 2020 13:53:30 +0200 (CEST)",
            "from localhost.localdomain (65.49.108.226) by INCCAS002.ito.icss\n (10.168.0.60) with Microsoft SMTP Server id 14.3.487.0; Tue, 25 Aug 2020\n 19:53:26 +0800"
        ],
        "From": "\"Wei Hu (Xavier)\" <huwei013@chinasoftinc.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<ferruh.yigit@intel.com>, <xavier.huwei@huawei.com>",
        "Date": "Tue, 25 Aug 2020 19:52:58 +0800",
        "Message-ID": "<20200825115305.58490-5-huwei013@chinasoftinc.com>",
        "X-Mailer": "git-send-email 2.27.0",
        "In-Reply-To": "<20200825115305.58490-1-huwei013@chinasoftinc.com>",
        "References": "<20200825115305.58490-1-huwei013@chinasoftinc.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[65.49.108.226]",
        "Subject": "[dpdk-dev] [PATCH 04/11] net/hns3: compatibility issues about Tx\n\tpadding short frame",
        "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": "From: \"Wei Hu (Xavier)\" <xavier.huwei@huawei.com>\n\nThere are differece about padding ultra-short frame in Tx procession for\ndifferent versions of hardware network engine.\n\nIf packet length is less than minimum packet length supported by hardware\nin Tx direction, driver need to pad it to avoid error. The minimum packet\nlength in Tx direction is 33 based on kunpeng 920, and 9 based on\nkunpeng 930.\n\nSigned-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>\nSigned-off-by: Chengchang Tang <tangchengchang@huawei.com>\n---\n drivers/net/hns3/hns3_ethdev.c    |  2 ++\n drivers/net/hns3/hns3_ethdev.h    |  8 +++++++-\n drivers/net/hns3/hns3_ethdev_vf.c |  2 ++\n drivers/net/hns3/hns3_rxtx.c      | 11 +++++++----\n drivers/net/hns3/hns3_rxtx.h      |  9 ++++++++-\n 5 files changed, 26 insertions(+), 6 deletions(-)",
    "diff": "diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c\nindex 3cc1fbc32..4797cfb2f 100644\n--- a/drivers/net/hns3/hns3_ethdev.c\n+++ b/drivers/net/hns3/hns3_ethdev.c\n@@ -2884,6 +2884,7 @@ hns3_get_capability(struct hns3_hw *hw)\n \t\thw->intr.mapping_mode = HNS3_INTR_MAPPING_VEC_RSV_ONE;\n \t\thw->intr.coalesce_mode = HNS3_INTR_COALESCE_NON_QL;\n \t\thw->intr.gl_unit = HNS3_INTR_COALESCE_GL_UINT_2US;\n+\t\thw->min_tx_pkt_len = HNS3_HIP08_MIN_TX_PKT_LEN;\n \t\treturn 0;\n \t}\n \n@@ -2898,6 +2899,7 @@ hns3_get_capability(struct hns3_hw *hw)\n \thw->intr.mapping_mode = HNS3_INTR_MAPPING_VEC_ALL;\n \thw->intr.coalesce_mode = HNS3_INTR_COALESCE_QL;\n \thw->intr.gl_unit = HNS3_INTR_COALESCE_GL_UINT_1US;\n+\thw->min_tx_pkt_len = HNS3_HIP09_MIN_TX_PKT_LEN;\n \n \treturn 0;\n }\ndiff --git a/drivers/net/hns3/hns3_ethdev.h b/drivers/net/hns3/hns3_ethdev.h\nindex b8eb7ddc1..a5405147d 100644\n--- a/drivers/net/hns3/hns3_ethdev.h\n+++ b/drivers/net/hns3/hns3_ethdev.h\n@@ -58,7 +58,8 @@\n #define HNS3_MAX_MTU\t(HNS3_MAX_FRAME_LEN - HNS3_ETH_OVERHEAD)\n #define HNS3_DEFAULT_MTU\t\t1500UL\n #define HNS3_DEFAULT_FRAME_LEN\t\t(HNS3_DEFAULT_MTU + HNS3_ETH_OVERHEAD)\n-#define HNS3_MIN_PKT_SIZE\t\t60\n+#define HNS3_HIP08_MIN_TX_PKT_LEN\t33\n+#define HNS3_HIP09_MIN_TX_PKT_LEN\t9\n \n #define HNS3_4_TCS\t\t\t4\n #define HNS3_8_TCS\t\t\t8\n@@ -464,6 +465,11 @@ struct hns3_hw {\n \n \tuint32_t capability;\n \tuint32_t max_tm_rate;\n+\t/*\n+\t * The minimun length of the packet supported by hardware in the Tx\n+\t * direction.\n+\t */\n+\tuint32_t min_tx_pkt_len;\n \n \tstruct hns3_queue_intr intr;\n \ndiff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c\nindex 44657d362..3b2ba69bb 100644\n--- a/drivers/net/hns3/hns3_ethdev_vf.c\n+++ b/drivers/net/hns3/hns3_ethdev_vf.c\n@@ -1133,6 +1133,7 @@ hns3vf_get_capability(struct hns3_hw *hw)\n \t\thw->intr.mapping_mode = HNS3_INTR_MAPPING_VEC_RSV_ONE;\n \t\thw->intr.coalesce_mode = HNS3_INTR_COALESCE_NON_QL;\n \t\thw->intr.gl_unit = HNS3_INTR_COALESCE_GL_UINT_2US;\n+\t\thw->min_tx_pkt_len = HNS3_HIP08_MIN_TX_PKT_LEN;\n \t\treturn 0;\n \t}\n \n@@ -1147,6 +1148,7 @@ hns3vf_get_capability(struct hns3_hw *hw)\n \thw->intr.mapping_mode = HNS3_INTR_MAPPING_VEC_ALL;\n \thw->intr.coalesce_mode = HNS3_INTR_COALESCE_QL;\n \thw->intr.gl_unit = HNS3_INTR_COALESCE_GL_UINT_1US;\n+\thw->min_tx_pkt_len = HNS3_HIP09_MIN_TX_PKT_LEN;\n \n \treturn 0;\n }\ndiff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c\nindex d39576621..308d0a671 100644\n--- a/drivers/net/hns3/hns3_rxtx.c\n+++ b/drivers/net/hns3/hns3_rxtx.c\n@@ -1915,6 +1915,7 @@ hns3_tx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t nb_desc,\n \ttxq->configured = true;\n \ttxq->io_base = (void *)((char *)hw->io_base + HNS3_TQP_REG_OFFSET +\n \t\t\t\tidx * HNS3_TQP_REG_SIZE);\n+\ttxq->min_tx_pkt_len = hw->min_tx_pkt_len;\n \ttxq->over_length_pkt_cnt = 0;\n \ttxq->exceed_limit_bd_pkt_cnt = 0;\n \ttxq->exceed_limit_bd_reassem_fail = 0;\n@@ -2743,14 +2744,16 @@ hns3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)\n \t\t}\n \n \t\t/*\n-\t\t * If packet length is less than minimum packet size, driver\n-\t\t * need to pad it.\n+\t\t * If packet length is less than minimum packet length supported\n+\t\t * by hardware in Tx direction, driver need to pad it to avoid\n+\t\t * error.\n \t\t */\n-\t\tif (unlikely(rte_pktmbuf_pkt_len(tx_pkt) < HNS3_MIN_PKT_SIZE)) {\n+\t\tif (unlikely(rte_pktmbuf_pkt_len(tx_pkt) <\n+\t\t\t\t\t\ttxq->min_tx_pkt_len)) {\n \t\t\tuint16_t add_len;\n \t\t\tchar *appended;\n \n-\t\t\tadd_len = HNS3_MIN_PKT_SIZE -\n+\t\t\tadd_len = txq->min_tx_pkt_len -\n \t\t\t\t\t rte_pktmbuf_pkt_len(tx_pkt);\n \t\t\tappended = rte_pktmbuf_append(tx_pkt, add_len);\n \t\t\tif (appended == NULL) {\ndiff --git a/drivers/net/hns3/hns3_rxtx.h b/drivers/net/hns3/hns3_rxtx.h\nindex 15c609ceb..c365a2925 100644\n--- a/drivers/net/hns3/hns3_rxtx.h\n+++ b/drivers/net/hns3/hns3_rxtx.h\n@@ -291,6 +291,12 @@ struct hns3_tx_queue {\n \t */\n \tuint16_t pvid_state;\n \n+\t/*\n+\t * The minimun length of the packet supported by hardware in the Tx\n+\t * direction.\n+\t */\n+\tuint32_t min_tx_pkt_len;\n+\n \tbool tx_deferred_start; /* don't start this queue in dev start */\n \tbool configured;        /* indicate if tx queue has been configured */\n \n@@ -333,7 +339,8 @@ struct hns3_tx_queue {\n \t *\n \t * - pkt_padding_fail_cnt\n \t *     Total count which the packet length is less than minimum packet\n-\t *     size HNS3_MIN_PKT_SIZE and fail to be appended with 0.\n+\t *     length(struct hns3_tx_queue::min_tx_pkt_len) supported by\n+\t *     hardware in Tx direction and fail to be appended with 0.\n \t */\n \tuint64_t over_length_pkt_cnt;\n \tuint64_t exceed_limit_bd_pkt_cnt;\n",
    "prefixes": [
        "04/11"
    ]
}