]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/netinet/flow_divert.h
xnu-3789.1.32.tar.gz
[apple/xnu.git] / bsd / netinet / flow_divert.h
index 1af72b8bef64ddbb0dd39779723d0b0915d0bbbe..47abceaa30e433ceb10410dd49bf2730f50a9bd2 100644 (file)
@@ -32,6 +32,7 @@
 #include <sys/mbuf.h>
 
 struct flow_divert_group;
+struct flow_divert_trie_node;
 
 struct flow_divert_pcb {
     decl_lck_mtx_data(, mtx);
@@ -60,6 +61,21 @@ struct flow_divert_pcb {
 
 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;
@@ -68,6 +84,7 @@ struct flow_divert_group {
     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);