MOXA linux-2.6.x / linux-2.6.19-uc1 from UC-7110-LX-BOOTLOADER-1.9_VERSION-4.2.tgz
[linux-2.6.19-moxart.git] / include / linux / netfilter_ipv4 / ip_conntrack_h323.h
blobfada974aea418867aa41249a41661b3352c4bd72
1 #ifndef _IP_CONNTRACK_H323_H
2 #define _IP_CONNTRACK_H323_H
4 #ifdef __KERNEL__
6 #include <linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h>
8 #define RAS_PORT 1719
9 #define Q931_PORT 1720
10 #define H323_RTP_CHANNEL_MAX 4 /* Audio, video, FAX and other */
12 /* This structure exists only once per master */
13 struct ip_ct_h323_master {
15 /* Original and NATed Q.931 or H.245 signal ports */
16 u_int16_t sig_port[IP_CT_DIR_MAX];
18 /* Original and NATed RTP ports */
19 u_int16_t rtp_port[H323_RTP_CHANNEL_MAX][IP_CT_DIR_MAX];
21 union {
22 /* RAS connection timeout */
23 u_int32_t timeout;
25 /* Next TPKT length (for separate TPKT header and data) */
26 u_int16_t tpkt_len[IP_CT_DIR_MAX];
27 #if 0 // mask by Victor Yu. 03-03-2007
29 #else
30 } victor_union;
31 #endif
34 struct ip_conntrack_expect;
36 extern int get_h225_addr(unsigned char *data, TransportAddress * addr,
37 __be32 * ip, u_int16_t * port);
38 extern void ip_conntrack_h245_expect(struct ip_conntrack *new,
39 struct ip_conntrack_expect *this);
40 extern void ip_conntrack_q931_expect(struct ip_conntrack *new,
41 struct ip_conntrack_expect *this);
42 extern int (*set_h245_addr_hook) (struct sk_buff ** pskb,
43 unsigned char **data, int dataoff,
44 H245_TransportAddress * addr,
45 __be32 ip, u_int16_t port);
46 extern int (*set_h225_addr_hook) (struct sk_buff ** pskb,
47 unsigned char **data, int dataoff,
48 TransportAddress * addr,
49 __be32 ip, u_int16_t port);
50 extern int (*set_sig_addr_hook) (struct sk_buff ** pskb,
51 struct ip_conntrack * ct,
52 enum ip_conntrack_info ctinfo,
53 unsigned char **data,
54 TransportAddress * addr, int count);
55 extern int (*set_ras_addr_hook) (struct sk_buff ** pskb,
56 struct ip_conntrack * ct,
57 enum ip_conntrack_info ctinfo,
58 unsigned char **data,
59 TransportAddress * addr, int count);
60 extern int (*nat_rtp_rtcp_hook) (struct sk_buff ** pskb,
61 struct ip_conntrack * ct,
62 enum ip_conntrack_info ctinfo,
63 unsigned char **data, int dataoff,
64 H245_TransportAddress * addr,
65 u_int16_t port, u_int16_t rtp_port,
66 struct ip_conntrack_expect * rtp_exp,
67 struct ip_conntrack_expect * rtcp_exp);
68 extern int (*nat_t120_hook) (struct sk_buff ** pskb, struct ip_conntrack * ct,
69 enum ip_conntrack_info ctinfo,
70 unsigned char **data, int dataoff,
71 H245_TransportAddress * addr, u_int16_t port,
72 struct ip_conntrack_expect * exp);
73 extern int (*nat_h245_hook) (struct sk_buff ** pskb, struct ip_conntrack * ct,
74 enum ip_conntrack_info ctinfo,
75 unsigned char **data, int dataoff,
76 TransportAddress * addr, u_int16_t port,
77 struct ip_conntrack_expect * exp);
78 extern int (*nat_callforwarding_hook) (struct sk_buff ** pskb,
79 struct ip_conntrack * ct,
80 enum ip_conntrack_info ctinfo,
81 unsigned char **data, int dataoff,
82 TransportAddress * addr,
83 u_int16_t port,
84 struct ip_conntrack_expect * exp);
85 extern int (*nat_q931_hook) (struct sk_buff ** pskb, struct ip_conntrack * ct,
86 enum ip_conntrack_info ctinfo,
87 unsigned char **data, TransportAddress * addr,
88 int idx, u_int16_t port,
89 struct ip_conntrack_expect * exp);
91 #endif
93 #endif