Re: PF_PACKET RPS like using bpf

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/15, Alexandre Cassen wrote:
> 
> 
> On 15/03/2024 18:31, Stanislav Fomichev wrote:
> > On 03/14, Alexandre Cassen wrote:
> > > Hello,
> > > 
> > > While implementing a large scale L2 processing soft, there is a need for
> > > high perf ingress handling.
> > > 
> > > In short: using BPF socket_filter prog with a hash func over ethernet
> > > address to distribute load across multiple PF_PACKET sockets: mainly
> > > filtering out non related hkey packets. It simplify userland app by using
> > > multiple PF_PACKET sockets in dedicated pthread.
> > > 
> > > Longer discussion + quick source code illustration here:
> > > 
> > > https://github.com/acassen/bpf-pfpacket-rps
> > > 
> > > 
> > > My question would be related to sockmap. I tried to figure out how to
> > > perform the same policing design using sockmap. And cant find my way around
> > > it :/ If bpf verdict prog can get socket fd from __sk_buff then it could
> > > drives the same hash/policing decision.
> > > 
> > > Is it possible to get socket fd from __sk_buff from sockmap verdict prog ?
> > 
> > Don't have an answer about sockmap, but I'd suggest you look at AF_XDP
> > if you want the best perf out there with raw frames.
> > IIRC, it just recently got a mode where you can redirect into multiple
> > sockets (== consumer threads):
> > 
> > https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=2863d665ea41
> 
> thanks for replying, __sk_buff bpf mirror doesnt export struct sock as
> present into kernel skbuff, so no options but extending.
> AF_XDP is an option. Will extend test code with it later on.

We do export bpf_sock in __sk_buff:

	__bpf_md_ptr(struct bpf_sock *, sk);

But it has a very minimal set of 'struct sock' fields exported.




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux