Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
tcp_input.c File Reference
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/sysctl.h>
#include <linux/kernel.h>
#include <net/dst.h>
#include <net/tcp.h>
#include <net/inet_common.h>
#include <linux/ipsec.h>
#include <asm/unaligned.h>
#include <net/netdma.h>

Go to the source code of this file.

Data Structures

struct  tcp_sacktag_state
 

Macros

#define pr_fmt(fmt)   "TCP: " fmt
 
#define FLAG_DATA   0x01 /* Incoming frame contained data. */
 
#define FLAG_WIN_UPDATE   0x02 /* Incoming ACK was a window update. */
 
#define FLAG_DATA_ACKED   0x04 /* This ACK acknowledged new data. */
 
#define FLAG_RETRANS_DATA_ACKED   0x08 /* "" "" some of which was retransmitted. */
 
#define FLAG_SYN_ACKED   0x10 /* This ACK acknowledged SYN. */
 
#define FLAG_DATA_SACKED   0x20 /* New SACK. */
 
#define FLAG_ECE   0x40 /* ECE in this ACK */
 
#define FLAG_SLOWPATH   0x100 /* Do not skip RFC checks for window update.*/
 
#define FLAG_ONLY_ORIG_SACKED   0x200 /* SACKs only non-rexmit sent before RTO */
 
#define FLAG_SND_UNA_ADVANCED   0x400 /* Snd_una was changed (!= FLAG_DATA_ACKED) */
 
#define FLAG_DSACKING_ACK   0x800 /* SACK blocks contained D-SACK info */
 
#define FLAG_NONHEAD_RETRANS_ACKED   0x1000 /* Non-head rexmitted data was ACKed */
 
#define FLAG_SACK_RENEGING   0x2000 /* snd_una advanced to a sacked seq */
 
#define FLAG_ACKED   (FLAG_DATA_ACKED|FLAG_SYN_ACKED)
 
#define FLAG_NOT_DUP   (FLAG_DATA|FLAG_WIN_UPDATE|FLAG_ACKED)
 
#define FLAG_CA_ALERT   (FLAG_DATA_SACKED|FLAG_ECE)
 
#define FLAG_FORWARD_PROGRESS   (FLAG_ACKED|FLAG_DATA_SACKED)
 
#define FLAG_ANY_PROGRESS   (FLAG_FORWARD_PROGRESS|FLAG_SND_UNA_ADVANCED)
 
#define TCP_REMNANT   (TCP_FLAG_FIN|TCP_FLAG_URG|TCP_FLAG_SYN|TCP_FLAG_PSH)
 
#define TCP_HP_BITS   (~(TCP_RESERVED_BITS|TCP_FLAG_PSH))
 
#define DBGUNDO(x...)   do { } while (0)
 

Functions

 EXPORT_SYMBOL (sysctl_tcp_reordering)
 
 EXPORT_SYMBOL (sysctl_tcp_ecn)
 
 EXPORT_SYMBOL (sysctl_tcp_adv_win_scale)
 
void tcp_init_buffer_space (struct sock *sk)
 
void tcp_initialize_rcv_mss (struct sock *sk)
 
 EXPORT_SYMBOL (tcp_initialize_rcv_mss)
 
void tcp_rcv_space_adjust (struct sock *sk)
 
void tcp_set_rto (struct sock *sk)
 
__u32 tcp_init_cwnd (const struct tcp_sock *tp, const struct dst_entry *dst)
 
void tcp_disable_fack (struct tcp_sock *tp)
 
bool tcp_use_frto (struct sock *sk)
 
void tcp_enter_frto (struct sock *sk)
 
void tcp_clear_retrans (struct tcp_sock *tp)
 
void tcp_enter_loss (struct sock *sk, int how)
 
void tcp_enter_cwr (struct sock *sk, const int set_ssthresh)
 
void tcp_simple_retransmit (struct sock *sk)
 
 EXPORT_SYMBOL (tcp_simple_retransmit)
 
void tcp_valid_rtt_meas (struct sock *sk, u32 seq_rtt)
 
 EXPORT_SYMBOL (tcp_valid_rtt_meas)
 
void tcp_rearm_rto (struct sock *sk)
 
void tcp_resume_early_retransmit (struct sock *sk)
 
void tcp_parse_options (const struct sk_buff *skb, struct tcp_options_received *opt_rx, const u8 **hvpp, int estab, struct tcp_fastopen_cookie *foc)
 
 EXPORT_SYMBOL (tcp_parse_options)
 
void tcp_reset (struct sock *sk)
 
int tcp_send_rcvq (struct sock *sk, struct msghdr *msg, size_t size)
 
void tcp_cwnd_application_limited (struct sock *sk)
 
int tcp_rcv_established (struct sock *sk, struct sk_buff *skb, const struct tcphdr *th, unsigned int len)
 
 EXPORT_SYMBOL (tcp_rcv_established)
 
void tcp_finish_connect (struct sock *sk, struct sk_buff *skb)
 
int tcp_rcv_state_process (struct sock *sk, struct sk_buff *skb, const struct tcphdr *th, unsigned int len)
 
 EXPORT_SYMBOL (tcp_rcv_state_process)
 

Variables

int sysctl_tcp_timestamps __read_mostly = 1
 
int sysctl_tcp_challenge_ack_limit = 100
 

Macro Definition Documentation

#define DBGUNDO (   x...)    do { } while (0)

Definition at line 2512 of file tcp_input.c.

#define FLAG_ACKED   (FLAG_DATA_ACKED|FLAG_SYN_ACKED)

Definition at line 120 of file tcp_input.c.

#define FLAG_ANY_PROGRESS   (FLAG_FORWARD_PROGRESS|FLAG_SND_UNA_ADVANCED)

Definition at line 124 of file tcp_input.c.

#define FLAG_CA_ALERT   (FLAG_DATA_SACKED|FLAG_ECE)

Definition at line 122 of file tcp_input.c.

#define FLAG_DATA   0x01 /* Incoming frame contained data. */

Definition at line 106 of file tcp_input.c.

#define FLAG_DATA_ACKED   0x04 /* This ACK acknowledged new data. */

Definition at line 108 of file tcp_input.c.

#define FLAG_DATA_SACKED   0x20 /* New SACK. */

Definition at line 111 of file tcp_input.c.

#define FLAG_DSACKING_ACK   0x800 /* SACK blocks contained D-SACK info */

Definition at line 116 of file tcp_input.c.

#define FLAG_ECE   0x40 /* ECE in this ACK */

Definition at line 112 of file tcp_input.c.

#define FLAG_FORWARD_PROGRESS   (FLAG_ACKED|FLAG_DATA_SACKED)

Definition at line 123 of file tcp_input.c.

#define FLAG_NONHEAD_RETRANS_ACKED   0x1000 /* Non-head rexmitted data was ACKed */

Definition at line 117 of file tcp_input.c.

#define FLAG_NOT_DUP   (FLAG_DATA|FLAG_WIN_UPDATE|FLAG_ACKED)

Definition at line 121 of file tcp_input.c.

#define FLAG_ONLY_ORIG_SACKED   0x200 /* SACKs only non-rexmit sent before RTO */

Definition at line 114 of file tcp_input.c.

#define FLAG_RETRANS_DATA_ACKED   0x08 /* "" "" some of which was retransmitted. */

Definition at line 109 of file tcp_input.c.

#define FLAG_SACK_RENEGING   0x2000 /* snd_una advanced to a sacked seq */

Definition at line 118 of file tcp_input.c.

#define FLAG_SLOWPATH   0x100 /* Do not skip RFC checks for window update.*/

Definition at line 113 of file tcp_input.c.

#define FLAG_SND_UNA_ADVANCED   0x400 /* Snd_una was changed (!= FLAG_DATA_ACKED) */

Definition at line 115 of file tcp_input.c.

#define FLAG_SYN_ACKED   0x10 /* This ACK acknowledged SYN. */

Definition at line 110 of file tcp_input.c.

#define FLAG_WIN_UPDATE   0x02 /* Incoming ACK was a window update. */

Definition at line 107 of file tcp_input.c.

#define pr_fmt (   fmt)    "TCP: " fmt

Definition at line 64 of file tcp_input.c.

#define TCP_HP_BITS   (~(TCP_RESERVED_BITS|TCP_FLAG_PSH))

Definition at line 127 of file tcp_input.c.

#define TCP_REMNANT   (TCP_FLAG_FIN|TCP_FLAG_URG|TCP_FLAG_SYN|TCP_FLAG_PSH)

Definition at line 126 of file tcp_input.c.

Function Documentation

EXPORT_SYMBOL ( sysctl_tcp_reordering  )
EXPORT_SYMBOL ( sysctl_tcp_ecn  )
EXPORT_SYMBOL ( sysctl_tcp_adv_win_scale  )
EXPORT_SYMBOL ( tcp_initialize_rcv_mss  )
EXPORT_SYMBOL ( tcp_simple_retransmit  )
EXPORT_SYMBOL ( tcp_valid_rtt_meas  )
EXPORT_SYMBOL ( tcp_parse_options  )
EXPORT_SYMBOL ( tcp_rcv_established  )
EXPORT_SYMBOL ( tcp_rcv_state_process  )
void tcp_clear_retrans ( struct tcp_sock tp)

Definition at line 2032 of file tcp_input.c.

void tcp_cwnd_application_limited ( struct sock sk)

Definition at line 4935 of file tcp_input.c.

void tcp_disable_fack ( struct tcp_sock tp)

Definition at line 750 of file tcp_input.c.

void tcp_enter_cwr ( struct sock sk,
const int  set_ssthresh 
)

Definition at line 2735 of file tcp_input.c.

void tcp_enter_frto ( struct sock sk)

Definition at line 1887 of file tcp_input.c.

void tcp_enter_loss ( struct sock sk,
int  how 
)

Definition at line 2044 of file tcp_input.c.

void tcp_finish_connect ( struct sock sk,
struct sk_buff skb 
)

Definition at line 5576 of file tcp_input.c.

void tcp_init_buffer_space ( struct sock sk)

Definition at line 381 of file tcp_input.c.

__u32 tcp_init_cwnd ( const struct tcp_sock tp,
const struct dst_entry dst 
)

Definition at line 737 of file tcp_input.c.

void tcp_initialize_rcv_mss ( struct sock sk)

Definition at line 440 of file tcp_input.c.

void tcp_parse_options ( const struct sk_buff skb,
struct tcp_options_received opt_rx,
const u8 **  hvpp,
int  estab,
struct tcp_fastopen_cookie foc 
)

Definition at line 3706 of file tcp_input.c.

int tcp_rcv_established ( struct sock sk,
struct sk_buff skb,
const struct tcphdr th,
unsigned int  len 
)

Definition at line 5360 of file tcp_input.c.

void tcp_rcv_space_adjust ( struct sock sk)

Definition at line 527 of file tcp_input.c.

int tcp_rcv_state_process ( struct sock sk,
struct sk_buff skb,
const struct tcphdr th,
unsigned int  len 
)

Definition at line 5911 of file tcp_input.c.

void tcp_rearm_rto ( struct sock sk)

Definition at line 3089 of file tcp_input.c.

void tcp_reset ( struct sock sk)

Definition at line 4010 of file tcp_input.c.

void tcp_resume_early_retransmit ( struct sock sk)

Definition at line 3123 of file tcp_input.c.

int tcp_send_rcvq ( struct sock sk,
struct msghdr msg,
size_t  size 
)

Definition at line 4526 of file tcp_input.c.

void tcp_set_rto ( struct sock sk)

Definition at line 710 of file tcp_input.c.

void tcp_simple_retransmit ( struct sock sk)

Definition at line 2814 of file tcp_input.c.

bool tcp_use_frto ( struct sock sk)

Definition at line 1839 of file tcp_input.c.

void tcp_valid_rtt_meas ( struct sock sk,
u32  seq_rtt 
)

Definition at line 3018 of file tcp_input.c.

Variable Documentation

int sysctl_tcp_early_retrans __read_mostly = 1

Definition at line 78 of file tcp_input.c.

int sysctl_tcp_challenge_ack_limit = 100

Definition at line 92 of file tcp_input.c.