70 lines
1.5 KiB
C
70 lines
1.5 KiB
C
/* $NetBSD: ip_pool.h,v 1.2 2012/07/22 14:27:35 darrenr Exp $ */
|
|
|
|
/*
|
|
* Copyright (C) 2012 by Darren Reed.
|
|
*
|
|
* See the IPFILTER.LICENCE file for details on licencing.
|
|
*
|
|
* Id: ip_pool.h,v 1.1.1.2 2012/07/22 13:44:22 darrenr Exp $
|
|
*/
|
|
|
|
#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__ */
|