← Back to team overview

rohc team mailing list archive

Re: decompressor not working for me

 

Hi Didier,

In the attached debug print dump.
If we look at the last packet being decoded.
for this packet the rohc compressor gives below given print finally.
[../rohc/rohc_comp.c:373 rohc_compress()] ROHC size = 529 (feedback = 0,
header = 21, payload = 508), output buffer size = 2048

which says that the header size is 21.

and in decompressor, the decoded header size for this packet is 20.. as
printed by 
[../rohc/rohc_decomp.c:848 rohc_ir_packet_crc_ok()] size of IR packet
header : 20

and the point to be noted here is that this thing happens only if I
start the system by sending uncompressed profile packets.
and then, when I send the very first ip profile packet this error
comes up.

may be there is something to be initialized properly when this change
profile change happens at the start of application.

can you please give your views here ?

Regards,
Harpreet
On Mon, 2009-11-30 at 07:33 +0100, Harpreet Singh wrote:
> Hi Didier,
> 
> Were you able to reproduce the problem?
> 
> Regards,
> Harpreet
> 
> 
> 2009-11-27 at 10:39 +0100, Didier Barvaux wrote:
> > Hi,
> > 
> > > But I read the document from page 126.
> > > I did not get it.
> > > 
> > > When compressor starts with Fragments and send fragments as IR
> > > packets.. and later when it shifts to packet compression..
> > > 
> > > why does decompression fails...
> > 
> > It should not. I will try to reproduce the problem.
> > 
> >  
> > > I did not get what you means by uncompressed profile is confused?
> > 
> > David means that sending IP packets through the compressor with the
> > 'Uncompressed' profile is not the same as sending the IP packet
> > uncompressed (ie. without using the compressor at all). This difference
> > may be confusing.
> > 
> > Didier Barvaux
> > Viveris Technologies
> > 
> > _______________________________________________
> > Mailing list: https://launchpad.net/~rohc
> > Post to     : rohc@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe : https://launchpad.net/~rohc
> > More help   : https://help.launchpad.net/ListHelp
> 
> 


-- 
Software Engineer
1Spatial Australia
+61 3 52616840
root:/> ping -c 2 -s 5000 198.168.20.12
PING 198.168.20.12 (198.168.20.12): 5000 data bytes
[../rohc/rohc_comp.c:186 rohc_compress()] size of IP packet = 1500 bytes
[../rohc/rohc_comp.c:209 rohc_compress()] IP protocol = 1
[../rohc/rohc_comp.c:214 rohc_compress()] no profile found, using default IP profile
[../rohc/rohc_comp.c:1132 c_find_context()] no context was found
[../rohc/rohc_comp.c:1046 c_create_context()] take the first unused context (CID = 0)
[../rohc/rohc_comp.c:1086 c_create_context()] context (CID = 0) created (num_used = 1)
[../rohc/rohc_comp.c:280 rohc_compress()] selected compression profile = IP / Compressor (0x0004)
[../rohc/rohc_comp.c:1313 c_piggyback_get()] add 0 byte(s) of feedback data
[../rohc/rohc_comp.c:298 rohc_compress()] compress the packet #1
[../rohc/c_generic.c:793 c_generic_encode()] fragment error in outer IP header
[../rohc/rohc_comp.c:305 rohc_compress()] error while compressing with the profile, using uncompressed profile
[../rohc/rohc_comp.c:1132 c_find_context()] no context was found
[../rohc/rohc_comp.c:1046 c_create_context()] take the first unused context (CID = 0)
[../rohc/rohc_comp.c:1086 c_create_context()] context (CID = 0) created (num_used = 1)
[../rohc/c_uncompressed.c:322 uncompressed_code_packet()] build IR packet
[../rohc/c_uncompressed.c:392 uncompressed_code_IR_packet()] code IR packet (CID = 0)
[../rohc/cid.c:57 code_cid_values()] CID = 0 => no add-CID
[../rohc/c_uncompressed.c:402 uncompressed_code_IR_packet()] first byte = 0xfc
[../rohc/c_uncompressed.c:406 uncompressed_code_IR_packet()] Profile ID = 0x00
[../rohc/c_uncompressed.c:412 uncompressed_code_IR_packet()] CRC on 3 bytes = 0xb1
[../rohc/rohc_comp.c:373 rohc_compress()] ROHC size = 1503 (feedback = 0, header = 3, payload = 1500), output buffer size = 2048
[../rohc/rohc_comp.c:186 rohc_compress()] size of IP packet = 1500 bytes
[../rohc/rohc_comp.c:209 rohc_compress()] IP protocol = 1
[../rohc/rohc_comp.c:214 rohc_compress()] no profile found, using default IP profile
[../rohc/rohc_comp.c:1132 c_find_context()] no context was found
[../rohc/rohc_comp.c:1046 c_create_context()] take the first unused context (CID = 1)
[../rohc/rohc_comp.c:1086 c_create_context()] context (CID = 1) created (num_used = 2)
[../rohc/rohc_comp.c:280 rohc_compress()] selected compression profile = IP / Compressor (0x0004)
[../rohc/rohc_comp.c:1313 c_piggyback_get()] add 0 byte(s) of feedback data
[../rohc/rohc_comp.c:298 rohc_compress()] compress the packet #2
[../rohc/c_generic.c:793 c_generic_encode()] fragment error in outer IP header
[../rohc/rohc_comp.c:305 rohc_compress()] error while compressing with the profile, using uncompressed profile
[../rohc/rohc_comp.c:1124 c_find_context()] using context CID = 0
[../rohc/c_uncompressed.c:322 uncompressed_code_packet()] build IR packet
[../rohc/c_uncompressed.c:392 uncompressed_code_IR_packet()] code IR packet (CID = 0)
[../rohc/cid.c:57 code_cid_values()] CID = 0 => no add-CID
[../rohc/c_uncompressed.c:402 uncompressed_code_IR_packet()] first byte = 0xfc
[../rohc/c_uncompressed.c:406 uncompressed_code_IR_packet()] Profile ID = 0x00
[../rohc/c_uncompressed.c:412 uncompressed_code_IR_packet()] CRC on 3 bytes = 0xb1
[../rohc/rohc_comp.c:373 rohc_compress()] ROHC size = 1503 (feedback = 0, header = 3, payload = 1500), output buffer size = 2048
[../rohc/rohc_decomp.c:401 rohc_decompress()] decompress the packet #1
[../rohc/rohc_decomp.c:552 d_decode_feedback_first()] skip 0 byte(s) of padding
[../rohc/rohc_decomp.c:848 rohc_ir_packet_crc_ok()] size of IR packet header : 3
[../rohc/rohc_decomp.c:867 rohc_ir_packet_crc_ok()] CRC OK (crc = 0xb1, profile_id = 0, largecid = 0, addcidUsed = 0, ir_size = 3)
[../rohc/rohc_decomp.c:413 rohc_decompress()] state in decompressor = 3
[../rohc/rohc_decomp.c:486 rohc_decompress()] feedback curr -12
[../rohc/rohc_decomp.c:493 rohc_decompress()] feedback curr 0
[../rohc/rohc_decomp.c:401 rohc_decompress()] decompress the packet #2
[../rohc/rohc_decomp.c:552 d_decode_feedback_first()] skip 0 byte(s) of padding
[../rohc/rohc_decomp.c:848 rohc_ir_packet_crc_ok()] size of IR packet header : 3
[../rohc/rohc_decomp.c:867 rohc_ir_packet_crc_ok()] CRC OK (crc = 0xb1, profile_id = 0, largecid = 0, addcidUsed = 0, ir_size = 3)
[../rohc/rohc_decomp.c:413 rohc_decompress()] state in decompressor = 3
[../rohc/rohc_decomp.c:486 rohc_decompress()] feedback curr -12
[../rohc/rohc_decomp.c:493 rohc_decompress()] feedback curr 0

--- 198.168.20.12 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss
root:/> ping -c 2 -s 500 198.168.20.12
PING 198.168.20.12 (198.168.20.12): 500 data bytes
[../rohc/rohc_comp.c:186 rohc_compress()] size of IP packet = 528 bytes
[../rohc/rohc_comp.c:209 rohc_compress()] IP protocol = 1
[../rohc/rohc_comp.c:214 rohc_compress()] no profile found, using default IP profile
[../rohc/rohc_comp.c:1132 c_find_context()] no context was found
[../rohc/rohc_comp.c:1046 c_create_context()] take the first unused context (CID = 1)
[../rohc/rohc_comp.c:1086 c_create_context()] context (CID = 1) created (num_used = 2)
[../rohc/rohc_comp.c:280 rohc_compress()] selected compression profile = IP / Compressor (0x0004)
[../rohc/rohc_comp.c:1313 c_piggyback_get()] add 0 byte(s) of feedback data
[../rohc/rohc_comp.c:298 rohc_compress()] compress the packet #3
[../rohc/c_generic.c:844 c_generic_encode()] SN = 1
[../rohc/c_generic.c:6120 changed_dynamic_both_hdr()] check for changed fields in the outer IP header
[../rohc/c_generic.c:862 c_generic_encode()] send_static = 0, send_dynamic = 0
[../rohc/c_generic.c:870 c_generic_encode()] ip_id = 0x0000, context_sn = 1
[../rohc/c_generic.c:2230 update_variables()] ip_id delta = 0xffffffff / 4294967295
[../rohc/c_generic.c:2231 update_variables()] ip_id bits = -1
[../rohc/c_generic.c:2241 update_variables()] sn bits=-1
[../rohc/c_generic.c:2579 decide_packet()] IR state
[../rohc/c_generic.c:2804 code_IR_packet()] code IR packet (CID = 1)
[../rohc/cid.c:50 code_cid_values()] add-CID = 0xe1
[../rohc/c_generic.c:2821 code_IR_packet()] type of packet + D flag = 0xfd
[../rohc/c_generic.c:2825 code_IR_packet()] profile ID = 0x04
[../rohc/c_generic.c:2831 code_IR_packet()] CRC = 0x00 for CRC calculation
[../rohc/c_generic.c:3096 code_ipv4_static_part()] version = 0x40
[../rohc/c_generic.c:3101 code_ipv4_static_part()] protocol = 0x01
[../rohc/c_generic.c:3111 code_ipv4_static_part()] src addr = c6 a8 14 0a
[../rohc/c_generic.c:3119 code_ipv4_static_part()] dst addr = c6 a8 14 0c
[../rohc/c_generic.c:3305 code_ipv4_dynamic_part()] TOS = 0x00, TTL = 0x40, IP-ID = 0x0000, df_rnd_nbo = 0xa0 (DF = 1, RND = 0, NBO = 1)
[../rohc/c_generic.c:2890 code_IR_packet()] SN = 1 -> 0x0001
[../rohc/c_generic.c:2896 code_IR_packet()] CRC (header length = 21, crc = 0x9f)
[../rohc/rohc_comp.c:373 rohc_compress()] ROHC size = 529 (feedback = 0, header = 21, payload = 508), output buffer size = 2048
[../rohc/rohc_comp.c:186 rohc_compress()] size of IP packet = 528 bytes
[../rohc/rohc_comp.c:209 rohc_compress()] IP protocol = 1
[../rohc/rohc_comp.c:214 rohc_compress()] no profile found, using default IP profile
[../rohc/rohc_comp.c:1124 c_find_context()] using context CID = 1
[../rohc/rohc_comp.c:280 rohc_compress()] selected compression profile = IP / Compressor (0x0004)
[../rohc/rohc_comp.c:1313 c_piggyback_get()] add 0 byte(s) of feedback data
[../rohc/rohc_comp.c:298 rohc_compress()] compress the packet #4
[../rohc/c_generic.c:6352 check_ip_identification()] 1) old_id = 0x0000 new_id = 0x0000
[../rohc/c_generic.c:6366 check_ip_identification()] 2) old_id = 0x0000 new_id = 0x0000
[../rohc/c_generic.c:6377 check_ip_identification()] RND detected
[../rohc/c_generic.c:844 c_generic_encode()] SN = 2
[../rohc/c_generic.c:6120 changed_dynamic_both_hdr()] check for changed fields in the outer IP header
[../rohc/c_generic.c:6224 changed_dynamic_one_hdr()] RND changed (0 -> 1), reset counter
[../rohc/c_generic.c:862 c_generic_encode()] send_static = 0, send_dynamic = 1
[../rohc/c_generic.c:870 c_generic_encode()] ip_id = 0x0000, context_sn = 2
[../rohc/c_generic.c:2230 update_variables()] ip_id delta = 0xfffffffe / 4294967294
[../rohc/c_generic.c:2231 update_variables()] ip_id bits = 16
[../rohc/c_generic.c:2241 update_variables()] sn bits=0
[../rohc/c_generic.c:2579 decide_packet()] IR state
[../rohc/c_generic.c:2804 code_IR_packet()] code IR packet (CID = 1)
[../rohc/cid.c:50 code_cid_values()] add-CID = 0xe1
[../rohc/c_generic.c:2821 code_IR_packet()] type of packet + D flag = 0xfd
[../rohc/c_generic.c:2825 code_IR_packet()] profile ID = 0x04
[../rohc/c_generic.c:2831 code_IR_packet()] CRC = 0x00 for CRC calculation
[../rohc/c_generic.c:3096 code_ipv4_static_part()] version = 0x40
[../rohc/c_generic.c:3101 code_ipv4_static_part()] protocol = 0x01
[../rohc/c_generic.c:3111 code_ipv4_static_part()] src addr = c6 a8 14 0a
[../rohc/c_generic.c:3119 code_ipv4_static_part()] dst addr = c6 a8 14 0c
[../rohc/c_generic.c:3305 code_ipv4_dynamic_part()] TOS = 0x00, TTL = 0x40, IP-ID = 0x0000, df_rnd_nbo = 0xe0 (DF = 1, RND = 1, NBO = 1)
[../rohc/c_generic.c:2890 code_IR_packet()] SN = 2 -> 0x0002
[../rohc/c_generic.c:2896 code_IR_packet()] CRC (header length = 21, crc = 0x86)
[../rohc/rohc_comp.c:373 rohc_compress()] ROHC size = 529 (feedback = 0, header = 21, payload = 508), output buffer size = 2048
[../rohc/rohc_decomp.c:401 rohc_decompress()] decompress the packet #3
[../rohc/rohc_decomp.c:552 d_decode_feedback_first()] skip 0 byte(s) of padding
[../rohc/rohc_decomp.c:562 d_decode_feedback_first()] add-CID present: 0xe1 -> CID = 1
[../rohc/rohc_decomp.c:620 d_decode_header()] add-CID present: CID = 1 (0x1)
[../rohc/rohc_decomp.c:848 rohc_ir_packet_crc_ok()] size of IR packet header : 20
[../rohc/rohc_decomp.c:867 rohc_ir_packet_crc_ok()] CRC OK (crc = 0x9f, profile_id = 4, largecid = 0, addcidUsed = 1, ir_size = 20)
[../rohc/d_generic.c:1509 d_generic_decode_ir()] decode an IR packet
[../rohc/d_generic.c:1813 d_decode_static_ip4()] IP Version = 4
[../rohc/d_generic.c:1819 d_decode_static_ip4()] Protocol = 0x01
[../rohc/d_generic.c:1825 d_decode_static_ip4()] Source Address = 0x0a14a8c6
[../rohc/d_generic.c:1831 d_decode_static_ip4()] Destination Address = 0x0c14a8c6
[../rohc/d_generic.c:1971 d_decode_dynamic_ip4()] TOS = 0x00
[../rohc/d_generic.c:1977 d_decode_dynamic_ip4()] TTL = 0x40
[../rohc/d_generic.c:1988 d_decode_dynamic_ip4()] IP-ID = 0x0000
[../rohc/d_generic.c:2001 d_decode_dynamic_ip4()] DF = 1, RND = 0, NBO = 1


Follow ups

References