|
suricata
|
#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"
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) |
| Host * | HostAlloc (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) |
| Host * | HostGetHostFromHash (Address *a) |
| Host * | HostLookupHostFromHash (Address *a) |
| look up a host in the hash | |
| void | HostRegisterUnittests (void) |
Variables | |
| HostHashRow * | host_hash |
| HostConfig | host_config |
Information about hosts.
Definition in file host.c.
| 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().

| 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().


| 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().


| 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().


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().

| uint64_t HostGetMemcap | ( | void | ) |
Return memcap value.
| memcap | value |
Definition at line 83 of file host.c.
References host_config, and SC_ATOMIC_GET.
Referenced by AppLayerRegisterGlobalCounters().

| uint64_t HostGetMemuse | ( | void | ) |
Return memuse value.
| memuse | value |
Definition at line 94 of file host.c.
References SC_ATOMIC_GET.
Referenced by AppLayerRegisterGlobalCounters().

| void HostInitConfig | ( | bool | quiet | ) |
initialize the configuration
set config values for memcap, prealloc and hash_size
Definition at line 168 of file host.c.
References CLS, DEBUG_VALIDATE_BUG_ON, FatalError, HostConfig_::hash_rand, HostConfig_::hash_size, HOST_CHECK_MEMCAP, host_config, HOST_DEFAULT_HASHSIZE, HOST_DEFAULT_MEMCAP, HOST_DEFAULT_PREALLOC, host_hash, HostAlloc(), HostEnqueue(), HostQueueInit(), HostStorageSize(), HRLOCK_INIT, HostQueue_::len, ParseSizeStringU64(), HostConfig_::prealloc, RandomGet(), SC_ATOMIC_ADD, SC_ATOMIC_GET, SC_ATOMIC_INIT, SC_ATOMIC_SET, SCConfGet(), SCLogConfig, SCLogDebug, SCLogError, SCMallocAligned, StringParseUint32(), unlikely, and WarnInvalidConfEntry.
Referenced by PostConfLoadedSetup().


| void HostLock | ( | Host * | h | ) |
Definition at line 467 of file host.c.
References Host_::m, and SCMutexLock.
look up a host in the hash
| a | address to look up |
| h | LOCKED 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.
| void HostMoveToSpare | ( | Host * | h | ) |
Definition at line 100 of file host.c.
References HostEnqueue(), and SC_ATOMIC_SUB.
Referenced by HostCleanup().


| void HostPrintStats | ( | void | ) |
print some host stats
Definition at line 284 of file host.c.
References host_config, SC_ATOMIC_GET, and SCLogPerf.
Referenced by HostShutdown(), and SRepInit().

| void HostRegisterUnittests | ( | void | ) |
Definition at line 717 of file host.c.
References RegisterHostStorageTests().

| void HostRelease | ( | Host * | h | ) |
Definition at line 461 of file host.c.
References HostDecrUsecnt, Host_::m, and SCMutexUnlock.
Referenced by SRepLoadFileFromFD(), and TagHashAddTag().

| int HostSetMemcap | ( | uint64_t | size | ) |
Update memcap value.
| size | new memcap value |
Definition at line 68 of file host.c.
References host_config, SC_ATOMIC_GET, and SC_ATOMIC_SET.
| void HostShutdown | ( | void | ) |
shutdown the flow engine
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().


| void HostUnlock | ( | Host * | h | ) |
Definition at line 472 of file host.c.
References Host_::m, and SCMutexUnlock.
Referenced by TagHandlePacket().

| SC_ATOMIC_DECLARE | ( | uint32_t | , |
| host_counter | |||
| ) |
| SC_ATOMIC_DECLARE | ( | uint32_t | , |
| host_prune_idx | |||
| ) |
| SC_ATOMIC_DECLARE | ( | uint64_t | , |
| host_memuse | |||
| ) |
| HostConfig host_config |
Definition at line 53 of file host.c.
Referenced by HostCleanup(), HostGetMemcap(), HostInitConfig(), HostPrintStats(), HostSetMemcap(), HostShutdown(), and HostTimeoutHash().
| HostHashRow* host_hash |
host hash table
Definition at line 50 of file host.c.
Referenced by HostCleanup(), HostGetHostFromHash(), HostInitConfig(), HostLookupHostFromHash(), HostShutdown(), and HostTimeoutHash().