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