#include <sys/mbuf.h>
struct flow_divert_group;
+struct flow_divert_trie_node;
struct flow_divert_pcb {
decl_lck_mtx_data(, mtx);
RB_HEAD(fd_pcb_tree, flow_divert_pcb);
+struct flow_divert_trie
+{
+ struct flow_divert_trie_node *nodes;
+ uint16_t *child_maps;
+ uint8_t *bytes;
+ void *memory;
+ size_t nodes_count;
+ size_t child_maps_count;
+ size_t bytes_count;
+ size_t nodes_free_next;
+ size_t child_maps_free_next;
+ size_t bytes_free_next;
+ uint16_t root;
+};
+
struct flow_divert_group {
decl_lck_rw_data(, lck);
struct fd_pcb_tree pcb_tree;
MBUFQ_HEAD(send_queue_head) send_queue;
uint8_t *token_key;
size_t token_key_size;
+ struct flow_divert_trie signing_id_trie;
};
void flow_divert_init(void);