#define _CHAIN_H_
#include <stdint.h>
+#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
NFT_CHAIN_ATTR_TYPE,
};
+bool nft_chain_attr_is_set(struct nft_chain *c, uint16_t attr);
void nft_chain_attr_unset(struct nft_chain *c, uint16_t attr);
void nft_chain_attr_set(struct nft_chain *t, uint16_t attr, const void *data);
void nft_chain_attr_set_u32(struct nft_chain *t, uint16_t attr, uint32_t data);
struct nft_rule_expr *nft_rule_expr_alloc(const char *name);
void nft_rule_expr_free(struct nft_rule_expr *expr);
+bool nft_rule_expr_is_set(const struct nft_rule_expr *expr, uint16_t type);
void nft_rule_expr_set(struct nft_rule_expr *expr, uint16_t type, const void *data, size_t data_len);
void nft_rule_expr_set_u8(struct nft_rule_expr *expr, uint16_t type, uint8_t data);
void nft_rule_expr_set_u32(struct nft_rule_expr *expr, uint16_t type, uint32_t data);
#define _RULE_H_
#include <stdint.h>
+#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
};
void nft_rule_attr_unset(struct nft_rule *r, uint16_t attr);
+bool nft_rule_attr_is_set(struct nft_rule *r, uint16_t attr);
void nft_rule_attr_set(struct nft_rule *r, uint16_t attr, const void *data);
void nft_rule_attr_set_u32(struct nft_rule *r, uint16_t attr, uint32_t val);
void nft_rule_attr_set_u64(struct nft_rule *r, uint16_t attr, uint64_t val);
#ifndef _NFT_SET_H_
#define _NFT_SET_H_
+#include <stdint.h>
+#include <stdbool.h>
+
enum {
NFT_SET_ATTR_TABLE,
NFT_SET_ATTR_NAME,
struct nft_set *nft_set_alloc(void);
void nft_set_free(struct nft_set *s);
+bool nft_set_attr_is_set(struct nft_set *s, uint16_t attr);
void nft_set_attr_unset(struct nft_set *s, uint16_t attr);
void nft_set_attr_set(struct nft_set *s, uint16_t attr, const void *data);
void nft_set_attr_set_u32(struct nft_set *s, uint16_t attr, uint32_t val);
const char *nft_set_elem_attr_get_str(struct nft_set_elem *s, uint16_t attr);
uint32_t nft_set_elem_attr_get_u32(struct nft_set_elem *s, uint16_t attr);
+bool nft_set_elem_attr_is_set(struct nft_set_elem *s, uint16_t attr);
+
struct nlmsghdr *nft_set_elem_nlmsg_build_hdr(char *buf, uint16_t cmd, uint16_t family, uint16_t type, uint32_t seq);
void nft_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nft_set *s);
void nft_set_elem_nlmsg_build_payload(struct nlmsghdr *nlh, struct nft_set_elem *e);
#define _TABLE_H_
#include <stdint.h>
+#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
NFT_TABLE_ATTR_FLAGS,
};
+bool nft_table_attr_is_set(struct nft_table *t, uint16_t attr);
void nft_table_attr_unset(struct nft_table *t, uint16_t attr);
void nft_table_attr_set(struct nft_table *t, uint16_t attr, const void *data);
const void *nft_table_attr_get(struct nft_table *t, uint16_t attr);
}
EXPORT_SYMBOL(nft_chain_free);
+bool nft_chain_attr_is_set(struct nft_chain *c, uint16_t attr)
+{
+ return c->flags & (1 << attr);
+}
+EXPORT_SYMBOL(nft_chain_attr_is_set);
+
void nft_chain_attr_unset(struct nft_chain *c, uint16_t attr)
{
switch (attr) {
}
EXPORT_SYMBOL(nft_rule_expr_free);
+bool nft_rule_expr_is_set(const struct nft_rule_expr *expr, uint16_t type)
+{
+ return expr->flags & (1 << type);
+}
+EXPORT_SYMBOL(nft_rule_expr_is_set);
+
void
nft_rule_expr_set(struct nft_rule_expr *expr, uint16_t type,
const void *data, size_t data_len)
global:
nft_table_alloc;
nft_table_free;
+ nft_table_attr_is_set;
nft_table_attr_unset;
nft_table_attr_set;
nft_table_attr_get;
nft_chain_alloc;
nft_chain_free;
+ nft_chain_attr_is_set;
nft_chain_attr_unset;
nft_chain_attr_set;
nft_chain_attr_set_u32;
nft_rule_alloc;
nft_rule_free;
+ nft_rule_attr_is_set;
nft_rule_attr_unset;
nft_rule_attr_set;
nft_rule_attr_set_u32;
nft_rule_expr_iter_destroy;
nft_rule_expr_alloc;
+ nft_rule_expr_is_set;
nft_rule_expr_set;
nft_rule_expr_set_u8;
nft_rule_expr_set_u32;
nft_set_alloc;
nft_set_free;
nft_set_attr_unset;
+ nft_set_attr_is_set;
nft_set_attr_set;
nft_set_attr_set_u32;
nft_set_attr_set_str;
nft_set_elem_free;
nft_set_elem_add;
nft_set_elem_foreach;
+ nft_set_elem_attr_is_set;
nft_set_elem_attr_unset;
nft_set_elem_attr_set;
nft_set_elem_attr_set_u32;
}
EXPORT_SYMBOL(nft_rule_free);
+bool nft_rule_attr_is_set(struct nft_rule *r, uint16_t attr)
+{
+ return r->flags & (1 << attr);
+}
+EXPORT_SYMBOL(nft_rule_attr_is_set);
+
void nft_rule_attr_unset(struct nft_rule *r, uint16_t attr)
{
switch (attr) {
}
EXPORT_SYMBOL(nft_set_free);
+bool nft_set_attr_is_set(struct nft_set *s, uint16_t attr)
+{
+ return s->flags & (1 << attr);
+}
+EXPORT_SYMBOL(nft_set_attr_is_set);
+
void nft_set_attr_unset(struct nft_set *s, uint16_t attr)
{
switch (attr) {
}
EXPORT_SYMBOL(nft_set_elem_free);
+bool nft_set_elem_attr_is_set(struct nft_set_elem *s, uint16_t attr)
+{
+ return s->flags & (1 << attr);
+}
+EXPORT_SYMBOL(nft_set_elem_attr_is_set);
+
void nft_set_elem_attr_unset(struct nft_set_elem *s, uint16_t attr)
{
switch (attr) {
}
EXPORT_SYMBOL(nft_table_free);
+bool nft_table_attr_is_set(struct nft_table *t, uint16_t attr)
+{
+ return t->flags & (1 << attr);
+}
+EXPORT_SYMBOL(nft_table_attr_is_set);
+
void nft_table_attr_unset(struct nft_table *t, uint16_t attr)
{
switch (attr) {