Subject: RE: [rohc] RFC3095 TS wraparound issues not really resolved

From: "Lars-Erik Jonsson \(LU/EAB\)" <[email-masked]>
Date: Sat, 5 Mar 2005 11:12:22 +0100

> The only thing that I'd like to be happy that we've got nice and
> unambiguous is what we mean by "at wraparound", for the compressor.
> Given Haipeng's concerns about the interpretation interval and the
> desire to support re-ordering, are we happy that we've defined
> *when* the compressor must send unscaled TS bits? 
> (The answer may well be 'yes', but I'd just like to check...)
> 
> Cheers,
> 
> Mark.

The key issue that makes TS wraparound particularly tricky for scaled
TS encoding is the fact that TS_OFFSET will change upon wraparound,
if TS_STRIDE is not a power of two. This makes scaled TS special,
compared to any other LSB encoded field in ROHC. What the compressor
must do is thus to send unscaled TS to ensure TS_OFFSET gets 
reinitialized, i.e. it is not the wraparound that requires this action,
but a change of the TS_OFFSET value.

I've prepared a text proposal for the implementer's guide. Please let
me know if you find any flaws, missing pieces, or have other comments.

BR
/L-E

------------ Draft text for the implementer's guide -------------

4.5. TS wraparound with scaled timestamp encoding

  In the scaled timestamp encoding section, 4.5.3, it is said in point
  4 and 5 that the compressor is not required to initialize TS_OFFSET
  at wraparound, but that it is required to increase the number of bits
  sent for the scaled TS value when there is a TS wraparound. The
  decompressor is also required to detect and cope with TS wraparound,
  including updating TS_OFFSET. This has been found to be non-trivial
  to do, as well as hard to make interoperable and robust. The gain is
  also insignificant, as TS wraparound happens very seldom. 

  It is therefore recommended not to follow point 4-5 of section 4.5.3,
  and instead the compressor is recommended to reinitialize TS_OFFSET
  upon TS wraparound, by sending unscaled TS. This is equivalent of
  replacing point 4-5 with:

    4.  Offset at wraparound: If the value of TS_STRIDE is not equal
        to a power of two, wraparound of the unscaled 32-bit TS will
        change the value of TS_OFFSET. When this happens, the 
        compressor must reinitialize TS_OFFSET by sending unscaled TS,
        as in 1 above.

  It should be noted that by following this recommendation for the
  compressor to reinitialize TS_OFFSET at wraparound, there will be no
  problems interacting with a decompressor that still tries to follow
  4.5.3 points 4-5. For a decompressor that assumes the compressor will
  follow the above recommendation, there is a risk of the decompressor
  context becoming invalid. Considering the size if the TS number space,
  and thus the number of packets between each TS wraparound, the
  potential cost of this is considered negligible.

_______________________________________________
Rohc mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/rohc