ROHC compression/decompression library
Data Structures | Macros | Typedefs | Enumerations | Functions
rohc_internal.h File Reference

ROHC private common definitions and routines. More...

#include <stdint.h>
#include "rohc.h"
Include dependency graph for rohc_internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  rohc_medium
 ROHC medium (CID characteristics) More...
 

Macros

#define ROHC_RFC_STRICT_DECOMPRESSOR
 Be strict while parsing ROHC packet? More...
 
#define ROHC_MAX_MRRU   65535
 
#define ROHC_PADDING_BYTE   0xe0
 The padding field defined by the ROHC protocol. More...
 

Typedefs

typedef uint8_t bits_nr_t
 A number of bits required or retrieved. More...
 

Enumerations

enum  rohc_chain_t {
  ROHC_CHAIN_STATIC = 0, ROHC_CHAIN_DYNAMIC = 1, ROHC_CHAIN_REPLICATE = 2, ROHC_CHAIN_IRREGULAR = 3,
  ROHC_CHAIN_CO = 4
}
 The different chains used by the ROHCv1 TCP and ROHCv2 profiles. More...
 
enum  rohc_ip_id_behavior_t { ROHC_IP_ID_BEHAVIOR_SEQ = 0, ROHC_IP_ID_BEHAVIOR_SEQ_SWAP = 1, ROHC_IP_ID_BEHAVIOR_RAND = 2, ROHC_IP_ID_BEHAVIOR_ZERO = 3 }
 

Functions

static char * rohc_ip_id_behavior_get_descr (const rohc_ip_id_behavior_t behavior)
 Get a string that describes the given IP-ID behavior. More...
 

Detailed Description

ROHC private common definitions and routines.

Author
Didier Barvaux didie.nosp@m.r.ba.nosp@m.rvaux.nosp@m.@tou.nosp@m.louse.nosp@m..viv.nosp@m.eris..nosp@m.com
Didier Barvaux didie.nosp@m.r@ba.nosp@m.rvaux.nosp@m..org

Macro Definition Documentation

◆ ROHC_MAX_MRRU

#define ROHC_MAX_MRRU   65535

The maximal value for MRRU

◆ ROHC_PADDING_BYTE

#define ROHC_PADDING_BYTE   0xe0

The padding field defined by the ROHC protocol.

See RFC 3095, ยง5.2:

   Padding Octet

     0   1   2   3   4   5   6   7
   +---+---+---+---+---+---+---+---+
   | 1   1   1   0   0   0   0   0 |
   +---+---+---+---+---+---+---+---+

◆ ROHC_RFC_STRICT_DECOMPRESSOR

#define ROHC_RFC_STRICT_DECOMPRESSOR

Be strict while parsing ROHC packet?

Do we respect the robustness principle as stated in 'The Tao of IETF':

Be conservative in what you send and liberal in what you accept

Source: https://www.ietf.org/about/participate/tao/

Being 'liberal in what you accept' is great for production environments. Being 'strict in what you accept' is great for dev & testing environments.

Typedef Documentation

◆ bits_nr_t

typedef uint8_t bits_nr_t

A number of bits required or retrieved.

Enumeration Type Documentation

◆ rohc_chain_t

The different chains used by the ROHCv1 TCP and ROHCv2 profiles.

Enumerator
ROHC_CHAIN_STATIC 

The TCP static chain

ROHC_CHAIN_DYNAMIC 

The TCP dynamic chain

ROHC_CHAIN_REPLICATE 

The TCP replicate chain

ROHC_CHAIN_IRREGULAR 

The TCP irregular chain

ROHC_CHAIN_CO 

Not a chain, but in CO packet

◆ rohc_ip_id_behavior_t

The different IP-ID behaviors

Enumerator
ROHC_IP_ID_BEHAVIOR_SEQ 

IP-ID increases

ROHC_IP_ID_BEHAVIOR_SEQ_SWAP 

IP-ID increases in little endian

ROHC_IP_ID_BEHAVIOR_RAND 

IP-ID is random

ROHC_IP_ID_BEHAVIOR_ZERO 

IP-ID is constant zero

Function Documentation

◆ rohc_ip_id_behavior_get_descr()

static char * rohc_ip_id_behavior_get_descr ( const rohc_ip_id_behavior_t  behavior)
inlinestatic

Get a string that describes the given IP-ID behavior.

Parameters
behaviorThe type of the option to get a description for
Returns
The description of the option