ROHC compression/decompression library
Data Fields
d_generic_context Struct Reference

The generic decompression context. More...

#include <d_generic.h>

Collaboration diagram for d_generic_context:
Collaboration graph
[legend]

Data Fields

struct d_generic_changesouter_ip_changes
 Information about the outer IP header.
struct d_generic_changesinner_ip_changes
 Information about the inner IP header.
struct rohc_lsb_decodesn_lsb_ctxt
 The LSB decoding context for the Sequence Number (SN)
struct ip_id_offset_decodeouter_ip_id_offset_ctxt
 The IP-ID of the outer IP header.
struct ip_id_offset_decodeinner_ip_id_offset_ctxt
 The IP-ID of the inner IP header.
struct list_decomp list_decomp1
 The list decompressor of the outer IP header.
struct list_decomp list_decomp2
 The list decompressor of the inner IP header.
int multiple_ip
 Whether the decompressed packet contains a 2nd IP header.
unsigned short next_header_proto
 The IP protocol ID of the protocol the context is able to decompress.
unsigned int next_header_len
 The length of the next header.
int(* parse_static_next_hdr )(const struct rohc_decomp_ctxt *const context, const unsigned char *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.
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.
int(* parse_ext3 )(const struct rohc_decomp_ctxt *const context, const unsigned char *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.
int(* parse_uo_remainder )(const struct rohc_decomp_ctxt *const context, const unsigned char *packet, unsigned int length, struct rohc_extr_bits *const bits)
 The handler used to parse the tail of the UO* ROHC packet.
bool(* decode_values_from_bits )(const struct rohc_decomp_ctxt *context, const struct rohc_extr_bits bits, struct rohc_decoded_values *const decoded)
int(* build_next_header )(const struct rohc_decomp_ctxt *const context, const struct rohc_decoded_values decoded, unsigned char *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.
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.
void(* update_context )(const struct rohc_decomp_ctxt *context, const struct rohc_decoded_values decoded)
void * specific
 Profile-specific data.
rohc_decomp_crc_corr_t crc_corr
size_t correction_counter
struct rohc_ts arrival_times [ROHC_MAX_ARRIVAL_TIMES]
size_t arrival_times_nr
size_t arrival_times_index
struct rohc_ts cur_arrival_time

Detailed Description

The generic decompression context.

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

The arrival times for the last packets

The index for the arrival time of the next packet

The number of arrival times in arrival_times

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

The handler used to build the uncompressed next header

uint8_t(* d_generic_context::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.

uint8_t(* d_generic_context::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.

Correction counter (see e and f in 5.3.2.2.4 of the RFC 3095)

The algorithm being used for correction CRC failure

The arrival time of the current packet

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

The handler used to decode extracted for next header

Information about the inner IP header.

The IP-ID of the inner IP header.

The list decompressor of the outer IP header.

The list decompressor of the inner IP header.

Whether the decompressed packet contains a 2nd IP header.

The length of the next header.

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

Information about the outer IP header.

The IP-ID of the outer IP header.

int(* d_generic_context::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.

int(* d_generic_context::parse_ext3)(const struct rohc_decomp_ctxt *const context, const unsigned char *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
int(* d_generic_context::parse_static_next_hdr)(const struct rohc_decomp_ctxt *const context, const unsigned char *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.

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

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

The LSB decoding context for the Sequence Number (SN)

Profile-specific data.

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

The handler used to update context with decoded next header fields


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