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
