Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
net
netfilter
nf_conntrack_core.h
Go to the documentation of this file.
1
/*
2
* This header is used to share core functionality between the
3
* standalone connection tracking module, and the compatibility layer's use
4
* of connection tracking.
5
*
6
* 16 Dec 2003: Yasuyuki Kozakai @USAGI <
[email protected]
>
7
* - generalize L3 protocol dependent part.
8
*
9
* Derived from include/linux/netfiter_ipv4/ip_conntrack_core.h
10
*/
11
12
#ifndef _NF_CONNTRACK_CORE_H
13
#define _NF_CONNTRACK_CORE_H
14
15
#include <linux/netfilter.h>
16
#include <
net/netfilter/nf_conntrack_l3proto.h
>
17
#include <
net/netfilter/nf_conntrack_l4proto.h
>
18
#include <
net/netfilter/nf_conntrack_ecache.h
>
19
20
/* This header is used to share core functionality between the
21
standalone connection tracking module, and the compatibility layer's use
22
of connection tracking. */
23
extern
unsigned
int
nf_conntrack_in
(
struct
net
*
net
,
24
u_int8_t
pf
,
25
unsigned
int
hooknum
,
26
struct
sk_buff
*
skb
);
27
28
extern
int
nf_conntrack_init
(
struct
net
*
net
);
29
extern
void
nf_conntrack_cleanup
(
struct
net
*
net
);
30
31
extern
int
nf_conntrack_proto_init
(
struct
net
*
net
);
32
extern
void
nf_conntrack_proto_fini
(
struct
net
*
net
);
33
34
extern
bool
35
nf_ct_get_tuple
(
const
struct
sk_buff
*
skb
,
36
unsigned
int
nhoff,
37
unsigned
int
dataoff,
38
u_int16_t
l3num,
39
u_int8_t
protonum,
40
struct
nf_conntrack_tuple
*tuple,
41
const
struct
nf_conntrack_l3proto
*l3proto,
42
const
struct
nf_conntrack_l4proto
*l4proto);
43
44
extern
bool
45
nf_ct_invert_tuple
(
struct
nf_conntrack_tuple
*inverse,
46
const
struct
nf_conntrack_tuple
*orig,
47
const
struct
nf_conntrack_l3proto
*l3proto,
48
const
struct
nf_conntrack_l4proto
*l4proto);
49
50
/* Find a connection corresponding to a tuple. */
51
extern
struct
nf_conntrack_tuple_hash
*
52
nf_conntrack_find_get
(
struct
net
*
net
,
u16
zone
,
53
const
struct
nf_conntrack_tuple
*
tuple
);
54
55
extern
int
__nf_conntrack_confirm
(
struct
sk_buff
*
skb
);
56
57
/* Confirm a connection: returns NF_DROP if packet must be dropped. */
58
static
inline
int
nf_conntrack_confirm(
struct
sk_buff
*
skb
)
59
{
60
struct
nf_conn
*
ct
= (
struct
nf_conn
*)skb->nfct;
61
int
ret
=
NF_ACCEPT
;
62
63
if
(ct && !nf_ct_is_untracked(ct)) {
64
if
(!nf_ct_is_confirmed(ct))
65
ret
=
__nf_conntrack_confirm
(skb);
66
if
(
likely
(
ret
==
NF_ACCEPT
))
67
nf_ct_deliver_cached_events
(ct);
68
}
69
return
ret
;
70
}
71
72
int
73
print_tuple
(
struct
seq_file
*
s
,
const
struct
nf_conntrack_tuple
*tuple,
74
const
struct
nf_conntrack_l3proto
*l3proto,
75
const
struct
nf_conntrack_l4proto
*
proto
);
76
77
extern
spinlock_t
nf_conntrack_lock
;
78
79
#endif
/* _NF_CONNTRACK_CORE_H */
Generated on Thu Jan 10 2013 14:53:11 for Linux Kernel by
1.8.2