diff options
Diffstat (limited to 'framework/src/suricata/src/flow-hash.h')
-rw-r--r-- | framework/src/suricata/src/flow-hash.h | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/framework/src/suricata/src/flow-hash.h b/framework/src/suricata/src/flow-hash.h deleted file mode 100644 index 4272896b..00000000 --- a/framework/src/suricata/src/flow-hash.h +++ /dev/null @@ -1,89 +0,0 @@ -/* Copyright (C) 2007-2012 Open Information Security Foundation - * - * You can copy, redistribute or modify this Program under the terms of - * the GNU General Public License version 2 as published by the Free - * Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * version 2 along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - */ - -/** - * \file - * - * \author Victor Julien <victor@inliniac.net> - */ - -#ifndef __FLOW_HASH_H__ -#define __FLOW_HASH_H__ - -/** Spinlocks or Mutex for the flow buckets. */ -//#define FBLOCK_SPIN -#define FBLOCK_MUTEX - -#ifdef FBLOCK_SPIN - #ifdef FBLOCK_MUTEX - #error Cannot enable both FBLOCK_SPIN and FBLOCK_MUTEX - #endif -#endif - -/* flow hash bucket -- the hash is basically an array of these buckets. - * Each bucket contains a flow or list of flows. All these flows have - * the same hashkey (the hash is a chained hash). When doing modifications - * to the list, the entire bucket is locked. */ -typedef struct FlowBucket_ { - Flow *head; - Flow *tail; -#ifdef FBLOCK_MUTEX - SCMutex m; -#elif defined FBLOCK_SPIN - SCSpinlock s; -#else - #error Enable FBLOCK_SPIN or FBLOCK_MUTEX -#endif -} __attribute__((aligned(CLS))) FlowBucket; - -#ifdef FBLOCK_SPIN - #define FBLOCK_INIT(fb) SCSpinInit(&(fb)->s, 0) - #define FBLOCK_DESTROY(fb) SCSpinDestroy(&(fb)->s) - #define FBLOCK_LOCK(fb) SCSpinLock(&(fb)->s) - #define FBLOCK_TRYLOCK(fb) SCSpinTrylock(&(fb)->s) - #define FBLOCK_UNLOCK(fb) SCSpinUnlock(&(fb)->s) -#elif defined FBLOCK_MUTEX - #define FBLOCK_INIT(fb) SCMutexInit(&(fb)->m, NULL) - #define FBLOCK_DESTROY(fb) SCMutexDestroy(&(fb)->m) - #define FBLOCK_LOCK(fb) SCMutexLock(&(fb)->m) - #define FBLOCK_TRYLOCK(fb) SCMutexTrylock(&(fb)->m) - #define FBLOCK_UNLOCK(fb) SCMutexUnlock(&(fb)->m) -#else - #error Enable FBLOCK_SPIN or FBLOCK_MUTEX -#endif - -/* prototypes */ - -Flow *FlowGetFlowFromHash(ThreadVars *tv, DecodeThreadVars *dtv, const Packet *); - -void FlowDisableTcpReuseHandling(void); - -/** enable to print stats on hash lookups in flow-debug.log */ -//#define FLOW_DEBUG_STATS - -#ifdef FLOW_DEBUG_STATS -void FlowHashDebugInit(void); -void FlowHashDebugDeinit(void); -void FlowHashDebugPrint(uint32_t); -#else -#define FlowHashDebugInit(...) -#define FlowHashDebugPrint(...) -#define FlowHashDebugDeinit(...) -#endif - -#endif /* __FLOW_HASH_H__ */ - |