| 
    ROHC compression/decompression library
    
   | 
 
ROHC decompression context for the TCP profile. More...
#include "d_tcp_defines.h"#include "d_tcp_static.h"#include "d_tcp_dynamic.h"#include "d_tcp_replicate.h"#include "d_tcp_irregular.h"#include "d_tcp_opts_list.h"#include "rohc_decomp.h"#include "rohc_decomp_internals.h"#include "rohc_packets.h"#include "rohc_bit_ops.h"#include "rohc_traces_internal.h"#include "rohc_utils.h"#include "rohc_debug.h"#include "sdvl.h"#include "schemes/rfc4996.h"#include "schemes/decomp_wlsb.h"#include "schemes/decomp_crc.h"#include "schemes/tcp_sack.h"#include "schemes/tcp_ts.h"#include "protocols/tcp.h"#include "protocols/ip_numbers.h"#include "crc.h"#include "config.h"#include <string.h>#include <stdint.h>
Functions | |
| static bool | d_tcp_create_from_pkt (const struct rohc_decomp_ctxt *const context, struct d_tcp_context **const persist_ctxt, struct rohc_decomp_volat_ctxt *const volat_ctxt) | 
| Create the TCP decompression context.  More... | |
| static void | d_tcp_create_from_ctxt (struct rohc_decomp_ctxt *const ctxt, const struct rohc_tcp_decoded_values *const decoded) | 
| Create a new TCP context and initialize it thanks to the given context.  More... | |
| static void | d_tcp_destroy (struct d_tcp_context *const tcp_context, const struct rohc_decomp_volat_ctxt *const volat_ctxt) | 
| Destroy the context.  More... | |
| static rohc_packet_t | tcp_detect_packet_type (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, const size_t large_cid_len) | 
| Detect the type of ROHC packet for the TCP profile.  More... | |
| static uint32_t | d_tcp_get_msn (const struct rohc_decomp_ctxt *const context) | 
| Get the reference MSN value of the context.  More... | |
| static bool | d_tcp_parse_packet (const struct rohc_decomp_ctxt *const context, const struct rohc_buf rohc_packet, const size_t large_cid_len, rohc_packet_t *const packet_type, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const extr_bits, size_t *const rohc_hdr_len) | 
| Parse the given ROHC packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_ir (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, const size_t large_cid_len, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len) | 
| Parse the given IR packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_ir_cr (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, const size_t large_cid_len, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len) | 
| Parse the given IR-CR packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_irdyn (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, const size_t large_cid_len, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len) | 
| Parse othe given IR-DYN packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_CO (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, const size_t large_cid_len, const rohc_packet_t packet_type, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len) | 
| Parse the given CO packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_rnd_1 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given rnd_1 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_rnd_2 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given rnd_2 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_rnd_3 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given rnd_3 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_rnd_4 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given rnd_4 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_rnd_5 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given rnd_5 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_rnd_6 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given rnd_6 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_rnd_7 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given rnd_7 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_rnd_8 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given rnd_8 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_seq_1 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given seq_1 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_seq_2 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given seq_2 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_seq_3 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given seq_3 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_seq_4 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given seq_4 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_seq_5 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given seq_5 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_seq_6 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given seq_6 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_seq_7 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given seq_7 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_seq_8 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given seq_8 packet for the TCP profile.  More... | |
| static bool | d_tcp_parse_co_common (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, struct rohc_decomp_crc *const extr_crc, struct rohc_tcp_extr_bits *const bits, size_t *const rohc_hdr_len, bool *const has_opts_list) | 
| Parse the given co_common packet for the TCP profile.  More... | |
| static void | d_tcp_reset_extr_bits (const struct rohc_decomp_ctxt *const context, struct rohc_tcp_extr_bits *const bits) | 
| Reset the extracted bits for next parsing.  More... | |
| static rohc_status_t | d_tcp_decode_bits (const struct rohc_decomp_ctxt *const context, const struct rohc_tcp_extr_bits *const bits, const size_t payload_len, struct rohc_tcp_decoded_values *const decoded) | 
| Decode values from extracted bits.  More... | |
| static bool | d_tcp_decode_bits_ip_hdrs (const struct rohc_decomp_ctxt *const context, const struct rohc_tcp_extr_bits *const bits, struct rohc_tcp_decoded_values *const decoded) | 
| Decode values for all IP headers from extracted bits.  More... | |
| static bool | d_tcp_decode_bits_ip_hdr (const struct rohc_decomp_ctxt *const context, const struct rohc_tcp_extr_ip_bits *const ip_bits, const ip_context_t *const ip_context, const uint16_t decoded_msn, struct rohc_tcp_decoded_ip_values *const ip_decoded) | 
| Decode values for one IP header from extracted bits.  More... | |
| static bool | d_tcp_decode_bits_tcp_hdr (const struct rohc_decomp_ctxt *const context, const struct rohc_tcp_extr_bits *const bits, const size_t payload_len, struct rohc_tcp_decoded_values *const decoded) | 
| Decode values for the TCP header from extracted bits.  More... | |
| static void | d_tcp_decode_bits_tcp_flags (const struct rohc_decomp_ctxt *const context, const struct rohc_tcp_extr_bits *const bits, struct rohc_tcp_decoded_values *const decoded) | 
| Decode values for the TCP header flags from extracted bits.  More... | |
| static bool | d_tcp_decode_bits_tcp_opts (const struct rohc_decomp_ctxt *const context, const struct rohc_tcp_extr_bits *const bits, struct rohc_tcp_decoded_values *const decoded) | 
| Decode values for the TCP options from extracted bits.  More... | |
| static bool | d_tcp_decode_opt_ts_field (const struct rohc_decomp_ctxt *const context, const char *const descr, const struct rohc_lsb_decode *const lsb_ctxt, const struct rohc_lsb_field32 ts, uint32_t *const ts_decoded) | 
| Decode the given TS field of the TCP TimeStamp (TS) option.  More... | |
| static void | d_tcp_decode_opt_sack (const struct rohc_decomp_ctxt *const context, const uint32_t ack_num, const struct d_tcp_opt_sack bits, struct d_tcp_opt_sack *const decoded) | 
| Decode the TCP SACK option.  More... | |
| static bool | d_tcp_build_ipv4_hdr (const struct rohc_decomp_ctxt *const context, const struct rohc_tcp_decoded_ip_values *const decoded, struct rohc_buf *const uncomp_packet, size_t *const ip_hdr_len) | 
| Build one single uncompressed IPv4 header.  More... | |
| static bool | d_tcp_build_ipv6_hdr (const struct rohc_decomp_ctxt *const context, const struct rohc_tcp_decoded_ip_values *const decoded, struct rohc_buf *const uncomp_packet, size_t *const ip_hdr_len) | 
| Build one single uncompressed IPv6 header.  More... | |
| static bool | d_tcp_build_ip_hdr (const struct rohc_decomp_ctxt *const context, const struct rohc_tcp_decoded_ip_values *const decoded, struct rohc_buf *const uncomp_packet, size_t *const ip_hdr_len) | 
| Build one single uncompressed IP header.  More... | |
| static bool | d_tcp_build_ip_hdrs (const struct rohc_decomp_ctxt *const context, const struct rohc_tcp_decoded_values *const decoded, struct rohc_buf *const uncomp_packet, size_t *const ip_hdrs_len) | 
| Build all of the uncompressed IP headers.  More... | |
| static rohc_status_t | d_tcp_build_tcp_hdr (const struct rohc_decomp_ctxt *const context, const struct rohc_tcp_decoded_values *const decoded, struct rohc_buf *const uncomp_packet, size_t *const tcp_full_len) | 
| Build the uncompressed TCP header.  More... | |
| static rohc_status_t | d_tcp_build_hdrs (const struct rohc_decomp *const decomp, const struct rohc_decomp_ctxt *const context, const rohc_packet_t packet_type, const struct rohc_decomp_crc *const extr_crc, const struct rohc_tcp_decoded_values *const decoded, const size_t payload_len, struct rohc_buf *const uncomp_hdrs, size_t *const uncomp_hdrs_len) | 
| Build the uncompressed headers.  More... | |
| static bool | d_tcp_attempt_repair (const struct rohc_decomp *const decomp, const struct rohc_decomp_ctxt *const context, const struct rohc_ts pkt_arrival_time, struct rohc_decomp_crc_corr_ctxt *const crc_corr, struct rohc_tcp_extr_bits *const bits) | 
| Attempt a packet/context repair upon CRC failure.  More... | |
| static void | d_tcp_update_ctxt (struct rohc_decomp_ctxt *const context, const struct rohc_tcp_decoded_values *const decoded, const size_t payload_len, bool *const do_change_mode) | 
| Update the decompression context with the infos of current packet.  More... | |
Variables | |
| const struct rohc_decomp_profile | d_tcp_profile | 
| Define the decompression part of the TCP profile as described in the RFC 3095.  More... | |
ROHC decompression context for the TCP profile.
      
  | 
  static | 
Attempt a packet/context repair upon CRC failure.
| decomp | The ROHC decompressor | |
| context | The decompression context | |
| pkt_arrival_time | The arrival time of the ROHC packet that caused the CRC failure | |
| [in,out] | crc_corr | The context for corrections upon CRC failures | 
| [in,out] | bits | The bits extracted from the ROHC header | 
      
  | 
  static | 
Build the uncompressed headers.
Build all the uncompressed IP headers, TCP headers from the context and packet information.
| decomp | The ROHC decompressor | |
| context | The decompression context | |
| packet_type | The type of ROHC packet | |
| extr_crc | The CRC bits extracted from the ROHC header | |
| decoded | The values decoded from ROHC header | |
| payload_len | The length of the packet payload (in bytes) | |
| [out] | uncomp_hdrs | The uncompressed headers being built | 
| [out] | uncomp_hdrs_len | The length of the uncompressed headers written into the buffer | 
      
  | 
  static | 
Build one single uncompressed IP header.
Build one single uncompressed IP header - IPv4 or IPv6 - from the context and packet information.
| context | The decompression context | |
| decoded | The values decoded from the ROHC packet | |
| [out] | uncomp_packet | The uncompressed packet being built | 
| [out] | ip_hdr_len | The length of the IP header (in bytes) | 
      
  | 
  static | 
Build all of the uncompressed IP headers.
Build all of the uncompressed IP headers - IPv4 or IPv6 - from the context and packet information.
| context | The decompression context | |
| decoded | The values decoded from the ROHC packet | |
| [out] | uncomp_packet | The uncompressed packet being built | 
| [out] | ip_hdrs_len | The length of all the IP headers (in bytes) | 
      
  | 
  static | 
Build one single uncompressed IPv4 header.
Build one single uncompressed IPv4 header from the context and packet information.
| context | The decompression context | |
| decoded | The values decoded from the ROHC packet | |
| [out] | uncomp_packet | The uncompressed packet being built | 
| [out] | ip_hdr_len | The length of the IPv4 header (in bytes) | 
      
  | 
  static | 
Build one single uncompressed IPv6 header.
Build one single uncompressed IPv6 header - including IPv6 extension headers - from the context and packet information.
| context | The decompression context | |
| decoded | The values decoded from the ROHC packet | |
| [out] | uncomp_packet | The uncompressed packet being built | 
| [out] | ip_hdr_len | The length of the IPv6 header (in bytes) | 
      
  | 
  static | 
Build the uncompressed TCP header.
Build the uncompressed TCP header - including the TCP options - from the context and packet information.
| context | The decompression context | |
| decoded | The values decoded from ROHC header | |
| [out] | uncomp_packet | The uncompressed packet being built | 
| [out] | tcp_full_len | The length of the TCP header (in bytes) | 
      
  | 
  static | 
Create a new TCP context and initialize it thanks to the given context.
This function is one of the functions that must exist in one profile for the framework to work.
| ctxt | The decompression context to create | 
| decoded | The information decoded from packet to determine which base context to use to initialize the new context | 
      
  | 
  static | 
Create the TCP decompression context.
This function is one of the functions that must exist in one profile for the framework to work.
| context | The main decompression context | |
| [out] | persist_ctxt | The persistent part of the decompression context | 
| [out] | volat_ctxt | The volatile part of the decompression context | 
      
  | 
  static | 
Decode values from extracted bits.
| context | The decompression context | |
| bits | The bits extracted from the ROHC packet | |
| payload_len | The length of the packet payload (in bytes) | |
| [out] | decoded | The corresponding decoded values | 
      
  | 
  static | 
Decode values for one IP header from extracted bits.
| context | The decompression context | |
| ip_bits | The IP bits extracted from the ROHC packet | |
| ip_context | The IP values recorded in context | |
| decoded_msn | The decoded Master Sequence Number (MSN) | |
| [out] | ip_decoded | The corresponding decoded IP values | 
      
  | 
  static | 
Decode values for all IP headers from extracted bits.
| context | The decompression context | |
| bits | The bits extracted from the ROHC packet | |
| [out] | decoded | The corresponding decoded values | 
      
  | 
  static | 
Decode values for the TCP header flags from extracted bits.
| context | The decompression context | |
| bits | The bits extracted from the ROHC packet | |
| [out] | decoded | The corresponding decoded values | 
      
  | 
  static | 
Decode values for the TCP header from extracted bits.
| context | The decompression context | |
| bits | The bits extracted from the ROHC packet | |
| payload_len | The length of the packet payload (in bytes) | |
| [out] | decoded | The corresponding decoded values | 
      
  | 
  static | 
Decode values for the TCP options from extracted bits.
| context | The decompression context | |
| bits | The bits extracted from the ROHC packet | |
| [out] | decoded | The corresponding decoded values | 
      
  | 
  static | 
Decode the TCP SACK option.
| context | The decompression context | |
| ack_num | The TCP ACK number of the current packet | |
| bits | The bits of SACK option extracted from the packet | |
| [out] | decoded | The values decoded from the ROHC packet | 
      
  | 
  static | 
Decode the given TS field of the TCP TimeStamp (TS) option.
| context | The decompression context | |
| descr | A description for the TS field being decoded | |
| lsb_ctxt | The LSB decoding context to use for decoding | |
| ts | The TS bits extracted from the ROHC packet | |
| [out] | ts_decoded | The decoded TS field (in HBO) | 
      
  | 
  static | 
Destroy the context.
This function is one of the functions that must exist in one profile for the framework to work.
| tcp_context | The persistent decompression context for the TCP profile | 
| volat_ctxt | The volatile decompression context | 
      
  | 
  static | 
Get the reference MSN value of the context.
This function is one of the functions that must exist in one profile for the framework to work.
| context | The decompression context | 
      
  | 
  static | 
Parse the given CO packet for the TCP profile.
  RFC 6846, section 7.3. Compressed (CO) Packets
     0   1   2   3   4   5   6   7
    --- --- --- --- --- --- --- ---
 1  :         Add-CID octet         :  if for small CIDs and CID 1-15
    +---+---+---+---+---+---+---+---+
 2  |   First octet of base header  |  (with type indication)
    +---+---+---+---+---+---+---+---+
    :                               :
 3  /   0, 1, or 2 octets of CID    /  1-2 octets if large CIDs
    :                               :
    +---+---+---+---+---+---+---+---+
 4  /   Remainder of base header    /  variable number of octets
    +---+---+---+---+---+---+---+---+
    :        Irregular chain        :
 5  /   (including irregular chain  /  variable
    :    items for TCP options)     :
     --- --- --- --- --- --- --- ---
    |                               |
 6  /            Payload            / variable length
    |                               |
     - - - - - - - - - - - - - - - -| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| large_cid_len | The length of the optional large CID field | |
| packet_type | The type of the ROHC packet to parse | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
      
  | 
  static | 
Parse the given co_common packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given IR packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet to decode | |
| large_cid_len | The length of the optional large CID field | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the IR packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
      
  | 
  static | 
Parse the given IR-CR packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet to decode | |
| large_cid_len | The length of the optional large CID field | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the IR packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
      
  | 
  static | 
Parse othe given IR-DYN packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet to decode | |
| large_cid_len | The length of the optional large CID field | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the IR-DYN packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
      
  | 
  static | 
Parse the given ROHC packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to parse | |
| large_cid_len | The length of the optional large CID field | |
| [in,out] | packet_type | IN: The type of the ROHC packet to parse OUT: The type of the parsed ROHC packet | 
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | extr_bits | The bits extracted from the ROHC packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
      
  | 
  static | 
Parse the given rnd_1 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given rnd_2 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given rnd_3 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given rnd_4 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given rnd_5 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given rnd_6 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given rnd_7 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given rnd_8 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given seq_1 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given seq_2 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given seq_3 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given seq_4 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given seq_5 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given seq_6 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given seq_7 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Parse the given seq_8 packet for the TCP profile.
| context | The decompression context | |
| rohc_packet | The ROHC packet to decode | |
| rohc_length | The length of the ROHC packet | |
| [out] | extr_crc | The CRC bits extracted from the ROHC header | 
| [out] | bits | The bits extracted from the CO packet | 
| [out] | rohc_hdr_len | The length of the ROHC header (in bytes) | 
| [out] | has_opts_list | Whether the list TCP options is present after the CO packet | 
      
  | 
  static | 
Reset the extracted bits for next parsing.
| context | The decompression context | |
| [out] | bits | The extracted bits to reset | 
      
  | 
  static | 
Update the decompression context with the infos of current packet.
| context | The decompression context | |
| decoded | The decoded values to update in the context | |
| payload_len | The length of the packet payload (in bytes) | |
| [out] | do_change_mode | Whether the profile context wants to change its operational mode or not | 
      
  | 
  static | 
Detect the type of ROHC packet for the TCP profile.
| context | The decompression context | 
| rohc_packet | The ROHC packet | 
| rohc_length | The length of the ROHC packet | 
| large_cid_len | The length of the optional large CID field | 
| const struct rohc_decomp_profile d_tcp_profile | 
Define the decompression part of the TCP profile as described in the RFC 3095.
 1.8.13