Outer IP ID Issue

Asked by Mohammad Abyan Abdullah

Hi!
   Didier thanks for such a great project. I'm testing the library version 1.7.0. I found some CRC problem after sending few RTP flows with SIPP. I found that here are some Outer IP ID mismatch at compression decompression side. Here are the stats at compression and decompression side.

At compression sent IP ID as

[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10e2 new_id = 0x10e9
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10e9 new_id = 0x10ea
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10ea new_id = 0x10eb
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10e3 new_id = 0x10ee
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10eb new_id = 0x10ef
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10ef new_id = 0x10f0
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10f0 new_id = 0x10f1
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10e5 new_id = 0x10f2
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10e7 new_id = 0x10f3
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10e6 new_id = 0x10f4
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10e8 new_id = 0x10f5
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10f1 new_id = 0x10f6
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10ee new_id = 0x10f7
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10f6 new_id = 0x10f8
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10f2 new_id = 0x10f9
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10f3 new_id = 0x10fa
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10f5 new_id = 0x10fb

At decompression

[d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10e9 (rnd = 0, nbo = 1, sid = 0, nr bits = 16, bits = 0x471b)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10ea (rnd = 0, nbo = 1, sid = 0, nr bits = 16, bits = 0x471b)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10eb (rnd = 0, nbo = 1, sid = 0, nr bits = 16, bits = 0x46f9)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10f8 (rnd = 0, nbo = 1, sid = 0, nr bits = 16, bits = 0x4717)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10f9 (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0xfc)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10fa (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0x3)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10ee (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0xee)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10ef (rnd = 0, nbo = 1, sid = 0, nr bits = 16, bits = 0x46ec)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10f0 (rnd = 0, nbo = 1, sid = 0, nr bits = 16, bits = 0x4710)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10f1 (rnd = 0, nbo = 1, sid = 0, nr bits = 16, bits = 0x46fe)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x11f2 (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0xf6)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x11f2 (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0xf6)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x11f3 (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0xfd)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x11f3 (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0xfd)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10f4 (rnd = 0, nbo = 1, sid = 0, nr bits = 16, bits = 0x471c)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10f5 (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0x3)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10f6 (rnd = 0, nbo = 1, sid = 0, nr bits = 16, bits = 0x46f2)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10f7 (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0xf6)
 [d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10fb (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0x8)

U can see in between IP-ID changed to IP-ID = 0x10f1 to next IP-ID = 0x11f2 which is far more difference. I can see from compression it sent correctly. Yet I'm not sure CRC error causes for this but I want to clear my doubt.

Regards
Abyan

Question information

Language:
English Edit question
Status:
Answered
For:
rohc Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Launchpad Janitor (janitor) said :
#1

This question was expired because it remained in the 'Open' state without activity for the last 15 days.

Revision history for this message
Mohammad Abyan Abdullah (c-admin-v) said :
#2

Hi!
    after a lot research what I see is if there is a packet come late the outer IP-ID is always increasing where is should get the value less then the previous packet. Like at after this packet

[rohc_decomp.c:3874 rohc_decomp_decode_cid()] 1-byte large CID = 8
[d_generic.c:2538 parse_uo1id()] 5 outer IP-ID bits = 0x1f
[d_generic.c:6053 decode_values_from_bits()] decoded SN = 51709 / 0xc9fd (nr bits = 7, bits = 125 / 0x7d)
[d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x10f9 (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0xfc)

One packet comes late

[rohc_decomp.c:3874 rohc_decomp_decode_cid()] 1-byte large CID = 8
[d_generic.c:2538 parse_uo1id()] 5 outer IP-ID bits = 0x1e
[d_generic.c:6053 decode_values_from_bits()] decoded SN = 51708 / 0xc9fc (nr bits = 7, bits = 124 / 0x7c)
[d_generic.c:6117 decode_values_from_bits()] packet seems to come late (SN jumped back from 0xc9fd to 0xc9fc)
[d_generic.c:6351 decode_ip_values_from_bits()] decoded outer IP-ID = 0x11f2 (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0xf6)

And then we are getting CRC Error.

My question is if packet is late outer IP-ID should get the value less then IP-ID = 0x10f9 or should be near to this but why jumped from IP-ID = 0x10f9 to IP-ID = 0x11f2 which difference is around 249+

Can you plzz let me know is it normal to get a large value after a packet comes late ?

Regards
Abyan

Revision history for this message
Mohammad Abyan Abdullah (c-admin-v) said :
#3

Sorry
  I forgot to mention what we got from the compressor for both of the packets.

[c_generic.c:1218 c_generic_detect_changes()] SN = 51708
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10e5 new_id = 0x10f2
[c_generic.c:2947 code_UO1_packet()] 5 bits of 8-bit innermost non-random IP-ID = 0x1e

[c_generic.c:1218 c_generic_detect_changes()] SN = 51709
[c_generic.c:6311 detect_ip_id_behaviour()] 1) old_id = 0x10f2 new_id = 0x10f9
[c_generic.c:2947 code_UO1_packet()] 5 bits of 8-bit innermost non-random IP-ID = 0x1f

Regards
Abyan

Revision history for this message
Didier Barvaux (didier-barvaux) said :
#4

Hello,

Sorry, I forgot to answer your question :-/

What is the stream that the decompressor fails to decompress correctly? Is it SIP (thus using the UDP profile) or RTP (thus using the RTP profile)?

Is it possible to provide the full log when the problem occurs (I mean 100 packets before the failure)? Same question for the stream itself? A network capture in PCAP format would be helpful.

Regards,
Didier

Revision history for this message
Didier Barvaux (didier-barvaux) said :
#5

I forgot to mention: a network capture of the uncompressed packets before the compressor if possible.

Revision history for this message
Mohammad Abyan Abdullah (c-admin-v) said :
#6

Hi!!
  Thanks for answering my question. Since I'm new to the forum I don't how to include log files here. Since the log file is large for 100 packets data it'd be tough to include as a message plzz let me know how can I include the file.

Regards
Abyan

Revision history for this message
Didier Barvaux (didier-barvaux) said :
#7

If it is large, put it on pastebin.com and post the link here.

Revision history for this message
Mohammad Abyan Abdullah (c-admin-v) said :
#8

Hi!!
   Here is the pastebin.com link. Sorry for the large file. :(

http://pastebin.com/jbPT1n7h

Regards
Abyan

Revision history for this message
Didier Barvaux (didier-barvaux) said :
#9

Thank you for the logs. I have built a fake RTP stream with the elements from the logs. I reproduce the CRC failure that you encounter. The packet reordering that occurs between the compressor and the decompressor is the root of your problem.

Indeed the ROHC protocol is not designed to handle packet reordering between compressor and decompressor. It is stated in RFC 3095, §4.1:
      The channel between compressor and decompressor is required to
      maintain packet ordering, i.e., the decompressor must receive
      packets in the same order as the compressor sent them.
      (Reordering before the compression point, however, is dealt with,
      i.e., there is no assumption that the compressor will only receive
      packets in sequence.)
See https://tools.ietf.org/html/rfc3095#section-4.1 for the full text. Please note that packet reordering before the compressor or after the decompressor is perfectly handled by the ROHC protocol.

As a consequence, the following may be expected:
  packet N is received and successfully decompressed
  packet N+2 is received and successfully decompressed
  packet N+1 is received and failed to be decompressed (CRC failure)
  next packets may be successfully decompressed or not depending on the RTP stream

The ROHC protocol defines a way to better recover from CRC failures. It is called "Actions upon CRC failure" (see §5.3.2.2.3, §5.3.2.2.4 and §5.3.2.2.5 in RFC 3095, https://tools.ietf.org/html/rfc3095#section-5.3.2.2.3). This mechanism is implemented by the ROHC library. According to your logs, it is enabled and tries to correct the decompression problem.

However, the correction upon CRC failure fails: RTP SN is corrected but not the IPv4 IP-ID. I think that I identified the problem. The mechanism described in the RFC is applied on the RTP SN but not on the IP-ID. I didn't apply it to IP-ID when I implemented the mechanism, because the RFC don't say to do so, but it makes sense. So, I have written a patch that does exactly that. Please apply it to the ROHC library sources, re-build it, re-install it, test the new setup, then report me success/failure.

Please find the patch there: http://pastebin.com/JDvJQrx1

Regards,
Didier

Revision history for this message
Mohammad Abyan Abdullah (c-admin-v) said :
#10

Hi!!
   I applied the patch. I think it made some difference. Here is some log. I'll test more and let you know if it fixed fully.

[rohc_decomp.c:1370 rohc_decompress3()] decompress the 27-byte packet #179
[rohc_decomp.c:3911 rohc_decomp_parse_padding()] skip 0 byte(s) of padding
[rohc_decomp.c:1762 d_decode_header()] decompressor received 0 bytes of feedback for the same-side associated compressor
[rohc_decomp.c:3874 rohc_decomp_decode_cid()] 1-byte large CID = 19
[rohc_decomp.c:1962 d_decode_header()] ROHC packet is not an IR packet
[rohc_decomp.c:1977 d_decode_header()] context with CID 19 found
[d_rtp.c:442 rtp_choose_uo1_variant()] UO-1* packet disambiguation: no IPv4 header with context(RND) = 0, so parse as UO-1-RTP
[rohc_decomp.c:2043 d_decode_header()] decode packet as 'RTP/UO-1'
[d_generic.c:2292 parse_uo1rtp()] 6 TS bits = 0x9
[d_generic.c:2305 parse_uo1rtp()] 1-bit RTP Marker (M) = 1
[d_generic.c:2309 parse_uo1rtp()] 4 SN bits = 0x8
[d_generic.c:2314 parse_uo1rtp()] CRC-3 found in packet = 0x07
[d_generic.c:4679 parse_uo_remainder()] replace any existing outer IP-ID bits with with the ones found at the end of the UO* packet (0x7810 on 16 bits)
[d_rtp.c:1478 rtp_parse_uo_remainder()] UDP checksum = 0xc239
[d_generic.c:1447 d_generic_decode()] ROHC payload (length = 20 bytes) starts at offset 7
[d_generic.c:6077 decode_values_from_bits()] decoded SN = 51656 / 0xc9c8 (nr bits = 4, bits = 8 / 0x8)
[d_generic.c:6131 decode_values_from_bits()] 5 packets seem to have been lost, damaged, or failed to be decompressed (SN jumped from 0xc9c2 to 0xc9c8)
[d_generic.c:6248 decode_ip_values_from_bits()] decoded outer TOS/TC = 0
[d_generic.c:6261 decode_ip_values_from_bits()] decoded outer TTL/HL = 64
[d_generic.c:6275 decode_ip_values_from_bits()] decoded outer protocol/NH = 17
[d_generic.c:6291 decode_ip_values_from_bits()] decoded outer NBO = 1
[d_generic.c:6304 decode_ip_values_from_bits()] decoded outer RND = 1
[d_generic.c:6317 decode_ip_values_from_bits()] decoded outer SID = 0
[d_generic.c:6387 decode_ip_values_from_bits()] decoded outer IP-ID = 0x7810 (rnd = 1, nbo = 1, sid = 0, nr bits = 16, bits = 0x7810)
[d_generic.c:6403 decode_ip_values_from_bits()] decoded outer DF = 1
[d_generic.c:6419 decode_ip_values_from_bits()] decoded outer src address = 0a00020a (10.0.2.10)
[d_generic.c:6435 decode_ip_values_from_bits()] decoded outer dst address = c05f28c2 (192.95.40.194)
[d_rtp.c:1542 rtp_decode_values_from_bits()] decoded UDP source port = 0x2710
[d_rtp.c:1557 rtp_decode_values_from_bits()] decoded UDP destination port = 0x1794
[d_rtp.c:1584 rtp_decode_values_from_bits()] decoded UDP checksum = 0xc239 (checksum present = 1)
[d_rtp.c:1598 rtp_decode_values_from_bits()] decoded RTP version = 2
[d_rtp.c:1612 rtp_decode_values_from_bits()] decoded R-P flag = 0
[d_rtp.c:1626 rtp_decode_values_from_bits()] decoded R-X flag = 0
[d_rtp.c:1640 rtp_decode_values_from_bits()] decoded CC = 0
[d_rtp.c:1656 rtp_decode_values_from_bits()] decoded RTP M flag = 1
[d_rtp.c:1670 rtp_decode_values_from_bits()] decoded R-PT = 18
[d_rtp.c:1673 rtp_decode_values_from_bits()] 6-bit TS delta = 0x9
[d_rtp.c:1723 rtp_decode_values_from_bits()] TS is scaled
[scaled_rtp_ts.c:400 ts_decode_scaled_bits()] decode scaled TS bits 9 with context TS_STRIDE 1120
[scaled_rtp_ts.c:415 ts_decode_scaled_bits()] decode 6-bit TS_SCALED 9 (reference = 1)
[scaled_rtp_ts.c:427 ts_decode_scaled_bits()] TS_SCALED decoded = 9 / 0x9 with 6 bits
[scaled_rtp_ts.c:433 ts_decode_scaled_bits()] TS = 10720 (TS_STRIDE = 1120, TS_OFFSET = 640)
[d_rtp.c:1736 rtp_decode_values_from_bits()] decoded timestamp = 10720 / 0x29e0 (nr bits = 6, bits = 9 / 0x9)
[d_rtp.c:1750 rtp_decode_values_from_bits()] decoded SSRC = 2787962433
[d_generic.c:5408 build_uncomp_hdrs()] length of transport header = 20 bytes
[d_generic.c:5590 build_uncomp_ipv4()] Total Length = 0x003c (IHL * 4 + 40)
[d_generic.c:5594 build_uncomp_ipv4()] IP checksum = 0xcd75
[d_rtp.c:1793 rtp_build_uncomp_rtp()] UDP + RTP length = 0x0028
[d_generic.c:5824 check_uncomp_crc()] CRC-3 , CRC bytes = [0]: 0x04 [1]: 0x00 [2]: 0x00 [3]: 0x00
[d_generic.c:5827 check_uncomp_crc()] CRC-3 on uncompressed header = 0x4
[d_generic.c:5833 check_uncomp_crc()] CRC failure (computed = 0x04, packet = 0x07)
[d_generic.c:5453 build_uncomp_hdrs()] CRC detected a decompression failure for packet of type RTP/UO-1 in state Full Context and mode O-mode
[d_generic.c:1574 d_generic_decode()] CID 19: failed to build uncompressed headers (CRC failure)
[d_generic.c:5883 attempt_repair()] CID 19: CRC repair: attempt to correct SN
[d_generic.c:5916 attempt_repair()] CID 19: CRC repair: CRC failure seems to be caused by an incorrect SN update
[d_generic.c:5928 attempt_repair()] CID 19: CRC repair: try using ref -1 (51649) as reference SN instead of ref 0 (51650)
[d_generic.c:1491 d_generic_decode()] CID 19: CRC repair: try decoding packet again with new assumptions
[d_generic.c:6077 decode_values_from_bits()] decoded SN = 51656 / 0xc9c8 (nr bits = 4, bits = 8 / 0x8)
[d_generic.c:6131 decode_values_from_bits()] 5 packets seem to have been lost, damaged, or failed to be decompressed (SN jumped from 0xc9c2 to 0xc9c8)
[d_generic.c:6248 decode_ip_values_from_bits()] decoded outer TOS/TC = 0
[d_generic.c:6261 decode_ip_values_from_bits()] decoded outer TTL/HL = 64
[d_generic.c:6275 decode_ip_values_from_bits()] decoded outer protocol/NH = 17
[d_generic.c:6291 decode_ip_values_from_bits()] decoded outer NBO = 1
[d_generic.c:6304 decode_ip_values_from_bits()] decoded outer RND = 1
[d_generic.c:6317 decode_ip_values_from_bits()] decoded outer SID = 0
[d_generic.c:6387 decode_ip_values_from_bits()] decoded outer IP-ID = 0x7810 (rnd = 1, nbo = 1, sid = 0, nr bits = 16, bits = 0x7810)
[d_generic.c:6403 decode_ip_values_from_bits()] decoded outer DF = 1
[d_generic.c:6419 decode_ip_values_from_bits()] decoded outer src address = 0a00020a (10.0.2.10)
[d_generic.c:6435 decode_ip_values_from_bits()] decoded outer dst address = c05f28c2 (192.95.40.194)
[d_rtp.c:1542 rtp_decode_values_from_bits()] decoded UDP source port = 0x2710
[d_rtp.c:1557 rtp_decode_values_from_bits()] decoded UDP destination port = 0x1794
[d_rtp.c:1584 rtp_decode_values_from_bits()] decoded UDP checksum = 0xc239 (checksum present = 1)
[d_rtp.c:1598 rtp_decode_values_from_bits()] decoded RTP version = 2
[d_rtp.c:1612 rtp_decode_values_from_bits()] decoded R-P flag = 0
[d_rtp.c:1626 rtp_decode_values_from_bits()] decoded R-X flag = 0
[d_rtp.c:1640 rtp_decode_values_from_bits()] decoded CC = 0
[d_rtp.c:1656 rtp_decode_values_from_bits()] decoded RTP M flag = 1
[d_rtp.c:1670 rtp_decode_values_from_bits()] decoded R-PT = 18
[d_rtp.c:1673 rtp_decode_values_from_bits()] 6-bit TS delta = 0x9
[d_rtp.c:1723 rtp_decode_values_from_bits()] TS is scaled
[scaled_rtp_ts.c:393 ts_decode_scaled_bits()] decode scaled TS bits 9 with updated TS_STRIDE 1120
[scaled_rtp_ts.c:415 ts_decode_scaled_bits()] decode 6-bit TS_SCALED 9 (reference = 1)
[scaled_rtp_ts.c:427 ts_decode_scaled_bits()] TS_SCALED decoded = 9 / 0x9 with 6 bits
[scaled_rtp_ts.c:433 ts_decode_scaled_bits()] TS = 10720 (TS_STRIDE = 1120, TS_OFFSET = 640)
[d_rtp.c:1736 rtp_decode_values_from_bits()] decoded timestamp = 10720 / 0x29e0 (nr bits = 6, bits = 9 / 0x9)
[d_rtp.c:1750 rtp_decode_values_from_bits()] decoded SSRC = 2787962433
[d_generic.c:5408 build_uncomp_hdrs()] length of transport header = 20 bytes
[d_generic.c:5559 build_uncomp_ipv4()] decoded IP-ID = 0x7810
[d_generic.c:5590 build_uncomp_ipv4()] Total Length = 0x003c (IHL * 4 + 40)
[d_generic.c:5594 build_uncomp_ipv4()] IP checksum = 0xcd75
[d_rtp.c:1793 rtp_build_uncomp_rtp()] UDP + RTP length = 0x0028
[d_generic.c:5824 check_uncomp_crc()] CRC-3 , CRC bytes = [0]: 0x04 [1]: 0x00 [2]: 0x00 [3]: 0x00
[d_generic.c:5827 check_uncomp_crc()] CRC-3 on uncompressed header = 0x4
[d_generic.c:5833 check_uncomp_crc()] CRC failure (computed = 0x04, packet = 0x07)
[d_generic.c:5453 build_uncomp_hdrs()] CRC detected a decompression failure for packet of type RTP/UO-1 in state Full Context and mode O-mode
[d_generic.c:1574 d_generic_decode()] CID 19: failed to build uncompressed headers (CRC failure)
[d_generic.c:1585 d_generic_decode()] CID 19: failed to build uncompressed headers (CRC failure)
[rohc_decomp.c:2073 d_decode_header()] failed to decompress packet (code = 4)
[rohc_decomp.c:1387 rohc_decompress3()] d_decode_header returned code 4
[rohc_decomp.c:1470 rohc_decompress3()] packet decompression failed because of malformed packet or bad CRC
[rohc_decomp.c:1487 rohc_decompress3()] feedback curr 100
[rohc_decomp.c:1489 rohc_decompress3()] feedback max 300
Uncomp Packet lenght 27 Bytes

ROHC decompression error: -4

at Apr 11 15:51:08 2015 amin/103.230.107.19:43826 [decompressor][rohc_decomp.c:1370 rohc_decompress3()] decompress the 27-byte packet #181
[rohc_decomp.c:3911 rohc_decomp_parse_padding()] skip 0 byte(s) of padding
[rohc_decomp.c:1762 d_decode_header()] decompressor received 0 bytes of feedback for the same-side associated compressor
[rohc_decomp.c:3874 rohc_decomp_decode_cid()] 1-byte large CID = 18
[rohc_decomp.c:1962 d_decode_header()] ROHC packet is not an IR packet
[rohc_decomp.c:1977 d_decode_header()] context with CID 18 found
[d_rtp.c:452 rtp_choose_uo1_variant()] UO-1* packet disambiguation: at least one IP header is IPv4 with context(RND) = 0, so parse as UO-1-ID or UO-1-TS
[d_rtp.c:466 rtp_choose_uo1_variant()] UO-1* packet disambiguation: T = 0, so parse as UO-1-ID
[rohc_decomp.c:2043 d_decode_header()] decode packet as 'RTP/UO-1-ID'
[d_generic.c:2526 parse_uo1id()] 5 IP-ID bits for IP header #1 = 0x4
[d_generic.c:2538 parse_uo1id()] 5 outer IP-ID bits = 0x4
[d_generic.c:2550 parse_uo1id()] 1-bit extension (X) = 1
[d_generic.c:2554 parse_uo1id()] 4 SN bits = 0x8
[d_generic.c:2559 parse_uo1id()] CRC-3 found in packet = 0x04
[d_generic.c:2585 parse_uo1id()] first byte of extension = 0x7b
[d_generic.c:5032 parse_extension1()] decode RTP/UO-1-ID extension 1
[d_generic.c:5046 parse_extension1()] 3 bits of SN found in EXT-1 = 0x7
[d_generic.c:5112 parse_extension1()] 3 bits of outer IP-ID found in EXT-1 = 0x3
[d_generic.c:5120 parse_extension1()] 8 bits of TS found in EXT-1 = 0x10
[d_rtp.c:1478 rtp_parse_uo_remainder()] UDP checksum = 0xc23d
[d_generic.c:1447 d_generic_decode()] ROHC payload (length = 20 bytes) starts at offset 7
[d_generic.c:6077 decode_values_from_bits()] decoded SN = 51783 / 0xca47 (nr bits = 7, bits = 71 / 0x47)
[d_generic.c:6131 decode_values_from_bits()] 122 packets seem to have been lost, damaged, or failed to be decompressed (SN jumped from 0xc9cc to 0xca47)
[d_generic.c:6248 decode_ip_values_from_bits()] decoded outer TOS/TC = 0
[d_generic.c:6261 decode_ip_values_from_bits()] decoded outer TTL/HL = 64
[d_generic.c:6275 decode_ip_values_from_bits()] decoded outer protocol/NH = 17
[d_generic.c:6291 decode_ip_values_from_bits()] decoded outer NBO = 1
[d_generic.c:6304 decode_ip_values_from_bits()] decoded outer RND = 0
[d_generic.c:6317 decode_ip_values_from_bits()] decoded outer SID = 0
[d_generic.c:6387 decode_ip_values_from_bits()] decoded outer IP-ID = 0x9c6a (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0x23)
[d_generic.c:6403 decode_ip_values_from_bits()] decoded outer DF = 1
[d_generic.c:6419 decode_ip_values_from_bits()] decoded outer src address = 0a00020a (10.0.2.10)
[d_generic.c:6435 decode_ip_values_from_bits()] decoded outer dst address = c05f28c2 (192.95.40.194)
[d_rtp.c:1542 rtp_decode_values_from_bits()] decoded UDP source port = 0x2710
[d_rtp.c:1557 rtp_decode_values_from_bits()] decoded UDP destination port = 0x1790
[d_rtp.c:1584 rtp_decode_values_from_bits()] decoded UDP checksum = 0xc23d (checksum present = 1)
[d_rtp.c:1598 rtp_decode_values_from_bits()] decoded RTP version = 2
[d_rtp.c:1612 rtp_decode_values_from_bits()] decoded R-P flag = 0
[d_rtp.c:1626 rtp_decode_values_from_bits()] decoded R-X flag = 0
[d_rtp.c:1640 rtp_decode_values_from_bits()] decoded CC = 0
[d_rtp.c:1656 rtp_decode_values_from_bits()] decoded RTP M flag = 0
[d_rtp.c:1670 rtp_decode_values_from_bits()] decoded R-PT = 18
[d_rtp.c:1673 rtp_decode_values_from_bits()] 8-bit TS delta = 0x10
[d_rtp.c:1723 rtp_decode_values_from_bits()] TS is scaled
[scaled_rtp_ts.c:400 ts_decode_scaled_bits()] decode scaled TS bits 16 with context TS_STRIDE 160
[scaled_rtp_ts.c:415 ts_decode_scaled_bits()] decode 8-bit TS_SCALED 16 (reference = 21)
[scaled_rtp_ts.c:427 ts_decode_scaled_bits()] TS_SCALED decoded = 16 / 0x10 with 8 bits
[scaled_rtp_ts.c:433 ts_decode_scaled_bits()] TS = 2560 (TS_STRIDE = 160, TS_OFFSET = 0)
[d_rtp.c:1736 rtp_decode_values_from_bits()] decoded timestamp = 2560 / 0xa00 (nr bits = 8, bits = 16 / 0x10)
[d_rtp.c:1750 rtp_decode_values_from_bits()] decoded SSRC = 2787962433
[d_generic.c:5408 build_uncomp_hdrs()] length of transport header = 20 bytes
[d_generic.c:5590 build_uncomp_ipv4()] Total Length = 0x003c (IHL * 4 + 40)
[d_generic.c:5594 build_uncomp_ipv4()] IP checksum = 0xa91b
[d_rtp.c:1793 rtp_build_uncomp_rtp()] UDP + RTP length = 0x0028
[d_generic.c:5824 check_uncomp_crc()] CRC-3 , CRC bytes = [0]: 0x06 [1]: 0x00 [2]: 0x00 [3]: 0x00
[d_generic.c:5827 check_uncomp_crc()] CRC-3 on uncompressed header = 0x6
[d_generic.c:5833 check_uncomp_crc()] CRC failure (computed = 0x06, packet = 0x04)
[d_generic.c:5453 build_uncomp_hdrs()] CRC detected a decompression failure for packet of type RTP/UO-1-ID in state Full Context and mode O-mode
[d_generic.c:1574 d_generic_decode()] CID 18: failed to build uncompressed headers (CRC failure)
[d_generic.c:5883 attempt_repair()] CID 18: CRC repair: attempt to correct SN
[d_generic.c:5916 attempt_repair()] CID 18: CRC repair: CRC failure seems to be caused by an incorrect SN update
[d_generic.c:5928 attempt_repair()] CID 18: CRC repair: try using ref -1 (51654) as reference SN instead of ref 0 (51660)
[d_generic.c:1491 d_generic_decode()] CID 18: CRC repair: try decoding packet again with new assumptions
[d_generic.c:6077 decode_values_from_bits()] decoded SN = 51655 / 0xc9c7 (nr bits = 7, bits = 71 / 0x47)
[d_generic.c:6141 decode_values_from_bits()] packet seems to come late (SN jumped back from 0xc9cc to 0xc9c7)
[d_generic.c:6248 decode_ip_values_from_bits()] decoded outer TOS/TC = 0
[d_generic.c:6261 decode_ip_values_from_bits()] decoded outer TTL/HL = 64
[d_generic.c:6275 decode_ip_values_from_bits()] decoded outer protocol/NH = 17
[d_generic.c:6291 decode_ip_values_from_bits()] decoded outer NBO = 1
[d_generic.c:6304 decode_ip_values_from_bits()] decoded outer RND = 0
[d_generic.c:6317 decode_ip_values_from_bits()] decoded outer SID = 0
[d_generic.c:6387 decode_ip_values_from_bits()] decoded outer IP-ID = 0x9aea (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0x23)
[d_generic.c:6403 decode_ip_values_from_bits()] decoded outer DF = 1
[d_generic.c:6419 decode_ip_values_from_bits()] decoded outer src address = 0a00020a (10.0.2.10)
[d_generic.c:6435 decode_ip_values_from_bits()] decoded outer dst address = c05f28c2 (192.95.40.194)
[d_rtp.c:1542 rtp_decode_values_from_bits()] decoded UDP source port = 0x2710
[d_rtp.c:1557 rtp_decode_values_from_bits()] decoded UDP destination port = 0x1790
[d_rtp.c:1584 rtp_decode_values_from_bits()] decoded UDP checksum = 0xc23d (checksum present = 1)
[d_rtp.c:1598 rtp_decode_values_from_bits()] decoded RTP version = 2
[d_rtp.c:1612 rtp_decode_values_from_bits()] decoded R-P flag = 0
[d_rtp.c:1626 rtp_decode_values_from_bits()] decoded R-X flag = 0
[d_rtp.c:1640 rtp_decode_values_from_bits()] decoded CC = 0
[d_rtp.c:1656 rtp_decode_values_from_bits()] decoded RTP M flag = 0
[d_rtp.c:1670 rtp_decode_values_from_bits()] decoded R-PT = 18
[d_rtp.c:1673 rtp_decode_values_from_bits()] 8-bit TS delta = 0x10
[d_rtp.c:1723 rtp_decode_values_from_bits()] TS is scaled
[scaled_rtp_ts.c:393 ts_decode_scaled_bits()] decode scaled TS bits 16 with updated TS_STRIDE 160
[scaled_rtp_ts.c:415 ts_decode_scaled_bits()] decode 8-bit TS_SCALED 16 (reference = 21)
[scaled_rtp_ts.c:427 ts_decode_scaled_bits()] TS_SCALED decoded = 16 / 0x10 with 8 bits
[scaled_rtp_ts.c:433 ts_decode_scaled_bits()] TS = 2560 (TS_STRIDE = 160, TS_OFFSET = 0)
[d_rtp.c:1736 rtp_decode_values_from_bits()] decoded timestamp = 2560 / 0xa00 (nr bits = 8, bits = 16 / 0x10)
[d_rtp.c:1750 rtp_decode_values_from_bits()] decoded SSRC = 2787962433
[d_generic.c:5408 build_uncomp_hdrs()] length of transport header = 20 bytes
[d_generic.c:5590 build_uncomp_ipv4()] Total Length = 0x003c (IHL * 4 + 40)
[d_generic.c:5594 build_uncomp_ipv4()] IP checksum = 0xaa9b
[d_rtp.c:1793 rtp_build_uncomp_rtp()] UDP + RTP length = 0x0028
[d_generic.c:5824 check_uncomp_crc()] CRC-3 , CRC bytes = [0]: 0x04 [1]: 0x00 [2]: 0x00 [3]: 0x00
[d_generic.c:5827 check_uncomp_crc()] CRC-3 on uncompressed header = 0x4
[d_generic.c:1537 d_generic_decode()] CID 18: CRC repair: CRC is correct
[scaled_rtp_ts.c:202 ts_update_context()] old SN 51660 replaced by new SN 51655
[scaled_rtp_ts.c:203 ts_update_context()] old TS 3360 replaced by new TS 2560
[scaled_rtp_ts.c:210 ts_update_context()] old TS_SCALED 21 replaced by new TS_SCALED 16
[scaled_rtp_ts.c:225 ts_update_context()] old TS_STRIDE 160 kept unchanged
[scaled_rtp_ts.c:235 ts_update_context()] old TS_OFFSET 0 kept unchanged
[d_generic.c:1615 d_generic_decode()] CID 18: CRC repair: throw away packet, still 1 CRC-valid packets required
[rohc_decomp.c:2073 d_decode_header()] failed to decompress packet (code = 4)
[rohc_decomp.c:1387 rohc_decompress3()] d_decode_header returned code 4
[rohc_decomp.c:1470 rohc_decompress3()] packet decompression failed because of malformed packet or bad CRC
[rohc_decomp.c:1487 rohc_decompress3()] feedback curr 100
[rohc_decomp.c:1489 rohc_decompress3()] feedback max 300
Uncomp Packet lenght 27 Bytes

ROHC decompression error: -4

[rohc_decomp.c:1370 rohc_decompress3()] decompress the 27-byte packet #198
[rohc_decomp.c:3911 rohc_decomp_parse_padding()] skip 0 byte(s) of padding
[rohc_decomp.c:1762 d_decode_header()] decompressor received 0 bytes of feedback for the same-side associated compressor
[rohc_decomp.c:3874 rohc_decomp_decode_cid()] 1-byte large CID = 7
[rohc_decomp.c:1962 d_decode_header()] ROHC packet is not an IR packet
[rohc_decomp.c:1977 d_decode_header()] context with CID 7 found
[d_rtp.c:452 rtp_choose_uo1_variant()] UO-1* packet disambiguation: at least one IP header is IPv4 with context(RND) = 0, so parse as UO-1-ID or UO-1-TS
[d_rtp.c:466 rtp_choose_uo1_variant()] UO-1* packet disambiguation: T = 0, so parse as UO-1-ID
[rohc_decomp.c:2043 d_decode_header()] decode packet as 'RTP/UO-1-ID'
[d_generic.c:2526 parse_uo1id()] 5 IP-ID bits for IP header #1 = 0x5
[d_generic.c:2538 parse_uo1id()] 5 outer IP-ID bits = 0x5
[d_generic.c:2550 parse_uo1id()] 1-bit extension (X) = 1
[d_generic.c:2554 parse_uo1id()] 4 SN bits = 0xa
[d_generic.c:2559 parse_uo1id()] CRC-3 found in packet = 0x01
[d_generic.c:2585 parse_uo1id()] first byte of extension = 0x7d
[d_generic.c:5032 parse_extension1()] decode RTP/UO-1-ID extension 1
[d_generic.c:5046 parse_extension1()] 3 bits of SN found in EXT-1 = 0x7
[d_generic.c:5112 parse_extension1()] 3 bits of outer IP-ID found in EXT-1 = 0x5
[d_generic.c:5120 parse_extension1()] 8 bits of TS found in EXT-1 = 0x54
[d_rtp.c:1478 rtp_parse_uo_remainder()] UDP checksum = 0x623f
[d_generic.c:1447 d_generic_decode()] ROHC payload (length = 20 bytes) starts at offset 7
[d_generic.c:6077 decode_values_from_bits()] decoded SN = 51671 / 0xc9d7 (nr bits = 7, bits = 87 / 0x57)
[d_generic.c:6141 decode_values_from_bits()] packet seems to come late (SN jumped back from 0xc9d8 to 0xc9d7)
[d_generic.c:6248 decode_ip_values_from_bits()] decoded outer TOS/TC = 0
[d_generic.c:6261 decode_ip_values_from_bits()] decoded outer TTL/HL = 64
[d_generic.c:6275 decode_ip_values_from_bits()] decoded outer protocol/NH = 17
[d_generic.c:6291 decode_ip_values_from_bits()] decoded outer NBO = 1
[d_generic.c:6304 decode_ip_values_from_bits()] decoded outer RND = 0
[d_generic.c:6317 decode_ip_values_from_bits()] decoded outer SID = 0
[d_generic.c:6387 decode_ip_values_from_bits()] decoded outer IP-ID = 0x9c04 (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0x2d)
[d_generic.c:6403 decode_ip_values_from_bits()] decoded outer DF = 1
[d_generic.c:6419 decode_ip_values_from_bits()] decoded outer src address = 0a00020a (10.0.2.10)
[d_generic.c:6435 decode_ip_values_from_bits()] decoded outer dst address = c05f28c2 (192.95.40.194)
[d_rtp.c:1542 rtp_decode_values_from_bits()] decoded UDP source port = 0x2710
[d_rtp.c:1557 rtp_decode_values_from_bits()] decoded UDP destination port = 0x1770
[d_rtp.c:1584 rtp_decode_values_from_bits()] decoded UDP checksum = 0x623f (checksum present = 1)
[d_rtp.c:1598 rtp_decode_values_from_bits()] decoded RTP version = 2
[d_rtp.c:1612 rtp_decode_values_from_bits()] decoded R-P flag = 0
[d_rtp.c:1626 rtp_decode_values_from_bits()] decoded R-X flag = 0
[d_rtp.c:1640 rtp_decode_values_from_bits()] decoded CC = 0
[d_rtp.c:1656 rtp_decode_values_from_bits()] decoded RTP M flag = 0
[d_rtp.c:1670 rtp_decode_values_from_bits()] decoded R-PT = 18
[d_rtp.c:1673 rtp_decode_values_from_bits()] 8-bit TS delta = 0x54
[d_rtp.c:1723 rtp_decode_values_from_bits()] TS is scaled
[scaled_rtp_ts.c:400 ts_decode_scaled_bits()] decode scaled TS bits 84 with context TS_STRIDE 160
[scaled_rtp_ts.c:415 ts_decode_scaled_bits()] decode 8-bit TS_SCALED 84 (reference = 85)
[scaled_rtp_ts.c:427 ts_decode_scaled_bits()] TS_SCALED decoded = 84 / 0x54 with 8 bits
[scaled_rtp_ts.c:433 ts_decode_scaled_bits()] TS = 13496 (TS_STRIDE = 160, TS_OFFSET = 56)
[d_rtp.c:1736 rtp_decode_values_from_bits()] decoded timestamp = 13496 / 0x34b8 (nr bits = 8, bits = 84 / 0x54)
[d_rtp.c:1750 rtp_decode_values_from_bits()] decoded SSRC = 2787962433
[d_generic.c:5408 build_uncomp_hdrs()] length of transport header = 20 bytes
[d_generic.c:5590 build_uncomp_ipv4()] Total Length = 0x003c (IHL * 4 + 40)
[d_generic.c:5594 build_uncomp_ipv4()] IP checksum = 0xa981
[d_rtp.c:1793 rtp_build_uncomp_rtp()] UDP + RTP length = 0x0028
[d_generic.c:5824 check_uncomp_crc()] CRC-3 , CRC bytes = [0]: 0x02 [1]: 0x00 [2]: 0x00 [3]: 0x00
[d_generic.c:5827 check_uncomp_crc()] CRC-3 on uncompressed header = 0x2
[d_generic.c:5833 check_uncomp_crc()] CRC failure (computed = 0x02, packet = 0x01)
[d_generic.c:5453 build_uncomp_hdrs()] CRC detected a decompression failure for packet of type RTP/UO-1-ID in state Full Context and mode O-mode
[d_generic.c:1574 d_generic_decode()] CID 7: failed to build uncompressed headers (CRC failure)
[d_generic.c:5883 attempt_repair()] CID 7: CRC repair: attempt to correct SN
[d_generic.c:5916 attempt_repair()] CID 7: CRC repair: CRC failure seems to be caused by an incorrect SN update
[d_generic.c:5928 attempt_repair()] CID 7: CRC repair: try using ref -1 (51669) as reference SN instead of ref 0 (51672)
[d_generic.c:1491 d_generic_decode()] CID 7: CRC repair: try decoding packet again with new assumptions
[d_generic.c:6077 decode_values_from_bits()] decoded SN = 51671 / 0xc9d7 (nr bits = 7, bits = 87 / 0x57)
[d_generic.c:6141 decode_values_from_bits()] packet seems to come late (SN jumped back from 0xc9d8 to 0xc9d7)
[d_generic.c:6248 decode_ip_values_from_bits()] decoded outer TOS/TC = 0
[d_generic.c:6261 decode_ip_values_from_bits()] decoded outer TTL/HL = 64
[d_generic.c:6275 decode_ip_values_from_bits()] decoded outer protocol/NH = 17
[d_generic.c:6291 decode_ip_values_from_bits()] decoded outer NBO = 1
[d_generic.c:6304 decode_ip_values_from_bits()] decoded outer RND = 0
[d_generic.c:6317 decode_ip_values_from_bits()] decoded outer SID = 0
[d_generic.c:6387 decode_ip_values_from_bits()] decoded outer IP-ID = 0x9b04 (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0x2d)
[d_generic.c:6403 decode_ip_values_from_bits()] decoded outer DF = 1
[d_generic.c:6419 decode_ip_values_from_bits()] decoded outer src address = 0a00020a (10.0.2.10)
[d_generic.c:6435 decode_ip_values_from_bits()] decoded outer dst address = c05f28c2 (192.95.40.194)
[d_rtp.c:1542 rtp_decode_values_from_bits()] decoded UDP source port = 0x2710
[d_rtp.c:1557 rtp_decode_values_from_bits()] decoded UDP destination port = 0x1770
[d_rtp.c:1584 rtp_decode_values_from_bits()] decoded UDP checksum = 0x623f (checksum present = 1)
[d_rtp.c:1598 rtp_decode_values_from_bits()] decoded RTP version = 2
[d_rtp.c:1612 rtp_decode_values_from_bits()] decoded R-P flag = 0
[d_rtp.c:1626 rtp_decode_values_from_bits()] decoded R-X flag = 0
[d_rtp.c:1640 rtp_decode_values_from_bits()] decoded CC = 0
[d_rtp.c:1656 rtp_decode_values_from_bits()] decoded RTP M flag = 0
[d_rtp.c:1670 rtp_decode_values_from_bits()] decoded R-PT = 18
[d_rtp.c:1673 rtp_decode_values_from_bits()] 8-bit TS delta = 0x54
[d_rtp.c:1723 rtp_decode_values_from_bits()] TS is scaled
[scaled_rtp_ts.c:393 ts_decode_scaled_bits()] decode scaled TS bits 84 with updated TS_STRIDE 160
[scaled_rtp_ts.c:415 ts_decode_scaled_bits()] decode 8-bit TS_SCALED 84 (reference = 85)
[scaled_rtp_ts.c:427 ts_decode_scaled_bits()] TS_SCALED decoded = 84 / 0x54 with 8 bits
[scaled_rtp_ts.c:433 ts_decode_scaled_bits()] TS = 13496 (TS_STRIDE = 160, TS_OFFSET = 56)
[d_rtp.c:1736 rtp_decode_values_from_bits()] decoded timestamp = 13496 / 0x34b8 (nr bits = 8, bits = 84 / 0x54)
[d_rtp.c:1750 rtp_decode_values_from_bits()] decoded SSRC = 2787962433
[d_generic.c:5408 build_uncomp_hdrs()] length of transport header = 20 bytes
[d_generic.c:5590 build_uncomp_ipv4()] Total Length = 0x003c (IHL * 4 + 40)
[d_generic.c:5594 build_uncomp_ipv4()] IP checksum = 0xaa81
[d_rtp.c:1793 rtp_build_uncomp_rtp()] UDP + RTP length = 0x0028
[d_generic.c:5824 check_uncomp_crc()] CRC-3 , CRC bytes = [0]: 0x01 [1]: 0x00 [2]: 0x00 [3]: 0x00
[d_generic.c:5827 check_uncomp_crc()] CRC-3 on uncompressed header = 0x1
[d_generic.c:1537 d_generic_decode()] CID 7: CRC repair: CRC is correct
[scaled_rtp_ts.c:202 ts_update_context()] old SN 51672 replaced by new SN 51671
[scaled_rtp_ts.c:203 ts_update_context()] old TS 13656 replaced by new TS 13496
[scaled_rtp_ts.c:210 ts_update_context()] old TS_SCALED 85 replaced by new TS_SCALED 84
[scaled_rtp_ts.c:225 ts_update_context()] old TS_STRIDE 160 kept unchanged
[scaled_rtp_ts.c:235 ts_update_context()] old TS_OFFSET 56 kept unchanged
[d_generic.c:1615 d_generic_decode()] CID 7: CRC repair: throw away packet, still 1 CRC-valid packets required
[rohc_decomp.c:2073 d_decode_header()] failed to decompress packet (code = 4)
[rohc_decomp.c:1387 rohc_decompress3()] d_decode_header returned code 4
[rohc_decomp.c:1470 rohc_decompress3()] packet decompression failed because of malformed packet or bad CRC
[rohc_decomp.c:1487 rohc_decompress3()] feedback curr 100
[rohc_decomp.c:1489 rohc_decompress3()] feedback max 300
Uncomp Packet lenght 27 Bytes

ROHC decompression error: -4

[rohc_decomp.c:1370 rohc_decompress3()] decompress the 27-byte packet #201
[rohc_decomp.c:3911 rohc_decomp_parse_padding()] skip 0 byte(s) of padding
[rohc_decomp.c:1762 d_decode_header()] decompressor received 0 bytes of feedback for the same-side associated compressor
[rohc_decomp.c:3874 rohc_decomp_decode_cid()] 1-byte large CID = 18
[rohc_decomp.c:1962 d_decode_header()] ROHC packet is not an IR packet
[rohc_decomp.c:1977 d_decode_header()] context with CID 18 found
[d_rtp.c:452 rtp_choose_uo1_variant()] UO-1* packet disambiguation: at least one IP header is IPv4 with context(RND) = 0, so parse as UO-1-ID or UO-1-TS
[d_rtp.c:466 rtp_choose_uo1_variant()] UO-1* packet disambiguation: T = 0, so parse as UO-1-ID
[rohc_decomp.c:2043 d_decode_header()] decode packet as 'RTP/UO-1-ID'
[d_generic.c:2526 parse_uo1id()] 5 IP-ID bits for IP header #1 = 0x7
[d_generic.c:2538 parse_uo1id()] 5 outer IP-ID bits = 0x7
[d_generic.c:2550 parse_uo1id()] 1-bit extension (X) = 1
[d_generic.c:2554 parse_uo1id()] 4 SN bits = 0x9
[d_generic.c:2559 parse_uo1id()] CRC-3 found in packet = 0x06
[d_generic.c:2585 parse_uo1id()] first byte of extension = 0x5c
[d_generic.c:5032 parse_extension1()] decode RTP/UO-1-ID extension 1
[d_generic.c:5046 parse_extension1()] 3 bits of SN found in EXT-1 = 0x3
[d_generic.c:5112 parse_extension1()] 3 bits of outer IP-ID found in EXT-1 = 0x4
[d_generic.c:5120 parse_extension1()] 8 bits of TS found in EXT-1 = 0x14
[d_rtp.c:1478 rtp_parse_uo_remainder()] UDP checksum = 0xd2c9
[d_generic.c:1447 d_generic_decode()] ROHC payload (length = 20 bytes) starts at offset 7
[d_generic.c:6077 decode_values_from_bits()] decoded SN = 51659 / 0xc9cb (nr bits = 7, bits = 75 / 0x4b)
[d_generic.c:6131 decode_values_from_bits()] 1 packets seem to have been lost, damaged, or failed to be decompressed (SN jumped from 0xc9c9 to 0xc9cb)
[d_generic.c:6248 decode_ip_values_from_bits()] decoded outer TOS/TC = 0
[d_generic.c:6261 decode_ip_values_from_bits()] decoded outer TTL/HL = 64
[d_generic.c:6275 decode_ip_values_from_bits()] decoded outer protocol/NH = 17
[d_generic.c:6291 decode_ip_values_from_bits()] decoded outer NBO = 1
[d_generic.c:6304 decode_ip_values_from_bits()] decoded outer RND = 0
[d_generic.c:6317 decode_ip_values_from_bits()] decoded outer SID = 0
[d_generic.c:6387 decode_ip_values_from_bits()] decoded outer IP-ID = 0x9c07 (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0x3c)
[d_generic.c:6403 decode_ip_values_from_bits()] decoded outer DF = 1
[d_generic.c:6419 decode_ip_values_from_bits()] decoded outer src address = 0a00020a (10.0.2.10)
[d_generic.c:6435 decode_ip_values_from_bits()] decoded outer dst address = c05f28c2 (192.95.40.194)
[d_rtp.c:1542 rtp_decode_values_from_bits()] decoded UDP source port = 0x2710
[d_rtp.c:1557 rtp_decode_values_from_bits()] decoded UDP destination port = 0x1790
[d_rtp.c:1584 rtp_decode_values_from_bits()] decoded UDP checksum = 0xd2c9 (checksum present = 1)
[d_rtp.c:1598 rtp_decode_values_from_bits()] decoded RTP version = 2
[d_rtp.c:1612 rtp_decode_values_from_bits()] decoded R-P flag = 0
[d_rtp.c:1626 rtp_decode_values_from_bits()] decoded R-X flag = 0
[d_rtp.c:1640 rtp_decode_values_from_bits()] decoded CC = 0
[d_rtp.c:1656 rtp_decode_values_from_bits()] decoded RTP M flag = 0
[d_rtp.c:1670 rtp_decode_values_from_bits()] decoded R-PT = 18
[d_rtp.c:1673 rtp_decode_values_from_bits()] 8-bit TS delta = 0x14
[d_rtp.c:1723 rtp_decode_values_from_bits()] TS is scaled
[scaled_rtp_ts.c:400 ts_decode_scaled_bits()] decode scaled TS bits 20 with context TS_STRIDE 160
[scaled_rtp_ts.c:415 ts_decode_scaled_bits()] decode 8-bit TS_SCALED 20 (reference = 18)
[scaled_rtp_ts.c:427 ts_decode_scaled_bits()] TS_SCALED decoded = 20 / 0x14 with 8 bits
[scaled_rtp_ts.c:433 ts_decode_scaled_bits()] TS = 3200 (TS_STRIDE = 160, TS_OFFSET = 0)
[d_rtp.c:1736 rtp_decode_values_from_bits()] decoded timestamp = 3200 / 0xc80 (nr bits = 8, bits = 20 / 0x14)
[d_rtp.c:1750 rtp_decode_values_from_bits()] decoded SSRC = 2787962433
[d_generic.c:5408 build_uncomp_hdrs()] length of transport header = 20 bytes
[d_generic.c:5590 build_uncomp_ipv4()] Total Length = 0x003c (IHL * 4 + 40)
[d_generic.c:5594 build_uncomp_ipv4()] IP checksum = 0xa97e
[d_rtp.c:1793 rtp_build_uncomp_rtp()] UDP + RTP length = 0x0028
[d_generic.c:5824 check_uncomp_crc()] CRC-3 , CRC bytes = [0]: 0x05 [1]: 0x00 [2]: 0x00 [3]: 0x00
[d_generic.c:5827 check_uncomp_crc()] CRC-3 on uncompressed header = 0x5
[d_generic.c:5833 check_uncomp_crc()] CRC failure (computed = 0x05, packet = 0x06)
[d_generic.c:5453 build_uncomp_hdrs()] CRC detected a decompression failure for packet of type RTP/UO-1-ID in state Full Context and mode O-mode
[d_generic.c:1574 d_generic_decode()] CID 18: failed to build uncompressed headers (CRC failure)
[d_generic.c:5883 attempt_repair()] CID 18: CRC repair: attempt to correct SN
[d_generic.c:5916 attempt_repair()] CID 18: CRC repair: CRC failure seems to be caused by an incorrect SN update
[d_generic.c:5928 attempt_repair()] CID 18: CRC repair: try using ref -1 (51658) as reference SN instead of ref 0 (51657)
[d_generic.c:1491 d_generic_decode()] CID 18: CRC repair: try decoding packet again with new assumptions
[d_generic.c:6077 decode_values_from_bits()] decoded SN = 51659 / 0xc9cb (nr bits = 7, bits = 75 / 0x4b)
[d_generic.c:6131 decode_values_from_bits()] 1 packets seem to have been lost, damaged, or failed to be decompressed (SN jumped from 0xc9c9 to 0xc9cb)
[d_generic.c:6248 decode_ip_values_from_bits()] decoded outer TOS/TC = 0
[d_generic.c:6261 decode_ip_values_from_bits()] decoded outer TTL/HL = 64
[d_generic.c:6275 decode_ip_values_from_bits()] decoded outer protocol/NH = 17
[d_generic.c:6291 decode_ip_values_from_bits()] decoded outer NBO = 1
[d_generic.c:6304 decode_ip_values_from_bits()] decoded outer RND = 0
[d_generic.c:6317 decode_ip_values_from_bits()] decoded outer SID = 0
[d_generic.c:6387 decode_ip_values_from_bits()] decoded outer IP-ID = 0x9b07 (rnd = 0, nbo = 1, sid = 0, nr bits = 8, bits = 0x3c)
[d_generic.c:6403 decode_ip_values_from_bits()] decoded outer DF = 1
[d_generic.c:6419 decode_ip_values_from_bits()] decoded outer src address = 0a00020a (10.0.2.10)
[d_generic.c:6435 decode_ip_values_from_bits()] decoded outer dst address = c05f28c2 (192.95.40.194)
[d_rtp.c:1542 rtp_decode_values_from_bits()] decoded UDP source port = 0x2710
[d_rtp.c:1557 rtp_decode_values_from_bits()] decoded UDP destination port = 0x1790
[d_rtp.c:1584 rtp_decode_values_from_bits()] decoded UDP checksum = 0xd2c9 (checksum present = 1)
[d_rtp.c:1598 rtp_decode_values_from_bits()] decoded RTP version = 2
[d_rtp.c:1612 rtp_decode_values_from_bits()] decoded R-P flag = 0
[d_rtp.c:1626 rtp_decode_values_from_bits()] decoded R-X flag = 0
[d_rtp.c:1640 rtp_decode_values_from_bits()] decoded CC = 0
[d_rtp.c:1656 rtp_decode_values_from_bits()] decoded RTP M flag = 0
[d_rtp.c:1670 rtp_decode_values_from_bits()] decoded R-PT = 18
[d_rtp.c:1673 rtp_decode_values_from_bits()] 8-bit TS delta = 0x14
[d_rtp.c:1723 rtp_decode_values_from_bits()] TS is scaled
[scaled_rtp_ts.c:393 ts_decode_scaled_bits()] decode scaled TS bits 20 with updated TS_STRIDE 160
[scaled_rtp_ts.c:415 ts_decode_scaled_bits()] decode 8-bit TS_SCALED 20 (reference = 18)
[scaled_rtp_ts.c:427 ts_decode_scaled_bits()] TS_SCALED decoded = 20 / 0x14 with 8 bits
[scaled_rtp_ts.c:433 ts_decode_scaled_bits()] TS = 3200 (TS_STRIDE = 160, TS_OFFSET = 0)
[d_rtp.c:1736 rtp_decode_values_from_bits()] decoded timestamp = 3200 / 0xc80 (nr bits = 8, bits = 20 / 0x14)
[d_rtp.c:1750 rtp_decode_values_from_bits()] decoded SSRC = 2787962433
[d_generic.c:5408 build_uncomp_hdrs()] length of transport header = 20 bytes
[d_generic.c:5590 build_uncomp_ipv4()] Total Length = 0x003c (IHL * 4 + 40)
[d_generic.c:5594 build_uncomp_ipv4()] IP checksum = 0xaa7e
[d_rtp.c:1793 rtp_build_uncomp_rtp()] UDP + RTP length = 0x0028
[d_generic.c:5824 check_uncomp_crc()] CRC-3 , CRC bytes = [0]: 0x06 [1]: 0x00 [2]: 0x00 [3]: 0x00
[d_generic.c:5827 check_uncomp_crc()] CRC-3 on uncompressed header = 0x6
[d_generic.c:1537 d_generic_decode()] CID 18: CRC repair: CRC is correct
[scaled_rtp_ts.c:202 ts_update_context()] old SN 51657 replaced by new SN 51659
[scaled_rtp_ts.c:203 ts_update_context()] old TS 2880 replaced by new TS 3200
[scaled_rtp_ts.c:210 ts_update_context()] old TS_SCALED 18 replaced by new TS_SCALED 20
[scaled_rtp_ts.c:225 ts_update_context()] old TS_STRIDE 160 kept unchanged
[scaled_rtp_ts.c:235 ts_update_context()] old TS_OFFSET 0 kept unchanged
[d_generic.c:1615 d_generic_decode()] CID 18: CRC repair: throw away packet, still 1 CRC-valid packets required
[rohc_decomp.c:2073 d_decode_header()] failed to decompress packet (code = 4)
[rohc_decomp.c:1387 rohc_decompress3()] d_decode_header returned code 4
[rohc_decomp.c:1470 rohc_decompress3()] packet decompression failed because of malformed packet or bad CRC
[rohc_decomp.c:1487 rohc_decompress3()] feedback curr 164
[rohc_decomp.c:1489 rohc_decompress3()] feedback max 300
Uncomp Packet lenght 27 Bytes

ROHC decompression error: -4

Regards
Abyan

Revision history for this message
Mohammad Abyan Abdullah (c-admin-v) said :
#11

Ok!!
      I think it solved the problem. But in other way it didn't. Like at my log u can see there is few packets( like 1 or 2) are coming late after few hundred packets. But after repair we are actually throwing these packets and keep wait for 3 successful repair where actually after 2/3 packets, packets sequence are already getting normal. If is there anyway we can keep the packets it'd be much effective.

Thank you very much for the patch.

Regards
Abyan

Revision history for this message
Didier Barvaux (didier-barvaux) said :
#12

Hi,

I forgot to tell you about the packets thrown away. In RFC 3095, the very end of the §5.3.2.2.5 entitled "Repair of incorrect SN updates" reads:
   The purpose of this algorithm is to repair the context. If the
   header generated in d. passes the CRC test, the references are
   updated according to f., but two more headers MUST also be
   successfully decompressed before the repair is deemed successful. Of
   the three successful headers, the first two SHOULD be discarded and
   only the third delivered to upper layers. If decompression of any of
   the three headers fails, the decompressor MUST discard that header
   and the previously generated headers, and act according to rules a)
   through c) of section 5.3.2.2.3.

So, the behaviour that you detected in the logs is the expected one. It helps the decompressor to be confident in the repair that it performed.

Thank you for the feedback on the patch, I'll integrate for the next bugfix release 1.7.1.

Regards,
Didier

Revision history for this message
Didier Barvaux (didier-barvaux) said :
#13

Fix merged on branches master and 1.7.x.

Revision history for this message
regulararmy (regulararmy) said :
#15

I can not access the patch http://pastebin.com/JDvJQrx1 here,can you give me another path?

Revision history for this message
Didier Barvaux (didier-barvaux) said :
#16

Hello,

The patch was merged on both master and 1.7.x branches. I searched through the Git history to find them:
* 1.7.x -> https://github.com/didier-barvaux/rohc/commit/4e372e5fd15bd5b052ddb86180e611e065a01431
* master -> https://github.com/didier-barvaux/rohc/commit/7e5ba10f86f77e8707b83ff89a610a354e9af75d

The fix on master was first released in version 2.0.0. It is also included in later versions such as 2.1.0 and 2.2.0.

Regards,
Didier Barvaux

Revision history for this message
regulararmy (regulararmy) said :
#17

as for 1.7.x -> https://github.com/didier-barvaux/rohc/commit/4e372e5fd15bd5b052ddb86180e611e065a01431,

Compared with 1.7.0,you only modify the code in d_generic.c,d_generic.h,ip_id_offset.c,ip_id_offset.h, is it right?

Revision history for this message
Didier Barvaux (didier-barvaux) said :
#18

Hello,

Yes for the library source code itself, but I also added some tests as shown in the Github diff.

Regards,
Didier Barvaux

Can you help with this problem?

Provide an answer of your own, or ask Mohammad Abyan Abdullah for more information if necessary.

To post a message you must log in.