29 #ifndef ROHC_DECOMP_TCP_DEFINES_H 30 #define ROHC_DECOMP_TCP_DEFINES_H 37 #include "schemes/ip_ctxt.h" 39 #include "schemes/tcp_ts.h" 40 #include "schemes/tcp_sack.h" 88 #if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ 89 (defined(__GNUC__) && defined(__GNUC_MINOR__) && \ 90 (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))) 92 "data in d_tcp_opt_ctxt should be aligned on 8 bytes");
94 "data.eol in d_tcp_opt_ctxt should be aligned on 8 bytes");
96 "data.mss in d_tcp_opt_ctxt should be aligned on 8 bytes");
98 "data.ws in d_tcp_opt_ctxt should be aligned on 8 bytes");
100 "data.ts in d_tcp_opt_ctxt should be aligned on 8 bytes");
102 "data.sack in d_tcp_opt_ctxt should be aligned on 8 bytes");
104 "data.generic in d_tcp_opt_ctxt should be aligned on 8 bytes");
106 "data.generic.load in d_tcp_opt_ctxt should be aligned on 8 bytes");
108 "d_tcp_opt_ctxt length should be multiple of 8 bytes");
135 #if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ 136 (defined(__GNUC__) && defined(__GNUC_MINOR__) && \ 137 (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))) 139 "structure in d_tcp_opts_ctxt should be aligned on 8 bytes");
140 _Static_assert((offsetof(
struct d_tcp_opts_ctxt, expected_dynamic) % 8) == 0,
141 "expected_dynamic in d_tcp_opts_ctxt should be aligned on 8 bytes");
143 "found in d_tcp_opts_ctxt should be aligned on 8 bytes");
145 "bits in d_tcp_opts_ctxt should be aligned on 8 bytes");
147 "d_tcp_opts_ctxt length should be multiple of 8 bytes");
204 #if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ 205 (defined(__GNUC__) && defined(__GNUC_MINOR__) && \ 206 (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))) 207 _Static_assert((offsetof(
struct d_tcp_context, seq_lsb_ctxt) % 8) == 0,
208 "seq_lsb_ctxt in d_tcp_context should be aligned on 8 bytes");
209 _Static_assert((offsetof(
struct d_tcp_context, seq_scaled_lsb_ctxt) % 8) == 0,
210 "seq_scaled_lsb_ctxt in d_tcp_context should be aligned on 8 bytes");
211 _Static_assert((offsetof(
struct d_tcp_context, ack_lsb_ctxt) % 8) == 0,
212 "ack_lsb_ctxt in d_tcp_context should be aligned on 8 bytes");
213 _Static_assert((offsetof(
struct d_tcp_context, ack_scaled_lsb_ctxt) % 8) == 0,
214 "ack_scaled_lsb_ctxt in d_tcp_context should be aligned on 8 bytes");
215 _Static_assert((offsetof(
struct d_tcp_context, window_lsb_ctxt) % 8) == 0,
216 "window_lsb_ctxt in d_tcp_context should be aligned on 8 bytes");
217 _Static_assert((offsetof(
struct d_tcp_context, tcp_opts) % 8) == 0,
218 "tcp_opts in d_tcp_context should be aligned on 8 bytes");
219 _Static_assert((offsetof(
struct d_tcp_context, opt_ts_req_lsb_ctxt) % 8) == 0,
220 "opt_ts_req_lsb_ctxt in d_tcp_context should be aligned on 8 bytes");
221 _Static_assert((offsetof(
struct d_tcp_context, opt_ts_rep_lsb_ctxt) % 8) == 0,
222 "opt_ts_rep_lsb_ctxt in d_tcp_context should be aligned on 8 bytes");
223 _Static_assert((offsetof(
struct d_tcp_context, opt_sack_blocks) % 8) == 0,
224 "opt_sack_blocks in d_tcp_context should be aligned on 8 bytes");
225 _Static_assert((offsetof(
struct d_tcp_context, ip_contexts) % 8) == 0,
226 "ip_contexts in d_tcp_context should be aligned on 8 bytes");
228 "d_tcp_context length should be multiple of 8 bytes");
274 #if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ 275 (defined(__GNUC__) && defined(__GNUC_MINOR__) && \ 276 (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))) 278 "id in rohc_tcp_extr_ip_bits should be aligned on 8 bytes");
280 "ttl_hl in rohc_tcp_extr_ip_bits should be aligned on 8 bytes");
282 "saddr in rohc_tcp_extr_ip_bits should be aligned on 8 bytes");
284 "daddr in rohc_tcp_extr_ip_bits should be aligned on 8 bytes");
286 "opts in rohc_tcp_extr_ip_bits should be aligned on 8 bytes");
288 "rohc_tcp_extr_ip_bits length should be multiple of 8 bytes");
352 #if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ 353 (defined(__GNUC__) && defined(__GNUC_MINOR__) && \ 354 (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))) 356 "msn in rohc_tcp_extr_bits should be aligned on 8 bytes");
358 "seq in rohc_tcp_extr_bits should be aligned on 8 bytes");
360 "seq_scaled in rohc_tcp_extr_bits should be aligned on 8 bytes");
362 "ack in rohc_tcp_extr_bits should be aligned on 8 bytes");
364 "ack_scaled in rohc_tcp_extr_bits should be aligned on 8 bytes");
366 "tcp_opts in rohc_tcp_extr_bits should be aligned on 8 bytes");
368 "ip in rohc_tcp_extr_bits should be aligned on 8 bytes");
370 "ip_nr in rohc_tcp_extr_bits should be aligned on 8 bytes");
372 "psh_flag_bits_nr in rohc_tcp_extr_bits should be aligned on 8 bytes");
374 "rohc_tcp_extr_bits length should be multiple of 8 bytes");
408 #if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ 409 (defined(__GNUC__) && defined(__GNUC_MINOR__) && \ 410 (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))) 412 "saddr in rohc_tcp_decoded_ip_values should be aligned on 8 bytes");
414 "daddr in rohc_tcp_decoded_ip_values should be aligned on 8 bytes");
416 "opts in rohc_tcp_decoded_ip_values should be aligned on 8 bytes");
418 "opts_len in rohc_tcp_decoded_ip_values should be aligned on 8 bytes");
420 "rohc_tcp_decoded_ip_values length should be multiple of 8 bytes");
483 #if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ 484 (defined(__GNUC__) && defined(__GNUC_MINOR__) && \ 485 (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))) 487 "opt_ts_req in rohc_tcp_decoded_values should be aligned on 8 bytes");
489 "tcp_opts in rohc_tcp_decoded_values should be aligned on 8 bytes");
491 "opt_sack_blocks in rohc_tcp_decoded_values should be aligned on 8 bytes");
493 "ip in rohc_tcp_decoded_values should be aligned on 8 bytes");
495 "rohc_tcp_decoded_values length should be multiple of 8 bytes");
uint8_t len
Definition: d_tcp_defines.h:53
uint32_t ack_num
Definition: d_tcp_defines.h:435
uint8_t rsf_flags
Definition: d_tcp_defines.h:459
bits_nr_t daddr_nr
Definition: d_tcp_defines.h:269
uint32_t ack_stride
Definition: d_tcp_defines.h:170
rohc_cid_t cr_base_cid
Definition: d_tcp_defines.h:469
bits_nr_t dst_port_nr
Definition: d_tcp_defines.h:328
struct d_tcp_opt_ctxt::@41::@43 mss
#define ROHC_TCP_OPT_MAX_LEN
The maximum length of TCP options supported by the TCP profile.
Definition: rfc6846.h:58
bits_nr_t flowid_nr
Definition: d_tcp_defines.h:266
Definition: d_tcp_defines.h:425
uint16_t tcp_check
Definition: d_tcp_defines.h:445
uint32_t ack_num_residue
Definition: d_tcp_defines.h:171
uint16_t msn
Definition: d_tcp_defines.h:441
uint32_t flowid
Definition: d_tcp_defines.h:251
bool used
Definition: d_tcp_defines.h:83
bits_nr_t ecn_used_bits_nr
Definition: d_tcp_defines.h:330
uint32_t opt_ts_rep
Definition: d_tcp_defines.h:429
uint32_t dscp_bits
Definition: d_tcp_defines.h:252
uint16_t dst_port
Definition: d_tcp_defines.h:450
uint16_t urg_ptr
Definition: d_tcp_defines.h:177
uint8_t proto
Definition: d_tcp_defines.h:248
uint8_t ttl
Definition: d_tcp_defines.h:389
uint16_t tcp_check
Definition: d_tcp_defines.h:308
bool ttl_dyn_chain_flag
Definition: d_tcp_defines.h:344
Definition: decomp_wlsb.h:99
uint8_t proto
Definition: d_tcp_defines.h:391
uint32_t df
Definition: d_tcp_defines.h:253
uint16_t opts_len
Definition: d_tcp_defines.h:245
uint16_t ack_flag_bits
Definition: d_tcp_defines.h:314
uint16_t window
Definition: d_tcp_defines.h:444
uint16_t opts_len
Definition: d_tcp_defines.h:386
Definition: d_tcp_defines.h:233
uint8_t ttl_dyn_chain_flag
Definition: d_tcp_defines.h:462
uint8_t value
Definition: d_tcp_defines.h:63
uint16_t res_flags_bits
Definition: d_tcp_defines.h:310
uint8_t res_flags
Definition: d_tcp_defines.h:457
bool do_ctxt_replication
Definition: d_tcp_defines.h:341
uint8_t ecn_flags
Definition: d_tcp_defines.h:458
bits_nr_t ecn_flags_bits_nr
Definition: d_tcp_defines.h:331
uint16_t dst_port
Definition: d_tcp_defines.h:307
uint8_t ecn_used
Definition: d_tcp_defines.h:181
Definition: decomp/schemes/tcp_sack.h:38
bits_nr_t df_nr
Definition: d_tcp_defines.h:264
bits_nr_t saddr_nr
Definition: d_tcp_defines.h:267
uint8_t ip_nr
Definition: d_tcp_defines.h:478
uint16_t ecn_flags_bits
Definition: d_tcp_defines.h:312
The Least Significant Bits (LSB) decoding object.
Definition: decomp_wlsb.h:59
uint16_t value
Definition: d_tcp_defines.h:58
bits_nr_t id_behavior_nr
Definition: d_tcp_defines.h:262
Definition: d_tcp_defines.h:76
uint16_t src_port
Definition: d_tcp_defines.h:306
Definition: comp/schemes/ip_ctxt.h:64
uint16_t src_port
Definition: d_tcp_defines.h:449
Definition: decomp_wlsb.h:117
uint8_t load[ROHC_TCP_OPT_MAX_LEN]
Definition: d_tcp_defines.h:73
struct d_tcp_opt_ctxt::@41::@42 eol
bits_nr_t src_port_nr
Definition: d_tcp_defines.h:327
uint8_t df
Definition: d_tcp_defines.h:393
uint8_t ip_contexts_nr
Definition: d_tcp_defines.h:190
union d_tcp_opt_ctxt::@41 data
#define MAX_TCP_OPTION_INDEX
The largest index that may be used to identify one TCP option.
Definition: rfc6846.h:67
uint8_t id_behavior
Definition: d_tcp_defines.h:396
struct d_tcp_opt_sack sack
Definition: d_tcp_defines.h:70
uint32_t seq_num_residue
Definition: d_tcp_defines.h:434
bool is_static
Definition: d_tcp_defines.h:52
uint32_t dscp
Definition: d_tcp_defines.h:401
ROHC packets for the ROHCv1 IP/TCP profile defined in RFC6846.
struct d_tcp_opt_ctxt::@41::@46 generic
Definition: d_tcp_defines.h:46
bits_nr_t urg_flag_bits_nr
Definition: d_tcp_defines.h:332
uint8_t ecn_used
Definition: d_tcp_defines.h:453
Window-based Least Significant Bits (W-LSB) decoding.
bits_nr_t proto_nr
Definition: d_tcp_defines.h:263
uint16_t unused
Definition: d_tcp_defines.h:317
Definition: d_tcp_defines.h:152
uint32_t version
Definition: d_tcp_defines.h:402
#define ROHC_MAX_IP_EXT_HDRS
The maximum number of IP extension headers supported.
Definition: protocols/ip.h:69
uint8_t load_len
Definition: d_tcp_defines.h:80
uint16_t ack_num_residue
Definition: d_tcp_defines.h:437
uint8_t ack_flag
Definition: d_tcp_defines.h:455
uint32_t seq_num_scaled
Definition: d_tcp_defines.h:433
uint16_t rsf_flags_bits
Definition: d_tcp_defines.h:316
struct d_tcp_opt_ctxt::@41::@44 ws
uint8_t rsf_flags
Definition: d_tcp_defines.h:185
bits_nr_t dscp_bits_nr
Definition: d_tcp_defines.h:265
uint8_t opts_nr
Definition: d_tcp_defines.h:387
uint8_t ip_nr
Definition: d_tcp_defines.h:325
uint32_t opt_ts_req
Definition: d_tcp_defines.h:428
uint16_t ack_stride
Definition: d_tcp_defines.h:438
uint8_t res_flags
Definition: d_tcp_defines.h:180
uint8_t version
Definition: d_tcp_defines.h:257
uint16_t psh_flag_bits
Definition: d_tcp_defines.h:315
uint16_t ecn_used_bits
Definition: d_tcp_defines.h:311
uint8_t urg_flag
Definition: d_tcp_defines.h:454
Definition: decomp_wlsb.h:81
struct rohc_lsb_field32 req
Definition: d_tcp_defines.h:67
bits_nr_t res_flags_bits_nr
Definition: d_tcp_defines.h:329
Definition: d_tcp_defines.h:379
bits_nr_t ack_flag_bits_nr
Definition: d_tcp_defines.h:333
uint8_t unused
Definition: d_tcp_defines.h:186
uint8_t ecn_flags
Definition: d_tcp_defines.h:182
uint8_t bits_nr_t
A number of bits required or retrieved.
Definition: rohc_internal.h:205
uint16_t rohc_cid_t
Definition: rohc.h:196
uint8_t urg_flag
Definition: d_tcp_defines.h:183
enum d_tcp_opt_ctxt::@41::@46::@47 type
bits_nr_t rsf_flags_bits_nr
Definition: d_tcp_defines.h:336
rohc_cid_t cr_base_cid
Definition: d_tcp_defines.h:339
uint8_t type
Definition: d_tcp_defines.h:84
uint32_t ack_num_scaled
Definition: d_tcp_defines.h:436
uint8_t rnd
Definition: d_tcp_defines.h:395
uint8_t unused[7]
Definition: decomp/schemes/tcp_sack.h:42
struct d_tcp_opt_ctxt::@41::@45 ts
bits_nr_t ecn_flags_bits_nr
Definition: d_tcp_defines.h:261
uint8_t ecn_flags_bits
Definition: d_tcp_defines.h:258
uint8_t unused2
Definition: d_tcp_defines.h:348
The TCP compression context for one IPv4 or IPv6 header.
Definition: comp/schemes/ip_ctxt.h:76
uint32_t ecn_flags
Definition: d_tcp_defines.h:400
uint8_t psh_flag
Definition: d_tcp_defines.h:456
uint8_t id_behavior
Definition: d_tcp_defines.h:259
uint8_t ttl_irreg_chain_flag
Definition: d_tcp_defines.h:464
uint16_t tcp_src_port
Definition: d_tcp_defines.h:173
uint16_t urg_ptr
Definition: d_tcp_defines.h:446
Defines the common IPv4/v6 header.
uint8_t ack_flag
Definition: d_tcp_defines.h:184
#define ROHC_TCP_OPTS_MAX
The maximum of TCP options supported by the TCP profile.
Definition: tcp.h:124
Definition: d_tcp_defines.h:113
Definition: d_tcp_defines.h:78
uint8_t do_ctxt_replication
Definition: d_tcp_defines.h:467
uint32_t unused
Definition: d_tcp_defines.h:255
uint8_t opts_nr
Definition: d_tcp_defines.h:246
bits_nr_t psh_flag_bits_nr
Definition: d_tcp_defines.h:335
bool ttl_irreg_chain_flag
Definition: d_tcp_defines.h:346
uint8_t nbo
Definition: d_tcp_defines.h:394
uint8_t nr
Definition: d_tcp_defines.h:119
struct rohc_lsb_field32 rep
Definition: d_tcp_defines.h:68
uint16_t id
Definition: d_tcp_defines.h:390
uint32_t seq_num
Definition: d_tcp_defines.h:432
uint8_t unused
Definition: d_tcp_defines.h:397
uint32_t seq_num_residue
Definition: d_tcp_defines.h:169
#define ROHC_MAX_IP_HDRS
The maximum number of IP headers supported.
Definition: protocols/ip.h:46
Definition: d_tcp_defines.h:293
uint32_t flowid
Definition: d_tcp_defines.h:399
uint16_t tcp_dst_port
Definition: d_tcp_defines.h:174
Compute the interpretation interval for LSB and W-LSB encoding.
Definition: d_tcp_defines.h:77
uint16_t urg_flag_bits
Definition: d_tcp_defines.h:313