1 1.3 darrenr /* $NetBSD: ip_pool.h,v 1.3 2012/07/22 14:27:51 darrenr Exp $ */ 2 1.1 christos 3 1.1 christos /* 4 1.3 darrenr * Copyright (C) 2012 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.3 darrenr * Id: ip_pool.h,v 1.1.1.2 2012/07/22 13:45:31 darrenr Exp 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.3 darrenr ip_pool_node_t **ipo_tail; 43 1.1 christos ip_pool_node_t *ipo_nextaddr; 44 1.1 christos void *ipo_radix; 45 1.1 christos u_long ipo_hits; 46 1.1 christos int ipo_unit; 47 1.1 christos int ipo_flags; 48 1.1 christos int ipo_ref; 49 1.1 christos char ipo_name[FR_GROUPLEN]; 50 1.1 christos } ip_pool_t; 51 1.1 christos 52 1.1 christos #define IPOOL_DELETE 0x01 53 1.1 christos #define IPOOL_ANON 0x02 54 1.1 christos 55 1.1 christos 56 1.1 christos typedef struct ipf_pool_stat { 57 1.1 christos u_long ipls_pools; 58 1.1 christos u_long ipls_tables; 59 1.1 christos u_long ipls_nodes; 60 1.1 christos ip_pool_t *ipls_list[LOOKUP_POOL_SZ]; 61 1.1 christos } ipf_pool_stat_t; 62 1.1 christos 63 1.1 christos extern ipf_lookup_t ipf_pool_backend; 64 1.1 christos 65 1.1 christos #ifndef _KERNEL 66 1.2 christos extern void ipf_pool_dump(ipf_main_softc_t *, void *); 67 1.1 christos #endif 68 1.1 christos 69 1.1 christos #endif /* __IP_POOL_H__ */ 70