util-macset.c File Reference
#include "suricata-common.h"
#include "suricata.h"
#include "flow-util.h"
#include "flow-private.h"
#include "flow-storage.h"
#include "util-macset.h"
#include "util-unittest.h"
#include "util-unittest-helper.h"
#include "conf.h"
Include dependency graph for util-macset.c:

Go to the source code of this file.

Data Structures

struct  MacSet_


typedef uint8_t MacAddr[6]




void MacSetRegisterFlowStorage (void)
bool MacSetFlowStorageEnabled (void)
MacSetMacSetInit (int size)
FlowStorageId MacSetGetFlowStorageID (void)
void MacSetAddWithCtr (MacSet *ms, const uint8_t *src_addr, const uint8_t *dst_addr, ThreadVars *tv, uint16_t ctr_src, uint16_t ctr_dst)
void MacSetAdd (MacSet *ms, const uint8_t *src_addr, const uint8_t *dst_addr)
int MacSetForEach (const MacSet *ms, MacSetIteratorFunc IterFunc, void *data)
int MacSetSize (const MacSet *ms)
void MacSetFree (MacSet *ms)
void MacSetRegisterTests (void)


FlowStorageId g_macset_storage_id = { .id = -1 }

Detailed Description

Sascha Steinbiss

Set-like data store for MAC addresses. Implemented as array for memory locality reasons as the expected number of items is typically low.

Definition in file util-macset.c.

Typedef Documentation

◆ MacAddr

typedef uint8_t MacAddr[6]

Definition at line 38 of file util-macset.c.

Enumeration Type Documentation

◆ MacSetState


Definition at line 39 of file util-macset.c.

Function Documentation

◆ MacSetAdd()

void MacSetAdd ( MacSet ms,
const uint8_t *  src_addr,
const uint8_t *  dst_addr 

Definition at line 190 of file util-macset.c.

References MacSetAddWithCtr().

Here is the call graph for this function:

◆ MacSetAddWithCtr()

void MacSetAddWithCtr ( MacSet ms,
const uint8_t *  src_addr,
const uint8_t *  dst_addr,
ThreadVars tv,
uint16_t  ctr_src,
uint16_t  ctr_dst 

Definition at line 181 of file util-macset.c.

Referenced by MacSetAdd().

Here is the caller graph for this function:

◆ MacSetFlowStorageEnabled()

bool MacSetFlowStorageEnabled ( void  )

Definition at line 85 of file util-macset.c.

References g_macset_storage_id, and FlowStorageId::id.

◆ MacSetForEach()

int MacSetForEach ( const MacSet ms,
MacSetIteratorFunc  IterFunc,
void *  data 

Definition at line 220 of file util-macset.c.

◆ MacSetFree()

void MacSetFree ( MacSet ms)

Definition at line 264 of file util-macset.c.

References MacSet_::buf, MAC_SET_DST, MAC_SET_SRC, SC_ATOMIC_SUB, SCFree, and MacSet_::size.

◆ MacSetGetFlowStorageID()

FlowStorageId MacSetGetFlowStorageID ( void  )

Definition at line 114 of file util-macset.c.

References g_macset_storage_id.

◆ MacSetInit()

◆ MacSetRegisterFlowStorage()

void MacSetRegisterFlowStorage ( void  )

Definition at line 62 of file util-macset.c.

Referenced by PostConfLoadedSetup().

Here is the caller graph for this function:

◆ MacSetRegisterTests()

void MacSetRegisterTests ( void  )

Definition at line 421 of file util-macset.c.

References UtRegisterTest().

Here is the call graph for this function:

◆ MacSetSize()

int MacSetSize ( const MacSet ms)

Variable Documentation

◆ g_macset_storage_id

FlowStorageId g_macset_storage_id = { .id = -1 }

Definition at line 60 of file util-macset.c.

Referenced by MacSetFlowStorageEnabled(), and MacSetGetFlowStorageID().