Closed jeppex1 closed 1 month ago
Excellent, thank you very much for your contribution! It may make sense to implement it in a couple of steps:
For the first step, the following is required:
Probably, configuration will be successful without the last point. But a stream implementation based on software slots would be then artificially limited to the number of queues in the device. This is the case because the Mapping class, as currently implemented, installs a GCL dependent on the number of queues from the device point of view. But taprio in software mode does not suffer from that limit, as it is purely based on software queues. @vcgomes please correct me if I am wrong :)
At this point, we should have a functional plugin able to configure several streams, allocating one Qbv "software slot" per stream :)
This is a little bit more tricky, as more items need to be added and there is architectural impact:
I may be missing something, but that should probably work. At this point, software based Qbv slots would be configured to protect each stream, and the stream itself would be using etf, enabling the application to provide the launch time explicitly via the AF_PACKET socket ancillary data.
i210 support is missing and could be useful to add. I'm currently working on an implementation