[NETFILTER]: x_tables: add RATEEST target
[pandora-kernel.git] / include / linux / netfilter / nf_conntrack_h323.h
1 #ifndef _NF_CONNTRACK_H323_H
2 #define _NF_CONNTRACK_H323_H
3
4 #ifdef __KERNEL__
5
6 #include <linux/netfilter/nf_conntrack_h323_asn1.h>
7
8 #define RAS_PORT 1719
9 #define Q931_PORT 1720
10 #define H323_RTP_CHANNEL_MAX 4  /* Audio, video, FAX and other */
11
12 /* This structure exists only once per master */
13 struct nf_ct_h323_master {
14
15         /* Original and NATed Q.931 or H.245 signal ports */
16         __be16 sig_port[IP_CT_DIR_MAX];
17
18         /* Original and NATed RTP ports */
19         __be16 rtp_port[H323_RTP_CHANNEL_MAX][IP_CT_DIR_MAX];
20
21         union {
22                 /* RAS connection timeout */
23                 u_int32_t timeout;
24
25                 /* Next TPKT length (for separate TPKT header and data) */
26                 u_int16_t tpkt_len[IP_CT_DIR_MAX];
27         };
28 };
29
30 struct nf_conn;
31
32 extern int get_h225_addr(struct nf_conn *ct, unsigned char *data,
33                          TransportAddress *taddr,
34                          union nf_conntrack_address *addr, __be16 *port);
35 extern void nf_conntrack_h245_expect(struct nf_conn *new,
36                                      struct nf_conntrack_expect *this);
37 extern void nf_conntrack_q931_expect(struct nf_conn *new,
38                                      struct nf_conntrack_expect *this);
39 extern int (*set_h245_addr_hook) (struct sk_buff *skb,
40                                   unsigned char **data, int dataoff,
41                                   H245_TransportAddress *taddr,
42                                   union nf_conntrack_address *addr,
43                                   __be16 port);
44 extern int (*set_h225_addr_hook) (struct sk_buff *skb,
45                                   unsigned char **data, int dataoff,
46                                   TransportAddress *taddr,
47                                   union nf_conntrack_address *addr,
48                                   __be16 port);
49 extern int (*set_sig_addr_hook) (struct sk_buff *skb,
50                                  struct nf_conn *ct,
51                                  enum ip_conntrack_info ctinfo,
52                                  unsigned char **data,
53                                  TransportAddress *taddr, int count);
54 extern int (*set_ras_addr_hook) (struct sk_buff *skb,
55                                  struct nf_conn *ct,
56                                  enum ip_conntrack_info ctinfo,
57                                  unsigned char **data,
58                                  TransportAddress *taddr, int count);
59 extern int (*nat_rtp_rtcp_hook) (struct sk_buff *skb,
60                                  struct nf_conn *ct,
61                                  enum ip_conntrack_info ctinfo,
62                                  unsigned char **data, int dataoff,
63                                  H245_TransportAddress *taddr,
64                                  __be16 port, __be16 rtp_port,
65                                  struct nf_conntrack_expect *rtp_exp,
66                                  struct nf_conntrack_expect *rtcp_exp);
67 extern int (*nat_t120_hook) (struct sk_buff *skb, struct nf_conn *ct,
68                              enum ip_conntrack_info ctinfo,
69                              unsigned char **data, int dataoff,
70                              H245_TransportAddress *taddr, __be16 port,
71                              struct nf_conntrack_expect *exp);
72 extern int (*nat_h245_hook) (struct sk_buff *skb, struct nf_conn *ct,
73                              enum ip_conntrack_info ctinfo,
74                              unsigned char **data, int dataoff,
75                              TransportAddress *taddr, __be16 port,
76                              struct nf_conntrack_expect *exp);
77 extern int (*nat_callforwarding_hook) (struct sk_buff *skb,
78                                        struct nf_conn *ct,
79                                        enum ip_conntrack_info ctinfo,
80                                        unsigned char **data, int dataoff,
81                                        TransportAddress *taddr,
82                                        __be16 port,
83                                        struct nf_conntrack_expect *exp);
84 extern int (*nat_q931_hook) (struct sk_buff *skb, struct nf_conn *ct,
85                              enum ip_conntrack_info ctinfo,
86                              unsigned char **data, TransportAddress *taddr,
87                              int idx, __be16 port,
88                              struct nf_conntrack_expect *exp);
89
90 #endif
91
92 #endif