ROHC compression/decompression library
|
The generic compression context. More...
#include <c_generic.h>
Data Fields | |
uint32_t | sn |
The Sequence Number (SN), may be 16-bit or 32-bit long. | |
struct c_wlsb * | sn_window |
A window used to encode the SN. | |
int | ir_count |
The number of packets sent while in Initialization & Refresh (IR) state. | |
int | fo_count |
The number of packets sent while in First Order (FO) state. | |
int | so_count |
The number of packets sent while in Second Order (SO) state. | |
int | go_back_fo_count |
The number of packet sent while in SO state, used for the periodic refreshes of the context. | |
int | go_back_ir_count |
The number of packet sent while in FO or SO state, used for the periodic refreshes of the context. | |
struct ip_header_info | ip_flags |
Information about the outer IP header. | |
struct ip_header_info | ip2_flags |
Information about the inner IP header. | |
int | is_ip2_initialized |
Whether the ip2_flags object is initialized or not. | |
struct generic_tmp_vars | tmp |
Temporary variables that are used during one single compression of packet. | |
unsigned int | next_header_proto |
The protocol number registered by IANA for the next header protocol. | |
unsigned int | next_header_len |
The length of the next header. | |
int(* | encode_uncomp_fields )(struct c_context *const context, const struct ip_packet *const ip, const struct ip_packet *const ip2, const unsigned char *const next_header) |
void(* | decide_state )(struct c_context *const context) |
The handler used to decide the state that should be used for the next packet. | |
rohc_packet_t(* | decide_FO_packet )(const struct c_context *context) |
The handler used to decide which packet to send in FO state. | |
rohc_packet_t(* | decide_SO_packet )(const struct c_context *context) |
The handler used to decide which packet to send in SO state. | |
rohc_ext_t(* | decide_extension )(const struct c_context *context) |
void(* | init_at_IR )(const struct c_context *context, const unsigned char *next_header) |
The handler used to initialize some data just before the IR packet build. | |
uint32_t(* | get_next_sn )(const struct c_context *context, const struct ip_packet *outer_ip, const struct ip_packet *inner_ip) |
int(* | code_static_part )(const struct c_context *context, const unsigned char *next_header, unsigned char *const dest, int counter) |
The handler used to add the static part of the next header to the ROHC packet. | |
int(* | code_dynamic_part )(const struct c_context *context, const unsigned char *next_header, unsigned char *const dest, int counter) |
The handler used to add the dynamic part of the next header to the ROHC pachet. | |
int(* | code_ir_remainder )(const struct c_context *context, unsigned char *const dest, int counter) |
The handler used to add the IR/IR-DYN remainder header to the ROHC pachet. | |
int(* | code_UO_packet_head )(const struct c_context *context, const unsigned char *next_header, unsigned char *const dest, int counter, int *const first_position) |
The handler used to add an additional header in the head of the UO-0, UO-1 and UO-2 packets. | |
int(* | code_uo_remainder )(const struct c_context *context, const unsigned char *next_header, unsigned char *const dest, int counter) |
The handler used to add an additional header in the tail of the UO-0, UO-1 and UO-2 packets. | |
unsigned int(* | compute_crc_static )(const unsigned char *const ip, const unsigned char *const ip2, const unsigned char *const next_header, const rohc_crc_type_t 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 rohc_crc_type_t 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. |
The generic compression 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.
int(* c_generic_context::code_dynamic_part)(const struct c_context *context, const unsigned char *next_header, unsigned char *const dest, int counter) |
The handler used to add the dynamic part of the next header to the ROHC pachet.
Referenced by c_generic_create(), c_rtp_create(), c_udp_create(), c_udp_lite_create(), code_IR_DYN_packet(), and code_IR_packet().
int(* c_generic_context::code_ir_remainder)(const struct c_context *context, unsigned char *const dest, int counter) |
The handler used to add the IR/IR-DYN remainder header to the ROHC pachet.
Referenced by c_rtp_create(), c_udp_create(), c_udp_lite_create(), code_IR_DYN_packet(), and code_IR_packet().
int(* c_generic_context::code_static_part)(const struct c_context *context, const unsigned char *next_header, unsigned char *const dest, int counter) |
The handler used to add the static part of the next header to the ROHC packet.
Referenced by c_generic_create(), c_rtp_create(), c_udp_create(), c_udp_lite_create(), and code_IR_packet().
int(* c_generic_context::code_UO_packet_head)(const struct c_context *context, const unsigned char *next_header, unsigned char *const dest, int counter, int *const first_position) |
The handler used to add an additional header in the head of the UO-0, UO-1 and UO-2 packets.
Referenced by c_generic_create(), c_rtp_create(), c_udp_create(), c_udp_lite_create(), code_UO0_packet(), code_UO1_packet(), and code_UO2_packet().
int(* c_generic_context::code_uo_remainder)(const struct c_context *context, const unsigned char *next_header, unsigned char *const dest, int counter) |
The handler used to add an additional header in the tail of the UO-0, UO-1 and UO-2 packets.
Referenced by c_generic_create(), c_rtp_create(), c_udp_create(), c_udp_lite_create(), and code_uo_remainder().
unsigned int(* c_generic_context::compute_crc_dynamic)(const unsigned char *const ip, const unsigned char *const ip2, const unsigned char *const next_header, const rohc_crc_type_t crc_type, const unsigned int init_val, const unsigned char *const crc_table) |
The handler used to compute the CRC-DYNAMIC value.
Referenced by c_generic_create(), c_rtp_create(), c_udp_create(), c_udp_lite_create(), code_UO0_packet(), code_UO1_packet(), and code_UO2_packet().
unsigned int(* c_generic_context::compute_crc_static)(const unsigned char *const ip, const unsigned char *const ip2, const unsigned char *const next_header, const rohc_crc_type_t crc_type, const unsigned int init_val, const unsigned char *const crc_table) |
The handler used to compute the CRC-STATIC value.
Referenced by c_generic_create(), c_rtp_create(), c_udp_create(), c_udp_lite_create(), code_UO0_packet(), code_UO1_packet(), and code_UO2_packet().
rohc_ext_t(* c_generic_context::decide_extension)(const struct c_context *context) |
The handler used to decide which extension to send
Referenced by c_generic_create(), c_rtp_create(), c_udp_create(), c_udp_lite_create(), and code_UO2_packet().
rohc_packet_t(* c_generic_context::decide_FO_packet)(const struct c_context *context) |
The handler used to decide which packet to send in FO state.
Referenced by c_generic_create(), c_rtp_create(), c_udp_create(), and c_udp_lite_create().
rohc_packet_t(* c_generic_context::decide_SO_packet)(const struct c_context *context) |
The handler used to decide which packet to send in SO state.
Referenced by c_generic_create(), c_rtp_create(), c_udp_create(), and c_udp_lite_create().
void(* c_generic_context::decide_state)(struct c_context *const context) |
The handler used to decide the state that should be used for the next packet.
Referenced by c_generic_create(), c_generic_encode(), c_rtp_create(), c_udp_create(), and c_udp_lite_create().
int(* c_generic_context::encode_uncomp_fields)(struct c_context *const context, const struct ip_packet *const ip, const struct ip_packet *const ip2, const unsigned char *const next_header) |
The handler for encoding profile-specific uncompressed header fields
Referenced by c_generic_encode(), and c_rtp_create().
The number of packets sent while in First Order (FO) state.
Referenced by c_generic_create(), change_state(), changed_dynamic_one_hdr(), changed_static_one_hdr(), and decide_state().
uint32_t(* c_generic_context::get_next_sn)(const struct c_context *context, const struct ip_packet *outer_ip, const struct ip_packet *inner_ip) |
Determine the next SN value
Referenced by c_generic_create(), c_generic_encode(), c_rtp_create(), c_udp_create(), and c_udp_lite_create().
The number of packet sent while in SO state, used for the periodic refreshes of the context.
Referenced by c_generic_create(), and periodic_down_transition().
The number of packet sent while in FO or SO state, used for the periodic refreshes of the context.
Referenced by c_generic_create(), and periodic_down_transition().
void(* c_generic_context::init_at_IR)(const struct c_context *context, const unsigned char *next_header) |
The handler used to initialize some data just before the IR packet build.
Referenced by c_generic_create(), c_rtp_create(), c_udp_create(), c_udp_lite_create(), code_IR_DYN_packet(), and code_IR_packet().
Information about the inner IP header.
Referenced by c_generic_destroy(), c_generic_encode(), c_generic_feedback(), c_ip_check_context(), c_ip_decide_SO_packet(), c_udp_check_context(), c_udp_lite_check_context(), changed_dynamic_both_hdr(), changed_static_both_hdr(), code_EXT2_packet(), code_EXT3_packet(), code_IR_DYN_packet(), code_IR_packet(), code_uo_remainder(), code_UOR2_RTP_bytes(), code_UOR2_TS_bytes(), and rohc_get_ipid_bits().
Information about the outer IP header.
Referenced by c_generic_create(), c_generic_destroy(), c_generic_encode(), c_generic_feedback(), c_ip_check_context(), c_ip_decide_SO_packet(), c_udp_check_context(), c_udp_lite_check_context(), changed_dynamic_both_hdr(), changed_static_both_hdr(), code_EXT2_packet(), code_EXT3_packet(), code_IR_DYN_packet(), code_IR_packet(), code_UO1_packet(), code_uo_remainder(), code_UOR2_RTP_bytes(), code_UOR2_TS_bytes(), and rohc_get_ipid_bits().
The number of packets sent while in Initialization & Refresh (IR) state.
Referenced by c_generic_create(), change_state(), decide_state(), and udp_lite_init_cc().
Whether the ip2_flags object is initialized or not.
Referenced by c_generic_create(), c_generic_destroy(), c_generic_encode(), c_generic_feedback(), c_ip_check_context(), c_udp_check_context(), c_udp_lite_check_context(), and code_EXT2_packet().
unsigned int c_generic_context::next_header_len |
The length of the next header.
Referenced by c_generic_create(), c_generic_encode(), c_rtp_create(), c_udp_create(), and c_udp_lite_create().
unsigned int c_generic_context::next_header_proto |
The protocol number registered by IANA for the next header protocol.
Referenced by c_generic_create(), c_ip_check_context(), c_rtp_create(), c_udp_create(), and c_udp_lite_create().
uint32_t c_generic_context::sn |
The Sequence Number (SN), may be 16-bit or 32-bit long.
Referenced by c_generic_encode(), c_ip_code_ir_remainder(), c_ip_get_next_sn(), c_rtp_create(), c_udp_create(), c_udp_lite_create(), code_EXT0_packet(), code_EXT1_packet(), code_EXT2_packet(), code_EXT3_packet(), code_UO0_packet(), code_UO1_packet(), code_UOR2_bytes(), code_UOR2_ID_bytes(), code_UOR2_RTP_bytes(), and code_UOR2_TS_bytes().
struct c_wlsb* c_generic_context::sn_window |
A window used to encode the SN.
Referenced by c_generic_create(), c_generic_destroy(), and c_generic_feedback().
The number of packets sent while in Second Order (SO) state.
Referenced by c_generic_create(), and change_state().
Profile-specific data.
Referenced by c_generic_create(), c_generic_destroy(), c_rtp_check_context(), c_rtp_create(), c_rtp_destroy(), c_rtp_encode(), c_udp_check_context(), c_udp_create(), c_udp_encode(), c_udp_lite_check_context(), c_udp_lite_create(), c_udp_lite_encode(), code_EXT0_packet(), code_EXT1_packet(), code_EXT2_packet(), code_EXT3_packet(), code_UO1_packet(), code_UOR2_ID_bytes(), code_UOR2_RTP_bytes(), code_UOR2_TS_bytes(), decide_extension(), rtp_changed_rtp_dynamic(), rtp_code_dynamic_rtp_part(), rtp_decide_state(), rtp_header_flags_and_fields(), udp_changed_udp_dynamic(), udp_code_dynamic_udp_part(), udp_decide_state(), udp_lite_build_cce_packet(), udp_lite_code_uo_remainder(), and udp_lite_init_cc().
Temporary variables that are used during one single compression of packet.
Referenced by c_generic_create(), c_generic_encode(), c_ip_decide_FO_packet(), c_ip_decide_SO_packet(), c_rtp_encode(), c_udp_encode(), c_udp_lite_encode(), changed_dynamic_both_hdr(), changed_static_both_hdr(), code_EXT0_packet(), code_EXT1_packet(), code_EXT2_packet(), code_EXT3_packet(), code_IR_DYN_packet(), code_IR_packet(), code_packet(), code_UO0_packet(), code_UO1_packet(), code_UO2_packet(), code_uo_remainder(), code_UOR2_bytes(), code_UOR2_ID_bytes(), code_UOR2_RTP_bytes(), code_UOR2_TS_bytes(), decide_extension(), decide_state(), and rohc_get_ipid_bits().