#ifndef __NF_CONNTRACK_SIP_H__
#define __NF_CONNTRACK_SIP_H__
#include <linux/skbuff.h>
#include <linux/types.h>
#include <net/netfilter/nf_conntrack_expect.h>
#define SIP_PORT …
#define SIP_TIMEOUT …
struct nf_ct_sip_master { … };
enum sip_expectation_classes { … };
#define SIP_EXPECT_MAX …
struct sdp_media_type { … };
#define SDP_MEDIA_TYPE(__name, __class) …
struct sip_handler { … };
#define SIP_HANDLER(__method, __request, __response) …
struct sip_header { … };
#define __SIP_HDR(__name, __cname, __search, __match) …
#define SIP_HDR(__name, __cname, __search, __match) …
#define SDP_HDR(__name, __search, __match) …
enum sip_header_types { … };
enum sdp_header_types { … };
struct nf_nat_sip_hooks { … };
extern const struct nf_nat_sip_hooks __rcu *nf_nat_sip_hooks;
int ct_sip_parse_request(const struct nf_conn *ct, const char *dptr,
unsigned int datalen, unsigned int *matchoff,
unsigned int *matchlen, union nf_inet_addr *addr,
__be16 *port);
int ct_sip_get_header(const struct nf_conn *ct, const char *dptr,
unsigned int dataoff, unsigned int datalen,
enum sip_header_types type, unsigned int *matchoff,
unsigned int *matchlen);
int ct_sip_parse_header_uri(const struct nf_conn *ct, const char *dptr,
unsigned int *dataoff, unsigned int datalen,
enum sip_header_types type, int *in_header,
unsigned int *matchoff, unsigned int *matchlen,
union nf_inet_addr *addr, __be16 *port);
int ct_sip_parse_address_param(const struct nf_conn *ct, const char *dptr,
unsigned int dataoff, unsigned int datalen,
const char *name, unsigned int *matchoff,
unsigned int *matchlen, union nf_inet_addr *addr,
bool delim);
int ct_sip_parse_numerical_param(const struct nf_conn *ct, const char *dptr,
unsigned int off, unsigned int datalen,
const char *name, unsigned int *matchoff,
unsigned int *matchen, unsigned int *val);
int ct_sip_get_sdp_header(const struct nf_conn *ct, const char *dptr,
unsigned int dataoff, unsigned int datalen,
enum sdp_header_types type,
enum sdp_header_types term,
unsigned int *matchoff, unsigned int *matchlen);
#endif