A Discrete-Event Network Simulator
API
Murmur3 Hash Implementation
+ Collaboration diagram for Murmur3 Hash Implementation:

Macros

#define BIG_CONSTANT(x)   (x##LLU)
 Unsigned long long constants. More...
 

Functions

uint32_t ns3::Hash::Function::Murmur3Implementation::fmix (uint32_t h)
 Finalization mix - force all bits of a hash block to avalanche. More...
 
uint64_t ns3::Hash::Function::Murmur3Implementation::fmix (uint64_t h)
 Finalization mix - force all bits of a hash block to avalanche. More...
 
uint32_t ns3::Hash::Function::Murmur3Implementation::getblock (const uint32_t *p, int i)
 Block read. More...
 
uint64_t ns3::Hash::Function::Murmur3Implementation::getblock (const uint64_t *p, int i)
 Block read. More...
 
void ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x64_128 (const void *key, const int len, const uint32_t seed, void *out)
 Initial and incremental hash. More...
 
void ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_128 (const void *key, const int len, uint32_t seed, void *out)
 Initial and incremental hash. More...
 
void ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_128_fin (const int len, uint32_t *seeds, void *out)
 Finalize a hash. More...
 
void ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_128_incr (const void *key, const int len, uint32_t *seeds, void *out)
 Initial and incremental hash. More...
 
void ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_32 (const void *key, int len, uint32_t seed, void *out)
 Initial and incremental hash. More...
 
void ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_32_fin (int len, uint32_t seed, void *out)
 Finalize a hash. More...
 
void ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_32_incr (const void *key, int len, uint32_t seed, void *out)
 Initial and incremental hash. More...
 
uint32_t ns3::Hash::Function::Murmur3Implementation::rotl32 (uint32_t x, int8_t r)
 Barrel shift (rotate) left on 32 bits. More...
 
uint64_t ns3::Hash::Function::Murmur3Implementation::rotl64 (uint64_t x, int8_t r)
 Barrel shift (rotate) left on 64 bits. More...
 

Detailed Description

Macro Definition Documentation

#define BIG_CONSTANT (   x)    (x##LLU)

Function Documentation

uint32_t ns3::Hash::Function::Murmur3Implementation::fmix ( uint32_t  h)
inline

Finalization mix - force all bits of a hash block to avalanche.

Parameters
hFinal word of the hash block.
Returns
Fully mixed final word.

Definition at line 139 of file hash-murmur3.cc.

Referenced by ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x64_128(), ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_128_fin(), and ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_32_fin().

+ Here is the caller graph for this function:

uint64_t ns3::Hash::Function::Murmur3Implementation::fmix ( uint64_t  h)
inline

Finalization mix - force all bits of a hash block to avalanche.

Parameters
hFinal word of the hash block.
Returns
Fully mixed final word.

Definition at line 152 of file hash-murmur3.cc.

References BIG_CONSTANT.

uint32_t ns3::Hash::Function::Murmur3Implementation::getblock ( const uint32_t *  p,
int  i 
)
inline

Block read.

If your platform needs to do endian-swapping or can only handle aligned reads, do the conversion here.

Parameters
pBlock base address.
iIndex into the block.
Returns
The i'th word from the block.

Definition at line 122 of file hash-murmur3.cc.

Referenced by ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x64_128(), ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_128_incr(), and ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_32_incr().

+ Here is the caller graph for this function:

uint64_t ns3::Hash::Function::Murmur3Implementation::getblock ( const uint64_t *  p,
int  i 
)
inline

Block read.

If your platform needs to do endian-swapping or can only handle aligned reads, do the conversion here.

Parameters
pBlock base address.
iIndex into the block.
Returns
The i'th word from the block.

Definition at line 127 of file hash-murmur3.cc.

void ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x64_128 ( const void *  key,
const int  len,
const uint32_t  seed,
void *  out 
)

Initial and incremental hash.

Parameters
keyData to be hashed.
lenNumber of words in the key.
seedInitial or current hash state.
outOutput hash value.

Definition at line 421 of file hash-murmur3.cc.

References BIG_CONSTANT, data, ns3::Hash::Function::Murmur3Implementation::fmix(), ns3::Hash::Function::Murmur3Implementation::getblock(), and ns3::Hash::Function::Murmur3Implementation::rotl64().

+ Here is the call graph for this function:

void ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_128 ( const void *  key,
const int  len,
uint32_t  seed,
void *  out 
)

Initial and incremental hash.

Parameters
keyData to be hashed.
lenNumber of words in the key.
seedInitial or current hash state.
outOutput hash value.

Definition at line 291 of file hash-murmur3.cc.

References ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_128_fin(), and ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_128_incr().

+ Here is the call graph for this function:

void ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_128_fin ( const int  len,
uint32_t *  seeds,
void *  out 
)

Finalize a hash.

Parameters
lenTotal number of words that have gone in to the hash.
seedsInitial or current hash state.
outOutput hash value.

Definition at line 389 of file hash-murmur3.cc.

References ns3::Hash::Function::Murmur3Implementation::fmix().

Referenced by ns3::Hash::Function::Murmur3::GetHash64(), and ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_128().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_128_incr ( const void *  key,
const int  len,
uint32_t *  seeds,
void *  out 
)

Initial and incremental hash.

Parameters
keyData to be hashed.
lenNumber of words in the key.
seedsInitial or current hash state.
outOutput hash value.

Definition at line 301 of file hash-murmur3.cc.

References data, ns3::Hash::Function::Murmur3Implementation::getblock(), and ns3::Hash::Function::Murmur3Implementation::rotl32().

Referenced by ns3::Hash::Function::Murmur3::GetHash64(), and ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_128().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_32 ( const void *  key,
int  len,
uint32_t  seed,
void *  out 
)

Initial and incremental hash.

Parameters
keyData to be hashed.
lenNumber of words in the key.
seedInitial or current hash state.
outOutput hash value.

Definition at line 188 of file hash-murmur3.cc.

References ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_32_fin(), and ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_32_incr().

+ Here is the call graph for this function:

void ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_32_fin ( int  len,
uint32_t  seed,
void *  out 
)

Finalize a hash.

Parameters
lenTotal number of words that have gone in to the hash.
seedInitial or current hash state.
outOutput hash value.

Definition at line 244 of file hash-murmur3.cc.

References ns3::Hash::Function::Murmur3Implementation::fmix().

Referenced by ns3::Hash::Function::Murmur3::GetHash32(), and ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_32().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_32_incr ( const void *  key,
int  len,
uint32_t  seed,
void *  out 
)

Initial and incremental hash.

Parameters
keyData to be hashed.
lenNumber of words in the key.
seedInitial or current hash state.
outOutput hash value.

Definition at line 196 of file hash-murmur3.cc.

References data, ns3::Hash::Function::Murmur3Implementation::getblock(), and ns3::Hash::Function::Murmur3Implementation::rotl32().

Referenced by ns3::Hash::Function::Murmur3::GetHash32(), and ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_32().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint32_t ns3::Hash::Function::Murmur3Implementation::rotl32 ( uint32_t  x,
int8_t  r 
)
inline

Barrel shift (rotate) left on 32 bits.

Parameters
xThe initial value.
rThe number of bit positions to rotate.
Returns
The rotated value.

Definition at line 91 of file hash-murmur3.cc.

Referenced by ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_128_incr(), and ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x86_32_incr().

+ Here is the caller graph for this function:

uint64_t ns3::Hash::Function::Murmur3Implementation::rotl64 ( uint64_t  x,
int8_t  r 
)
inline

Barrel shift (rotate) left on 64 bits.

Parameters
xThe initial value.
rThe number of bit positions to rotate.
Returns
The rotated value.

Definition at line 103 of file hash-murmur3.cc.

Referenced by ns3::Hash::Function::Murmur3Implementation::MurmurHash3_x64_128().

+ Here is the caller graph for this function: