2 * Copyright (C) 1993-2001 by Darren Reed.
4 * See the IPFILTER.LICENCE file for details on licencing.
6 * @(#)ip_frag.h 1.5 3/24/96
7 * $Id: ip_frag.h,v 2.23.2.2 2005/06/10 18:02:37 darrenr Exp $
9 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
10 * Use is subject to license terms.
19 struct ipfr
*ipfr_hnext
, **ipfr_hprev
;
20 struct ipfr
*ipfr_next
, **ipfr_prev
;
39 typedef struct ipfrstat
{
40 u_long ifs_exists
; /* add & already exists */
48 struct ipfr
**ifs_table
;
49 struct ipfr
**ifs_nattab
;
52 #define IPFR_CMPSZ (offsetof(ipfr_t, ipfr_tos) - \
53 offsetof(ipfr_t, ipfr_ifp))
55 extern int fr_fraginit
__P((ipf_stack_t
*));
56 extern void fr_fragunload
__P((ipf_stack_t
*));
57 extern ipfrstat_t
*fr_fragstats
__P((ipf_stack_t
*));
59 extern int fr_newfrag
__P((fr_info_t
*, u_32_t
));
60 extern frentry_t
*fr_knownfrag
__P((fr_info_t
*, u_32_t
*));
62 extern int fr_nat_newfrag
__P((fr_info_t
*, u_32_t
, struct nat
*));
63 extern nat_t
*fr_nat_knownfrag
__P((fr_info_t
*));
65 extern int fr_ipid_newfrag
__P((fr_info_t
*, u_32_t
));
66 extern u_32_t fr_ipid_knownfrag
__P((fr_info_t
*));
67 extern void fr_fragderef
__P((ipfr_t
**, ipfrwlock_t
*, ipf_stack_t
*));
69 extern void fr_forget
__P((void *, ipf_stack_t
*));
70 extern void fr_forgetnat
__P((void *, ipf_stack_t
*));
71 extern void fr_fragclear
__P((ipf_stack_t
*));
72 extern void fr_fragexpire
__P((ipf_stack_t
*));
73 extern int fr_nextfrag
__P((ipftoken_t
*, ipfgeniter_t
*, ipfr_t
**, \
74 ipfr_t
***, ipfrwlock_t
*, ipf_stack_t
*));
76 #if defined(_KERNEL) && ((BSD >= 199306) || defined(SOLARIS) || \
77 defined(__sgi) || defined(__osf__) || \
78 (defined(__sgi) && (IRIX >= 60500)))
79 # if defined(SOLARIS2) && (SOLARIS2 < 7)
80 extern void fr_slowtimer
__P((void *));
82 extern void fr_slowtimer
__P((void *));
85 # if defined(linux) && defined(_KERNEL)
86 extern void fr_slowtimer
__P((long));
88 extern int fr_slowtimer
__P((void *));
92 #endif /* __IP_FRAG_H__ */