suricata
ippair.c File Reference
#include "suricata-common.h"
#include "conf.h"
#include "util-debug.h"
#include "ippair.h"
#include "ippair-storage.h"
#include "util-random.h"
#include "util-misc.h"
#include "util-byte.h"
#include "ippair-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 ippair.c:

Go to the source code of this file.

Macros

#define IPPAIR_DEFAULT_HASHSIZE   4096
 
#define IPPAIR_DEFAULT_MEMCAP   16777216
 
#define IPPAIR_DEFAULT_PREALLOC   1000
 

Functions

int IPPairSetMemcap (uint64_t size)
 Update memcap value. More...
 
uint64_t IPPairGetMemcap (void)
 Return memcap value. More...
 
uint64_t IPPairGetMemuse (void)
 Return memuse value. More...
 
uint32_t IPPairSpareQueueGetSize (void)
 
void IPPairMoveToSpare (IPPair *h)
 
IPPairIPPairAlloc (void)
 
void IPPairFree (IPPair *h)
 
void IPPairClearMemory (IPPair *h)
 
void IPPairInitConfig (char quiet)
 initialize the configuration More...
 
void IPPairPrintStats (void)
 print some ippair stats More...
 
void IPPairShutdown (void)
 shutdown the flow engine More...
 
void IPPairCleanup (void)
 Cleanup the ippair engine. More...
 
void IPPairRelease (IPPair *h)
 
void IPPairLock (IPPair *h)
 
void IPPairUnlock (IPPair *h)
 
IPPairIPPairGetIPPairFromHash (Address *a, Address *b)
 
IPPairIPPairLookupIPPairFromHash (Address *a, Address *b)
 look up a ippair in the hash More...
 
void IPPairRegisterUnittests (void)
 

Detailed Description

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

Information about ippairs.

Definition in file ippair.c.

Macro Definition Documentation

#define IPPAIR_DEFAULT_HASHSIZE   4096

Definition at line 158 of file ippair.c.

Referenced by IPPairInitConfig().

#define IPPAIR_DEFAULT_MEMCAP   16777216

Definition at line 159 of file ippair.c.

Referenced by IPPairInitConfig().

#define IPPAIR_DEFAULT_PREALLOC   1000

Definition at line 160 of file ippair.c.

Referenced by IPPairInitConfig().

Function Documentation

IPPair* IPPairAlloc ( void  )

Definition at line 102 of file ippair.c.

References IPPAIR_CHECK_MEMCAP, IPPair_::m, SC_ATOMIC_ADD, SC_ATOMIC_INIT, SCMalloc, SCMutexInit, and unlikely.

Referenced by IPPairBitIsnotset(), IPPairFree(), and IPPairInitConfig().

Here is the caller graph for this function:

void IPPairCleanup ( void  )

Cleanup the ippair engine.

Cleanup the ippair engine from tag and threshold.

Definition at line 340 of file ippair.c.

References IPPair_::a, CMP_ADDR, COPY_ADDRESS, Address_::family, IPPairConfig_::hash_rand, IPPairConfig_::hash_size, hashword(), IPPair_::hnext, IPPair_::hprev, HRLOCK_LOCK, HRLOCK_UNLOCK, IPPAIR_CHECK_MEMCAP, ippair_config, ippair_hash, IPPairClearMemory(), IPPairDequeue(), IPPairFreeStorage(), IPPairIncrUsecnt, IPPairMoveToSpare(), IPPair_::m, MAX, MIN, SC_ATOMIC_ADD, SC_ATOMIC_GET, and SCMutexLock.

Referenced by DetectXbitFree(), and IPPairBitIsnotset().

Here is the call graph for this function:

Here is the caller graph for this function:

void IPPairClearMemory ( IPPair h)

Definition at line 152 of file ippair.c.

References IPPairFreeStorage(), and IPPairStorageSize().

Referenced by IPPairCleanup(), IPPairFree(), IPPairGetActiveCount(), and IPPairLookupIPPairFromHash().

Here is the call graph for this function:

Here is the caller graph for this function:

void IPPairFree ( IPPair h)

Definition at line 124 of file ippair.c.

References IPPair_::a, COPY_ADDRESS, IPPairAlloc(), IPPairClearMemory(), IPPair_::m, SC_ATOMIC_DESTROY, SC_ATOMIC_SUB, SCFree, and SCMutexDestroy.

Referenced by IPPairBitIsnotset(), and IPPairShutdown().

Here is the call graph for this function:

Here is the caller graph for this function:

IPPair* IPPairGetIPPairFromHash ( Address a,
Address b 
)
uint64_t IPPairGetMemcap ( void  )

Return memcap value.

Return values
memcapvalue

Definition at line 74 of file ippair.c.

References ippair_config, and SC_ATOMIC_GET.

Referenced by RunModeUnixSocketGetDefaultMode().

Here is the caller graph for this function:

uint64_t IPPairGetMemuse ( void  )

Return memuse value.

Return values
memusevalue

Definition at line 85 of file ippair.c.

References SC_ATOMIC_GET.

Referenced by RunModeUnixSocketGetDefaultMode().

Here is the caller graph for this function:

void IPPairLock ( IPPair h)

Definition at line 526 of file ippair.c.

References IPPair_::m, and SCMutexLock.

IPPair* IPPairLookupIPPairFromHash ( Address a,
Address b 
)

look up a ippair in the hash

Parameters
aaddress to look up
Return values
hLOCKED ippair or NULL

Definition at line 643 of file ippair.c.

References IPPairConfig_::hash_size, IPPair_::hnext, IPPair_::hprev, HRLOCK_LOCK, HRLOCK_TRYLOCK, HRLOCK_UNLOCK, ippair_config, ippair_hash, IPPairClearMemory(), IPPairIncrUsecnt, IPPair_::m, SC_ATOMIC_ADD, SC_ATOMIC_GET, SCMutexLock, SCMutexTrylock, and SCMutexUnlock.

Referenced by AppLayerExpectationSetup(), and DetectXbitsRegister().

Here is the call graph for this function:

Here is the caller graph for this function:

void IPPairMoveToSpare ( IPPair h)

Definition at line 96 of file ippair.c.

References IPPairEnqueue(), and SC_ATOMIC_SUB.

Referenced by IPPairCleanup(), and IPPairGetActiveCount().

Here is the call graph for this function:

Here is the caller graph for this function:

void IPPairPrintStats ( void  )

print some ippair stats

Warning
Not thread safe

Definition at line 283 of file ippair.c.

References ippair_config, SC_ATOMIC_GET, and SCLogPerf.

Referenced by IPPairShutdown().

Here is the caller graph for this function:

void IPPairRegisterUnittests ( void  )

Definition at line 775 of file ippair.c.

References RegisterIPPairStorageTests().

Here is the call graph for this function:

void IPPairRelease ( IPPair h)

Definition at line 520 of file ippair.c.

References IPPairDecrUsecnt, IPPair_::m, and SCMutexUnlock.

Referenced by AppLayerExpectationHandle(), DetectXbitsRegister(), IPPairStorageRegister(), and PacketAlertThreshold().

Here is the caller graph for this function:

int IPPairSetMemcap ( uint64_t  size)

Update memcap value.

Parameters
sizenew memcap value

Definition at line 59 of file ippair.c.

References ippair_config, SC_ATOMIC_GET, and SC_ATOMIC_SET.

Referenced by RunModeUnixSocketGetDefaultMode().

Here is the caller graph for this function:

void IPPairShutdown ( void  )

shutdown the flow engine

Warning
Not thread safe

Definition at line 296 of file ippair.c.

References BUG_ON, IPPairConfig_::hash_size, IPPair_::hnext, HRLOCK_DESTROY, ippair_config, ippair_hash, IPPairDequeue(), IPPairFree(), IPPairPrintStats(), IPPairQueueDestroy(), SC_ATOMIC_DESTROY, SC_ATOMIC_GET, SC_ATOMIC_SUB, and SCFreeAligned.

Referenced by IPPairStorageRegister(), PostRunDeinit(), and SCThresholdConfParseFile().

Here is the call graph for this function:

Here is the caller graph for this function:

uint32_t IPPairSpareQueueGetSize ( void  )

Definition at line 91 of file ippair.c.

References IPPairQueueLen().

Referenced by IPPairGetSpareCount().

Here is the call graph for this function:

Here is the caller graph for this function:

void IPPairUnlock ( IPPair h)

Definition at line 531 of file ippair.c.

References IPPair_::m, and SCMutexUnlock.

Referenced by AppLayerExpectationCreate().

Here is the caller graph for this function: