40#define HAVE_ALIGNABLE_SKB
43#define CHECKSUM_NONE 0
45#define CHECKSUM_UNNECESSARY 2
47#define SKB_DATA_ALIGN(X) (((X) + (SMP_CACHE_BYTES-1)) & ~(SMP_CACHE_BYTES-1))
48#define SKB_MAX_ORDER(X,ORDER) (((PAGE_SIZE<<(ORDER)) - (X) - sizeof(struct skb_shared_info))&~(SMP_CACHE_BYTES-1))
49#define SKB_MAX_HEAD(X) (SKB_MAX_ORDER((X),0))
50#define SKB_MAX_ALLOC (SKB_MAX_ORDER(0,2))
91#define NET_CALLER(arg) (*(((void**)&arg)-1))
93#define NET_CALLER(arg) __builtin_return_address(0)
96#ifdef CONFIG_NETFILTER
103 struct nf_conntrack *master;
118#define MAX_SKB_FRAGS 6
207#ifdef CONFIG_NETFILTER
209 unsigned long nfmark;
213 struct nf_ct_info *nfct;
214#ifdef CONFIG_NETFILTER_DEBUG
215 unsigned int nf_debug;
219#if defined(CONFIG_HIPPI)
225#ifdef CONFIG_NET_SCHED
230#define SK_WMEM_MAX 65535
231#define SK_RMEM_MAX 65535
251#define dev_kfree_skb(a) kfree_skb(a)
256#define skb_shinfo(SKB) ((struct skb_shared_info *)((SKB)->end))
767#define SKB_PAGE_ASSERT(skb) do { if (skb_shinfo(skb)->nr_frags) out_of_line_bug(); } while (0)
768#define SKB_FRAG_ASSERT(skb) do { if (skb_shinfo(skb)->frag_list) out_of_line_bug(); } while (0)
769#define SKB_LINEAR_ASSERT(skb) do { if (skb_is_nonlinear(skb)) out_of_line_bug(); } while (0)
777 unsigned char *tmp=skb->
tail;
797 unsigned char *tmp=skb->
tail;
1095 int delta = (headroom > 16 ? headroom : 16) -
skb_headroom(skb);
1120#ifdef CONFIG_HIGHMEM
1126 return kmap_atomic(frag->
page, KM_SKB_DATA_SOFTIRQ);
1135 kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ);
1136#ifdef CONFIG_HIGHMEM
1142#define skb_queue_walk(queue, skb) \
1143 for (skb = (queue)->next; \
1144 (skb != (struct sk_buff *)(queue)); \
1164#ifdef CONFIG_NETFILTER
1166nf_conntrack_put(
struct nf_ct_info *nfct)
1169 nfct->master->destroy(nfct->master);
1172nf_conntrack_get(
struct nf_ct_info *nfct)
1225 int optname,
char *optval,
int optlen);
1227 int optname,
char *optval,
1235 struct sockaddr *uaddr,
int addr_len);
1536#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
1538 struct ipv6_pinfo af_inet6;
1544#if defined(CONFIG_INET) || defined (CONFIG_INET_MODULE)
1545 struct raw_opt tp_raw4;
1547#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
1548 struct raw6_opt tp_raw;
1550#if defined(CONFIG_SPX) || defined (CONFIG_SPX_MODULE)
1551 struct spx_opt af_spx;
1573 struct sk_filter *
filter;
1582#if defined(CONFIG_INET) || defined (CONFIG_INET_MODULE)
1583 struct inet_opt af_inet;
1585#if defined(CONFIG_ATALK) || defined(CONFIG_ATALK_MODULE)
1586 struct atalk_sock af_at;
1588#if defined(CONFIG_IPX) || defined(CONFIG_IPX_MODULE)
1589 struct ipx_opt af_ipx;
1591#if defined (CONFIG_DECNET) || defined(CONFIG_DECNET_MODULE)
1594#if defined (CONFIG_PACKET) || defined(CONFIG_PACKET_MODULE)
1595 struct packet_opt *af_packet;
1597#if defined(CONFIG_X25) || defined(CONFIG_X25_MODULE)
1600#if defined(CONFIG_AX25) || defined(CONFIG_AX25_MODULE)
1603#if defined(CONFIG_NETROM) || defined(CONFIG_NETROM_MODULE)
1606#if defined(CONFIG_ROSE) || defined(CONFIG_ROSE_MODULE)
1609#if defined(CONFIG_PPPOE) || defined(CONFIG_PPPOE_MODULE)
1610 struct pppox_opt *pppox;
1613#if defined(CONFIG_ECONET) || defined(CONFIG_ECONET_MODULE)
1614 struct econet_opt *af_econet;
1616#if defined(CONFIG_ATM) || defined(CONFIG_ATM_MODULE)
1617 struct atm_vcc *af_atm;
1619#if defined(CONFIG_IRDA) || defined(CONFIG_IRDA_MODULE)
1620 struct irda_sock *irda;
1622#if defined(CONFIG_WAN_ROUTER) || defined(CONFIG_WAN_ROUTER_MODULE)
1623 struct wanpipe_opt *af_wanpipe;
1656#include <net/neighbour.h>
1664#define RT_CACHE_DEBUG 0
1666#define DST_GC_MIN (1*HZ)
1667#define DST_GC_INC (5*HZ)
1668#define DST_GC_MAX (120*HZ)
1705#ifdef CONFIG_NET_CLS_ROUTE
1756extern void * dst_alloc(
struct dst_ops *
ops);
1763 if (
dst->obsolete > 1)
1775 neigh_confirm(
dst->neighbour);
1781 if (
dst &&
dst->ops->negative_advice)
1782 *dst_p =
dst->
ops->negative_advice(
dst);
1788 if (
dst &&
dst->ops &&
dst->ops->link_failure)
1789 dst->ops->link_failure(skb);
1799 if (
dst->expires == 0 || (
long)(
dst->expires -
expires) > 0)
1803extern void dst_init(
void);
1816#define FASTRETRANS_DEBUG 1
1819#undef TCP_CLEAR_TIMERS
1823#include <linux/tcp.h>
1825#include <linux/cache.h>
1826#include <net/checksum.h>
1827#include <net/sock.h>
1842#define TCP_LHTABLE_SIZE 32
1925#define tcp_ehash (tcp_hashinfo.__tcp_ehash)
1926#define tcp_bhash (tcp_hashinfo.__tcp_bhash)
1927#define tcp_ehash_size (tcp_hashinfo.__tcp_ehash_size)
1928#define tcp_bhash_size (tcp_hashinfo.__tcp_bhash_size)
1929#define tcp_listening_hash (tcp_hashinfo.__tcp_listening_hash)
1930#define tcp_lhash_lock (tcp_hashinfo.__tcp_lhash_lock)
1931#define tcp_lhash_users (tcp_hashinfo.__tcp_lhash_users)
1932#define tcp_lhash_wait (tcp_hashinfo.__tcp_lhash_wait)
1933#define tcp_portalloc_lock (tcp_hashinfo.__tcp_portalloc_lock)
1937 unsigned short snum);
1987#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
1998#ifdef INET_REFCNT_DEBUG
2015#define TCP_COMBINED_PORTS(__sport, __dport) \
2016 (((__u32)(__sport)<<16) | (__u32)(__dport))
2018#define TCP_COMBINED_PORTS(__sport, __dport) \
2019 (((__u32)(__dport)<<16) | (__u32)(__sport))
2022#if (BITS_PER_LONG == 64)
2024#define TCP_V4_ADDR_COOKIE(__name, __saddr, __daddr) \
2025 __u64 __name = (((__u64)(__saddr))<<32)|((__u64)(__daddr));
2027#define TCP_V4_ADDR_COOKIE(__name, __saddr, __daddr) \
2028 __u64 __name = (((__u64)(__daddr))<<32)|((__u64)(__saddr));
2030#define TCP_IPV4_MATCH(__sk, __cookie, __saddr, __daddr, __ports, __dif)\
2031 (((*((__u64 *)&((__sk)->daddr)))== (__cookie)) && \
2032 ((*((__u32 *)&((__sk)->dport)))== (__ports)) && \
2033 (!((__sk)->bound_dev_if) || ((__sk)->bound_dev_if == (__dif))))
2035#define TCP_V4_ADDR_COOKIE(__name, __saddr, __daddr)
2036#define TCP_IPV4_MATCH(__sk, __cookie, __saddr, __daddr, __ports, __dif)\
2037 (((__sk)->daddr == (__saddr)) && \
2038 ((__sk)->rcv_saddr == (__daddr)) && \
2039 ((*((__u32 *)&((__sk)->dport)))== (__ports)) && \
2040 (!((__sk)->bound_dev_if) || ((__sk)->bound_dev_if == (__dif))))
2043#define TCP_IPV6_MATCH(__sk, __saddr, __daddr, __ports, __dif) \
2044 (((*((__u32 *)&((__sk)->dport)))== (__ports)) && \
2045 ((__sk)->family == AF_INET6) && \
2046 !ipv6_addr_cmp(&(__sk)->net_pinfo.af_inet6.daddr, (__saddr)) && \
2047 !ipv6_addr_cmp(&(__sk)->net_pinfo.af_inet6.rcv_saddr, (__daddr)) && \
2048 (!((__sk)->bound_dev_if) || ((__sk)->bound_dev_if == (__dif))))
2069#define MAX_TCP_HEADER (128 + MAX_HEADER)
2075#define MAX_TCP_WINDOW 32767U
2078#define TCP_MIN_MSS 88U
2081#define TCP_MIN_RCVMSS 536U
2084#define TCP_FASTRETRANS_THRESH 3
2087#define TCP_MAX_REORDERING 127
2090#define TCP_MAX_QUICKACKS 16U
2093#define TCP_URG_VALID 0x0100
2094#define TCP_URG_NOTYET 0x0200
2095#define TCP_URG_READ 0x0400
2111#define TCP_SYN_RETRIES 5
2114#define TCP_SYNACK_RETRIES 5
2118#define TCP_ORPHAN_RETRIES 7
2123#define TCP_TIMEWAIT_LEN (60*1000)
2127#define TCP_FIN_TIMEOUT TCP_TIMEWAIT_LEN
2134#define TCP_DELACK_MAX ((unsigned)(HZ/5))
2136#define TCP_DELACK_MIN ((unsigned)(HZ/25))
2137#define TCP_ATO_MIN ((unsigned)(HZ/25))
2139#define TCP_DELACK_MIN 4U
2140#define TCP_ATO_MIN 4U
2142#define TCP_RTO_MAX ((unsigned)(120*HZ))
2143#define TCP_RTO_MIN ((unsigned)(HZ/5))
2144#define TCP_TIMEOUT_INIT ((unsigned)(3*HZ))
2146#define TCP_RESOURCE_PROBE_INTERVAL ((unsigned)(HZ/2U))
2150#define TCP_KEEPALIVE_TIME (120*60*HZ)
2151#define TCP_KEEPALIVE_PROBES 9
2152#define TCP_KEEPALIVE_INTVL (75*HZ)
2154#define MAX_TCP_KEEPIDLE 32767
2155#define MAX_TCP_KEEPINTVL 32767
2156#define MAX_TCP_KEEPCNT 127
2157#define MAX_TCP_SYNCNT 127
2160#define TCP_TWKILL_SLOTS 8
2161#define TCP_TWKILL_PERIOD (TCP_TIMEWAIT_LEN/TCP_TWKILL_SLOTS)
2163#define TCP_SYNQ_INTERVAL (HZ/5)
2164#define TCP_SYNQ_HSIZE 512
2166#define TCP_PAWS_24DAYS (60 * 60 * 24 * 24)
2167#define TCP_PAWS_MSL 60
2173#define TCP_PAWS_WINDOW 1
2178#define TCP_TW_RECYCLE_SLOTS_LOG 5
2179#define TCP_TW_RECYCLE_SLOTS (1<<TCP_TW_RECYCLE_SLOTS_LOG)
2186#if HZ <= 16 || HZ > 4096
2187# error Unsupported: HZ <= 16 or HZ > 4096
2189# define TCP_TW_RECYCLE_TICK (5+2-TCP_TW_RECYCLE_SLOTS_LOG)
2191# define TCP_TW_RECYCLE_TICK (6+2-TCP_TW_RECYCLE_SLOTS_LOG)
2193# define TCP_TW_RECYCLE_TICK (7+2-TCP_TW_RECYCLE_SLOTS_LOG)
2195# define TCP_TW_RECYCLE_TICK (8+2-TCP_TW_RECYCLE_SLOTS_LOG)
2197# define TCP_TW_RECYCLE_TICK (9+2-TCP_TW_RECYCLE_SLOTS_LOG)
2199# define TCP_TW_RECYCLE_TICK (10+2-TCP_TW_RECYCLE_SLOTS_LOG)
2201# define TCP_TW_RECYCLE_TICK (11+2-TCP_TW_RECYCLE_SLOTS_LOG)
2203# define TCP_TW_RECYCLE_TICK (12+2-TCP_TW_RECYCLE_SLOTS_LOG)
2206#define TCP_TW_RECYCLE_TICK (0)
2216#define TCPOPT_WINDOW 3
2217#define TCPOPT_SACK_PERM 4
2218#define TCPOPT_SACK 5
2219#define TCPOPT_TIMESTAMP 8
2225#define TCPOLEN_MSS 4
2226#define TCPOLEN_WINDOW 3
2227#define TCPOLEN_SACK_PERM 2
2228#define TCPOLEN_TIMESTAMP 10
2231#define TCPOLEN_TSTAMP_ALIGNED 12
2232#define TCPOLEN_WSCALE_ALIGNED 4
2233#define TCPOLEN_SACKPERM_ALIGNED 4
2234#define TCPOLEN_SACK_BASE 2
2235#define TCPOLEN_SACK_BASE_ALIGNED 4
2236#define TCPOLEN_SACK_PERBLOCK 8
2238#define TCP_TIME_RETRANS 1
2239#define TCP_TIME_DACK 2
2240#define TCP_TIME_PROBE0 3
2241#define TCP_TIME_KEEPOPEN 4
2245extern int sysctl_max_syn_backlog;
2246extern int sysctl_tcp_timestamps;
2247extern int sysctl_tcp_window_scaling;
2248extern int sysctl_tcp_sack;
2249extern int sysctl_tcp_fin_timeout;
2250extern int sysctl_tcp_tw_recycle;
2251extern int sysctl_tcp_keepalive_time;
2252extern int sysctl_tcp_keepalive_probes;
2253extern int sysctl_tcp_keepalive_intvl;
2254extern int sysctl_tcp_syn_retries;
2255extern int sysctl_tcp_synack_retries;
2256extern int sysctl_tcp_retries1;
2257extern int sysctl_tcp_retries2;
2258extern int sysctl_tcp_orphan_retries;
2259extern int sysctl_tcp_syncookies;
2260extern int sysctl_tcp_retrans_collapse;
2261extern int sysctl_tcp_stdurg;
2262extern int sysctl_tcp_rfc1337;
2263extern int sysctl_tcp_abort_on_overflow;
2264extern int sysctl_tcp_max_orphans;
2265extern int sysctl_tcp_max_tw_buckets;
2266extern int sysctl_tcp_fack;
2267extern int sysctl_tcp_reordering;
2268extern int sysctl_tcp_ecn;
2269extern int sysctl_tcp_dsack;
2270extern int sysctl_tcp_mem[3];
2271extern int sysctl_tcp_wmem[3];
2272extern int sysctl_tcp_rmem[3];
2273extern int sysctl_tcp_app_win;
2274extern int sysctl_tcp_adv_win_scale;
2275extern int sysctl_tcp_tw_reuse;
2298#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
2299struct tcp_v6_open_req {
2332#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
2333 struct tcp_v6_open_req v6_req;
2341#define tcp_openreq_alloc() kmem_cache_alloc(tcp_openreq_cachep, SLAB_ATOMIC)
2342#define tcp_openreq_fastfree(req) kmem_cache_free(tcp_openreq_cachep, req)
2346 req->
class->destructor(req);
2350#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
2351#define TCP_INET_FAMILY(fam) ((fam) == AF_INET)
2353#define TCP_INET_FAMILY(fam) 1
2381 struct sock * (*syn_recv_sock) (
struct sock *sk,
2416 return (
__s32)(seq1-seq2) < 0;
2421 return (
__s32)(seq2-seq1) < 0;
2428 return seq3 - seq2 >= seq1 - seq2;
2434#ifdef ROS_STATISTICS
2435extern struct tcp_mib tcp_statistics[NR_CPUS*2];
2437#define TCP_INC_STATS(field) SNMP_INC_STATS(tcp_statistics, field)
2438#define TCP_INC_STATS_BH(field) SNMP_INC_STATS_BH(tcp_statistics, field)
2439#define TCP_INC_STATS_USER(field) SNMP_INC_STATS_USER(tcp_statistics, field)
2492 if (
tp->ack.quick && --
tp->ack.quick == 0) {
2507 tp->tstamp_ok =
tp->sack_ok =
tp->wscale_ok =
tp->snd_wscale = 0;
2541 int optname,
char *optval,
2544 int optname,
char *optval,
2605 struct ip_options *opt);
2654#ifdef TCP_CLEAR_TIMERS
2655 if (timer_pending(&
tp->retransmit_timer) &&
2656 del_timer(&
tp->retransmit_timer))
2661 tp->ack.blocked = 0;
2662 tp->ack.pending = 0;
2664#ifdef TCP_CLEAR_TIMERS
2665 if (timer_pending(&
tp->delack_timer) &&
2666 del_timer(&
tp->delack_timer))
2687 printk(
KERN_DEBUG "reset_xmit_timer sk=%p %d when=0x%lx, caller=%p\n", sk, what, when, current_text_addr());
2697 if (!mod_timer(&
tp->retransmit_timer,
tp->timeout))
2704 if (!mod_timer(&
tp->delack_timer,
tp->ack.timeout))
2723 int mss_now =
tp->mss_cache;
2725 if (
dst &&
dst->pmtu !=
tp->pmtu_cookie)
2749 unsigned int hint =
min(
tp->advmss,
tp->mss_cache);
2762 tp->pred_flags =
htonl((
tp->tcp_header_len << 26) |
2815#define tcp_time_stamp ((__u32)(jiffies))
2827 struct inet_skb_parm h4;
2829#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
2830 struct inet6_skb_parm h6;
2841#define TCPCB_FLAG_FIN 0x01
2842#define TCPCB_FLAG_SYN 0x02
2843#define TCPCB_FLAG_RST 0x04
2844#define TCPCB_FLAG_PSH 0x08
2845#define TCPCB_FLAG_ACK 0x10
2846#define TCPCB_FLAG_URG 0x20
2847#define TCPCB_FLAG_ECE 0x40
2848#define TCPCB_FLAG_CWR 0x80
2851#define TCPCB_SACKED_ACKED 0x01
2852#define TCPCB_SACKED_RETRANS 0x02
2853#define TCPCB_LOST 0x04
2854#define TCPCB_TAGBITS 0x07
2856#define TCPCB_EVER_RETRANS 0x80
2857#define TCPCB_RETRANS (TCPCB_SACKED_RETRANS|TCPCB_EVER_RETRANS)
2859#define TCPCB_URG 0x20
2861#define TCPCB_AT_TAIL (TCPCB_URG)
2867#define TCP_SKB_CB(__skb) ((struct tcp_skb_cb *)&((__skb)->cb[0]))
2869#define for_retrans_queue(skb, sk, tp) \
2870 for (skb = (sk)->write_queue.next; \
2871 (skb != (tp)->send_head) && \
2872 (skb != (struct sk_buff *)&(sk)->write_queue); \
2918 return tp->packets_out -
tp->left_out +
tp->retrans_out;
2946 return tp->snd_ssthresh;
2948 return max(
tp->snd_ssthresh,
2949 ((
tp->snd_cwnd >> 1) +
2950 (
tp->snd_cwnd >> 2)));
2959 if (
tp->sack_ok &&
tp->sacked_out >=
tp->packets_out -
tp->lost_out)
2960 tp->sacked_out =
tp->packets_out -
tp->lost_out;
2961 tp->left_out =
tp->sacked_out +
tp->lost_out;
2972 if (
tp->packets_out >=
tp->snd_cwnd) {
2974 tp->snd_cwnd_used = 0;
2978 if (
tp->packets_out >
tp->snd_cwnd_used)
2979 tp->snd_cwnd_used =
tp->packets_out;
2991 tp->undo_marker = 0;
2993 tp->snd_cwnd =
min(
tp->snd_cwnd,
2995 tp->snd_cwnd_cnt = 0;
2996 tp->high_seq =
tp->snd_nxt;
2998 TCP_ECN_queue_cwr(
tp);
3005 tp->prior_ssthresh = 0;
3053 return (skb->
len < mss_now &&
3068 unsigned cur_mss,
int nonagle)
3095 return ((nonagle==1 ||
tp->urg_mode
3108 if (!
tp->packets_out && !
tp->pending)
3187 unsigned long saddr,
unsigned long daddr,
3223 tp->ucopy.memory = 0;
3241 if (
tp->ucopy.task) {
3244 if (
tp->ucopy.memory > sk->
rcvbuf) {
3251 sk->backlog_rcv(
sk, skb1);
3252 NET_INC_STATS_BH(TCPPrequeueDropped);
3255 tp->ucopy.memory = 0;
3257 wake_up_interruptible(
sk->sleep);
3273static char *statename[]={
3274 "Unused",
"Established",
"Syn Sent",
"Syn Recv",
3275 "Fin Wait 1",
"Fin Wait 2",
"Time Wait",
"Close",
3276 "Close Wait",
"Last ACK",
"Listen",
"Closing"
3283 int oldstate =
sk->state;
3288 TCP_INC_STATS(TcpCurrEstab);
3292 sk->prot->unhash(
sk);
3293 if (
sk->prev && !(
sk->userlocks&SOCK_BINDPORT_LOCK))
3298 tcp_statistics[smp_processor_id()*2+!in_softirq()].TcpCurrEstab--;
3307 SOCK_DEBUG(
sk,
"TCP sk=%p, State %s -> %s\n",
sk, statename[oldstate],statename[
state]);
3318 sk->shutdown = SHUTDOWN_MASK;
3321 sk->state_change(
sk);
3339 if (
tp->tstamp_ok) {
3347 if (
tp->eff_sacks) {
3356 for(this_sack = 0; this_sack <
tp->eff_sacks; this_sack++) {
3374 int offer_wscale,
int wscale,
__u32 tstamp,
__u32 ts_recent)
3417 __u32 *window_clamp,
3422 unsigned int space = (__space < 0 ? 0 : __space);
3425 if (*window_clamp == 0)
3426 (*window_clamp) = (65535 << 14);
3443 while (
space > 65535 && (*rcv_wscale) < 14) {
3447 if (*rcv_wscale && sysctl_tcp_app_win &&
space>=mss &&
3448 space -
max((
space>>sysctl_tcp_app_win), mss>>*rcv_wscale) < 65536/2)
3456 if (mss > (1<<*rcv_wscale)) {
3460 else if (mss > 1460)
3462 if (*rcv_wnd > init_cwnd*mss)
3463 *rcv_wnd = init_cwnd*mss;
3466 (*window_clamp) =
min(65535U << (*rcv_wscale), *window_clamp);
3473 return sysctl_tcp_adv_win_scale<=0 ?
3474 (
space>>(-sysctl_tcp_adv_win_scale)) :
3532 if (!
tp->accept_queue_tail) {
3533 tp->accept_queue = req;
3535 tp->accept_queue_tail->dl_next = req;
3537 tp->accept_queue_tail = req;
3557 if (--lopt->
qlen == 0)
3606 write_lock(&
tp->syn_wait_lock);
3608 write_unlock(&
tp->syn_wait_lock);
3641#define TCP_MEM_QUANTUM ((int)PAGE_SIZE)
3676 NET_INC_STATS(TCPMemoryPressures);
3685 if (!(sk->
userlocks&SOCK_SNDBUF_LOCK)) {
3699 if (
sk->forward_alloc >= (
int)skb->
truesize ||
3792 return tp->keepalive_intvl ? : sysctl_tcp_keepalive_intvl;
3801 return tp->keepalive_time ? : sysctl_tcp_keepalive_time;
3810 int fin_timeout =
tp->linger2 ? : sysctl_tcp_fin_timeout;
3812 if (fin_timeout < (
tp->rto<<2) - (
tp->rto>>1))
3813 fin_timeout = (
tp->rto<<2) - (
tp->rto>>1);
3824 if ((
s32)(
tp->rcv_tsval -
tp->ts_recent) >= 0)
3849#define TCP_CHECK_TIMER(sk) do { } while (0)
void destroy(_Tp *__pointer)
static int nonblock(int fd, int isnonblock)
static unsigned char bytes[4]
struct outqueuenode * head
static void atomic_inc(atomic_t volatile *v)
static void atomic_add(int volatile i, atomic_t volatile *v)
static void atomic_dec(atomic_t volatile *v)
static int atomic_dec_and_test(atomic_t volatile *v)
void tcp_disconnect(void)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
_In_ uint64_t _In_ uint64_t _In_ uint64_t _In_opt_ traverse_ptr * tp
unsigned int __kernel_size_t
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
GLuint GLsizei GLsizei * length
GLenum const GLvoid * addr
GLenum GLenum GLenum input
void kmem_cache_free(kmem_cache_t *kc, void *p)
#define __constant_htonl(x)
int wake_up(wait_queue_head_t *queue)
#define spin_lock_init(sl)
#define spin_lock_irqsave(sl, flags)
#define spin_unlock_irqrestore(sl, flags)
static const WCHAR desc[]
static unsigned __int64 next
SOCKET WSAAPI socket(IN INT af, IN INT type, IN INT protocol)
unsigned long rate_tokens
struct neighbour * neighbour
int(* output)(struct sk_buff *)
void(* link_failure)(struct sk_buff *)
kmem_cache_t * kmem_cachep
void(* destroy)(struct dst_entry *)
__kernel_size_t msg_controllen
__kernel_size_t msg_iovlen
union open_request::@1029 af
struct open_request * dl_next
struct or_calltable * class
void(* send_reset)(struct sk_buff *skb)
int(* rtx_syn_ack)(struct sock *sk, struct open_request *req, struct dst_entry *)
void(* destructor)(struct open_request *req)
void(* send_ack)(struct sk_buff *skb, struct open_request *req)
int(* setsockopt)(struct sock *sk, int level, int optname, char *optval, int optlen)
int(* getsockopt)(struct sock *sk, int level, int optname, char *optval, int *option)
int(* sendmsg)(struct sock *sk, struct msghdr *msg, int len)
int(* backlog_rcv)(struct sock *sk, struct sk_buff *skb)
int(* bind)(struct sock *sk, struct sockaddr *uaddr, int addr_len)
void(* close)(struct sock *sk, long timeout)
int(* destroy)(struct sock *sk)
void(* unhash)(struct sock *sk)
int(* recvmsg)(struct sock *sk, struct msghdr *msg, int len, int noblock, int flags, int *addr_len)
int(* init)(struct sock *sk)
struct proto::@1023 stats[32]
int(* disconnect)(struct sock *sk, int flags)
void(* shutdown)(struct sock *sk, int how)
int(* ioctl)(struct sock *sk, int cmd, unsigned long arg)
int(* get_port)(struct sock *sk, unsigned short snum)
struct sk_buff_head * list
void(* destructor)(struct sk_buff *)
struct sk_buff * frag_list
skb_frag_t frags[MAX_SKB_FRAGS]
struct sock::@1026 backlog
void(* destruct)(struct sock *sk)
union sock::@1028 protinfo
struct sk_buff_head error_queue
struct sock ** bind_pprev
void(* state_change)(struct sock *sk)
volatile unsigned char state
void(* data_ready)(struct sock *sk, int bytes)
wait_queue_head_t * sleep
unsigned char use_write_queue
int(* backlog_rcv)(struct sock *sk, struct sk_buff *skb)
struct sk_buff_head receive_queue
unsigned short ack_backlog
void(* error_report)(struct sock *sk)
volatile unsigned char zapped
struct netlink_opt * af_netlink
union sock::@1027 tp_pinfo
unsigned short max_ack_backlog
void(* write_space)(struct sock *sk)
struct sk_buff_head write_queue
struct dst_entry * dst_cache
struct tcp_bind_bucket * next
struct tcp_bind_bucket ** pprev
struct tcp_bind_bucket * chain
void(* send_check)(struct sock *sk, struct tcphdr *th, int len, struct sk_buff *skb)
int(* conn_request)(struct sock *sk, struct sk_buff *skb)
int(* queue_xmit)(struct sk_buff *skb)
int(* setsockopt)(struct sock *sk, int level, int optname, char *optval, int optlen)
int(* rebuild_header)(struct sock *sk)
int(* getsockopt)(struct sock *sk, int level, int optname, char *optval, int *optlen)
int(* remember_stamp)(struct sock *sk)
void(* addr2sockaddr)(struct sock *sk, struct sockaddr *)
rwlock_t __tcp_lhash_lock ____cacheline_aligned
atomic_t __tcp_lhash_users
struct sock * __tcp_listening_hash[TCP_LHTABLE_SIZE]
struct tcp_ehash_bucket * __tcp_ehash
wait_queue_head_t __tcp_lhash_wait
struct tcp_bind_hashbucket * __tcp_bhash
spinlock_t __tcp_portalloc_lock
struct open_request * syn_table[TCP_SYNQ_HSIZE]
struct tcp_listen_opt * listen_opt
struct open_request * accept_queue_tail
struct page * sndmsg_page
struct task_struct * task
struct timer_list delack_timer
unsigned int keepalive_intvl
struct tcp_sack_block duplicate_sack[1]
struct timer_list retransmit_timer
unsigned int keepalive_time
struct tcp_opt::@1025 ucopy
struct open_request * accept_queue
struct sk_buff_head out_of_order_queue
struct tcp_sack_block selective_acks[4]
struct sk_buff * send_head
unsigned long last_synq_overflow
__u8 keepalive_probes
Definition: <