get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 83605,
    "url": "https://patches.dpdk.org/api/patches/83605/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20201103140931.488700-15-thomas@monjalon.net/",
    "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": "<20201103140931.488700-15-thomas@monjalon.net>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20201103140931.488700-15-thomas@monjalon.net",
    "date": "2020-11-03T14:09:29",
    "name": "[v5,14/16] mbuf: remove deprecated timestamp field",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "8c1ab7cfb0ba2ef2089ed948a3531264247dccec",
    "submitter": {
        "id": 685,
        "url": "https://patches.dpdk.org/api/people/685/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas@monjalon.net"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20201103140931.488700-15-thomas@monjalon.net/mbox/",
    "series": [
        {
            "id": 13621,
            "url": "https://patches.dpdk.org/api/series/13621/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=13621",
            "date": "2020-11-03T14:09:15",
            "name": "remove mbuf timestamp",
            "version": 5,
            "mbox": "https://patches.dpdk.org/series/13621/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/83605/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/83605/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 E943CA0521;\n\tTue,  3 Nov 2020 15:15:10 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 617DBCCA5;\n\tTue,  3 Nov 2020 15:10:15 +0100 (CET)",
            "from wnew1-smtp.messagingengine.com (wnew1-smtp.messagingengine.com\n [64.147.123.26]) by dpdk.org (Postfix) with ESMTP id 727EBCC79\n for <dev@dpdk.org>; Tue,  3 Nov 2020 15:10:12 +0100 (CET)",
            "from compute2.internal (compute2.nyi.internal [10.202.2.42])\n by mailnew.west.internal (Postfix) with ESMTP id 0A518D20;\n Tue,  3 Nov 2020 09:10:10 -0500 (EST)",
            "from mailfrontend1 ([10.202.2.162])\n by compute2.internal (MEProxy); Tue, 03 Nov 2020 09:10:11 -0500",
            "from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184])\n by mail.messagingengine.com (Postfix) with ESMTPA id EE116328005E;\n Tue,  3 Nov 2020 09:10:08 -0500 (EST)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=\n from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding; s=fm2; bh=El3sso08Ub0k3\n hJRdnQaq7YGGRLKkbOdWMEoKHId0hs=; b=XT/N0KspdXyYUVVQ6gg4D02D8QFF6\n uOvXZ+qKVz79JjuxvzJlcJh8BttgDul+AV9iv/ZCELeESpM5ZhChnG1WBtle+0fj\n rMymvi5F5+ZhFBHe/6O98alMMmxR0Qswpd6VFVjpvMnZthlShA7g2M3mwOwYZiip\n urR/7NJR6vMvA2R9fKsg80Ovxt4NA6g3hFkFk0gD94JbU66k9uX4Ht9sU8zHkhUg\n KszH2fQ89RDIKg1JKrAeU0bMV0iLwzSZToUKsB5bJUjU4NB+uTivnG2uo7Idd50Q\n EntckUbSGbHQH6tFtNDDoyPEEXIH+ksQ1DHYVHqwvjcx8V1D8h+3qDKSQ==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n messagingengine.com; h=cc:content-transfer-encoding:date:from\n :in-reply-to:message-id:mime-version:references:subject:to\n :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=\n fm1; bh=El3sso08Ub0k3hJRdnQaq7YGGRLKkbOdWMEoKHId0hs=; b=CLeLoXqz\n Rqm/QNSwT8lGt/BTNb4+Dm25nA+x/X6nQFm1gCnF1ne9mlzkxFsSBKfYrdGOvNZ4\n eX/cWOKIRX4ajm7T7yjQn3l4cxp0lqI2EHb3hDkSh1rnxcHhfjpNpLs/5Dvvrufz\n xCZrH2a4LLvFtVJOuDI37w8qTlXYu5dWur+wkCXB8b6ZFybyPPloo4VJFHChWFEl\n B+3HLtQ+B/JbfhGzWpkZDu7GMf6XXN4xLoHURauTWF4pQ9I6ZBQajgsH5kQQrXqI\n wFp80s+zI0vfZt69WItcmj+gpCqIpJQxdJj6TmQBj7rcnV6SuHv6FeTQUjBYT2MQ\n lhpTciyYRc45tg=="
        ],
        "X-ME-Sender": "<xms:wmShX51Sof6JG34mWKdPR1mTeK0ZxdH3_z9PTMC0yMK5-SkZGwBnow>\n <xme:wmShXwFXm_EWjb5eSH0_J2U6h6omLdw1j2rjbG9NfKtxMpYj5wWkfVjDY2c2ubjQw\n _bv6JkSouhueBxL6g>",
        "X-ME-Proxy-Cause": "\n gggruggvucftvghtrhhoucdtuddrgedujedruddtfedgheekucetufdoteggodetrfdotf\n fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen\n uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne\n cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvhhhomhgr\n shcuofhonhhjrghlohhnuceothhhohhmrghssehmohhnjhgrlhhonhdrnhgvtheqnecugg\n ftrfgrthhtvghrnhephfduieeggfdvkefgheegjeelieffhfdtteffffduvefgtdefgffh\n tedtudejheeinecuffhomhgrihhnpeihohhuthhusggvrdgtohhmnecukfhppeejjedrud\n efgedrvddtfedrudekgeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr\n ihhlfhhrohhmpehthhhomhgrshesmhhonhhjrghlohhnrdhnvght",
        "X-ME-Proxy": "<xmx:wmShX55Jm3l06vYgnRUO_M5njxnVc1FFcjmyu1BINNcTCXw3yWCBKA>\n <xmx:wmShX224zXFCe3nSH98ouJC6xSW6U6jb0RhU5C-SCH-fVXFox4fTKw>\n <xmx:wmShX8E4CQ9XWI-riqyblk1FwtSFKgTXf10U67aVNYDUPtAQPnhyEw>\n <xmx:wmShX6bVR-pmPYLz82dzROZ8pJfn5zRZKONc7yj-SyZ04NySWRbOaCWlbzQ>",
        "From": "Thomas Monjalon <thomas@monjalon.net>",
        "To": "dev@dpdk.org",
        "Cc": "ferruh.yigit@intel.com, david.marchand@redhat.com,\n bruce.richardson@intel.com, olivier.matz@6wind.com,\n andrew.rybchenko@oktetlabs.ru, jerinj@marvell.com, viacheslavo@nvidia.com,\n Ajit Khaparde <ajit.khaparde@broadcom.com>, Ray Kinsella <mdr@ashroe.eu>,\n Neil Horman <nhorman@tuxdriver.com>",
        "Date": "Tue,  3 Nov 2020 15:09:29 +0100",
        "Message-Id": "<20201103140931.488700-15-thomas@monjalon.net>",
        "X-Mailer": "git-send-email 2.28.0",
        "In-Reply-To": "<20201103140931.488700-1-thomas@monjalon.net>",
        "References": "<20201029092751.3837177-1-thomas@monjalon.net>\n <20201103140931.488700-1-thomas@monjalon.net>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v5 14/16] mbuf: remove deprecated timestamp field",
        "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": "As announced in the deprecation note, the field timestamp\nis removed to give more space to the dynamic fields.\nThe related offload flag PKT_RX_TIMESTAMP is also removed.\n\nThis is how the mbuf layout looks like (pahole-style):\n\nword  type                              name                byte  size\n 0    void *                            buf_addr;         /*   0 +  8 */\n 1    rte_iova_t                        buf_iova          /*   8 +  8 */\n      /* --- RTE_MARKER64               rearm_data;                   */\n 2    uint16_t                          data_off;         /*  16 +  2 */\n      uint16_t                          refcnt;           /*  18 +  2 */\n      uint16_t                          nb_segs;          /*  20 +  2 */\n      uint16_t                          port;             /*  22 +  2 */\n 3    uint64_t                          ol_flags;         /*  24 +  8 */\n      /* --- RTE_MARKER                 rx_descriptor_fields1;        */\n 4    uint32_t             union        packet_type;      /*  32 +  4 */\n      uint32_t                          pkt_len;          /*  36 +  4 */\n 5    uint16_t                          data_len;         /*  40 +  2 */\n      uint16_t                          vlan_tci;         /*  42 +  2 */\n 5.5  uint64_t             union        hash;             /*  44 +  8 */\n 6.5  uint16_t                          vlan_tci_outer;   /*  52 +  2 */\n      uint16_t                          buf_len;          /*  54 +  2 */\n 7    uint64_t                          dynfield0[1];     /*  56 +  8 */\n      /* --- RTE_MARKER                 cacheline1;                   */\n 8    struct rte_mempool *              pool;             /*  64 +  8 */\n 9    struct rte_mbuf *                 next;             /*  72 +  8 */\n10    uint64_t             union        tx_offload;       /*  80 +  8 */\n11    struct rte_mbuf_ext_shared_info * shinfo;           /*  88 +  8 */\n12    uint16_t                          priv_size;        /*  96 +  2 */\n      uint16_t                          timesync;         /*  98 +  2 */\n12.5  uint32_t                          dynfield1[7];     /* 100 + 28 */\n16    /* --- END                                             128      */\n\nSigned-off-by: Thomas Monjalon <thomas@monjalon.net>\nReviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>\nAcked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>\nAcked-by: Ray Kinsella <mdr@ashroe.eu>\nAcked-by: David Marchand <david.marchand@redhat.com>\n---\n app/test/test_mbuf.c                   |  1 -\n doc/guides/rel_notes/deprecation.rst   |  4 ----\n doc/guides/rel_notes/release_20_11.rst |  4 ++++\n lib/librte_mbuf/rte_mbuf.c             |  2 --\n lib/librte_mbuf/rte_mbuf.h             |  2 +-\n lib/librte_mbuf/rte_mbuf_core.h        | 12 ++----------\n lib/librte_mbuf/rte_mbuf_dyn.c         |  1 +\n 7 files changed, 8 insertions(+), 18 deletions(-)",
    "diff": "diff --git a/app/test/test_mbuf.c b/app/test/test_mbuf.c\nindex 3a13cf4e1f..a40f7d4883 100644\n--- a/app/test/test_mbuf.c\n+++ b/app/test/test_mbuf.c\n@@ -1621,7 +1621,6 @@ test_get_rx_ol_flag_name(void)\n \t\tVAL_NAME(PKT_RX_FDIR_FLX),\n \t\tVAL_NAME(PKT_RX_QINQ_STRIPPED),\n \t\tVAL_NAME(PKT_RX_LRO),\n-\t\tVAL_NAME(PKT_RX_TIMESTAMP),\n \t\tVAL_NAME(PKT_RX_SEC_OFFLOAD),\n \t\tVAL_NAME(PKT_RX_SEC_OFFLOAD_FAILED),\n \t\tVAL_NAME(PKT_RX_OUTER_L4_CKSUM_BAD),\ndiff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst\nindex fe3fd3956c..22aecf0bab 100644\n--- a/doc/guides/rel_notes/deprecation.rst\n+++ b/doc/guides/rel_notes/deprecation.rst\n@@ -84,10 +84,6 @@ Deprecation Notices\n * mbuf: Some fields will be converted to dynamic API in DPDK 20.11\n   in order to reserve more space for the dynamic fields, as explained in\n   `this presentation <https://www.youtube.com/watch?v=Ttl6MlhmzWY>`_.\n-  The following static fields will be moved as dynamic:\n-\n-  - ``timestamp``\n-\n   As a consequence, the layout of the ``struct rte_mbuf`` will be re-arranged,\n   avoiding impact on vectorized implementation of the driver datapaths,\n   while evaluating performance gains of a better use of the first cache line.\ndiff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst\nindex f1a6925678..7c8246d1b3 100644\n--- a/doc/guides/rel_notes/release_20_11.rst\n+++ b/doc/guides/rel_notes/release_20_11.rst\n@@ -458,6 +458,10 @@ API Changes\n * mbuf: Removed the field ``seqn`` from the structure ``rte_mbuf``.\n   It is replaced with dynamic fields.\n \n+* mbuf: Removed the field ``timestamp`` from the structure ``rte_mbuf``.\n+  It is replaced with the dynamic field RTE_MBUF_DYNFIELD_TIMESTAMP_NAME\n+  which was previously used only for Tx.\n+\n * pci: Removed the ``rte_kernel_driver`` enum defined in rte_dev.h and\n   replaced with a private enum in the PCI subsystem.\n \ndiff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c\nindex 8a456e5e64..09d93e6899 100644\n--- a/lib/librte_mbuf/rte_mbuf.c\n+++ b/lib/librte_mbuf/rte_mbuf.c\n@@ -764,7 +764,6 @@ const char *rte_get_rx_ol_flag_name(uint64_t mask)\n \tcase PKT_RX_QINQ_STRIPPED: return \"PKT_RX_QINQ_STRIPPED\";\n \tcase PKT_RX_QINQ: return \"PKT_RX_QINQ\";\n \tcase PKT_RX_LRO: return \"PKT_RX_LRO\";\n-\tcase PKT_RX_TIMESTAMP: return \"PKT_RX_TIMESTAMP\";\n \tcase PKT_RX_SEC_OFFLOAD: return \"PKT_RX_SEC_OFFLOAD\";\n \tcase PKT_RX_SEC_OFFLOAD_FAILED: return \"PKT_RX_SEC_OFFLOAD_FAILED\";\n \tcase PKT_RX_OUTER_L4_CKSUM_BAD: return \"PKT_RX_OUTER_L4_CKSUM_BAD\";\n@@ -808,7 +807,6 @@ rte_get_rx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)\n \t\t{ PKT_RX_FDIR_FLX, PKT_RX_FDIR_FLX, NULL },\n \t\t{ PKT_RX_QINQ_STRIPPED, PKT_RX_QINQ_STRIPPED, NULL },\n \t\t{ PKT_RX_LRO, PKT_RX_LRO, NULL },\n-\t\t{ PKT_RX_TIMESTAMP, PKT_RX_TIMESTAMP, NULL },\n \t\t{ PKT_RX_SEC_OFFLOAD, PKT_RX_SEC_OFFLOAD, NULL },\n \t\t{ PKT_RX_SEC_OFFLOAD_FAILED, PKT_RX_SEC_OFFLOAD_FAILED, NULL },\n \t\t{ PKT_RX_QINQ, PKT_RX_QINQ, NULL },\ndiff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h\nindex a1414ed7cd..17e0b205c0 100644\n--- a/lib/librte_mbuf/rte_mbuf.h\n+++ b/lib/librte_mbuf/rte_mbuf.h\n@@ -1095,6 +1095,7 @@ rte_pktmbuf_attach_extbuf(struct rte_mbuf *m, void *buf_addr,\n static inline void\n rte_mbuf_dynfield_copy(struct rte_mbuf *mdst, const struct rte_mbuf *msrc)\n {\n+\tmemcpy(&mdst->dynfield0, msrc->dynfield0, sizeof(mdst->dynfield0));\n \tmemcpy(&mdst->dynfield1, msrc->dynfield1, sizeof(mdst->dynfield1));\n }\n \n@@ -1108,7 +1109,6 @@ __rte_pktmbuf_copy_hdr(struct rte_mbuf *mdst, const struct rte_mbuf *msrc)\n \tmdst->tx_offload = msrc->tx_offload;\n \tmdst->hash = msrc->hash;\n \tmdst->packet_type = msrc->packet_type;\n-\tmdst->timestamp = msrc->timestamp;\n \trte_mbuf_dynfield_copy(mdst, msrc);\n }\n \ndiff --git a/lib/librte_mbuf/rte_mbuf_core.h b/lib/librte_mbuf/rte_mbuf_core.h\nindex 3fb5abda3c..38e24a580d 100644\n--- a/lib/librte_mbuf/rte_mbuf_core.h\n+++ b/lib/librte_mbuf/rte_mbuf_core.h\n@@ -149,10 +149,7 @@ extern \"C\" {\n  */\n #define PKT_RX_LRO           (1ULL << 16)\n \n-/**\n- * Indicate that the timestamp field in the mbuf is valid.\n- */\n-#define PKT_RX_TIMESTAMP     (1ULL << 17)\n+/* There is no flag defined at offset 17. It is free for any future use. */\n \n /**\n  * Indicate that security offload processing was applied on the RX packet.\n@@ -589,12 +586,7 @@ struct rte_mbuf {\n \n \tuint16_t buf_len;         /**< Length of segment buffer. */\n \n-\t/** Valid if PKT_RX_TIMESTAMP is set. The unit and time reference\n-\t * are not normalized but are always the same for a given port.\n-\t * Some devices allow to query rte_eth_read_clock that will return the\n-\t * current device timestamp.\n-\t */\n-\tuint64_t timestamp;\n+\tuint64_t dynfield0[1]; /**< Reserved for dynamic fields. */\n \n \t/* second cache line - fields only used in slow path or on TX */\n \tRTE_MARKER cacheline1 __rte_cache_min_aligned;\ndiff --git a/lib/librte_mbuf/rte_mbuf_dyn.c b/lib/librte_mbuf/rte_mbuf_dyn.c\nindex 5b608a27d7..4f50da09f3 100644\n--- a/lib/librte_mbuf/rte_mbuf_dyn.c\n+++ b/lib/librte_mbuf/rte_mbuf_dyn.c\n@@ -125,6 +125,7 @@ init_shared_mem(void)\n \t\t * rte_mbuf_dynfield_copy().\n \t\t */\n \t\tmemset(shm, 0, sizeof(*shm));\n+\t\tmark_free(dynfield0);\n \t\tmark_free(dynfield1);\n \n \t\t/* init free_flags */\n",
    "prefixes": [
        "v5",
        "14/16"
    ]
}