On Wed, Sep 1, 2021 at 10:46 AM Martin KaFai Lau <kafai@xxxxxx> wrote: > > > Another idea. Rather than work with qdisc objects which creates all > > > these issues with how to work with existing interfaces, filters, etc. > > > Why not create an sk_buff map? Then this can be used from the existing > > > egress/ingress hooks independent of the actual qdisc being used. > > > > I agree. In fact, I'm working on doing just this for XDP, and I see no > > reason why the map type couldn't be reused for skbs as well. Doing it > > this way has a couple of benefits: > > > > - It leaves more flexibility to BPF: want a simple FIFO queue? just > > implement that with a single queue map. Or do you want to build a full > > hierarchical queueing structure? Just instantiate as many queue maps > > as you need to achieve this. Etc. > Agree. Regardless how the interface may look like, > I even think being able to queue/dequeue an skb into different bpf maps > should be the first thing to do here. Looking forward to your patches. > > > > > - The behaviour is defined entirely by BPF program behaviour, and does > > not require setting up a qdisc hierarchy in addition to writing BPF > > code. > Interesting idea. If it does not need to use the qdisc object/interface > and be able to do the qdisc hierarchy setup in a programmable way, it may > be nice. It will be useful for the future patches to come with some > bpf prog examples to do that. Wow. When core developers think along the same lines and build/refine the idea together it's simply awesome.