← Back to team overview

rohc team mailing list archive

Re: [Question #214638]: Decompressor configuration when compressor is in an independent process

 

Question #214638 on rohc changed:
https://answers.launchpad.net/rohc/+question/214638

    Status: Open => Answered

Didier Barvaux proposed the following answer:
Hi Carlos,

I'm not sure to fully understand you. I do not known the LTE
specifications very well, especially the "interspersed ROHC feedback
packet". I'll explain you how the library works for feedbacks. I hope it
will help you. Feel free to ask questions.

When used in bi-directional mode, the ROHC compressor transmits ROHC
packets to the ROHC decompressor, and the ROHC decompressor transmits
ROHC feedbacks to the ROHC compressor. See http://rohc-
lib.org/wiki/lib/exe/fetch.php?media=wiki:rohc_rmode.png for a figure.

However the ROHC decompressor does not transmit the ROHC feedbacks
itself. It uses an associated ROHC compressor to transmit them. The
associated compressor is not the same compressor that transmitted ROHC
packets to the ROHC decompressor. See the ASCII figure at
http://bazaar.launchpad.net/~didier-
barvaux/rohc/main/view/head:/test/non_regression/test_non_regression.c#L34
. On the figure, you got 2 ROHC compressor/decompressor pairs.
Compressor 1 transmits ROHC packets to decompressor 1. Compressor 2
transmits ROHC packets to decompressor 2. Decompressor 1 uses compressor
2 to transmit feedbacks. Decompressor 2 uses compressor 1 to transmit
feedbacks.

One ROHC compressor may transmit ROHC feedbacks in one of the following
2 ways: 1/ as a standalone packet, 2/ by using piggybacking (= ROHC
feedback put at the very beginning of any ROHC packet).

In the ROHC library, a ROHC compressor tries to piggyback ROHC feedbacks
whenever it compresses then transmits a ROHC packet. This is performed
in a transparent way. You do nothing. If there is no traffic on which to
piggyback ROHC feedbacks, one can extract the ROHC feedbacks from the
ROHC compressor, and transmit them manually. This is performed by the
rohc_feedback_flush() function (see http://rohc-lib.org/doc/rohc-
doc-1.5.0/group__rohc__comp.html#gaa018058bb0ab4a1419264d8dd2434f7a).

So, if you want not to use piggybacking and send the feedbacks on your
own: a/ create a 2nd ROHC compressor, b/ associate it to the
decompressor, c/ call rohc_feedback_flush() on the 2nd compressor after
every call to rohc_decompress() on the decompressor, d/ send the
returned feedback data on your own.

Hope it helps!

Regards,
Didier

-- 
You received this question notification because you are a member of ROHC
Team, which is an answer contact for rohc.