Go to the documentation of this file.
26 #ifndef SURICATA_UTIL_RADIX6_TREE_H
27 #define SURICATA_UTIL_RADIX6_TREE_H
76 #define SC_RADIX6_TREE_INITIALIZER \
95 const SCRadix6Tree *,
const uint8_t *,
const uint8_t,
void **);
105 const SCRadix6Node *node,
void *user_data,
const uint8_t netmask,
void *data);
int(* SCRadix6ForEachNodeFunc)(const SCRadix6Node *node, void *user_data, const uint8_t netmask, void *data)
bool SCRadix6CompareTrees(const SCRadix6Tree *t1, const SCRadix6Tree *t2, SCRadix6TreeCompareFunc Callback)
void SCRadix6RemoveKeyIPV6Netblock(SCRadix6Tree *, const SCRadix6Config *, const uint8_t *, uint8_t)
Removes an IPV6 address netblock key from the tree.
Structure that hold the user data and the netmask associated with it.
void SCRadix6RemoveKeyIPV6(SCRadix6Tree *, const SCRadix6Config *, const uint8_t *)
Removes an IPV6 address key(not a netblock) from the Radix6 tree. Instead of using this function,...
struct SCRadix6Node_ * parent
SCRadix6Node * SCRadix6AddKeyIPV6Netblock(SCRadix6Tree *, const SCRadix6Config *, const uint8_t *, uint8_t, void *)
Adds a new IPV6 netblock to the Radix6 tree.
SCRadix6Node * SCRadix6AddKeyIPV6(SCRadix6Tree *, const SCRadix6Config *, const uint8_t *, void *)
Adds a new IPV6 address to the Radix6 tree.
SCRadix6Node * SCRadix6TreeFindBestMatch2(const SCRadix6Tree *, const uint8_t *, void **, uint8_t *)
struct SCRadix6Config_ SCRadix6Config
struct SCRadix6Node_ * left
void SCRadix6RegisterTests(void)
void SCRadix6PrintNodeInfo(SCRadix6Node *, int, void(*PrintData)(void *))
uint8_t prefix_stream[16]
struct RadixUserData * user_data
struct SCRadix6Node_ * right
SCRadix6Node * SCRadix6TreeFindExactMatch(const SCRadix6Tree *, const uint8_t *, void **)
struct SCRadix6Tree_ SCRadix6Tree
Structure for the radix tree.
SCRadix6Tree SCRadix6TreeInitialize(void)
struct SCRadix6Node_ SCRadix6Node
Structure for the node in the radix tree.
Structure for the node in the radix tree.
void SCRadix6TreeRelease(SCRadix6Tree *, const SCRadix6Config *)
SCRadix6Node * SCRadix6TreeFindNetblock(const SCRadix6Tree *, const uint8_t *, const uint8_t, void **)
bool(* SCRadix6TreeCompareFunc)(const void *ud1, const void *ud2)
compare content of 2 user data entries
Structure for the radix tree.
void(* PrintData)(void *)
SCRadix6Node * SCRadix6TreeFindBestMatch(const SCRadix6Tree *, const uint8_t *, void **)
int SCRadix6ForEachNode(const SCRadix6Tree *tree, SCRadix6ForEachNodeFunc Callback, void *data)
void SCRadix6PrintTree(SCRadix6Tree *, const SCRadix6Config *)
bool SCRadix6AddKeyIPV6String(SCRadix6Tree *, const SCRadix6Config *, const char *, void *)
Adds a new IPV6/netblock to the Radix6 tree from a string.