Initial import from FreeBSD RELENG_4:
[games.git] / sys / contrib / ipfilter / netinet / ip_frag.h
1 /*
2  * Copyright (C) 1993-2001 by Darren Reed.
3  *
4  * See the IPFILTER.LICENCE file for details on licencing.
5  *
6  * @(#)ip_frag.h        1.5 3/24/96
7  * $Id: ip_frag.h,v 2.4.2.7 2002/07/06 14:17:51 darrenr Exp $
8  * $FreeBSD: src/sys/contrib/ipfilter/netinet/ip_frag.h,v 1.12.2.4 2002/08/31 16:24:52 darrenr Exp $
9  */
10
11 #ifndef __IP_FRAG_H__
12 #define __IP_FRAG_H__
13
14 #define IPFT_SIZE       257
15
16 typedef struct  ipfr    {
17         struct  ipfr    *ipfr_next, *ipfr_prev;
18         void    *ipfr_data;
19         struct  in_addr ipfr_src;
20         struct  in_addr ipfr_dst;
21         void    *ipfr_ifp;
22         u_32_t  ipfr_optmsk;
23         u_short ipfr_secmsk;
24         u_short ipfr_auth;
25         u_short ipfr_id;
26         u_char  ipfr_p;
27         u_char  ipfr_tos;
28         u_short ipfr_off;
29         u_char  ipfr_ttl;
30         u_char  ipfr_seen0;
31         frentry_t *ipfr_rule;
32 } ipfr_t;
33
34
35 typedef struct  ipfrstat {
36         u_long  ifs_exists;     /* add & already exists */
37         u_long  ifs_nomem;
38         u_long  ifs_new;
39         u_long  ifs_hits;
40         u_long  ifs_expire;
41         u_long  ifs_inuse;
42         struct  ipfr    **ifs_table;
43         struct  ipfr    **ifs_nattab;
44 } ipfrstat_t;
45
46 #define IPFR_CMPSZ      (offsetof(ipfr_t, ipfr_off) - \
47                          offsetof(ipfr_t, ipfr_src))
48
49 extern  int     fr_ipfrttl;
50 extern  int     fr_frag_lock;
51 extern  ipfrstat_t      *ipfr_fragstats __P((void));
52 extern  int     ipfr_newfrag __P((ip_t *, fr_info_t *));
53 extern  int     ipfr_nat_newfrag __P((ip_t *, fr_info_t *, struct nat *));
54 extern  nat_t   *ipfr_nat_knownfrag __P((ip_t *, fr_info_t *));
55 extern  frentry_t *ipfr_knownfrag __P((ip_t *, fr_info_t *));
56 extern  void    ipfr_forget __P((void *));
57 extern  void    ipfr_unload __P((void));
58 extern  void    ipfr_fragexpire __P((void));
59
60 #ifdef _KERNEL
61 # if     (BSD >= 199306) || SOLARIS || defined(__sgi)
62 #  if defined(SOLARIS2) && (SOLARIS2 < 7)
63 extern  void    ipfr_slowtimer __P((void));
64 #  else
65 extern  void    ipfr_slowtimer __P((void *));
66 #  endif
67 # else
68 extern  int     ipfr_slowtimer __P((void));
69 # endif /* (BSD >= 199306) || SOLARIS */
70 #else
71 extern  void    ipfr_slowtimer __P((void));
72 #endif /* _KERNEL */
73
74 #endif  /* __IP_FIL_H__ */