Show a cover letter.

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

{
    "id": 921,
    "url": "http://patches.dpdk.org/api/covers/921/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20240510050507.14381-1-stephen@networkplumber.org/",
    "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": "<20240510050507.14381-1-stephen@networkplumber.org>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20240510050507.14381-1-stephen@networkplumber.org",
    "date": "2024-05-10T05:01:20",
    "name": "[RFC,0/3] generic sw counters",
    "submitter": {
        "id": 27,
        "url": "http://patches.dpdk.org/api/people/27/?format=api",
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20240510050507.14381-1-stephen@networkplumber.org/mbox/",
    "series": [
        {
            "id": 31900,
            "url": "http://patches.dpdk.org/api/series/31900/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=31900",
            "date": "2024-05-10T05:01:20",
            "name": "generic sw counters",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/31900/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/921/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 7F6FE43FEC;\n\tFri, 10 May 2024 07:05:13 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 19A38402F0;\n\tFri, 10 May 2024 07:05:13 +0200 (CEST)",
            "from mail-pl1-f176.google.com (mail-pl1-f176.google.com\n [209.85.214.176])\n by mails.dpdk.org (Postfix) with ESMTP id 84F1C402D1\n for <dev@dpdk.org>; Fri, 10 May 2024 07:05:11 +0200 (CEST)",
            "by mail-pl1-f176.google.com with SMTP id\n d9443c01a7336-1ec41d82b8bso14766745ad.2\n for <dev@dpdk.org>; Thu, 09 May 2024 22:05:11 -0700 (PDT)",
            "from hermes.lan (204-195-96-226.wavecable.com. [204.195.96.226])\n by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-1ef0c25566asm23007385ad.283.2024.05.09.22.05.09\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 09 May 2024 22:05:09 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1715317511;\n x=1715922311; 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=ldQ91PYLpuYXR1LIs3TfeIoMn+s/VENTxg6pMN0NASE=;\n b=oWWh9HvnGcg8X9PHLEh1gqH7uPyksLZ5EZ5gNXZGPMi1+2Oe+SEidnx6kJ9FQhsndu\n JPrFtUXf21uolVjO5cHsLXNcmnwh0iYXo4KLXcyMDprUMTabM6n097gjP40SqeQ/1AEz\n dUsvN7890crtjObK8VNw1byh2n2H/ZSUBUWAgUNrCfeSYBxPt4icOD93mOuidmZbI5Wt\n MEEVvFdvsWkoJHtmhI+1SJYC+R4j4CYRdEsado9lSBDLTJ+AcTQsmwu1pN+6PpkkFFdo\n slc2oxhlgyKTKJRn16ciwLYb5sw1Z/RS9+K4vSJl02y8Wi96aHtx3HDO57fo7G08NTHW\n z5FQ==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1715317511; x=1715922311;\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=ldQ91PYLpuYXR1LIs3TfeIoMn+s/VENTxg6pMN0NASE=;\n b=VoidX5iLg09mWiJ77WkrvxBWPUi6/0TmjxE78oigQjI5IvoEKfE4gRj/SxPsrte2+d\n jJ9rmwpmrtAjIdFhJzkORF0RtV9f9qGE/OEyUxAGka74iqji4hEEhMp086fYPmMjJcr4\n ji7S9afBbzv3X6dHz03i93Sf3c373hw6R7e+k9nb3FPaHdh10c8qWwCfO8AS/YW72Um5\n tOh9FhjD9ufhMZlLlyiribv+nZeVwuMGtbtXr9E+ZsW+r4xqm9jxwrY6iJAIkCxQlXFS\n z4zIzg4GCTI527tZkGvJlHm/5lfCbED/XFtZ3N6I6p8+bl1nHn8gxgTDzw6KB9iyAXZy\n p7Fg==",
        "X-Gm-Message-State": "AOJu0Yz3mPaaejZdVkNgDhaRL3E+eCee1N0I3VLbhDMOhbFDktmpVG4s\n AW7OlgdyXeQXdd6FgoaoRbIAvJV/dwWAlaWp1HLoY2MAGq7bCem6T47gOpyE0SSBCh3mL9mZO7S\n qEiA=",
        "X-Google-Smtp-Source": "\n AGHT+IGwFR4OvELBLuNnfw74dl//76riOriG21aZp4DB9zhYeOW553/s+L0657Hb4PO3ft3dECBPtw==",
        "X-Received": "by 2002:a17:902:ce85:b0:1e5:11ac:a283 with SMTP id\n d9443c01a7336-1ef43d0ada2mr20902185ad.9.1715317510687;\n Thu, 09 May 2024 22:05:10 -0700 (PDT)",
        "From": "Stephen Hemminger <stephen@networkplumber.org>",
        "To": "dev@dpdk.org",
        "Cc": "Stephen Hemminger <stephen@networkplumber.org>",
        "Subject": "[RFC 0/3] generic sw counters",
        "Date": "Thu,  9 May 2024 22:01:20 -0700",
        "Message-ID": "<20240510050507.14381-1-stephen@networkplumber.org>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20240425174617.2126159-1-ferruh.yigit@amd.com>",
        "References": "<20240425174617.2126159-1-ferruh.yigit@amd.com>",
        "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 my attempt to demonstrate:\n  - generic counters for SW drivers, the example does af_packet and tap\n    but same should be applied to af_xdp, virtio, etc.\n  - counters are safe against 64 bit tearing on 32 bit platform\n \nThe naming and organization could be improved:\n  - should this be in rte_ethdev?\n  - better name for struct and vairables?\n  - audit and handle errors better.\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\n drivers/net/af_packet/rte_eth_af_packet.c |  97 ++-----\n drivers/net/tap/rte_eth_tap.c             | 100 ++------\n drivers/net/tap/rte_eth_tap.h             |  17 +-\n lib/ethdev/ethdev_swstats.c               | 294 ++++++++++++++++++++++\n lib/ethdev/ethdev_swstats.h               |  60 +++++\n lib/ethdev/meson.build                    |   2 +\n lib/ethdev/version.map                    |   7 +\n 7 files changed, 400 insertions(+), 177 deletions(-)\n create mode 100644 lib/ethdev/ethdev_swstats.c\n create mode 100644 lib/ethdev/ethdev_swstats.h"
}