mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
bpf: net_sched: Support implementation of Qdisc_ops in bpf
The recent advancement in bpf such as allocated objects, bpf list and bpf
rbtree has provided powerful and flexible building blocks to realize
sophisticated packet scheduling algorithms. As struct_ops now supports
core operators in Qdisc_ops, start allowing qdisc to be implemented using
bpf struct_ops with this patch. Users can implement Qdisc_ops.{enqueue,
dequeue, init, reset, destroy} in bpf and register the qdisc dynamically
into the kernel.
Co-developed-by: Cong Wang <cong.wang@bytedance.com>
Signed-off-by: Cong Wang <cong.wang@bytedance.com>
Signed-off-by: Amery Hung <amery.hung@bytedance.com>
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
Link: https://patch.msgid.link/20250409214606.2000194-3-ameryhung@gmail.com
This commit is contained in:
committed by
Martin KaFai Lau
parent
a1b669ea16
commit
c824034495
@@ -24,6 +24,7 @@
|
||||
#include <linux/if_vlan.h>
|
||||
#include <linux/skb_array.h>
|
||||
#include <linux/if_macvlan.h>
|
||||
#include <linux/bpf.h>
|
||||
#include <net/sch_generic.h>
|
||||
#include <net/pkt_sched.h>
|
||||
#include <net/dst.h>
|
||||
@@ -1078,7 +1079,7 @@ static void __qdisc_destroy(struct Qdisc *qdisc)
|
||||
ops->destroy(qdisc);
|
||||
|
||||
lockdep_unregister_key(&qdisc->root_lock_key);
|
||||
module_put(ops->owner);
|
||||
bpf_module_put(ops, ops->owner);
|
||||
netdev_put(dev, &qdisc->dev_tracker);
|
||||
|
||||
trace_qdisc_destroy(qdisc);
|
||||
|
||||
Reference in New Issue
Block a user