Re: Behavior when SET_ADDRESS status stage ACK is lost

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 22 Oct 2009, Rob Duncan wrote:

> My reading of the USB specification is that the new address takes
> effect after the SET_ADDRESS status stage is "completed successfully",
> which means after the ACK for the ZLP is received by the device.

That's right.  If the device doesn't receive the ACK then it doesn't 
know that the host has received the ZLP, so it has to stay at the old 
address in order to receive a possible retransmission of the IN packet.

>  What
> behavior should be expected if that ACK is sent by the host but lost
> before it is received by the device?  The host believes it has
> successfully updated the devices address, but the device must continue
> to respond to the old address.

Right.  The spec doesn't say explicitly what should happen in this 
case.

> Does the host somehow detect this (perhaps because it can no longer
> enumerate devices?), and what should it do if it does detect it?

Presumably the host will continue with its enumeration procedure for
the device and will fail because nothing responds at the expected
address.  This should cause it to disable the device's port or restart
the enumeration from the beginning.  Either way, there's no 
interference with other devices.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux