Show a cover letter.

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

    "id": 52208,
    "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-03T16:59:48",
    "name": "[v10,0/1] Introduce AF_XDP PMD",
    "submitter": {
        "id": 1120,
        "url": "",
        "name": "Xiaolong Ye",
        "email": ""
    "mbox": "",
    "series": [
            "id": 4094,
            "url": "",
            "web_url": "",
            "date": "2019-04-03T16:59:48",
            "name": "Introduce AF_XDP PMD",
            "version": 10,
            "mbox": ""
    "comments": "",
    "headers": {
        "X-Mailer": "git-send-email 2.17.1",
        "List-Id": "DPDK patches and discussions <>",
        "Precedence": "list",
        "List-Help": "<>",
        "Date": "Thu,  4 Apr 2019 00:59:48 +0800",
        "X-Mailman-Version": "2.1.15",
        "Delivered-To": "",
        "List-Unsubscribe": "<>,\n\t<>",
        "List-Subscribe": "<>,\n\t<>",
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "Cc": "Qi Zhang <>,\n\tKarlsson Magnus <>,\n\tTopel Bjorn <>,\n\tMaxime Coquelin <>,\n\tBruce Richardson <>,\n\tAnanyev Konstantin <>,\n\tDavid Marchand <>,\n\tAndrew Rybchenko <>,\n\tOlivier Matz <>,\n\tXiaolong Ye <>",
        "To": ", Stephen Hemminger <>,\n\tFerruh Yigit <>, Luca Boccassi <>",
        "Errors-To": "",
        "References": "<>",
        "Sender": "\"dev\" <>",
        "From": "Xiaolong Ye <>",
        "Return-Path": "<>",
        "X-IronPort-AV": "E=Sophos;i=\"5.60,305,1549958400\"; d=\"scan'208\";a=\"139848693\"",
        "List-Post": "<>",
        "Received": [
            "from [] (localhost [])\n\tby (Postfix) with ESMTP id CC3A31B505;\n\tWed,  3 Apr 2019 19:04:57 +0200 (CEST)",
            "from ( [])\n\tby (Postfix) with ESMTP id 2011A1B4A6\n\tfor <>; Wed,  3 Apr 2019 19:04:55 +0200 (CEST)",
            "from ([])\n\tby with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t03 Apr 2019 10:04:55 -0700",
            "from ([])\n\tby with ESMTP; 03 Apr 2019 10:04:52 -0700"
        "List-Archive": "<>",
        "X-Amp-File-Uploaded": "False",
        "Subject": "[dpdk-dev] [PATCH v10 0/1] Introduce AF_XDP PMD",
        "In-Reply-To": "<>",
        "Message-Id": "<>",
        "X-ExtLoop1": "1",
        "X-BeenThere": "",
        "X-Original-To": ""
    "content": "Overview\n========\n\nThis patchset adds a new PMD driver for AF_XDP which is a proposed\nfaster version of AF_PACKET interface in Linux, see below links [1] [2] for\ndetails of AF_XDP introduction:\n\nAF_XDP roadmap\n==============\n- AF_XDP is included in upstream kernel since 4.18, and AF_XDP support\n  in libbpf has been merged in v5.1-rc1.\n- Now i40e and ixgbe drivers have supported zero copy mode.\n\nChange logs\n===========\nv10:\n\n- refine the Makefile, remove RTE_KERNELDIR related CFLAGS \n- add a new internal file af_xdp_deps.h to handle the dependency for\n  asm/barrier.h\n- fix a typo observed by Stephen\n- rename xsk.h to bpf/xsk.h as xsk.h is assumed to be installed in\n  /usr/local/include/bpf\n- add libbpf build steps in af_xdp.rst\n\n\nv9:\n- adjust header files order according to Stephen's suggestion\n\nv8:\n- address Ferruh's comments on V7\n- replace posix_memalign with rte_memzone_reserve_aligned to get better\n  performance\n- keep the first patch only as Oliver suggested as zero copy part\n  implementation is still in suspense, we may provide the related patch\n  later.\n\nv7:\n- mention mtu limitation in af_xdp.rst\n- fix the vdev name in af_xdp.rst\n\nV6:\n\n- remove the newline in AF_XDP_LOG definition to avoid double new lines\n  issue.\n- rename MEMPOOL_F_PAGE_ALIGN to MEMPOOL_CHUNK_F_PAGE_ALIGN.\n\nV5:\n\n- disable AF_XDP pmd by default due to it requires kernel more recent\n  than minimum kernel version supported by DPDK\n- address other review comments of Maxime\n\nV4:\n\n- change vdev name to net_af_xdp\n- adopt dynamic log type for all logging\n- Fix other style issues raised by Stephen\n\nV3:\n\n- Fix all style issues pointed by Stephen, Mattias, David.\n- Drop the testpmd change as we'll adopt Jerin's suggestion to add a new\n  mempool driver to handle the application use of AF_XDP's zero copy feature.\n\nV2:\n- Fix a NULL pointer reference crash issue\n- Fix txonly stop sending traffic in zc mode\n- Refactor rte_mbuf.c to avoid ABI breakage.\n- Fix multiple style issues pointed by Ferruh, David, Stephen, Luca.\n\nchanges vs RFC sent by Qi last Aug:\n\n- Re-work base on AF_XDP's interface changes since the new libbpf has\n  provided higher-level APIs that hide many of the details of the AP_XDP\n  uapi. After the rework, it helps to reduce 300+ lines of code.\n\n- multi-queues is not supported due to current libbpf doesn't support\n  multi-sockets on a single umem.\n\n- No extra steps to load xdp program manually, since the current behavior of\n  libbpf would load a default xdp program when user calls xsk_socket__create.\n  userspace application only needs to handle the cleanup.\n\nHow to try\n==========\n\n1. take the kernel >= v5.1-rc1, build kernel and replace your host\n   kernel with it.\n   \n   make sure you turn on XDP sockets when compiling\n\n   Networking support -->\n        Networking options -->\n                [ * ] XDP sockets\n   \n2. build & install libbpf in tools/lib/bpf\n\n   cd tools/lib/bpf\n   make install_lib\n   make install_headers\n\n3. ethtool -L enp59s0f0 combined 1\n\n4. extra step to build dpdk\n\n   explicitly enable AF_XDP pmd by adding below line to\n   config/common_linux\n\n   CONFIG_RTE_LIBRTE_PMD_AF_XDP=y\n\n5. start testpmd\n\n   ./build/app/testpmd -c 0xc -n 4 --vdev net_af_xdp,iface=enp59s0f0,queue=0 -- -i --rxq=1 --txq=1\n\n    in this case, default xdp program will be loaded and linked to queue 0 of enp59s0f0,\n    network traffics travel to queue 0 will be redirected to af_xdp socket.\n\nXiaolong Ye (1):\n  net/af_xdp: introduce AF XDP PMD driver\n\n MAINTAINERS                                   |   7 +\n config/common_base                            |   5 +\n doc/guides/nics/af_xdp.rst                    |  50 +\n doc/guides/nics/features/af_xdp.ini           |  11 +\n doc/guides/nics/index.rst                     |   1 +\n doc/guides/rel_notes/release_19_05.rst        |   7 +\n drivers/net/Makefile                          |   1 +\n drivers/net/af_xdp/Makefile                   |  28 +\n drivers/net/af_xdp/af_xdp_deps.h              |  14 +\n drivers/net/af_xdp/                |  21 +\n drivers/net/af_xdp/rte_eth_af_xdp.c           | 955 ++++++++++++++++++\n drivers/net/af_xdp/ |   3 +\n drivers/net/                       |   1 +\n mk/                                 |   1 +\n 14 files changed, 1105 insertions(+)\n create mode 100644 doc/guides/nics/af_xdp.rst\n create mode 100644 doc/guides/nics/features/af_xdp.ini\n create mode 100644 drivers/net/af_xdp/Makefile\n create mode 100644 drivers/net/af_xdp/af_xdp_deps.h\n create mode 100644 drivers/net/af_xdp/\n create mode 100644 drivers/net/af_xdp/rte_eth_af_xdp.c\n create mode 100644 drivers/net/af_xdp/"