ROHC compression/decompression library
Data Structures | Functions
ip_id_offset.c File Reference

Offset IP-ID decoding. More...

#include "ip_id_offset.h"
#include "wlsb.h"
#include <stdlib.h>
#include <assert.h>
Include dependency graph for ip_id_offset.c:

Data Structures

struct  ip_id_offset_decode
 Defines a IP-ID object to help computing the IP-ID value from an IP-ID offset. More...

Functions

struct ip_id_offset_decodeip_id_offset_new (void)
 Create a new Offset IP-ID decoding context.
void ip_id_offset_free (struct ip_id_offset_decode *const ipid)
 Destroy a given Offset IP-ID decoding context.
bool ip_id_offset_decode (const struct ip_id_offset_decode *const ipid, const uint16_t m, const size_t k, const uint32_t sn, uint16_t *const decoded)
 Decode the given IP-ID offset.
void ip_id_offset_set_ref (struct ip_id_offset_decode *const ipid, const uint16_t id_ref, const uint32_t sn_ref)
 Update the reference values for the IP-ID and the SN.

Detailed Description

Offset IP-ID decoding.

Author:
Didier Barvaux <didier.barvaux@toulouse.viveris.com>
Didier Barvaux <didier@barvaux.org>

Function Documentation

bool ip_id_offset_decode ( const struct ip_id_offset_decode *const  ipid,
const uint16_t  m,
const size_t  k,
const uint32_t  sn,
uint16_t *const  decoded 
)

Decode the given IP-ID offset.

Parameters:
ipidThe Offset IP-ID object
mThe IP-ID offset to decode
kThe number of bits used to code the IP-ID offset
snThe SN of the ROHC packet that contains the IP-ID offset
decodedOUT: The computed IP-ID
Returns:
true in case of success, false otherwise
void ip_id_offset_free ( struct ip_id_offset_decode *const  ipid)

Destroy a given Offset IP-ID decoding context.

See 4.5.5 in the RFC 3095 for details about Offset IP-ID encoding.

Parameters:
ipidThe Offset IP-ID decoding context to destroy
struct ip_id_offset_decode* ip_id_offset_new ( void  ) [read]

Create a new Offset IP-ID decoding context.

See 4.5.5 in the RFC 3095 for details about Offset IP-ID encoding.

Returns:
The new Offset IP-ID decoding context in case of success, NULL otherwise
void ip_id_offset_set_ref ( struct ip_id_offset_decode *const  ipid,
const uint16_t  id_ref,
const uint32_t  sn_ref 
)

Update the reference values for the IP-ID and the SN.

Parameters:
ipidThe Offset IP-ID decoding object
id_refThe new IP-ID reference
sn_refThe new SN reference