netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] [SNMP]: Defer InDataGrams increment until recvmsg() does checksum
@ 2007-11-30  3:09 Wang Chen
  2007-11-30  3:15 ` [PATCH 2/3] [UDP]: Clean up for IS_UDPLITE macro Wang Chen
                   ` (2 more replies)
  0 siblings, 3 replies; 26+ messages in thread
From: Wang Chen @ 2007-11-30  3:09 UTC (permalink / raw)
  To: herbert; +Cc: davem, andi, Wang Chen, netdev, gerrit

From:  Wang Chen <wangchen@cn.fujitsu.com>

Thanks dave, herbert, gerrit, andi and other people for your
discussion about this problem.

UdpInDatagrams can be confusing because it counts packets that 
might be dropped later.
Move UdpInDatagrams into recvmsg() as allowed by the RFC.

Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>
---
 Documentation/networking/udplite.txt |    2 +-
 net/ipv4/udp.c                       |    7 +++----
 net/ipv6/udp.c                       |    4 +++-
 3 files changed, 7 insertions(+), 6 deletions(-)

diff -Nurp linux-2.6.24.rc3.org/Documentation/networking/udplite.txt linux-2.6.24.rc3/Documentation/networking/udplite.txt
--- linux-2.6.24.rc3.org/Documentation/networking/udplite.txt	2007-11-19 12:37:40.000000000 +0800
+++ linux-2.6.24.rc3/Documentation/networking/udplite.txt	2007-11-30 09:43:08.000000000 +0800
@@ -236,7 +236,7 @@
 
   This displays UDP-Lite statistics variables, whose meaning is as follows.
 
-   InDatagrams:     Total number of received datagrams.
+   InDatagrams:     The total number of datagrams delivered to users.
 
    NoPorts:         Number of packets received to an unknown port.
                     These cases are counted separately (not as InErrors).
diff -Nurp linux-2.6.24.rc3.org/net/ipv4/udp.c linux-2.6.24.rc3/net/ipv4/udp.c
--- linux-2.6.24.rc3.org/net/ipv4/udp.c	2007-11-19 12:38:14.000000000 +0800
+++ linux-2.6.24.rc3/net/ipv4/udp.c	2007-11-30 09:48:21.000000000 +0800
@@ -873,6 +873,8 @@ try_again:
 	if (err)
 		goto out_free;
 
+	UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS, is_udplite);
+
 	sock_recv_timestamp(msg, sk, skb);
 
 	/* Copy the address. */
@@ -966,10 +968,8 @@ int udp_queue_rcv_skb(struct sock * sk, 
 			int ret;
 
 			ret = (*up->encap_rcv)(sk, skb);
-			if (ret <= 0) {
-				UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS, up->pcflag);
+			if (ret <= 0)
 				return -ret;
-			}
 		}
 
 		/* FALLTHROUGH -- it's a UDP Packet */
@@ -1023,7 +1023,6 @@ int udp_queue_rcv_skb(struct sock * sk, 
 		goto drop;
 	}
 
-	UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS, up->pcflag);
 	return 0;
 
 drop:
diff -Nurp linux-2.6.24.rc3.org/net/ipv6/udp.c linux-2.6.24.rc3/net/ipv6/udp.c
--- linux-2.6.24.rc3.org/net/ipv6/udp.c	2007-11-19 12:38:14.000000000 +0800
+++ linux-2.6.24.rc3/net/ipv6/udp.c	2007-11-30 09:52:52.000000000 +0800
@@ -164,6 +164,8 @@ try_again:
 	if (err)
 		goto out_free;
 
+	UDP6_INC_STATS_BH(UDP_MIB_INDATAGRAMS, is_udplite);
+
 	sock_recv_timestamp(msg, sk, skb);
 
 	/* Copy the address. */
@@ -292,7 +294,7 @@ int udpv6_queue_rcv_skb(struct sock * sk
 			UDP6_INC_STATS_BH(UDP_MIB_RCVBUFERRORS, up->pcflag);
 		goto drop;
 	}
-	UDP6_INC_STATS_BH(UDP_MIB_INDATAGRAMS, up->pcflag);
+
 	return 0;
 drop:
 	UDP6_INC_STATS_BH(UDP_MIB_INERRORS, up->pcflag);


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2007-12-20 12:13 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-30  3:09 [PATCH 1/3] [SNMP]: Defer InDataGrams increment until recvmsg() does checksum Wang Chen
2007-11-30  3:15 ` [PATCH 2/3] [UDP]: Clean up for IS_UDPLITE macro Wang Chen
2007-11-30 11:05   ` Gerrit Renker
2007-11-30  3:24 ` [PATCH 3/3] [UDP6]: Counter increment on BH mode Wang Chen
2007-11-30 11:19   ` Gerrit Renker
2007-12-01  1:54     ` Herbert Xu
2007-12-03  7:19       ` Wang Chen
2007-12-03 11:39         ` Herbert Xu
2007-12-03 11:49           ` Alexey Kuznetsov
2007-12-03 11:54             ` Herbert Xu
2007-12-03 13:17               ` Herbert Xu
2007-12-04  3:50                 ` Wang Chen
2007-12-04  3:57                   ` Herbert Xu
2007-12-15 13:58                 ` Herbert Xu
2007-12-15 17:03                   ` Eric Dumazet
2007-12-16  2:30                     ` [SNMP]: Fix SNMP counters with PREEMPT Herbert Xu
2007-12-20 12:13                       ` David Miller
2007-12-15 18:43                   ` [PATCH 3/3] [UDP6]: Counter increment on BH mode Ingo Molnar
2007-12-16  2:36                     ` Herbert Xu
2007-12-16  8:58                       ` Ingo Molnar
2007-12-17 19:42                       ` Christoph Lameter
2007-12-17 19:40                     ` Christoph Lameter
2007-12-18 11:43                   ` Gerrit Renker
2007-12-18 12:49                     ` Herbert Xu
2007-12-20 12:12                   ` David Miller
2007-11-30 10:57 ` [PATCH 1/3] [SNMP]: Defer InDataGrams increment until recvmsg() does checksum Gerrit Renker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).