[prev in list] [next in list] [prev in thread] [next in thread]
List: netfilter-devel
Subject: Re: [PATCH 2.4] raw table and NOTRACK support
From: Roberto Nibali <ratz () tac ! ch>
Date: 2005-11-28 9:47:42
Message-ID: 438AD23E.8010905 () tac ! ch
[Download RAW message or body]
> Hmmm, so how about the following approach?
>
> --- linux-2.4.32-orig/include/net/dst.h 2005-04-04 03:42:20 +0200
> +++ linux-2.4.32-pab2/include/net/dst.h 2005-11-28 09:42:59 +0100
> @@ -105,6 +105,7 @@
> void dst_release(struct dst_entry * dst)
> {
> if (dst) {
> + WARN_ON(atomic_read(&dst->__refcnt) < 1);
> smp_mb__before_atomic_dec();
> atomic_dec(&dst->__refcnt);
> }
> diff -X dontdiff -Nur linux-2.4.32-orig/net/packet/af_packet.c
> linux-2.4.32-pab2/net/packet/af_packet.c
> --- linux-2.4.32-orig/net/packet/af_packet.c 2004-11-17 12:54:22 +0100
> +++ linux-2.4.32-pab2/net/packet/af_packet.c 2005-11-28 10:00:27 +0100
> @@ -272,6 +272,11 @@
> if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL)
> goto oom;
>
> + /* drop any routing info and conntrack reference */
> + dst_release(skb->dst);
> + skb->dst = NULL;
> + nf_reset(skb);
> +
> spkt = (struct sockaddr_pkt*)skb->cb;
>
> skb_push(skb, skb->data-skb->mac.raw);
> @@ -507,6 +512,12 @@
>
> skb_set_owner_r(skb, sk);
> skb->dev = NULL;
> +
> + /* drop any routing info and conntrack reference */
> + dst_release(skb->dst);
> + skb->dst = NULL;
> + nf_reset(skb);
> +
> spin_lock(&sk->receive_queue.lock);
> po->stats.tp_packets++;
> __skb_queue_tail(&sk->receive_queue, skb);
>
> I'm compiling it now and will be running test, so long as the thing even
> boots ;).
Hmm, somehow I haven't caught all possible skb releases, a conntrack
flush takes 8m32s. :). I'll add another nf_reset in ipv4/ip_input.c for
ip_call_ra_chain() ... this is getty really fishy.
--
-------------------------------------------------------------
addr://Kasinostrasse 30, CH-5001 Aarau tel://++41 62 823 9355
http://www.terreactive.com fax://++41 62 823 9356
-------------------------------------------------------------
terreActive AG Wir sichern Ihren Erfolg
-------------------------------------------------------------
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic