blob: 28f18df365252e893221ec5c075460fbc5d578d3 [file] [log] [blame]
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -08001#ifndef _NF_CONNTRACK_FTP_H
2#define _NF_CONNTRACK_FTP_H
3/* FTP tracking. */
4
5/* This enum is exposed to userspace */
Eric Dumazetd94d9fe2009-11-04 09:50:58 -08006enum nf_ct_ftp_type {
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -08007 /* PORT command from client */
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -08008 NF_CT_FTP_PORT,
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -08009 /* PASV response from server */
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -080010 NF_CT_FTP_PASV,
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080011 /* EPRT command from client */
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -080012 NF_CT_FTP_EPRT,
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080013 /* EPSV response from server */
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -080014 NF_CT_FTP_EPSV,
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080015};
16
17#ifdef __KERNEL__
18
19#define FTP_PORT 21
20
21#define NUM_SEQ_TO_REMEMBER 2
22/* This structure exists only once per master */
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -080023struct nf_ct_ftp_master {
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080024 /* Valid seq positions for cmd matching after newline */
25 u_int32_t seq_aft_nl[IP_CT_DIR_MAX][NUM_SEQ_TO_REMEMBER];
26 /* 0 means seq_match_aft_nl not set */
27 int seq_aft_nl_num[IP_CT_DIR_MAX];
28};
29
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -080030struct nf_conntrack_expect;
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080031
32/* For NAT to hook in when we find a packet which describes what other
33 * connection we should expect. */
Herbert Xu3db05fe2007-10-15 00:53:15 -070034extern unsigned int (*nf_nat_ftp_hook)(struct sk_buff *skb,
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080035 enum ip_conntrack_info ctinfo,
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -080036 enum nf_ct_ftp_type type,
Patrick McHardy051966c2012-08-26 19:14:04 +020037 unsigned int protoff,
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080038 unsigned int matchoff,
39 unsigned int matchlen,
Patrick McHardy25b86e02007-05-24 16:41:50 -070040 struct nf_conntrack_expect *exp);
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080041#endif /* __KERNEL__ */
42
43#endif /* _NF_CONNTRACK_FTP_H */