patch-2.1.36 linux/include/net/sock.h

Next file: linux/include/net/tcp.h
Previous file: linux/include/linux/zorro.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.35/linux/include/net/sock.h linux/include/net/sock.h
@@ -179,6 +179,7 @@
 
 #endif /* IPV6 */
 
+
 struct tcp_opt
 {
 /*
@@ -197,6 +198,7 @@
 
 	__u32	rcv_wup;	/* rcv_nxt on last window update sent	*/
 
+	__u32	fin_seq;	/* XXX This one should go, we don't need it. -DaveM */
 
 	__u32	srtt;		/* smothed round trip time << 3		*/
 	__u32	mdev;		/* medium deviation			*/
@@ -207,6 +209,28 @@
  */
  	__u32	snd_cwnd;	/* Sending congestion window		*/
  	__u32	snd_ssthresh;	/* Slow start size threshold		*/
+	__u16	snd_cwnd_cnt;
+	__u16	max_window;
+
+/*
+ *      Options received (usually on last packet, some only on SYN packets).
+ */
+	char	tstamp_ok,	/* TIMESTAMP seen on SYN packet		*/
+		sack_ok;	/* SACK_PERM seen on SYN packet		*/
+	char	saw_tstamp;	/* Saw TIMESTAMP on last packet		*/
+        __u16	in_mss;		/* MSS option received from sender	*/
+        __u8	snd_wscale;	/* Window scaling received from sender	*/
+        __u8	rcv_wscale;	/* Window scaling to send to receiver	*/
+        __u32	rcv_tsval;	/* Time stamp value             	*/
+        __u32	rcv_tsecr;	/* Time stamp echo reply        	*/
+        __u32	ts_recent;	/* Time stamp to echo next		*/
+        __u32	ts_recent_stamp;/* Time we stored ts_recent (for aging) */
+	__u32	last_ack_sent;	/* last ack we sent			*/
+        int	sacks;		/* Number of SACK blocks if any		*/
+        __u32	left_sack[4];	/* Left edges of blocks         	*/
+        __u32	right_sack[4];	/* Right edges of blocks        	*/
+	int	tcp_header_len;      /* Bytes of tcp header to send 	*/
+
 /*
  *	Timers used by the TCP protocol layer
  */
@@ -217,17 +241,21 @@
  	struct timer_list	retransmit_timer;	/* Resend (no ack) */
 
 	__u32	basertt;	/* Vegas baseRTT */
+	__u32	packets_out;	/* Packets which are "in flight" */
+	__u32	window_clamp;	/* XXX Document this... -DaveM */
 
+	__u8	pending;	/* pending events */
 	__u8	delayed_acks;
-	__u8	dup_acks;
+	__u8	dup_acks;	/* Consequetive duplicate acks seen from other end */
+	__u8	retransmits;
 
 	__u32	lrcvtime;	/* timestamp of last received data packet  */
 	__u32	rcv_tstamp;	/* timestamp of last received packet  */
 	__u32	iat_mdev;	/* interarrival time medium deviation */
 	__u32	iat;		/* interarrival time */
 	__u32	ato;		/* delayed ack timeout */
+	__u32	high_seq;	/* highest sequence number sent by onset of congestion */
 
-	__u32	high_seq;
 /*
  *	new send pointers
  */
@@ -238,11 +266,6 @@
 						 * fast retransmit
 						 */
 /*
- * pending events
- */
-	__u8	pending;
-
-/*
  *	Header prediction flags
  *	0x5?10 << 16 + snd_wnd in net byte order
  */
@@ -252,6 +275,7 @@
 	__u32	probes_out;		/* unanswered 0 window probes	   */
 
 	struct open_request	*syn_wait_queue;
+	struct open_request	**syn_wait_last;
 	struct tcp_func		*af_specific;
 };
 
@@ -311,29 +335,29 @@
 	atomic_t		wmem_alloc;
 	atomic_t		rmem_alloc;
 	unsigned long		allocation;		/* Allocation mode */
+
+	/* The following stuff should probably move to the tcp private area */
 	__u32			write_seq;
 	__u32			copied_seq;
-	__u32			fin_seq;
 	__u32			syn_seq;
 	__u32			urg_seq;
 	__u32			urg_data;
+	unsigned char		delayed_acks;
+	/* End of block to move */
+
 	int			sock_readers;		/* user count */
 
-	unsigned char		delayed_acks,
-				dup_acks;
   /*
    *	Not all are volatile, but some are, so we
    * 	might as well say they all are.
    */
 	volatile char		dead,
 				urginline,
-				intr,
 				done,
 				reuse,
 				keepopen,
 				linger,
 				destroy,
-				ack_timed,
 				no_check,
 				zapped,	/* In ax25 & ipx means not linked */
 				broadcast,
@@ -350,12 +374,7 @@
 	int			hashent;
 	struct sock		*pair;
 
-	struct sk_buff		* send_head;
-
 	struct sk_buff_head	back_log;
-	struct sk_buff		*partial;
-	struct timer_list	partial_timer;
-	atomic_t		retransmits;
 
 	struct sk_buff_head	write_queue,
 				receive_queue,
@@ -374,22 +393,14 @@
 
 	unsigned short		max_unacked;
 
-
-	unsigned short		bytes_rcv;
 /*
  *	mss is min(mtu, max_window) 
  */
 	unsigned short		mtu;       /* mss negotiated in the syn's */
 	unsigned short		mss;       /* current eff. mss - can change */
 	unsigned short		user_mss;  /* mss requested by user in ioctl */
-	unsigned short		max_window;
-	unsigned long 		window_clamp;
-	unsigned int		ssthresh;
 	unsigned short		num;
 
-	unsigned short		cong_window;
-	unsigned short		cong_count;
-	atomic_t		packets_out;
 	unsigned short		shutdown;
 
 #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
@@ -404,13 +415,7 @@
 		struct raw6_opt		tp_raw;
 #endif
 	} tp_pinfo;
-/*
- *	currently backoff isn't used, but I'm maintaining it in case
- *	we want to go back to a backoff formula that needs it
- */
-/* 
-	unsigned short		backoff;
- */
+
 	int			err, err_soft;	/* Soft holds errors that don't
 						   cause failure but are the cause
 						   of a persistent failure not just
@@ -426,6 +431,7 @@
 	unsigned short		type;
 	unsigned char		localroute;	/* Route locally only */
 	struct ucred		peercred;
+
 	/* What the user has tried to set with the security API */
 	short			authentication;
 	short			encryption;  
@@ -471,10 +477,6 @@
 	int			ip_tos;			/* TOS */
 	unsigned	   	ip_cmsg_flags;
 	struct tcphdr		dummy_th;
-	struct timer_list	keepalive_timer;	/* TCP keepalive hack */
-	struct timer_list	retransmit_timer;	/* TCP retransmit timer */
-	struct timer_list	delack_timer;		/* TCP delayed ack timer */
-	int			ip_xmit_timeout;	/* Why the timeout is running */
 	struct ip_options	*opt;
 	unsigned char		ip_hdrincl;		/* Include headers ? */
 	__u8			ip_mc_ttl;		/* Multicasting TTL */
@@ -491,8 +493,8 @@
  
 	int			timeout;	/* What are we waiting for? */
 	struct timer_list	timer;		/* This is the TIME_WAIT/receive timer
-					 * when we are doing IP
-					 */
+						 * when we are doing IP
+						 */
 	struct timeval		stamp;
 
  /*

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov