Show a cover letter.

GET /api/covers/923/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 923,
    "url": "https://patches.dpdk.org/api/covers/923/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/cover/20240513185448.120356-1-stephen@networkplumber.org/",
    "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": "<20240513185448.120356-1-stephen@networkplumber.org>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20240513185448.120356-1-stephen@networkplumber.org",
    "date": "2024-05-13T18:52:10",
    "name": "[RFC,v2,0/7] generic SW counters",
    "submitter": {
        "id": 27,
        "url": "https://patches.dpdk.org/api/people/27/?format=api",
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/cover/20240513185448.120356-1-stephen@networkplumber.org/mbox/",
    "series": [
        {
            "id": 31915,
            "url": "https://patches.dpdk.org/api/series/31915/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=31915",
            "date": "2024-05-13T18:52:10",
            "name": "generic SW counters",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/31915/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/covers/923/comments/",
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 9D0DD4401D;\n\tMon, 13 May 2024 20:55:01 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id F1EE6402EF;\n\tMon, 13 May 2024 20:55:00 +0200 (CEST)",
            "from mail-pg1-f176.google.com (mail-pg1-f176.google.com\n [209.85.215.176])\n by mails.dpdk.org (Postfix) with ESMTP id 9B7E3402CD\n for <dev@dpdk.org>; Mon, 13 May 2024 20:54:59 +0200 (CEST)",
            "by mail-pg1-f176.google.com with SMTP id\n 41be03b00d2f7-5d42e7ab8a9so2666186a12.3\n for <dev@dpdk.org>; Mon, 13 May 2024 11:54:59 -0700 (PDT)",
            "from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226])\n by smtp.gmail.com with ESMTPSA id\n 41be03b00d2f7-634103f7237sm8154680a12.71.2024.05.13.11.54.57\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Mon, 13 May 2024 11:54:57 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1715626498;\n x=1716231298; darn=dpdk.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=Yzaco9WZn0+5AHZTJ4uUrdh2nerd5ihBSNHlXchIYMI=;\n b=Kvnr0QaKYH8HO4lPIjJfima1+0YrbIvENCBm0GJHKha4ttkue84h8+Tr5h1NEMEie7\n KlamcqCOMK5S+Zy12qqjrWQr16lXA3/wseluWpz2cnneLCTiMiO7YYcnrasJMjDJhJn6\n W3H147stewdFfmaSQ88lxeMwBX/dEN03r/vd+JnzKjpMjLFeSSI0QgcuRqPSdz+nlejt\n MMulKnVrjFSqOkX9dPjtS/7vhIcmgKZp6ukicsT2u6HhRNJ3ewqd9ZuQus2AWkJTloRZ\n PI/oCh6gFEa0hLda2HB0AL9HvkNkN0R8mFw+X4UvxcewT8XEFy3/fWr07Wf0VjEhut7F\n BpoQ==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1715626498; x=1716231298;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=Yzaco9WZn0+5AHZTJ4uUrdh2nerd5ihBSNHlXchIYMI=;\n b=o/JPtImrDXJaix5clFABg2A90oQC+AeDePC7t2pNbEZqqUYk8tmfi59tK+lQagOg+h\n GHl7c/+F1eQVuTL0qCs/mDOROes/872ICnr0VcnJmCdt95Fxf3l23beGOmBIrj75g8GX\n BX45wny6mg2gdhvOMIVta3oT1JJRBVFP3mq8O9nM4VeAMYN0xeKQWmycMQmhIJK0Bl2N\n koNEYZFMXO4JiNb/jhezDuFYyP7KTxP+OEg6qXLcqLiUKto7NL634EZ9qAmLyA4zJ0M9\n 1N2h7Kws2VRhsed8bo6BZoZlxDoPGLuU7uS8W3amXWIc/IUgigZhbBjdL01ThP6t+0qC\n O+5g==",
        "X-Gm-Message-State": "AOJu0YxRI5ftMWyBeM04nV5UtyB7ZmUrHm42CBlHm2dJ4VxdCfw9FXO0\n oAi1XvRP5XVceoC0wNwwPFb6WBgTrZaJPTadQ5d7XDvcOBt125CxFwXlZbU4pWTM/VZpz4gHBaA\n CXxDF3Q==",
        "X-Google-Smtp-Source": "\n AGHT+IH5Wl1Svc0iJxbices1F2unE5/N/H8wxjncqPGwsJLjiTRBO2+SQh1ckzAp5S2edDoor17gFw==",
        "X-Received": "by 2002:a05:6a20:8415:b0:1aa:48d1:2144 with SMTP id\n adf61e73a8af0-1afde1ddba4mr10838032637.52.1715626498483;\n Mon, 13 May 2024 11:54:58 -0700 (PDT)",
        "From": "Stephen Hemminger <stephen@networkplumber.org>",
        "To": "dev@dpdk.org",
        "Cc": "Stephen Hemminger <stephen@networkplumber.org>",
        "Subject": "[RFC v2 0/7] generic SW counters",
        "Date": "Mon, 13 May 2024 11:52:10 -0700",
        "Message-ID": "<20240513185448.120356-1-stephen@networkplumber.org>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20240510050507.14381-1-stephen@networkplumber.org>",
        "References": "<20240510050507.14381-1-stephen@networkplumber.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "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"
    },
    "content": "This is second attempt to demonstrate:\n  - generic counters for SW drivers, the example does covers:\n    af_packet, af_xdp, tap, ring but could be applied to virtio, etc.\n  - counters are safe against 64 bit tearing on 32 bit platform\n \nv2 - renamed and reorganized\n   - put counters in eal, stats in ethdev internal functions\n   - use offset to find stats in queue struct\n\nStephen Hemminger (3):\n  ethdev: add internal helper of SW driver statistics\n  net/af_packet: use SW stats helper\n  net/tap: use generic SW stats\n\nStephen Hemminger (7):\n  eal: generic 64 bit counter\n  ethdev: add internal helper of SW driver statistics\n  net/af_packet: use SW stats helper\n  net/tap: use generic SW stats\n  net/pcap: use generic SW stats\n  net/af_xdp: use generic SW stats\n  net/ring: use generic SW stats\n\n drivers/net/af_packet/rte_eth_af_packet.c |  95 +++-----\n drivers/net/af_xdp/rte_eth_af_xdp.c       | 115 ++++-----\n drivers/net/pcap/pcap_ethdev.c            | 146 ++++--------\n drivers/net/ring/rte_eth_ring.c           |  85 +++----\n drivers/net/tap/rte_eth_tap.c             | 102 +++-----\n drivers/net/tap/rte_eth_tap.h             |  15 +-\n lib/eal/include/meson.build               |   1 +\n lib/eal/include/rte_counter.h             |  91 ++++++++\n lib/ethdev/ethdev_swstats.c               | 270 ++++++++++++++++++++++\n lib/ethdev/ethdev_swstats.h               |  54 +++++\n lib/ethdev/meson.build                    |   2 +\n lib/ethdev/version.map                    |   8 +\n 12 files changed, 624 insertions(+), 360 deletions(-)\n create mode 100644 lib/eal/include/rte_counter.h\n create mode 100644 lib/ethdev/ethdev_swstats.c\n create mode 100644 lib/ethdev/ethdev_swstats.h"
}