ROHC compression/decompression library
|
ROHC decompression context for the IP-only profile. More...
#include "d_ip.h"
#include "rohc_traces_internal.h"
#include "rohc_bit_ops.h"
#include "rohc_packets.h"
#include "rohc_debug.h"
#include "rohc_utils.h"
#include "decode.h"
#include "rohc_decomp_internals.h"
#include <assert.h>
Functions | |
void * | d_ip_create (const struct d_context *const context) |
Create the IP decompression context. | |
rohc_packet_t | ip_detect_packet_type (struct rohc_decomp *decomp, struct d_context *context, const unsigned char *packet, const size_t rohc_length, const size_t large_cid_len) |
Detect the type of ROHC packet for IP-based non-RTP profiles. | |
int | ip_parse_dynamic_ip (const struct d_context *const context, const unsigned char *packet, unsigned int length, struct rohc_extr_bits *const bits) |
Parse the IP dynamic part of the ROHC packet. | |
Variables | |
struct d_profile | d_ip_profile |
Define the decompression part of the IP-only profile as described in the RFC 3843. |
ROHC decompression context for the IP-only profile.
void* d_ip_create | ( | const struct d_context *const | context | ) |
Create the IP decompression context.
This function is one of the functions that must exist in one profile for the framework to work.
context | The decompression context |
References d_generic_create(), d_context::decompressor, d_generic_context::detect_packet_type, d_profile::id, ip_detect_packet_type(), ip_parse_dynamic_ip(), d_generic_context::parse_dyn_next_hdr, d_context::profile, rohc_error, rohc_lsb_new(), ROHC_LSB_SHIFT_SN, ROHC_TRACE_DECOMP, d_generic_context::sn_lsb_ctxt, d_generic_context::specific, rohc_decomp::trace_callback, and zfree.
rohc_packet_t ip_detect_packet_type | ( | struct rohc_decomp * | decomp, |
struct d_context * | context, | ||
const unsigned char * | packet, | ||
const size_t | rohc_length, | ||
const size_t | large_cid_len | ||
) |
Detect the type of ROHC packet for IP-based non-RTP profiles.
decomp | The ROHC decompressor |
context | The decompression context |
packet | The ROHC packet |
rohc_length | The length of the ROHC packet |
large_cid_len | The length of the optional large CID field |
References d_is_ir(), d_is_irdyn(), d_is_uo0(), d_is_uo1(), d_is_uor2(), d_profile::id, PACKET_IR, PACKET_IR_DYN, PACKET_UNKNOWN, PACKET_UO_0, PACKET_UO_1, PACKET_UOR_2, d_context::profile, ROHC_TRACE_DECOMP, and rohc_warning.
Referenced by d_ip_create(), and d_udp_create().
int ip_parse_dynamic_ip | ( | const struct d_context *const | context, |
const unsigned char * | packet, | ||
unsigned int | length, | ||
struct rohc_extr_bits *const | bits | ||
) |
Parse the IP dynamic part of the ROHC packet.
context | The decompression context |
packet | The ROHC packet to parse |
length | The length of the ROHC packet |
bits | OUT: The bits extracted from the ROHC header |
References d_context::decompressor, GET_NEXT_16_BITS, d_profile::id, PACKET_IR, PACKET_IR_DYN, d_generic_context::packet_type, d_context::profile, rohc_decomp_debug, rohc_ntoh16(), ROHC_TRACE_DECOMP, rohc_warning, rohc_extr_bits::sn, rohc_extr_bits::sn_nr, and d_context::specific.
Referenced by d_ip_create().
struct d_profile d_ip_profile |
{ ROHC_PROFILE_IP, "IP / Decompressor", d_generic_decode, d_ip_create, d_ip_destroy, d_generic_get_sn, }
Define the decompression part of the IP-only profile as described in the RFC 3843.