1 #ifndef _NF_CONNTRACK_H323_H
2 #define _NF_CONNTRACK_H323_H
6 #include <linux/netfilter/nf_conntrack_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 nf_ct_h323_master {
15 /* Original and NATed Q.931 or H.245 signal ports */
16 __be16 sig_port[IP_CT_DIR_MAX];
18 /* Original and NATed RTP ports */
19 __be16 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];
32 extern int get_h225_addr(struct nf_conn *ct, unsigned char *data,
33 TransportAddress *taddr,
34 union nf_inet_addr *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, unsigned int protoff,
40 unsigned char **data, int dataoff,
41 H245_TransportAddress *taddr,
42 union nf_inet_addr *addr,
44 extern int (*set_h225_addr_hook) (struct sk_buff *skb, unsigned int protoff,
45 unsigned char **data, int dataoff,
46 TransportAddress *taddr,
47 union nf_inet_addr *addr,
49 extern int (*set_sig_addr_hook) (struct sk_buff *skb,
51 enum ip_conntrack_info ctinfo,
52 unsigned int protoff, unsigned char **data,
53 TransportAddress *taddr, int count);
54 extern int (*set_ras_addr_hook) (struct sk_buff *skb,
56 enum ip_conntrack_info ctinfo,
57 unsigned int protoff, unsigned char **data,
58 TransportAddress *taddr, int count);
59 extern int (*nat_rtp_rtcp_hook) (struct sk_buff *skb,
61 enum ip_conntrack_info ctinfo,
62 unsigned int protoff, unsigned char **data,
64 H245_TransportAddress *taddr,
65 __be16 port, __be16 rtp_port,
66 struct nf_conntrack_expect *rtp_exp,
67 struct nf_conntrack_expect *rtcp_exp);
68 extern int (*nat_t120_hook) (struct sk_buff *skb, struct nf_conn *ct,
69 enum ip_conntrack_info ctinfo,
71 unsigned char **data, int dataoff,
72 H245_TransportAddress *taddr, __be16 port,
73 struct nf_conntrack_expect *exp);
74 extern int (*nat_h245_hook) (struct sk_buff *skb, struct nf_conn *ct,
75 enum ip_conntrack_info ctinfo,
77 unsigned char **data, int dataoff,
78 TransportAddress *taddr, __be16 port,
79 struct nf_conntrack_expect *exp);
80 extern int (*nat_callforwarding_hook) (struct sk_buff *skb,
82 enum ip_conntrack_info ctinfo,
84 unsigned char **data, int dataoff,
85 TransportAddress *taddr,
87 struct nf_conntrack_expect *exp);
88 extern int (*nat_q931_hook) (struct sk_buff *skb, struct nf_conn *ct,
89 enum ip_conntrack_info ctinfo,
91 unsigned char **data, TransportAddress *taddr,
93 struct nf_conntrack_expect *exp);