The ioLength for a submitted request will the the amount of data requested in 
the data stage.  The ioLength for a completed request will be the actual amount 
of data transferred in the data stage.  It’s quite similar to any other data 
pipe.

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.

—scott

> On Jan 5, 2017, at 9:32 PM, Guy Harris <g...@alum.mit.edu> wrote:
> 
> On Dec 9, 2016, at 1:37 PM, Scott Deandrea <sdeand...@apple.com> wrote:
> 
>> The link-layer header format is as follows:
>> struct
>> {
>>   // Control information
>>   uint16_t bcdVersion;        // version of this structure
>>   uint8_t  headerLength;      // length of this structure
>>   uint8_t  requestType;       // tAppleUSBHostPacketFilterRequestType
>> 
>>   // Transfer information
>>   uint32_t ioLength;          // amount of data requested/transferred
> 
> So, for a completed request - or a submitted request to the Default Control 
> Pipe - does this have any relationship to the number of bytes of payload, or 
> is the number of bytes of payload just "the on-the-wire length from the 
> pcap/pcapng header minus the link-layer header length"?
> 
> I.e., would checking that value against the actual number of bytes of payload 
> in the packet, for completed requests and submitted request to the Default 
> Control Pipe - be a useful error check, or should we just print that value 
> without any interpretation or checking?
> 

_______________________________________________
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers

Reply via email to