ROHC compression/decompression library
Data Fields
c_generic_context Struct Reference

The generic compression context. More...

#include <c_generic.h>

Collaboration diagram for c_generic_context:
Collaboration graph
[legend]

Data Fields

uint32_t sn
 The Sequence Number (SN), may be 16-bit or 32-bit long.
struct c_wlsbsn_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.

Detailed Description

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.


Field Documentation

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().

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().

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().

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.

See also:
periodic_down_transition

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.

See also:
periodic_down_transition

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().

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().

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().

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().

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().


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