Hello,
A crucial component of the algorithm is a calendar queue (timing wheel) which is used for planning the transmission of outgoing packets to rate limit and pace the traffic.
I was about to start implementing a TimingWheel class myself for this purpose, but did a cursory search across the codebase and found an existing implementation in src/core/model/calendar-scheduler.h. At first I thought that it'd be a generic (templated) implentation of the data structure so I could reuse it, but that's not the case - it is specifically hardcoded to use the ns3::Event class inside. So I'd pretty much have to either copy and paste the class and make sweeping changes to accomodate my use case (which will be probably scheduling packets or more specifically QDiscItems) or find a way to make the class generic enough to be able to serve both use cases.
I'll probably end up doing the first approach, although I don't really like doing code duplication - however it would be nice if somebody commented on whether what I wrote above is correct.
Kind regards,
Łukasz Dobrogowski