ROHC compression/decompression library
Data Structures | Macros | Typedefs | Enumerations
rohc_decomp_internals.h File Reference

Internal structures for ROHC decompression. More...

#include "rohc_internal.h"
#include "rohc_decomp.h"
#include "rohc_traces_internal.h"
#include "feedback_create.h"
#include "crc.h"
Include dependency graph for rohc_decomp_internals.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  d_statistics
 Some compressor statistics. More...
 
struct  rohc_ack_rate_limit
 The user configuration for feedback rate-limiting. More...
 
struct  rohc_ack_rate_limits
 
struct  rohc_ack_stats
 
struct  rohc_decomp
 The ROHC decompressor. More...
 
struct  rohc_decomp_crc_corr_ctxt
 
struct  rohc_decomp_crc
 
struct  rohc_decomp_volat_ctxt
 The volatile part of the ROHC decompression context. More...
 
struct  rohc_decomp_ctxt
 The ROHC decompression context. More...
 
struct  rohc_decomp_profile
 The ROHC decompression profile. More...
 

Macros

#define D_NUM_PROFILES   7U
 
#define rohc_decomp_warn(context, format, ...)
 
#define rohc_decomp_debug(context, format, ...)
 
#define rohc_decomp_dump_buf(context, descr, buf, buf_len)
 
#define ROHC_MAX_MRRU   65535
 
#define ROHC_MAX_ARRIVAL_TIMES   10U
 

Typedefs

typedef bool(* rohc_decomp_new_context_t) (const struct rohc_decomp_ctxt *const context, void **const persist_ctxt, struct rohc_decomp_volat_ctxt *const volat_ctxt)
 
typedef void(* rohc_decomp_free_context_t) (void *const persist_ctxt, const struct rohc_decomp_volat_ctxt *const volat_ctxt)
 
typedef rohc_packet_t(* rohc_decomp_detect_pkt_type_t) (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, const size_t large_cid_len)
 
typedef bool(* rohc_decomp_parse_pkt_t) (const struct rohc_decomp_ctxt *const context, const struct rohc_buf rohc_packet, const size_t large_cid_len, rohc_packet_t *const packet_type, struct rohc_decomp_crc *const extr_crc, void *const extr_bits, size_t *const rohc_hdr_len)
 
typedef bool(* rohc_decomp_decode_bits_t) (const struct rohc_decomp_ctxt *const context, const void *const extr_bits, const size_t payload_len, void *const decoded_values)
 
typedef rohc_status_t(* rohc_decomp_build_hdrs_t) (const struct rohc_decomp *const decomp, const struct rohc_decomp_ctxt *const context, const rohc_packet_t packet_type, const struct rohc_decomp_crc *const extr_crc, const void *const decoded_values, const size_t payload_len, struct rohc_buf *const uncomp_hdrs, size_t *const uncomp_hdrs_len)
 
typedef void(* rohc_decomp_update_ctxt_t) (struct rohc_decomp_ctxt *const context, const void *const decoded_values, const size_t payload_len, bool *const do_change_mode)
 
typedef bool(* rohc_decomp_attempt_repair_t) (const struct rohc_decomp *const decomp, const struct rohc_decomp_ctxt *const context, const struct rohc_ts pkt_arrival_time, struct rohc_decomp_crc_corr_ctxt *const crc_corr, void *const extr_bits)
 
typedef uint32_t(* rohc_decomp_get_sn_t) (const struct rohc_decomp_ctxt *const context)
 

Enumerations

enum  rohc_decomp_crc_corr_t { ROHC_DECOMP_CRC_CORR_SN_NONE = 0, ROHC_DECOMP_CRC_CORR_SN_WRAP = 1, ROHC_DECOMP_CRC_CORR_SN_UPDATES = 2 }
 The different correction algorithms available in case of CRC failure. More...
 

Detailed Description

Internal structures for ROHC decompression.

Author
Didier Barvaux didie.nosp@m.r.ba.nosp@m.rvaux.nosp@m.@tou.nosp@m.louse.nosp@m..viv.nosp@m.eris..nosp@m.com
Didier Barvaux didie.nosp@m.r@ba.nosp@m.rvaux.nosp@m..org
David Moreau from TAS

Macro Definition Documentation

#define D_NUM_PROFILES   7U

The number of ROHC profiles ready to be used

#define rohc_decomp_debug (   context,
  format,
  ... 
)
Value:
rohc_debug((context)->decompressor, ROHC_TRACE_DECOMP, \
(context)->profile->id, \
format, ##__VA_ARGS__)
#define rohc_debug(entity_struct, entity, profile, format,...)
Definition: rohc_traces_internal.h:61
Definition: rohc_traces.h:84

Print a debug trace for the given decompression context

#define rohc_decomp_dump_buf (   context,
  descr,
  buf,
  buf_len 
)
Value:
do { \
if(((context)->decompressor->features & ROHC_DECOMP_FEATURE_DUMP_PACKETS) != 0) { \
rohc_dump_buf((context)->decompressor->trace_callback, \
(context)->decompressor->trace_callback_priv, \
descr, buf, buf_len); \
} \
} while(0)
Definition: rohc_traces.h:61
void rohc_dump_buf(const rohc_trace_callback2_t trace_cb, void *const trace_cb_priv, const rohc_trace_entity_t trace_entity, const rohc_trace_level_t trace_level, const char *const descr, const uint8_t *const packet, const size_t length)
Dump the content of the given buffer.
Definition: rohc_traces_internal.c:77
Definition: rohc_decomp.h:294
Definition: rohc_traces.h:84

Dump a buffer for the given compression context

#define rohc_decomp_warn (   context,
  format,
  ... 
)
Value:
rohc_warning((context)->decompressor, ROHC_TRACE_DECOMP, \
(context)->profile->id, \
format, ##__VA_ARGS__)
#define rohc_warning(entity_struct, entity, profile, format,...)
Definition: rohc_traces_internal.h:71
Definition: rohc_traces.h:84

Print a warning trace for the given decompression context

#define ROHC_MAX_ARRIVAL_TIMES   10U

The number of last packets to record arrival times for

#define ROHC_MAX_MRRU   65535

The maximal value for MRRU

Typedef Documentation

typedef bool(* rohc_decomp_attempt_repair_t) (const struct rohc_decomp *const decomp, const struct rohc_decomp_ctxt *const context, const struct rohc_ts pkt_arrival_time, struct rohc_decomp_crc_corr_ctxt *const crc_corr, void *const extr_bits)
typedef rohc_status_t(* rohc_decomp_build_hdrs_t) (const struct rohc_decomp *const decomp, const struct rohc_decomp_ctxt *const context, const rohc_packet_t packet_type, const struct rohc_decomp_crc *const extr_crc, const void *const decoded_values, const size_t payload_len, struct rohc_buf *const uncomp_hdrs, size_t *const uncomp_hdrs_len)
typedef bool(* rohc_decomp_decode_bits_t) (const struct rohc_decomp_ctxt *const context, const void *const extr_bits, const size_t payload_len, void *const decoded_values)
typedef rohc_packet_t(* rohc_decomp_detect_pkt_type_t) (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, const size_t large_cid_len)
typedef void(* rohc_decomp_free_context_t) (void *const persist_ctxt, const struct rohc_decomp_volat_ctxt *const volat_ctxt)
typedef uint32_t(* rohc_decomp_get_sn_t) (const struct rohc_decomp_ctxt *const context)
typedef bool(* rohc_decomp_new_context_t) (const struct rohc_decomp_ctxt *const context, void **const persist_ctxt, struct rohc_decomp_volat_ctxt *const volat_ctxt)
typedef bool(* rohc_decomp_parse_pkt_t) (const struct rohc_decomp_ctxt *const context, const struct rohc_buf rohc_packet, const size_t large_cid_len, rohc_packet_t *const packet_type, struct rohc_decomp_crc *const extr_crc, void *const extr_bits, size_t *const rohc_hdr_len)
typedef void(* rohc_decomp_update_ctxt_t) (struct rohc_decomp_ctxt *const context, const void *const decoded_values, const size_t payload_len, bool *const do_change_mode)

Enumeration Type Documentation

The different correction algorithms available in case of CRC failure.

Enumerator
ROHC_DECOMP_CRC_CORR_SN_NONE 

No correction

ROHC_DECOMP_CRC_CORR_SN_WRAP 

Correction of SN wraparound

ROHC_DECOMP_CRC_CORR_SN_UPDATES 

Correction of incorrect SN updates