On Jan 5, 2017, at 9:59 PM, Scott Deandrea <sdeand...@apple.com> wrote:
> The ioLength for a submitted request will the the amount of data requested in > the data stage. So, for a submitted request on the Default Control Pipe, the ioLength won't be 8 for the setup data, it'll be the maximum amount of data requested? > The ioLength for a completed request will be the actual amount of data > transferred in the data stage. So, at least for a non-isochronous endpoint, it *should* be equal to the amount of payload, i.e. on-the-wire length minus link-layer header length? Is there any reason to check that? Or should we just trust the on-the-wire length (and captured length, for bounds checking), when dissecting the payload? What about an isochronous endpoint? I'm guessing it won't be equal to the total number of bytes of isochronous headers plus frame data plus padding. > Just to note, it may be acceptable for a device to send less than the amount > requested so the values may differ between a submit and a complete. For > example, a usb ethernet driver could always perform reads of MTU sizes but > the actual amount read will usually be less. So the submitted request will have an ioLength reflecting the MTU, and the completed request will have an ioLength reflecting the actual packet size. That's not unexpected. _______________________________________________ tcpdump-workers mailing list tcpdump-workers@lists.tcpdump.org https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers