From patchwork Wed Mar 25 21:25:22 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: holger@eitzenberger.org X-Patchwork-Id: 25104 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.176.167]) by ozlabs.org (Postfix) with ESMTP id 37805DDD1B for ; Thu, 26 Mar 2009 08:31:43 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753658AbZCYVbb (ORCPT ); Wed, 25 Mar 2009 17:31:31 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753213AbZCYVba (ORCPT ); Wed, 25 Mar 2009 17:31:30 -0400 Received: from moutng.kundenserver.de ([212.227.126.186]:51820 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751068AbZCYVb3 (ORCPT ); Wed, 25 Mar 2009 17:31:29 -0400 Received: from kruemel.eitzenberger.org (p54AD0D79.dip0.t-ipconnect.de [84.173.13.121]) by mrelayeu.kundenserver.de (node=mrelayeu6) with ESMTP (Nemesis) id 0ML29c-1Lmah40QTY-0001ov; Wed, 25 Mar 2009 22:31:26 +0100 Received: from [192.168.11.10] (helo=jonathan.eitzenberger.org ident=holger) by kruemel.eitzenberger.org with smtp (Exim 4.50) id 1Lmah2-0000A6-Fy; Wed, 25 Mar 2009 22:31:25 +0100 Received: by jonathan.eitzenberger.org (sSMTP sendmail emulation); Wed, 25 Mar 2009 22:31:23 +0100 Message-Id: <20090325213123.842307488@jonathan.eitzenberger.org> References: <20090325212521.149272388@jonathan.eitzenberger.org> User-Agent: quilt/0.46-1 Date: Wed, 25 Mar 2009 22:25:22 +0100 From: Holger Eitzenberger To: Patrick McHardy Cc: pablo@netfilter.org, netfilter-devel@vger.kernel.org, netdev@vger.kernel.org Subject: [patch 1/1] ctnetlink: compute generic part of event more acurately Content-Disposition: inline; filename=ctnetlink-alloc-generic-event-more-acurately.diff X-Provags-ID: V01U2FsdGVkX1+ELaasw57blaJYNp4bS7kkF40NTmCGuZToa8i pSD28o7WGQdtZ/oKKxQyQa/cT1vYUyg4+eY3ZnORd7aEu2wpUE Zs8UTP9yEwZPdVBtWLbxi9fJGSXgo6e/hJQoAVPI7M= Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On a box with most of the optional Netfilter switches turned off some of the NLAs are never send, e. g. secmark, mark or the conntrack byte/packet counters. As a worst case scenario this may possibly still lead to ctnetlink skbs being reallocated in netlink_trim() later, loosing all the nice effects from the previous patches. I try to solve that (at least partly) by correctly #ifdef'ing the NLAs in the computation. Signed-off-by: Holger Eitzenberger Index: nf-next-2.6/net/netfilter/nf_conntrack_netlink.c =================================================================== --- nf-next-2.6.orig/net/netfilter/nf_conntrack_netlink.c +++ nf-next-2.6/net/netfilter/nf_conntrack_netlink.c @@ -440,19 +440,28 @@ ctnetlink_alloc_skb(const struct nf_conn + 3 * NLA_TYPE_SIZE(u_int8_t) /* CTA_PROTO_NUM */ + NLA_TYPE_SIZE(u_int32_t) /* CTA_ID */ + NLA_TYPE_SIZE(u_int32_t) /* CTA_STATUS */ +#ifdef CONFIG_NF_CT_ACCT + 2 * nla_total_size(0) /* CTA_COUNTERS_ORIG|REPL */ + 2 * NLA_TYPE_SIZE(uint64_t) /* CTA_COUNTERS_PACKETS */ + 2 * NLA_TYPE_SIZE(uint64_t) /* CTA_COUNTERS_BYTES */ +#endif + NLA_TYPE_SIZE(u_int32_t) /* CTA_TIMEOUT */ + nla_total_size(0) /* CTA_PROTOINFO */ + nla_total_size(0) /* CTA_HELP */ + nla_total_size(NF_CT_HELPER_NAME_LEN) /* CTA_HELP_NAME */ +#ifdef CONFIG_NF_CONNTRACK_SECMARK + NLA_TYPE_SIZE(u_int32_t) /* CTA_SECMARK */ +#endif +#ifdef CONFIG_NF_NAT_NEEDED + 2 * nla_total_size(0) /* CTA_NAT_SEQ_ADJ_ORIG|REPL */ + 2 * NLA_TYPE_SIZE(u_int32_t) /* CTA_NAT_SEQ_CORRECTION_POS */ + 2 * NLA_TYPE_SIZE(u_int32_t) /* CTA_NAT_SEQ_CORRECTION_BEFORE */ + 2 * NLA_TYPE_SIZE(u_int32_t) /* CTA_NAT_SEQ_CORRECTION_AFTER */ - + NLA_TYPE_SIZE(u_int32_t); /* CTA_MARK */ +#endif +#ifdef CONFIG_NF_CONNTRACK_MARK + + NLA_TYPE_SIZE(u_int32_t) /* CTA_MARK */ +#endif + ; #undef NLA_TYPE_SIZE