rohc team mailing list archive
-
rohc team
-
Mailing list archive
-
Message #00519
Re: Support of ESP (Profil 0x0003)
Hello FWX,
Please keep the discussion on the ML, so that anyone can follow it,
and maybe participate :)
My answers below.
Le Wed, 30 May 2012 11:09:05 +0200,
RoHC Team <rohc_team@xxxxxxxxxx> a écrit :
> Hello Didier,
>
> Remeber that the support of the ESP (profile 0x0003) was the
> beginnig of my work with the library. So, I don't know everything ...
No problem with that. This is no judgement, there are just questions
about the understanding of the RFC.
> You'll find my answers bellow, in the text :
>
> Le 29/05/2012 22:20, Didier Barvaux a écrit :
> > FWX,
> >
> >> To complete the RoHC library, I add code to support profile
> >> 0x0003 (ESP: Encapsulating Security Payload) in the current trunk.
> >>
> >> The special case when the NULL encryption algorithm is used, is
> >> not supported in this version.
> >
> > I got enough time to read your patch (thanks again for it!). Please
> > find hereafter some questions/notes.
> >
> > Please do not make any change to you patch for the moment. I already
> > rebased your patch to the current trunk tree, and it would be a
> > shame to do the work twice :)
> >
> >
> > 1/ SN not required at the end of base header?
> >
> > The 16-bit SN field at the end of the base header seems to be
> > only required for IP-only, UDP and UDP-Lite profiles, not the RTP
> > and ESP ones.
> >
> > Section 5.12.1 of RFC 3095 states:
> > In contrast to ROHC UDP, no extra sequence number is added to
> > the dynamic part of the ESP header: the ESP sequence number is the
> > only element.
> >
> > So, on compression side, part 8 of the code_IR_packet() function
> > should test for the ESP profile in addition to the RTP profile.
> > So does part 7 of the code_IR_DYN_packet() function.
> >
> > On decompression side, esp_decode_dynamic_esp() should call the
> > ip_decode_dynamic_ip() because it decodes an extra 16-bit SN
> > field.
> >
>
> ==> In the ESP base header, there is a 32 bits field, called
> sequence_number. See RFC4303, page 7 to understand the frame format.
> It is not the SN of other profile. So, your suggestions are not ok,
> here.
My understanding of ESP profile in the the RFC 3095 is that the ESP
sequence_number field shall be used as the ROHC main sequence
number (MSN).
I found this sentence in section 5.12 of RFC 3095:
This profile is very similar to the ROHC UDP profile. It uses the
ESP sequence number as the basis for compression instead of a
generated number, but is otherwise very similar to ROHC UDP.
The RTP header uses the RTP SN as MSN. The UDP profile uses a generated
number as MSN as the UDP header misses a SN. So is the IP-only profile.
According to me, the ESP profile shall use the ESP SN field as MSN.
The fact that the ESP SN is 32-bit long while the library currently uses
16-bit MSN is an implementation problem, not a constraint.
The UDP and IP-only profiles requires a SN field at the end of the base
header. As the ROHC MSN is one field of the uncompressed ESP header, it
is transmitted in the ESP part of the DYNAMIC chain. So, there is - to
my opinion - no need for a 2nd SN field in the very end of the base
header. The RTP profile behaves that way too.
- RFC 3095, section 5.11.1 about the UDP profile:
For ROHC UDP, the dynamic part of a UDP packet is different from
section 5.7.7.5: a two-octet field containing the UDP SN is added
after the Checksum field. This affects the format of dynamic
chains in IR and IR-DYN packets.
- RFC 3095, section 5.12.1 about ESP profile:
In contrast to ROHC UDP, no extra sequence number is added to
the dynamic part of the ESP header: the ESP sequence number is the
only element.
To confirm my understanding, I modified the ESP profile to act as
described above. The patch (to current trunk, rev 375) is attached.
What do you think of my searches in RFCs (and, of my patch)?
> > 2/ LSB shift value?
> >
> > The LSB shift "p" value for the ESP profile seems to be the same
> > as for the RTP profile, not the one of the IP-only, non-RTP UDP and
> > non-RTP UDP-Lite profiles.
> >
> > Section 5.12 of RFC 3095 states:
> > The interpretation interval (value of p) for the ESP-based SN
> > is as with ROHC RTP (profile 0x0001).
> >
> > So, in c_generic_create(), the switch seems wrong. On
> > decompression side this is a problem too. Also, the
> > esp_detect_ir_size() seems to return 2 bytes more than expected.
> >
>
> ==> Because of the 32 bits specific ESP field sequence_number, not
> the 16 bits field SN.
See my previous answer about the MSN.
> > 3/ ESP-specific context required?
> >
> > You defined an ESP-specific context that stores the SN of the ESP
> > header. The ESP SN is the main SN (MSN). The MSN is stored in the
> > generic context. I think you should use the g_context->sn. It
> > would avoid duplication, and remove the need for an ESP-specific
> > context. What do you think of?
> >
>
> ==> See previous response : ESP sequence_number is not the SN!
> Sorry ...
See my previous answer about the MSN.
> ==> Best regards too,
>
> FWX.
Regards,
Didier
=== modified file 'app/performance/test_performance.c'
--- app/performance/test_performance.c 2012-05-27 19:19:03 +0000
+++ app/performance/test_performance.c 2012-05-29 19:48:30 +0000
@@ -398,6 +398,7 @@
rohc_activate_profile(comp, ROHC_PROFILE_UDP);
rohc_activate_profile(comp, ROHC_PROFILE_IP);
rohc_activate_profile(comp, ROHC_PROFILE_UDPLITE);
+ rohc_activate_profile(comp, ROHC_PROFILE_ESP);
/* for each packet in the dump */
*packet_count = 0;
=== modified file 'app/tunnel/tunnel.c'
--- app/tunnel/tunnel.c 2012-05-26 20:01:08 +0000
+++ app/tunnel/tunnel.c 2012-05-29 19:48:30 +0000
@@ -521,6 +521,7 @@
rohc_activate_profile(comp, ROHC_PROFILE_IP);
rohc_activate_profile(comp, ROHC_PROFILE_UDPLITE);
rohc_activate_profile(comp, ROHC_PROFILE_RTP);
+ rohc_activate_profile(comp, ROHC_PROFILE_ESP);
/* initialize the random generator */
seed = time(NULL);
=== modified file 'examples/simple_rohc_program.c'
--- examples/simple_rohc_program.c 2012-05-26 20:01:08 +0000
+++ examples/simple_rohc_program.c 2012-05-29 19:48:30 +0000
@@ -110,6 +110,7 @@
rohc_activate_profile(compressor, ROHC_PROFILE_IP);
//rohc_activate_profile(compressor, ROHC_PROFILE_UDPLITE);
//rohc_activate_profile(compressor, ROHC_PROFILE_RTP);
+ //rohc_activate_profile(comp, ROHC_PROFILE_ESP);
/* create a fake IP packet for the purpose of this simple program */
=== modified file 'src/common/crc.c'
--- src/common/crc.c 2012-05-10 18:48:30 +0000
+++ src/common/crc.c 2012-05-29 19:48:30 +0000
@@ -20,10 +20,12 @@
* @author Didier Barvaux <didier.barvaux@xxxxxxxxxxxxxxxxxxxx>
* @author The hackers from ROHC for Linux
* @author Didier Barvaux <didier@xxxxxxxxxxx>
+ * @author FWX <rohc_team@xxxxxxxxxx>
*/
#include "crc.h"
#include "rohc.h"
+#include "esp.h"
#include "rtp.h"
#include <netinet/udp.h>
@@ -507,6 +509,95 @@
/**
+ * @brief Compute the CRC-STATIC part of an ESP header
+ *
+ * Concerned fields are:
+ * all fields expect those for CRC-DYNAMIC
+ * - bytes 1-4 in original ESP header
+ *
+ * @param ip The outer IP packet
+ * @param ip2 The inner IP packet if there is 2 IP headers, NULL otherwise
+ * @param next_header The next header located after the IP header(s)
+ * @param crc_type The type of CRC
+ * @param init_val The initial CRC value
+ * @param crc_table The pre-computed table for fast CRC computation
+ * @return The checksum
+ */
+unsigned int esp_compute_crc_static(const unsigned char *const ip,
+ const unsigned char *const ip2,
+ const unsigned char *const next_header,
+ const unsigned int crc_type,
+ const unsigned int init_val,
+ const unsigned char *const crc_table)
+{
+ unsigned int crc;
+ struct esphdr *esp;
+
+ assert(ip != NULL);
+ assert(next_header != NULL);
+ assert(crc_table != NULL);
+
+ crc = init_val;
+
+ /* compute the CRC-STATIC value for IP and IP2 headers */
+ crc = compute_crc_static(ip, ip2, next_header, crc_type, crc, crc_table);
+
+ /* get the start of ESP header */
+ esp = (struct esphdr *) next_header;
+
+ /* bytes 1-4 (Security parameters index) */
+ crc = crc_calculate(crc_type, (unsigned char *)(&esp->security_parameters_index), 4,
+ crc, crc_table);
+
+ return crc;
+}
+
+
+/**
+ * @brief Compute the CRC-DYNAMIC part of an ESP header
+ *
+ * Concerned fields are:
+ * - bytes 5-8 in original ESP header
+ *
+ * @param ip The outer IP packet
+ * @param ip2 The inner IP packet if there is 2 IP headers, NULL otherwise
+ * @param next_header The next header located after the IP header(s)
+ * @param crc_type The type of CRC
+ * @param init_val The initial CRC value
+ * @param crc_table The pre-computed table for fast CRC computation
+ * @return The checksum
+ */
+unsigned int esp_compute_crc_dynamic(const unsigned char *const ip,
+ const unsigned char *const ip2,
+ const unsigned char *const next_header,
+ const unsigned int crc_type,
+ const unsigned int init_val,
+ const unsigned char *const crc_table)
+{
+ unsigned int crc;
+ struct esphdr *esp;
+
+ assert(ip != NULL);
+ assert(next_header != NULL);
+ assert(crc_table != NULL);
+
+ crc = init_val;
+
+ /* compute the CRC-DYNAMIC value for IP and IP2 headers */
+ crc = compute_crc_dynamic(ip, ip2, next_header, crc_type, crc, crc_table);
+
+ /* get the start of ESP header */
+ esp = (struct esphdr *) next_header;
+
+ /* bytes 5-8 (Sequence number) */
+ crc = crc_calculate(crc_type, (unsigned char *)(&esp->sequence_number), 4,
+ crc, crc_table);
+
+ return crc;
+}
+
+
+/**
* @brief Compute the CRC-STATIC part of a RTP header
*
* Concerned fields are:
=== modified file 'src/common/crc.h'
--- src/common/crc.h 2012-05-10 18:48:30 +0000
+++ src/common/crc.h 2012-05-29 19:48:30 +0000
@@ -20,6 +20,7 @@
* @author Didier Barvaux <didier.barvaux@xxxxxxxxxxxxxxxxxxxx>
* @author The hackers from ROHC for Linux
* @author Didier Barvaux <didier@xxxxxxxxxxx>
+ * @author FWX <rohc_team@xxxxxxxxxx>
*/
#ifndef CRC_H
@@ -85,6 +86,21 @@
const unsigned char *const crc_table)
__attribute__((nonnull(1, 3, 6)));
+unsigned int esp_compute_crc_static(const unsigned char *const ip,
+ const unsigned char *const ip2,
+ const unsigned char *const next_header,
+ const unsigned int crc_type,
+ const unsigned int init_val,
+ const unsigned char *const crc_table)
+ __attribute__((nonnull(1, 3, 6)));
+unsigned int esp_compute_crc_dynamic(const unsigned char *const ip,
+ const unsigned char *const ip2,
+ const unsigned char *const next_header,
+ const unsigned int crc_type,
+ const unsigned int init_val,
+ const unsigned char *const crc_table)
+ __attribute__((nonnull(1, 3, 6)));
+
unsigned int rtp_compute_crc_static(const unsigned char *const ip,
const unsigned char *const ip2,
const unsigned char *const next_header,
=== added file 'src/common/esp.h'
--- src/common/esp.h 1970-01-01 00:00:00 +0000
+++ src/common/esp.h 2012-05-29 19:48:30 +0000
@@ -0,0 +1,42 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/**
+ * @file esp.h
+ * @brief ESP header description
+ * @author FWX <rohc_team@xxxxxxxxxx>
+ * @author Didier Barvaux <didier@xxxxxxxxxxx>
+ */
+
+#ifndef ROHC_ESP_HDR_H /* TODO: rename the file, put in dist tar.bz2 */
+#define ROHC_ESP_HDR_H
+
+#include <stdint.h>
+
+
+/**
+ * @brief RTP header
+ *
+ * See section 2 of RFC 4303 for details.
+ */
+struct esphdr
+{
+ uint32_t security_parameters_index; /**< TODO: describe + rename */
+ uint32_t sequence_number; /**< TODO: describe + rename */
+} __attribute__((packed));
+
+
+#endif
=== modified file 'src/common/interval.c'
--- src/common/interval.c 2012-05-18 21:29:33 +0000
+++ src/common/interval.c 2012-05-31 18:30:46 +0000
@@ -110,7 +110,8 @@
}
break;
- case ROHC_LSB_SHIFT_RTP_SN: /* special computation for SN encoding */
+ /* special computation for RTP and ESP SN encoding */
+ case ROHC_LSB_SHIFT_RTP_SN:
{
if(k <= 4)
{
=== modified file 'src/common/rohc.h'
--- src/common/rohc.h 2012-05-17 12:25:05 +0000
+++ src/common/rohc.h 2012-05-29 19:48:30 +0000
@@ -476,12 +476,14 @@
* ROHC profiles numbers allocated by the IANA (see 8 in the RFC 3095):
*/
-/// The number allocated for the ROHC Uncompressed profile
+/// The number allocated for the ROHC Uncompressed profile (RFC 3095, 5.10)
#define ROHC_PROFILE_UNCOMPRESSED 0x0000
-/// The number allocated for the ROHC RTP profile
+/// The number allocated for the ROHC RTP profile (RFC 3095, 8)
#define ROHC_PROFILE_RTP 0x0001
-/// The number allocated for the ROHC UDP profile
+/// The number allocated for the ROHC UDP profile (RFC 3095, 5.11)
#define ROHC_PROFILE_UDP 0x0002
+/// The number allocated for the ROHC ESP profile (RFC 3095, 5.12)
+#define ROHC_PROFILE_ESP 0x0003
/// The number allocated for the ROHC IP-only profile (see 5 in the RFC 3843)
#define ROHC_PROFILE_IP 0x0004
/// The number allocated for the ROHC UDP-Lite profile (see 7 in the RFC 4019)
=== modified file 'src/comp/Makefile.am'
--- src/comp/Makefile.am 2011-11-26 13:30:57 +0000
+++ src/comp/Makefile.am 2012-05-29 19:48:30 +0000
@@ -13,6 +13,7 @@
c_ip.c \
c_udp.c \
c_udp_lite.c \
+ c_esp.c \
c_rtp.c
INCLUDES = \
@@ -29,5 +30,6 @@
c_ip.h \
c_udp.h \
c_udp_lite.h \
+ c_esp.h \
c_rtp.h
=== added file 'src/comp/c_esp.c'
--- src/comp/c_esp.c 1970-01-01 00:00:00 +0000
+++ src/comp/c_esp.c 2012-05-31 19:04:18 +0000
@@ -0,0 +1,539 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/**
+ * @file c_esp.c
+ * @brief ROHC ESP compression profile
+ * @author FWX <rohc_team@xxxxxxxxxx>
+ * @author Didier Barvaux <didier@xxxxxxxxxxx>
+ */
+
+#include "c_esp.h"
+#include "esp.h"
+#include "c_generic.h"
+#include "rohc_traces.h"
+#include "crc.h"
+
+#include <stdbool.h>
+#include <assert.h>
+
+
+/*
+ * Private structures and types
+ */
+
+/**
+ * @brief Define the ESP part of the profile decompression context
+ *
+ * This object must be used with the generic part of the decompression
+ * context c_generic_context.
+ *
+ * @see c_generic_context
+ */
+struct sc_esp_context
+{
+ /// The previous ESP header
+ struct esphdr old_esp;
+};
+
+
+/*
+ * Private function prototypes
+ */
+
+static int esp_code_static_esp_part(const struct c_context *context,
+ const unsigned char *next_header,
+ unsigned char *const dest,
+ int counter);
+
+static int esp_code_dynamic_esp_part(const struct c_context *context,
+ const unsigned char *next_header,
+ unsigned char *const dest,
+ int counter);
+
+// TODO: make all functions private?
+
+
+/*
+ * Public function definitions
+ */
+
+/**
+ * @brief Create a new ESP context and initialize it thanks to the given IP/ESP
+ * packet.
+ *
+ * This function is one of the functions that must exist in one profile for the
+ * framework to work.
+ *
+ * @param context The compression context
+ * @param ip The IP/ESP packet given to initialize the new context
+ * @return 1 if successful, 0 otherwise
+ */
+int c_esp_create(struct c_context *const context, const struct ip_packet *ip)
+{
+ struct c_generic_context *g_context;
+ struct sc_esp_context *esp_context;
+ struct ip_packet ip2;
+ const struct ip_packet *last_ip_header;
+ const struct esphdr *esp;
+ unsigned int ip_proto;
+
+ assert(context != NULL);
+ assert(ip != NULL);
+
+ /* create and initialize the generic part of the profile context */
+ if(!c_generic_create(context, ip))
+ {
+ rohc_debugf(0, "generic context creation failed\n");
+ goto quit;
+ }
+ g_context = (struct c_generic_context *) context->specific;
+
+ /* check if packet is IP/ESP or IP/IP/ESP */
+ ip_proto = ip_get_protocol(ip);
+ if(ip_proto == IPPROTO_IPIP || ip_proto == IPPROTO_IPV6)
+ {
+ /* get the last IP header */
+ if(!ip_get_inner_packet(ip, &ip2))
+ {
+ rohc_debugf(0, "cannot create the inner IP header\n");
+ goto clean;
+ }
+
+ /* two IP headers, the last IP header is the second one */
+ last_ip_header = &ip2;
+
+ /* get the transport protocol */
+ ip_proto = ip_get_protocol(last_ip_header);
+ }
+ else
+ {
+ /* only one single IP header, the last IP header is the first one */
+ last_ip_header = ip;
+ }
+
+ if(ip_proto != IPPROTO_ESP)
+ {
+ rohc_debugf(0, "next header is not ESP (%d), cannot use this profile\n",
+ ip_proto);
+ goto clean;
+ }
+
+ esp = (struct esphdr *) ip_get_next_layer(last_ip_header);
+
+ /* initialize SN with the SN found in the ESP header */
+ g_context->sn = ntohl(esp->sequence_number);
+ rohc_debugf(1, "initialize context(SN) = hdr(SN) of first packet = %u\n",
+ g_context->sn);
+
+ /* create the ESP part of the profile context */
+ esp_context = malloc(sizeof(struct sc_esp_context));
+ if(esp_context == NULL)
+ {
+ rohc_debugf(0, "no memory for the ESP part of the profile context\n");
+ goto clean;
+ }
+ g_context->specific = esp_context;
+
+ /* initialize the ESP part of the profile context */
+ memcpy(&(esp_context->old_esp), esp, sizeof(struct esphdr));
+
+ /* init the ESP-specific variables and functions */
+ g_context->next_header_proto = IPPROTO_ESP;
+ g_context->next_header_len = sizeof(struct esphdr);
+ g_context->decide_state = decide_state;
+ g_context->init_at_IR = NULL;
+ g_context->code_static_part = esp_code_static_esp_part;
+ g_context->code_dynamic_part = esp_code_dynamic_esp_part;
+ g_context->code_UO_packet_head = NULL;
+ g_context->code_UO_packet_tail = NULL;
+ g_context->compute_crc_static = esp_compute_crc_static;
+ g_context->compute_crc_dynamic = esp_compute_crc_dynamic;
+
+ return 1;
+
+clean:
+ c_generic_destroy(context);
+quit:
+ return 0;
+}
+
+
+/**
+ * @brief Check if the IP/ESP packet belongs to the context
+ *
+ * Conditions are:
+ * - the number of IP headers must be the same as in context
+ * - IP version of the two IP headers must be the same as in context
+ * - IP packets must not be fragmented
+ * - the source and destination addresses of the two IP headers must match the
+ * ones in the context
+ * - the transport protocol must be ESP
+ * - the security parameters index of the ESP header must match the one in
+ * the context
+ * - IPv6 only: the Flow Label of the two IP headers must match the ones the
+ * context
+ *
+ * This function is one of the functions that must exist in one profile for the
+ * framework to work.
+ *
+ * @param context The compression context
+ * @param ip The IP/ESP packet to check
+ * @return 1 if the IP/ESP packet belongs to the context,
+ * 0 if it does not belong to the context and
+ * -1 if the profile cannot compress it or an error occurs
+ */
+int c_esp_check_context(const struct c_context *context,
+ const struct ip_packet *ip)
+{
+ struct c_generic_context *g_context;
+ struct sc_esp_context *esp_context;
+ struct ip_header_info *ip_flags;
+ struct ip_header_info *ip2_flags;
+ struct ip_packet ip2;
+ const struct ip_packet *last_ip_header;
+ const struct esphdr *esp;
+ ip_version version;
+ unsigned int ip_proto;
+ bool is_ip_same;
+ bool is_esp_same;
+
+ // TODO: reuse a part of IP, UDP or RTP?
+ assert(context != NULL);
+ assert(ip != NULL);
+
+ assert(context->specific != NULL);
+ g_context = (struct c_generic_context *) context->specific;
+ assert(g_context->specific != NULL);
+ esp_context = (struct sc_esp_context *) g_context->specific;
+ ip_flags = &g_context->ip_flags;
+ ip2_flags = &g_context->ip2_flags;
+
+ /* check the IP version of the first header */
+ version = ip_get_version(ip);
+ if(version != ip_flags->version)
+ {
+ goto bad_context;
+ }
+
+ /* compare the addresses of the first header */
+ if(version == IPV4)
+ {
+ is_ip_same = ip_flags->info.v4.old_ip.saddr == ipv4_get_saddr(ip) &&
+ ip_flags->info.v4.old_ip.daddr == ipv4_get_daddr(ip);
+ }
+ else /* IPV6 */
+ {
+ is_ip_same =
+ IPV6_ADDR_CMP(&ip_flags->info.v6.old_ip.ip6_src, ipv6_get_saddr(ip)) &&
+ IPV6_ADDR_CMP(&ip_flags->info.v6.old_ip.ip6_dst, ipv6_get_daddr(ip));
+ }
+
+ if(!is_ip_same)
+ {
+ goto bad_context;
+ }
+
+ /* compare the Flow Label of the first header if IPv6 */
+ if(version == IPV6 && ipv6_get_flow_label(ip) !=
+ IPV6_GET_FLOW_LABEL(ip_flags->info.v6.old_ip))
+ {
+ goto bad_context;
+ }
+
+ /* check the second IP header */
+ ip_proto = ip_get_protocol(ip);
+ if(ip_proto == IPPROTO_IPIP || ip_proto == IPPROTO_IPV6)
+ {
+ bool is_ip2_same;
+
+ /* check if the context used to have a second IP header */
+ if(!g_context->is_ip2_initialized)
+ {
+ goto bad_context;
+ }
+
+ /* get the second IP header */
+ if(!ip_get_inner_packet(ip, &ip2))
+ {
+ rohc_debugf(0, "cannot create the inner IP header\n");
+ goto error;
+ }
+
+ /* check the IP version of the second header */
+ version = ip_get_version(&ip2);
+ if(version != ip2_flags->version)
+ {
+ goto bad_context;
+ }
+
+ /* compare the addresses of the second header */
+ if(version == IPV4)
+ {
+ is_ip2_same = ip2_flags->info.v4.old_ip.saddr == ipv4_get_saddr(&ip2) &&
+ ip2_flags->info.v4.old_ip.daddr == ipv4_get_daddr(&ip2);
+ }
+ else /* IPV6 */
+ {
+ is_ip2_same = IPV6_ADDR_CMP(&ip2_flags->info.v6.old_ip.ip6_src,
+ ipv6_get_saddr(&ip2)) &&
+ IPV6_ADDR_CMP(&ip2_flags->info.v6.old_ip.ip6_dst,
+ ipv6_get_daddr(&ip2));
+ }
+
+ if(!is_ip2_same)
+ {
+ goto bad_context;
+ }
+
+ /* compare the Flow Label of the second header if IPv6 */
+ if(version == IPV6 && ipv6_get_flow_label(&ip2) !=
+ IPV6_GET_FLOW_LABEL(ip2_flags->info.v6.old_ip))
+ {
+ goto bad_context;
+ }
+
+ /* get the last IP header */
+ last_ip_header = &ip2;
+
+ /* get the transport protocol */
+ ip_proto = ip_get_protocol(&ip2);
+ }
+ else /* no second IP header */
+ {
+ /* check if the context used not to have a second header */
+ if(g_context->is_ip2_initialized)
+ {
+ goto bad_context;
+ }
+
+ /* only one single IP header, the last IP header is the first one */
+ last_ip_header = ip;
+ }
+
+ /* check the transport protocol */
+ if(ip_proto != IPPROTO_ESP)
+ {
+ goto bad_context;
+ }
+
+ /* check Security parameters index (SPI) */
+ esp = (struct esphdr *) ip_get_next_layer(last_ip_header);
+ is_esp_same = esp_context->old_esp.security_parameters_index == esp->security_parameters_index;
+
+ return is_esp_same;
+
+bad_context:
+ return 0;
+error:
+ return -1;
+}
+
+
+/**
+ * @brief Encode an IP/ESP packet according to a pattern decided by several
+ * different factors.
+ *
+ * @param context The compression context
+ * @param ip The IP packet to encode
+ * @param packet_size The length of the IP packet to encode
+ * @param dest The rohc-packet-under-build buffer
+ * @param dest_size The length of the rohc-packet-under-build buffer
+ * @param packet_type OUT: The type of ROHC packet that is created
+ * @param payload_offset The offset for the payload in the IP packet
+ * @return The length of the created ROHC packet
+ * or -1 in case of failure
+ */
+int c_esp_encode(struct c_context *const context,
+ const struct ip_packet *ip,
+ const int packet_size,
+ unsigned char *const dest,
+ const int dest_size,
+ rohc_packet_t *const packet_type,
+ int *const payload_offset)
+{
+ struct c_generic_context *g_context;
+ struct sc_esp_context *esp_context;
+ struct ip_packet ip2;
+ const struct ip_packet *last_ip_header;
+ const struct esphdr *esp;
+ unsigned int ip_proto;
+ int size;
+
+ assert(context != NULL);
+ assert(ip != NULL);
+ assert(dest != NULL);
+ assert(packet_type != NULL);
+
+ assert(context->specific != NULL);
+ g_context = (struct c_generic_context *) context->specific;
+ assert(g_context->specific != NULL);
+ esp_context = (struct sc_esp_context *) g_context->specific;
+
+ ip_proto = ip_get_protocol(ip);
+ if(ip_proto == IPPROTO_IPIP || ip_proto == IPPROTO_IPV6)
+ {
+ /* get the last IP header */
+ if(!ip_get_inner_packet(ip, &ip2))
+ {
+ rohc_debugf(0, "cannot create the inner IP header\n");
+ return -1;
+ }
+ last_ip_header = &ip2;
+
+ /* get the transport protocol */
+ ip_proto = ip_get_protocol(last_ip_header);
+ }
+ else
+ {
+ /* only one single IP header, the last IP header is the first one */
+ last_ip_header = ip;
+ }
+
+ if(ip_proto != IPPROTO_ESP)
+ {
+ rohc_debugf(0, "packet is not an ESP packet\n");
+ return -1;
+ }
+ esp = (struct esphdr *) ip_get_next_layer(last_ip_header);
+
+ /* encode the IP packet */
+ size = c_generic_encode(context, ip, packet_size, dest, dest_size,
+ packet_type, payload_offset);
+ if(size < 0)
+ {
+ goto quit;
+ }
+
+ /* update the context with the new ESP header */
+ if(g_context->tmp.packet_type == PACKET_IR ||
+ g_context->tmp.packet_type == PACKET_IR_DYN)
+ {
+ memcpy(&(esp_context->old_esp), esp, sizeof(struct esphdr));
+ }
+
+quit:
+ return size;
+}
+
+
+/*
+ * Private function definitions
+ */
+
+
+/**
+ * @brief Build the static part of the ESP header
+ *
+ * \verbatim
+
+ Static part of ESP header (5.7.7.7):
+
+ +---+---+---+---+---+---+---+---+
+ 1 / SPI / 4 octets
+ +---+---+---+---+---+---+---+---+
+
+ SPI = Security Parameters Index
+
+\endverbatim
+ *
+ * @param context The compression context
+ * @param next_header The ESP header
+ * @param dest The rohc-packet-under-build buffer
+ * @param counter The current position in the rohc-packet-under-build buffer
+ * @return The new position in the rohc-packet-under-build buffer
+ */
+static int esp_code_static_esp_part(const struct c_context *context,
+ const unsigned char *next_header,
+ unsigned char *const dest,
+ int counter)
+{
+ const struct esphdr *esp = (struct esphdr *) next_header;
+
+ /* part 1 */
+ rohc_debugf(3, "ESP SPI = 0x%08x\n", ntohl(esp->security_parameters_index));
+ memcpy(&dest[counter], &esp->security_parameters_index, sizeof(uint32_t));
+ counter += sizeof(uint32_t);
+
+ return counter;
+}
+
+
+/**
+ * @brief Build the dynamic part of the ESP header
+ *
+ * \verbatim
+
+ Dynamic part of ESP header (5.7.7.7):
+
+ +---+---+---+---+---+---+---+---+
+ 1 / Sequence Number / 4 octets
+ +---+---+---+---+---+---+---+---+
+
+\endverbatim
+ *
+ * @param context The compression context
+ * @param next_header The ESP header
+ * @param dest The rohc-packet-under-build buffer
+ * @param counter The current position in the rohc-packet-under-build buffer
+ * @return The new position in the rohc-packet-under-build buffer
+ */
+static int esp_code_dynamic_esp_part(const struct c_context *context,
+ const unsigned char *next_header,
+ unsigned char *const dest,
+ int counter)
+{
+ struct c_generic_context *g_context;
+ struct sc_esp_context *esp_context;
+ const struct esphdr *esp;
+
+ assert(context != NULL);
+ assert(next_header != NULL);
+ assert(dest != NULL);
+
+ assert(context->specific != NULL);
+ g_context = (struct c_generic_context *) context->specific;
+ assert(g_context->specific != NULL);
+ esp_context = (struct sc_esp_context *) g_context->specific;
+
+ esp = (struct esphdr *) next_header;
+
+ /* part 1 */
+ rohc_debugf(3, "ESP SN = 0x%08x\n", ntohl(esp->sequence_number));
+ memcpy(&dest[counter], &esp->sequence_number, sizeof(uint32_t));
+ counter += sizeof(uint32_t);
+
+ return counter;
+}
+
+
+/**
+ * @brief Define the compression part of the ESP profile as described
+ * in the RFC 3095.
+ */
+struct c_profile c_esp_profile =
+{
+ IPPROTO_ESP, /* IP protocol */
+ NULL, /* list of UDP ports, not relevant for UDP */
+ ROHC_PROFILE_ESP, /* profile ID (see 8 in RFC 3095) */
+ "ESP / Compressor", /* profile description */
+ c_esp_create, /* profile handlers */
+ c_generic_destroy,
+ c_esp_check_context,
+ c_esp_encode,
+ c_generic_feedback,
+};
+
=== added file 'src/comp/c_esp.h'
--- src/comp/c_esp.h 1970-01-01 00:00:00 +0000
+++ src/comp/c_esp.h 2012-05-31 19:04:22 +0000
@@ -0,0 +1,49 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/**
+ * @file c_esp.h
+ * @brief ROHC ESP compression profile
+ * @author FWX <rohc_team@xxxxxxxxxx>
+ * @author Didier Barvaux <didier@xxxxxxxxxxx>
+ */
+
+#ifndef C_ESP_H
+#define C_ESP_H
+
+#include "ip.h"
+#include "rohc_comp_internals.h"
+
+
+/*
+ * Function prototypes.
+ */
+
+int c_esp_create(struct c_context *const context, const struct ip_packet *ip);
+
+int c_esp_check_context(const struct c_context *context,
+ const struct ip_packet *ip);
+
+int c_esp_encode(struct c_context *const context,
+ const struct ip_packet *ip,
+ const int packet_size,
+ unsigned char *const dest,
+ const int dest_size,
+ rohc_packet_t *const packet_type,
+ int *const payload_offset);
+
+#endif
+
=== modified file 'src/comp/c_generic.c'
--- src/comp/c_generic.c 2012-05-28 16:13:44 +0000
+++ src/comp/c_generic.c 2012-05-31 19:02:18 +0000
@@ -23,6 +23,7 @@
* @author David Moreau from TAS
* @author Emmanuelle Pechereau <epechereau@xxxxxxxxxxxxxxxxxxxx>
* @author The hackers from ROHC for Linux
+ * @author FWX <rohc_team@xxxxxxxxxx>
*/
#include "c_generic.h"
@@ -36,6 +37,7 @@
#include "cid.h"
#include "sdvl.h"
#include "crc.h"
+#include "esp.h" /* TODO: for esphdr, should be removed by using a callback */
#include <netinet/ip.h>
#include <netinet/udp.h>
@@ -548,6 +550,7 @@
switch(context->profile->id)
{
case ROHC_PROFILE_RTP:
+ case ROHC_PROFILE_ESP:
p = ROHC_LSB_SHIFT_RTP_SN;
break;
case ROHC_PROFILE_UNCOMPRESSED:
@@ -768,14 +771,13 @@
unsigned int ip_proto;
int size;
int size_data;
- int is_rtp;
int ret;
g_context = (struct c_generic_context *) context->specific;
if(g_context == NULL)
{
rohc_debugf(0, "generic context not valid\n");
- return -1;
+ goto error;
}
g_context->tmp.changed_fields2 = 0;
@@ -795,7 +797,7 @@
/* there are 2 IP headers */
if(!ip_get_inner_packet(ip, &ip2))
{
- return -1;
+ goto error;
}
g_context->tmp.nr_of_ip_hdr = 2;
@@ -807,7 +809,7 @@
{
if(!c_init_header_info(&g_context->ip2_flags, inner_ip))
{
- return -1;
+ goto error;
}
g_context->is_ip2_initialized = 1;
}
@@ -826,7 +828,7 @@
{
/* the IP protocol field does not match the attended
* next header protocol */
- return -1;
+ goto error;
}
next_header = ip_get_next_layer(last_ip_header);
@@ -848,33 +850,64 @@
*/
detect_ip_id_behaviours(context, ip, inner_ip);
- is_rtp = context->profile->id == ROHC_PROFILE_RTP;
- if(is_rtp)
- {
- /* RTP profile: SN is the RTP SN */
- struct udphdr *udp;
- struct rtphdr *rtp;
- struct sc_rtp_context *rtp_context;;
- rtp_context = (struct sc_rtp_context *) g_context->specific;
-
- if(g_context->tmp.nr_of_ip_hdr > 1)
- {
- udp = (struct udphdr *) ip_get_next_layer(inner_ip);
- }
- else
- {
- udp = (struct udphdr *) ip_get_next_layer(ip);
- }
-
- /* initialisation of SN with the SN field of the RTP packet */
- rtp = (struct rtphdr *) (udp + 1);
- g_context->sn = ntohs(rtp->sn);
- c_add_ts(&rtp_context->ts_sc, rtp_context->tmp.timestamp, g_context->sn);
- }
- else
- {
- /* increase the SN every time we encode something */
- g_context->sn++;
+ switch(context->profile->id)
+ {
+ case ROHC_PROFILE_RTP:
+ {
+ /* RTP profile: SN is the RTP SN */
+ struct udphdr *udp;
+ struct rtphdr *rtp;
+ struct sc_rtp_context *rtp_context;
+ rtp_context = (struct sc_rtp_context *) g_context->specific;
+
+ if(g_context->tmp.nr_of_ip_hdr > 1)
+ {
+ udp = (struct udphdr *) ip_get_next_layer(inner_ip);
+ }
+ else
+ {
+ udp = (struct udphdr *) ip_get_next_layer(ip);
+ }
+
+ /* initialisation of SN with the SN field of the RTP packet */
+ rtp = (struct rtphdr *) (udp + 1);
+ g_context->sn = ntohs(rtp->sn);
+ c_add_ts(&rtp_context->ts_sc, rtp_context->tmp.timestamp, g_context->sn);
+ }
+ break;
+
+ case ROHC_PROFILE_ESP:
+ {
+ /* ESP profile: SN is the ESP SN */
+ struct esphdr *esp;
+
+ if(g_context->tmp.nr_of_ip_hdr > 1)
+ {
+ esp = (struct esphdr *) ip_get_next_layer(inner_ip);
+ }
+ else
+ {
+ esp = (struct esphdr *) ip_get_next_layer(ip);
+ }
+
+ /* initialisation of SN with the SN field of the RTP packet */
+ g_context->sn = ntohl(esp->sequence_number);
+ }
+ break;
+
+ case ROHC_PROFILE_UDP:
+ case ROHC_PROFILE_UDPLITE:
+ case ROHC_PROFILE_IP:
+ {
+ /* generated SN: increase the SN every time we encode something */
+ g_context->sn++;
+ }
+ break;
+
+ default:
+ rohc_debugf(0, "unsupported profile 0x%04x\n", context->profile->id);
+ assert(0);
+ goto error;
}
rohc_debugf(3, "SN = %d\n",g_context->sn);
@@ -924,7 +957,7 @@
if(ret != ROHC_OK)
{
rohc_debugf(0, "failed to update the compression context\n");
- return -1;
+ goto error;
}
/* STEP 5: decide which packet to send */
@@ -934,7 +967,7 @@
size = code_packet(context, ip, inner_ip, next_header, dest);
if(size < 0)
{
- return -1;
+ goto error;
}
/* update the context with the new headers */
@@ -980,6 +1013,9 @@
/* return the length of the ROHC packet */
return size;
+
+error:
+ return -1;
}
@@ -3809,7 +3845,7 @@
7 | Dynamic chain | present if D = 1, variable length
| |
+---+---+---+---+---+---+---+---+
- 8 | SN | 2 octets if not RTP
+ 8 | SN | 2 octets if not RTP nor ESP
+---+---+---+---+---+---+---+---+
| |
| Payload | variable length
@@ -3952,7 +3988,8 @@
}
/* part 8 */
- if(context->profile->id != ROHC_PROFILE_RTP)
+ if(context->profile->id != ROHC_PROFILE_RTP &&
+ context->profile->id != ROHC_PROFILE_ESP) // TODO: cleanup
{
uint16_t sn;
sn = htons(g_context->sn);
@@ -3998,7 +4035,7 @@
6 / Dynamic chain / variable length
| |
+---+---+---+---+---+---+---+---+
- 7 | SN | 2 octets if not RTP
+ 7 | SN | 2 octets if not RTP nor ESP
+---+---+---+---+---+---+---+---+
: :
/ Payload / variable length
@@ -4091,7 +4128,8 @@
}
/* part 7 */
- if(context->profile->id != ROHC_PROFILE_RTP)
+ if(context->profile->id != ROHC_PROFILE_RTP &&
+ context->profile->id != ROHC_PROFILE_ESP) // TODO: cleanup
{
rohc_debugf(3, "SN = %d\n", g_context->sn);
dest[counter] = g_context->sn >> 8;
@@ -8399,6 +8437,9 @@
case ROHC_PROFILE_UDP:
total_size += 6; /* UDP part in IR packet */
break;
+ case ROHC_PROFILE_ESP:
+ total_size += 8; /* ESP part in IR packet */
+ break;
case ROHC_PROFILE_UDPLITE:
total_size += 8; /* size of UDP-lite part in IR packet */
break;
@@ -8440,21 +8481,24 @@
case ROHC_PROFILE_RTP:
if(original)
{
- /* size min of RTP + UDP part in IR packet, the most
+ /* size min of RTP + UDP part in IR-DYN packet, the most
compressed packet is estimated */
total_size += 13;
}
else
{
- /* size max of RTP + UDP part in IR packet */
+ /* size max of RTP + UDP part in IR-DYN packet */
total_size += 19;
}
break;
case ROHC_PROFILE_UDP:
- total_size += 2; /* size of UDP part in IR packet */
+ total_size += 2; /* size of UDP part in IR-DYN packet */
+ break;
+ case ROHC_PROFILE_ESP:
+ /* nothing to add */
break;
case ROHC_PROFILE_UDPLITE:
- total_size += 4; /* size of UDP-lite part in IR packet */
+ total_size += 4; /* size of UDP-lite part in IR-DYN packet */
break;
case ROHC_PROFILE_IP:
/* nothing to add */
=== modified file 'src/comp/rohc_comp.c'
--- src/comp/rohc_comp.c 2012-05-26 15:17:53 +0000
+++ src/comp/rohc_comp.c 2012-05-29 19:48:30 +0000
@@ -48,6 +48,7 @@
extern struct c_profile c_rtp_profile,
c_udp_profile,
c_udp_lite_profile,
+ c_esp_profile,
c_ip_profile,
c_uncompressed_profile;
@@ -59,6 +60,7 @@
&c_rtp_profile,
&c_udp_profile,
&c_udp_lite_profile,
+ &c_esp_profile,
&c_ip_profile,
&c_uncompressed_profile,
};
=== modified file 'src/comp/rohc_comp_internals.h'
--- src/comp/rohc_comp_internals.h 2012-05-26 15:17:53 +0000
+++ src/comp/rohc_comp_internals.h 2012-05-29 19:48:30 +0000
@@ -39,7 +39,7 @@
*/
/** The number of ROHC profiles ready to be used */
-#define C_NUM_PROFILES 5
+#define C_NUM_PROFILES 6
/** The maximal number of outgoing feedbacks that can be queued */
#define FEEDBACK_RING_SIZE 10
=== modified file 'src/decomp/Makefile.am'
--- src/decomp/Makefile.am 2010-06-06 17:51:59 +0000
+++ src/decomp/Makefile.am 2012-05-29 19:48:30 +0000
@@ -14,6 +14,7 @@
d_ip.c \
d_udp.c \
d_udp_lite.c \
+ d_esp.c \
d_rtp.c
INCLUDES = \
@@ -31,5 +32,6 @@
d_ip.h \
d_udp.h \
d_udp_lite.h \
+ d_esp.h \
d_rtp.h
=== added file 'src/decomp/d_esp.c'
--- src/decomp/d_esp.c 1970-01-01 00:00:00 +0000
+++ src/decomp/d_esp.c 2012-05-31 18:55:44 +0000
@@ -0,0 +1,484 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/**
+ * @file d_esp.c
+ * @brief ROHC ESP decompression profile
+ * @author FWX <rohc_team@xxxxxxxxxx>
+ * @author Didier Barvaux <didier@xxxxxxxxxxx>
+ */
+
+#include "d_esp.h"
+#include "rohc_traces.h"
+#include "crc.h"
+#include "rohc_debug.h"
+#include "rohc_bit_ops.h"
+
+#include <stdint.h>
+#include <string.h>
+
+
+/*
+ * Public function definitions
+ */
+
+/**
+ * @brief Create the ESP decompression context
+ *
+ * This function is one of the functions that must exist in one profile for the
+ * framework to work.
+ *
+ * @return The newly-created ESP decompression context
+ */
+void * d_esp_create(void)
+{
+ struct d_generic_context *context;
+
+ /* create the generic context */
+ context = d_generic_create();
+ if(context == NULL)
+ {
+ goto quit;
+ }
+ context->specific = NULL;
+
+ /* create the LSB decoding context for SN (same shift value as RTP) */
+ context->sn_lsb_ctxt = rohc_lsb_new(ROHC_LSB_SHIFT_RTP_SN);
+ if(context->sn_lsb_ctxt == NULL)
+ {
+ rohc_debugf(0, "failed to create the LSB decoding context for SN\n");
+ goto destroy_context;
+ }
+
+ /* some ESP-specific values and functions */
+ context->next_header_len = sizeof(struct esphdr);
+ context->build_next_header = esp_build_uncompressed_esp;
+ context->decode_static_next_header = esp_decode_static_esp;
+ context->decode_dynamic_next_header = esp_decode_dynamic_esp;
+ context->decode_uo_tail = NULL;
+ context->compute_crc_static = esp_compute_crc_static;
+ context->compute_crc_dynamic = esp_compute_crc_dynamic;
+
+ /* create the ESP-specific part of the header changes */
+ context->last1->next_header_len = sizeof(struct esphdr);
+ context->last1->next_header = malloc(sizeof(struct esphdr));
+ if(context->last1->next_header == NULL)
+ {
+ rohc_debugf(0, "cannot allocate memory for the ESP-specific "
+ "part of the header changes last1\n");
+ goto free_lsb_sn;
+ }
+ bzero(context->last1->next_header, sizeof(struct esphdr));
+
+ context->last2->next_header_len = sizeof(struct esphdr);
+ context->last2->next_header = malloc(sizeof(struct esphdr));
+ if(context->last2->next_header == NULL)
+ {
+ rohc_debugf(0, "cannot allocate memory for the ESP-specific "
+ "part of the header changes last2\n");
+ goto free_last1_next_header;
+ }
+ bzero(context->last2->next_header, sizeof(struct esphdr));
+
+ context->active1->next_header_len = sizeof(struct esphdr);
+ context->active1->next_header = malloc(sizeof(struct esphdr));
+ if(context->active1->next_header == NULL)
+ {
+ rohc_debugf(0, "cannot allocate memory for the ESP-specific "
+ "part of the header changes active1\n");
+ goto free_last2_next_header;
+ }
+ bzero(context->active1->next_header, sizeof(struct esphdr));
+
+ context->active2->next_header_len = sizeof(struct esphdr);
+ context->active2->next_header = malloc(sizeof(struct esphdr));
+ if(context->active2->next_header == NULL)
+ {
+ rohc_debugf(0, "cannot allocate memory for the ESP-specific "
+ "part of the header changes active2\n");
+ goto free_active1_next_header;
+ }
+ bzero(context->active2->next_header, sizeof(struct esphdr));
+
+ /* set next header to ESP */
+ context->next_header_proto = IPPROTO_ESP;
+
+ return context;
+
+free_active1_next_header:
+ zfree(context->active1->next_header);
+free_last2_next_header:
+ zfree(context->last2->next_header);
+free_last1_next_header:
+ zfree(context->last1->next_header);
+free_lsb_sn:
+ rohc_lsb_free(context->sn_lsb_ctxt);
+destroy_context:
+ d_generic_destroy(context);
+quit:
+ return NULL;
+}
+
+
+/**
+ * @brief Destroy the context
+ *
+ * This function is one of the functions that must exist in one profile for the
+ * framework to work.
+ *
+ * @param context The compression context
+ */
+void d_esp_destroy(void *context)
+{
+ struct d_generic_context *g_context;
+
+ assert(context != NULL);
+ g_context = (struct d_generic_context *) context;
+
+ /* clean ESP-specific memory */
+ assert(g_context->last1 != NULL);
+ if(g_context->last1->next_header != NULL)
+ {
+ zfree(g_context->last1->next_header);
+ }
+ assert(g_context->last2 != NULL);
+ if(g_context->last2->next_header != NULL)
+ {
+ zfree(g_context->last2->next_header);
+ }
+ assert(g_context->active1 != NULL);
+ if(g_context->active1->next_header != NULL)
+ {
+ zfree(g_context->active1->next_header);
+ }
+ assert(g_context->active2 != NULL);
+ if(g_context->active2->next_header != NULL)
+ {
+ zfree(g_context->active2->next_header);
+ }
+
+ /* destroy the LSB decoding context for SN */
+ rohc_lsb_free(g_context->sn_lsb_ctxt);
+
+ /* destroy the resources of the generic context */
+ d_generic_destroy(context);
+}
+
+
+/**
+ * @brief Get the size of the ESP static part of an IR packet
+ *
+ * @return The size of the ESP static part
+ */
+int esp_get_static_size(void)
+{
+ return sizeof(uint32_t);
+}
+
+
+/**
+ * @brief Find the length of the IR header
+ *
+ * This function is one of the functions that must exist in one profile for the
+ * framework to work.
+ *
+ * \verbatim
+
+ Basic structure of the IR packet (5.7.7.1):
+
+ 0 1 2 3 4 5 6 7
+ --- --- --- --- --- --- --- ---
+ 1 | Add-CID octet | if for small CIDs and CID != 0
+ +---+---+---+---+---+---+---+---+
+ 2 | 1 1 1 1 1 1 0 | D |
+ +---+---+---+---+---+---+---+---+
+ | |
+ 3 / 0-2 octets of CID info / 1-2 octets if for large CIDs
+ | |
+ +---+---+---+---+---+---+---+---+
+ 4 | Profile | 1 octet
+ +---+---+---+---+---+---+---+---+
+ 5 | CRC | 1 octet
+ +---+---+---+---+---+---+---+---+
+ | |
+ 6 | Static chain | variable length
+ | |
+ +---+---+---+---+---+---+---+---+
+ | |
+ 7 | Dynamic chain | present if D = 1, variable length
+ | |
+ +---+---+---+---+---+---+---+---+
+ 8 | SN | 2 octets if not RTP nor ESP
+ +---+---+---+---+---+---+---+---+
+ | |
+ 9 | Payload | variable length
+ | |
+ - - - - - - - - - - - - - - - -
+
+\endverbatim
+ *
+ * The function computes the length of the fields 2 + 4-8, ie. the first byte,
+ * the Profile and CRC fields, the static and dynamic chains (outer and inner
+ * IP headers + ESP header) and the SN (0 byte in case of ESP).
+ *
+ * @param context The decompression context
+ * @param packet The pointer on the IR packet minus the Add-CID byte
+ * (ie. the field 2 in the figure)
+ * @param plen The length of the IR packet minus the Add-CID byte
+ * @param large_cid_len The size of the large CID field
+ * (ie. field 3 in the figure)
+ * @return The length of the IR header,
+ * 0 if an error occurs
+ */
+unsigned int esp_detect_ir_size(struct d_context *context,
+ unsigned char *packet,
+ unsigned int plen,
+ unsigned int large_cid_len)
+{
+ unsigned int length;
+ unsigned int d;
+
+ /* Profile and CRC fields + IP static & dynamic chains */
+ length = d_generic_detect_ir_size(context, packet, plen, large_cid_len);
+ if(length == 0)
+ {
+ goto quit;
+ }
+
+ /* ESP static part (see 5.7.7.7 in RFC 3095) */
+ length += esp_get_static_size();
+
+ /* ESP dynamic part if included (see 5.7.7.7 in RFC 3095) */
+ d = GET_BIT_0(packet);
+ if(d)
+ {
+ length += sizeof(uint32_t);
+ }
+
+quit:
+ return length;
+}
+
+
+/**
+ * @brief Find the length of the IR-DYN header
+ *
+ * This function is one of the functions that must exist in one profile for the
+ * framework to work.
+ *
+ * \verbatim
+
+ Basic structure of the IR-DYN packet (5.7.7.2):
+
+ 0 1 2 3 4 5 6 7
+ --- --- --- --- --- --- --- ---
+ 1 : Add-CID octet : if for small CIDs and CID != 0
+ +---+---+---+---+---+---+---+---+
+ 2 | 1 1 1 1 1 0 0 0 | IR-DYN packet type
+ +---+---+---+---+---+---+---+---+
+ : :
+ 3 / 0-2 octets of CID info / 1-2 octets if for large CIDs
+ : :
+ +---+---+---+---+---+---+---+---+
+ 4 | Profile | 1 octet
+ +---+---+---+---+---+---+---+---+
+ 5 | CRC | 1 octet
+ +---+---+---+---+---+---+---+---+
+ | |
+ 6 / Dynamic chain / variable length
+ | |
+ +---+---+---+---+---+---+---+---+
+ 7 | SN | 2 octets if not RTP nor ESP
+ +---+---+---+---+---+---+---+---+
+ : :
+ 8 / Payload / variable length
+ : :
+ - - - - - - - - - - - - - - - -
+
+\endverbatim
+ *
+ * The function computes the length of the fields 2 + 4-8, ie. the first byte,
+ * the Profile and CRC fields, the dynamic chains (outer and inner IP headers +
+ * ESP header) and the SN (0 byte in case of ESP).
+ *
+ * @param context The decompression context
+ * @param packet The IR-DYN packet after the Add-CID byte if present
+ * (ie. the field 2 in the figure)
+ * @param plen The length of the IR-DYN packet minus the Add-CID byte
+ * @param large_cid_len The size of the large CID field
+ * (ie. field 3 in the figure)
+ * @return The length of the IR-DYN header,
+ * 0 if an error occurs
+ */
+unsigned int esp_detect_ir_dyn_size(struct d_context *context,
+ unsigned char *packet,
+ unsigned int plen,
+ unsigned int large_cid_len)
+{
+ unsigned int length;
+
+ /* Profile and CRC fields + IP dynamic chains */
+ length = d_generic_detect_ir_dyn_size(context, packet, plen, large_cid_len);
+ if(length == 0)
+ {
+ goto quit;
+ }
+
+ /* ESP dynamic part (see 5.7.7.7 in RFC 3095) */
+ length += sizeof(uint32_t);
+
+quit:
+ return length;
+}
+
+
+/**
+ * @brief Decode the ESP static part of the ROHC packet
+ *
+ * @param context The generic decompression context
+ * @param packet The ROHC packet to decode
+ * @param length The length of the ROHC packet
+ * @param dest The decoded ESP header
+ * @return The number of bytes read in the ROHC packet,
+ * -1 in case of failure
+ */
+int esp_decode_static_esp(struct d_generic_context *context,
+ const unsigned char *packet,
+ unsigned int length,
+ unsigned char *dest)
+{
+ struct esphdr *esp = (struct esphdr *) dest;
+ int read = 0; /* number of bytes read from the packet */
+
+ /* check the minimal length to decode the ESP static part */
+ if(length < 4)
+ {
+ rohc_debugf(0, "ROHC packet too small (len = %d)\n", length);
+ goto error;
+ }
+
+ memcpy(&esp->security_parameters_index, packet, sizeof(uint32_t));
+ packet += sizeof(uint32_t);
+ read += sizeof(uint32_t);
+ rohc_debugf(3, "ESP SPI = 0x%08x\n", ntohl(esp->security_parameters_index));
+
+ return read;
+
+error:
+ return -1;
+}
+
+
+/**
+ * @brief Decode the ESP dynamic part of the ROHC packet
+ *
+ * @param context The generic decompression context
+ * @param packet The ROHC packet to decode
+ * @param length The length of the ROHC packet
+ * @param dest The decoded ESP header
+ * @return The number of bytes read in the ROHC packet,
+ * -1 in case of failure
+ */
+int esp_decode_dynamic_esp(struct d_generic_context *context,
+ const unsigned char *packet,
+ unsigned int length,
+ unsigned char *dest)
+{
+ struct d_esp_context *esp_context;
+ struct esphdr *esp;
+ int read = 0; /* number of bytes read from the packet */
+ uint32_t sn;
+
+ esp_context = context->specific;
+ esp = (struct esphdr *) dest;
+
+ /* check the minimal length to decode the ESP dynamic part */
+ if(length < sizeof(uint32_t))
+ {
+ rohc_debugf(0, "ROHC packet too small (len = %d)\n", length);
+ goto error;
+ }
+
+ /* retrieve the ESP sequence number from the ROHC packet */
+ memcpy(&esp->sequence_number, packet, sizeof(uint32_t));
+ packet += sizeof(uint32_t);
+ read += sizeof(uint32_t);
+ rohc_debugf(3, "ESP SN = 0x%08x\n", ntohl(esp->sequence_number));
+
+ /* init SN and IP-IDs (IPv4 only) */
+ sn = ntohl(esp->sequence_number);
+ rohc_lsb_set_ref(context->sn_lsb_ctxt, sn);
+ if(ip_get_version(&context->active1->ip) == IPV4)
+ {
+ d_ip_id_init(&context->ip_id1, ntohs(ipv4_get_id(&context->active1->ip)), sn); // TODO: pb with 16->32
+ }
+ if(context->multiple_ip && ip_get_version(&context->active2->ip) == IPV4)
+ {
+ d_ip_id_init(&context->ip_id2, ntohs(ipv4_get_id(&context->active2->ip)), sn); // TODO: pb with 16->32
+ }
+
+ return read;
+
+error:
+ return -1;
+}
+
+
+/**
+ * @brief Build an uncompressed ESP header
+ *
+ * @param context The generic decompression context
+ * @param active The ESP header changes
+ * @param dest The buffer to store the ESP header (MUST be at least
+ * of sizeof(struct esphdr) length)
+ * @param payload_size The length of the ESP payload
+ * @return The length of the next header (ie. the ESP header),
+ * -1 in case of error
+ */
+int esp_build_uncompressed_esp(struct d_generic_context *context,
+ struct d_generic_changes *active,
+ unsigned char *dest,
+ int payload_size)
+{
+ struct esphdr *const esp = (struct esphdr *) active->next_header;
+
+ /* static SPI field + dynamic SN field */
+ memcpy(dest, esp, sizeof(struct esphdr));
+ rohc_debugf(3, "SPI = 0x%08x\n", ntohl(esp->security_parameters_index));
+ rohc_debugf(3, "SN = 0x%08x\n", ntohl(esp->sequence_number));
+
+ return sizeof(struct esphdr);
+}
+
+
+/**
+ * @brief Define the decompression part of the ESP profile as described
+ * in the RFC 3095.
+ */
+struct d_profile d_esp_profile =
+{
+ ROHC_PROFILE_ESP, /* profile ID (see 8 in RFC 3095) */
+ "ESP / Decompressor", /* profile description */
+ d_generic_decode, /* profile handlers */
+ d_generic_decode_ir,
+ d_esp_create,
+ d_esp_destroy,
+ esp_detect_ir_size,
+ esp_detect_ir_dyn_size,
+ esp_get_static_size,
+ d_generic_get_sn,
+};
+
=== added file 'src/decomp/d_esp.h'
--- src/decomp/d_esp.h 1970-01-01 00:00:00 +0000
+++ src/decomp/d_esp.h 2012-05-31 19:04:42 +0000
@@ -0,0 +1,68 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/**
+ * @file d_esp.h
+ * @brief ROHC ESP decompression profile
+ * @author FWX <rohc_team@xxxxxxxxxx>
+ * @author Didier Barvaux <didier@xxxxxxxxxxx>
+ */
+
+#ifndef D_ESP_H
+#define D_ESP_H
+
+#include "esp.h"
+#include "d_generic.h"
+#include "d_ip.h"
+
+
+//TODO: make all functions private?
+/*
+ * Public function prototypes.
+ */
+
+void d_esp_destroy(void *context);
+
+unsigned int esp_detect_ir_size(struct d_context *context,
+ unsigned char *packet,
+ unsigned int plen,
+ unsigned int large_cid_len);
+
+unsigned int esp_detect_ir_dyn_size(struct d_context *context,
+ unsigned char *packet,
+ unsigned int plen,
+ unsigned int large_cid_len);
+
+int esp_decode_static_esp(struct d_generic_context *context,
+ const unsigned char *packet,
+ unsigned int length,
+ unsigned char *dest);
+
+int esp_decode_dynamic_esp(struct d_generic_context *context,
+ const unsigned char *packet,
+ unsigned int length,
+ unsigned char *dest);
+
+int esp_get_static_size(void);
+
+int esp_build_uncompressed_esp(struct d_generic_context *context,
+ struct d_generic_changes *active,
+ unsigned char *dest,
+ int payload_size);
+
+
+#endif
+
=== modified file 'src/decomp/d_generic.c'
--- src/decomp/d_generic.c 2012-05-26 20:22:11 +0000
+++ src/decomp/d_generic.c 2012-05-31 18:49:01 +0000
@@ -35,6 +35,7 @@
#include "wlsb.h"
#include "sdvl.h"
#include "crc.h"
+#include "esp.h" /* TODO: for esphdr, should be removed with callbacks */
#include <assert.h>
@@ -3334,7 +3335,7 @@
7 | Dynamic chain | present if D = 1, variable length
| |
+---+---+---+---+---+---+---+---+
- 8 | SN | 2 octets if not RTP
+ 8 | SN | 2 octets if not RTP nor ESP
+---+---+---+---+---+---+---+---+
| |
9 | Payload | variable length
@@ -3554,7 +3555,7 @@
6 / Dynamic chain / variable length
| |
+---+---+---+---+---+---+---+---+
- 7 | SN | 2 octets if not RTP
+ 7 | SN | 2 octets if not RTP nor ESP
+---+---+---+---+---+---+---+---+
: :
8 / Payload / variable length
@@ -4223,7 +4224,7 @@
}
/* TODO: next block of code should be in build_next_header() of the RTP
- profile */
+ profile and ESP profile */
if(is_rtp)
{
/* RTP Marker (M) bit.
@@ -4243,6 +4244,13 @@
rtp->m = rtp_m_flag & 0x1;
rohc_debugf(3, "force RTP Marker (M) bit to %u\n", rtp->m);
}
+ else if(context->profile->id == ROHC_PROFILE_ESP)
+ {
+ struct esphdr *const esp = (struct esphdr *) g_context->active1->next_header;
+
+ /* update ESP SN */
+ esp->sequence_number = htonl((uint32_t) sn_decoded);
+ }
/* build the next header if necessary */
next_header = uncomp_packet;
@@ -5011,7 +5019,7 @@
}
/* TODO: next block of code should be in build_next_header() of the RTP
- profile */
+ profile and ESP profile */
if(is_rtp)
{
struct udphdr *const udp = (struct udphdr *) g_context->active1->next_header;
@@ -5042,6 +5050,13 @@
rohc_debugf(3, "force RTP Payload Type (R-PT) = 0x%x\n", rtp_pt_bits);
}
}
+ else if(context->profile->id == ROHC_PROFILE_ESP)
+ {
+ struct esphdr *const esp = (struct esphdr *) g_context->active1->next_header;
+
+ /* update ESP SN */
+ esp->sequence_number = htonl((uint32_t) sn_decoded);
+ }
/* build the next header if necessary */
next_header = uncomp_packet;
@@ -6227,7 +6242,7 @@
}
/* TODO: next block of code should be in build_next_header() of the RTP
- profile */
+ profile and ESP profile */
if(is_rtp)
{
struct udphdr *const udp = (struct udphdr *) g_context->active1->next_header;
@@ -6258,6 +6273,14 @@
rohc_debugf(3, "force RTP Payload Type (R-PT) = 0x%x\n", rtp_pt_bits);
}
}
+ else if(context->profile->id == ROHC_PROFILE_ESP)
+ {
+ struct esphdr *const esp = (struct esphdr *) g_context->active1->next_header;
+
+ /* update ESP SN */
+ esp->sequence_number = htonl((uint32_t) sn_decoded);
+ }
+
/* build the next header if necessary */
next_header = uncomp_packet;
=== modified file 'src/decomp/rohc_decomp.c'
--- src/decomp/rohc_decomp.c 2012-05-26 20:01:08 +0000
+++ src/decomp/rohc_decomp.c 2012-05-29 19:48:30 +0000
@@ -43,6 +43,7 @@
d_udp_profile,
d_ip_profile,
d_udplite_profile,
+ d_esp_profile,
d_rtp_profile;
/**
@@ -54,6 +55,7 @@
&d_udp_profile,
&d_ip_profile,
&d_udplite_profile,
+ &d_esp_profile,
&d_rtp_profile,
};
=== modified file 'src/decomp/rohc_decomp.h'
--- src/decomp/rohc_decomp.h 2012-05-24 19:54:37 +0000
+++ src/decomp/rohc_decomp.h 2012-05-29 19:48:30 +0000
@@ -29,7 +29,7 @@
#include "rohc_comp.h"
/// The number of ROHC profiles ready to be used
-#define D_NUM_PROFILES 5
+#define D_NUM_PROFILES 6
/// ROHC decompressor states (see 4.3.2 in the RFC 3095)
=== modified file 'statistics/generate_statistics.c'
--- statistics/generate_statistics.c 2012-05-26 20:01:08 +0000
+++ statistics/generate_statistics.c 2012-05-29 19:48:30 +0000
@@ -277,6 +277,7 @@
rohc_activate_profile(comp, ROHC_PROFILE_IP);
rohc_activate_profile(comp, ROHC_PROFILE_UDPLITE);
rohc_activate_profile(comp, ROHC_PROFILE_RTP);
+ rohc_activate_profile(comp, ROHC_PROFILE_ESP);
rohc_c_set_large_cid(comp, use_large_cid);
/* set the callback for random numbers */
=== modified file 'test/functional/feedback2/test_feedback2.c'
--- test/functional/feedback2/test_feedback2.c 2012-05-26 20:01:08 +0000
+++ test/functional/feedback2/test_feedback2.c 2012-05-29 19:48:30 +0000
@@ -274,6 +274,7 @@
rohc_activate_profile(comp, ROHC_PROFILE_IP);
rohc_activate_profile(comp, ROHC_PROFILE_UDPLITE);
rohc_activate_profile(comp, ROHC_PROFILE_RTP);
+ rohc_activate_profile(comp, ROHC_PROFILE_ESP);
if(is_large_cid)
{
rohc_c_set_large_cid(comp, 1);
=== modified file 'test/non_regression/Makefile.am'
--- test/non_regression/Makefile.am 2012-03-10 14:56:57 +0000
+++ test/non_regression/Makefile.am 2012-05-29 19:48:30 +0000
@@ -38,6 +38,7 @@
test_non_regression_ipv4_udp_rtp_more-than-14-bits-of-sn_smallcid.sh \
test_non_regression_ipv4_udp_rtp_lsb-interval-wraparound_smallcid.sh \
test_non_regression_ipv4_udp_smallcid.sh \
+ test_non_regression_ipv4_esp_smallcid.sh \
test_non_regression_ipv6ext_icmp_smallcid.sh \
test_non_regression_ipv6ext_icmp-large-ipv6-ext_smallcid.sh \
test_non_regression_ipv6ext_ipv6ext_icmp_smallcid.sh \
@@ -51,7 +52,8 @@
test_non_regression_ipv6_udp_rtp_audio-vlc_smallcid.sh \
test_non_regression_ipv6_udp_rtp_video2_smallcid.sh \
test_non_regression_ipv6_udp_rtp_video1_smallcid.sh \
- test_non_regression_ipv6_udp_smallcid.sh
+ test_non_regression_ipv6_udp_smallcid.sh \
+ test_non_regression_ipv6_esp_smallcid.sh
TESTS_LARGECID = \
test_non_regression_ipvx_largecid.sh \
@@ -86,6 +88,7 @@
test_non_regression_ipv4_udp_rtp_more-than-14-bits-of-sn_largecid.sh \
test_non_regression_ipv4_udp_rtp_lsb-interval-wraparound_largecid.sh \
test_non_regression_ipv4_udp_largecid.sh \
+ test_non_regression_ipv4_esp_largecid.sh \
test_non_regression_ipv6ext_icmp_largecid.sh \
test_non_regression_ipv6ext_icmp-large-ipv6-ext_largecid.sh \
test_non_regression_ipv6ext_ipv6ext_icmp_largecid.sh \
@@ -99,7 +102,8 @@
test_non_regression_ipv6_udp_rtp_audio-vlc_largecid.sh \
test_non_regression_ipv6_udp_rtp_video2_largecid.sh \
test_non_regression_ipv6_udp_rtp_video1_largecid.sh \
- test_non_regression_ipv6_udp_largecid.sh
+ test_non_regression_ipv6_udp_largecid.sh \
+ test_non_regression_ipv6_esp_largecid.sh
TESTS = \
$(TESTS_SMALLCID) \
=== added directory 'test/non_regression/inputs/ipv4/esp'
=== added file 'test/non_regression/inputs/ipv4/esp/description'
--- test/non_regression/inputs/ipv4/esp/description 1970-01-01 00:00:00 +0000
+++ test/non_regression/inputs/ipv4/esp/description 2012-05-29 19:48:30 +0000
@@ -0,0 +1,3 @@
+Test the ESP profile with IPv4/ESP packets (with random IP-ID)
+
+The capture was downloaded from the wireshark wiki.
=== added file 'test/non_regression/inputs/ipv4/esp/rohc_largecid.pcap'
Binary files test/non_regression/inputs/ipv4/esp/rohc_largecid.pcap 1970-01-01 00:00:00 +0000 and test/non_regression/inputs/ipv4/esp/rohc_largecid.pcap 2012-05-31 18:56:19 +0000 differ
=== added file 'test/non_regression/inputs/ipv4/esp/rohc_sizes_largecid'
--- test/non_regression/inputs/ipv4/esp/rohc_sizes_largecid 1970-01-01 00:00:00 +0000
+++ test/non_regression/inputs/ipv4/esp/rohc_sizes_largecid 2012-05-31 18:56:19 +0000
@@ -0,0 +1,624 @@
+compressor_num = 1 packet_num = 1 rohc_size = 184 packet_type = 0
+compressor_num = 2 packet_num = 1 rohc_size = 190 packet_type = 0
+compressor_num = 1 packet_num = 2 rohc_size = 190 packet_type = 0
+compressor_num = 2 packet_num = 2 rohc_size = 184 packet_type = 0
+compressor_num = 1 packet_num = 3 rohc_size = 184 packet_type = 0
+compressor_num = 2 packet_num = 3 rohc_size = 184 packet_type = 0
+compressor_num = 1 packet_num = 4 rohc_size = 170 packet_type = 1
+compressor_num = 2 packet_num = 4 rohc_size = 170 packet_type = 1
+compressor_num = 1 packet_num = 5 rohc_size = 170 packet_type = 1
+compressor_num = 2 packet_num = 5 rohc_size = 170 packet_type = 1
+compressor_num = 1 packet_num = 6 rohc_size = 170 packet_type = 1
+compressor_num = 2 packet_num = 6 rohc_size = 170 packet_type = 1
+compressor_num = 1 packet_num = 7 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 7 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 8 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 8 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 9 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 9 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 10 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 10 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 11 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 11 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 12 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 12 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 13 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 13 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 14 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 14 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 15 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 15 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 16 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 16 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 17 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 17 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 18 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 18 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 19 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 19 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 20 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 20 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 21 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 21 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 22 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 22 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 23 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 23 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 24 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 24 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 25 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 25 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 26 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 26 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 27 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 27 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 28 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 28 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 29 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 29 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 30 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 30 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 31 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 31 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 32 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 32 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 33 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 33 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 34 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 34 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 35 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 35 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 36 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 36 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 37 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 37 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 38 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 38 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 39 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 39 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 40 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 40 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 41 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 41 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 42 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 42 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 43 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 43 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 44 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 44 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 45 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 45 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 46 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 46 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 47 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 47 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 48 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 48 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 49 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 49 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 50 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 50 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 51 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 51 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 52 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 52 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 53 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 53 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 54 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 54 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 55 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 55 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 56 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 56 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 57 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 57 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 58 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 58 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 59 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 59 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 60 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 60 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 61 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 61 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 62 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 62 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 63 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 63 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 64 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 64 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 65 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 65 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 66 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 66 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 67 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 67 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 68 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 68 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 69 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 69 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 70 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 70 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 71 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 71 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 72 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 72 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 73 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 73 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 74 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 74 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 75 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 75 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 76 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 76 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 77 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 77 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 78 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 78 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 79 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 79 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 80 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 80 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 81 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 81 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 82 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 82 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 83 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 83 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 84 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 84 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 85 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 85 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 86 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 86 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 87 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 87 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 88 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 88 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 89 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 89 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 90 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 90 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 91 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 91 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 92 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 92 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 93 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 93 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 94 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 94 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 95 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 95 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 96 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 96 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 97 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 97 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 98 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 98 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 99 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 99 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 100 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 100 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 101 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 101 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 102 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 102 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 103 rohc_size = 163 packet_type = 7
+compressor_num = 2 packet_num = 103 rohc_size = 163 packet_type = 7
+compressor_num = 1 packet_num = 104 rohc_size = 163 packet_type = 7
+compressor_num = 2 packet_num = 104 rohc_size = 163 packet_type = 7
+compressor_num = 1 packet_num = 105 rohc_size = 163 packet_type = 7
+compressor_num = 2 packet_num = 105 rohc_size = 163 packet_type = 7
+compressor_num = 1 packet_num = 106 rohc_size = 163 packet_type = 7
+compressor_num = 2 packet_num = 106 rohc_size = 163 packet_type = 7
+compressor_num = 1 packet_num = 107 rohc_size = 161 packet_type = 7
+compressor_num = 2 packet_num = 107 rohc_size = 161 packet_type = 7
+compressor_num = 1 packet_num = 108 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 108 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 109 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 109 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 110 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 110 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 111 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 111 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 112 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 112 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 113 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 113 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 114 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 114 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 115 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 115 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 116 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 116 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 117 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 117 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 118 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 118 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 119 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 119 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 120 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 120 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 121 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 121 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 122 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 122 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 123 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 123 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 124 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 124 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 125 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 125 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 126 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 126 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 127 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 127 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 128 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 128 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 129 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 129 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 130 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 130 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 131 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 131 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 132 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 132 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 133 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 133 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 134 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 134 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 135 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 135 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 136 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 136 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 137 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 137 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 138 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 138 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 139 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 139 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 140 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 140 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 141 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 141 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 142 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 142 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 143 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 143 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 144 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 144 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 145 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 145 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 146 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 146 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 147 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 147 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 148 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 148 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 149 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 149 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 150 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 150 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 151 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 151 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 152 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 152 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 153 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 153 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 154 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 154 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 155 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 155 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 156 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 156 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 157 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 157 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 158 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 158 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 159 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 159 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 160 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 160 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 161 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 161 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 162 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 162 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 163 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 163 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 164 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 164 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 165 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 165 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 166 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 166 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 167 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 167 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 168 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 168 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 169 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 169 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 170 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 170 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 171 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 171 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 172 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 172 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 173 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 173 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 174 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 174 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 175 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 175 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 176 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 176 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 177 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 177 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 178 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 178 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 179 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 179 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 180 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 180 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 181 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 181 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 182 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 182 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 183 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 183 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 184 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 184 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 185 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 185 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 186 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 186 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 187 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 187 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 188 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 188 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 189 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 189 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 190 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 190 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 191 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 191 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 192 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 192 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 193 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 193 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 194 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 194 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 195 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 195 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 196 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 196 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 197 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 197 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 198 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 198 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 199 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 199 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 200 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 200 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 201 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 201 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 202 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 202 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 203 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 203 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 204 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 204 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 205 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 205 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 206 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 206 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 207 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 207 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 208 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 208 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 209 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 209 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 210 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 210 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 211 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 211 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 212 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 212 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 213 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 213 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 214 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 214 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 215 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 215 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 216 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 216 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 217 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 217 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 218 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 218 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 219 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 219 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 220 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 220 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 221 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 221 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 222 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 222 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 223 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 223 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 224 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 224 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 225 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 225 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 226 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 226 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 227 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 227 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 228 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 228 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 229 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 229 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 230 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 230 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 231 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 231 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 232 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 232 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 233 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 233 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 234 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 234 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 235 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 235 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 236 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 236 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 237 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 237 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 238 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 238 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 239 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 239 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 240 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 240 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 241 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 241 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 242 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 242 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 243 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 243 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 244 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 244 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 245 rohc_size = 163 packet_type = 7
+compressor_num = 2 packet_num = 245 rohc_size = 163 packet_type = 7
+compressor_num = 1 packet_num = 246 rohc_size = 163 packet_type = 7
+compressor_num = 2 packet_num = 246 rohc_size = 163 packet_type = 7
+compressor_num = 1 packet_num = 247 rohc_size = 163 packet_type = 7
+compressor_num = 2 packet_num = 247 rohc_size = 163 packet_type = 7
+compressor_num = 1 packet_num = 248 rohc_size = 163 packet_type = 7
+compressor_num = 2 packet_num = 248 rohc_size = 163 packet_type = 7
+compressor_num = 1 packet_num = 249 rohc_size = 161 packet_type = 7
+compressor_num = 2 packet_num = 249 rohc_size = 161 packet_type = 7
+compressor_num = 1 packet_num = 250 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 250 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 251 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 251 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 252 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 252 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 253 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 253 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 254 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 254 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 255 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 255 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 256 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 256 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 257 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 257 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 258 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 258 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 259 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 259 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 260 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 260 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 261 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 261 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 262 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 262 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 263 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 263 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 264 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 264 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 265 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 265 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 266 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 266 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 267 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 267 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 268 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 268 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 269 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 269 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 270 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 270 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 271 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 271 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 272 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 272 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 273 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 273 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 274 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 274 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 275 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 275 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 276 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 276 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 277 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 277 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 278 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 278 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 279 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 279 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 280 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 280 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 281 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 281 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 282 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 282 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 283 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 283 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 284 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 284 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 285 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 285 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 286 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 286 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 287 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 287 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 288 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 288 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 289 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 289 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 290 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 290 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 291 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 291 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 292 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 292 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 293 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 293 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 294 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 294 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 295 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 295 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 296 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 296 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 297 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 297 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 298 rohc_size = 163 packet_type = 7
+compressor_num = 2 packet_num = 298 rohc_size = 163 packet_type = 7
+compressor_num = 1 packet_num = 299 rohc_size = 163 packet_type = 7
+compressor_num = 2 packet_num = 299 rohc_size = 163 packet_type = 7
+compressor_num = 1 packet_num = 300 rohc_size = 163 packet_type = 7
+compressor_num = 2 packet_num = 300 rohc_size = 163 packet_type = 7
+compressor_num = 1 packet_num = 301 rohc_size = 163 packet_type = 7
+compressor_num = 2 packet_num = 301 rohc_size = 163 packet_type = 7
+compressor_num = 1 packet_num = 302 rohc_size = 161 packet_type = 7
+compressor_num = 2 packet_num = 302 rohc_size = 161 packet_type = 7
+compressor_num = 1 packet_num = 303 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 303 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 304 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 304 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 305 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 305 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 306 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 306 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 307 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 307 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 308 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 308 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 309 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 309 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 310 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 310 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 311 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 311 rohc_size = 160 packet_type = 2
+compressor_num = 1 packet_num = 312 rohc_size = 160 packet_type = 2
+compressor_num = 2 packet_num = 312 rohc_size = 160 packet_type = 2
=== added file 'test/non_regression/inputs/ipv4/esp/rohc_sizes_smallcid'
--- test/non_regression/inputs/ipv4/esp/rohc_sizes_smallcid 1970-01-01 00:00:00 +0000
+++ test/non_regression/inputs/ipv4/esp/rohc_sizes_smallcid 2012-05-31 18:56:15 +0000
@@ -0,0 +1,624 @@
+compressor_num = 1 packet_num = 1 rohc_size = 183 packet_type = 0
+compressor_num = 2 packet_num = 1 rohc_size = 188 packet_type = 0
+compressor_num = 1 packet_num = 2 rohc_size = 188 packet_type = 0
+compressor_num = 2 packet_num = 2 rohc_size = 183 packet_type = 0
+compressor_num = 1 packet_num = 3 rohc_size = 183 packet_type = 0
+compressor_num = 2 packet_num = 3 rohc_size = 183 packet_type = 0
+compressor_num = 1 packet_num = 4 rohc_size = 169 packet_type = 1
+compressor_num = 2 packet_num = 4 rohc_size = 169 packet_type = 1
+compressor_num = 1 packet_num = 5 rohc_size = 169 packet_type = 1
+compressor_num = 2 packet_num = 5 rohc_size = 169 packet_type = 1
+compressor_num = 1 packet_num = 6 rohc_size = 169 packet_type = 1
+compressor_num = 2 packet_num = 6 rohc_size = 169 packet_type = 1
+compressor_num = 1 packet_num = 7 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 7 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 8 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 8 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 9 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 9 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 10 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 10 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 11 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 11 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 12 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 12 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 13 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 13 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 14 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 14 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 15 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 15 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 16 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 16 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 17 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 17 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 18 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 18 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 19 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 19 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 20 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 20 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 21 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 21 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 22 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 22 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 23 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 23 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 24 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 24 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 25 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 25 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 26 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 26 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 27 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 27 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 28 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 28 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 29 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 29 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 30 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 30 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 31 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 31 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 32 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 32 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 33 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 33 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 34 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 34 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 35 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 35 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 36 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 36 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 37 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 37 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 38 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 38 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 39 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 39 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 40 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 40 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 41 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 41 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 42 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 42 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 43 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 43 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 44 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 44 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 45 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 45 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 46 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 46 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 47 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 47 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 48 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 48 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 49 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 49 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 50 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 50 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 51 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 51 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 52 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 52 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 53 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 53 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 54 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 54 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 55 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 55 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 56 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 56 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 57 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 57 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 58 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 58 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 59 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 59 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 60 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 60 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 61 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 61 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 62 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 62 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 63 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 63 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 64 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 64 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 65 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 65 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 66 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 66 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 67 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 67 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 68 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 68 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 69 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 69 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 70 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 70 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 71 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 71 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 72 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 72 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 73 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 73 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 74 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 74 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 75 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 75 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 76 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 76 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 77 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 77 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 78 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 78 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 79 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 79 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 80 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 80 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 81 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 81 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 82 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 82 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 83 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 83 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 84 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 84 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 85 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 85 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 86 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 86 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 87 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 87 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 88 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 88 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 89 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 89 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 90 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 90 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 91 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 91 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 92 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 92 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 93 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 93 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 94 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 94 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 95 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 95 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 96 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 96 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 97 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 97 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 98 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 98 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 99 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 99 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 100 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 100 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 101 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 101 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 102 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 102 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 103 rohc_size = 162 packet_type = 7
+compressor_num = 2 packet_num = 103 rohc_size = 162 packet_type = 7
+compressor_num = 1 packet_num = 104 rohc_size = 162 packet_type = 7
+compressor_num = 2 packet_num = 104 rohc_size = 162 packet_type = 7
+compressor_num = 1 packet_num = 105 rohc_size = 162 packet_type = 7
+compressor_num = 2 packet_num = 105 rohc_size = 162 packet_type = 7
+compressor_num = 1 packet_num = 106 rohc_size = 162 packet_type = 7
+compressor_num = 2 packet_num = 106 rohc_size = 162 packet_type = 7
+compressor_num = 1 packet_num = 107 rohc_size = 160 packet_type = 7
+compressor_num = 2 packet_num = 107 rohc_size = 160 packet_type = 7
+compressor_num = 1 packet_num = 108 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 108 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 109 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 109 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 110 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 110 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 111 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 111 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 112 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 112 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 113 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 113 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 114 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 114 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 115 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 115 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 116 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 116 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 117 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 117 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 118 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 118 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 119 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 119 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 120 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 120 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 121 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 121 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 122 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 122 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 123 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 123 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 124 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 124 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 125 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 125 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 126 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 126 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 127 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 127 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 128 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 128 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 129 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 129 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 130 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 130 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 131 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 131 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 132 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 132 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 133 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 133 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 134 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 134 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 135 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 135 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 136 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 136 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 137 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 137 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 138 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 138 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 139 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 139 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 140 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 140 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 141 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 141 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 142 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 142 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 143 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 143 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 144 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 144 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 145 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 145 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 146 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 146 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 147 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 147 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 148 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 148 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 149 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 149 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 150 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 150 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 151 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 151 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 152 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 152 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 153 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 153 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 154 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 154 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 155 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 155 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 156 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 156 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 157 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 157 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 158 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 158 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 159 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 159 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 160 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 160 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 161 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 161 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 162 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 162 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 163 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 163 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 164 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 164 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 165 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 165 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 166 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 166 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 167 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 167 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 168 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 168 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 169 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 169 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 170 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 170 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 171 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 171 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 172 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 172 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 173 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 173 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 174 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 174 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 175 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 175 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 176 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 176 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 177 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 177 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 178 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 178 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 179 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 179 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 180 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 180 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 181 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 181 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 182 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 182 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 183 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 183 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 184 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 184 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 185 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 185 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 186 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 186 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 187 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 187 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 188 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 188 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 189 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 189 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 190 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 190 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 191 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 191 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 192 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 192 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 193 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 193 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 194 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 194 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 195 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 195 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 196 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 196 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 197 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 197 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 198 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 198 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 199 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 199 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 200 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 200 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 201 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 201 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 202 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 202 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 203 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 203 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 204 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 204 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 205 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 205 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 206 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 206 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 207 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 207 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 208 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 208 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 209 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 209 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 210 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 210 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 211 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 211 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 212 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 212 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 213 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 213 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 214 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 214 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 215 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 215 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 216 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 216 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 217 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 217 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 218 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 218 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 219 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 219 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 220 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 220 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 221 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 221 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 222 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 222 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 223 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 223 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 224 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 224 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 225 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 225 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 226 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 226 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 227 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 227 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 228 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 228 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 229 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 229 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 230 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 230 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 231 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 231 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 232 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 232 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 233 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 233 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 234 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 234 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 235 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 235 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 236 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 236 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 237 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 237 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 238 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 238 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 239 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 239 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 240 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 240 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 241 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 241 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 242 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 242 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 243 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 243 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 244 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 244 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 245 rohc_size = 162 packet_type = 7
+compressor_num = 2 packet_num = 245 rohc_size = 162 packet_type = 7
+compressor_num = 1 packet_num = 246 rohc_size = 162 packet_type = 7
+compressor_num = 2 packet_num = 246 rohc_size = 162 packet_type = 7
+compressor_num = 1 packet_num = 247 rohc_size = 162 packet_type = 7
+compressor_num = 2 packet_num = 247 rohc_size = 162 packet_type = 7
+compressor_num = 1 packet_num = 248 rohc_size = 162 packet_type = 7
+compressor_num = 2 packet_num = 248 rohc_size = 162 packet_type = 7
+compressor_num = 1 packet_num = 249 rohc_size = 160 packet_type = 7
+compressor_num = 2 packet_num = 249 rohc_size = 160 packet_type = 7
+compressor_num = 1 packet_num = 250 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 250 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 251 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 251 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 252 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 252 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 253 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 253 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 254 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 254 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 255 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 255 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 256 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 256 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 257 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 257 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 258 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 258 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 259 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 259 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 260 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 260 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 261 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 261 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 262 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 262 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 263 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 263 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 264 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 264 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 265 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 265 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 266 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 266 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 267 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 267 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 268 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 268 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 269 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 269 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 270 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 270 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 271 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 271 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 272 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 272 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 273 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 273 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 274 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 274 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 275 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 275 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 276 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 276 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 277 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 277 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 278 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 278 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 279 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 279 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 280 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 280 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 281 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 281 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 282 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 282 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 283 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 283 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 284 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 284 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 285 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 285 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 286 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 286 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 287 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 287 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 288 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 288 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 289 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 289 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 290 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 290 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 291 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 291 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 292 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 292 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 293 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 293 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 294 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 294 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 295 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 295 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 296 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 296 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 297 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 297 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 298 rohc_size = 162 packet_type = 7
+compressor_num = 2 packet_num = 298 rohc_size = 162 packet_type = 7
+compressor_num = 1 packet_num = 299 rohc_size = 162 packet_type = 7
+compressor_num = 2 packet_num = 299 rohc_size = 162 packet_type = 7
+compressor_num = 1 packet_num = 300 rohc_size = 162 packet_type = 7
+compressor_num = 2 packet_num = 300 rohc_size = 162 packet_type = 7
+compressor_num = 1 packet_num = 301 rohc_size = 162 packet_type = 7
+compressor_num = 2 packet_num = 301 rohc_size = 162 packet_type = 7
+compressor_num = 1 packet_num = 302 rohc_size = 160 packet_type = 7
+compressor_num = 2 packet_num = 302 rohc_size = 160 packet_type = 7
+compressor_num = 1 packet_num = 303 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 303 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 304 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 304 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 305 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 305 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 306 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 306 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 307 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 307 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 308 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 308 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 309 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 309 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 310 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 310 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 311 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 311 rohc_size = 159 packet_type = 2
+compressor_num = 1 packet_num = 312 rohc_size = 159 packet_type = 2
+compressor_num = 2 packet_num = 312 rohc_size = 159 packet_type = 2
=== added file 'test/non_regression/inputs/ipv4/esp/rohc_smallcid.pcap'
Binary files test/non_regression/inputs/ipv4/esp/rohc_smallcid.pcap 1970-01-01 00:00:00 +0000 and test/non_regression/inputs/ipv4/esp/rohc_smallcid.pcap 2012-05-31 18:56:15 +0000 differ
=== added file 'test/non_regression/inputs/ipv4/esp/source.pcap'
Binary files test/non_regression/inputs/ipv4/esp/source.pcap 1970-01-01 00:00:00 +0000 and test/non_regression/inputs/ipv4/esp/source.pcap 2012-05-29 19:48:30 +0000 differ
=== added directory 'test/non_regression/inputs/ipv6/esp'
=== added file 'test/non_regression/inputs/ipv6/esp/description'
--- test/non_regression/inputs/ipv6/esp/description 1970-01-01 00:00:00 +0000
+++ test/non_regression/inputs/ipv6/esp/description 2012-05-29 19:48:30 +0000
@@ -0,0 +1,3 @@
+Test the ESP profile with IPv6/ESP packets
+
+The capture was downloaded from the wireshark wiki.
=== added file 'test/non_regression/inputs/ipv6/esp/rohc_largecid.pcap'
Binary files test/non_regression/inputs/ipv6/esp/rohc_largecid.pcap 1970-01-01 00:00:00 +0000 and test/non_regression/inputs/ipv6/esp/rohc_largecid.pcap 2012-05-31 18:56:22 +0000 differ
=== added file 'test/non_regression/inputs/ipv6/esp/rohc_sizes_largecid'
--- test/non_regression/inputs/ipv6/esp/rohc_sizes_largecid 1970-01-01 00:00:00 +0000
+++ test/non_regression/inputs/ipv6/esp/rohc_sizes_largecid 2012-05-31 18:56:22 +0000
@@ -0,0 +1,144 @@
+compressor_num = 1 packet_num = 1 rohc_size = 143 packet_type = 0
+compressor_num = 2 packet_num = 1 rohc_size = 149 packet_type = 0
+compressor_num = 1 packet_num = 2 rohc_size = 149 packet_type = 0
+compressor_num = 2 packet_num = 2 rohc_size = 143 packet_type = 0
+compressor_num = 1 packet_num = 3 rohc_size = 143 packet_type = 0
+compressor_num = 2 packet_num = 3 rohc_size = 143 packet_type = 0
+compressor_num = 1 packet_num = 4 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 4 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 5 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 5 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 6 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 6 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 7 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 7 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 8 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 8 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 9 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 9 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 10 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 10 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 11 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 11 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 12 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 12 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 13 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 13 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 14 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 14 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 15 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 15 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 16 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 16 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 17 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 17 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 18 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 18 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 19 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 19 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 20 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 20 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 21 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 21 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 22 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 22 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 23 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 23 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 24 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 24 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 25 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 25 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 26 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 26 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 27 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 27 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 28 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 28 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 29 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 29 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 30 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 30 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 31 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 31 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 32 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 32 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 33 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 33 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 34 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 34 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 35 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 35 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 36 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 36 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 37 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 37 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 38 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 38 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 39 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 39 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 40 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 40 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 41 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 41 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 42 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 42 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 43 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 43 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 44 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 44 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 45 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 45 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 46 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 46 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 47 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 47 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 48 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 48 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 49 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 49 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 50 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 50 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 51 rohc_size = 143 packet_type = 0
+compressor_num = 2 packet_num = 51 rohc_size = 149 packet_type = 0
+compressor_num = 1 packet_num = 52 rohc_size = 149 packet_type = 0
+compressor_num = 2 packet_num = 52 rohc_size = 143 packet_type = 0
+compressor_num = 1 packet_num = 53 rohc_size = 143 packet_type = 0
+compressor_num = 2 packet_num = 53 rohc_size = 143 packet_type = 0
+compressor_num = 1 packet_num = 54 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 54 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 55 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 55 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 56 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 56 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 57 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 57 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 58 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 58 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 59 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 59 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 60 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 60 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 61 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 61 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 62 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 62 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 63 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 63 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 64 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 64 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 65 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 65 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 66 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 66 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 67 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 67 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 68 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 68 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 69 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 69 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 70 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 70 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 71 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 71 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 72 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 72 rohc_size = 94 packet_type = 2
=== added file 'test/non_regression/inputs/ipv6/esp/rohc_sizes_smallcid'
--- test/non_regression/inputs/ipv6/esp/rohc_sizes_smallcid 1970-01-01 00:00:00 +0000
+++ test/non_regression/inputs/ipv6/esp/rohc_sizes_smallcid 2012-05-31 18:56:26 +0000
@@ -0,0 +1,144 @@
+compressor_num = 1 packet_num = 1 rohc_size = 142 packet_type = 0
+compressor_num = 2 packet_num = 1 rohc_size = 147 packet_type = 0
+compressor_num = 1 packet_num = 2 rohc_size = 147 packet_type = 0
+compressor_num = 2 packet_num = 2 rohc_size = 142 packet_type = 0
+compressor_num = 1 packet_num = 3 rohc_size = 142 packet_type = 0
+compressor_num = 2 packet_num = 3 rohc_size = 142 packet_type = 0
+compressor_num = 1 packet_num = 4 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 4 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 5 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 5 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 6 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 6 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 7 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 7 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 8 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 8 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 9 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 9 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 10 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 10 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 11 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 11 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 12 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 12 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 13 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 13 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 14 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 14 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 15 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 15 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 16 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 16 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 17 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 17 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 18 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 18 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 19 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 19 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 20 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 20 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 21 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 21 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 22 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 22 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 23 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 23 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 24 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 24 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 25 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 25 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 26 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 26 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 27 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 27 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 28 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 28 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 29 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 29 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 30 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 30 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 31 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 31 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 32 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 32 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 33 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 33 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 34 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 34 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 35 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 35 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 36 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 36 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 37 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 37 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 38 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 38 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 39 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 39 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 40 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 40 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 41 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 41 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 42 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 42 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 43 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 43 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 44 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 44 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 45 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 45 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 46 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 46 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 47 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 47 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 48 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 48 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 49 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 49 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 50 rohc_size = 93 packet_type = 2
+compressor_num = 2 packet_num = 50 rohc_size = 93 packet_type = 2
+compressor_num = 1 packet_num = 51 rohc_size = 143 packet_type = 0
+compressor_num = 2 packet_num = 51 rohc_size = 149 packet_type = 0
+compressor_num = 1 packet_num = 52 rohc_size = 149 packet_type = 0
+compressor_num = 2 packet_num = 52 rohc_size = 143 packet_type = 0
+compressor_num = 1 packet_num = 53 rohc_size = 143 packet_type = 0
+compressor_num = 2 packet_num = 53 rohc_size = 143 packet_type = 0
+compressor_num = 1 packet_num = 54 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 54 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 55 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 55 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 56 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 56 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 57 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 57 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 58 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 58 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 59 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 59 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 60 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 60 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 61 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 61 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 62 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 62 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 63 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 63 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 64 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 64 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 65 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 65 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 66 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 66 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 67 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 67 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 68 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 68 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 69 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 69 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 70 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 70 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 71 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 71 rohc_size = 94 packet_type = 2
+compressor_num = 1 packet_num = 72 rohc_size = 94 packet_type = 2
+compressor_num = 2 packet_num = 72 rohc_size = 94 packet_type = 2
=== added file 'test/non_regression/inputs/ipv6/esp/rohc_smallcid.pcap'
Binary files test/non_regression/inputs/ipv6/esp/rohc_smallcid.pcap 1970-01-01 00:00:00 +0000 and test/non_regression/inputs/ipv6/esp/rohc_smallcid.pcap 2012-05-31 18:56:26 +0000 differ
=== added file 'test/non_regression/inputs/ipv6/esp/source.pcap'
Binary files test/non_regression/inputs/ipv6/esp/source.pcap 1970-01-01 00:00:00 +0000 and test/non_regression/inputs/ipv6/esp/source.pcap 2012-05-29 19:48:30 +0000 differ
=== modified file 'test/non_regression/test_non_regression.c'
--- test/non_regression/test_non_regression.c 2012-05-26 20:01:08 +0000
+++ test/non_regression/test_non_regression.c 2012-05-29 19:48:30 +0000
@@ -852,6 +852,7 @@
rohc_activate_profile(comp1, ROHC_PROFILE_IP);
rohc_activate_profile(comp1, ROHC_PROFILE_UDPLITE);
rohc_activate_profile(comp1, ROHC_PROFILE_RTP);
+ rohc_activate_profile(comp1, ROHC_PROFILE_ESP);
rohc_c_set_large_cid(comp1, use_large_cid);
/* set the callback for random numbers on compressor 1 */
@@ -879,6 +880,7 @@
rohc_activate_profile(comp2, ROHC_PROFILE_IP);
rohc_activate_profile(comp2, ROHC_PROFILE_UDPLITE);
rohc_activate_profile(comp2, ROHC_PROFILE_RTP);
+ rohc_activate_profile(comp2, ROHC_PROFILE_ESP);
rohc_c_set_large_cid(comp2, use_large_cid);
/* set the callback for random numbers on compressor 2 */
=== added symlink 'test/non_regression/test_non_regression_ipv4_esp_largecid.sh'
=== target is u'test_non_regression.sh'
=== added symlink 'test/non_regression/test_non_regression_ipv4_esp_smallcid.sh'
=== target is u'test_non_regression.sh'
=== added symlink 'test/non_regression/test_non_regression_ipv6_esp_largecid.sh'
=== target is u'test_non_regression.sh'
=== added symlink 'test/non_regression/test_non_regression_ipv6_esp_smallcid.sh'
=== target is u'test_non_regression.sh'
=== modified file 'test/robustness/empty_payload/test_empty_payload.c'
--- test/robustness/empty_payload/test_empty_payload.c 2012-05-26 20:01:08 +0000
+++ test/robustness/empty_payload/test_empty_payload.c 2012-05-29 19:48:30 +0000
@@ -317,6 +317,7 @@
rohc_activate_profile(comp, ROHC_PROFILE_IP);
rohc_activate_profile(comp, ROHC_PROFILE_UDPLITE);
rohc_activate_profile(comp, ROHC_PROFILE_RTP);
+ rohc_activate_profile(comp, ROHC_PROFILE_ESP);
}
/* create the ROHC decompressor in unidirectional mode */
=== modified file 'test/robustness/piggybacking_feedback/test_piggybacking_feedback.c'
--- test/robustness/piggybacking_feedback/test_piggybacking_feedback.c 2012-05-26 20:01:08 +0000
+++ test/robustness/piggybacking_feedback/test_piggybacking_feedback.c 2012-05-29 19:48:30 +0000
@@ -182,6 +182,7 @@
rohc_activate_profile(compA, ROHC_PROFILE_IP);
rohc_activate_profile(compA, ROHC_PROFILE_UDPLITE);
rohc_activate_profile(compA, ROHC_PROFILE_RTP);
+ rohc_activate_profile(compA, ROHC_PROFILE_ESP);
/* set the callback for random numbers on compressor A */
if(!rohc_comp_set_random_cb(compA, gen_random_num, NULL))
@@ -204,6 +205,7 @@
rohc_activate_profile(compB, ROHC_PROFILE_IP);
rohc_activate_profile(compB, ROHC_PROFILE_UDPLITE);
rohc_activate_profile(compB, ROHC_PROFILE_RTP);
+ rohc_activate_profile(compB, ROHC_PROFILE_ESP);
/* set the callback for random numbers on compressor B */
if(!rohc_comp_set_random_cb(compB, gen_random_num, NULL))
Attachment:
signature.asc
Description: PGP signature
References