1 #ifndef _IP_CONNTRACK_H323_H
2 #define _IP_CONNTRACK_H323_H
6 #include <linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h>
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
];
22 /* RAS connection 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
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
,
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
,
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
,
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
);