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

Offset IP-ID decoding. More...

#include "ip_id_offset_decode.h"
#include "lsb_decode.h"
#include <stdlib.h>
#include <assert.h>
Include dependency graph for ip_id_offset_decode.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>
The hackers from ROHC for Linux

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

References ip_id_offset_decode::lsb, and rohc_lsb_decode16().

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

References ip_id_offset_decode::lsb, and rohc_lsb_free().

Referenced by d_generic_create(), and d_generic_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

References ip_id_offset_decode::lsb, rohc_lsb_new(), and ROHC_LSB_SHIFT_IP_ID.

Referenced by d_generic_create().

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

References ip_id_offset_decode::lsb, and rohc_lsb_set_ref().