亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tcp.h

?? 《嵌入式系統設計與實例開發實驗教材二源碼》Linux內核移植與編譯實驗
?? H
?? 第 1 頁 / 共 4 頁
字號:
extern int sysctl_tcp_wmem[3];extern int sysctl_tcp_rmem[3];extern int sysctl_tcp_app_win;extern int sysctl_tcp_adv_win_scale;extern atomic_t tcp_memory_allocated;extern atomic_t tcp_sockets_allocated;extern int tcp_memory_pressure;struct open_request;struct or_calltable {	int  family;	int  (*rtx_syn_ack)	(struct sock *sk, struct open_request *req, struct dst_entry*);	void (*send_ack)	(struct sk_buff *skb, struct open_request *req);	void (*destructor)	(struct open_request *req);	void (*send_reset)	(struct sk_buff *skb);};struct tcp_v4_open_req {	__u32			loc_addr;	__u32			rmt_addr;	struct ip_options	*opt;};#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)struct tcp_v6_open_req {	struct in6_addr		loc_addr;	struct in6_addr		rmt_addr;	struct sk_buff		*pktopts;	int			iif;};#endif/* this structure is too big */struct open_request {	struct open_request	*dl_next; /* Must be first member! */	__u32			rcv_isn;	__u32			snt_isn;	__u16			rmt_port;	__u16			mss;	__u8			retrans;	__u8			index;	__u16	snd_wscale : 4, 		rcv_wscale : 4, 		tstamp_ok : 1,		sack_ok : 1,		wscale_ok : 1,		ecn_ok : 1,		acked : 1;	/* The following two fields can be easily recomputed I think -AK */	__u32			window_clamp;	/* window clamp at creation time */	__u32			rcv_wnd;	/* rcv_wnd offered first time */	__u32			ts_recent;	unsigned long		expires;	struct or_calltable	*class;	struct sock		*sk;	union {		struct tcp_v4_open_req v4_req;#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)		struct tcp_v6_open_req v6_req;#endif	} af;};/* SLAB cache for open requests. */extern kmem_cache_t *tcp_openreq_cachep;#define tcp_openreq_alloc()		kmem_cache_alloc(tcp_openreq_cachep, SLAB_ATOMIC)#define tcp_openreq_fastfree(req)	kmem_cache_free(tcp_openreq_cachep, req)static inline void tcp_openreq_free(struct open_request *req){	req->class->destructor(req);	tcp_openreq_fastfree(req);}#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)#define TCP_INET_FAMILY(fam) ((fam) == AF_INET)#else#define TCP_INET_FAMILY(fam) 1#endif/* *	Pointers to address related TCP functions *	(i.e. things that depend on the address family) * * 	BUGGG_FUTURE: all the idea behind this struct is wrong. *	It mixes socket frontend with transport function. *	With port sharing between IPv6/v4 it gives the only advantage, *	only poor IPv6 needs to permanently recheck, that it *	is still IPv6 8)8) It must be cleaned up as soon as possible. *						--ANK (980802) */struct tcp_func {	int			(*queue_xmit)		(struct sk_buff *skb);	void			(*send_check)		(struct sock *sk,							 struct tcphdr *th,							 int len,							 struct sk_buff *skb);	int			(*rebuild_header)	(struct sock *sk);	int			(*conn_request)		(struct sock *sk,							 struct sk_buff *skb);	struct sock *		(*syn_recv_sock)	(struct sock *sk,							 struct sk_buff *skb,							 struct open_request *req,							 struct dst_entry *dst);		int			(*hash_connecting)	(struct sock *sk);	int			(*remember_stamp)	(struct sock *sk);	__u16			net_header_len;	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 *optlen);	void			(*addr2sockaddr)	(struct sock *sk,							 struct sockaddr *);	int sockaddr_len;};/* * The next routines deal with comparing 32 bit unsigned ints * and worry about wraparound (automatic with unsigned arithmetic). */extern __inline int before(__u32 seq1, __u32 seq2){        return (__s32)(seq1-seq2) < 0;}extern __inline int after(__u32 seq1, __u32 seq2){	return (__s32)(seq2-seq1) < 0;}/* is s2<=s1<=s3 ? */extern __inline int between(__u32 seq1, __u32 seq2, __u32 seq3){	return seq3 - seq2 >= seq1 - seq2;}extern struct proto tcp_prot;extern struct tcp_mib tcp_statistics[NR_CPUS*2];#define TCP_INC_STATS(field)		SNMP_INC_STATS(tcp_statistics, field)#define TCP_INC_STATS_BH(field)		SNMP_INC_STATS_BH(tcp_statistics, field)#define TCP_INC_STATS_USER(field) 	SNMP_INC_STATS_USER(tcp_statistics, field)extern void			tcp_put_port(struct sock *sk);extern void			__tcp_put_port(struct sock *sk);extern void			tcp_inherit_port(struct sock *sk, struct sock *child);extern void			tcp_v4_err(struct sk_buff *skb, u32);extern void			tcp_shutdown (struct sock *sk, int how);extern int			tcp_v4_rcv(struct sk_buff *skb);extern int			tcp_v4_remember_stamp(struct sock *sk);extern int		    	tcp_v4_tw_remember_stamp(struct tcp_tw_bucket *tw);extern int			tcp_sendmsg(struct sock *sk, struct msghdr *msg, int size);extern ssize_t			tcp_sendpage(struct socket *sock, struct page *page, int offset, size_t size, int flags);extern int			tcp_ioctl(struct sock *sk, 					  int cmd, 					  unsigned long arg);extern int			tcp_rcv_state_process(struct sock *sk, 						      struct sk_buff *skb,						      struct tcphdr *th,						      unsigned len);extern int			tcp_rcv_established(struct sock *sk, 						    struct sk_buff *skb,						    struct tcphdr *th, 						    unsigned len);enum tcp_ack_state_t{	TCP_ACK_SCHED = 1,	TCP_ACK_TIMER = 2,	TCP_ACK_PUSHED= 4};static inline void tcp_schedule_ack(struct tcp_opt *tp){	tp->ack.pending |= TCP_ACK_SCHED;}static inline int tcp_ack_scheduled(struct tcp_opt *tp){	return tp->ack.pending&TCP_ACK_SCHED;}static __inline__ void tcp_dec_quickack_mode(struct tcp_opt *tp){	if (tp->ack.quick && --tp->ack.quick == 0) {		/* Leaving quickack mode we deflate ATO. */		tp->ack.ato = TCP_ATO_MIN;	}}extern void tcp_enter_quickack_mode(struct tcp_opt *tp);static __inline__ void tcp_delack_init(struct tcp_opt *tp){	memset(&tp->ack, 0, sizeof(tp->ack));}static inline void tcp_clear_options(struct tcp_opt *tp){ 	tp->tstamp_ok = tp->sack_ok = tp->wscale_ok = tp->snd_wscale = 0;}enum tcp_tw_status{	TCP_TW_SUCCESS = 0,	TCP_TW_RST = 1,	TCP_TW_ACK = 2,	TCP_TW_SYN = 3};extern enum tcp_tw_status	tcp_timewait_state_process(struct tcp_tw_bucket *tw,							   struct sk_buff *skb,							   struct tcphdr *th,							   unsigned len);extern struct sock *		tcp_check_req(struct sock *sk,struct sk_buff *skb,					      struct open_request *req,					      struct open_request **prev);extern int			tcp_child_process(struct sock *parent,						  struct sock *child,						  struct sk_buff *skb);extern void			tcp_enter_loss(struct sock *sk, int how);extern void			tcp_clear_retrans(struct tcp_opt *tp);extern void			tcp_update_metrics(struct sock *sk);extern void			tcp_close(struct sock *sk, 					  long timeout);extern struct sock *		tcp_accept(struct sock *sk, int flags, int *err);extern unsigned int		tcp_poll(struct file * file, struct socket *sock, struct poll_table_struct *wait);extern void			tcp_write_space(struct sock *sk); extern int			tcp_getsockopt(struct sock *sk, int level, 					       int optname, char *optval, 					       int *optlen);extern int			tcp_setsockopt(struct sock *sk, int level, 					       int optname, char *optval, 					       int optlen);extern void			tcp_set_keepalive(struct sock *sk, int val);extern int			tcp_recvmsg(struct sock *sk, 					    struct msghdr *msg,					    int len, int nonblock, 					    int flags, int *addr_len);extern int			tcp_listen_start(struct sock *sk);extern void			tcp_parse_options(struct sk_buff *skb,						  struct tcp_opt *tp,						  int estab);/* *	TCP v4 functions exported for the inet6 API */extern int		       	tcp_v4_rebuild_header(struct sock *sk);extern int		       	tcp_v4_build_header(struct sock *sk, 						    struct sk_buff *skb);extern void		       	tcp_v4_send_check(struct sock *sk, 						  struct tcphdr *th, int len, 						  struct sk_buff *skb);extern int			tcp_v4_conn_request(struct sock *sk,						    struct sk_buff *skb);extern struct sock *		tcp_create_openreq_child(struct sock *sk,							 struct open_request *req,							 struct sk_buff *skb);extern struct sock *		tcp_v4_syn_recv_sock(struct sock *sk,						     struct sk_buff *skb,						     struct open_request *req,							struct dst_entry *dst);extern int			tcp_v4_do_rcv(struct sock *sk,					      struct sk_buff *skb);extern int			tcp_v4_connect(struct sock *sk,					       struct sockaddr *uaddr,					       int addr_len);extern int			tcp_connect(struct sock *sk,					    struct sk_buff *skb);extern struct sk_buff *		tcp_make_synack(struct sock *sk,						struct dst_entry *dst,						struct open_request *req);extern int			tcp_disconnect(struct sock *sk, int flags);extern void			tcp_unhash(struct sock *sk);extern int			tcp_v4_hash_connecting(struct sock *sk);/* From syncookies.c */extern struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb, 				    struct ip_options *opt);extern __u32 cookie_v4_init_sequence(struct sock *sk, struct sk_buff *skb, 				     __u16 *mss);/* tcp_output.c */extern int tcp_write_xmit(struct sock *, int nonagle);extern int tcp_retransmit_skb(struct sock *, struct sk_buff *);extern void tcp_xmit_retransmit_queue(struct sock *);extern void tcp_simple_retransmit(struct sock *);extern void tcp_send_probe0(struct sock *);extern void tcp_send_partial(struct sock *);extern int  tcp_write_wakeup(struct sock *);extern void tcp_send_fin(struct sock *sk);extern void tcp_send_active_reset(struct sock *sk, int priority);extern int  tcp_send_synack(struct sock *);extern int  tcp_transmit_skb(struct sock *, struct sk_buff *);extern void tcp_send_skb(struct sock *, struct sk_buff *, int force_queue, unsigned mss_now);extern void tcp_push_one(struct sock *, unsigned mss_now);extern void tcp_send_ack(struct sock *sk);extern void tcp_send_delayed_ack(struct sock *sk);/* tcp_timer.c */extern void tcp_init_xmit_timers(struct sock *);extern void tcp_clear_xmit_timers(struct sock *);extern void tcp_delete_keepalive_timer (struct sock *);extern void tcp_reset_keepalive_timer (struct sock *, unsigned long);extern int tcp_sync_mss(struct sock *sk, u32 pmtu);extern const char timer_bug_msg[];static inline void tcp_clear_xmit_timer(struct sock *sk, int what){	struct tcp_opt *tp = &sk->tp_pinfo.af_tcp;		switch (what) {	case TCP_TIME_RETRANS:	case TCP_TIME_PROBE0:		tp->pending = 0;#ifdef TCP_CLEAR_TIMERS		if (timer_pending(&tp->retransmit_timer) &&		    del_timer(&tp->retransmit_timer))			__sock_put(sk);#endif		break;	case TCP_TIME_DACK:		tp->ack.blocked = 0;		tp->ack.pending = 0;#ifdef TCP_CLEAR_TIMERS		if (timer_pending(&tp->delack_timer) &&		    del_timer(&tp->delack_timer))			__sock_put(sk);#endif		break;	default:		printk(timer_bug_msg);		return;	};}/* *	Reset the retransmission timer */static inline void tcp_reset_xmit_timer(struct sock *sk, int what, unsigned long when){	struct tcp_opt *tp = &sk->tp_pinfo.af_tcp;	if (when > TCP_RTO_MAX) {#ifdef TCP_DEBUG		printk(KERN_DEBUG "reset_xmit_timer sk=%p %d when=0x%lx, caller=%p\n", sk, what, when, current_text_addr());#endif		when = TCP_RTO_MAX;	}	switch (what) {	case TCP_TIME_RETRANS:	case TCP_TIME_PROBE0:		tp->pending = what;		tp->timeout = jiffies+when;		if (!mod_timer(&tp->retransmit_timer, tp->timeout))			sock_hold(sk);		break;	case TCP_TIME_DACK:		tp->ack.pending |= TCP_ACK_TIMER;		tp->ack.timeout = jiffies+when;		if (!mod_timer(&tp->delack_timer, tp->ack.timeout))			sock_hold(sk);		break;	default:		printk(KERN_DEBUG "bug: unknown timer value\n");	};}/* Compute the current effective MSS, taking SACKs and IP options, * and even PMTU discovery events into account. */static __inline__ unsigned int tcp_current_mss(struct sock *sk){	struct tcp_opt *tp = &sk->tp_pinfo.af_tcp;	struct dst_entry *dst = __sk_dst_get(sk);	int mss_now = tp->mss_cache; 	if (dst && dst->pmtu != tp->pmtu_cookie)		mss_now = tcp_sync_mss(sk, dst->pmtu);	if (tp->eff_sacks)		mss_now -= (TCPOLEN_SACK_BASE_ALIGNED +			    (tp->eff_sacks * TCPOLEN_SACK_PERBLOCK));	return mss_now;}/* Initialize RCV_MSS value. * RCV_MSS is an our guess about MSS used by the peer. * We haven't any direct information about the MSS. * It's better to underestimate the RCV_MSS rather than overestimate. * Overestimations make us ACKing less frequently than needed. * Underestimations are more easy to detect and fix by tcp_measure_rcv_mss().

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区在线视频| 欧美视频一二三区| 悠悠色在线精品| 精品免费99久久| 成人av免费在线播放| 亚洲国产精品影院| 国产日产亚洲精品系列| 在线91免费看| 色哟哟一区二区三区| 国产一区二区福利| 午夜一区二区三区在线观看| 欧美国产禁国产网站cc| 91精品国产高清一区二区三区蜜臀| 成人小视频免费在线观看| 亚洲成人av电影在线| 日韩伦理免费电影| 国产亚洲一区二区三区| 91精品国产入口| 777亚洲妇女| 日韩一级免费观看| 欧美三区在线视频| aaa欧美色吧激情视频| 懂色一区二区三区免费观看| 国产一区二区不卡| 粉嫩在线一区二区三区视频| 国产在线不卡一卡二卡三卡四卡| 韩国一区二区在线观看| 亚洲国产婷婷综合在线精品| 亚洲欧美经典视频| 亚洲一区免费观看| 亚洲va韩国va欧美va| 日韩av一二三| 经典三级一区二区| 国产69精品一区二区亚洲孕妇| 国产乱人伦偷精品视频免下载 | 欧美三级乱人伦电影| 欧美一a一片一级一片| 欧美精品久久天天躁| 日韩欧美久久久| 亚洲精品在线三区| 欧美国产精品一区二区三区| 一区二区中文视频| 亚洲欧美中日韩| 午夜精品久久久| 国产精品一区二区久久不卡| 成人免费毛片a| 欧美日韩在线直播| 久久久不卡影院| 亚洲少妇30p| 久88久久88久久久| 91国在线观看| 国产人妖乱国产精品人妖| 亚洲一区成人在线| 在线一区二区三区| 日韩欧美一区二区不卡| 自拍偷自拍亚洲精品播放| 看电视剧不卡顿的网站| av一二三不卡影片| 欧美精品一区二区三区蜜桃视频| 一区二区免费在线| 成人av电影免费在线播放| 制服丝袜日韩国产| 亚洲宅男天堂在线观看无病毒| 国产不卡视频在线观看| 欧美巨大另类极品videosbest| 国产精品久久久久永久免费观看 | 亚洲尤物视频在线| 国产91综合一区在线观看| 日韩精品专区在线影院重磅| 亚洲在线一区二区三区| 日本韩国欧美一区| 亚洲日本一区二区| 96av麻豆蜜桃一区二区| 中文字幕成人在线观看| 国产精品一区二区在线观看网站| 91精品国产欧美一区二区18 | 亚洲女同一区二区| 成人高清av在线| 中文字幕第一区二区| aaa国产一区| 亚洲同性gay激情无套| aaa亚洲精品| 亚洲线精品一区二区三区八戒| 色综合亚洲欧洲| 午夜伦欧美伦电影理论片| 欧美自拍偷拍一区| 国产在线国偷精品免费看| 精品国产成人在线影院| 国产一区二区中文字幕| 欧美国产一区二区在线观看| 99精品久久久久久| 天涯成人国产亚洲精品一区av| 91精品蜜臀在线一区尤物| 精品夜夜嗨av一区二区三区| 26uuu亚洲综合色| 99久久综合色| 日韩二区三区四区| 国产精品私人影院| 欧美精品777| 懂色av一区二区三区蜜臀 | 欧美在线视频日韩| 乱一区二区av| 日韩美女视频19| 日韩欧美一级二级| 91福利国产成人精品照片| 裸体一区二区三区| 亚洲人成网站在线| 欧美精品一区二区三区四区| 91国产免费观看| 国产91露脸合集magnet | 欧美一区二区成人6969| 成人a级免费电影| 国内精品免费**视频| 亚洲成人第一页| 中文字幕一区在线观看| 日韩精品一区二区三区视频在线观看 | 久久福利资源站| 国产电影一区二区三区| 国产精品美女久久久久久久久久久 | 激情图片小说一区| 视频在线观看91| 亚洲最色的网站| 亚洲私人黄色宅男| 中文字幕在线不卡国产视频| 久久久久久免费网| 精品国产伦一区二区三区免费| 欧美人与性动xxxx| 欧美日韩美少妇| 欧美精品国产精品| 欧美福利一区二区| 欧美一级欧美三级| 欧美电影免费提供在线观看| 欧美一级欧美三级在线观看| 欧美一区二区三区在线观看视频 | 2014亚洲片线观看视频免费| 精品欧美乱码久久久久久| 欧美精品一区二区三区高清aⅴ| 精品美女一区二区| 国产欧美日韩卡一| 亚洲欧美成人一区二区三区| 亚洲成a人片综合在线| 日本伊人精品一区二区三区观看方式 | 国产精品久久久久久久久免费樱桃| 国产精品美女久久久久久久久| 一区二区三区在线视频观看58| 一区二区三区高清在线| 国产成人在线免费观看| 成人天堂资源www在线| 欧美日韩一区二区在线观看视频| 777奇米四色成人影色区| 国产亚洲女人久久久久毛片| 亚洲精品国产a久久久久久| 亚洲成av人片在www色猫咪| 激情文学综合丁香| 欧美性猛交一区二区三区精品| 精品福利在线导航| 亚洲国产视频一区二区| 福利视频网站一区二区三区| 欧美精品三级在线观看| 国产精品久久久久久户外露出 | 久久精品网站免费观看| 亚洲综合色噜噜狠狠| 国产成人aaa| 欧美成人午夜电影| 亚洲成人动漫一区| 94-欧美-setu| 国产精品国产三级国产专播品爱网| 日韩成人免费看| 欧美日韩在线综合| 亚洲美女在线国产| 成人av在线播放网址| 日韩精品一区二区三区四区| 婷婷丁香激情综合| 欧美日韩激情一区二区三区| 亚洲日本一区二区| 色屁屁一区二区| 综合久久久久久久| 色成年激情久久综合| 亚洲日本乱码在线观看| 日韩一区二区视频在线观看| 亚洲高清在线精品| 欧美一区二区三区色| 天天色天天爱天天射综合| 欧美军同video69gay| 日本欧美一区二区三区| 日韩一区二区视频在线观看| 激情丁香综合五月| 欧美国产日韩亚洲一区| 成人高清在线视频| 亚洲国产一区二区在线播放| 欧美一级艳片视频免费观看| 日本中文字幕一区二区视频 | 91精品福利在线一区二区三区| 日本中文一区二区三区| 久久久91精品国产一区二区精品| 岛国精品在线观看| 亚洲精品高清视频在线观看| 欧美日韩国产高清一区二区| 精品一区二区av| 亚洲欧美欧美一区二区三区|