]> err.no Git - linux-2.6/commitdiff
[TCP]: Introduce tcp_wnd_end() to reduce line lengths
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
Mon, 31 Dec 2007 12:48:41 +0000 (04:48 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 23:00:22 +0000 (15:00 -0800)
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp_input.c
net/ipv4/tcp_output.c

index 76286e80205afa0ff4c6029a9e43412e189b3e0e..6a732d4919fe2f91e47b583f87447236c5e8e3a9 100644 (file)
@@ -785,6 +785,12 @@ static __inline__ __u32 tcp_max_burst(const struct tcp_sock *tp)
        return 3;
 }
 
+/* Returns end sequence number of the receiver's advertised window */
+static inline u32 tcp_wnd_end(const struct tcp_sock *tp)
+{
+       return tp->snd_una + tp->snd_wnd;
+}
+
 /* RFC2861 Check whether we are limited by application or congestion window
  * This is the inverse of cwnd check in tcp_tso_should_defer
  */
index 41f4b862319d47958d57279abeb9682e58f1b712..366f63ae4d5c0813a5a9601f241a766665349c8c 100644 (file)
@@ -2921,8 +2921,7 @@ static void tcp_ack_probe(struct sock *sk)
 
        /* Was it a usable window open? */
 
-       if (!after(TCP_SKB_CB(tcp_send_head(sk))->end_seq,
-                  tp->snd_una + tp->snd_wnd)) {
+       if (!after(TCP_SKB_CB(tcp_send_head(sk))->end_seq, tcp_wnd_end(tp))) {
                icsk->icsk_backoff = 0;
                inet_csk_clear_xmit_timer(sk, ICSK_TIME_PROBE0);
                /* Socket must be waked up by subsequent tcp_data_snd_check().
index 1ca638b8316824b44e3ca56569c14cdcaa481403..821fae271428338312acd7d131424ce32783c636 100644 (file)
@@ -89,10 +89,10 @@ static inline __u32 tcp_acceptable_seq(struct sock *sk)
 {
        struct tcp_sock *tp = tcp_sk(sk);
 
-       if (!before(tp->snd_una+tp->snd_wnd, tp->snd_nxt))
+       if (!before(tcp_wnd_end(tp), tp->snd_nxt))
                return tp->snd_nxt;
        else
-               return tp->snd_una+tp->snd_wnd;
+               return tcp_wnd_end(tp);
 }
 
 /* Calculate mss to advertise in SYN segment.
@@ -1024,7 +1024,7 @@ static unsigned int tcp_mss_split_point(struct sock *sk, struct sk_buff *skb,
        struct tcp_sock *tp = tcp_sk(sk);
        u32 needed, window, cwnd_len;
 
-       window = (tp->snd_una + tp->snd_wnd - TCP_SKB_CB(skb)->seq);
+       window = tcp_wnd_end(tp) - TCP_SKB_CB(skb)->seq;
        cwnd_len = mss_now * cwnd;
 
        if (likely(cwnd_len <= window && skb != tcp_write_queue_tail(sk)))
@@ -1134,7 +1134,7 @@ static inline int tcp_snd_wnd_test(struct tcp_sock *tp, struct sk_buff *skb, uns
        if (skb->len > cur_mss)
                end_seq = TCP_SKB_CB(skb)->seq + cur_mss;
 
-       return !after(end_seq, tp->snd_una + tp->snd_wnd);
+       return !after(end_seq, tcp_wnd_end(tp));
 }
 
 /* This checks if the data bearing packet SKB (usually tcp_send_head(sk))
@@ -1251,7 +1251,7 @@ static int tcp_tso_should_defer(struct sock *sk, struct sk_buff *skb)
        BUG_ON(tcp_skb_pcount(skb) <= 1 ||
               (tp->snd_cwnd <= in_flight));
 
-       send_win = (tp->snd_una + tp->snd_wnd) - TCP_SKB_CB(skb)->seq;
+       send_win = tcp_wnd_end(tp) - TCP_SKB_CB(skb)->seq;
 
        /* From in_flight test above, we know that cwnd > in_flight.  */
        cong_win = (tp->snd_cwnd - in_flight) * tp->mss_cache;
@@ -1332,7 +1332,7 @@ static int tcp_mtu_probe(struct sock *sk)
 
        if (tp->snd_wnd < size_needed)
                return -1;
-       if (after(tp->snd_nxt + size_needed, tp->snd_una + tp->snd_wnd))
+       if (after(tp->snd_nxt + size_needed, tcp_wnd_end(tp)))
                return 0;
 
        /* Do we need to wait to drain cwnd? With none in flight, don't stall */
@@ -1687,7 +1687,7 @@ static void tcp_retrans_try_collapse(struct sock *sk, struct sk_buff *skb, int m
                        return;
 
                /* Next skb is out of window. */
-               if (after(TCP_SKB_CB(next_skb)->end_seq, tp->snd_una+tp->snd_wnd))
+               if (after(TCP_SKB_CB(next_skb)->end_seq, tcp_wnd_end(tp)))
                        return;
 
                /* Punt if not enough space exists in the first SKB for
@@ -1831,7 +1831,7 @@ int tcp_retransmit_skb(struct sock *sk, struct sk_buff *skb)
         * case, when window is shrunk to zero. In this case
         * our retransmit serves as a zero window probe.
         */
-       if (!before(TCP_SKB_CB(skb)->seq, tp->snd_una+tp->snd_wnd)
+       if (!before(TCP_SKB_CB(skb)->seq, tcp_wnd_end(tp))
            && TCP_SKB_CB(skb)->seq != tp->snd_una)
                return -EAGAIN;
 
@@ -2497,10 +2497,10 @@ int tcp_write_wakeup(struct sock *sk)
                struct sk_buff *skb;
 
                if ((skb = tcp_send_head(sk)) != NULL &&
-                   before(TCP_SKB_CB(skb)->seq, tp->snd_una+tp->snd_wnd)) {
+                   before(TCP_SKB_CB(skb)->seq, tcp_wnd_end(tp))) {
                        int err;
                        unsigned int mss = tcp_current_mss(sk, 0);
-                       unsigned int seg_size = tp->snd_una+tp->snd_wnd-TCP_SKB_CB(skb)->seq;
+                       unsigned int seg_size = tcp_wnd_end(tp) - TCP_SKB_CB(skb)->seq;
 
                        if (before(tp->pushed_seq, TCP_SKB_CB(skb)->end_seq))
                                tp->pushed_seq = TCP_SKB_CB(skb)->end_seq;