← Back to team overview

rohc team mailing list archive

Re: ROHC for an Ethernet Link

 

Hello Didier,
I understand why you avoid the header compression,  the problem is if one is
running an encryption application, etc it is difficult to compress he payload.
If for example, you create a raw socket then your application is able to write
the headers and also compress it.
I have a bit of a problem getting my head around memcopy, and on that is it
possible to use a framework such as Netmap which is way much efficient in the
IO, What I am thinking of is to create ROHC as a device driver in that respect.
You can then use mmap system call instead of memcopy to map ROHC device memory
directly into a user process's address space. I am not a programmer but I think
it's more efficient to use kernel kiobuf  implement DMA raw I/O.
Just my thoughts.
Cheers,
Abdul Hakeem

-----Original Message-----
From: rohc-bounces+alhakeem=gmail.com@xxxxxxxxxxxxxxxxxxx
[mailto:rohc-bounces+alhakeem=gmail.com@xxxxxxxxxxxxxxxxxxx] On Behalf Of Didier
Barvaux
Sent: Wednesday, March 13, 2013 8:01 PM
To: rohc@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Rohc] ROHC for an Ethernet Link

Hi,

> I am trying to write a custom code for an InterSwitch Link (ISL), can
> you please advise how I can compress the headers
> of all the Ethernet frames that goes through the link between the two
> Layer 2 switches ?.
> The ISL is just a simplified bridge.

The ROHC protocol does not compress the Ethernet header itself, so
for better efficiency you should leave the Ethernet header unchanged,
and compress the Ethernet payload with the ROHC library.

In short:
 a/ skip the Ethernet header,
 b/ compress the Ethernet payload (possibly IPv4 or IPv6) with the
    ROHC library,
 c/ copy the Ethernet header you skipped before the ROHC packet so
    that your compressed packet can be handled by the Ethernet network.

You may find an example within the non-regression test of the library.
The non-regression test gets an Ethernet packet from a capture file,
skips its header, compresses its payload, adds back the header, then
writes the resulting frame to a another capture file. See
http://bazaar.launchpad.net/~didier-barvaux/rohc/main/view/head:/test/non_regres
sion/test_non_regression.c#L451

I hope I was clear enough. If not, tell me.

Regards,
Didier




Follow ups

References