ROHC compression/decompression library
|
The generic decompression context for RFC3095-based profiles. More...
#include <rohc_decomp_rfc3095.h>
Data Fields | |
struct rohc_decomp_rfc3095_changes * | outer_ip_changes |
Information about the outer IP header. More... | |
struct rohc_decomp_rfc3095_changes * | inner_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... | |
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.
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
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.
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.
uint8_t rohc_decomp_rfc3095_ctxt::crc_static_3_cached |
The cache for the CRC-3 value on CRC-STATIC fields
uint8_t rohc_decomp_rfc3095_ctxt::crc_static_7_cached |
The cache for the CRC-7 value on CRC-STATIC fields
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
struct rohc_decomp_rfc3095_changes* rohc_decomp_rfc3095_ctxt::inner_ip_changes |
Information about the inner IP header.
struct ip_id_offset_decode rohc_decomp_rfc3095_ctxt::inner_ip_id_offset_ctxt |
The IP-ID of the inner IP header.
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
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
struct list_decomp rohc_decomp_rfc3095_ctxt::list_decomp1 |
The list decompressor of the outer IP header.
struct list_decomp rohc_decomp_rfc3095_ctxt::list_decomp2 |
The list decompressor of the inner IP header.
int rohc_decomp_rfc3095_ctxt::multiple_ip |
Whether the decompressed packet contains a 2nd IP header.
unsigned int rohc_decomp_rfc3095_ctxt::next_header_len |
The length of the next header.
unsigned short rohc_decomp_rfc3095_ctxt::next_header_proto |
The IP protocol ID of the protocol the context is able to decompress.
struct rohc_decomp_rfc3095_changes* rohc_decomp_rfc3095_ctxt::outer_ip_changes |
Information about the outer IP header.
struct ip_id_offset_decode rohc_decomp_rfc3095_ctxt::outer_ip_id_offset_ctxt |
The IP-ID of the outer IP header.
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.
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.
context | The decompression context |
rohc_data | The ROHC data to parse |
rohc_data_len | The length of the ROHC data to parse |
packet_type | The type of ROHC packet to parse |
bits | IN: the bits already found in base header OUT: the bits found in the extension header 3 |
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.
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.
struct rohc_lsb_decode rohc_decomp_rfc3095_ctxt::sn_lsb_ctxt |
The LSB decoding context for the Sequence Number (SN)
rohc_lsb_shift_t rohc_decomp_rfc3095_ctxt::sn_lsb_p |
The LSB shift parameter for the Sequence Number (SN)
void* rohc_decomp_rfc3095_ctxt::specific |
Profile-specific data.
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