TCP header description.
More...
#include <stdint.h>
#include <assert.h>
#include "config.h"
Go to the source code of this file.
|
enum | rohc_tcp_chain_t {
ROHC_TCP_CHAIN_STATIC = 0,
ROHC_TCP_CHAIN_DYNAMIC = 1,
ROHC_TCP_CHAIN_REPLICATE = 2,
ROHC_TCP_CHAIN_IRREGULAR = 3,
ROHC_TCP_CHAIN_CO = 4
} |
| The different chains used by the TCP profile. More...
|
|
enum | rohc_tcp_option_type_t {
TCP_OPT_EOL = 0U,
TCP_OPT_NOP = 1U,
TCP_OPT_MSS = 2U,
TCP_OPT_WS = 3U,
TCP_OPT_SACK_PERM = 4U,
TCP_OPT_SACK = 5U,
TCP_OPT_TS = 8U,
TCP_OPT_MAX = 255U
} |
|
enum | tcp_ip_id_behavior_t { IP_ID_BEHAVIOR_SEQ = 0,
IP_ID_BEHAVIOR_SEQ_SWAP = 1,
IP_ID_BEHAVIOR_RAND = 2,
IP_ID_BEHAVIOR_ZERO = 3
} |
|
enum | { ROHC_TCP_PORT_STATIC = 0,
ROHC_TCP_PORT_LSB8 = 1,
ROHC_TCP_PORT_IRREGULAR = 2,
ROHC_TCP_PORT_RESERVED = 3
} |
| The different presence flags for port_replicate() encoding scheme. More...
|
|
◆ MAX_TCP_OPTION_INDEX
#define MAX_TCP_OPTION_INDEX 15U |
The largest index that may be used to identify one TCP option.
The ROHC standard defines that one TCP option is identified by an index. It also defines that index is in range [0 ; 15].
◆ ROHC_PACKET_TYPE_IR
#define ROHC_PACKET_TYPE_IR 0xFD |
◆ ROHC_PACKET_TYPE_IR_CR
#define ROHC_PACKET_TYPE_IR_CR 0xfc |
◆ ROHC_PACKET_TYPE_IR_DYN
#define ROHC_PACKET_TYPE_IR_DYN 0xF8 |
◆ ROHC_TCP_MAX_IP_EXT_HDRS
#define ROHC_TCP_MAX_IP_EXT_HDRS 5U |
The maximum number of IP extension header supported by the TCP profile.
The limit value was chosen arbitrarily. It should handle most real-life case without hurting performances nor memory footprint.
◆ ROHC_TCP_MAX_IP_HDRS
#define ROHC_TCP_MAX_IP_HDRS 2U |
The maximum number of IP headers supported by the TCP profile.
The limit value was chosen arbitrarily. It should handle most real-life case without hurting performances nor memory footprint.
◆ ROHC_TCP_OPTS_MAX
#define ROHC_TCP_OPTS_MAX 15U |
The maximum of TCP options supported by the TCP profile.
One TCP header may contain up to 40 bytes of options, so it may contain up 40 1-byte options, so the ROHC (de)compressors should expect such TCP packets. However the m field in the compressed list of TCP options (see RFC 6846, section 6.3.3 for more details) cannot be larger than 15, so restrict the number of TCP options that value. One TCP packet with more than 15 TCP options will be compressed with the IP-only profile.
- See also
- ROHC_TCP_OPTS_MAX_PROTO
◆ ROHC_TCP_OPTS_MAX_PROTO
#define ROHC_TCP_OPTS_MAX_PROTO 40U |
The maximum of TCP options supported by the TCP protocol.
One TCP header may contain up to 40 bytes of options, so it may contain up 40 1-byte options.
- See also
- ROHC_TCP_OPTS_MAX
◆ RSF_FIN_ONLY
#define RSF_FIN_ONLY 0x01 |
◆ RSF_NONE
◆ RSF_RST_ONLY
#define RSF_RST_ONLY 0x04 |
◆ RSF_SYN_ONLY
#define RSF_SYN_ONLY 0x02 |
◆ TCP_INDEX_EOL
◆ TCP_INDEX_GENERIC10
#define TCP_INDEX_GENERIC10 10U |
◆ TCP_INDEX_GENERIC11
#define TCP_INDEX_GENERIC11 11U |
◆ TCP_INDEX_GENERIC12
#define TCP_INDEX_GENERIC12 12U |
◆ TCP_INDEX_GENERIC13
#define TCP_INDEX_GENERIC13 13U |
◆ TCP_INDEX_GENERIC14
#define TCP_INDEX_GENERIC14 14U |
◆ TCP_INDEX_GENERIC15
#define TCP_INDEX_GENERIC15 15U |
◆ TCP_INDEX_GENERIC7
#define TCP_INDEX_GENERIC7 7U |
◆ TCP_INDEX_GENERIC8
#define TCP_INDEX_GENERIC8 8U |
◆ TCP_INDEX_GENERIC9
#define TCP_INDEX_GENERIC9 9U |
◆ TCP_INDEX_MSS
◆ TCP_INDEX_NOP
◆ TCP_INDEX_SACK
#define TCP_INDEX_SACK 6U |
◆ TCP_INDEX_SACK_PERM
#define TCP_INDEX_SACK_PERM 5U |
◆ TCP_INDEX_TS
◆ TCP_INDEX_WS
◆ TCP_OLEN_MSS
◆ TCP_OLEN_SACK_PERM
#define TCP_OLEN_SACK_PERM 2U |
◆ TCP_OLEN_TS
◆ TCP_OLEN_WS
◆ TCP_SACK_BLOCKS_MAX_NR
#define TCP_SACK_BLOCKS_MAX_NR 4U |
The maximum number of SACK blocks in the TCP SACK option
◆ anonymous enum
The different presence flags for port_replicate() encoding scheme.
Enumerator |
---|
ROHC_TCP_PORT_STATIC | port is static, so it is not transmitted
|
ROHC_TCP_PORT_LSB8 | port is not static and it is compressible
|
ROHC_TCP_PORT_IRREGULAR | port is not static and it is not compressible
|
ROHC_TCP_PORT_RESERVED | reserved value
|
◆ rohc_tcp_chain_t
The different chains used by the TCP profile.
Enumerator |
---|
ROHC_TCP_CHAIN_STATIC | The TCP static chain
|
ROHC_TCP_CHAIN_DYNAMIC | The TCP dynamic chain
|
ROHC_TCP_CHAIN_REPLICATE | The TCP replicate chain
|
ROHC_TCP_CHAIN_IRREGULAR | The TCP irregular chain
|
ROHC_TCP_CHAIN_CO | Not a chain, but in CO packet
|
◆ rohc_tcp_option_type_t
The different TCP options
Enumerator |
---|
TCP_OPT_EOL | The End of Option List (EOL) TCP option
|
TCP_OPT_NOP | The No OPeration (NOP) TCP option
|
TCP_OPT_MSS | The Maximum Segment Size (MSS) TCP option
|
TCP_OPT_WS | The Window Scale (WS) TCP option
|
TCP_OPT_SACK_PERM | The SACK Permitted TCP option
|
TCP_OPT_SACK | The Selective ACKnowledgement (SACK) TCP option
|
TCP_OPT_TS | The TimeStamp (TS) TCP option
|
TCP_OPT_MAX | The maximum TCP option
|
◆ tcp_ip_id_behavior_t
The different IP-ID behaviors
Enumerator |
---|
IP_ID_BEHAVIOR_SEQ | IP-ID increases
|
IP_ID_BEHAVIOR_SEQ_SWAP | IP-ID increases in little endian
|
IP_ID_BEHAVIOR_RAND | IP-ID is random
|
IP_ID_BEHAVIOR_ZERO | IP-ID is constant zero
|
◆ tcp_ip_id_behavior_get_descr()
Get a string that describes the given IP-ID behavior.
- Parameters
-
behavior | The type of the option to get a description for |
- Returns
- The description of the option
◆ tcp_opt_get_descr()
static char * tcp_opt_get_descr |
( |
const uint8_t |
opt_type | ) |
|
|
inlinestatic |
Get a string that describes the given option type.
- Parameters
-
opt_type | The type of the option to get a description for |
- Returns
- The description of the option