Show a cover letter.

GET /api/covers/53056/?format=api
Content-Type: application/json
Vary: Accept

    "id": 53056,
    "url": "",
    "web_url": "",
    "project": {
        "id": 1,
        "url": "",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "",
        "list_email": "",
        "web_url": "",
        "scm_url": "git://",
        "webscm_url": ""
    "msgid": "<>",
    "date": "2019-04-24T17:34:21",
    "name": "[v3,0/3] Add rte_eth_read_clock API",
    "submitter": {
        "id": 1155,
        "url": "",
        "name": "Tom Barbette",
        "email": ""
    "mbox": "",
    "series": [
            "id": 4453,
            "url": "",
            "web_url": "",
            "date": "2019-04-24T17:34:21",
            "name": "Add rte_eth_read_clock API",
            "version": 3,
            "mbox": ""
    "comments": "",
    "headers": {
        "X-Mailer": "git-send-email 2.17.1",
        "List-Id": "DPDK patches and discussions <>",
        "From": "Tom Barbette <>",
        "List-Help": "<>",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;; s=default;\n\tt=1556127311; bh=DA6EwbZVP6siEb3E9AdSyKcPG5E8jMSfKI5+6rPMCFc=;\n\th=From:To:Cc:Subject:Date;\n\tb=Ycy9RLa40GbRSUG8S0rcVUH+fZxuCaSVobwDyiEjgL5CwJ0nGdO4Hhc4cwkQHmF85\n\tAKPCBD/CsFDvqX/OgT5kJHS//zG1B6BIDJLwrqYwS8sxUFlmchIvetH3JbayyZ9MG2\n\t2QUTD8U31DC/INGH+7Dj8qaQf17Mnx6AZad0HN+8=",
        "X-Mailman-Version": "2.1.15",
        "X-KTH-Auth": "barbette []",
        "Delivered-To": "",
        "List-Subscribe": "<>,\n\t<>",
        "Cc": ",,\n\tThomas Monjalon <>,\n\tFerruh Yigit <>,\n\tAndrew Rybchenko <>,\n\tShahaf Shuler <>, Yongseok Koh <>, \n\, Tom Barbette <>",
        "To": "",
        "Errors-To": "",
        "Sender": "\"dev\" <>",
        "Return-Path": "<>",
        "X-BeenThere": "",
        "X-Virus-Scanned": "by amavisd-new at",
        "List-Post": "<>",
        "Received": [
            "from [] (localhost [])\n\tby (Postfix) with ESMTP id 6D39B1B53F;\n\tWed, 24 Apr 2019 19:35:13 +0200 (CEST)",
            "from ( [])\n\tby (Postfix) with ESMTP id A8B2D1B4FC\n\tfor <>; Wed, 24 Apr 2019 19:35:12 +0200 (CEST)",
            "from (localhost.localdomain [])\n\tby (Postfix) with ESMTP id 50D5F66B8;\n\tWed, 24 Apr 2019 19:35:12 +0200 (CEST)",
            "from ([])\n\tby ( []) (amavisd-new,\n\tport 10024)\n\twith LMTP id YrBZxPGK8wG3; Wed, 24 Apr 2019 19:35:11 +0200 (CEST)",
            "from ( [])\n\tby (Postfix) with ESMTPSA id A46ED5D8C;\n\tWed, 24 Apr 2019 19:35:10 +0200 (CEST)"
        "Date": "Wed, 24 Apr 2019 17:34:21 +0000",
        "X-KTH-mail-from": "",
        "List-Archive": "<>",
        "Subject": "[dpdk-dev] [PATCH v3 0/3] Add rte_eth_read_clock API",
        "Message-Id": "<>",
        "Precedence": "list",
        "List-Unsubscribe": "<>,\n\t<>",
        "X-Original-To": ""
    "content": "Some NICs allow to timestamp packets, but do not support the full\nPTP synchronization process. Hence, the value set in the mbuf\ntimestamp field is only the raw value of an internal clock.\n\nTo make sense of this value, one at least needs to be able to query\nthe current hardware clock value. This patch series adds a new API to do\nso, rte_eth_read_clock. As with the TSC, from there\na frequency can be derieved by querying multiple time the current value of the\ninternal clock with some known delay between the queries (example\nprovided in the API doc).\n\nThis patch series adds support of read_clock for MLX5.\n\nAn example app is provided in the rxtx_callback application.\nIt has been updated to display, on top of the software latency\nin cycles, the total latency since the packet was received in hardware.\nThe API is used to compute a delta in the TX callback. The raw amount of\nticks is converted to cycles using a variation of the technique describe above.\n\nAside from offloading timestamping, which relieve the\nsoftware from a few operations, this allows to get much more precision\nwhen studying the source of the latency in a system.\nEg. in our 100G, CX5 setup the rxtx callback application shows\nSW latency is around 74 cycles (TSC is 3.2Ghz), but the latency\nincluding NIC processing, PCIe, and queuing is around 196 cycles.\n\nOne may think at first this API is overlapping with te_eth_timesync_read_time.\nrte_eth_timesync_read_time is clearly identified as part of a set of functions\nto use PTP synchronization.\nThe device raw clock is not \"sync\" in any way. More importantly, the returned\nvalue is not a timeval, but an amount of ticks. We could have a cast-based\nsolution, but on top of being an ugly solution, some people seeing the timeval\ntype of rte_eth_timesync_read_time could use it blindly.\n\nChange in v2:\n  - Rebase on current master\n\nChange in v3:\n  - Address comments from Ferruh Yigit\n\nTom Barbette (3):\n  rte_ethdev: Add API function to read dev clock\n  mlx5: Implement support for read_clock\n  rxtx_callbacks: Add support for HW timestamp\n\n doc/guides/nics/features.rst                |  1 +\n doc/guides/sample_app_ug/rxtx_callbacks.rst |  9 ++-\n drivers/net/mlx5/mlx5.c                     |  1 +\n drivers/net/mlx5/mlx5.h                     |  1 +\n drivers/net/mlx5/mlx5_ethdev.c              | 30 +++++++\n drivers/net/mlx5/mlx5_glue.c                |  8 ++\n drivers/net/mlx5/mlx5_glue.h                |  2 +\n examples/rxtx_callbacks/Makefile            |  3 +\n examples/rxtx_callbacks/main.c              | 87 ++++++++++++++++++++-\n examples/rxtx_callbacks/         |  3 +\n lib/librte_ethdev/rte_ethdev.c              | 13 +++\n lib/librte_ethdev/rte_ethdev.h              | 45 +++++++++++\n lib/librte_ethdev/rte_ethdev_core.h         |  6 ++\n lib/librte_ethdev/    |  2 +\n lib/librte_mbuf/rte_mbuf.h                  |  2 +\n 15 files changed, 208 insertions(+), 5 deletions(-)"