All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/6] Introduce AF_XDP PMD
@ 2019-03-01  8:09 Xiaolong Ye
  2019-03-01  8:09 ` [PATCH v1 1/6] net/af_xdp: introduce AF_XDP PMD driver Xiaolong Ye
                   ` (16 more replies)
  0 siblings, 17 replies; 214+ messages in thread
From: Xiaolong Ye @ 2019-03-01  8:09 UTC (permalink / raw)
  To: dev; +Cc: Qi Zhang, Xiaolong Ye

Overview
========

This patchset adds a new PMD driver for AF_XDP which is a proposed
faster version of AF_PACKET interface in Linux, see below links [1] [2] for
details of AF_XDP introduction:

AF_XDP roadmap
==============
- AF_XDP is included in upstream kernel since 4.18, and AF_XDP support
  in libbpf has been merged in bpf-next/master. [3]
- Now i40e and ixgbe drivers have supported zero copy mode.

Change logs
===========

changes vs RFC sent by Qi last Aug:

- Re-work base on AF_XDP's interface changes since the new libbpf has
  provided higher-level APIs that hide many of the details of the AP_XDP
  uapi. After the rework, it helps to reduce 300+ lines of code.

- multi-queues is not supported due to current libbpf doesn't support
  multi-sockets on a single umem.

- No extra steps to load xdp program manually, since the current behavior of
  libbpf would load a default xdp program when user calls xsk_socket__create.
  userspace application only needs to handle the cleanup.

How to try
==========

1. take the latest bpf-next/master, build kernel and replace your host
   kernel with it.
   
   make sure you turn on XDP sockets when compiling

   Networking support -->
        Networking options -->
                [ * ] XDP sockets
   
2. build libbpf in tools/lib/bpf, and copy the libbpf.a and libbpf.so to /usr/lib64

   cd tools/lib/bpf
   make

3. extra steps to build dpdk 

   Add below lines to drivers/net/af_xdp/Makefile 

   CFLAGS += -I/<your linux src root>/tools/include
   CFLAGS += -I/<your linux src root>/tools/lib/bpf

   add below line to config/common_linuxapp to enble the config for af_xdp pmd 

   CONFIG_RTE_LIBRTE_PMD_AF_XDP=y


4. start testpmd

   ./build/app/testpmd -c 0xc -n 4 --vdev eth_af_xdp,iface=enp59s0f0,queue=0 -- -i --rxq=1 --txq=1

    in this case, default xdp program will be loaded and linked to queue 0 of enp59s0f0,
    network traffics travel to queue 0 will be redirected to af_xdp socket.


[1] https://lwn.net/Articles/750845/
[2] https://fosdem.org/2018/schedule/event/af_xdp/
[3] https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=143bdc2e27b44d2559596424bfb017d578be33eb

Xiaolong Ye (6):
  net/af_xdp: introduce AF_XDP PMD driver
  lib/mbuf: enable parse flags when create mempool
  lib/mempool: allow page size aligned mempool
  net/af_xdp: use mbuf mempool for buffer management
  net/af_xdp: enable zero copy
  app/testpmd: add mempool flags parameter

 MAINTAINERS                                   |   6 +
 app/test-pmd/parameters.c                     |  12 +
 app/test-pmd/testpmd.c                        |  17 +-
 app/test-pmd/testpmd.h                        |   1 +
 config/common_base                            |   5 +
 doc/guides/nics/af_xdp.rst                    |  43 +
 doc/guides/rel_notes/release_18_11.rst        |   7 +
 drivers/net/Makefile                          |   1 +
 drivers/net/af_xdp/Makefile                   |  31 +
 drivers/net/af_xdp/meson.build                |   7 +
 drivers/net/af_xdp/rte_eth_af_xdp.c           | 988 ++++++++++++++++++
 drivers/net/af_xdp/rte_pmd_af_xdp_version.map |   4 +
 lib/librte_mbuf/rte_mbuf.c                    |  15 +-
 lib/librte_mbuf/rte_mbuf.h                    |   8 +-
 lib/librte_mempool/rte_mempool.c              |   3 +
 lib/librte_mempool/rte_mempool.h              |   1 +
 mk/rte.app.mk                                 |   1 +
 17 files changed, 1139 insertions(+), 11 deletions(-)
 create mode 100644 doc/guides/nics/af_xdp.rst
 create mode 100644 drivers/net/af_xdp/Makefile
 create mode 100644 drivers/net/af_xdp/meson.build
 create mode 100644 drivers/net/af_xdp/rte_eth_af_xdp.c
 create mode 100644 drivers/net/af_xdp/rte_pmd_af_xdp_version.map

-- 
2.17.1

^ permalink raw reply	[flat|nested] 214+ messages in thread

end of thread, other threads:[~2019-04-25  5:50 UTC | newest]

Thread overview: 214+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-01  8:09 [PATCH v1 0/6] Introduce AF_XDP PMD Xiaolong Ye
2019-03-01  8:09 ` [PATCH v1 1/6] net/af_xdp: introduce AF_XDP PMD driver Xiaolong Ye
2019-03-01 15:38   ` Luca Boccassi
2019-03-02  8:14     ` Ye Xiaolong
2019-03-17  3:34       ` Ye Xiaolong
2019-03-24 12:07         ` Luca Boccassi
2019-03-25  2:45           ` Ye Xiaolong
2019-03-25 10:42             ` Luca Boccassi
2019-03-25 12:22               ` Ye Xiaolong
2019-03-26  2:18               ` Ye Xiaolong
2019-03-26 10:14                 ` Luca Boccassi
2019-03-26 12:12                   ` Ye Xiaolong
2019-03-01 18:31   ` Stephen Hemminger
2019-03-02  8:08     ` Ye Xiaolong
2019-03-01 18:32   ` Stephen Hemminger
2019-03-02  8:07     ` Ye Xiaolong
2019-03-05  8:25   ` David Marchand
2019-03-07  3:19     ` Ye Xiaolong
2019-03-11 16:20   ` Ferruh Yigit
2019-03-12 15:54     ` Ye Xiaolong
2019-03-13 10:54       ` Ferruh Yigit
2019-03-13 11:12         ` Ye Xiaolong
2019-03-17  3:35       ` Ye Xiaolong
2019-03-01  8:09 ` [PATCH v1 2/6] lib/mbuf: enable parse flags when create mempool Xiaolong Ye
2019-03-05  8:30   ` David Marchand
2019-03-07  3:07     ` Ye Xiaolong
2019-03-01  8:09 ` [PATCH v1 3/6] lib/mempool: allow page size aligned mempool Xiaolong Ye
2019-03-01  8:09 ` [PATCH v1 4/6] net/af_xdp: use mbuf mempool for buffer management Xiaolong Ye
2019-03-01  8:09 ` [PATCH v1 5/6] net/af_xdp: enable zero copy Xiaolong Ye
2019-03-01  8:09 ` [PATCH v1 6/6] app/testpmd: add mempool flags parameter Xiaolong Ye
2019-03-01 18:34   ` Stephen Hemminger
2019-03-02  8:06     ` Ye Xiaolong
2019-03-11 16:46   ` Ferruh Yigit
2019-03-12 15:10     ` Ye Xiaolong
2019-03-11 16:43 ` [PATCH v1 0/6] Introduce AF_XDP PMD Ferruh Yigit
2019-03-11 17:19   ` Thomas Monjalon
2019-03-12  1:51     ` Zhang, Qi Z
2019-03-12  7:55       ` Karlsson, Magnus
2019-03-19  7:12 ` [PATCH v2 " Xiaolong Ye
2019-03-19  7:12   ` [PATCH v2 1/6] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-03-19  9:07     ` Mattias Rönnblom
2019-03-19  9:49       ` Ye Xiaolong
2019-03-19 16:14     ` Stephen Hemminger
2019-03-20  2:32       ` Ye Xiaolong
2019-03-19 16:16     ` Stephen Hemminger
2019-03-19 16:33       ` Bruce Richardson
2019-03-20  2:07         ` Ye Xiaolong
2019-03-20  2:05       ` Ye Xiaolong
2019-03-20  9:23     ` David Marchand
2019-03-20 15:20       ` Ye Xiaolong
2019-03-19  7:12   ` [PATCH v2 2/6] lib/mbuf: introduce helper to create mempool with flags Xiaolong Ye
2019-03-19  7:12   ` [PATCH v2 3/6] lib/mempool: allow page size aligned mempool Xiaolong Ye
2019-03-19  7:12   ` [PATCH v2 4/6] net/af_xdp: use mbuf mempool for buffer management Xiaolong Ye
2019-03-19  7:12   ` [PATCH v2 5/6] net/af_xdp: enable zero copy Xiaolong Ye
2019-03-19  8:12     ` Mattias Rönnblom
2019-03-19  8:39       ` Ye Xiaolong
2019-03-20  9:22     ` David Marchand
2019-03-20  9:48       ` Zhang, Qi Z
2019-03-19  7:12   ` [PATCH v2 6/6] app/testpmd: add mempool flags parameter Xiaolong Ye
2019-03-19 23:36     ` Jerin Jacob Kollanukkaran
2019-03-20  2:08       ` Ye Xiaolong
2019-03-20  9:23       ` David Marchand
2019-03-20 15:22         ` Ye Xiaolong
2019-03-21  9:18 ` [PATCH v3 0/5] Introduce AF_XDP PMD Xiaolong Ye
2019-03-21  9:18   ` [PATCH v3 1/5] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-03-21 15:24     ` Stephen Hemminger
2019-03-22  2:05       ` Ye Xiaolong
2019-03-21 15:25     ` Stephen Hemminger
2019-03-22  2:05       ` Ye Xiaolong
2019-03-21 15:27     ` Stephen Hemminger
2019-03-22  2:04       ` Ye Xiaolong
2019-03-21 15:28     ` Stephen Hemminger
2019-03-22  2:15       ` Ye Xiaolong
2019-03-22 15:38         ` Stephen Hemminger
2019-03-22 23:20           ` Ye Xiaolong
2019-03-21 15:30     ` Stephen Hemminger
2019-03-22  2:01       ` Ye Xiaolong
2019-03-22 15:37         ` Stephen Hemminger
2019-03-22 23:19           ` Ye Xiaolong
2019-03-21 15:31     ` Stephen Hemminger
2019-03-22  1:55       ` Ye Xiaolong
2019-03-21 15:32     ` Stephen Hemminger
2019-03-22  1:54       ` Ye Xiaolong
2019-03-21 15:36     ` Stephen Hemminger
2019-03-22  1:49       ` Ye Xiaolong
2019-03-22  9:32         ` Bruce Richardson
2019-03-21  9:18   ` [PATCH v3 2/5] lib/mbuf: introduce helper to create mempool with flags Xiaolong Ye
2019-03-21  9:18   ` [PATCH v3 3/5] lib/mempool: allow page size aligned mempool Xiaolong Ye
2019-03-21 14:00     ` Ananyev, Konstantin
2019-03-21 14:23       ` Zhang, Qi Z
2019-03-21  9:18   ` [PATCH v3 4/5] net/af_xdp: use mbuf mempool for buffer management Xiaolong Ye
2019-03-21  9:18   ` [PATCH v3 5/5] net/af_xdp: enable zero copy Xiaolong Ye
2019-03-22 13:01 ` [PATCH v4 0/5] Introduce AF_XDP PMD Xiaolong Ye
2019-03-22 13:01   ` [PATCH v4 1/5] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-03-22 14:32     ` Maxime Coquelin
2019-03-24  9:32       ` Ye Xiaolong
2019-03-24 12:10     ` Luca Boccassi
2019-03-24 16:27       ` Thomas Monjalon
2019-03-22 13:01   ` [PATCH v4 2/5] lib/mbuf: introduce helper to create mempool with flags Xiaolong Ye
2019-03-22 14:36     ` Maxime Coquelin
2019-03-24  9:08       ` Ye Xiaolong
2019-03-22 13:01   ` [PATCH v4 3/5] lib/mempool: allow page size aligned mempool Xiaolong Ye
2019-03-22 13:01   ` [PATCH v4 4/5] net/af_xdp: use mbuf mempool for buffer management Xiaolong Ye
2019-03-22 14:51     ` Maxime Coquelin
2019-03-24  9:08       ` Ye Xiaolong
2019-03-24 11:52         ` Ye Xiaolong
2019-03-22 13:01   ` [PATCH v4 5/5] net/af_xdp: enable zero copy Xiaolong Ye
2019-03-25  6:03 ` [PATCH v5 0/5] Introduce AF_XDP PMD Xiaolong Ye
2019-03-25  6:03   ` [PATCH v5 1/5] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-03-25 15:58     ` Stephen Hemminger
2019-03-26  2:13       ` Ye Xiaolong
2019-03-25  6:03   ` [PATCH v5 2/5] lib/mbuf: introduce helper to create mempool with flags Xiaolong Ye
2019-03-25  6:03   ` [PATCH v5 3/5] lib/mempool: allow page size aligned mempool Xiaolong Ye
2019-03-25  9:04     ` Andrew Rybchenko
2019-03-26  3:27       ` Ye Xiaolong
2019-03-25  6:03   ` [PATCH v5 4/5] net/af_xdp: use mbuf mempool for buffer management Xiaolong Ye
2019-03-25  6:04   ` [PATCH v5 5/5] net/af_xdp: enable zero copy Xiaolong Ye
2019-03-26 12:20 ` [PATCH v6 0/5] Introduce AF_XDP PMD Xiaolong Ye
2019-03-26 12:20   ` [PATCH v6 1/5] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-03-26 19:08     ` Stephen Hemminger
2019-03-27  5:33       ` Ye Xiaolong
2019-03-26 12:20   ` [PATCH v6 2/5] lib/mbuf: introduce helper to create mempool with flags Xiaolong Ye
2019-03-26 12:20   ` [PATCH v6 3/5] lib/mempool: allow page size aligned mempool Xiaolong Ye
2019-03-26 12:20   ` [PATCH v6 4/5] net/af_xdp: use mbuf mempool for buffer management Xiaolong Ye
2019-03-29 17:42     ` Olivier Matz
2019-03-31 12:38       ` Ye Xiaolong
2019-04-01  5:47         ` Zhang, Qi Z
2019-03-26 12:20   ` [PATCH v6 5/5] net/af_xdp: enable zero copy Xiaolong Ye
2019-03-27  9:00 ` [PATCH v7 0/5] Introduce AF_XDP PMD Xiaolong Ye
2019-03-27  9:00   ` [PATCH v7 1/5] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-03-28 17:51     ` Ferruh Yigit
2019-03-28 18:52       ` Luca Boccassi
2019-04-02 19:55         ` Ferruh Yigit
2019-03-29  2:05       ` Ye Xiaolong
2019-03-29  8:10         ` Ferruh Yigit
2019-03-27  9:00   ` [PATCH v7 2/5] lib/mbuf: introduce helper to create mempool with flags Xiaolong Ye
2019-03-28 19:30     ` Ferruh Yigit
2019-03-27  9:00   ` [PATCH v7 3/5] lib/mempool: allow page size aligned mempool Xiaolong Ye
2019-03-28 19:34     ` Ferruh Yigit
2019-03-29 10:37     ` Andrew Rybchenko
2019-03-29 17:42       ` Olivier Matz
2019-03-27  9:00   ` [PATCH v7 4/5] net/af_xdp: use mbuf mempool for buffer management Xiaolong Ye
2019-03-27  9:00   ` [PATCH v7 5/5] net/af_xdp: enable zero copy Xiaolong Ye
2019-03-28 18:44     ` Ferruh Yigit
2019-03-29  1:53       ` Ye Xiaolong
2019-04-02 10:45 ` [PATCH v8 0/1] AF_XDP PMD Xiaolong Ye
2019-04-02 10:45   ` [PATCH v8 1/1] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-04-02 14:58     ` Stephen Hemminger
2019-04-02 15:10       ` Ye Xiaolong
2019-04-02 15:46 ` [PATCH v9 0/1] Introduce AF_XDP PMD Xiaolong Ye
2019-04-02 15:46   ` [PATCH v9 1/1] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-04-02 18:56     ` Stephen Hemminger
2019-04-02 23:01       ` Ye Xiaolong
2019-04-02 19:19     ` Luca Boccassi
2019-04-03  9:59       ` Ye Xiaolong
2019-04-03 10:36         ` Luca Boccassi
2019-04-03 10:42           ` Luca Boccassi
2019-04-03 11:18             ` Ferruh Yigit
2019-04-03 11:35               ` Luca Boccassi
2019-04-03 12:16                 ` Luca Boccassi
2019-04-03 12:33                   ` Ferruh Yigit
2019-04-03 13:09                 ` Ferruh Yigit
2019-04-03 13:29                   ` Luca Boccassi
2019-04-03 14:43                     ` Ye Xiaolong
2019-04-03 14:51                       ` Luca Boccassi
2019-04-03 15:14                         ` Ye Xiaolong
2019-04-03 15:23                           ` Bruce Richardson
2019-04-03 15:34                             ` Ye Xiaolong
2019-04-03 14:22                   ` Ye Xiaolong
2019-04-03 15:52                     ` Ferruh Yigit
2019-04-03 15:57                       ` Ye Xiaolong
2019-04-17 12:30                         ` [dpdk-dev] [BUG] net/af_xdp: Current code can only create one af_xdp device Markus Theil
2019-04-18  1:05                           ` Ye Xiaolong
2019-04-23 16:23                             ` Markus Theil
2019-04-24  6:35                               ` Ye Xiaolong
2019-04-24  9:21                                 ` Markus Theil
2019-04-24 14:47                                   ` Ye Xiaolong
2019-04-24 20:33                                     ` Markus Theil
2019-04-25  5:43                                   ` Ye Xiaolong
2019-04-18 15:20                           ` [dpdk-dev] [PATCH v1 1/2] net/af_xdp: name the buf ring dynamically Xiaolong Ye
2019-04-18 15:20                             ` [dpdk-dev] [PATCH v1 2/2] net/af_xdp: name the umem memzone dynamically Xiaolong Ye
2019-04-19  9:47                               ` David Marchand
2019-04-19 12:33                                 ` Ferruh Yigit
2019-04-19 15:05                                   ` Ye Xiaolong
2019-04-19  9:46                             ` [dpdk-dev] [PATCH v1 1/2] net/af_xdp: name the buf ring dynamically David Marchand
2019-04-19 12:47                             ` [dpdk-dev] [PATCH v2] net/af_xdp: fix creating multiple instance Ferruh Yigit
2019-04-19 12:51                               ` Ferruh Yigit
2019-04-02 19:43     ` [PATCH v9 1/1] net/af_xdp: introduce AF XDP PMD driver Ferruh Yigit
2019-04-03 13:22       ` Bruce Richardson
2019-04-03 13:34         ` Ferruh Yigit
2019-04-03 16:59 ` [PATCH v10 0/1] Introduce AF_XDP PMD Xiaolong Ye
2019-04-03 16:59   ` [PATCH v10 1/1] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-04-03 17:32     ` Luca Boccassi
2019-04-03 17:44     ` Ferruh Yigit
2019-04-03 18:52       ` Luca Boccassi
2019-04-04  5:36         ` Ye Xiaolong
2019-04-04  5:55         ` Ye Xiaolong
2019-04-04  7:01           ` Phil Yang (Arm Technology China)
2019-04-04  8:39           ` Luca Boccassi
2019-04-04  8:40             ` Ye Xiaolong
2019-04-04  5:29       ` Ye Xiaolong
2019-04-04  8:51 ` [PATCH v11 0/1] Introduce AF_XDP PMD Xiaolong Ye
2019-04-04  8:51   ` [PATCH v11 1/1] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-04-04 16:20     ` Luca Boccassi
2019-04-04 16:41       ` Stephen Hemminger
2019-04-04 17:05         ` Ferruh Yigit
2019-04-04 23:39     ` [dpdk-dev] " Ferruh Yigit
2019-04-05 15:05       ` Ye Xiaolong
2019-04-05 15:17         ` Ferruh Yigit
2019-04-05 15:22           ` Ye Xiaolong
2019-04-05 15:23         ` Bruce Richardson
2019-04-05 15:31           ` Ferruh Yigit
2019-04-05 15:35             ` Bruce Richardson
2019-04-04 16:13   ` [PATCH v11 0/1] Introduce AF_XDP PMD Ferruh Yigit

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.