Good idea about splitting the CPUID into two halves. I'll try that, thank you!
Joakim Gebart
Managing Director
Eistec AB

Aurorum 1C
977 75 LuleƄ
Tel: +46(0)730-65 13 83
[email protected]
www.eistec.se


On Tue, Jan 27, 2015 at 12:50 PM, Martine Lenders
<[email protected]> wrote:
> Hey Joakim,
> There is already a collection of hashing implementations in
> sys/include/hashes.h.
> Unfortunally all of them yield 32 bit integers. I did however also used the
> CPU ID and djb2_hash() in [1] to initialize an IEEE 802.15.4 device's EUI-64
> - which is the link-layer pendent to the IPv6 host suffix [2] - by spliting
> the CPU ID in half, generating a 32-bit hash from each half and splicing
> them together again as a 64-bit number.
>
> Best regards,
> Martine
>
> [1]
> https://github.com/RIOT-OS/RIOT/blob/master/sys/auto_init/auto_init.c#L136
> [2] https://tools.ietf.org/html/rfc4291#page-20
>
> 2015-01-27 12:39 GMT+01:00 Joakim Gebart <[email protected]>:
>>
>> Hello,
>> I am looking for a simple (few lines to implement) hashing function to
>> reduce a 128 bit integer to 64 bits.
>>
>> I want to use the hash to derive a 64 bit IPv6 host address from a 128
>> bit CPU ID.
>>
>> I want all of the bits of the CPUID to affect the result, instead of
>> just grabbing the top/bottom 8 bytes of the ID. I'm guessing there are
>> lots of options for hashes, but many are made to generate hashes from
>> much longer messages than 128 bit.
>>
>> Any suggestions?
>>
>> Best regards,
>> Joakim Gebart
>> Eistec AB
>> www.eistec.se
>> _______________________________________________
>> users mailing list
>> [email protected]
>> http://lists.riot-os.org/mailman/listinfo/users
>
>
>
> _______________________________________________
> users mailing list
> [email protected]
> http://lists.riot-os.org/mailman/listinfo/users
>
_______________________________________________
users mailing list
[email protected]
http://lists.riot-os.org/mailman/listinfo/users

Reply via email to