| /* |
| * Copyright (C) 2011 by Darren Reed. |
| * |
| * See the IPFILTER.LICENCE file for details on licencing. |
| * |
| * $Id$ |
| */ |
| |
| #ifndef __IP_POOL_H__ |
| #define __IP_POOL_H__ |
| |
| #include "netinet/ip_lookup.h" |
| #include "radix_ipf.h" |
| |
| #define IP_POOL_NOMATCH 0 |
| #define IP_POOL_POSITIVE 1 |
| |
| typedef struct ip_pool_node { |
| ipf_rdx_node_t ipn_nodes[2]; |
| addrfamily_t ipn_addr; |
| addrfamily_t ipn_mask; |
| int ipn_uid; |
| int ipn_info; |
| int ipn_ref; |
| char ipn_name[FR_GROUPLEN]; |
| U_QUAD_T ipn_hits; |
| U_QUAD_T ipn_bytes; |
| u_long ipn_die; |
| struct ip_pool_node *ipn_next, **ipn_pnext; |
| struct ip_pool_node *ipn_dnext, **ipn_pdnext; |
| struct ip_pool_s *ipn_owner; |
| } ip_pool_node_t; |
| |
| |
| typedef struct ip_pool_s { |
| struct ip_pool_s *ipo_next; |
| struct ip_pool_s **ipo_pnext; |
| ipf_rdx_head_t *ipo_head; |
| ip_pool_node_t *ipo_list; |
| ip_pool_node_t **ipo_tail; |
| ip_pool_node_t *ipo_nextaddr; |
| void *ipo_radix; |
| u_long ipo_hits; |
| int ipo_unit; |
| int ipo_flags; |
| int ipo_ref; |
| char ipo_name[FR_GROUPLEN]; |
| } ip_pool_t; |
| |
| #define IPOOL_DELETE 0x01 |
| #define IPOOL_ANON 0x02 |
| |
| |
| typedef struct ipf_pool_stat { |
| u_long ipls_pools; |
| u_long ipls_tables; |
| u_long ipls_nodes; |
| ip_pool_t *ipls_list[LOOKUP_POOL_SZ]; |
| } ipf_pool_stat_t; |
| |
| extern ipf_lookup_t ipf_pool_backend; |
| |
| #ifndef _KERNEL |
| extern void ipf_pool_dump __P((ipf_main_softc_t *, void *)); |
| #endif |
| |
| #endif /* __IP_POOL_H__ */ |