This is a great discussion of all the ambiguity that has been added to the USB spec along the way and how that ambiguity can bite you. I'm fairly convinced at this late stage that the IETF motto of "precise in what you send, flexible in what you receive" is basically evil. When standards work around the non-compliance of clients in creative ways (like HTTP browsers did, A LOT) they become "well it isn't in the standard but if you don't do this you'll break a lot of things out in the field" problems. That resistance to breaking existing clients is understandable, but ultimately it is a trap (in my opinion) that results in both security issues and safety issues.
It would be interesting to have a USB 4.x spec that was both explicit in all the behaviors AND had explicit tests for and responses to non-compliant stuff. I don't think the IEEE or anyone else for that matter has the stones to try the experiment though.
It would be interesting to have a USB 4.x spec that was both explicit in all the behaviors AND had explicit tests for and responses to non-compliant stuff. I don't think the IEEE or anyone else for that matter has the stones to try the experiment though.