Hi Martin, Thank you for your reply! On 17/05/2025 00:34, Martin KaFai Lau wrote: > On 3/20/25 10:48 AM, Matthieu Baerts (NGI0) wrote: (...) >> @BPF maintainers: we would like to allow this new mptcp_subflow bpf_iter >> to be used with struct_ops, but only with the two new ones we are going >> to introduce that are specific to MPTCP, and with not others struct_ops >> (TCP CC, sched_ext, etc.). We are not sure how to do that. By chance, do >> you have examples or doc you could point to us to have this restriction >> in place, please? > > The bpf_qdisc.c has done that. Take a look at the > "bpf_qdisc_kfunc_filter()". > > It is in net-next and bpf-next/net. Many thanks for the pointer! I see, some operations have specific kfunc, similar to our needs! >> Also, for one of the two future MPTCP struct_ops, not all callbacks >> should be allowed to use this new bpf_iter, because they are called from >> different contexts. How can we ensure such callbacks from a struct_ops >> cannot call mptcp_subflow bpf_iter without adding new dedicated checks >> looking if some locks are held for all callbacks? We understood that >> they wanted to have something similar with sched_ext, but we are not >> sure if this code is ready nor if it is going to be accepted. > > Same. Take a look at "bpf_qdisc_kfunc_filter()". Excellent, thank you, we will look at that! Cheers, Matt -- Sponsored by the NGI0 Core fund.