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