include/linux/netfilter/nf_conntrack_h323.h

Source file repositories/reference/linux-study-clean/include/linux/netfilter/nf_conntrack_h323.h

File Facts

System
Linux kernel
Corpus path
include/linux/netfilter/nf_conntrack_h323.h
Extension
.h
Size
3214 bytes
Lines
97
Domain
Core OS
Bucket
Core Kernel Interface
Inferred role
Core OS: implementation source
Status
source implementation candidate

Why This File Exists

Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.

Dependency Surface

Detected Declarations

Annotated Snippet

struct nf_ct_h323_master {

	/* Original and NATed Q.931 or H.245 signal ports */
	__be16 sig_port[IP_CT_DIR_MAX];

	/* Original and NATed RTP ports */
	__be16 rtp_port[H323_RTP_CHANNEL_MAX][IP_CT_DIR_MAX];

	union {
		/* RAS connection timeout */
		u_int32_t timeout;

		/* Next TPKT length (for separate TPKT header and data) */
		u_int16_t tpkt_len[IP_CT_DIR_MAX];
	};
};

int get_h225_addr(struct nf_conn *ct, unsigned char *data,
		  TransportAddress *taddr, union nf_inet_addr *addr,
		  __be16 *port);

struct nfct_h323_nat_hooks {
	int (*set_h245_addr)(struct sk_buff *skb, unsigned int protoff,
			     unsigned char **data, int dataoff,
			     H245_TransportAddress *taddr,
			     union nf_inet_addr *addr, __be16 port);
	int (*set_h225_addr)(struct sk_buff *skb, unsigned int protoff,
			     unsigned char **data, int dataoff,
			     TransportAddress *taddr,
			     union nf_inet_addr *addr, __be16 port);
	int (*set_sig_addr)(struct sk_buff *skb,
			    struct nf_conn *ct,
			    enum ip_conntrack_info ctinfo,
			    unsigned int protoff, unsigned char **data,
			    TransportAddress *taddr, int count);
	int (*set_ras_addr)(struct sk_buff *skb,
			    struct nf_conn *ct,
			    enum ip_conntrack_info ctinfo,
			    unsigned int protoff, unsigned char **data,
			    TransportAddress *taddr, int count);
	int (*nat_rtp_rtcp)(struct sk_buff *skb,
			    struct nf_conn *ct,
			    enum ip_conntrack_info ctinfo,
			    unsigned int protoff,
			    unsigned char **data, int dataoff,
			    H245_TransportAddress *taddr,
			    __be16 port, __be16 rtp_port,
			    struct nf_conntrack_expect *rtp_exp,
			    struct nf_conntrack_expect *rtcp_exp);
	int (*nat_t120)(struct sk_buff *skb,
			struct nf_conn *ct,
			enum ip_conntrack_info ctinfo,
			unsigned int protoff,
			unsigned char **data, int dataoff,
			H245_TransportAddress *taddr, __be16 port,
			struct nf_conntrack_expect *exp);
	int (*nat_h245)(struct sk_buff *skb,
			struct nf_conn *ct,
			enum ip_conntrack_info ctinfo,
			unsigned int protoff,
			unsigned char **data, int dataoff,
			TransportAddress *taddr, __be16 port,
			struct nf_conntrack_expect *exp);
	int (*nat_callforwarding)(struct sk_buff *skb,
				  struct nf_conn *ct,
				  enum ip_conntrack_info ctinfo,
				  unsigned int protoff,
				  unsigned char **data, int dataoff,
				  TransportAddress *taddr, __be16 port,
				  struct nf_conntrack_expect *exp);
	int (*nat_q931)(struct sk_buff *skb,
			struct nf_conn *ct,
			enum ip_conntrack_info ctinfo,
			unsigned int protoff,
			unsigned char **data, TransportAddress *taddr, int idx,
			__be16 port, struct nf_conntrack_expect *exp);
};
extern const struct nfct_h323_nat_hooks __rcu *nfct_h323_nat_hook;

#endif

Annotation

Implementation Notes