ROHC compression/decompression library
Functions
d_tcp_replicate.c File Reference

Handle the replicate chain of the TCP decompression profile. More...

#include "d_tcp_replicate.h"
#include "d_tcp_defines.h"
#include "d_tcp_opts_list.h"
#include "schemes/rfc4996.h"
#include "rohc_bit_ops.h"
#include "rohc_utils.h"
#include "protocols/ip_numbers.h"
#include <string.h>
Include dependency graph for d_tcp_replicate.c:

Functions

static int tcp_parse_replicate_ip (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_tcp_extr_ip_bits *const ip_bits)
 Decode the replicate IP header of the rohc packet. More...
 
static int tcp_parse_replicate_ipv6_option (const struct rohc_decomp_ctxt *const context, ip_option_context_t *const opt_context, const uint8_t *const rohc_packet, const size_t rohc_length)
 Decode the replicate IPv6 option header of the rohc packet. More...
 
static int tcp_parse_replicate_tcp (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_tcp_extr_bits *const bits)
 Decode the TCP replicate part of the ROHC packet. More...
 
bool tcp_parse_replicate_chain (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_tcp_extr_bits *const bits, size_t *const parsed_len)
 Parse the replicate chain of the IR-CR packet. More...
 

Detailed Description

Handle the replicate chain of the TCP decompression profile.

Author
Didier Barvaux didie.nosp@m.r@ba.nosp@m.rvaux.nosp@m..org

Function Documentation

◆ tcp_parse_replicate_chain()

bool tcp_parse_replicate_chain ( const struct rohc_decomp_ctxt *const  context,
const uint8_t *const  rohc_packet,
const size_t  rohc_length,
struct rohc_tcp_extr_bits *const  bits,
size_t *const  parsed_len 
)

Parse the replicate chain of the IR-CR packet.

Parameters
contextThe decompression context
rohc_packetThe remaining part of the ROHC packet
rohc_lengthThe remaining length (in bytes) of the ROHC packet
[out]bitsThe bits extracted from the replicate chain
[out]parsed_lenThe length (in bytes) of replicate chain in case of success
Returns
true in the replicate chain was successfully parsed, false if the ROHC packet was malformed

◆ tcp_parse_replicate_ip()

static int tcp_parse_replicate_ip ( const struct rohc_decomp_ctxt *const  context,
const uint8_t *const  rohc_packet,
const size_t  rohc_length,
struct rohc_tcp_extr_ip_bits *const  ip_bits 
)
static

Decode the replicate IP header of the rohc packet.

Parameters
contextThe decompression context
rohc_packetThe remaining part of the ROHC packet
rohc_lengthThe remaining length (in bytes) of the ROHC packet
[out]ip_bitsThe bits extracted from the IP part of the replicate chain
Returns
The length of replicate IP header in case of success, -1 if an error occurs

◆ tcp_parse_replicate_ipv6_option()

static int tcp_parse_replicate_ipv6_option ( const struct rohc_decomp_ctxt *const  context,
ip_option_context_t *const  opt_context,
const uint8_t *const  rohc_packet,
const size_t  rohc_length 
)
static

Decode the replicate IPv6 option header of the rohc packet.

Parameters
contextThe decompression context
[out]opt_contextThe specific IPv6 option decompression context
rohc_packetThe remaining part of the ROHC packet
rohc_lengthThe remaining length (in bytes) of the ROHC packet
Returns
The length of replicate IP header in case of success, -1 if an error occurs

◆ tcp_parse_replicate_tcp()

static int tcp_parse_replicate_tcp ( const struct rohc_decomp_ctxt *const  context,
const uint8_t *const  rohc_packet,
const size_t  rohc_length,
struct rohc_tcp_extr_bits *const  bits 
)
static

Decode the TCP replicate part of the ROHC packet.

Parameters
contextThe decompression context
rohc_packetThe remaining part of the ROHC packet
rohc_lengthThe remaining length (in bytes) of the ROHC packet
[out]bitsThe bits extracted from the CO packet
Returns
The number of bytes read in the ROHC packet, -1 in case of failure