Intro into qdisc writing?
From: Thorsten Glaser <hidden>
Date: 2021-08-10 03:22:57
Hi, I hope this is the right place to ask this kind of questions, and not just send patches ☺ I’m currently working with a… network simulator of sorts, which has so far mostly used htb, netem, dualpi2 and fq_codel to do the various tricks needed for whatever they do, but now I have rather specific change requests (one of which I already implemented). The next things on my list basically involve delaying all traffic or a subset of traffic for a certain amount of time (in the one‑ to two-digit millisecond ballpark, so rather long, in CPU time). I’ve seen the netem source use qdisc_watchdog_schedule_ns for this, but, unlike the functions I used in my earlier module changes, I cannot find any documentation for this. Similarily, is there an intro of sorts for qdisc writing, the things to know, concepts, locking, whatever is needed? My background is multi-decade low-level programmer, but so far only userland, libc variants and bootloaders, not kernel, and what bit of kernel I touched so far was in BSD land so any pointers welcome. If it helps: while this is for a customer project, so far everything coming out of it is published under OSS licences; mostly at https://github.com/tarent/sch_jens/tree/master/sch_jens as regards the kernel module (and ../jens/ for the relayfs client example) but https://github.com/tarent/ECN-Bits has a related userspace project. Thanks in advance, //mirabilos -- Infrastrukturexperte • tarent solutions GmbH Am Dickobskreuz 10, D-53121 Bonn • http://www.tarent.de/ Telephon +49 228 54881-393 • Fax: +49 228 54881-235 HRB AG Bonn 5168 • USt-ID (VAT): DE122264941 Geschäftsführer: Dr. Stefan Barth, Kai Ebenrett, Boris Esser, Alexander Steeg ************************************************* Mit dem tarent-Newsletter nichts mehr verpassen: www.tarent.de/newsletter *************************************************