netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Shan Wei <shanwei@cn.fujitsu.com>
To: Patrick McHardy <kaber@trash.net>
Cc: David Miller <davem@davemloft.net>,
	Yasuyuki KOZAKAI <yasuyuki.kozakai@toshiba.co.jp>,
	eric.dumazet@gmail.com, randy.dunlap@oracle.com, mst@redhat.com,
	johannes@sipsolutions.net, kuznet@ms2.inr.ac.ru,
	pekkas@netcore.fi, jmorris@namei.org, yoshfuji@linux-ipv6.org,
	pablo@netfilter.org, ebiederm@xmission.com, adobriyan@gmail.com,
	brian.haley@hp.com, shemminger@vyatta.com,
	akpm@linux-foundation.org, netfilter-devel@vger.kernel.org,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: [PATCH] IPv6:Send an ICMPv6 "Fragment Reassembly Timeout" message when enabling connection track
Date: Mon, 08 Feb 2010 22:18:38 +0800	[thread overview]
Message-ID: <4B701D3E.6000305@cn.fujitsu.com> (raw)
In-Reply-To: <4B69A75A.2020908@trash.net>

Patrick McHardy wrote, at 02/04/2010 12:42 AM:
> Shan Wei wrote:
>> @@ -349,17 +378,20 @@ static int nf_ct_frag6_queue(struct nf_ct_frag6_queue *fq, struct sk_buff *skb,
>>  	else
>>  		fq->q.fragments = skb;
>>  
>> -	skb->dev = NULL;
>>  	fq->q.stamp = skb->tstamp;
>>  	fq->q.meat += skb->len;
>>  	atomic_add(skb->truesize, &nf_init_frags.mem);
>>  
>>  	/* The first fragment.
>>  	 * nhoffset is obtained from the first fragment, of course.
>> +	 * Reserve dev for sending an ICMP "Fragment Reassembly Timeout"
>> +	 * message.
>>  	 */
>>  	if (offset == 0) {
>>  		fq->nhoffset = nhoff;
>>  		fq->q.last_in |= INET_FRAG_FIRST_IN;
>> +	} else {
>> +		skb->dev = NULL;
>>  	}
> 
> We need to store the iif and perform a lookup later just as in IPv4
> because the device is not reference counted and might disappear while
> the fragments are queued.

There is no net namespace in nf_conntrack_reasm,
So we can't look up net device according to stored iif.

How about introducing net namespace to nf_conntrack_reasm?
There are the following two advantages:
1. nf_init_frags can be deleted, because net structure includes netns_frags structure member.

2. Record counter value, e.g. IPSTATS_MIB_REASMFAILS if reassamble with fail.
   Since IPv6 conntrack fails to reassamble fragments, then the original fragment is not forwarded to IPv6 stack. 
   The counter value can't be recorded. But IPv4 conntrack uses IPv4 defrag code, and records
   counter value correctly.

These are just my thoughts, no practice.

-- 
Best Regards
-----
Shan Wei


  reply	other threads:[~2010-02-08 14:19 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-29  8:58 [PATCH] IPv6:Send an ICMPv6 "Fragment Reassembly Timeout" message when enabling connection track Shan Wei
2010-02-03 16:42 ` Patrick McHardy
2010-02-08 14:18   ` Shan Wei [this message]
2010-02-08 14:20     ` Patrick McHardy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B701D3E.6000305@cn.fujitsu.com \
    --to=shanwei@cn.fujitsu.com \
    --cc=adobriyan@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=brian.haley@hp.com \
    --cc=davem@davemloft.net \
    --cc=ebiederm@xmission.com \
    --cc=eric.dumazet@gmail.com \
    --cc=jmorris@namei.org \
    --cc=johannes@sipsolutions.net \
    --cc=kaber@trash.net \
    --cc=kuznet@ms2.inr.ac.ru \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=pablo@netfilter.org \
    --cc=pekkas@netcore.fi \
    --cc=randy.dunlap@oracle.com \
    --cc=shemminger@vyatta.com \
    --cc=yasuyuki.kozakai@toshiba.co.jp \
    --cc=yoshfuji@linux-ipv6.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).