ROHC decompression context for the UDP profile.
More...
#include "d_udp.h"
#include "d_ip.h"
#include "rohc_traces_internal.h"
#include "rohc_bit_ops.h"
#include "rohc_debug.h"
#include "rohc_utils.h"
#include "crc.h"
#include "protocols/udp.h"
#include <string.h>
#include <assert.h>
Data Structures |
struct | d_udp_context |
| Define the UDP part of the decompression profile context. More...
|
Functions |
static void | d_udp_destroy (void *const context) |
| Destroy the context.
|
static int | udp_parse_dynamic_udp (const struct rohc_decomp_ctxt *const context, const uint8_t *packet, const size_t length, struct rohc_extr_bits *const bits) |
| Parse the UDP dynamic part of the ROHC packet.
|
static int | udp_parse_uo_remainder (const struct rohc_decomp_ctxt *const context, const unsigned char *packet, unsigned int length, struct rohc_extr_bits *const bits) |
| Parse the UDP tail of the UO* ROHC packets.
|
static bool | udp_decode_values_from_bits (const struct rohc_decomp_ctxt *context, const struct rohc_extr_bits bits, struct rohc_decoded_values *const decoded) |
| Decode UDP values from extracted bits.
|
static int | udp_build_uncomp_udp (const struct rohc_decomp_ctxt *const context, const struct rohc_decoded_values decoded, unsigned char *dest, const unsigned int payload_len) |
| Build an uncompressed UDP header.
|
void * | d_udp_create (const struct rohc_decomp_ctxt *const context) |
| Create the UDP decompression context.
|
int | udp_parse_static_udp (const struct rohc_decomp_ctxt *const context, const unsigned char *packet, size_t length, struct rohc_extr_bits *const bits) |
| Parse the UDP static part of the ROHC packet.
|
void | udp_update_context (const struct rohc_decomp_ctxt *context, const struct rohc_decoded_values decoded) |
| Update context with decoded UDP values.
|
Variables |
struct rohc_decomp_profile | d_udp_profile |
| Define the decompression part of the UDP profile as described in the RFC 3095.
|
Detailed Description
ROHC decompression context for the UDP profile.
- Author:
- Didier Barvaux <didier.barvaux@toulouse.viveris.com>
-
Didier Barvaux <didier@barvaux.org>
Function Documentation
Create the UDP decompression context.
This function is one of the functions that must exist in one profile for the framework to work.
- Parameters:
-
context | The decompression context |
- Returns:
- The newly-created UDP decompression context
Destroy the context.
This function is one of the functions that must exist in one profile for the framework to work.
- Parameters:
-
context | The compression context |
Build an uncompressed UDP header.
- Parameters:
-
context | The decompression context |
decoded | The values decoded from the ROHC header |
dest | The buffer to store the UDP header (MUST be at least of sizeof(struct udphdr) length) |
payload_len | The length of the UDP payload |
- Returns:
- The length of the next header (ie. the UDP header), -1 in case of error
Decode UDP values from extracted bits.
The following values are decoded:
- UDP source port
- UDP destination port
- UDP checksum
- Parameters:
-
context | The decompression context |
bits | The extracted bits |
decoded | OUT: The corresponding decoded values |
- Returns:
- true if decoding is successful, false otherwise
Parse the UDP dynamic part of the ROHC packet.
- Parameters:
-
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 |
- Returns:
- The number of bytes read in the ROHC packet, -1 in case of failure
Parse the UDP static part of the ROHC packet.
- Parameters:
-
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 |
- Returns:
- The number of bytes read in the ROHC packet, -1 in case of failure
Parse the UDP tail of the UO* ROHC packets.
- Parameters:
-
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 |
- Returns:
- The number of bytes read in the ROHC packet, -1 in case of failure
Update context with decoded UDP values.
The following decoded values are updated in context:
- UDP source port
- UDP destination port
- Parameters:
-
context | The decompression context |
decoded | The decoded values to update in the context |
Variable Documentation
Initial value:
Define the decompression part of the UDP profile as described in the RFC 3095.