Determining p value for WLSB of RTP SN.

Ang Way Chuang <[email protected]> Sat, 02 May 2009 11:52:48 +0800
Newsgroups gmane.ietf.rohc
Message-ID <[email protected]>
Dear ROHC list subscribers,

According to section 5.7 of RFC 3095:
    SN: The compressed RTP Sequence Number.

        Compressed with W-LSB.  The interpretation intervals, see section
        4.5.1, are defined as follows:

             p = 1                   if bits(SN) <= 4
             p = 2^(bits(SN)-5) - 1  if bits(SN) >  4

    where bits(x) is the number of bits in the compressed header.

At first, when I read that the change in the value of p depends on
bits(SN), I was very perplexed. If the algorithm determines k <= 4 can
be used, but due to other factors packet type that is to be used only
have bits(SN) > 4, then we may have problem with the following situation:

Say, compressor receives reordered RTP, then:
vref_c = 32
val = 31
then k=1 is more than enough to cover val because the interpretation
interval is
[32 - 1, 32 + (2 - 1) - 1 ] = [31, 32]

But if the packet type only have bits(SN) = 5, then we are screwed:
[32 - (2^0 - 1), 32 + 2^5 - 1 - (2^0 - 1)] = [32, 63]

31 is not covered!!
Thus, the logic for getting k for SN becomes very hairy because it has
to take care of this situation. k > 5 are okay because whatever the
interpretation interval for these k bits are superset of interpretation
interval for k <= 4.

But when I look at all packet types for RTP, none of them has bits(SN)
== 5. Thus, I assume that whatever calculated k bit of SN are generally
safe to be expanded to the available bits(SN). Is my understanding on
this matter correct? Do tell me if I get it wrong or miss out something
important.

Thank you in advance.

Regards,
Ang Way Chuang