From: Antonio Quartulli <ordex@autistici.org>
To: Sven Eckelmann <sven@narfation.org>
Cc: b.a.t.m.a.n@lists.open-mesh.org
Subject: Re: [B.A.T.M.A.N.] [PATCH 1/5] batman-adv: Use common Jenkins Hash implementation
Date: Mon, 26 Nov 2012 13:30:02 +0100 [thread overview]
Message-ID: <20121126123002.GE22729@ritirata.org> (raw)
In-Reply-To: <2094937.nutMCHjP7e@bentobox>
[-- Attachment #1: Type: text/plain, Size: 1670 bytes --]
On Mon, Nov 26, 2012 at 10:40:07AM +0100, Sven Eckelmann wrote:
> On Monday 26 November 2012 10:33:09 Antonio Quartulli wrote:
> > On Sun, Nov 25, 2012 at 07:23:27PM +0100, Sven Eckelmann wrote:
> > > An unoptimized version of the Jenkins one-at-a-time hash function is
> > > copied all over the code wherever an hashtable is used. Instead the
> > > optimized version shared between the whole kernel should be used to
> > > reduce code duplication and keep bugs at a single point.
> > >
> > > Only the TT and DAT code must use the old implementation to guarantee the
> > > same distribution of the elements in the hash. The TT code needs it
> > > because the CRC exchanged between the mesh nodes is computed over the
> > > entries in the hash.
> > Hi Sven,
> >
> > I don't fully get why we can't use this new implementation in TT. What's
> > wrong with the CRC computation?
>
> The in kernel implementation will create a different hash sum -> tt entries
> will end up in a different bucket -> CRC will be different (please correct me
> about the last step... just had this problem in the back of my head).
CRC computation does not rely on entries positions, because the real CRC16 is
computed on the client mac address only (and this is the same everywhere) then
the results are XOR'd together. Since XOR is commutative we do not need to keep
the same order network wide.
Instead, your reasoning is correct for DAT, but for the global DAT hash function
only.
The local one can be whatever we need, so we can also use jhash for this.
Cheers,
--
Antonio Quartulli
..each of us alone is worth nothing..
Ernesto "Che" Guevara
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
next prev parent reply other threads:[~2012-11-26 12:30 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-25 18:23 [B.A.T.M.A.N.] [PATCH 1/5] batman-adv: Use common Jenkins Hash implementation Sven Eckelmann
2012-11-25 18:23 ` [B.A.T.M.A.N.] [PATCH 2/5] batman-adv: Define the size of hashtables by hash bits Sven Eckelmann
2012-11-25 18:23 ` [B.A.T.M.A.N.] [PATCH 3/5] batman-adv: Remove size information from hash table Sven Eckelmann
2012-11-25 18:23 ` [B.A.T.M.A.N.] [PATCH 4/5] batman-adv: Remove wrapper structure for hash tables Sven Eckelmann
2012-11-25 18:23 ` [B.A.T.M.A.N.] [PATCH 5/5] batman-adv: Allow to use different sized hash locks array Sven Eckelmann
2012-11-26 9:33 ` [B.A.T.M.A.N.] [PATCH 1/5] batman-adv: Use common Jenkins Hash implementation Antonio Quartulli
2012-11-26 9:40 ` Sven Eckelmann
2012-11-26 10:10 ` Sven Eckelmann
2012-11-26 12:30 ` Antonio Quartulli [this message]
2012-11-26 12:39 ` Sven Eckelmann
2012-11-26 12:46 ` Antonio Quartulli
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=20121126123002.GE22729@ritirata.org \
--to=ordex@autistici.org \
--cc=b.a.t.m.a.n@lists.open-mesh.org \
--cc=sven@narfation.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