Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
packet_history.c File Reference
#include <linux/string.h>
#include <linux/slab.h>
#include "packet_history.h"
#include "../../dccp.h"

Go to the source code of this file.

Functions

int __init tfrc_tx_packet_history_init (void)
 
void tfrc_tx_packet_history_exit (void)
 
int tfrc_tx_hist_add (struct tfrc_tx_hist_entry **headp, u64 seqno)
 
void tfrc_tx_hist_purge (struct tfrc_tx_hist_entry **headp)
 
int __init tfrc_rx_packet_history_init (void)
 
void tfrc_rx_packet_history_exit (void)
 
void tfrc_rx_hist_add_packet (struct tfrc_rx_hist *h, const struct sk_buff *skb, const u64 ndp)
 
int tfrc_rx_hist_duplicate (struct tfrc_rx_hist *h, struct sk_buff *skb)
 
int tfrc_rx_handle_loss (struct tfrc_rx_hist *h, struct tfrc_loss_hist *lh, struct sk_buff *skb, const u64 ndp, u32(*calc_first_li)(struct sock *), struct sock *sk)
 
int tfrc_rx_hist_alloc (struct tfrc_rx_hist *h)
 
void tfrc_rx_hist_purge (struct tfrc_rx_hist *h)
 
u32 tfrc_rx_hist_sample_rtt (struct tfrc_rx_hist *h, const struct sk_buff *skb)
 

Function Documentation

int tfrc_rx_handle_loss ( struct tfrc_rx_hist h,
struct tfrc_loss_hist lh,
struct sk_buff skb,
const u64  ndp,
u32(*)(struct sock *)  calc_first_li,
struct sock sk 
)

tfrc_rx_handle_loss - Loss detection and further processing : The non-empty RX history object : Loss Intervals database to update : Currently received packet : The NDP count belonging to : Caller-dependent computation of first loss interval in : Used by (see tfrc_lh_interval_add)

Chooses action according to pending loss, updates LI database when a new loss was detected, and does required post-processing. Returns 1 when caller should send feedback, 0 otherwise. Since it also takes care of reordering during loss detection and updates the records accordingly, the caller should not perform any more RX history operations when loss_count is greater than 0 after calling this function.

Definition at line 326 of file packet_history.c.

void tfrc_rx_hist_add_packet ( struct tfrc_rx_hist h,
const struct sk_buff skb,
const u64  ndp 
)

Definition at line 123 of file packet_history.c.

int tfrc_rx_hist_alloc ( struct tfrc_rx_hist h)

Definition at line 349 of file packet_history.c.

int tfrc_rx_hist_duplicate ( struct tfrc_rx_hist h,
struct sk_buff skb 
)

Definition at line 133 of file packet_history.c.

void tfrc_rx_hist_purge ( struct tfrc_rx_hist h)

Definition at line 370 of file packet_history.c.

u32 tfrc_rx_hist_sample_rtt ( struct tfrc_rx_hist h,
const struct sk_buff skb 
)

tfrc_rx_hist_sample_rtt - Sample RTT from timestamp / CCVal Based on ideas presented in RFC 4342, 8.1. Returns 0 if it was not able to compute a sample with given data - calling function should check this.

Definition at line 404 of file packet_history.c.

void tfrc_rx_packet_history_exit ( void  )

Definition at line 102 of file packet_history.c.

int __init tfrc_rx_packet_history_init ( void  )

Definition at line 94 of file packet_history.c.

int tfrc_tx_hist_add ( struct tfrc_tx_hist_entry **  headp,
u64  seqno 
)

Definition at line 62 of file packet_history.c.

void tfrc_tx_hist_purge ( struct tfrc_tx_hist_entry **  headp)

Definition at line 75 of file packet_history.c.

void tfrc_tx_packet_history_exit ( void  )

Definition at line 54 of file packet_history.c.

int __init tfrc_tx_packet_history_init ( void  )

Definition at line 46 of file packet_history.c.