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_changeslast1
 Information about the previous outer IP header.
struct d_generic_changeslast2
 Information about the previous inner IP header.
struct d_generic_changesactive1
 Information about the current outer IP header.
struct d_generic_changesactive2
 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_decomplist_decomp1
 The list decompressor of the outer IP header.
struct list_decomplist_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.

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

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

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

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

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

The timestamp of the last CRC-approved packet.

Referenced by update_inter_packet().

The length of the next header.

Referenced by d_rtp_create(), d_udp_create(), and d_udp_lite_create().

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


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