TCP header description.
More...
#include <stdint.h>
#include <assert.h>
#include "config.h"
Go to the source code of this file.
|
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
} |
|
#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].
#define ROHC_PACKET_TYPE_IR 0xFD |
#define ROHC_PACKET_TYPE_IR_DYN 0xF8 |
#define ROHC_TCP_MAX_IP_EXT_HDRS 20U |
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.
#define ROHC_TCP_MAX_IP_HDRS 10U |
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.
#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
#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
#define RSF_FIN_ONLY 0x01 |
#define RSF_RST_ONLY 0x04 |
#define RSF_SYN_ONLY 0x02 |
#define TCP_INDEX_GENERIC10 10U |
#define TCP_INDEX_GENERIC11 11U |
#define TCP_INDEX_GENERIC12 12U |
#define TCP_INDEX_GENERIC13 13U |
#define TCP_INDEX_GENERIC14 14U |
#define TCP_INDEX_GENERIC15 15U |
#define TCP_INDEX_GENERIC7 7U |
#define TCP_INDEX_GENERIC8 8U |
#define TCP_INDEX_GENERIC9 9U |
#define TCP_INDEX_SACK 6U |
#define TCP_INDEX_SACK_PERM 5U |
#define TCP_OLEN_SACK_PERM 2U |
#define TCP_SACK_BLOCKS_MAX_NR 4U |
The maximum number of SACK blocks in the TCP SACK option
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
|
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
|
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
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