• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/include/linux/netfilter/
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 */
13struct 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
30struct nf_conn;
31
32extern int get_h225_addr(struct nf_conn *ct, unsigned char *data,
33			 TransportAddress *taddr,
34			 union nf_inet_addr *addr, __be16 *port);
35extern void nf_conntrack_h245_expect(struct nf_conn *new,
36				     struct nf_conntrack_expect *this);
37extern void nf_conntrack_q931_expect(struct nf_conn *new,
38				     struct nf_conntrack_expect *this);
39extern int (*set_h245_addr_hook) (struct sk_buff *skb,
40				  unsigned char **data, int dataoff,
41				  H245_TransportAddress *taddr,
42				  union nf_inet_addr *addr,
43				  __be16 port);
44extern int (*set_h225_addr_hook) (struct sk_buff *skb,
45				  unsigned char **data, int dataoff,
46				  TransportAddress *taddr,
47				  union nf_inet_addr *addr,
48				  __be16 port);
49extern 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);
54extern 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);
59extern 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);
67extern 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);
72extern 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);
77extern 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);
84extern 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
93