On Thu, Nov 07, 2019 at 06:47:35PM +0100, Magnus Karlsson wrote: > This patch set extends libbpf and the xdpsock sample program to > demonstrate the shared umem mode (XDP_SHARED_UMEM) as well as Rx-only > and Tx-only sockets. This in order for users to have an example to use > as a blue print and also so that these modes will be exercised more > frequently. > > Note that the user needs to supply an XDP program with the > XDP_SHARED_UMEM mode that distributes the packets over the sockets > according to some policy. There is an example supplied with the > xdpsock program, but there is no default one in libbpf similarly to > when XDP_SHARED_UMEM is not used. The reason for this is that I felt > that supplying one that would work for all users in this mode is > futile. There are just tons of ways to distribute packets, so whatever > I come up with and build into libbpf would be wrong in most cases. > Hi Magnus, Thanks for the patch. I look at the sample code and it's sharing a umem among multiple queues in the same netdev. Is it possible to shared one umem across multiple netdevs? For example in OVS, one might create multiple tap/veth devices (using skb-mode or native-mode). And I want to save memory by having just one shared umem for these devices. Thanks --William > This patch has been applied against commit 30ee348c1267 ("Merge branch 'bpf-libbpf-fixes'") > > Structure of the patch set: > > Patch 1: Adds shared umem support to libbpf > Patch 2: Shared umem support and example XPD program added to xdpsock sample > Patch 3: Adds Rx-only and Tx-only support to libbpf > Patch 4: Uses Rx-only sockets for rxdrop and Tx-only sockets for txpush in > the xdpsock sample > Patch 5: Add documentation entries for these two features > > Thanks: Magnus > > Magnus Karlsson (5): > libbpf: support XDP_SHARED_UMEM with external XDP program > samples/bpf: add XDP_SHARED_UMEM support to xdpsock > libbpf: allow for creating Rx or Tx only AF_XDP sockets > samples/bpf: use Rx-only and Tx-only sockets in xdpsock > xsk: extend documentation for Rx|Tx-only sockets and shared umems > > Documentation/networking/af_xdp.rst | 28 +++++-- > samples/bpf/Makefile | 1 + > samples/bpf/xdpsock.h | 11 +++ > samples/bpf/xdpsock_kern.c | 24 ++++++ > samples/bpf/xdpsock_user.c | 158 ++++++++++++++++++++++++++---------- > tools/lib/bpf/xsk.c | 32 +++++--- > 6 files changed, 195 insertions(+), 59 deletions(-) > create mode 100644 samples/bpf/xdpsock.h > create mode 100644 samples/bpf/xdpsock_kern.c > > -- > 2.7.4