18a44513648da0c5f5551f96b329cf56b66f5b303pkanwar#ifndef _NFCT_PROTOTYPES_H_
28a44513648da0c5f5551f96b329cf56b66f5b303pkanwar#define _NFCT_PROTOTYPES_H_
38a44513648da0c5f5551f96b329cf56b66f5b303pkanwar
48a44513648da0c5f5551f96b329cf56b66f5b303pkanwar/*
58a44513648da0c5f5551f96b329cf56b66f5b303pkanwar * conntrack internal prototypes
68a44513648da0c5f5551f96b329cf56b66f5b303pkanwar */
78a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __build_conntrack(struct nfnl_subsys_handle *ssh, struct nfnlhdr *req, size_t size, uint16_t type, uint16_t flags, const struct nf_conntrack *ct);
88a44513648da0c5f5551f96b329cf56b66f5b303pkanwarvoid __build_tuple(struct nfnlhdr *req, size_t size, const struct __nfct_tuple *t, const int type);
98a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __parse_message_type(const struct nlmsghdr *nlh);
108a44513648da0c5f5551f96b329cf56b66f5b303pkanwarvoid __parse_conntrack(const struct nlmsghdr *nlh, struct nfattr *cda[], struct nf_conntrack *ct);
118a44513648da0c5f5551f96b329cf56b66f5b303pkanwarvoid __parse_tuple(const struct nfattr *attr, struct __nfct_tuple *tuple, int dir, uint32_t *set);
128a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __snprintf_conntrack(char *buf, unsigned int len, const struct nf_conntrack *ct, unsigned int type, unsigned int msg_output, unsigned int flags, struct nfct_labelmap *);
138a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __snprintf_address(char *buf, unsigned int len, const struct __nfct_tuple *tuple, const char *src_tag, const char *dst_tag);
148a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __snprintf_protocol(char *buf, unsigned int len, const struct nf_conntrack *ct);
158a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __snprintf_proto(char *buf, unsigned int len, const struct __nfct_tuple *tuple);
168a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __snprintf_conntrack_default(char *buf, unsigned int len, const struct nf_conntrack *ct, const unsigned int msg_type, const unsigned int flags, struct nfct_labelmap *);
178a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __snprintf_conntrack_xml(char *buf, unsigned int len, const struct nf_conntrack *ct, const unsigned int msg_type, const unsigned int flags, struct nfct_labelmap *);
188a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __snprintf_connlabels(char *buf, unsigned int len, struct nfct_labelmap *map, const struct nfct_bitmask *b, const char *fmt);
198a44513648da0c5f5551f96b329cf56b66f5b303pkanwar
208a44513648da0c5f5551f96b329cf56b66f5b303pkanwarenum __nfct_addr {
218a44513648da0c5f5551f96b329cf56b66f5b303pkanwar	__ADDR_SRC = 0,
228a44513648da0c5f5551f96b329cf56b66f5b303pkanwar	__ADDR_DST,
238a44513648da0c5f5551f96b329cf56b66f5b303pkanwar};
248a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __snprintf_addr_xml(char *buf, unsigned int len, const struct __nfct_tuple *tuple, enum __nfct_addr type);
258a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __snprintf_proto_xml(char *buf, unsigned int len, const struct __nfct_tuple *tuple, enum __nfct_addr type);
268a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __snprintf_localtime_xml(char *buf, unsigned int len, const struct tm *tm);
278a44513648da0c5f5551f96b329cf56b66f5b303pkanwar
288a44513648da0c5f5551f96b329cf56b66f5b303pkanwarconst char *__proto2str(uint8_t protonum);
298a44513648da0c5f5551f96b329cf56b66f5b303pkanwarconst char *__l3proto2str(uint8_t protonum);
308a44513648da0c5f5551f96b329cf56b66f5b303pkanwar
318a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __callback(struct nlmsghdr *nlh, struct nfattr *nfa[], void *data);
328a44513648da0c5f5551f96b329cf56b66f5b303pkanwar
338a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __setobjopt(struct nf_conntrack *ct, unsigned int option);
348a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __getobjopt(const struct nf_conntrack *ct, unsigned int option);
358a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __compare(const struct nf_conntrack *ct1, const struct nf_conntrack *ct2, unsigned int flags);
368a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __cmp_orig(const struct nf_conntrack *ct1, const struct nf_conntrack *ct2, unsigned int flags);
378a44513648da0c5f5551f96b329cf56b66f5b303pkanwarvoid __copy_fast(struct nf_conntrack *ct1, const struct nf_conntrack *ct);
388a44513648da0c5f5551f96b329cf56b66f5b303pkanwar
398a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __setup_netlink_socket_filter(int fd, struct nfct_filter *filter);
408a44513648da0c5f5551f96b329cf56b66f5b303pkanwar
418a44513648da0c5f5551f96b329cf56b66f5b303pkanwarvoid __build_filter_dump(struct nfnlhdr *req, size_t size, const struct nfct_filter_dump *filter_dump);
428a44513648da0c5f5551f96b329cf56b66f5b303pkanwar
438a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint nfct_build_tuple(struct nlmsghdr *nlh, const struct __nfct_tuple *t, int type);
448a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint nfct_parse_tuple(const struct nlattr *attr, struct __nfct_tuple *tuple, int dir, uint32_t *set);
458a44513648da0c5f5551f96b329cf56b66f5b303pkanwar
468a44513648da0c5f5551f96b329cf56b66f5b303pkanwar/*
478a44513648da0c5f5551f96b329cf56b66f5b303pkanwar * expectation internal prototypes
488a44513648da0c5f5551f96b329cf56b66f5b303pkanwar */
498a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __build_expect(struct nfnl_subsys_handle *ssh, struct nfnlhdr *req, size_t size, uint16_t type, uint16_t flags, const struct nf_expect *exp);
508a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __parse_expect_message_type(const struct nlmsghdr *nlh);
518a44513648da0c5f5551f96b329cf56b66f5b303pkanwarvoid __parse_expect(const struct nlmsghdr *nlh, struct nfattr *cda[], struct nf_expect *exp);
528a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __expect_callback(struct nlmsghdr *nlh, struct nfattr *nfa[], void *data);
538a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __cmp_expect(const struct nf_expect *exp1, const struct nf_expect *exp2, unsigned int flags);
548a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __snprintf_expect(char *buf, unsigned int len, const struct nf_expect *exp, unsigned int type, unsigned int msg_output, unsigned int flags);
558a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __snprintf_expect_default(char *buf, unsigned int len, const struct nf_expect *exp, unsigned int msg_type, unsigned int flags);
568a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __snprintf_expect_xml(char *buf, unsigned int len, const struct nf_expect *exp, unsigned int msg_type, unsigned int flags);
578a44513648da0c5f5551f96b329cf56b66f5b303pkanwar
588a44513648da0c5f5551f96b329cf56b66f5b303pkanwar/*
598a44513648da0c5f5551f96b329cf56b66f5b303pkanwar * connlabel internal prototypes
608a44513648da0c5f5551f96b329cf56b66f5b303pkanwar */
618a44513648da0c5f5551f96b329cf56b66f5b303pkanwarconst char *__labels_get_path(void);
628a44513648da0c5f5551f96b329cf56b66f5b303pkanwarstruct nfct_labelmap *__labelmap_new(const char *);
638a44513648da0c5f5551f96b329cf56b66f5b303pkanwarvoid __labelmap_destroy(struct nfct_labelmap *);
648a44513648da0c5f5551f96b329cf56b66f5b303pkanwar
658a44513648da0c5f5551f96b329cf56b66f5b303pkanwarint __labelmap_get_bit(struct nfct_labelmap *map, const char *name);
668a44513648da0c5f5551f96b329cf56b66f5b303pkanwarconst char *__labelmap_get_name(struct nfct_labelmap *map, unsigned int bit);
678a44513648da0c5f5551f96b329cf56b66f5b303pkanwar
688a44513648da0c5f5551f96b329cf56b66f5b303pkanwar#endif
69