← Back to team overview

rohc team mailing list archive

Re: SIP calls throught ethernet rohc tunnel

 

Hi Didier,

You were right. The problem was in the arp table of my openflow switch. One
of them wasn't saving the neighbor's address. I set up the arp table
manually and the RTP packet started to be compressed and decompressed by
the rohc tunnel. Thanks for your help!

Like you said before, the profile choosed by the compressor isn't too
efficient. It chooses the UDP profile rather the UDP/RTP profile. I
captured all packets with wireshark and the ROHC ones have 104 bytes each,
where my originals RTP packets have 124 bytes.

I'm using the ethernet ROHC tunnel, so I didn't see any IP header in the
compressed packets (that's great). For that reason, I expected compressed
packets of 85 bytes, at least (124 bytes – 40 bytes (IP/UDP/RTP headers) +
1 byte (ROHC header)).

Do you know what could be wrong? Did the compressor don't choose the right
profile because I'm using UDPs ports that it don't recognizes?

The originals RTP packets are using ports 4010 (source port) and 4008
(destination

port).

Below, I put the last ROHC log.

Thanks in advance!

Edvar


 [rohc_comp.c:608 rohc_compress2()] size of uncompressed packet = 110 bytes

[rohc_comp.c:639 rohc_compress2()] try to find the best profile for packet
with transport protocol 17

[c_rtp.c:385 c_rtp_check_profile()] destination port in UDP packet = 0x0fa8
(4008)

[rohc_comp.c:2706 c_get_profile_from_packet()] skip profile 'RTP /
Compressor' (0x0001) because it does not match packet

[rohc_comp.c:648 rohc_compress2()] using profile 'UDP / Compressor'
(0x0002)

[rohc_comp.c:2886 c_find_context()] using context CID = 1

[rohc_comp.c:3059 rohc_feedback_get()] no feedback is available

[rohc_comp.c:3134 rohc_feedback_get()] add 0 byte(s) of feedback data

[rohc_comp.c:690 rohc_compress2()] compress the packet #868

[c_generic.c:5836 detect_ip_id_behaviour()] 1) old_id = 0x6f23 new_id =
0x6f24

[c_generic.c:5849 detect_ip_id_behaviour()] IP-ID is increasing in NBO

[c_generic.c:5883 detect_ip_id_behaviour()] NBO = 1, RND = 0, SID = 0

[c_generic.c:926 c_generic_encode()] SN = 30907

[c_generic.c:5503 changed_dynamic_both_hdr()] check for changed fields in
the outer IP header

[c_generic.c:5627 changed_dynamic_one_hdr()] RND changed in the last few
packets

[c_generic.c:950 c_generic_encode()] send_static = 0, send_dynamic = 1

[c_generic.c:961 c_generic_encode()] ip_id = 0x6f24, context_sn = 30907

[c_generic.c:5960 encode_uncomp_fields()] compressor is in state 2

[c_generic.c:5965 encode_uncomp_fields()] new SN = 30907 / 0x78bb

[c_generic.c:5988 encode_uncomp_fields()] 2 bits are required to encode new
SN

[c_generic.c:6008 encode_uncomp_fields()] new outer IP-ID delta = 0xf669 /
63081 (NBO = 1, RND = 0, SID = 0)

[c_generic.c:6040 encode_uncomp_fields()] 16 bits are required to encode
new outer IP-ID delta

[c_generic.c:1474 decide_packet()] FO state

[c_ip.c:322 c_ip_decide_FO_packet()] choose packet UOR-2 because 2 <= 13 SN
bits must be transmitted

[c_generic.c:1512 decide_packet()] packet 'UOR-2 (non-RTP)' chosen

[c_generic.c:2927 code_UO2_packet()] code UOR-2 packet (CID = 1)

[c_generic.c:6154 decide_extension()] force EXT-3 because at least one
static or dynamic field changed

[c_generic.c:3011 code_UO2_packet()] extension 'EXT-3' chosen

[c_generic.c:3170 code_UOR2_bytes()] code UOR-2 packet with extension 3

[c_generic.c:3023 code_UO2_packet()] f_byte = 0xdb

[c_generic.c:3030 code_UO2_packet()] t_byte = 0x98

[c_generic.c:4637 code_EXT3_packet()] S = 0, Mode = 2

[c_generic.c:4644 code_EXT3_packet()] rnd_count_up = 1

[c_generic.c:4681 code_EXT3_packet()] check for changed fields in the inner
IP header

[c_generic.c:5627 changed_dynamic_one_hdr()] RND changed in the last few
packets

[c_generic.c:4797 code_EXT3_packet()] I = 1, ip = 1, I2 = 0, ip2 = 0

[c_generic.c:4799 code_EXT3_packet()] part 1 = 0xd6

[c_generic.c:5280 header_flags()] IPv4 header flags: TOS = 0, TTL = 0, DF =
0, PR = 0, IPX = 0, NBO = 1, RND = 0, ip2/I2 = 0

[c_generic.c:4883 code_EXT3_packet()] IP ID of IP header #1 = 0xf6 0x69

[c_udp.c:650 udp_code_uo_remainder()] UDP checksum = 0xe7

[rohc_comp.c:827 rohc_compress2()] copy full 82-byte payload

[rohc_comp.c:2572 rohc_feedback_remove_locked()] 0 locked feedbacks removed

[rohc_comp.c:848 rohc_compress2()] ROHC size = 91 bytes (feedbacks = 0,
header = 9, payload = 82), output buffer size = 5120

Follow ups