]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - include/net/tcp.h
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / include / net / tcp.h
index e36c874c7fb16c47138428d4ecc106800c5fe48f..38509f047382c35b7b5d06211f3feaa0820eacb4 100644 (file)
@@ -60,6 +60,9 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
  */
 #define MAX_TCP_WINDOW         32767U
 
+/* Offer an initial receive window of 10 mss. */
+#define TCP_DEFAULT_INIT_RCVWND        10
+
 /* Minimal accepted MSS. It is (60+60+8) - (20+20). */
 #define TCP_MIN_MSS            88U
 
@@ -100,12 +103,6 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
 #define TCP_SYNACK_RETRIES 5   /* number of times to retry passive opening a
                                 * connection: ~180sec is RFC minimum   */
 
-
-#define TCP_ORPHAN_RETRIES 7   /* number of times to retry on an orphaned
-                                * socket. 7 is ~50sec-16min.
-                                */
-
-
 #define TCP_TIMEWAIT_LEN (60*HZ) /* how long to wait to destroy TIME-WAIT
                                  * state, about 60 seconds     */
 #define TCP_FIN_TIMEOUT        TCP_TIMEWAIT_LEN
@@ -312,7 +309,8 @@ 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 struct inet_peer *tcp_v4_get_peer(struct sock *sk, bool *release_it);
+extern void *tcp_v4_tw_get_peer(struct sock *sk);
 extern int tcp_v4_tw_remember_stamp(struct inet_timewait_sock *tw);
 extern int tcp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
                       size_t size);
@@ -1043,7 +1041,13 @@ static inline int tcp_paws_check(const struct tcp_options_received *rx_opt,
                return 1;
        if (unlikely(get_seconds() >= rx_opt->ts_recent_stamp + TCP_PAWS_24DAYS))
                return 1;
-
+       /*
+        * Some OSes send SYN and SYNACK messages with tsval=0 tsecr=0,
+        * then following tcp messages have valid values. Ignore 0 value,
+        * or else 'negative' tsval might forbid us to accept their packets.
+        */
+       if (!rx_opt->ts_recent)
+               return 1;
        return 0;
 }
 
@@ -1157,8 +1161,6 @@ struct tcp_md5sig_pool {
        union tcp_md5sum_block  md5_blk;
 };
 
-#define TCP_MD5SIG_MAXKEYS     (~(u32)0)       /* really?! */
-
 /* - functions */
 extern int tcp_v4_md5_hash_skb(char *md5_hash, struct tcp_md5sig_key *key,
                               struct sock *sk, struct request_sock *req,