From patchwork Wed Feb 24 06:08:50 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shan Wei X-Patchwork-Id: 46112 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 2EF71B7CB9 for ; Wed, 24 Feb 2010 17:08:54 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754447Ab0BXGIs (ORCPT ); Wed, 24 Feb 2010 01:08:48 -0500 Received: from cn.fujitsu.com ([222.73.24.84]:51567 "EHLO song.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1753968Ab0BXGIr (ORCPT ); Wed, 24 Feb 2010 01:08:47 -0500 Received: from tang.cn.fujitsu.com (tang.cn.fujitsu.com [10.167.250.3]) by song.cn.fujitsu.com (Postfix) with ESMTP id D08F1170124; Wed, 24 Feb 2010 14:08:46 +0800 (CST) Received: from fnst.cn.fujitsu.com (tang.cn.fujitsu.com [127.0.0.1]) by tang.cn.fujitsu.com (8.14.3/8.13.1) with ESMTP id o1O67oiW024928; Wed, 24 Feb 2010 14:07:50 +0800 Received: from [10.167.141.214] (unknown [10.167.141.214]) by fnst.cn.fujitsu.com (Postfix) with ESMTPA id 70027D484F; Wed, 24 Feb 2010 14:10:36 +0800 (CST) Message-ID: <4B84C272.1040505@cn.fujitsu.com> Date: Wed, 24 Feb 2010 14:08:50 +0800 From: Shan Wei User-Agent: Thunderbird 2.0.0.23 (X11/20090817) MIME-Version: 1.0 To: Patrick McHardy , David Miller , Yasuyuki KOZAKAI CC: "netdev@vger.kernel.org" , netfilter-devel@vger.kernel.org, Shan Wei Subject: [RFC PATCH net-next 5/5]IPv6:netfilter: Add IPSTATS_MIB_REASMFAILS MIB counter value when evicting fragment queue Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch adds MIB counter value about IPSTATS_MIB_REASMFAILS if mem member of netns_frags exceeds high thresh, just like IPv4/v6 stack. Signed-off-by: Shan Wei --- net/ipv6/netfilter/nf_conntrack_reasm.c | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-) diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c index 32c5bbd..136b0de 100644 --- a/net/ipv6/netfilter/nf_conntrack_reasm.c +++ b/net/ipv6/netfilter/nf_conntrack_reasm.c @@ -113,9 +113,13 @@ static __inline__ void fq_kill(struct nf_ct_frag6_queue *fq) inet_frag_kill(&fq->q, &nf_frags); } -static void nf_ct_frag6_evictor(struct net *net) +static void nf_ct_frag6_evictor(struct net *net, struct inet6_dev *idev) { - inet_frag_evictor(&net->ipv6.frags, &nf_frags); + int evicted; + + evicted = inet_frag_evictor(&net->ipv6.frags, &nf_frags); + if (evicted) + IP6_ADD_STATS_BH(net, idev, IPSTATS_MIB_REASMFAILS, evicted); } static void nf_ct_frag6_expire(unsigned long data) @@ -632,7 +636,7 @@ struct sk_buff *nf_ct_frag6_gather(struct sk_buff *skb, u32 user) } if (atomic_read(&net->ipv6.frags.mem) > net->ipv6.frags.high_thresh) - nf_ct_frag6_evictor(net); + nf_ct_frag6_evictor(net, idev); fq = fq_find(net, fhdr->identification, user, &hdr->saddr, &hdr->daddr); if (fq == NULL) {