tcp_sack.c File Reference

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

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

Functions

static int c_tcp_sack_code_block (const struct rohc_comp_ctxt *const context, const uint32_t reference, const sack_block_t *const sack_block, uint8_t *const rohc_data, const size_t rohc_max_len)
 Compress one SACK block.
static int c_tcp_sack_code_pure_lsb (const struct rohc_comp_ctxt *const context, const uint32_t base, const uint32_t field, uint8_t *const rohc_data, const size_t rohc_max_len)
 Compress one SACK field value.
int c_tcp_opt_sack_code (const struct rohc_comp_ctxt *const context, const uint32_t ack_value, const sack_block_t *const sack_blocks, const uint8_t length, const bool is_unchanged, uint8_t *const rohc_data, const size_t rohc_max_len)
 Compress one TCP Selective ACKnowledgement (SACK) option.

Detailed Description

Handle encoding of TCP Selective ACKnowledgement (SACK) option.

Author:
Didier Barvaux <didier@barvaux.org>

Function Documentation

int c_tcp_opt_sack_code ( const struct rohc_comp_ctxt *const   context,
const uint32_t  ack_value,
const sack_block_t *const   sack_blocks,
const uint8_t  length,
const bool  is_unchanged,
uint8_t *const   rohc_data,
const size_t  rohc_max_len 
)

Compress one TCP Selective ACKnowledgement (SACK) option.

See RFC6846 page 68 (and RFC2018 for Selective Acknowledgement option)

Parameters:
context The compression context
ack_value The ack value
sack_blocks The SACK blocks to compress
length The length of the SACK blocks
is_unchanged Whether the SACK option is unchanged or not (only for irregular chain, use false for list item)
[out] rohc_data The ROHC packet being built
rohc_max_len The max remaining length in the ROHC buffer
Returns:
The length appended in the ROHC buffer if positive, -1 in case of error
static int c_tcp_sack_code_block ( const struct rohc_comp_ctxt *const   context,
const uint32_t  reference,
const sack_block_t *const   sack_block,
uint8_t *const   rohc_data,
const size_t  rohc_max_len 
) [static]

Compress one SACK block.

See RFC6846 page 68 (and RFC2018 for Selective Acknowledgement option)

Parameters:
context The compression context
reference The reference value
sack_block The SACK block to compress
[out] rohc_data The ROHC packet being built
rohc_max_len The max remaining length in the ROHC buffer
Returns:
The length appended in the ROHC buffer if positive, -1 in case of error
static int c_tcp_sack_code_pure_lsb ( const struct rohc_comp_ctxt *const   context,
const uint32_t  base,
const uint32_t  field,
uint8_t *const   rohc_data,
const size_t  rohc_max_len 
) [static]

Compress one SACK field value.

See RFC6846 page 67 (and RFC2018 for Selective Acknowledgement option)

Parameters:
context The compression context
base The base value
field The value to compress
[out] rohc_data The ROHC packet being built
rohc_max_len The max remaining length in the ROHC buffer
Returns:
The length appended in the ROHC buffer if positive, -1 in case of error

Generated on 4 Jul 2018 for ROHC compression/decompression library by  doxygen 1.6.1