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 What's the current version? 0, 1, or something else? > uint8_t headerLength; // length of this structure Presumably length in bytes. > uint8_t requestType; // tAppleUSBHostPacketFilterRequestType So what are the possible values for requestType? (I don't see tAppleUSBHostPacketFilterRequestType anywhere in the public XNU source or any header from Xcode.) > // Transfer information > uint32_t ioLength; // amount of data requested/transferred Presumably length in bytes. > uint32_t ioStatus; // IOReturn > uint32_t ioFrameCount; // number of isoch frames following > uint64_t ioID; // unique id for this I/O > > // Device information > uint32_t deviceLocation; // locationID of the device > uint8_t deviceSpeed; // tEndpointSpeed Is this an enumerated value, a bits/second value, or something else? > uint8_t deviceAddress; // tUSBHostDeviceAddress So that's just a standard 7-bit USB device address, presumably, as per the USB 3.1 spec: A 7-bit value representing the address of a device on the USB. The device address is the default address (00H) when the USB device is first powered or the device is reset. Devices are assigned a unique device address by the USB system software. with the 8th bit zero? > uint8_t endpointAddress; // Address and Direction So that's the endpoint in the lower 4 bits, and the direction somewhere in the upper 4 bits? What are the representations for IN and OUT? > uint8_t endpointType; // tEndpointType So what are the values for bulk, control, interrupt, and isochronous? > // Additional information So the additional information's presence would be indicated by a greater headerLength and possibly also by a different bcdVersion value? > } __attribute__((packed, aligned(sizeof(uint32_t)))); > > The packet payload is the raw USB data that was sent/received for I/O request. So that would be the "data field" from section 8.3.4 "Data Field" from the USB 2.0 spec and the DWORDs following the 16-byte header from the USB 3.1 spec? _______________________________________________ tcpdump-workers mailing list tcpdump-workers@lists.tcpdump.org https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers