How to calcualte the ip_id on decompressor side when RND bit toggles from 1 to 0

Created by Sankar Malladi
Last updated by:
Sankar Malladi

Hi Didier Barvaux.
Thanks for the excellent explanation for FA 201484 .

However i have a doubt regarding the 4th bullet.

I wanted to know the clarification in the context of decompressor , but not the compressor.

/ Scenario "RND=1 and change to RND=0":
      - at compressor: IPv4 + context(RND): 1 -> 0 => UOR-2-ID + extension 3 with packet(RND)=0
      - at decompressor: IPv4 + context(RND)=1 => UOR-2-RTP
      - when parsing extension 3, packet(RND)=0 is found, and packet is re-parsed as UOR-2-ID

Can you please highlight or share the reference in the source code where we compute the ip_id correctly?

Here is my understanding:
a. when 1st packet received with RND bit 1, then we have to compute and store the id_offset_ref as curr_ip_id - curr_SN
b. when 2nd packet is received with RND bit toggled to 0, then we hv to use the id_ref computed at step 1 and compute the current ip_id as id_offset_ref + curr_SN.

pls correct my algorithm if you think there are any mistakes.