Comment 8 for bug 573631

Revision history for this message
Jan (jan-ellenbeck) wrote :

Daniel,

thanks for the explanation regarding the queue sizes and headers. Now it all makes sense :-)

Let's have a look at our example:

We add 4 PDUs A (80 bits), B (80 bits), C (80 bits), D (50 bits) to the queue and set the fixed header size to 16 and the extension header size to 8 bits.

What the queue shows is the "brutto" bits and they are computed taking one full header and 3 extension headers: (16 + 80) + (8 + 80) + (8 + 80) + (8 + 50) = 330 bits

So far so good.

When we take segments out, the first SDU is supposed to have a 16bit header and subsequent SDUs (fragments) in the same segment take an additional 8 bits.

Now we ask for the first 126 bits so we get (16 + 80) + (8 + 22) = 126 which
is the complete 80 bits of PDU A and 22 bits of PDU B with a fixed header and an extension header.

Now we ask for the next 126 bits and get (16 + 58) + (8 + 44) = 126
which is the remaining 58 bits of PDU B and the first 44 bits of PDU C again with a fixed header and an extension header.

Now we ask for the next 126 bits and get (16 + 36) + (8 + 50) = 110 bits
which is the rest of PDU C and the complete PDU D of only 50 bits again with a fixed header and an extension header.

Thanks
Jan