From: Pablo Neira <pablo@eurodev.net>
To: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Cc: Netfilter Development Mailinglist
<netfilter-devel@lists.netfilter.org>,
Patrick McHardy <kaber@trash.net>
Subject: Re: [RFC] alternative to conntrack ID
Date: Fri, 10 Jun 2005 12:21:03 +0200 [thread overview]
Message-ID: <42A9698F.30909@eurodev.net> (raw)
In-Reply-To: <Pine.LNX.4.58.0506091519580.7610@blackhole.kfki.hu>
Hi Jozsef,
Jozsef Kadlecsik wrote:
>>Pablo Neira wrote:
>>
>>>All the things I've though so far are burned by something. The cleanest
>>>way to do this looks the ID. Any other ideas?
>>
>>Hm, this idea just came to my head. We could use a unsigned 8 bit
>>per-bucket-id [blah... blah... blah]
>
> Let the id be at least unsigned 16 bit. No hash function can guarantee
> that a given bucket won't happen to grow above 256 entries.
>
> How are you going to handle id collision due to wraparound?
yes, 8 bits is too short. About the wraparound problem, I'm planning to
re-use id's. The id of a new conntrack will be set to the lastest
inserted in the bucket plus one.
However this wouldn't uniquely identify a conntrack: Say a connection is
established, lastest conntrack in the bucket uses id A, so its id will
be set to A+1. After quite some time the connection is closed. Then, in
a very short period of time, another connection with the same tuples is
established and lastest conntrack id is still A, in that case the id of
the new conntrack will be set to A+1 again.
To avoid that, I could keep an array of lastest id's released per bucket
and set the id based on:
if (id_of_lastest_ct_inserted > lastest_id_released[bucket])
id_of_lastest_ct_inserted + 1
else
lastest_id_released[bucket] + 1;
About memory comsumption. On my laptop, ip_conntrack version 2.1 (1787
buckets, 14296 max)
This approach:
1787 * 2 = 3574 extra bytes to store the lastest id used
14296 * 2 (extra bytes per conntrack) = 28592 extra bytes (worst case)
With regards to current u64 id approach:
28592 * 8 (extra bytes per conntrack) = 228736 extra bytes (worst case)
--
Pablo
next prev parent reply other threads:[~2005-06-10 10:21 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-27 23:55 [RFC] [PATCH] ctnetlink updates Pablo Neira
2005-04-01 6:59 ` Harald Welte
2005-04-03 18:01 ` Patrick McHardy
2005-04-06 18:08 ` Pablo Neira
2005-04-17 15:07 ` Patrick McHardy
2005-04-29 7:14 ` Jozsef Kadlecsik
2005-04-29 8:02 ` Harald Welte
2005-05-04 9:18 ` [RFC] alternative to conntrack ID Amin Azez
2005-05-04 9:32 ` Patrick Schaaf
2005-05-04 11:30 ` Patrick McHardy
2005-05-04 12:01 ` Amin Azez
2005-05-06 15:16 ` Patrick McHardy
2005-05-07 20:36 ` Marcus Sundberg
2005-05-07 22:18 ` Patrick McHardy
2005-05-07 22:32 ` Marcus Sundberg
2005-05-09 14:17 ` KOVACS Krisztian
2005-05-09 15:08 ` Amin Azez
2005-05-10 6:49 ` Harald Welte
2005-05-17 16:12 ` Amin Azez
2005-05-17 20:17 ` Patrick McHardy
2005-05-18 7:24 ` Amin Azez
2005-05-18 9:30 ` Jozsef Kadlecsik
2005-06-04 23:52 ` Pablo Neira
2005-06-05 1:02 ` Pablo Neira
2005-06-06 8:48 ` Jozsef Kadlecsik
2005-06-09 12:52 ` Pablo Neira
2005-06-09 13:00 ` Pablo Neira
2005-06-09 13:34 ` Jozsef Kadlecsik
2005-06-10 10:21 ` Pablo Neira [this message]
2005-06-13 7:41 ` Jozsef Kadlecsik
2005-06-14 2:30 ` Pablo Neira
2005-06-14 2:42 ` Patrick McHardy
2005-06-15 2:41 ` Pablo Neira
2005-06-20 16:04 ` Amin Azez
2005-06-20 16:12 ` Patrick McHardy
2005-06-22 9:09 ` Amin Azez
2005-06-22 9:30 ` Oscar Mechanic
2005-06-22 17:23 ` Patrick McHardy
2005-07-11 5:41 ` Harald Welte
2005-07-11 7:47 ` Patrick McHardy
2005-07-11 9:50 ` Pablo Neira
2005-06-06 8:17 ` Jozsef Kadlecsik
2005-05-18 6:45 ` Jozsef Kadlecsik
2005-05-18 7:08 ` Amin Azez
2005-05-18 7:17 ` Jozsef Kadlecsik
2005-05-11 8:43 ` Amin Azez
2005-05-01 23:49 ` [RFC] [PATCH] ctnetlink updates Pablo Neira
2005-05-02 10:47 ` Harald Welte
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=42A9698F.30909@eurodev.net \
--to=pablo@eurodev.net \
--cc=kaber@trash.net \
--cc=kadlec@blackhole.kfki.hu \
--cc=netfilter-devel@lists.netfilter.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.