|
ROHC compression/decompression library
|
ROHC generic decompression context for IP-only, UDP and UDP Lite profiles. More...
#include "rohc_decomp.h"#include "rohc_decomp_internals.h"#include "rohc_packets.h"#include "comp_list.h"#include "schemes/wlsb.h"#include "schemes/ip_id_offset.h"#include "schemes/list.h"#include "ip.h"#include "crc.h"#include <stddef.h>#include <stdbool.h>

Go to the source code of this file.
Data Structures | |
| struct | rohc_extr_ip_bits |
| struct | rohc_extr_bits |
| The bits extracted from ROHC UO* base headers. More... | |
| struct | rohc_decoded_ip_values |
| struct | rohc_decoded_values |
| The values decoded from the bits extracted from ROHC header. More... | |
| struct | d_generic_changes |
| Store information about an IP header between the different decompressions of IP packets. More... | |
| struct | d_generic_context |
| The generic decompression context. More... | |
Defines | |
| #define | ROHC_MAX_ARRIVAL_TIMES 10U |
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... | |
Functions | |
| void * | d_generic_create (const struct rohc_decomp_ctxt *const context, rohc_trace_callback_t trace_cb, rohc_trace_callback2_t trace_cb2, void *const trace_cb_priv, const int profile_id) |
| Create the generic decompression context. | |
| void | d_generic_destroy (void *const context) |
| Destroy the context. | |
| rohc_status_t | d_generic_decode (struct rohc_decomp *const decomp, struct rohc_decomp_ctxt *const context, const struct rohc_buf rohc_packet, const size_t add_cid_len, const size_t large_cid_len, struct rohc_buf *const uncomp_packet, rohc_packet_t *const packet_type) |
| Decode one IR, IR-DYN or UO* packet. | |
| uint32_t | d_generic_get_sn (const struct rohc_decomp_ctxt *const context) |
| Get the reference SN value of the context. | |
| static bool | is_ipv4_pkt (const struct rohc_extr_ip_bits bits) |
| Is the given IP header IPV4 wrt packet? | |
| static bool | is_ipv4_rnd_pkt (const struct rohc_extr_ip_bits bits) |
| Is the given IP header IPv4 and its IP-ID random wrt packet? | |
| static bool | is_ipv4_non_rnd_pkt (const struct rohc_extr_ip_bits bits) |
| Is the given IP header IPv4 and its IP-ID non-random wrt packet? | |
ROHC generic decompression context for IP-only, UDP and UDP Lite profiles.
| #define ROHC_MAX_ARRIVAL_TIMES 10U |
The number of last packets to record arrival times for
| void* d_generic_create | ( | const struct rohc_decomp_ctxt *const | context, |
| rohc_trace_callback_t | trace_cb, | ||
| rohc_trace_callback2_t | trace_cb2, | ||
| void *const | trace_cb_priv, | ||
| const int | profile_id | ||
| ) |
Create the generic decompression context.
This function is one of the functions that must exist in one profile for the framework to work.
| context | The decompression context |
| trace_cb | The old function to call for printing traces |
| trace_cb2 | The new function to call for printing traces |
| trace_cb_priv | An optional private context, may be NULL |
| profile_id | The ID of the associated decompression profile |
| rohc_status_t d_generic_decode | ( | struct rohc_decomp *const | decomp, |
| struct rohc_decomp_ctxt *const | context, | ||
| const struct rohc_buf | rohc_packet, | ||
| const size_t | add_cid_len, | ||
| const size_t | large_cid_len, | ||
| struct rohc_buf *const | uncomp_packet, | ||
| rohc_packet_t *const | packet_type | ||
| ) |
Decode one IR, IR-DYN or UO* packet.
This function is one of the functions that must exist in one profile for the framework to work.
Steps:
Steps C and D may be repeated if packet or context repair is attempted upon CRC failure.
| decomp | The ROHC decompressor | |
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| add_cid_len | The length of the optional Add-CID field | |
| large_cid_len | The length of the optional large CID field | |
| [out] | uncomp_packet | The uncompressed packet |
| packet_type | IN: The type of the ROHC packet to parse OUT: The type of the parsed ROHC packet |
| void d_generic_destroy | ( | void *const | context | ) |
Destroy the context.
This function is one of the functions that must exist in one profile for the framework to work.
| context | The compression context |
| uint32_t d_generic_get_sn | ( | const struct rohc_decomp_ctxt *const | context | ) |
Get the reference SN value of the context.
This function is one of the functions that must exist in one profile for the framework to work.
| context | The decompression context |
| static bool is_ipv4_non_rnd_pkt | ( | const struct rohc_extr_ip_bits | bits | ) | [inline, static] |
Is the given IP header IPv4 and its IP-ID non-random wrt packet?
| bits | The bits extracted from packet |
| static bool is_ipv4_pkt | ( | const struct rohc_extr_ip_bits | bits | ) | [inline, static] |
Is the given IP header IPV4 wrt packet?
| bits | The bits extracted from packet |
| static bool is_ipv4_rnd_pkt | ( | const struct rohc_extr_ip_bits | bits | ) | [inline, static] |
Is the given IP header IPv4 and its IP-ID random wrt packet?
| bits | The bits extracted from packet |
1.7.6.1