ROHC compression/decompression library
|
The generic decompression context. More...
#include <d_generic.h>
Data Fields | |
struct d_generic_changes * | last1 |
Information about the previous outer IP header. | |
struct d_generic_changes * | last2 |
Information about the previous inner IP header. | |
struct d_generic_changes * | active1 |
Information about the current outer IP header. | |
struct d_generic_changes * | active2 |
Information about the current inner IP header. | |
int | first_packet_processed |
Whether at least packet was already processed by the context or not. | |
struct d_lsb_decode | sn |
The LSB-encoded Sequence Number (SN) | |
struct d_ip_id_decode | ip_id1 |
The IP-ID of the outer IP header. | |
struct d_ip_id_decode | ip_id2 |
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. | |
rohc_packet_t | packet_type |
The type of packet the decompressor may receive: IR, IR-DYN, UO*. | |
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(* | build_next_header )(struct d_generic_context *context, struct d_generic_changes *active, unsigned char *dest, int payload_size) |
The handler used to build the uncompressed next header thanks to context information. | |
int(* | decode_static_next_header )(struct d_generic_context *context, const unsigned char *packet, unsigned int length, unsigned char *dest) |
The handler used to decode the static part of the next header in the ROHC packet. | |
int(* | decode_dynamic_next_header )(struct d_generic_context *context, const unsigned char *packet, unsigned int length, unsigned char *dest) |
The handler used to decode the dynamic part of the next header in the ROHC packet. | |
int(* | decode_uo_tail )(struct d_generic_context *context, const unsigned char *packet, unsigned int length, unsigned char *dest) |
The handler used to decode the tail of the UO* ROHC packet. | |
unsigned int(* | 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) |
The handler used to compute the CRC-STATIC value. | |
unsigned int(* | 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) |
The handler used to compute the CRC-DYNAMIC value. | |
void * | specific |
Profile-specific data. | |
unsigned int | correction_counter |
Correction counter (see e and f in 5.3.2.2.4 of the RFC 3095) | |
unsigned int | last_packet_time |
The timestamp of the last CRC-approved packet. | |
unsigned int | current_packet_time |
The timestamp of the current packet (not yet CRC-tested) | |
unsigned int | inter_arrival_time |
The average inter-packet time over the last few packets. |
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.
Information about the current outer IP header.
Referenced by d_generic_create(), d_generic_decode(), d_generic_decode_ir(), d_generic_destroy(), d_generic_detect_ir_dyn_size(), d_rtp_create(), d_udp_create(), d_udp_destroy(), d_udp_lite_create(), d_udp_lite_destroy(), decode_extension3(), decode_irdyn(), decode_uo0(), decode_uo1(), decode_uor2(), ip_decode_dynamic_ip(), rtp_decode_dynamic_rtp(), sync_on_failure(), and synchronize().
Information about the current inner IP header.
Referenced by d_generic_create(), d_generic_decode(), d_generic_decode_ir(), d_generic_destroy(), d_generic_detect_ir_dyn_size(), d_rtp_create(), d_udp_create(), d_udp_destroy(), d_udp_lite_create(), d_udp_lite_destroy(), decode_extension3(), decode_irdyn(), decode_uo0(), decode_uo1(), decode_uor2(), ip_decode_dynamic_ip(), rtp_decode_dynamic_rtp(), sync_on_failure(), and synchronize().
int(* d_generic_context::build_next_header)(struct d_generic_context *context, struct d_generic_changes *active, unsigned char *dest, int payload_size) |
The handler used to build the uncompressed next header thanks to context information.
Referenced by d_generic_decode_ir(), d_rtp_create(), d_udp_create(), d_udp_lite_create(), decode_irdyn(), decode_uo0(), decode_uo1(), and decode_uor2().
unsigned int(* d_generic_context::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) |
The handler used to compute the CRC-DYNAMIC value.
Referenced by d_generic_create(), d_rtp_create(), d_udp_create(), d_udp_lite_create(), decode_uo0(), decode_uo1(), and decode_uor2().
unsigned int(* d_generic_context::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) |
The handler used to compute the CRC-STATIC value.
Referenced by d_generic_create(), d_rtp_create(), d_udp_create(), d_udp_lite_create(), decode_uo0(), decode_uo1(), and decode_uor2().
unsigned int d_generic_context::correction_counter |
Correction counter (see e and f in 5.3.2.2.4 of the RFC 3095)
Referenced by d_generic_decode_ir(), decode_irdyn(), decode_uo0(), decode_uo1(), and decode_uor2().
unsigned int d_generic_context::current_packet_time |
The timestamp of the current packet (not yet CRC-tested)
Referenced by d_generic_decode(), d_generic_decode_ir(), and update_inter_packet().
int(* d_generic_context::decode_dynamic_next_header)(struct d_generic_context *context, const unsigned char *packet, unsigned int length, unsigned char *dest) |
The handler used to decode the dynamic part of the next header in the ROHC packet.
Referenced by d_generic_decode_ir(), d_ip_create(), d_rtp_create(), d_udp_create(), d_udp_lite_create(), and decode_irdyn().
int(* d_generic_context::decode_static_next_header)(struct d_generic_context *context, const unsigned char *packet, unsigned int length, unsigned char *dest) |
The handler used to decode the static part of the next header in the ROHC packet.
Referenced by d_generic_decode_ir(), d_rtp_create(), d_udp_create(), and d_udp_lite_create().
int(* d_generic_context::decode_uo_tail)(struct d_generic_context *context, const unsigned char *packet, unsigned int length, unsigned char *dest) |
The handler used to decode the tail of the UO* ROHC packet.
Referenced by d_rtp_create(), d_udp_create(), d_udp_lite_create(), decode_uo0(), decode_uo1(), and decode_uor2().
Whether at least packet was already processed by the context or not.
Referenced by d_generic_create(), and d_generic_decode_ir().
unsigned int d_generic_context::inter_arrival_time |
The average inter-packet time over the last few packets.
Referenced by update_inter_packet().
The IP-ID of the outer IP header.
Referenced by decode_uo0(), decode_uo1(), decode_uor2(), ip_decode_dynamic_ip(), and rtp_decode_dynamic_rtp().
The IP-ID of the inner IP header.
Referenced by decode_uo0(), decode_uo1(), decode_uor2(), ip_decode_dynamic_ip(), and rtp_decode_dynamic_rtp().
Information about the previous outer IP header.
Referenced by d_generic_create(), d_generic_decode(), d_generic_decode_ir(), d_generic_destroy(), d_rtp_create(), d_udp_create(), d_udp_destroy(), d_udp_lite_create(), d_udp_lite_destroy(), find_packet_type(), sync_on_failure(), and synchronize().
Information about the previous inner IP header.
Referenced by d_generic_create(), d_generic_decode(), d_generic_decode_ir(), d_generic_destroy(), d_rtp_create(), d_udp_create(), d_udp_destroy(), d_udp_lite_create(), d_udp_lite_destroy(), find_packet_type(), sync_on_failure(), and synchronize().
unsigned int d_generic_context::last_packet_time |
The timestamp of the last CRC-approved packet.
Referenced by update_inter_packet().
The list decompressor of the outer IP header.
Referenced by d_generic_create(), d_generic_decode_ir(), d_generic_destroy(), d_generic_detect_ir_dyn_size(), d_generic_detect_ir_size(), decode_irdyn(), decode_uo0(), decode_uo1(), and decode_uor2().
The list decompressor of the inner IP header.
Referenced by d_generic_create(), d_generic_decode_ir(), d_generic_destroy(), d_generic_detect_ir_dyn_size(), d_generic_detect_ir_size(), decode_irdyn(), decode_uo0(), decode_uo1(), and decode_uor2().
Whether the decompressed packet contains a 2nd IP header.
Referenced by d_generic_decode(), d_generic_decode_ir(), decode_extension3(), decode_irdyn(), decode_uo0(), decode_uo1(), decode_uor2(), find_packet_type(), ip_decode_dynamic_ip(), and rtp_decode_dynamic_rtp().
unsigned int d_generic_context::next_header_len |
The length of the next header.
Referenced by d_rtp_create(), d_udp_create(), and d_udp_lite_create().
unsigned short d_generic_context::next_header_proto |
The IP protocol ID of the protocol the context is able to decompress.
Referenced by d_generic_create(), d_generic_decode_ir(), d_rtp_create(), d_udp_create(), and d_udp_lite_create().
The type of packet the decompressor may receive: IR, IR-DYN, UO*.
Referenced by d_generic_decode(), d_generic_decode_ir(), decode_extension3(), decode_uo1(), decode_uor2(), ip_decode_dynamic_ip(), and udp_lite_decode_dynamic_udp().
The LSB-encoded Sequence Number (SN)
Referenced by d_generic_get_sn(), decode_uo0(), decode_uo1(), decode_uor2(), ip_decode_dynamic_ip(), and rtp_decode_dynamic_rtp().
Profile-specific data.
Referenced by d_generic_destroy(), d_rtp_create(), d_udp_create(), d_udp_lite_create(), d_udp_lite_decode(), d_udp_lite_decode_ir(), decode_extension3(), decode_uo0(), decode_uo1(), decode_uor2(), rtp_build_uncompressed_rtp(), rtp_decode_dynamic_rtp(), rtp_decode_uo_tail_rtp(), udp_build_uncompressed_udp(), udp_decode_dynamic_udp(), udp_decode_uo_tail_udp(), udp_lite_build_uncompressed_udp(), udp_lite_decode_dynamic_udp(), and udp_lite_decode_uo_tail_udp().