suricata
host.c File Reference
#include "suricata-common.h"
#include "conf.h"
#include "util-debug.h"
#include "host.h"
#include "host-storage.h"
#include "host-bit.h"
#include "util-random.h"
#include "util-misc.h"
#include "util-byte.h"
#include "util-validate.h"
#include "host-queue.h"
#include "detect-tag.h"
#include "detect-engine-tag.h"
#include "detect-engine-threshold.h"
#include "util-hash-lookup3.h"
Include dependency graph for host.c:

Go to the source code of this file.

Macros

#define HOST_DEFAULT_HASHSIZE   4096
 
#define HOST_DEFAULT_MEMCAP   16777216
 
#define HOST_DEFAULT_PREALLOC   1000
 

Functions

 SC_ATOMIC_DECLARE (uint64_t, host_memuse)
 
 SC_ATOMIC_DECLARE (uint32_t, host_counter)
 
 SC_ATOMIC_DECLARE (uint32_t, host_prune_idx)
 
int HostSetMemcap (uint64_t size)
 Update memcap value.
 
uint64_t HostGetMemcap (void)
 Return memcap value.
 
uint64_t HostGetMemuse (void)
 Return memuse value.
 
void HostMoveToSpare (Host *h)
 
HostHostAlloc (void)
 
void HostFree (Host *h)
 
void HostClearMemory (Host *h)
 
void HostInitConfig (bool quiet)
 initialize the configuration
 
void HostPrintStats (void)
 print some host stats
 
void HostShutdown (void)
 shutdown the flow engine
 
void HostCleanup (void)
 Cleanup the host engine.
 
void HostRelease (Host *h)
 
void HostLock (Host *h)
 
void HostUnlock (Host *h)
 
HostHostGetHostFromHash (Address *a)
 
HostHostLookupHostFromHash (Address *a)
 look up a host in the hash
 
void HostRegisterUnittests (void)
 

Variables

HostHashRow * host_hash
 
HostConfig host_config
 

Detailed Description

Author
Victor Julien victo.nosp@m.r@in.nosp@m.linia.nosp@m.c.ne.nosp@m.t

Information about hosts.

Definition in file host.c.

Macro Definition Documentation

◆ HOST_DEFAULT_HASHSIZE

#define HOST_DEFAULT_HASHSIZE   4096

Definition at line 162 of file host.c.

◆ HOST_DEFAULT_MEMCAP

#define HOST_DEFAULT_MEMCAP   16777216

Definition at line 163 of file host.c.

◆ HOST_DEFAULT_PREALLOC

#define HOST_DEFAULT_PREALLOC   1000

Definition at line 164 of file host.c.

Function Documentation

◆ HostAlloc()

Host * HostAlloc ( void  )

Definition at line 106 of file host.c.

References HOST_CHECK_MEMCAP, Host_::m, SC_ATOMIC_ADD, SC_ATOMIC_INIT, SCCalloc, SCMutexInit, and unlikely.

Referenced by HostInitConfig().

Here is the caller graph for this function:

◆ HostCleanup()

void HostCleanup ( void  )

Cleanup the host engine.

Cleanup the host engine from tag and threshold.

Definition at line 332 of file host.c.

References HostConfig_::hash_size, Host_::hnext, host_config, host_hash, HostClearMemory(), HostFreeStorage(), HostMoveToSpare(), Host_::hprev, HRLOCK_LOCK, HRLOCK_UNLOCK, Host_::iprep, and SC_ATOMIC_GET.

Referenced by PostRunDeinit().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HostClearMemory()

void HostClearMemory ( Host h)

Definition at line 150 of file host.c.

References BUG_ON, HostFreeStorage(), HostStorageSize(), Host_::iprep, SC_ATOMIC_GET, and SRepFreeHostData().

Referenced by HostCleanup(), and HostFree().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HostFree()

void HostFree ( Host h)

Definition at line 125 of file host.c.

References HostClearMemory(), Host_::m, SC_ATOMIC_SUB, SCFree, and SCMutexDestroy.

Referenced by HostShutdown().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HostGetHostFromHash()

Host * HostGetHostFromHash ( Address a)

Definition at line 486 of file host.c.

References Host_::hnext, host_hash, HostIncrUsecnt, Host_::hprev, HRLOCK_LOCK, HRLOCK_UNLOCK, Host_::m, and SCMutexLock.

Referenced by SRepLoadFileFromFD(), and TagHashAddTag().

Here is the caller graph for this function:

◆ HostGetMemcap()

uint64_t HostGetMemcap ( void  )

Return memcap value.

Return values
memcapvalue

Definition at line 83 of file host.c.

References host_config, and SC_ATOMIC_GET.

Referenced by AppLayerRegisterGlobalCounters().

Here is the caller graph for this function:

◆ HostGetMemuse()

uint64_t HostGetMemuse ( void  )

Return memuse value.

Return values
memusevalue

Definition at line 94 of file host.c.

References SC_ATOMIC_GET.

Referenced by AppLayerRegisterGlobalCounters().

Here is the caller graph for this function:

◆ HostInitConfig()

void HostInitConfig ( bool  quiet)

◆ HostLock()

void HostLock ( Host h)

Definition at line 467 of file host.c.

References Host_::m, and SCMutexLock.

◆ HostLookupHostFromHash()

Host * HostLookupHostFromHash ( Address a)

look up a host in the hash

Parameters
aaddress to look up
Return values
hLOCKED host or NULL

Definition at line 585 of file host.c.

References Host_::hnext, host_hash, HostIncrUsecnt, Host_::hprev, HRLOCK_LOCK, HRLOCK_UNLOCK, Host_::m, and SCMutexLock.

◆ HostMoveToSpare()

void HostMoveToSpare ( Host h)

Definition at line 100 of file host.c.

References HostEnqueue(), and SC_ATOMIC_SUB.

Referenced by HostCleanup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HostPrintStats()

void HostPrintStats ( void  )

print some host stats

Warning
Not thread safe

Definition at line 284 of file host.c.

References host_config, SC_ATOMIC_GET, and SCLogPerf.

Referenced by HostShutdown(), and SRepInit().

Here is the caller graph for this function:

◆ HostRegisterUnittests()

void HostRegisterUnittests ( void  )

Definition at line 717 of file host.c.

References RegisterHostStorageTests().

Here is the call graph for this function:

◆ HostRelease()

void HostRelease ( Host h)

Definition at line 461 of file host.c.

References HostDecrUsecnt, Host_::m, and SCMutexUnlock.

Referenced by SRepLoadFileFromFD(), and TagHashAddTag().

Here is the caller graph for this function:

◆ HostSetMemcap()

int HostSetMemcap ( uint64_t  size)

Update memcap value.

Parameters
sizenew memcap value

Definition at line 68 of file host.c.

References host_config, SC_ATOMIC_GET, and SC_ATOMIC_SET.

◆ HostShutdown()

void HostShutdown ( void  )

shutdown the flow engine

Warning
Not thread safe

Definition at line 296 of file host.c.

References HostConfig_::hash_size, Host_::hnext, host_config, host_hash, HostDequeue(), HostFree(), HostPrintStats(), HostQueueDestroy(), HRLOCK_DESTROY, SC_ATOMIC_SUB, and SCFreeAligned.

Referenced by GlobalsDestroy().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HostUnlock()

void HostUnlock ( Host h)

Definition at line 472 of file host.c.

References Host_::m, and SCMutexUnlock.

Referenced by TagHandlePacket().

Here is the caller graph for this function:

◆ SC_ATOMIC_DECLARE() [1/3]

SC_ATOMIC_DECLARE ( uint32_t  ,
host_counter   
)

◆ SC_ATOMIC_DECLARE() [2/3]

SC_ATOMIC_DECLARE ( uint32_t  ,
host_prune_idx   
)

◆ SC_ATOMIC_DECLARE() [3/3]

SC_ATOMIC_DECLARE ( uint64_t  ,
host_memuse   
)

Variable Documentation

◆ host_config

◆ host_hash

HostHashRow* host_hash

host hash table

Definition at line 50 of file host.c.

Referenced by HostCleanup(), HostGetHostFromHash(), HostInitConfig(), HostLookupHostFromHash(), HostShutdown(), and HostTimeoutHash().