← Back to team overview

rohc team mailing list archive

Re: rohc_feedback in 1.7



> Looks like my code is using the decompressor side feedback as
> described. I do also see feedback generated over the air. However,
> did not see anything in the function that wraps up the whole compress
> process with compress4(). No feedbacks there, no timer, these are
> good points and they are needed for my wireless links. Will do more
> work to add these. Cheers!

You can create a packet by concatenating one or more feedback packets
then the ROHC packet generated by rohc_compress4(). The result is a
valid ROHC packet. The concatenation may be performed using the
rohc_buf_*() functions.

See the man pages for the rohc_buf_*() functions here:

> Liked you simplified API idea. No argument it is a positive move. Few
> notes,
> 1) The "automated" decompress () process - clear, of course in case
>    this side is sending packets back "quite" often.
> 2) The compress() process - makes sense to piggyback requests this
>    way, as well.
> 3) You've noted a "random_cb" in the args of rohc_couple_new(). What
> this cb could be for? Handling the sending of feedbacks which have
> expired because no packets was sent for some time?

See the rand_cb and rand_priv parameters of the rohc_comp_new2()

> If not, would be nice to have something to register to - the app: to
> implement a timer cb for both ends?

I don't like much the idea to implement the timer inside the ROHC
library. Timers are very dependent of the OS (Linux, BSD, MacOS,
Windows...), so it is difficult to be portable.

> 4) Hmm... flushing feedback could have been nice if you knew to
> correlate feedbacks to open compressed sessions. If the feedback can
> be relevant (as other side might be still waiting) I'd prefer to send
> whatever I've got rather than flush it. Makes sense? Of course, can
> run another timer to garbage collect this, if qualifies as garbage...

By "flush", I mean "send all packets to network now". Maybe we should
name the function rohc_couple_flush_to_remote_network().