linux/include/linux/netfilter/nf_conntrack_h323.h
<<
>>
Prefs
   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
  32int get_h225_addr(struct nf_conn *ct, unsigned char *data,
  33                  TransportAddress *taddr, union nf_inet_addr *addr,
  34                  __be16 *port);
  35void nf_conntrack_h245_expect(struct nf_conn *new,
  36                              struct nf_conntrack_expect *this);
  37void nf_conntrack_q931_expect(struct nf_conn *new,
  38                              struct nf_conntrack_expect *this);
  39extern 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,
  43                                  __be16 port);
  44extern 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,
  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 int protoff, 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 int protoff, 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 int protoff, unsigned char **data,
  63                                 int dataoff,
  64                                 H245_TransportAddress *taddr,
  65                                 __be16 port, __be16 rtp_port,
  66                                 struct nf_conntrack_expect *rtp_exp,
  67                                 struct nf_conntrack_expect *rtcp_exp);
  68extern int (*nat_t120_hook) (struct sk_buff *skb, struct nf_conn *ct,
  69                             enum ip_conntrack_info ctinfo,
  70                             unsigned int protoff,
  71                             unsigned char **data, int dataoff,
  72                             H245_TransportAddress *taddr, __be16 port,
  73                             struct nf_conntrack_expect *exp);
  74extern int (*nat_h245_hook) (struct sk_buff *skb, struct nf_conn *ct,
  75                             enum ip_conntrack_info ctinfo,
  76                             unsigned int protoff,
  77                             unsigned char **data, int dataoff,
  78                             TransportAddress *taddr, __be16 port,
  79                             struct nf_conntrack_expect *exp);
  80extern int (*nat_callforwarding_hook) (struct sk_buff *skb,
  81                                       struct nf_conn *ct,
  82                                       enum ip_conntrack_info ctinfo,
  83                                       unsigned int protoff,
  84                                       unsigned char **data, int dataoff,
  85                                       TransportAddress *taddr,
  86                                       __be16 port,
  87                                       struct nf_conntrack_expect *exp);
  88extern int (*nat_q931_hook) (struct sk_buff *skb, struct nf_conn *ct,
  89                             enum ip_conntrack_info ctinfo,
  90                             unsigned int protoff,
  91                             unsigned char **data, TransportAddress *taddr,
  92                             int idx, __be16 port,
  93                             struct nf_conntrack_expect *exp);
  94
  95#endif
  96
  97#endif
  98