1 1.1 christos /* $NetBSD: ip_pool.h,v 1.1 2012/03/23 20:37:01 christos Exp $ */ 2 1.1 christos 3 1.1 christos /* 4 1.1 christos * Copyright (C) 2011 by Darren Reed. 5 1.1 christos * 6 1.1 christos * See the IPFILTER.LICENCE file for details on licencing. 7 1.1 christos * 8 1.1 christos * Id 9 1.1 christos */ 10 1.1 christos 11 1.1 christos #ifndef __IP_POOL_H__ 12 1.1 christos #define __IP_POOL_H__ 13 1.1 christos 14 1.1 christos #include "netinet/ip_lookup.h" 15 1.1 christos #include "radix_ipf.h" 16 1.1 christos 17 1.1 christos #define IP_POOL_NOMATCH 0 18 1.1 christos #define IP_POOL_POSITIVE 1 19 1.1 christos 20 1.1 christos typedef struct ip_pool_node { 21 1.1 christos ipf_rdx_node_t ipn_nodes[2]; 22 1.1 christos addrfamily_t ipn_addr; 23 1.1 christos addrfamily_t ipn_mask; 24 1.1 christos int ipn_uid; 25 1.1 christos int ipn_info; 26 1.1 christos int ipn_ref; 27 1.1 christos char ipn_name[FR_GROUPLEN]; 28 1.1 christos U_QUAD_T ipn_hits; 29 1.1 christos U_QUAD_T ipn_bytes; 30 1.1 christos u_long ipn_die; 31 1.1 christos struct ip_pool_node *ipn_next, **ipn_pnext; 32 1.1 christos struct ip_pool_node *ipn_dnext, **ipn_pdnext; 33 1.1 christos struct ip_pool_s *ipn_owner; 34 1.1 christos } ip_pool_node_t; 35 1.1 christos 36 1.1 christos 37 1.1 christos typedef struct ip_pool_s { 38 1.1 christos struct ip_pool_s *ipo_next; 39 1.1 christos struct ip_pool_s **ipo_pnext; 40 1.1 christos ipf_rdx_head_t *ipo_head; 41 1.1 christos ip_pool_node_t *ipo_list; 42 1.1 christos ip_pool_node_t *ipo_nextaddr; 43 1.1 christos void *ipo_radix; 44 1.1 christos u_long ipo_hits; 45 1.1 christos int ipo_unit; 46 1.1 christos int ipo_flags; 47 1.1 christos int ipo_ref; 48 1.1 christos char ipo_name[FR_GROUPLEN]; 49 1.1 christos } ip_pool_t; 50 1.1 christos 51 1.1 christos #define IPOOL_DELETE 0x01 52 1.1 christos #define IPOOL_ANON 0x02 53 1.1 christos 54 1.1 christos 55 1.1 christos typedef struct ipf_pool_stat { 56 1.1 christos u_long ipls_pools; 57 1.1 christos u_long ipls_tables; 58 1.1 christos u_long ipls_nodes; 59 1.1 christos ip_pool_t *ipls_list[LOOKUP_POOL_SZ]; 60 1.1 christos } ipf_pool_stat_t; 61 1.1 christos 62 1.1 christos extern ipf_lookup_t ipf_pool_backend; 63 1.1 christos 64 1.1 christos #ifndef _KERNEL 65 1.1 christos extern void ipf_pool_dump __P((ipf_main_softc_t *, void *)); 66 1.1 christos #endif 67 1.1 christos 68 1.1 christos #endif /* __IP_POOL_H__ */ 69