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. More...
 
uint64_t HostGetMemcap (void)
 Return memcap value. More...
 
uint64_t HostGetMemuse (void)
 Return memuse value. More...
 
uint32_t HostSpareQueueGetSize (void)
 
void HostMoveToSpare (Host *h)
 
HostHostAlloc (void)
 
void HostFree (Host *h)
 
void HostClearMemory (Host *h)
 
void HostInitConfig (bool quiet)
 initialize the configuration More...
 
void HostPrintStats (void)
 print some host stats More...
 
void HostShutdown (void)
 shutdown the flow engine More...
 
void HostCleanup (void)
 Cleanup the host engine. More...
 
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 More...
 
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 168 of file host.c.

◆ HOST_DEFAULT_MEMCAP

#define HOST_DEFAULT_MEMCAP   16777216

Definition at line 169 of file host.c.

◆ HOST_DEFAULT_PREALLOC

#define HOST_DEFAULT_PREALLOC   1000

Definition at line 170 of file host.c.

Function Documentation

◆ HostAlloc()

Host* HostAlloc ( void  )

Definition at line 111 of file host.c.

References HOST_CHECK_MEMCAP.

◆ HostCleanup()

void HostCleanup ( void  )

Cleanup the host engine.

Cleanup the host engine from tag and threshold.

Definition at line 341 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.

Here is the call graph for this function:

◆ HostClearMemory()

void HostClearMemory ( Host h)

Definition at line 155 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 130 of file host.c.

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

Here is the call graph for this function:

◆ HostGetHostFromHash()

Host* HostGetHostFromHash ( Address a)

Definition at line 497 of file host.c.

Referenced by 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.

◆ HostGetMemuse()

uint64_t HostGetMemuse ( void  )

Return memuse value.

Return values
memusevalue

Definition at line 94 of file host.c.

References SC_ATOMIC_GET.

◆ HostInitConfig()

void HostInitConfig ( bool  quiet)

initialize the configuration

Warning
Not thread safe

set config values for memcap, prealloc and hash_size

Definition at line 173 of file host.c.

References DEBUG_VALIDATE_BUG_ON, HostStorageSize(), and SCLogDebug.

Here is the call graph for this function:

◆ HostLock()

void HostLock ( Host h)

Definition at line 478 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 596 of file host.c.

◆ HostMoveToSpare()

void HostMoveToSpare ( Host h)

Definition at line 105 of file host.c.

References HostEnqueue().

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 291 of file host.c.

References host_config, SC_ATOMIC_GET, and SCLogPerf.

Referenced by HostShutdown().

Here is the caller graph for this function:

◆ HostRegisterUnittests()

void HostRegisterUnittests ( void  )

Definition at line 728 of file host.c.

References RegisterHostStorageTests().

Here is the call graph for this function:

◆ HostRelease()

void HostRelease ( Host h)

Definition at line 472 of file host.c.

References HostDecrUsecnt, Host_::m, and SCMutexUnlock.

◆ 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 304 of file host.c.

References HostDequeue(), and HostPrintStats().

Here is the call graph for this function:

◆ HostSpareQueueGetSize()

uint32_t HostSpareQueueGetSize ( void  )

Definition at line 100 of file host.c.

References HostQueueLen().

Referenced by HostGetSpareCount().

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

◆ HostUnlock()

void HostUnlock ( Host h)

Definition at line 483 of file host.c.

References Host_::m, and SCMutexUnlock.

◆ 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

HostConfig host_config

Definition at line 53 of file host.c.

Referenced by HostCleanup(), HostGetMemcap(), HostPrintStats(), HostSetMemcap(), and HostTimeoutHash().

◆ host_hash

HostHashRow* host_hash

host hash table

Definition at line 50 of file host.c.

Referenced by HostCleanup(), and HostTimeoutHash().