python-functionfs icon indicating copy to clipboard operation
python-functionfs copied to clipboard

out_aio_blocks_per_endpoint of 2 causes dropped packets

Open defparam opened this issue 6 months ago • 0 comments

Hi There,

Thanks for this library and all your USB work. Quick thing I just wanted to mention in case anyone else was having issues using ffs bulk at high speed rate. I modified the USBCat example to create a bidirectional pipe to a consumer/producer to push full bandwidth on both the device model and host model (in place of the stdout stuff). When the design was pushing bandwidth I was noticed dropped packets. I debugged the stack and figured out that the low default out_aio_blocks_per_endpoint (of 2) was causing incoming packets at the device to be overwritten before processed via the onComplete handler. When I increased out_aio_blocks_per_endpoint to 8 I no longer had dropped packet issues.

It might be worth changing the default in the __init__.py to from 2 to 8. For anyone else with this issue you can just pass out_aio_blocks_per_endpoint=8 to the super().__init__ call inside your USBCat class.

Thanks

defparam avatar Jul 03 '25 17:07 defparam