length of iso packets
Brought to you by:
aeb,
bencollins
From: Manfred W. <e95...@st...> - 2000-04-11 13:42:08
|
I have the following problem concerning the reception of iso packets: I have to ways to find out the length of an iso packet in the iso handler: the length argument and the iso header which is positioned in the first quadlet of the buffer. Normally length == (data[0] >> 16) + 4. This is because the length of the buffer contains the quadlet which represents the iso header. Usually this condition is fulfilled. But sometimes I received packets where the length argument sayed that the packet length was 332 wherea the iso header (ie. data[0] >> 16) sayed 584. Since I know the size of my iso packets, I can tell you that (of course) the iso header is right and the length argument reports an incorrect length. So two questions emerge: 1) Why does the handler report an incorrect packet length? 2) Is the buffer (*data) filled correctly or are only the first 332 bytes valid and the rest (256 Bytes) lost? Manfred Weihs PS: I use a Unibrain Fireboard with the pcilynx driver, and reception of iso packets works quite find, but as mentioned above: sometimes data is lost. PPS: Just when I wanted to send this mail I observed another version of that problem: Iso header said 776 whhereas the length argument said 732. So now 48 Bytes are missing. Again the length reported by the header is correct, since valid packet sizes in my application are (without iso header) 192*k+8 (k is an integer and 8 is the length of the CIP header). But the most frequent version of that problem is 332 vs. 584. |