ROHC compression/decompression library
Functions
decomp/schemes/tcp_sack.c File Reference

Handle decoding of TCP Selective ACKnowledgement (SACK) option. More...

#include "tcp_sack.h"
#include "rohc_utils.h"
Include dependency graph for decomp/schemes/tcp_sack.c:

Functions

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)
 Parse a SACK block of the TCP SACK option. More...
 
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)
 Parse a SACK field of a SACK block of the TCP SACK option. More...
 
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. More...
 

Detailed Description

Handle decoding of TCP Selective ACKnowledgement (SACK) option.

Author
FWX rohc_.nosp@m.team.nosp@m.@dial.nosp@m.ine..nosp@m.fr
Didier Barvaux didie.nosp@m.r@ba.nosp@m.rvaux.nosp@m..org
Didier Barvaux didie.nosp@m.r.ba.nosp@m.rvaux.nosp@m.@tou.nosp@m.louse.nosp@m..viv.nosp@m.eris..nosp@m.com

Function Documentation

◆ 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
contextThe decompression context
dataThe data to parse
data_lenThe length of the data to parse
[out]sack_blockThe 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
contextThe decompression context
dataThe ROHC data to parse
data_lenThe length of the ROHC data to parse
[out]opt_sackThe 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
contextThe decompression context
dataThe ROHC data to parse
data_lenThe length of the ROHC data to parse
[out]sack_fieldThe uncompressed SACK field
Returns
The number of data bytes parsed, -1 if data is malformed