← Back to team overview

rohc team mailing list archive

Re: ROHC

 

Thanks Didier. I tried capturing tcpdump on eth0 but it dint show complete
info about the compressed packet and its size.

I have tried the same way as it is been given in tunnel.c with the following
command :

 ./rohctunnel rohc0 remote 192.168.1.3 local 192.168.1.4 port 5000

and keeping this running on the background in both the systems(with
appropriate addr) i executed the following commands:

ip link set rohc0 up
and  ip -4 addr add 10.0.0.1/28 dev rohc0

Next I tried to ping from one system to another.
I got the output statistics of the compressed packets on the system that i
pinged as follows:

c_generic.c:6377 check_ip_identification()] RND detected
[c_generic.c:844 c_generic_encode()] SN = 139
[c_generic.c:6120 changed_dynamic_both_hdr()] check for changed fields in
the outer IP header
[c_generic.c:862 c_generic_encode()] send_static = 0, send_dynamic = 0
[c_generic.c:870 c_generic_encode()] ip_id = 0x0000, context_sn = 139
[c_generic.c:2230 update_variables()] ip_id delta = 0xffffff75 / 4294967157
[c_generic.c:2231 update_variables()] ip_id bits = 16
[c_generic.c:2241 update_variables()] sn bits=2
[c_generic.c:2599 decide_packet()] SO state
[c_generic.c:2439 decide_SO_packet()] nr_ip_bits=16 nr_sn_bits=2
nr_of_ip_hdr=1 rnd=1
[c_generic.c:3566 code_UO0_packet()] code UO-0 packet (CID = 0)
[cid.c:57 code_cid_values()] CID = 0 => no add-CID
[c_generic.c:3587 code_UO0_packet()] F byte = 0x59 (CRC = 0x1 on 20 bytes)
[c_generic.c:3490 code_UO_packet_tail()] outer IP-ID = 0x0000
[rohc_comp.c:362 rohc_compress()] ROHC size = 67 (feedback = 0, header = 3,
payload = 64), output buffer size = 5120
sendto failed: Invalid argument (22)
write_to_udp failed
[rohc_comp.c:175 rohc_compress()] size of IP packet = 84 bytes
[rohc_comp.c:198 rohc_compress()] IP protocol = 1
[rohc_comp.c:203 rohc_compress()] no profile found, using default IP profile
[rohc_comp.c:1113 c_find_context()] using context CID = 0
[rohc_comp.c:269 rohc_compress()] selected compression profile = IP /
Compressor (0x0004)
[rohc_comp.c:1302 c_piggyback_get()] add 0 byte(s) of feedback data
[rohc_comp.c:287 rohc_compress()] compress the packet #140
[c_generic.c:6352 check_ip_identification()] 1) old_id = 0x0000 new_id =
0x0000
[c_generic.c:6366 check_ip_identification()] 2) old_id = 0x0000 new_id =
0x0000
[c_generic.c:6377 check_ip_identification()] RND detected
[c_generic.c:844 c_generic_encode()] SN = 140
[c_generic.c:6120 changed_dynamic_both_hdr()] check for changed fields in
the outer IP header
[c_generic.c:862 c_generic_encode()] send_static = 0, send_dynamic = 0
[c_generic.c:870 c_generic_encode()] ip_id = 0x0000, context_sn = 140
[c_generic.c:2230 update_variables()] ip_id delta = 0xffffff74 / 4294967156
[c_generic.c:2231 update_variables()] ip_id bits = 16
[c_generic.c:2241 update_variables()] sn bits=2
[c_generic.c:2599 decide_packet()] SO state
[c_generic.c:2439 decide_SO_packet()] nr_ip_bits=16 nr_sn_bits=2
nr_of_ip_hdr=1 rnd=1
[c_generic.c:3566 code_UO0_packet()] code UO-0 packet (CID = 0)
[cid.c:57 code_cid_values()] CID = 0 => no add-CID
[c_generic.c:3587 code_UO0_packet()] F byte = 0x61 (CRC = 0x1 on 20 bytes)
[c_generic.c:3490 code_UO_packet_tail()] outer IP-ID = 0x0000
[rohc_comp.c:362 rohc_compress()] ROHC size = 67 (feedback = 0, header = 3,
payload = 64), output buffer size = 5120
sendto failed: Invalid argument (22)
write_to_udp failed
[rohc_comp.c:175 rohc_compress()] size of IP packet = 84 bytes
[rohc_comp.c:198 rohc_compress()] IP protocol = 1
[rohc_comp.c:203 rohc_compress()] no profile found, using default IP profile
[rohc_comp.c:1113 c_find_context()] using context CID = 0
[rohc_comp.c:269 rohc_compress()] selected compression profile = IP /
Compressor (0x0004)
[rohc_comp.c:1302 c_piggyback_get()] add 0 byte(s) of feedback data
[rohc_comp.c:287 rohc_compress()] compress the packet #141
[c_generic.c:6352 check_ip_identification()] 1) old_id = 0x0000 new_id =
0x0000
[c_generic.c:6366 check_ip_identification()] 2) old_id = 0x0000 new_id =
0x0000
[c_generic.c:6377 check_ip_identification()] RND detected
[c_generic.c:844 c_generic_encode()] SN = 141
[c_generic.c:6120 changed_dynamic_both_hdr()] check for changed fields in
the outer IP header
[c_generic.c:862 c_generic_encode()] send_static = 0, send_dynamic = 0
[c_generic.c:870 c_generic_encode()] ip_id = 0x0000, context_sn = 141
[c_generic.c:2230 update_variables()] ip_id delta = 0xffffff73 / 4294967155
[c_generic.c:2231 update_variables()] ip_id bits = 16
[c_generic.c:2241 update_variables()] sn bits=2
[c_generic.c:2599 decide_packet()] SO state
[c_generic.c:2439 decide_SO_packet()] nr_ip_bits=16 nr_sn_bits=2
nr_of_ip_hdr=1 rnd=1
[c_generic.c:3566 code_UO0_packet()] code UO-0 packet (CID = 0)
[cid.c:57 code_cid_values()] CID = 0 => no add-CID
[c_generic.c:3587 code_UO0_packet()] F byte = 0x69 (CRC = 0x1 on 20 bytes)
[c_generic.c:3490 code_UO_packet_tail()] outer IP-ID = 0x0000
[rohc_comp.c:362 rohc_compress()] ROHC size = 67 (feedback = 0, header = 3,
payload = 64), output buffer size = 5120
sendto failed: Invalid argument (22)
write_to_udp failed
[rohc_comp.c:175 rohc_compress()] size of IP packet = 84 bytes
[rohc_comp.c:198 rohc_compress()] IP protocol = 1
[rohc_comp.c:203 rohc_compress()] no profile found, using default IP profile
[rohc_comp.c:1113 c_find_context()] using context CID = 0

According to the program the compressed statistics has to be shown on one
system and the decompressed statistics has to be shown on the other system..


But I am getting only compressed statistics on the system which I ping..But
not receiving the decompressed statisics on the other system..
And also when i terminate the ping application i says 100% packet loss..
What might be the problem.?? Could ypu please help out..

Thanks and Regards,
 Ramya.


On Wed, May 5, 2010 at 5:56 PM, Didier Barvaux <
didier.barvaux@xxxxxxxxxxxxxxxxxxxx> wrote:

> Hi Ramya,
>
> My answer is below. Please, keep sending your questions on the mailing
> list so that everyone might read the discussion and eventually learn
> something from it.
>
>
> > I tried to send it through eth0 but still when i execute the command :
> >
> > ./rohctunnel eth0:rohc0 remote 192.168.1.4 local 192.168.1.2 port 5000
> > the output goes as follows:
> >
> > [...]
> >
> > This keeps coming and there is no other output that i can see. I am
> > new to this So I dont have much idea how to proceed. Can you pls help
> > And can you also tell me where and how to check if the packets are
> > compressed and decompressed and after executing which command the
> > packets will b compressed.
>
> The interface "eth0" is your normal Ethernet interface. The rochtunnel
> tool creates a new virtual interface ("eth0:rohc0" in your case) that
> you should use to send the network packets that you want to compress.
> The virtual interface supersedes the normal interface for traffic you
> want to compress.
>
> Once started, the rohctunnel tool waits for packets on the "eth0:rohc0"
> interface. Whenever it reads one packet, it compresses the packet to
> create a ROHC packet and then sends this ROHC packet to the "eth0"
> interface. The header of the rohctunnel source code contains a figure
> that describes this, see
>
> http://bazaar.launchpad.net/%7Edidier-barvaux/rohc/main/annotate/head%3A/app/tunnel/tunnel.c
>
> So, on the "eth0:rohc0" interface, tcpdump may capture uncompressed
> packets that will be soon compressed by the rohctunnel tool. On the
> "eth0" interface tcpdump may capture compressed ROHC packets that the
> rohctunnel tool just compressed.
>
> Here is a figure to explain that (use a fixed font to read it):
>
>  uncompressed     +------------+     +------------+
>  packet to    --> | eth0:rohc0 | --> | rohctunnel |
>  compress         +------------+     +------------+
>                                          |
>                                          | compressed ROHC packet
>                                          | encapsulated in UDP
>                                          |
>                                          |    +------------+
>                                          +--> |    eth0    |
>                                               +------------+
>
> Does it help you ?
>
> Regards,
>
> Didier Barvaux
> Viveris Technologies
> http://www.tech.viveris.com/opensource/
>

Follow ups

References