axa 3.0.1
Farsight Security Advanced Exchange Access (AXA)
trie_roots_t Struct Reference

This is the handle on an AXA trie. More...

Data Fields

trie_node_tipv4_root
 root of the internal IPv4 trie
 
trie_node_tipv6_root
 root of the internal IPv6 trie
 
trie_node_tdom_root
 root of the domain name trie
 
int hitlist_max
 hit array limit; default 10
 
void(* node_free )(trie_node_t *node)
 Delete or schedule the deletion of a trie node.
 
void(* tval_list_free )(tval_list_t *tval_list)
 Delete or schedule the deletion of an array of values that once belonged to a trie node.
 
bool(* hitlist_find )(const hitlist_t *hitlist, tval_t tval)
 NULL or return -1 or the index of an identical, previously found 'hit' on a node value.
 
void(* lock )(void)
 Lock to add or delete a node.
 
void(* unlock )(void)
 Unlock the trie.
 
void(* assert_lock )(void)
 Check the trie lock.
 

Detailed Description

This is the handle on an AXA trie.

Trie users must create and initialize one of these structures before first using an AXA trie. Zero or NULL is acceptable for all of its entries.

Field Documentation

◆ ipv4_root

trie_node_t* trie_roots_t::ipv4_root

root of the internal IPv4 trie

◆ ipv6_root

trie_node_t* trie_roots_t::ipv6_root

root of the internal IPv6 trie

◆ dom_root

trie_node_t* trie_roots_t::dom_root

root of the domain name trie

◆ hitlist_max

int trie_roots_t::hitlist_max

hit array limit; default 10

◆ node_free

void(* trie_roots_t::node_free) (trie_node_t *node)

Delete or schedule the deletion of a trie node.

AXA trie users that do not need non-blocking trie searches can set this to NULL or axa_trie_node_delete. A supplied function must eventually call axa_trie_node_free().

◆ tval_list_free

void(* trie_roots_t::tval_list_free) (tval_list_t *tval_list)

Delete or schedule the deletion of an array of values that once belonged to a trie node.

AXA trie users that do not need non-blocking trie searches can set this to NULL or axa_trie_node_delete. A supplied function must eventually call free().

◆ hitlist_find

bool(* trie_roots_t::hitlist_find) (const hitlist_t *hitlist, tval_t tval)

NULL or return -1 or the index of an identical, previously found 'hit' on a node value.

◆ lock

void(* trie_roots_t::lock) (void)

Lock to add or delete a node.

◆ unlock

void(* trie_roots_t::unlock) (void)

Unlock the trie.

◆ assert_lock

void(* trie_roots_t::assert_lock) (void)

Check the trie lock.