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

    Status: Answered => Open

Mohammad Abyan Abdullah is still having a problem:
Ok.  Like one change ..
  At Outer IP-ID patch you told me that it's not fixable at the first error 
packet. It has to fixed 3 packet to get a valid packet. So I did modified the 
code a bit to get the packet valid at first CRC error.  What I saw at the log I 
provided to you is whenever the packet comes late the IP-ID value mismatch at 
that time. So at
d_generic.c
At
static bool decode_values_from_bits(struct rohc_decomp_ctxt *const context,
                                    const struct rohc_extr_bits bits,
                                    struct rohc_decoded_values *const decoded)
{
        struct d_generic_context *g_context;
        bool decode_ok;
        bool packet_late = false;

.....
...

  else if(decoded->sn < expected_next_sn)
                {
                        /* smaller SN: order was changed on the network channel 
*/
                        rohc_info(context->decompressor, ROHC_TRACE_DECOMP, 
context->profile->id,
                                  "packet seems to come late (SN jumped back 
from 0x%x "
                                  "to 0x%x)", sn_context, decoded->sn);
                        context->nr_lost_packets = 0;
                        context->nr_misordered_packets = expected_next_sn - 
decoded->sn;
                        context->is_duplicated = false;
                        packet_late = true;
                }

......
...
      if(packet_late)
        {
        decode_ok = decode_ip_values_from_bits(context, 
g_context->outer_ip_changes,
                                               
g_context->outer_ip_id_offset_ctxt,
                                                decoded->sn, 
ROHC_LSB_REF_MINUS_1, bits.outer_ip,
                                               "outer", &decoded->outer_ip);
        rohc_decomp_debug(context, "Using Late Packet Reference");
        }
        else
        {
        /* decode fields related to the outer IP header */
        decode_ok = decode_ip_values_from_bits(context, 
g_context->outer_ip_changes,
                                               
g_context->outer_ip_id_offset_ctxt,
                                                decoded->sn, bits.sn_ref_type, 
bits.outer_ip,
                                               "outer", &decoded->outer_ip);
        }


So whenever I see a packet comes late from the sn difference I can use 
ROHC_LSB_REF_MINUS_1 to determine the outer-ip-id for that late packet. So I 
don't get anymore CRC error packets for that scenario. I don't if that feasible 
or not. :)

Regards
Abyan

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

_______________________________________________
Mailing list: https://launchpad.net/~rohc
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~rohc
More help   : https://help.launchpad.net/ListHelp

Reply via email to