rohc team mailing list archive
Mailing list archive
Re: [Question #670854]: negative feedback & rate limit mechamism
Question #670854 on rohc changed:
Status: Open => Answered
Didier Barvaux proposed the following answer:
The rate limiting is specified by the ROHC standard. See RFC3095, §5.7.6
named "Feedback packets and formats":
When the round-trip time between compressor and decompressor is
large, several packets can be in flight concurrently. Therefore,
several packets may be received by the decompressor after feedback
has been sent and before the compressor has reacted to feedback.
Moreover, decompression may fail due to residual errors in the
a) in O-mode, the decompressor SHOULD limit the rate at which
feedback on successful decompression is sent (if it is sent at
b) when decompression fails, feedback SHOULD be sent only when
decompression of several consecutive packets has failed, and when
this occurs, the feedback rate SHOULD be limited;
c) when packets are received which belong to a rejected packet
stream, the feedback rate SHOULD be limited.
A decompressor MAY limit the feedback rate by sending feedback only
for one out of every k packets provoking the same (kind of) feedback.
The appropriate value of k is implementation dependent; k might be
chosen such that feedback is sent 1-3 times per link round-trip time.
So, the ROHC library implements a rate-limiting algorithm as follow: a NACK is not sent after every decompression failure, we wait for several failures before sending a NACK :
* if there is less than k failures out of the last n decompressions
(successful or not), no feedback is sent
* if there is more than k failures out of the last n decompressions
(successful or not):
* if there is more than k feedbacks transmitted out of the last n
decompression (failures only), no feedback is sent
* if there is less than k feedbacks transmitted out of the last n
decompression (failures only), one feedback is sent
The k and n values are configurable. They are specific per type of
feedbacks (ACK, NACK, STATIC-NACK). If you set k = 1 and n = 32, it
should disable the rate-limiting.
See the documentation of the rohc_decomp_set_rate_limits() function for more details:
You received this question notification because your team ROHC Team is
an answer contact for rohc.