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
[in]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
[in]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
[in]pBlock base address.
[in]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
[in]pBlock base address.
[in]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
[in]keyData to be hashed.
[in]lenNumber of words in the key.
[in]seedInitial or current hash state.
[out]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
[in]keyData to be hashed.
[in]lenNumber of words in the key.
[in]seedInitial or current hash state.
[out]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
[in]lenTotal number of words that have gone in to the hash.
[in]seedsInitial or current hash state.
[out]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
[in]keyData to be hashed.
[in]lenNumber of words in the key.
[in]seedsInitial or current hash state.
[out]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
[in]keyData to be hashed.
[in]lenNumber of words in the key.
[in]seedInitial or current hash state.
[out]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
[in]lenTotal number of words that have gone in to the hash.
[in]seedInitial or current hash state.
[out]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
[in]keyData to be hashed.
[in]lenNumber of words in the key.
[in]seedInitial or current hash state.
[out]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
[in]xThe initial value.
[in]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
[in]xThe initial value.
[in]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: