Handle decoding of TCP Selective ACKnowledgement (SACK) option.
More...
#include "tcp_sack.h"
#include "rohc_utils.h"
◆ d_tcp_sack_block()
static int d_tcp_sack_block |
( |
const struct rohc_decomp_ctxt *const |
context, |
|
|
const uint8_t *const |
data, |
|
|
const size_t |
data_len, |
|
|
sack_block_t *const |
sack_block |
|
) |
| |
|
static |
Parse a SACK block of the TCP SACK option.
See RFC6846 page 68 (and RFC2018 for Selective Acknowledgement option)
- Parameters
-
| context | The decompression context |
| data | The data to parse |
| data_len | The length of the data to parse |
[out] | sack_block | The SACK block bits extracted from ROHC packet |
- Returns
- The number of data bytes parsed, -1 if data is malformed
◆ d_tcp_sack_parse()
int d_tcp_sack_parse |
( |
const struct rohc_decomp_ctxt *const |
context, |
|
|
const uint8_t *const |
data, |
|
|
const size_t |
data_len, |
|
|
struct d_tcp_opt_sack *const |
opt_sack |
|
) |
| |
Parse the SACK TCP option.
See RFC6846 page 68 (and RFC2018 for Selective Acknowledgement option)
- Parameters
-
| context | The decompression context |
| data | The ROHC data to parse |
| data_len | The length of the ROHC data to parse |
[out] | opt_sack | The information of SACK option extracted from the packet |
- Returns
- The number of ROHC bytes parsed, -1 if packet is malformed
◆ d_tcp_sack_pure_lsb()
static int d_tcp_sack_pure_lsb |
( |
const struct rohc_decomp_ctxt *const |
context, |
|
|
const uint8_t *const |
data, |
|
|
const size_t |
data_len, |
|
|
uint32_t *const |
sack_field |
|
) |
| |
|
static |
Parse a SACK field of a SACK block of the TCP SACK option.
See RFC6846 page 67 (and RFC2018 for Selective Acknowledgement option)
- Parameters
-
| context | The decompression context |
| data | The ROHC data to parse |
| data_len | The length of the ROHC data to parse |
[out] | sack_field | The uncompressed SACK field |
- Returns
- The number of data bytes parsed, -1 if data is malformed