Linux kernel increased the TCP_MIB_OUTSEGS even if only retransmitted
octets is send out. RFC2012 saied that it excluding those containing
only retransmitted octets.

Refer to RFC2012, tcpOutSegs is defined as following:

   tcpOutSegs OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of segments sent, including those on
               current connections but excluding those containing only
               retransmitted octets."
       ::= { tcp 11 }

--- a/net/ipv4/tcp_output.c     2006-02-23 09:20:24.660261904 +0900
+++ b/net/ipv4/tcp_output.c     2006-02-23 09:41:16.393969456 +0900
@@ -379,7 +379,8 @@
        if (skb->len != tcp_header_size)
                tcp_event_data_sent(tp, skb, sk);
 
-       TCP_INC_STATS(TCP_MIB_OUTSEGS);
+       if (!(tcb->sacked & TCPCB_LOST))
+               TCP_INC_STATS(TCP_MIB_OUTSEGS);
 
        err = tp->af_specific->queue_xmit(skb, 0);
        if (unlikely(err <= 0))



-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to