Outer IP ID Issue
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_
[c_generic.c:6311 detect_
[c_generic.c:6311 detect_
[c_generic.c:6311 detect_
[c_generic.c:6311 detect_
[c_generic.c:6311 detect_
[c_generic.c:6311 detect_
[c_generic.c:6311 detect_
[c_generic.c:6311 detect_
[c_generic.c:6311 detect_
[c_generic.c:6311 detect_
[c_generic.c:6311 detect_
[c_generic.c:6311 detect_
[c_generic.c:6311 detect_
[c_generic.c:6311 detect_
[c_generic.c:6311 detect_
[c_generic.c:6311 detect_
At decompression
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
[d_generic.c:6351 decode_
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
|
#1 |
This question was expired because it remained in the 'Open' state without activity for the last 15 days.
Revision history for this message
|
#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_
[d_generic.c:2538 parse_uo1id()] 5 outer IP-ID bits = 0x1f
[d_generic.c:6053 decode_
[d_generic.c:6351 decode_
One packet comes late
[rohc_decomp.c:3874 rohc_decomp_
[d_generic.c:2538 parse_uo1id()] 5 outer IP-ID bits = 0x1e
[d_generic.c:6053 decode_
[d_generic.c:6117 decode_
[d_generic.c:6351 decode_
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
|
#3 |
Sorry
I forgot to mention what we got from the compressor for both of the packets.
[c_generic.c:1218 c_generic_
[c_generic.c:6311 detect_
[c_generic.c:2947 code_UO1_packet()] 5 bits of 8-bit innermost non-random IP-ID = 0x1e
[c_generic.c:1218 c_generic_
[c_generic.c:6311 detect_
[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
|
#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
|
#5 |
I forgot to mention: a network capture of the uncompressed packets before the compressor if possible.
Revision history for this message
|
#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
|
#7 |
If it is large, put it on pastebin.com and post the link here.
Revision history for this message
|
#8 |
Hi!!
Here is the pastebin.com link. Sorry for the large file. :(
Regards
Abyan
Revision history for this message
|
#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:/
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:/
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://
Regards,
Didier
Revision history for this message
|
#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_
[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_
[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_
[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_
[d_rtp.c:1478 rtp_parse_
[d_generic.c:1447 d_generic_decode()] ROHC payload (length = 20 bytes) starts at offset 7
[d_generic.c:6077 decode_
[d_generic.c:6131 decode_
[d_generic.c:6248 decode_
[d_generic.c:6261 decode_
[d_generic.c:6275 decode_
[d_generic.c:6291 decode_
[d_generic.c:6304 decode_
[d_generic.c:6317 decode_
[d_generic.c:6387 decode_
[d_generic.c:6403 decode_
[d_generic.c:6419 decode_
[d_generic.c:6435 decode_
[d_rtp.c:1542 rtp_decode_
[d_rtp.c:1557 rtp_decode_
[d_rtp.c:1584 rtp_decode_
[d_rtp.c:1598 rtp_decode_
[d_rtp.c:1612 rtp_decode_
[d_rtp.c:1626 rtp_decode_
[d_rtp.c:1640 rtp_decode_
[d_rtp.c:1656 rtp_decode_
[d_rtp.c:1670 rtp_decode_
[d_rtp.c:1673 rtp_decode_
[d_rtp.c:1723 rtp_decode_
[scaled_
[scaled_
[scaled_
[scaled_
[d_rtp.c:1736 rtp_decode_
[d_rtp.c:1750 rtp_decode_
[d_generic.c:5408 build_uncomp_
[d_generic.c:5590 build_uncomp_
[d_generic.c:5594 build_uncomp_
[d_rtp.c:1793 rtp_build_
[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_
[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_
[d_generic.c:6131 decode_
[d_generic.c:6248 decode_
[d_generic.c:6261 decode_
[d_generic.c:6275 decode_
[d_generic.c:6291 decode_
[d_generic.c:6304 decode_
[d_generic.c:6317 decode_
[d_generic.c:6387 decode_
[d_generic.c:6403 decode_
[d_generic.c:6419 decode_
[d_generic.c:6435 decode_
[d_rtp.c:1542 rtp_decode_
[d_rtp.c:1557 rtp_decode_
[d_rtp.c:1584 rtp_decode_
[d_rtp.c:1598 rtp_decode_
[d_rtp.c:1612 rtp_decode_
[d_rtp.c:1626 rtp_decode_
[d_rtp.c:1640 rtp_decode_
[d_rtp.c:1656 rtp_decode_
[d_rtp.c:1670 rtp_decode_
[d_rtp.c:1673 rtp_decode_
[d_rtp.c:1723 rtp_decode_
[scaled_
[scaled_
[scaled_
[scaled_
[d_rtp.c:1736 rtp_decode_
[d_rtp.c:1750 rtp_decode_
[d_generic.c:5408 build_uncomp_
[d_generic.c:5559 build_uncomp_
[d_generic.c:5590 build_uncomp_
[d_generic.c:5594 build_uncomp_
[d_rtp.c:1793 rtp_build_
[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_
[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.
[rohc_decomp.c:3911 rohc_decomp_
[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_
[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_
[d_rtp.c:466 rtp_choose_
[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_
[d_generic.c:1447 d_generic_decode()] ROHC payload (length = 20 bytes) starts at offset 7
[d_generic.c:6077 decode_
[d_generic.c:6131 decode_
[d_generic.c:6248 decode_
[d_generic.c:6261 decode_
[d_generic.c:6275 decode_
[d_generic.c:6291 decode_
[d_generic.c:6304 decode_
[d_generic.c:6317 decode_
[d_generic.c:6387 decode_
[d_generic.c:6403 decode_
[d_generic.c:6419 decode_
[d_generic.c:6435 decode_
[d_rtp.c:1542 rtp_decode_
[d_rtp.c:1557 rtp_decode_
[d_rtp.c:1584 rtp_decode_
[d_rtp.c:1598 rtp_decode_
[d_rtp.c:1612 rtp_decode_
[d_rtp.c:1626 rtp_decode_
[d_rtp.c:1640 rtp_decode_
[d_rtp.c:1656 rtp_decode_
[d_rtp.c:1670 rtp_decode_
[d_rtp.c:1673 rtp_decode_
[d_rtp.c:1723 rtp_decode_
[scaled_
[scaled_
[scaled_
[scaled_
[d_rtp.c:1736 rtp_decode_
[d_rtp.c:1750 rtp_decode_
[d_generic.c:5408 build_uncomp_
[d_generic.c:5590 build_uncomp_
[d_generic.c:5594 build_uncomp_
[d_rtp.c:1793 rtp_build_
[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_
[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_
[d_generic.c:6141 decode_
[d_generic.c:6248 decode_
[d_generic.c:6261 decode_
[d_generic.c:6275 decode_
[d_generic.c:6291 decode_
[d_generic.c:6304 decode_
[d_generic.c:6317 decode_
[d_generic.c:6387 decode_
[d_generic.c:6403 decode_
[d_generic.c:6419 decode_
[d_generic.c:6435 decode_
[d_rtp.c:1542 rtp_decode_
[d_rtp.c:1557 rtp_decode_
[d_rtp.c:1584 rtp_decode_
[d_rtp.c:1598 rtp_decode_
[d_rtp.c:1612 rtp_decode_
[d_rtp.c:1626 rtp_decode_
[d_rtp.c:1640 rtp_decode_
[d_rtp.c:1656 rtp_decode_
[d_rtp.c:1670 rtp_decode_
[d_rtp.c:1673 rtp_decode_
[d_rtp.c:1723 rtp_decode_
[scaled_
[scaled_
[scaled_
[scaled_
[d_rtp.c:1736 rtp_decode_
[d_rtp.c:1750 rtp_decode_
[d_generic.c:5408 build_uncomp_
[d_generic.c:5590 build_uncomp_
[d_generic.c:5594 build_uncomp_
[d_rtp.c:1793 rtp_build_
[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_
[scaled_
[scaled_
[scaled_
[scaled_
[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_
[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_
[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_
[d_rtp.c:466 rtp_choose_
[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_
[d_generic.c:1447 d_generic_decode()] ROHC payload (length = 20 bytes) starts at offset 7
[d_generic.c:6077 decode_
[d_generic.c:6141 decode_
[d_generic.c:6248 decode_
[d_generic.c:6261 decode_
[d_generic.c:6275 decode_
[d_generic.c:6291 decode_
[d_generic.c:6304 decode_
[d_generic.c:6317 decode_
[d_generic.c:6387 decode_
[d_generic.c:6403 decode_
[d_generic.c:6419 decode_
[d_generic.c:6435 decode_
[d_rtp.c:1542 rtp_decode_
[d_rtp.c:1557 rtp_decode_
[d_rtp.c:1584 rtp_decode_
[d_rtp.c:1598 rtp_decode_
[d_rtp.c:1612 rtp_decode_
[d_rtp.c:1626 rtp_decode_
[d_rtp.c:1640 rtp_decode_
[d_rtp.c:1656 rtp_decode_
[d_rtp.c:1670 rtp_decode_
[d_rtp.c:1673 rtp_decode_
[d_rtp.c:1723 rtp_decode_
[scaled_
[scaled_
[scaled_
[scaled_
[d_rtp.c:1736 rtp_decode_
[d_rtp.c:1750 rtp_decode_
[d_generic.c:5408 build_uncomp_
[d_generic.c:5590 build_uncomp_
[d_generic.c:5594 build_uncomp_
[d_rtp.c:1793 rtp_build_
[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_
[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_
[d_generic.c:6141 decode_
[d_generic.c:6248 decode_
[d_generic.c:6261 decode_
[d_generic.c:6275 decode_
[d_generic.c:6291 decode_
[d_generic.c:6304 decode_
[d_generic.c:6317 decode_
[d_generic.c:6387 decode_
[d_generic.c:6403 decode_
[d_generic.c:6419 decode_
[d_generic.c:6435 decode_
[d_rtp.c:1542 rtp_decode_
[d_rtp.c:1557 rtp_decode_
[d_rtp.c:1584 rtp_decode_
[d_rtp.c:1598 rtp_decode_
[d_rtp.c:1612 rtp_decode_
[d_rtp.c:1626 rtp_decode_
[d_rtp.c:1640 rtp_decode_
[d_rtp.c:1656 rtp_decode_
[d_rtp.c:1670 rtp_decode_
[d_rtp.c:1673 rtp_decode_
[d_rtp.c:1723 rtp_decode_
[scaled_
[scaled_
[scaled_
[scaled_
[d_rtp.c:1736 rtp_decode_
[d_rtp.c:1750 rtp_decode_
[d_generic.c:5408 build_uncomp_
[d_generic.c:5590 build_uncomp_
[d_generic.c:5594 build_uncomp_
[d_rtp.c:1793 rtp_build_
[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_
[scaled_
[scaled_
[scaled_
[scaled_
[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_
[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_
[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_
[d_rtp.c:466 rtp_choose_
[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_
[d_generic.c:1447 d_generic_decode()] ROHC payload (length = 20 bytes) starts at offset 7
[d_generic.c:6077 decode_
[d_generic.c:6131 decode_
[d_generic.c:6248 decode_
[d_generic.c:6261 decode_
[d_generic.c:6275 decode_
[d_generic.c:6291 decode_
[d_generic.c:6304 decode_
[d_generic.c:6317 decode_
[d_generic.c:6387 decode_
[d_generic.c:6403 decode_
[d_generic.c:6419 decode_
[d_generic.c:6435 decode_
[d_rtp.c:1542 rtp_decode_
[d_rtp.c:1557 rtp_decode_
[d_rtp.c:1584 rtp_decode_
[d_rtp.c:1598 rtp_decode_
[d_rtp.c:1612 rtp_decode_
[d_rtp.c:1626 rtp_decode_
[d_rtp.c:1640 rtp_decode_
[d_rtp.c:1656 rtp_decode_
[d_rtp.c:1670 rtp_decode_
[d_rtp.c:1673 rtp_decode_
[d_rtp.c:1723 rtp_decode_
[scaled_
[scaled_
[scaled_
[scaled_
[d_rtp.c:1736 rtp_decode_
[d_rtp.c:1750 rtp_decode_
[d_generic.c:5408 build_uncomp_
[d_generic.c:5590 build_uncomp_
[d_generic.c:5594 build_uncomp_
[d_rtp.c:1793 rtp_build_
[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_
[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_
[d_generic.c:6131 decode_
[d_generic.c:6248 decode_
[d_generic.c:6261 decode_
[d_generic.c:6275 decode_
[d_generic.c:6291 decode_
[d_generic.c:6304 decode_
[d_generic.c:6317 decode_
[d_generic.c:6387 decode_
[d_generic.c:6403 decode_
[d_generic.c:6419 decode_
[d_generic.c:6435 decode_
[d_rtp.c:1542 rtp_decode_
[d_rtp.c:1557 rtp_decode_
[d_rtp.c:1584 rtp_decode_
[d_rtp.c:1598 rtp_decode_
[d_rtp.c:1612 rtp_decode_
[d_rtp.c:1626 rtp_decode_
[d_rtp.c:1640 rtp_decode_
[d_rtp.c:1656 rtp_decode_
[d_rtp.c:1670 rtp_decode_
[d_rtp.c:1673 rtp_decode_
[d_rtp.c:1723 rtp_decode_
[scaled_
[scaled_
[scaled_
[scaled_
[d_rtp.c:1736 rtp_decode_
[d_rtp.c:1750 rtp_decode_
[d_generic.c:5408 build_uncomp_
[d_generic.c:5590 build_uncomp_
[d_generic.c:5594 build_uncomp_
[d_rtp.c:1793 rtp_build_
[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_
[scaled_
[scaled_
[scaled_
[scaled_
[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
|
#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
|
#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
|
#13 |
Fix merged on branches master and 1.7.x.
Revision history for this message
|
#15 |
I can not access the patch http://
Revision history for this message
|
#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:/
* master -> https:/
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
|
#17 |
as for 1.7.x -> https:/
Compared with 1.7.0,you only modify the code in d_generic.
Revision history for this message
|
#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.