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.
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  to initialize an IEEE 802.15.4 device’s EUI-64 - which is the link-layer pendent to the IPv6 host suffix  - 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.