DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Bruce Richardson <bruce.richardson@intel.com>,
	olivier.matz@6wind.com, ophirmu@nvidia.com, shahafs@nvidia.com,
	thomas@monjalon.net
Cc: dev@dpdk.org
Subject: TAP device BPF build process broken
Date: Mon, 17 Jul 2023 08:30:32 -0700	[thread overview]
Message-ID: <20230717083032.072b12c5@hermes.local> (raw)

The current way the BPF code is handled in the TAP driver is a mess.

1. The source is provided with partial instructions in the documentation.
   No script or automated build process. And it should get tested.

2. No longer builds without modification.
   The header file is missing. You have to manually go copy it out of iproute2
   source. Commit ef5baf3486e0 (replace packed attributes, 2020-02-09)
   broke the build step.

3. The source is based on the old legacy model of tc-bpf. The newer libbpf
   based model used BTF and is not compatible.

4. The resulting object file needs to get transformed into an array by
   some awkward steps poorly described in the doc. Go take the source out
   of iproute2 modify and use that is what it says.

5. The algorithm used is incorrect for fragmented packets and uses
   slower version of Toeplitz.

Is there a way to have a make style rule in meson?
I.e if file A.c is newer that file A.o then use this clang invocation to make A.o.

It should be possible to skip the transform to array in source by
linking the ELF object file of the eBPF code into the tap driver and using
dlopen introspection to find it.

Alternatively, the tap driver could use libbpf as a loading mechanism.



                 reply	other threads:[~2023-07-17 15:30 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230717083032.072b12c5@hermes.local \
    --to=stephen@networkplumber.org \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=olivier.matz@6wind.com \
    --cc=ophirmu@nvidia.com \
    --cc=shahafs@nvidia.com \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).