Hi! On Tue, Jan 22, 2013 at 12:01 AM, Bjørn Mork <bjorn@xxxxxxx> wrote: > Yauheni Kaliuta <y.kaliuta@xxxxxxxxx> writes: >>>>>>> "BM" == Bjørn Mork writes: >> >> > We normally avoid sending ZLPs by padding NTBs with a zero byte >> > if the NTB is shorter than dwNtbOutMaxSize, resulting in a short >> > USB packet instead of a ZLP. But in the case where the NTB length >> > is exactly dwNtbOutMaxSize and this is an exact multiplum of >> > wMaxPacketSize, then we must send a ZLP. >> >> The idea of NCM was to avoid extra ZLPs. If your transfer is exactly >> dwNtbOutMaxSize, it's known, you can submit such request on the receiver >> side and you do not need any EOT indicatation, so the frametime can be >> used for useful data. > > Yes, that makes sense. And I understand that both you and Alexey are of > this opinion. > > But this idea is by no means made clear (to me) in the spec. I do not > think the current wording is precise enough to expect every implementor > to understand any such intent. The only place I find either "short > packet" or ZLP mentioned in the NCM spec is in tables 3-1 and 3-2, > describing the 16bit and 32bit NTH formats, in the description of the > (d)wBlockLength fields. And even there it is only mentioned in the > context of the special (d)wBlockLength = 0x0000 handling. I agree, it could be a bit unclear, " If exactly dwNtbInMaxSize or dwNtbOutMaxSize bytes are sent, and the size is a multiple of wMax- PacketSize for the given pipe, then no ZLP shall be sent. " is an independent clause. > > If the intent was to prevent ZLPs, then it would have been wise to write > that in the NCM standard. As it stands you have to use a lot of > imagination to read that intent into the current spec. Well, I hope the guys took your complains into account and will fix the wording in the future spec versions. -- 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