linux/net/ipv6
Herbert Xu a59322be07 [UDP]: Only increment counter on first peek/recv
The previous move of the the UDP inDatagrams counter caused each
peek of the same packet to be counted separately.  This may be
undesirable.

This patch fixes this by adding a bit to sk_buff to record whether
this packet has already been seen through skb_recv_datagram.  We
then only increment the counter when the packet is seen for the
first time.

The only dodgy part is the fact that skb_recv_datagram doesn't have
a good way of returning this new bit of information.  So I've added
a new function __skb_recv_datagram that does return this and made
skb_recv_datagram a wrapper around it.

The plan is to eventually replace all uses of skb_recv_datagram with
this new function at which time it can be renamed its proper name.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-01-28 14:56:34 -08:00
..
netfilter [NETFILTER]: {nfnetlink,ip,ip6}_queue: kill issue_verdict 2008-01-28 14:56:15 -08:00
Kconfig [IPV6] MIP6: Loadable module support for MIPv6. 2007-07-10 22:15:42 -07:00
Makefile [IPV6]: Make the ipv6/sysctl_net_ipv6.c compilation cleaner 2008-01-28 14:56:29 -08:00
addrconf.c [IPV6]: Eliminate difference in actions of sysctl and proc handler for conf.all.forwarding 2008-01-28 14:56:32 -08:00
addrconf_core.c [IPV6]: ipv6_addr_type() doesn't know about RFC4193 addresses. 2007-07-31 02:28:21 -07:00
addrlabel.c [NET]: Make rtnetlink infrastructure network namespace aware (v3) 2008-01-28 14:54:25 -08:00
af_inet6.c [IPV6]: Correct the comment concerning inetsw6 table 2008-01-28 14:54:49 -08:00
ah6.c [IPSEC]: Move state lock into x->type->input 2008-01-28 14:53:52 -08:00
anycast.c [NET]: Make core networking code use seq_open_private 2007-10-10 16:55:33 -07:00
datagram.c [IPV6]: IPV6_MULTICAST_IF setting is ignored on link-local connect() 2008-01-08 23:52:21 -08:00
esp6.c [IPSEC]: Move state lock into x->type->input 2008-01-28 14:53:52 -08:00
exthdrs.c [NET]: Eliminate duplicate copies of dst_discard 2008-01-28 14:53:37 -08:00
exthdrs_core.c [NET] IPV6: Fix whitespace errors. 2007-02-10 23:19:42 -08:00
fib6_rules.c [INET]: Small possible memory leak in FIB rules 2007-11-10 22:12:03 -08:00
icmp.c [IPv6] RAW: Compact the API for the kernel 2008-01-28 14:54:29 -08:00
inet6_connection_sock.c [IPV6] __inet6_csk_dst_store(): fix check-after-use 2007-10-15 12:26:32 -07:00
inet6_hashtables.c [IPV6]: Mischecked tw match in __inet6_check_established. 2008-01-20 20:31:36 -08:00
ip6_fib.c [NET]: Modify all rtnetlink methods to only work in the initial namespace (v2) 2008-01-28 14:54:24 -08:00
ip6_flowlabel.c [IPV6]: Fix again the fl6_sock_lookup() fixed locking 2007-10-18 05:38:48 -07:00
ip6_input.c [IPv6] RAW: Compact the API for the kernel 2008-01-28 14:54:29 -08:00
ip6_output.c [NETFILTER]: Introduce NF_INET_ hook values 2008-01-28 14:53:55 -08:00
ip6_tunnel.c [IPV6]: Add ip6_local_out 2008-01-28 14:53:47 -08:00
ipcomp6.c [IPSEC]: Forbid BEET + ipcomp for now 2008-01-28 14:53:43 -08:00
ipv6_sockglue.c [IPV6]: Fix the return value of ipv6_getsockopt 2007-12-16 13:39:57 -08:00
mcast.c [NETFILTER]: Introduce NF_INET_ hook values 2008-01-28 14:53:55 -08:00
mip6.c [IPSEC]: Move state lock into x->type->input 2008-01-28 14:53:52 -08:00
ndisc.c [NET]: Make rtnetlink infrastructure network namespace aware (v3) 2008-01-28 14:54:25 -08:00
netfilter.c [NETFILTER]: nf_queue: move list_head/skb/id to struct nf_info 2008-01-28 14:56:14 -08:00
proc.c [UDP]: Restore missing inDatagrams increments 2008-01-28 14:56:33 -08:00
protocol.c [IPV6]: Decentralize EXPORT_SYMBOLs. 2007-04-25 22:23:36 -07:00
raw.c [RAW]: Consolidate proc interface. 2008-01-28 14:54:32 -08:00
reassembly.c [INET]: Consolidate frag queues freeing 2007-10-17 19:48:26 -07:00
route.c [IPV6]: Add RFC4214 support 2008-01-28 14:55:09 -08:00
sit.c [IPV6]: Add RFC4214 support 2008-01-28 14:55:09 -08:00
sysctl_net_ipv6.c [IPV6]: Use sysctl paths to register ipv6 sysctl tables 2008-01-28 14:56:30 -08:00
tcp_ipv6.c [IPV6] TCPMD5: Fix deleting key operation. 2007-11-20 17:31:23 -08:00
tunnel6.c [IPV6]: Replace sk_buff ** with sk_buff * in input handlers 2007-10-15 12:50:28 -07:00
udp.c [UDP]: Only increment counter on first peek/recv 2008-01-28 14:56:34 -08:00
udp_impl.h [IPV6]: Replace sk_buff ** with sk_buff * in input handlers 2007-10-15 12:50:28 -07:00
udplite.c [IPV6]: Use the {DEFINE|REF}_PROTO_INUSE infrastructure 2007-11-07 04:08:59 -08:00
xfrm6_input.c [IPSEC]: Use the correct family for input state lookup 2008-01-28 14:55:49 -08:00
xfrm6_mode_beet.c [IPSEC]: Separate inner/outer mode processing on input 2008-01-28 14:53:46 -08:00
xfrm6_mode_ro.c [IPSEC]: Make x->lastused an unsigned long 2008-01-28 14:53:52 -08:00
xfrm6_mode_transport.c [IPSEC]: Use IPv6 calling convention as the convention for x->mode->output 2007-10-10 16:55:54 -07:00
xfrm6_mode_tunnel.c [IPSEC]: Separate inner/outer mode processing on input 2008-01-28 14:53:46 -08:00
xfrm6_output.c [NETFILTER]: Introduce NF_INET_ hook values 2008-01-28 14:53:55 -08:00
xfrm6_policy.c [IPSEC]: Merge most of the output path 2008-01-28 14:53:48 -08:00
xfrm6_state.c [IPSEC]: Kill afinfo->nf_post_routing 2008-01-28 14:53:55 -08:00
xfrm6_tunnel.c [IPSEC]: Get nexthdr from caller in xfrm6_rcv_spi 2007-10-17 21:29:25 -07:00