ROHC compression/decompression library
Data Fields
rohc_decomp_rfc3095_ctxt Struct Reference

The generic decompression context for RFC3095-based profiles. More...

#include <rohc_decomp_rfc3095.h>

Collaboration diagram for rohc_decomp_rfc3095_ctxt:
Collaboration graph
[legend]

Data Fields

struct rohc_decomp_rfc3095_changesouter_ip_changes
 Information about the outer IP header. More...
 
struct rohc_decomp_rfc3095_changesinner_ip_changes
 Information about the inner IP header. More...
 
rohc_lsb_shift_t sn_lsb_p
 
struct rohc_lsb_decode sn_lsb_ctxt
 The LSB decoding context for the Sequence Number (SN) More...
 
struct ip_id_offset_decode outer_ip_id_offset_ctxt
 The IP-ID of the outer IP header. More...
 
struct ip_id_offset_decode inner_ip_id_offset_ctxt
 The IP-ID of the inner IP header. More...
 
struct list_decomp list_decomp1
 The list decompressor of the outer IP header. More...
 
struct list_decomp list_decomp2
 The list decompressor of the inner IP header. More...
 
int multiple_ip
 Whether the decompressed packet contains a 2nd IP header. More...
 
bool is_crc_static_3_cached_valid
 
uint8_t crc_static_3_cached
 
bool is_crc_static_7_cached_valid
 
uint8_t crc_static_7_cached
 
unsigned short next_header_proto
 The IP protocol ID of the protocol the context is able to decompress. More...
 
unsigned int next_header_len
 The length of the next header. More...
 
int(* parse_static_next_hdr )(const struct rohc_decomp_ctxt *const context, const uint8_t *packet, size_t length, struct rohc_extr_bits *const bits)
 The handler used to parse the static part of the next header in the ROHC packet. More...
 
int(* parse_dyn_next_hdr )(const struct rohc_decomp_ctxt *const context, const uint8_t *packet, const size_t length, struct rohc_extr_bits *const bits)
 The handler used to parse the dynamic part of the next header in the ROHC packet. More...
 
int(* parse_ext3 )(const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_data, const size_t rohc_data_len, const rohc_packet_t packet_type, struct rohc_extr_bits *const bits)
 The handler used to parse the extension 3 of the UO* ROHC packet. More...
 
int(* parse_uo_remainder )(const struct rohc_decomp_ctxt *const context, const uint8_t *packet, unsigned int length, struct rohc_extr_bits *const bits)
 The handler used to parse the tail of the UO* ROHC packet. More...
 
bool(* decode_values_from_bits )(const struct rohc_decomp_ctxt *context, const struct rohc_extr_bits *const bits, struct rohc_decoded_values *const decoded)
 
int(* build_next_header )(const struct rohc_decomp_ctxt *const context, const struct rohc_decoded_values *const decoded, uint8_t *const dest, const unsigned int payload_len)
 
uint8_t(* compute_crc_static )(const uint8_t *const ip, const uint8_t *const ip2, const uint8_t *const next_header, const rohc_crc_type_t crc_type, const uint8_t init_val, const uint8_t *const crc_table)
 The handler used to compute the CRC-STATIC value. More...
 
uint8_t(* compute_crc_dynamic )(const uint8_t *const ip, const uint8_t *const ip2, const uint8_t *const next_header, const rohc_crc_type_t crc_type, const uint8_t init_val, const uint8_t *const crc_table)
 The handler used to compute the CRC-DYNAMIC value. More...
 
void(* update_context )(struct rohc_decomp_ctxt *const context, const struct rohc_decoded_values *const decoded)
 
void * specific
 Profile-specific data. More...
 

Detailed Description

The generic decompression context for RFC3095-based profiles.

The object defines the generic context that manages IP(/nextheader) and IP/IP(/nextheader) packets. nextheader is managed by the profile-specific part of the context.

Field Documentation

◆ build_next_header

int(* rohc_decomp_rfc3095_ctxt::build_next_header) (const struct rohc_decomp_ctxt *const context, const struct rohc_decoded_values *const decoded, uint8_t *const dest, const unsigned int payload_len)

The handler used to build the uncompressed next header

◆ compute_crc_dynamic

uint8_t(* rohc_decomp_rfc3095_ctxt::compute_crc_dynamic) (const uint8_t *const ip, const uint8_t *const ip2, const uint8_t *const next_header, const rohc_crc_type_t crc_type, const uint8_t init_val, const uint8_t *const crc_table)

The handler used to compute the CRC-DYNAMIC value.

◆ compute_crc_static

uint8_t(* rohc_decomp_rfc3095_ctxt::compute_crc_static) (const uint8_t *const ip, const uint8_t *const ip2, const uint8_t *const next_header, const rohc_crc_type_t crc_type, const uint8_t init_val, const uint8_t *const crc_table)

The handler used to compute the CRC-STATIC value.

◆ crc_static_3_cached

uint8_t rohc_decomp_rfc3095_ctxt::crc_static_3_cached

The cache for the CRC-3 value on CRC-STATIC fields

◆ crc_static_7_cached

uint8_t rohc_decomp_rfc3095_ctxt::crc_static_7_cached

The cache for the CRC-7 value on CRC-STATIC fields

◆ decode_values_from_bits

bool(* rohc_decomp_rfc3095_ctxt::decode_values_from_bits) (const struct rohc_decomp_ctxt *context, const struct rohc_extr_bits *const bits, struct rohc_decoded_values *const decoded)

The handler used to decode extracted for next header

◆ inner_ip_changes

struct rohc_decomp_rfc3095_changes* rohc_decomp_rfc3095_ctxt::inner_ip_changes

Information about the inner IP header.

◆ inner_ip_id_offset_ctxt

struct ip_id_offset_decode rohc_decomp_rfc3095_ctxt::inner_ip_id_offset_ctxt

The IP-ID of the inner IP header.

◆ is_crc_static_3_cached_valid

bool rohc_decomp_rfc3095_ctxt::is_crc_static_3_cached_valid

Whether the cache for the CRC-3 value on CRC-STATIC fields is initialized or not

◆ is_crc_static_7_cached_valid

bool rohc_decomp_rfc3095_ctxt::is_crc_static_7_cached_valid

Whether the cache for the CRC-7 value on CRC-STATIC fields is initialized or not

◆ list_decomp1

struct list_decomp rohc_decomp_rfc3095_ctxt::list_decomp1

The list decompressor of the outer IP header.

◆ list_decomp2

struct list_decomp rohc_decomp_rfc3095_ctxt::list_decomp2

The list decompressor of the inner IP header.

◆ multiple_ip

int rohc_decomp_rfc3095_ctxt::multiple_ip

Whether the decompressed packet contains a 2nd IP header.

◆ next_header_len

unsigned int rohc_decomp_rfc3095_ctxt::next_header_len

The length of the next header.

◆ next_header_proto

unsigned short rohc_decomp_rfc3095_ctxt::next_header_proto

The IP protocol ID of the protocol the context is able to decompress.

◆ outer_ip_changes

struct rohc_decomp_rfc3095_changes* rohc_decomp_rfc3095_ctxt::outer_ip_changes

Information about the outer IP header.

◆ outer_ip_id_offset_ctxt

struct ip_id_offset_decode rohc_decomp_rfc3095_ctxt::outer_ip_id_offset_ctxt

The IP-ID of the outer IP header.

◆ parse_dyn_next_hdr

int(* rohc_decomp_rfc3095_ctxt::parse_dyn_next_hdr) (const struct rohc_decomp_ctxt *const context, const uint8_t *packet, const size_t length, struct rohc_extr_bits *const bits)

The handler used to parse the dynamic part of the next header in the ROHC packet.

◆ parse_ext3

int(* rohc_decomp_rfc3095_ctxt::parse_ext3) (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_data, const size_t rohc_data_len, const rohc_packet_t packet_type, struct rohc_extr_bits *const bits)

The handler used to parse the extension 3 of the UO* ROHC packet.

Parameters
contextThe decompression context
rohc_dataThe ROHC data to parse
rohc_data_lenThe length of the ROHC data to parse
packet_typeThe type of ROHC packet to parse
bitsIN: the bits already found in base header OUT: the bits found in the extension header 3
Returns
The data length read from the ROHC packet, -2 in case packet must be reparsed, -1 in case of error

◆ parse_static_next_hdr

int(* rohc_decomp_rfc3095_ctxt::parse_static_next_hdr) (const struct rohc_decomp_ctxt *const context, const uint8_t *packet, size_t length, struct rohc_extr_bits *const bits)

The handler used to parse the static part of the next header in the ROHC packet.

◆ parse_uo_remainder

int(* rohc_decomp_rfc3095_ctxt::parse_uo_remainder) (const struct rohc_decomp_ctxt *const context, const uint8_t *packet, unsigned int length, struct rohc_extr_bits *const bits)

The handler used to parse the tail of the UO* ROHC packet.

◆ sn_lsb_ctxt

struct rohc_lsb_decode rohc_decomp_rfc3095_ctxt::sn_lsb_ctxt

The LSB decoding context for the Sequence Number (SN)

◆ sn_lsb_p

rohc_lsb_shift_t rohc_decomp_rfc3095_ctxt::sn_lsb_p

The LSB shift parameter for the Sequence Number (SN)

◆ specific

void* rohc_decomp_rfc3095_ctxt::specific

Profile-specific data.

◆ update_context

void(* rohc_decomp_rfc3095_ctxt::update_context) (struct rohc_decomp_ctxt *const context, const struct rohc_decoded_values *const decoded)

The handler used to update context with decoded next header fields


The documentation for this struct was generated from the following file: