* XDP packet queueing and scheduling capabilities @ 2024-02-12 4:27 team lnx 2024-02-13 13:03 ` Toke Høiland-Jørgensen 0 siblings, 1 reply; 10+ messages in thread From: team lnx @ 2024-02-12 4:27 UTC (permalink / raw) To: xdp-newbies Hello everyone, https://lwn.net/Articles/901046/ would this be resumed any time soon this year ? Regards, teamlnx ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XDP packet queueing and scheduling capabilities 2024-02-12 4:27 XDP packet queueing and scheduling capabilities team lnx @ 2024-02-13 13:03 ` Toke Høiland-Jørgensen 2024-02-13 14:33 ` Alexandre Cassen ` (2 more replies) 0 siblings, 3 replies; 10+ messages in thread From: Toke Høiland-Jørgensen @ 2024-02-13 13:03 UTC (permalink / raw) To: team lnx, xdp-newbies team lnx <teamlnxi8@gmail.com> writes: > Hello everyone, > > https://lwn.net/Articles/901046/ > would this be resumed any time soon this year ? The latest version of those patches are here: https://git.kernel.org/pub/scm/linux/kernel/git/toke/linux.git/log/?h=xdp-queueing-08 They are a bit rough around the edges, and there are some missing pieces still; I'm working on getting a userspace/BPF implementation to the point where those can be filled in. After that, and some thorough testing, it should be possible to post another revision. What's your interest in this? I.e., what do you want to use them for? Would be useful to know so I can make sure this is covered :) -Toke ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XDP packet queueing and scheduling capabilities 2024-02-13 13:03 ` Toke Høiland-Jørgensen @ 2024-02-13 14:33 ` Alexandre Cassen 2024-02-13 15:01 ` Dave Taht 2024-02-13 16:07 ` Toke Høiland-Jørgensen 2024-02-14 13:27 ` Marcus Wichelmann 2024-02-15 19:10 ` team lnx 2 siblings, 2 replies; 10+ messages in thread From: Alexandre Cassen @ 2024-02-13 14:33 UTC (permalink / raw) To: Toke Høiland-Jørgensen, team lnx, xdp-newbies Hi Toke, here is a target with lot of interest for it : www.gtp-guard.org When dealing with mobile network data-plane, at some point you have ordering issues and shaping needs, so queuing is truly needed. Alternatively ones can implement PIFO or others built on AF_XDP but if dedicated bpf map covers the use-case, would be nice. Watching at your LPC 2022 presentation, at the end, discussions where made around using existing Qdisc kernel framework and find a way to share the path between XDP and netstack. Is it a target for adding PIFO, or more generally getting queuing support for XDP ? regs, Alexandre On 13/02/2024 14:03, Toke Høiland-Jørgensen wrote: > team lnx <teamlnxi8@gmail.com> writes: > >> Hello everyone, >> >> https://lwn.net/Articles/901046/ >> would this be resumed any time soon this year ? > > The latest version of those patches are here: > https://git.kernel.org/pub/scm/linux/kernel/git/toke/linux.git/log/?h=xdp-queueing-08 > > They are a bit rough around the edges, and there are some missing pieces > still; I'm working on getting a userspace/BPF implementation to the > point where those can be filled in. After that, and some thorough > testing, it should be possible to post another revision. > > What's your interest in this? I.e., what do you want to use them for? > Would be useful to know so I can make sure this is covered :) > > -Toke > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XDP packet queueing and scheduling capabilities 2024-02-13 14:33 ` Alexandre Cassen @ 2024-02-13 15:01 ` Dave Taht 2024-02-13 16:07 ` Toke Høiland-Jørgensen 1 sibling, 0 replies; 10+ messages in thread From: Dave Taht @ 2024-02-13 15:01 UTC (permalink / raw) To: Alexandre Cassen; +Cc: Toke Høiland-Jørgensen, team lnx, xdp-newbies On Tue, Feb 13, 2024 at 9:33 AM Alexandre Cassen <acassen@gmail.com> wrote: > > Hi Toke, > > here is a target with lot of interest for it : www.gtp-guard.org Occasionally I point at the complementary use case that is libreqos. I would love to make a dent in the 5G world. > When dealing with mobile network data-plane, at some point you have > ordering issues and shaping needs, so queuing is truly needed. yep. But see libreqos. > Alternatively ones can implement PIFO or others built on AF_XDP but if > dedicated bpf map covers the use-case, would be nice. > > Watching at your LPC 2022 presentation, at the end, discussions where > made around using existing Qdisc kernel framework and find > a way to share the path between XDP and netstack. Is it a target for > adding PIFO, or more generally getting queuing support for XDP ? > > regs, > Alexandre > > > On 13/02/2024 14:03, Toke Høiland-Jørgensen wrote: > > team lnx <teamlnxi8@gmail.com> writes: > > > >> Hello everyone, > >> > >> https://lwn.net/Articles/901046/ > >> would this be resumed any time soon this year ? > > > > The latest version of those patches are here: > > https://git.kernel.org/pub/scm/linux/kernel/git/toke/linux.git/log/?h=xdp-queueing-08 > > > > They are a bit rough around the edges, and there are some missing pieces > > still; I'm working on getting a userspace/BPF implementation to the > > point where those can be filled in. After that, and some thorough > > testing, it should be possible to post another revision. > > > > What's your interest in this? I.e., what do you want to use them for? > > Would be useful to know so I can make sure this is covered :) > > > > -Toke > > > > > -- 40 years of net history, a couple songs: https://www.youtube.com/watch?v=D9RGX6QFm5E Dave Täht CSO, LibreQos ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XDP packet queueing and scheduling capabilities 2024-02-13 14:33 ` Alexandre Cassen 2024-02-13 15:01 ` Dave Taht @ 2024-02-13 16:07 ` Toke Høiland-Jørgensen 2024-02-13 17:31 ` Alexandre Cassen 1 sibling, 1 reply; 10+ messages in thread From: Toke Høiland-Jørgensen @ 2024-02-13 16:07 UTC (permalink / raw) To: Alexandre Cassen, team lnx, xdp-newbies Alexandre Cassen <acassen@gmail.com> writes: > Hi Toke, > > here is a target with lot of interest for it : www.gtp-guard.org Ah, seems like a cool project; thanks for the pointer! > When dealing with mobile network data-plane, at some point you have > ordering issues and shaping needs, so queuing is truly needed. > Alternatively ones can implement PIFO or others built on AF_XDP but if > dedicated bpf map covers the use-case, would be nice. Right, I'm kinda thinking about the map type that is part of the XDP queueing series as a general-purpose packet buffer that will enable all kinds of features, not just queueing for forwarding. Whether it'll end up being the PIFO map type, or a simpler one, I'm less certain about. The PIFO abstraction may end up being too special-purpose. Opinions welcome! > Watching at your LPC 2022 presentation, at the end, discussions where > made around using existing Qdisc kernel framework and find a way to > share the path between XDP and netstack. Is it a target for adding > PIFO, or more generally getting queuing support for XDP ? I don't personally consider it feasible to have forwarded XDP frames share the qdisc path. The presence of an sk_buff is too simply too fundamentally baked into the qdisc layer. I'm hoping that the addition of an eBPF-based qdisc will instead make it feasible to share queueing algorithm code between the two layers (and even build forwarding paths that can handle both by having the different BPF implementations cooperate). And of course co-existence between XDP and stack forwarding is important to avoid starvation, but that is already an issue for XDP forwarding today. -Toke ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XDP packet queueing and scheduling capabilities 2024-02-13 16:07 ` Toke Høiland-Jørgensen @ 2024-02-13 17:31 ` Alexandre Cassen 2024-02-14 13:21 ` Toke Høiland-Jørgensen 0 siblings, 1 reply; 10+ messages in thread From: Alexandre Cassen @ 2024-02-13 17:31 UTC (permalink / raw) To: Toke Høiland-Jørgensen, team lnx, xdp-newbies On 13/02/2024 17:07, Toke Høiland-Jørgensen wrote: > Alexandre Cassen <acassen@gmail.com> writes: > >> Hi Toke, >> >> here is a target with lot of interest for it : www.gtp-guard.org > > Ah, seems like a cool project; thanks for the pointer! Well, right now focus is much more on code rather than documentation :D but doc will happen at one time. In a hurry right now adding support to XDP routing data-path that will deal with GTP-U decap on one side and PPPoE encap the other side, and reciprocally. This is one use-case to make mobile access network converge to existing isp access network infrastructure (not L2TP since it just create scalling issues for bunch of customers). another one will be SRv6 later on... Anyway, having fun hacking around on it :) >> When dealing with mobile network data-plane, at some point you have >> ordering issues and shaping needs, so queuing is truly needed. >> Alternatively ones can implement PIFO or others built on AF_XDP but if >> dedicated bpf map covers the use-case, would be nice. > > Right, I'm kinda thinking about the map type that is part of the XDP > queueing series as a general-purpose packet buffer that will enable all > kinds of features, not just queueing for forwarding. Whether it'll end > up being the PIFO map type, or a simpler one, I'm less certain about. > The PIFO abstraction may end up being too special-purpose. Opinions > welcome! Read the code last night, that is exactly what is required here, bpf_timer trick is fun. (IP fragmentation in gtp-guard is using bpf_timer for ephemeral id tracking handling, this is just here re-ordering pop-up... on constructor vendors equipements where normal path is using diffrent processing-unit than frag handling this happen !) Agreed on your point, having a general purpose map type enable inheritage option for specific feature instead of multiplying meaningful map type for each feature/use-case. >> Watching at your LPC 2022 presentation, at the end, discussions where >> made around using existing Qdisc kernel framework and find a way to >> share the path between XDP and netstack. Is it a target for adding >> PIFO, or more generally getting queuing support for XDP ? > > I don't personally consider it feasible to have forwarded XDP frames > share the qdisc path. The presence of an sk_buff is too simply too > fundamentally baked into the qdisc layer. I'm hoping that the addition > of an eBPF-based qdisc will instead make it feasible to share queueing > algorithm code between the two layers (and even build forwarding paths > that can handle both by having the different BPF implementations > cooperate). And of course co-existence between XDP and stack forwarding > is important to avoid starvation, but that is already an issue for XDP > forwarding today. Agreed too, eBPF backed Qdisc 'proxy' sounds great idea. latency forecast impact ? - Alexandre ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XDP packet queueing and scheduling capabilities 2024-02-13 17:31 ` Alexandre Cassen @ 2024-02-14 13:21 ` Toke Høiland-Jørgensen 0 siblings, 0 replies; 10+ messages in thread From: Toke Høiland-Jørgensen @ 2024-02-14 13:21 UTC (permalink / raw) To: Alexandre Cassen, team lnx, xdp-newbies Alexandre Cassen <acassen@gmail.com> writes: >>> Watching at your LPC 2022 presentation, at the end, discussions where >>> made around using existing Qdisc kernel framework and find a way to >>> share the path between XDP and netstack. Is it a target for adding >>> PIFO, or more generally getting queuing support for XDP ? >> >> I don't personally consider it feasible to have forwarded XDP frames >> share the qdisc path. The presence of an sk_buff is too simply too >> fundamentally baked into the qdisc layer. I'm hoping that the addition >> of an eBPF-based qdisc will instead make it feasible to share queueing >> algorithm code between the two layers (and even build forwarding paths >> that can handle both by having the different BPF implementations >> cooperate). And of course co-existence between XDP and stack forwarding >> is important to avoid starvation, but that is already an issue for XDP >> forwarding today. > > Agreed too, eBPF backed Qdisc 'proxy' sounds great idea. latency > forecast impact ? Of writing the qdisc in eBPF instead of as a regular kernel module? Negligible; the overhead shown in the last posting of those patches[0] is not nil, but it seems there's a path to getting rid of it (teaching BPF how to put skbs directly into list/rbtree data structures instead of having to allocate a container for it). The latency impact of mixing XDP and qdisc traffic? Dunno, depends on the traffic and the algorithms managing it. I don't think there's anything inherent in the BPF side of things that would impact latency (it's all just code in the end), as long as we make sure that the APIs and primitives can express all the things we need to effectively implement good algorithms. Which is why I'm asking for examples of use cases :) -Toke [0] https://lore.kernel.org/r/cover.1705432850.git.amery.hung@bytedance.com ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XDP packet queueing and scheduling capabilities 2024-02-13 13:03 ` Toke Høiland-Jørgensen 2024-02-13 14:33 ` Alexandre Cassen @ 2024-02-14 13:27 ` Marcus Wichelmann 2024-02-14 16:21 ` Toke Høiland-Jørgensen 2024-02-15 19:10 ` team lnx 2 siblings, 1 reply; 10+ messages in thread From: Marcus Wichelmann @ 2024-02-14 13:27 UTC (permalink / raw) To: Toke Høiland-Jørgensen, xdp-newbies Am 13.02.24 um 14:03 schrieb Toke Høiland-Jørgensen: > What's your interest in this? I.e., what do you want to use them for? > Would be useful to know so I can make sure this is covered :) Hi, just wanting to let you know that we're also still very interested in this for our cloud-provider use case. We use XDP to route packets to and from VMs and want to also apply firewall rules on the way. For this, we need to buffer/delay reordered IP fragments that arrived before the first fragment until we have seen the required L4 header. Having a packet queue for this, like in your patch, that can also be dequeued again, would definitively be helpful for that. We'd also like to implement shaping in the future, so this is also very interesting for us. -- Best regards, Marcus Wichelmann SDN ______________________________ Hetzner Cloud GmbH Feringastraße 12A 85774 Unterföhring Germany Phone: +49 89 381690 150 E-Mail: marcus.wichelmann@hetzner-cloud.de Handelsregister München HRB 226782 Geschäftsführer: Sebastian Färber, Markus Kalmuk ------------------ For information on the processing of your personal data in the context of this contact, please see https://hetzner-cloud.de/datenschutz ------------------ ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XDP packet queueing and scheduling capabilities 2024-02-14 13:27 ` Marcus Wichelmann @ 2024-02-14 16:21 ` Toke Høiland-Jørgensen 0 siblings, 0 replies; 10+ messages in thread From: Toke Høiland-Jørgensen @ 2024-02-14 16:21 UTC (permalink / raw) To: Marcus Wichelmann, xdp-newbies Marcus Wichelmann <marcus.wichelmann@hetzner-cloud.de> writes: > Am 13.02.24 um 14:03 schrieb Toke Høiland-Jørgensen: >> What's your interest in this? I.e., what do you want to use them for? >> Would be useful to know so I can make sure this is covered :) > > Hi, just wanting to let you know that we're also still very interested > in this for our cloud-provider use case. > > We use XDP to route packets to and from VMs and want to also apply > firewall rules on the way. For this, we need to buffer/delay reordered > IP fragments that arrived before the first fragment until we have seen > the required L4 header. > > Having a packet queue for this, like in your patch, that can also be > dequeued again, would definitively be helpful for that. > > We'd also like to implement shaping in the future, so this is also very > interesting for us. Great, thanks for the feedback! Hadn't thought about frag reassembly, but that should definitely be possible as well; will keep that in mind! :) -Toke ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XDP packet queueing and scheduling capabilities 2024-02-13 13:03 ` Toke Høiland-Jørgensen 2024-02-13 14:33 ` Alexandre Cassen 2024-02-14 13:27 ` Marcus Wichelmann @ 2024-02-15 19:10 ` team lnx 2 siblings, 0 replies; 10+ messages in thread From: team lnx @ 2024-02-15 19:10 UTC (permalink / raw) To: Toke Høiland-Jørgensen; +Cc: xdp-newbies I see a lot of discussion happening already, one use case I am looking at is shaping of traffic which is discussed already also to control traffic flow (to avoid packet drops) if an Rx interface slows down on Tx path. On Tue, Feb 13, 2024 at 5:03 AM Toke Høiland-Jørgensen <toke@redhat.com> wrote: > > team lnx <teamlnxi8@gmail.com> writes: > > > Hello everyone, > > > > https://lwn.net/Articles/901046/ > > would this be resumed any time soon this year ? > > The latest version of those patches are here: > https://git.kernel.org/pub/scm/linux/kernel/git/toke/linux.git/log/?h=xdp-queueing-08 > > They are a bit rough around the edges, and there are some missing pieces > still; I'm working on getting a userspace/BPF implementation to the > point where those can be filled in. After that, and some thorough > testing, it should be possible to post another revision. > > What's your interest in this? I.e., what do you want to use them for? > Would be useful to know so I can make sure this is covered :) > > -Toke > ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-02-15 19:10 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-02-12 4:27 XDP packet queueing and scheduling capabilities team lnx 2024-02-13 13:03 ` Toke Høiland-Jørgensen 2024-02-13 14:33 ` Alexandre Cassen 2024-02-13 15:01 ` Dave Taht 2024-02-13 16:07 ` Toke Høiland-Jørgensen 2024-02-13 17:31 ` Alexandre Cassen 2024-02-14 13:21 ` Toke Høiland-Jørgensen 2024-02-14 13:27 ` Marcus Wichelmann 2024-02-14 16:21 ` Toke Høiland-Jørgensen 2024-02-15 19:10 ` team lnx
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.