On 4/26/2024 4:48 PM, Stephen Hemminger wrote: > Rewrite the BPF program used to do queue based RSS. > Important changes: > - uses newer BPF map format BTF > - accepts key as parameter rather than constant default > - can do L3 or L4 hashing > - supports IPv4 options > - supports IPv6 extension headers > - restructured for readability > > The usage of BPF is different as well: > - the incoming configuration is looked up based on > class parameters rather than patching the BPF. > - the resulting queue is placed in skb rather > than requiring a second pass through classifier step. > > Note: This version only works with later patch to enable it on > the DPDK driver side. It is submitted as an incremental patch > to allow for easier review. Bisection still works because > the old instruction are still present for now. > > Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
<...> > @@ -0,0 +1,38 @@ > +This is the BPF program used to implement the RSS across queues flow action. > +The program is loaded when first RSS flow rule is created and is never > unloaded. > + > +Each flow rule creates a unique key (handle) and this is used as the key > +for finding the RSS information for that flow rule. > + > +This version is built the BPF Compile Once — Run Everywhere (CO-RE) > +framework and uses libbpf and bpftool. > + > +Limitations > +----------- > +- requires libbpf to run > +- rebuilding the BPF requires Clang and bpftool. > + Some older versions of Ubuntu do not have working bpftool package. > + Need a version of Clang that can compile to BPF. > +- only standard Toeplitz hash with standard 40 byte key is supported > +- the number of flow rules using RSS is limited to 32 > + > +Building > +-------- > +During the DPDK build process the meson build file checks that > +libbpf, bpftool, and clang are not available. If everything is > s/and clang are *not* available./and clang are available./ ?