Blame include/ct.h

Packit c5a612
#ifndef NFTABLES_CT_H
Packit c5a612
#define NFTABLES_CT_H
Packit c5a612
Packit c5a612
/**
Packit c5a612
 * struct ct_template
Packit c5a612
 *
Packit c5a612
 * @token:	parser token for the expression
Packit c5a612
 * @dtype:	data type of the expression
Packit c5a612
 * @len:	length of the expression
Packit c5a612
 * @byteorder:	byteorder
Packit c5a612
 */
Packit c5a612
struct ct_template {
Packit c5a612
	const char		*token;
Packit c5a612
	const struct datatype	*dtype;
Packit c5a612
	enum byteorder		byteorder;
Packit c5a612
	unsigned int		len;
Packit c5a612
};
Packit c5a612
Packit c5a612
extern const struct ct_template ct_templates[__NFT_CT_MAX];
Packit c5a612
Packit c5a612
#define CT_TEMPLATE(__token, __dtype, __byteorder, __len) {	\
Packit c5a612
	.token		= (__token),				\
Packit c5a612
	.dtype		= (__dtype),				\
Packit c5a612
	.byteorder	= (__byteorder),			\
Packit c5a612
	.len		= (__len),				\
Packit c5a612
}
Packit c5a612
Packit c5a612
extern struct expr *ct_expr_alloc(const struct location *loc,
Packit c5a612
				  enum nft_ct_keys key, int8_t direction);
Packit c5a612
extern void ct_expr_update_type(struct proto_ctx *ctx, struct expr *expr);
Packit c5a612
Packit c5a612
extern struct stmt *notrack_stmt_alloc(const struct location *loc);
Packit c5a612
extern struct stmt *flow_offload_stmt_alloc(const struct location *loc,
Packit c5a612
					    const char *table_name);
Packit c5a612
extern const char *ct_dir2str(int dir);
Packit c5a612
extern const char *ct_label2str(const struct symbol_table *tbl,
Packit c5a612
				unsigned long value);
Packit c5a612
Packit c5a612
extern const struct datatype ct_dir_type;
Packit c5a612
extern const struct datatype ct_state_type;
Packit c5a612
extern const struct datatype ct_status_type;
Packit c5a612
Packit c5a612
#endif /* NFTABLES_CT_H */