after few minutes continue traffic flow rohc uses only CID 0 and all contexts beend used.

Bug #1443581 reported by Mohammad Abyan Abdullah
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
rohc
Fix Committed
High
Didier Barvaux
Iprohc-main
Confirmed
High
Didier Barvaux
Rohc-1.7.x
Fix Committed
High
Didier Barvaux

Bug Description

Hi!!
  After running 30 rtp flow for 10-15 minutes ROHC couldn't allocate more contexts. It always uses CID 0 for new Packet. here is the logs.

[rohc_comp.c:1803 rohc_comp_get_segment2()] no RRU available in given compressor
[rohc_comp.c:5033 rohc_feedback_get()] no feedback is available
[rohc_comp.c:5108 rohc_feedback_get()] add 0 byte(s) of feedback data
[net_pkt.c:75 net_pkt_parse()] outer IP header: 60 bytes
[net_pkt.c:77 net_pkt_parse()] outer IP header: version 4
[net_pkt.c:82 net_pkt_parse()] outer IP header: next header is of type 17
[net_pkt.c:87 net_pkt_parse()] outer IP header: next layer is of type 17
[rohc_comp.c:4608 c_get_profile_from_packet()] try to find the best profile for packet with transport protocol 17
[c_rtp.c:339 c_rtp_check_profile()] RTP packet detected by the RTP callback
[rohc_comp.c:4813 rohc_comp_find_ctxt()] using profile 'IP/UDP/RTP' (0x0001)
[rohc_comp.c:4851 rohc_comp_find_ctxt()] no context was found
[rohc_comp.c:4860 rohc_comp_find_ctxt()] no existing context found for packet, create a new one
[rohc_comp.c:4695 c_create_context()] recycle oldest context (CID = 0)
[c_generic.c:502 c_generic_create()] new generic context required for a new stream
[c_generic.c:528 c_generic_create()] use shift parameter 3 for LSB-encoding of SN
[c_rtp.c:154 c_rtp_create()] initialize context(SN) = hdr(SN) of first packet = 52170
[rohc_comp.c:4767 c_create_context()] context (CID = 0) created (num_used = 451)
[rohc_comp.c:1435 rohc_compress4()] compress the packet #329780
[c_rtp.c:1437 rtp_changed_rtp_dynamic()] find changes in RTP dynamic fields
[c_rtp.c:1453 rtp_changed_rtp_dynamic()] UDP checksum field did not change but changed in the last few packets
[c_rtp.c:1503 rtp_changed_rtp_dynamic()] RTP Padding (P) bit did not change but changed in the last few packets
[c_rtp.c:1529 rtp_changed_rtp_dynamic()] RTP eXtension (X) bit did not change but changed in the last few packets
[c_rtp.c:1554 rtp_changed_rtp_dynamic()] RTP Payload Type (PT) field did not change but changed in the last few packets
[c_rtp.c:1569 rtp_changed_rtp_dynamic()] TS_STRIDE changed now or in the last few packets
[c_rtp.c:1573 rtp_changed_rtp_dynamic()] 4 RTP dynamic fields changed
[c_generic.c:1218 c_generic_detect_changes()] SN = 52170
[c_generic.c:6294 detect_ip_id_behaviour()] no previous IP-ID, consider non-random/static and NBO
[c_generic.c:6358 detect_ip_id_behaviour()] NBO = 1, RND = 0, SID = 0
[c_generic.c:6187 detect_changed_fields()] TTL/HL changed from 0x00 to 0x40
[c_generic.c:6195 detect_changed_fields()] Protocol/NH changed from 0x00 to 0x11
[c_generic.c:5903 changed_static_one_hdr()] protocol_count 3
[c_generic.c:5933 changed_dynamic_both_hdr()] check for changed fields in the outer IP header
[c_generic.c:6011 changed_dynamic_one_hdr()] TTL/HL changed in the current packet
[c_generic.c:6034 changed_dynamic_one_hdr()] DF changed in the current packet
[c_generic.c:6072 changed_dynamic_one_hdr()] NBO changed (0x0 -> 0x1) in the current packet
[c_generic.c:1283 c_generic_detect_changes()] send_static = 1, send_dynamic = 3
[c_rtp.c:1004 rtp_decide_state()] 4 RTP dynamic fields changed, stay in IR state
[c_generic.c:6428 encode_uncomp_fields()] compressor is in state 1
[c_generic.c:6433 encode_uncomp_fields()] new SN = 52170 / 0xcbca
[c_generic.c:6441 encode_uncomp_fields()] IR state: force using 16 bits to encode new SN
[c_generic.c:6456 encode_uncomp_fields()] 16 bits are required to encode new SN
[c_generic.c:6477 encode_uncomp_fields()] new outer IP-ID delta = 0xb7a / 2938 (NBO = 1, RND = 0, SID = 0)
[c_generic.c:6485 encode_uncomp_fields()] IR state: force using 16 bits to encode new outer IP-ID delta
[c_generic.c:6508 encode_uncomp_fields()] 16 bits are required to encode new outer IP-ID delta
[scaled_rtp_ts.c:143 c_add_ts()] Timestamp = 119000
[scaled_rtp_ts.c:160 c_add_ts()] TS_STRIDE cannot be computed, stay in INIT_TS state
[c_rtp.c:1129 rtp_encode_uncomp_fields()] unscaled TS = 119000 on 32 bits
[c_rtp.c:1168 rtp_encode_uncomp_fields()] 32 bits are required to encode new TS
[c_generic.c:1498 decide_packet()] decide packet in IR state
[c_generic.c:1543 decide_packet()] packet 'IR' chosen
[c_generic.c:1720 code_IR_packet()] code IR packet (CID = 0)
[c_generic.c:1739 code_IR_packet()] large CID 0 encoded on 1 byte(s)
[c_generic.c:1751 code_IR_packet()] type of packet + D flag = 0xfd
[c_generic.c:1763 code_IR_packet()] profile ID = 0x01
[c_generic.c:1769 code_IR_packet()] CRC = 0x00 for CRC calculation
[c_generic.c:2090 code_ipv4_static_part()] version = 0x40
[c_generic.c:2095 code_ipv4_static_part()] protocol = 0x11
[c_generic.c:2104 code_ipv4_static_part()] src addr = 0a000201 (10.0.2.1)
[c_generic.c:2111 code_ipv4_static_part()] dst addr = 0a000206 (10.0.2.6)
[c_udp.c:490 udp_code_static_udp_part()] UDP source port = 0x1027
[c_udp.c:495 udp_code_static_udp_part()] UDP dest port = 0x282b
[c_rtp.c:1223 rtp_code_static_rtp_part()] RTP SSRC = 0xa62cee41
[c_generic.c:2340 code_ipv4_dynamic_part()] TOS = 0x00
[c_generic.c:2347 code_ipv4_dynamic_part()] TTL = 0x40
[c_generic.c:2357 code_ipv4_dynamic_part()] IP-ID = 0xd7 0x44
[c_generic.c:2378 code_ipv4_dynamic_part()] (DF = 1, RND = 0, NBO = 1, SID = 0) = 0xa0
[c_generic.c:2390 code_ipv4_dynamic_part()] Generic extension header list = 0x00
[c_rtp.c:1289 rtp_code_dynamic_rtp_part()] UDP checksum = 0x8505
[c_rtp.c:1310 rtp_code_dynamic_rtp_part()] (V = 2, P = 0, RX = 1, CC = 0x0) = 0x90
[c_rtp.c:1320 rtp_code_dynamic_rtp_part()] (M = 0, PT = 0x12) = 0x12
[c_rtp.c:1327 rtp_code_dynamic_rtp_part()] SN = 0xcb 0xca
[c_rtp.c:1335 rtp_code_dynamic_rtp_part()] TS = 0x00 0x01 0xd0 0xd8
[c_rtp.c:1341 rtp_code_dynamic_rtp_part()] Generic CSRC list not supported yet, put a 0x00 byte
[c_rtp.c:1364 rtp_code_dynamic_rtp_part()] (X = 0, Mode = 1, TIS = 0, TSS = 0) = 0x04
[c_generic.c:1809 code_IR_packet()] CRC (header length = 40, crc = 0x17)
[rohc_comp.c:1563 rohc_compress4()] copy full 20-byte payload
[rohc_comp.c:1573 rohc_compress4()] ROHC size = 60 bytes (header = 40, payload = 20), output buffer size = 1350
[rohc_comp.c:4437 __rohc_feedback_remove_locked()] 0 locked feedbacks removed

Regards
Abyan

Tags: iprohc library
Revision history for this message
Mohammad Abyan Abdullah (c-admin-v) wrote :
Revision history for this message
Didier Barvaux (didier-barvaux) wrote :

Do you use the IP/ROHC client/server? If yes, what version?

Changed in rohc:
status: New → In Progress
assignee: nobody → Didier Barvaux (didier-barvaux)
Revision history for this message
Mohammad Abyan Abdullah (c-admin-v) wrote :

Hi!!
   yes the version is

IP/ROHC server, version 0.7.1

ROHC Version 1.7.0

Regards
Abyan

Revision history for this message
Didier Barvaux (didier-barvaux) wrote :

OK, I see the root of the problem. It is time-related. Let me the day to find the best way to fix it.

Changed in rohc:
importance: Undecided → High
milestone: none → 1.7.1
Revision history for this message
Didier Barvaux (didier-barvaux) wrote :

Please find a patch attached to the bug. It fix the arrival time of packets for the old library API (ie. the one used by IP/ROHC 0.7.x).

Please patch the ROHC library, re-build it, then re-install it. If the IP/ROHC binary was built statically, re-build it then re-install it. Then perform the very same test again. Report me whether it improve the situation or not.

Revision history for this message
Mohammad Abyan Abdullah (c-admin-v) wrote :

Hi!!
    I think it solved the problem. I've successfully ran total 600 calls at 32 concurrent rtp stream (using Sipp) without any problem.
And didn't see "no context was found" message anymore. I can see other contexts are using successfully after long period.
And another improvements I noticed is UOR-2-TS packets reduced dramatically.

Thanks for the patch ... :)

Regards
Abyan

Revision history for this message
Didier Barvaux (didier-barvaux) wrote :

Thank you for the feedback on the patch. The fix will be part of release 1.7.1

tags: added: iprohc library
Changed in rohc:
status: In Progress → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.