29 #ifndef ROHC_COMP_TCP_OPTS_LIST_H
30 #define ROHC_COMP_TCP_OPTS_LIST_H
54 #define MAX_TCP_OPT_SIZE 40U
131 const uint8_t *
const opts,
132 const size_t data_offset)
133 __attribute__((warn_unused_result, nonnull(1, 2)));
136 const struct tcphdr *
const tcp,
138 size_t *
const opts_len)
139 __attribute__((warn_unused_result, nonnull(1, 2, 3)));
142 const struct tcphdr *
const tcp,
144 const bool is_dynamic_chain,
146 uint8_t *
const comp_opts,
147 const size_t comp_opts_max_len)
148 __attribute__((warn_unused_result, nonnull(1, 2, 5, 6)));
151 const struct tcphdr *
const tcp,
154 uint8_t *
const comp_opts,
155 const size_t comp_opts_max_len)
156 __attribute__((warn_unused_result, nonnull(1, 2, 4, 5)));
size_t age
Definition: c_tcp_opts_list.h:50
size_t nr_trans
Definition: c_tcp_opts_list.h:49
bool used
Definition: c_tcp_opts_list.h:45
The Selective Acknowlegment TCP option.
Definition: tcp.h:200
size_t nr_opt_ts_reply_bits_0x40000
Definition: c_tcp_opts_list.h:104
bool opt_ts_present
Definition: c_tcp_opts_list.h:85
uint8_t structure[ROHC_TCP_OPTS_MAX]
Definition: c_tcp_opts_list.h:118
size_t nr_opt_ts_req_bits_0x40000
Definition: c_tcp_opts_list.h:95
size_t structure_nr
Definition: c_tcp_opts_list.h:117
int c_tcp_code_tcp_opts_irreg(const struct rohc_comp_ctxt *const context, const struct tcphdr *const tcp, const uint16_t msn, struct c_tcp_opts_ctxt *const opts_ctxt, uint8_t *const comp_opts, const size_t comp_opts_max_len)
Build the list of TCP options for the irregular chain.
Definition: c_tcp_opts_list.c:878
#define MAX_TCP_OPT_SIZE
Definition: c_tcp_opts_list.h:54
uint32_t ts_reply
Definition: c_tcp_opts_list.h:89
The ROHC compressor.
Definition: rohc_comp_internals.h:121
uint8_t position2index[ROHC_TCP_OPTS_MAX]
Definition: c_tcp_opts_list.h:80
size_t nr
Definition: c_tcp_opts_list.h:78
uint8_t raw[MAX_TCP_OPT_SIZE]
Definition: c_tcp_opts_list.h:58
struct c_tcp_opt_ctxt list[MAX_TCP_OPTION_INDEX+1]
Definition: c_tcp_opts_list.h:119
size_t data_len
Definition: c_tcp_opts_list.h:52
size_t structure_nr_trans
Definition: c_tcp_opts_list.h:116
bool is_list_item_present[MAX_TCP_OPTION_INDEX+1]
Definition: c_tcp_opts_list.h:75
size_t nr_opt_ts_req_bits_minus_1
Definition: c_tcp_opts_list.h:92
bool is_timestamp_init
Definition: c_tcp_opts_list.h:121
struct c_tcp_opts_ctxt_tmp tmp
Definition: c_tcp_opts_list.h:126
union c_tcp_opt_ctxt::@20 data
size_t nr_opt_ts_reply_bits_0x4000000
Definition: c_tcp_opts_list.h:107
Definition: c_tcp_opts_list.h:112
Defines a W-LSB encoding object.
Definition: comp_wlsb.c:55
bool tcp_detect_options_changes(struct rohc_comp_ctxt *const context, const struct tcphdr *const tcp, struct c_tcp_opts_ctxt *const opts_ctxt, size_t *const opts_len)
Parse the uncompressed TCP options for changes.
Definition: c_tcp_opts_list.c:480
Internal structures for ROHC compression.
The ROHC compression context.
Definition: rohc_comp_internals.h:306
bool do_list_static_changed
Definition: c_tcp_opts_list.h:73
size_t nr_opt_ts_reply_bits_minus_1
Definition: c_tcp_opts_list.h:101
uint8_t idx_max
Definition: c_tcp_opts_list.h:82
uint32_t ts_req
Definition: c_tcp_opts_list.h:87
The TCP base header without options.
Definition: tcp.h:115
#define MAX_TCP_OPTION_INDEX
The largest index that may be used to identify one TCP option.
Definition: tcp.h:76
struct c_wlsb * ts_req_wlsb
Definition: c_tcp_opts_list.h:122
uint8_t type
Definition: c_tcp_opts_list.h:47
struct tcp_option_timestamp timestamp
Definition: c_tcp_opts_list.h:60
Definition: c_tcp_opts_list.h:66
The compression context for one TCP option.
Definition: c_tcp_opts_list.h:42
bool rohc_comp_tcp_are_options_acceptable(const struct rohc_comp *const comp, const uint8_t *const opts, const size_t data_offset)
Whether TCP options are acceptable for TCP profile or not.
Definition: c_tcp_opts_list.c:287
struct c_wlsb * ts_reply_wlsb
Definition: c_tcp_opts_list.h:123
#define ROHC_TCP_OPTS_MAX
The maximum of TCP options supported by the TCP profile.
Definition: tcp.h:102
size_t nr_opt_ts_req_bits_0x4000000
Definition: c_tcp_opts_list.h:98
sack_block_t sack_blocks[4]
Definition: c_tcp_opts_list.h:59
int c_tcp_code_tcp_opts_list_item(const struct rohc_comp_ctxt *const context, const struct tcphdr *const tcp, const uint16_t msn, const bool is_dynamic_chain, struct c_tcp_opts_ctxt *const opts_ctxt, uint8_t *const comp_opts, const size_t comp_opts_max_len)
Build the list of TCP options items.
Definition: c_tcp_opts_list.c:700
bool do_list_struct_changed
Definition: c_tcp_opts_list.h:70