ROHC compression/decompression library
Data Structures | Defines | Enumerations | Functions | Variables
rohc.h File Reference

ROHC common definitions and routines. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

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

Defines

#define ROHC_DEPRECATED(msg)
#define ROHC_EXPORT
#define ROHC_ETHERTYPE   0x22f1
 The Ethertype assigned to the ROHC protocol by the IEEE.
#define ROHC_OK   1
 Return code: the action done without problem.
#define ROHC_ERROR_NO_CONTEXT   -1
 Return code: the action can not proceed because no context is defined.
#define ROHC_ERROR_PACKET_FAILED   -2
 Return code: the action failed due to an unattended or malformed packet.
#define ROHC_FEEDBACK_ONLY   -3
 Return code: the action failed because the packet only contains feedback info.
#define ROHC_ERROR_CRC   -4
 Return code: the action failed due to a CRC failure.
#define ROHC_ERROR   -5
 Return code: the action encountered a problem.
#define ROHC_NEED_REPARSE   -6
 Return code: the packet needs to be parsed again.
#define ROHC_LARGE_CID_MAX   ((1 << 14) - 1) /* 2^14 - 1 = 16383 */
#define ROHC_SMALL_CID_MAX   15
#define ROHC_PROFILE_UNCOMPRESSED   0x0000
 The number allocated for the ROHC Uncompressed profile (RFC 3095, 5.10)
#define ROHC_PROFILE_RTP   0x0001
 The number allocated for the ROHC RTP profile (RFC 3095, 8)
#define ROHC_PROFILE_UDP   0x0002
 The number allocated for the ROHC UDP profile (RFC 3095, 5.11)
#define ROHC_PROFILE_ESP   0x0003
 The number allocated for the ROHC ESP profile (RFC 3095, 5.12)
#define ROHC_PROFILE_IP   0x0004
 The number allocated for the ROHC IP-only profile (see 5 in the RFC 3843)
#define ROHC_PROFILE_UDPLITE   0x0008
 The number allocated for the ROHC UDP-Lite profile (see 7 in the RFC 4019)
#define CHANGE_TO_IR_COUNT   1700
 The maximal number of packets sent in > IR states (= FO and SO states) before changing back the state to IR (periodic refreshes)
#define CHANGE_TO_FO_COUNT   700
 The maximal number of packets sent in > FO states (= SO state) before changing back the state to FO (periodic refreshes)
#define MAX_IR_COUNT   3
 Defines the minimal number of packets that must be sent while in IR state before being able to switch to the FO state.
#define MAX_FO_COUNT   3
 Defines the minimal number of packets that must be sent while in FO state before being able to switch to the SO state.
#define ROHC_INIT_TS_STRIDE_MIN   3U
 Defines the minimal number of packets that must be sent while in INIT_STRIDE state before being able to switch to the SEND_SCALED state.
#define CRC_TYPE_2   1
#define CRC_TYPE_3   2
#define CRC_TYPE_6   3
#define CRC_TYPE_7   4
#define CRC_TYPE_8   5

Enumerations

enum  rohc_mode { U_MODE = 1, O_MODE = 2, R_MODE = 3 }
 ROHC operation modes (see 4.4 in the RFC 3095) More...
enum  rohc_cid_type_t { ROHC_LARGE_CID, ROHC_SMALL_CID }
 The different types of Context IDs (CID) a stream/context may use. More...

Functions

unsigned char ROHC_EXPORT
crc_table_2[256] 
ROHC_DEPRECATED ("please do not use this variable anymore, simply drop it")
char *ROHC_EXPORT rohc_version (void)
 Get the version of the ROHC library.
const char *ROHC_EXPORT rohc_get_mode_descr (const rohc_mode mode)
 Give a description for the given ROHC mode.
int ROHC_EXPORT crc_get_polynom (int type) ROHC_DEPRECATED("please do not use this function anymore
void ROHC_EXPORT crc_init_table (unsigned char *table, unsigned char polynum) ROHC_DEPRECATED("please do not use this function anymore

Variables

int ROHC_EXPORT simply drop it

Detailed Description

ROHC common definitions and routines.

Author:
Didier Barvaux <didier.barvaux@toulouse.viveris.com>
Didier Barvaux <didier@barvaux.org>
The hackers from ROHC for Linux

Define Documentation

#define CHANGE_TO_FO_COUNT   700

The maximal number of packets sent in > FO states (= SO state) before changing back the state to FO (periodic refreshes)

Referenced by rohc_alloc_compressor().

#define CHANGE_TO_IR_COUNT   1700

The maximal number of packets sent in > IR states (= FO and SO states) before changing back the state to IR (periodic refreshes)

Referenced by rohc_alloc_compressor().

#define CRC_TYPE_2   1

The CRC-2 type (deprecated)

#define CRC_TYPE_3   2

The CRC-3 type (deprecated)

#define CRC_TYPE_6   3

The CRC-6 type (deprecated)

#define CRC_TYPE_7   4

The CRC-7 type (deprecated)

#define CRC_TYPE_8   5

The CRC-8 type (deprecated)

#define MAX_FO_COUNT   3

Defines the minimal number of packets that must be sent while in FO state before being able to switch to the SO state.

Referenced by c_init_header_info(), changed_dynamic_one_hdr(), changed_static_one_hdr(), code_EXT3_packet(), code_UOR2_ID_bytes(), decide_state(), header_fields(), and header_flags().

#define MAX_IR_COUNT   3

Defines the minimal number of packets that must be sent while in IR state before being able to switch to the FO state.

Referenced by c_udp_lite_create(), decide_state(), rtp_changed_rtp_dynamic(), rtp_decide_state(), rtp_header_flags_and_fields(), udp_changed_udp_dynamic(), and udp_lite_send_cce_packet().

#define ROHC_DEPRECATED (   msg)

Macro that handles deprecated declarations gracefully

#define ROHC_ERROR   -5
#define ROHC_ERROR_CRC   -4

Return code: the action failed due to a CRC failure.

Referenced by d_optimistic_feedback(), and rohc_decompress().

#define ROHC_ERROR_NO_CONTEXT   -1

Return code: the action can not proceed because no context is defined.

Referenced by d_decode_header(), d_optimistic_feedback(), and rohc_decompress().

#define ROHC_ERROR_PACKET_FAILED   -2

Return code: the action failed due to an unattended or malformed packet.

Referenced by d_optimistic_feedback(), and rohc_decompress().

#define ROHC_ETHERTYPE   0x22f1

The Ethertype assigned to the ROHC protocol by the IEEE.

See also:
http://standards.ieee.org/regauth/ethertype/eth.txt
#define ROHC_EXPORT

Macro that handles DLL export declarations gracefully

#define ROHC_FEEDBACK_ONLY   -3

Return code: the action failed because the packet only contains feedback info.

Referenced by d_decode_header(), and rohc_decompress().

#define ROHC_INIT_TS_STRIDE_MIN   3U

Defines the minimal number of packets that must be sent while in INIT_STRIDE state before being able to switch to the SEND_SCALED state.

Referenced by rtp_code_dynamic_rtp_part(), and rtp_header_flags_and_fields().

#define ROHC_LARGE_CID_MAX   ((1 << 14) - 1) /* 2^14 - 1 = 16383 */

The maximum value for large CIDs

Referenced by d_optimistic_feedback(), f_append_cid(), rohc_c_set_max_cid(), and rohc_decomp_set_max_cid().

#define ROHC_NEED_REPARSE   -6

Return code: the packet needs to be parsed again.

#define ROHC_OK   1
#define ROHC_PROFILE_ESP   0x0003

The number allocated for the ROHC ESP profile (RFC 3095, 5.12)

#define ROHC_PROFILE_IP   0x0004

The number allocated for the ROHC IP-only profile (see 5 in the RFC 3843)

#define ROHC_PROFILE_RTP   0x0001

The number allocated for the ROHC RTP profile (RFC 3095, 8)

Referenced by code_EXT3_packet(), code_UO1_packet(), and code_UO2_packet().

#define ROHC_PROFILE_UDP   0x0002

The number allocated for the ROHC UDP profile (RFC 3095, 5.11)

#define ROHC_PROFILE_UDPLITE   0x0008

The number allocated for the ROHC UDP-Lite profile (see 7 in the RFC 4019)

#define ROHC_PROFILE_UNCOMPRESSED   0x0000

The number allocated for the ROHC Uncompressed profile (RFC 3095, 5.10)

Referenced by rohc_compress().

#define ROHC_SMALL_CID_MAX   15

Enumeration Type Documentation

The different types of Context IDs (CID) a stream/context may use.

Possible values are: ROHC_LARGE_CID, ROHC_SMALL_CID.

Small CID means CID in the $[0-ROHC\_SMALL\_CID\_MAX]$ interval.

Large CID means CID in the $[0-ROHC\_LARGE\_CID\_MAX]$ interval.

See also:
ROHC_SMALL_CID_MAX ROHC_LARGE_CID_MAX
Enumerator:
ROHC_LARGE_CID 

The context uses large CID.

Value in the $[0-ROHC\_LARGE\_CID\_MAX]$ interval.

ROHC_SMALL_CID 

The context uses small CID.

Value in the $[0-ROHC\_SMALL\_CID\_MAX]$ interval.

enum rohc_mode

ROHC operation modes (see 4.4 in the RFC 3095)

If you add a new operation mode, please also add the corresponding textual description in rohc_get_mode_descr.

Enumerator:
U_MODE 

The Unidirectional mode (U-mode)

O_MODE 

The Bidirectional Optimistic mode (O-mode)

R_MODE 

The Bidirectional Reliable mode (R-mode)


Function Documentation

int ROHC_EXPORT crc_get_polynom ( int  type)
void ROHC_EXPORT crc_init_table ( unsigned char *  table,
unsigned char  polynum 
)
unsigned char ROHC_EXPORT crc_table_2 [256] ROHC_DEPRECATED ( "please do not use this variable  anymore,
simply drop it  
)

The table to enable fast CRC-2 computation

Deprecated:
please do not use this variable anymore

The table to enable fast CRC-3 computation

Deprecated:
please do not use this variable anymore

The table to enable fast CRC-6 computation

Deprecated:
please do not use this variable anymore

The table to enable fast CRC-7 computation

Deprecated:
please do not use this variable anymore

The table to enable fast CRC-8 computation

Deprecated:
please do not use this variable anymore

Variable Documentation

void ROHC_EXPORT simply drop it