original files of m241
This commit is contained in:
@@ -0,0 +1,254 @@
|
||||
/* iprohc_constant.h - ROHC constants defining head file */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2008 Wind River Systems, Inc.
|
||||
*
|
||||
* The right to copy, distribute or otherwise make use of this software
|
||||
* may be licensed only pursuant to the terms of an applicable Wind River
|
||||
* license agreement. No license to Wind River intellectual property rights
|
||||
* is granted herein. All rights not licensed by Wind River are reserved
|
||||
* by Wind River.
|
||||
*/
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
01f,14may10,ggz Add TCP/IP profile
|
||||
01e,22feb10,ggz Add ESP/IP,UDP/IP profiles
|
||||
01d,03jul08,tlu Add max number of IP extension header
|
||||
01c,21may08,tlu Add more pkt type and define different MAX CID for
|
||||
small/large CID
|
||||
01b,20may08,tlu Add incremental constant for WLSB/LSB
|
||||
01a,25feb08,tlu Created.
|
||||
*/
|
||||
|
||||
#ifndef IPROHC_CONSTANT_H
|
||||
#define IPROHC_CONSTANT_H
|
||||
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* INCLUDE FILES
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
**************************************************************************
|
||||
* DEFINES
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/* Max size of a ROHC package. */
|
||||
#define IPROHC_MAX_PKT_SIZE 1440
|
||||
|
||||
/* Max number of ROHC profile IDs. */
|
||||
/* Refer to RFC 3095, section 5.1.2, and RFC 3843, section 3 */
|
||||
/* 0 -- uncompressed profile */
|
||||
/* 1 -- RTP/UDP/IP compression profile */
|
||||
/* 2 -- UDP/IP compression profile */
|
||||
/* 3 -- ESP/IP compression profile */
|
||||
/* 4 -- IP compression profile */
|
||||
/* 5 -- LLA IP/UDP/RTP compression profile */
|
||||
/* 6 -- TCP/IP compression profile */
|
||||
#define IPROHC_MIN_PROFILE_ID 0
|
||||
#define IPROHC_MAX_PROFILE_ID 6
|
||||
#define IPROHC_MAX_PROFILE_IDS 7
|
||||
|
||||
/* Max size of a ROHC interface name. */
|
||||
#define IPROHC_IF_NAME_MAX 16
|
||||
|
||||
/* Max small CID of ROHC context. */
|
||||
#define IPROHC_MAX_SMALL_CID 15
|
||||
|
||||
/* Max large CID of ROHC context. */
|
||||
#define IPROHC_MAX_LARGE_CID 16383
|
||||
|
||||
/* IPv4 header size */
|
||||
#define IPROHC_IP4_HDR_SIZE 20
|
||||
|
||||
/* IPv6 header size */
|
||||
#define IPROHC_IP6_HDR_SIZE 40
|
||||
|
||||
/* Max number of transmitted IR pkts before state changes from IR-->FO/SO */
|
||||
#define IPROHC_MAX_IRS 5
|
||||
|
||||
/* Max length of one ROHC feedback buffer. */
|
||||
#define IPROHC_MAX_FEEDBCK_BUF 20
|
||||
|
||||
/* RFC 3095, 5.3.2.2.3, k_1%n_1 in percentage */
|
||||
#define IPROHC_D_FULL_RATIO 30
|
||||
|
||||
/* RFC 3095, 5.3.2.2.3, k_2%n_2 in percentage */
|
||||
#define IPROHC_D_STATIC_RATIO 40
|
||||
|
||||
/* Increment value for WLSB/LSB */
|
||||
#define IPROHC_LSB_INC -1
|
||||
|
||||
/* Max number of compressed list items */
|
||||
#define IPROHC_MAX_LIST_ITEMS 127
|
||||
|
||||
|
||||
/* IPROHC product name */
|
||||
#define IPROHC_PRODUCT_NAME "WR Robust Header Compression"
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* ROHC profile IDs
|
||||
*===========================================================================
|
||||
*/
|
||||
|
||||
#define ROHC_PROFILE_UNCOMPRESSED 0
|
||||
#define ROHC_PROFILE_RTP_UDP_IP 1
|
||||
#define ROHC_PROFILE_UDP_IP 2
|
||||
#define ROHC_PROFILE_ESP_IP 3
|
||||
#define ROHC_PROFILE_IP 4
|
||||
#define ROHC_PROFILE_LLA_IP_UDP_RTP 5
|
||||
#define ROHC_PROFILE_TCP_IP 6
|
||||
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* ROHC modes
|
||||
*===========================================================================
|
||||
* refer to RFC 3095, section 5.7.6.1, and RFC 3843, section 3.4
|
||||
*/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ROHC_MODE_C = 0, /* Used in IR/IR-DYN/UOR-2 to decline a mode transition */
|
||||
ROHC_MODE_U,
|
||||
ROHC_MODE_O,
|
||||
ROHC_MODE_R
|
||||
} Iprohc_mode;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* ROHC feedback ACK types
|
||||
*===========================================================================
|
||||
* refer to RFC 3095, section 5.7.6.1
|
||||
*/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ROHC_FEEDBACK_ACK = 0,
|
||||
ROHC_FEEDBACK_NACK,
|
||||
ROHC_FEEDBACK_STATIC_NACK
|
||||
} Iprohc_feedback_acktype;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* ROHC feedback Options
|
||||
*===========================================================================
|
||||
* refer to RFC 3095, section 5.7.6.2, and RFC 3843, section 3.7
|
||||
*/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ROHC_FEEDBACK_OPT_CRC = 1,
|
||||
ROHC_FEEDBACK_OPT_REJ,
|
||||
ROHC_FEEDBACK_OPT_SN_NOT_VALID,
|
||||
ROHC_FEEDBACK_OPT_SN,
|
||||
ROHC_FEEDBACK_OPT_CLOCK,
|
||||
ROHC_FEEDBACK_OPT_JITTER,
|
||||
ROHC_FEEDBACK_OPT_LOSS,
|
||||
ROHC_FEEDBACK_OPT_NOT_USED,
|
||||
ROHC_FEEDBACK_OPT_CONTEXT_MEMORY
|
||||
} Iprohc_feedback_opt;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* ROHC packet type codes
|
||||
*===========================================================================
|
||||
*/
|
||||
|
||||
#define ROHC_PKT_NORMAL 3
|
||||
#define ROHC_PKT_IPV4 4 /* 0100 */
|
||||
#define ROHC_PKT_IPV6 6 /* 0110 */
|
||||
|
||||
#define ROHC_PKT_COMPRESSED 1
|
||||
#define ROHC_PKT_PAD 224 /* 11100000 */
|
||||
#define ROHC_PKT_ADD_CID 14 /* 1110 */
|
||||
#define ROHC_PKT_FEEDBACK 30 /* 11110 */
|
||||
#define ROHC_PKT_IR_DYN 248 /* 11111000 */
|
||||
#define ROHC_PKT_IR 126 /* 1111110 */
|
||||
#define ROHC_PKT_SEGMENT 127 /* 1111111 */
|
||||
#define ROHC_PKT_TYPE_0 0 /* 0 */
|
||||
#define ROHC_PKT_TYPE_1 2 /* 10 */
|
||||
#define ROHC_PKT_TYPE_2 6 /* 110 */
|
||||
#define ROHC_PKT_COMP_UNCOMPRESSED 5
|
||||
#define ROHC_TCP_PKT_IR 253 /* 11111101 */
|
||||
|
||||
#define ROHC_TCP_PKT_CO 0x7D /* '1111101' */
|
||||
#define ROHC_TCP_PKT_RND_1 0x2E /* '101110' */
|
||||
#define ROHC_TCP_PKT_RND_2 0xC /* '1100' */
|
||||
#define ROHC_TCP_PKT_RND_3 0x0 /* '0' */
|
||||
#define ROHC_TCP_PKT_RND_4 0xD /* '1101' */
|
||||
#define ROHC_TCP_PKT_RND_5 0x4 /* '100' */
|
||||
#define ROHC_TCP_PKT_RND_6 0xA /* '1010' */
|
||||
#define ROHC_TCP_PKT_RND_7 0x2F /* '101111' */
|
||||
#define ROHC_TCP_PKT_RND_8 0x16 /* '10110' */
|
||||
#define ROHC_TCP_PKT_SEQ_1 0xA /* '1010' */
|
||||
#define ROHC_TCP_PKT_SEQ_2 0x1A /* '11010' */
|
||||
#define ROHC_TCP_PKT_SEQ_3 0x9 /* '1001' */
|
||||
#define ROHC_TCP_PKT_SEQ_4 0x0 /* '0' */
|
||||
#define ROHC_TCP_PKT_SEQ_5 0x8 /* '1000' */
|
||||
#define ROHC_TCP_PKT_SEQ_6 0x1B /* '11011' */
|
||||
#define ROHC_TCP_PKT_SEQ_7 0xC /* '1100' */
|
||||
#define ROHC_TCP_PKT_SEQ_8 0xB /* '1011' */
|
||||
#define ROHC_TCP_PKT_NONE 0xFF
|
||||
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* ROHC packet type shift bits
|
||||
*===========================================================================
|
||||
*/
|
||||
|
||||
#define ROHC_PKT_IP_SHIFT 4
|
||||
#define ROHC_PKT_ADD_CID_SHIFT 4
|
||||
#define ROHC_PKT_FEEDBACK_SHIFT 3
|
||||
#define ROHC_PKT_IR_DYN_SHIFT 0
|
||||
#define ROHC_PKT_IR_SHIFT 1
|
||||
#define ROHC_PKT_SEGMENT_SHIFT 1
|
||||
#define ROHC_PKT_TYPE_0_SHIFT 7
|
||||
#define ROHC_PKT_TYPE_1_SHIFT 6
|
||||
#define ROHC_PKT_TYPE_2_SHIFT 5
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* ROHC extension type codes
|
||||
*===========================================================================
|
||||
*/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ROHC_EXT_NO_EXT = 0,
|
||||
ROHC_EXT_0,
|
||||
ROHC_EXT_1,
|
||||
ROHC_EXT_2,
|
||||
ROHC_EXT_3
|
||||
} Iprohc_extension;
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* #ifndef IPROHC__CONSTANT_H */
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* END OF FILE
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user