Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
ackvec.h File Reference
#include <linux/dccp.h>
#include <linux/compiler.h>
#include <linux/list.h>
#include <linux/types.h>

Go to the source code of this file.

Data Structures

struct  dccp_ackvec
 
struct  dccp_ackvec_record
 
struct  dccp_ackvec_parsed
 

Macros

#define DCCPAV_NUM_ACKVECS   2
 
#define DCCPAV_MAX_ACKVEC_LEN   (DCCP_SINGLE_OPT_MAXLEN * DCCPAV_NUM_ACKVECS)
 
#define DCCPAV_MIN_OPTLEN   16
 
#define DCCPAV_BURST_THRESH   (DCCPAV_MAX_ACKVEC_LEN / 8)
 
#define DCCPAV_MAX_RUNLEN   0x3F
 

Enumerations

enum  dccp_ackvec_states { DCCPAV_RECEIVED = 0x00, DCCPAV_ECN_MARKED = 0x40, DCCPAV_RESERVED = 0x80, DCCPAV_NOT_RECEIVED = 0xC0 }
 

Functions

int dccp_ackvec_init (void)
 
void dccp_ackvec_exit (void)
 
struct dccp_ackvecdccp_ackvec_alloc (const gfp_t priority)
 
void dccp_ackvec_free (struct dccp_ackvec *av)
 
void dccp_ackvec_input (struct dccp_ackvec *av, struct sk_buff *skb)
 
int dccp_ackvec_update_records (struct dccp_ackvec *av, u64 seq, u8 sum)
 
void dccp_ackvec_clear_state (struct dccp_ackvec *av, const u64 ackno)
 
u16 dccp_ackvec_buflen (const struct dccp_ackvec *av)
 
int dccp_ackvec_parsed_add (struct list_head *head, u8 *vec, u8 len, u8 nonce)
 
void dccp_ackvec_parsed_cleanup (struct list_head *parsed_chunks)
 

Macro Definition Documentation

#define DCCPAV_BURST_THRESH   (DCCPAV_MAX_ACKVEC_LEN / 8)

Definition at line 33 of file ackvec.h.

#define DCCPAV_MAX_ACKVEC_LEN   (DCCP_SINGLE_OPT_MAXLEN * DCCPAV_NUM_ACKVECS)

Definition at line 27 of file ackvec.h.

#define DCCPAV_MAX_RUNLEN   0x3F

Definition at line 41 of file ackvec.h.

#define DCCPAV_MIN_OPTLEN   16

Definition at line 30 of file ackvec.h.

#define DCCPAV_NUM_ACKVECS   2

Definition at line 26 of file ackvec.h.

Enumeration Type Documentation

Enumerator:
DCCPAV_RECEIVED 
DCCPAV_ECN_MARKED 
DCCPAV_RESERVED 
DCCPAV_NOT_RECEIVED 

Definition at line 35 of file ackvec.h.

Function Documentation

struct dccp_ackvec* dccp_ackvec_alloc ( const gfp_t  priority)
read

Definition at line 20 of file ackvec.c.

u16 dccp_ackvec_buflen ( const struct dccp_ackvec av)

Definition at line 120 of file ackvec.c.

void dccp_ackvec_clear_state ( struct dccp_ackvec av,
const u64  ackno 
)

dccp_ackvec_clear_state - Perform house-keeping / garbage-collection This routine is called when the peer acknowledges the receipt of Ack Vectors up to and including . While based on on section A.3 of RFC 4340, here are additional precautions to prevent corrupted buffer state. In particular, we use tail_ackno to identify outdated records; it always marks the earliest packet of group (2) in 11.4.2.

Definition at line 285 of file ackvec.c.

void dccp_ackvec_exit ( void  )

Definition at line 399 of file ackvec.c.

void dccp_ackvec_free ( struct dccp_ackvec av)

Definition at line 40 of file ackvec.c.

int dccp_ackvec_init ( void  )

Definition at line 375 of file ackvec.c.

void dccp_ackvec_input ( struct dccp_ackvec av,
struct sk_buff skb 
)

dccp_ackvec_input - Register incoming packet in the buffer

Definition at line 249 of file ackvec.c.

int dccp_ackvec_parsed_add ( struct list_head head,
u8 vec,
u8  len,
u8  nonce 
)

Definition at line 350 of file ackvec.c.

void dccp_ackvec_parsed_cleanup ( struct list_head parsed_chunks)

Definition at line 365 of file ackvec.c.

int dccp_ackvec_update_records ( struct dccp_ackvec av,
u64  seqno,
u8  nonce_sum 
)

dccp_ackvec_update_records - Record information about sent Ack Vectors : Ack Vector records to update : Sequence number of the packet carrying the Ack Vector just sent : The sum of all buffer nonces contained in the Ack Vector

Definition at line 54 of file ackvec.c.