#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#include <sys/types.h>
#include <libnftnl/common.h>
Macros | |
#define | NFT_SET_ATTR_MAX (__NFT_SET_ATTR_MAX - 1) |
#define | nft_set_nlmsg_build_hdr nft_nlmsg_build_hdr |
#define | nft_set_elem_nlmsg_build_hdr nft_nlmsg_build_hdr |
#define NFT_SET_ATTR_MAX (__NFT_SET_ATTR_MAX - 1) |
Referenced by nft_set_attr_set_data().
#define nft_set_elem_nlmsg_build_hdr nft_nlmsg_build_hdr |
#define nft_set_nlmsg_build_hdr nft_nlmsg_build_hdr |
anonymous enum |
anonymous enum |
References nft_set::element_list, INIT_LIST_HEAD, NULL, and s.
Referenced by alloc_nft_set(), mnl_nft_set_dump(), and mnl_set_dump().
References nft_set_attr_get_data().
Referenced by nft_set_attr_get_str().
References nft_set::data_len, nft_set::data_type, nft_set::desc, nft_set::family, nft_set::flags, nft_set::id, nft_set::key_len, nft_set::key_type, nft_set::name, NFT_SET_ATTR_DATA_LEN, NFT_SET_ATTR_DATA_TYPE, NFT_SET_ATTR_DESC_SIZE, NFT_SET_ATTR_FAMILY, NFT_SET_ATTR_FLAGS, NFT_SET_ATTR_ID, NFT_SET_ATTR_KEY_LEN, NFT_SET_ATTR_KEY_TYPE, NFT_SET_ATTR_NAME, NFT_SET_ATTR_POLICY, NFT_SET_ATTR_TABLE, NULL, nft_set::policy, nft_set::set_flags, nft_set::size, and nft_set::table.
Referenced by nft_set_attr_get(), and nft_set_attr_get_u32().
References nft_assert, and nft_set_attr_get_data().
Referenced by mnl_nft_set_add(), mnl_nft_set_batch_add(), mnl_nft_set_batch_del(), mnl_nft_set_delete(), mnl_nft_set_get(), mnl_nft_setelem_add(), mnl_nft_setelem_batch_add(), mnl_nft_setelem_batch_del(), mnl_nft_setelem_delete(), mnl_nft_setelem_get(), mnl_setelem_get(), and nft_set_lookup_id().
References nft_set::flags.
References nft_set_attr_set_data().
Referenced by mnl_nft_set_dump(), mnl_set_dump(), nft_set_attr_set_str(), and nft_set_attr_set_u32().
void nft_set_attr_set_data | ( | struct nft_set * | s, |
uint16_t | attr, | ||
const void * | data, | ||
uint32_t | data_len | ||
) |
References nft_set::data_len, nft_set::data_type, nft_set::desc, nft_set::family, nft_set::flags, nft_set::id, nft_set::key_len, nft_set::key_type, nft_set::name, nft_assert_validate, NFT_SET_ATTR_DATA_LEN, NFT_SET_ATTR_DATA_TYPE, NFT_SET_ATTR_DESC_SIZE, NFT_SET_ATTR_FAMILY, NFT_SET_ATTR_FLAGS, NFT_SET_ATTR_ID, NFT_SET_ATTR_KEY_LEN, NFT_SET_ATTR_KEY_TYPE, NFT_SET_ATTR_MAX, NFT_SET_ATTR_NAME, NFT_SET_ATTR_POLICY, NFT_SET_ATTR_TABLE, nft_set::policy, nft_set::set_flags, nft_set::size, nft_set::table, and xfree.
Referenced by nft_set_attr_set().
References nft_set_attr_set().
Referenced by alloc_nft_set().
References nft_set_attr_set().
Referenced by alloc_nft_set().
References nft_set::flags, nft_set::name, NFT_SET_ATTR_DATA_LEN, NFT_SET_ATTR_DATA_TYPE, NFT_SET_ATTR_DESC_SIZE, NFT_SET_ATTR_FAMILY, NFT_SET_ATTR_FLAGS, NFT_SET_ATTR_ID, NFT_SET_ATTR_KEY_LEN, NFT_SET_ATTR_KEY_TYPE, NFT_SET_ATTR_NAME, NFT_SET_ATTR_POLICY, NFT_SET_ATTR_TABLE, NULL, nft_set::table, and xfree.
void nft_set_elem_add | ( | struct nft_set * | s, |
struct nft_set_elem * | elem | ||
) |
References nft_set::element_list, and nft_set_elem::head.
struct nft_set_elem* nft_set_elem_alloc | ( | void | ) |
const void* nft_set_elem_attr_get | ( | struct nft_set_elem * | s, |
uint16_t | attr, | ||
uint32_t * | data_len | ||
) |
References nft_data_reg::chain, nft_set_elem::data, nft_set_elem::flags, nft_set_elem::key, nft_data_reg::len, NFT_SET_ELEM_ATTR_CHAIN, NFT_SET_ELEM_ATTR_DATA, NFT_SET_ELEM_ATTR_FLAGS, NFT_SET_ELEM_ATTR_KEY, NFT_SET_ELEM_ATTR_VERDICT, NULL, nft_set_elem::set_elem_flags, nft_data_reg::val, and nft_data_reg::verdict.
Referenced by nft_set_elem_attr_get_str(), and nft_set_elem_attr_get_u32().
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 | ( | const struct nft_set_elem * | s, |
uint16_t | attr | ||
) |
References nft_set_elem::flags.
void nft_set_elem_attr_set | ( | struct nft_set_elem * | s, |
uint16_t | attr, | ||
const void * | data, | ||
uint32_t | data_len | ||
) |
References nft_data_reg::chain, nft_set_elem::data, nft_set_elem::flags, nft_set_elem::key, nft_data_reg::len, NFT_SET_ELEM_ATTR_CHAIN, NFT_SET_ELEM_ATTR_DATA, NFT_SET_ELEM_ATTR_FLAGS, NFT_SET_ELEM_ATTR_KEY, NFT_SET_ELEM_ATTR_VERDICT, nft_set_elem::set_elem_flags, nft_data_reg::val, nft_data_reg::verdict, and xfree.
Referenced by nft_set_elem_attr_set_str(), and nft_set_elem_attr_set_u32().
void nft_set_elem_attr_set_str | ( | struct nft_set_elem * | s, |
uint16_t | attr, | ||
const char * | str | ||
) |
void nft_set_elem_attr_set_u32 | ( | struct nft_set_elem * | s, |
uint16_t | attr, | ||
uint32_t | val | ||
) |
void nft_set_elem_attr_unset | ( | struct nft_set_elem * | s, |
uint16_t | attr | ||
) |
int nft_set_elem_foreach | ( | struct nft_set * | s, |
int(*)(struct nft_set_elem *e, void *data) | cb, | ||
void * | data | ||
) |
References nft_set::element_list, nft_set_elem::head, and list_for_each_entry.
Referenced by netlink_get_setelems().
int nft_set_elem_fprintf | ( | FILE * | fp, |
struct nft_set_elem * | se, | ||
uint32_t | type, | ||
uint32_t | flags | ||
) |
void nft_set_elem_free | ( | struct nft_set_elem * | s | ) |
References nft_data_reg::chain, nft_set_elem::data, nft_set_elem::flags, NFT_SET_ELEM_ATTR_CHAIN, NULL, and xfree.
Referenced by nft_set_free().
void nft_set_elem_nlmsg_build_payload | ( | struct nlmsghdr * | nlh, |
struct nft_set_elem * | e | ||
) |
References nft_data_reg::chain, nft_set_elem::data, nft_set_elem::flags, nft_set_elem::key, nft_data_reg::len, mnl_attr_nest_end(), mnl_attr_nest_start(), mnl_attr_put(), mnl_attr_put_strz(), mnl_attr_put_u32(), NFT_SET_ELEM_ATTR_CHAIN, NFT_SET_ELEM_ATTR_DATA, NFT_SET_ELEM_ATTR_FLAGS, NFT_SET_ELEM_ATTR_KEY, NFT_SET_ELEM_ATTR_VERDICT, NFTA_DATA_VALUE, NFTA_DATA_VERDICT, NFTA_SET_ELEM_DATA, NFTA_SET_ELEM_FLAGS, NFTA_SET_ELEM_KEY, NFTA_VERDICT_CHAIN, NFTA_VERDICT_CODE, nft_set_elem::set_elem_flags, nft_data_reg::val, and nft_data_reg::verdict.
int nft_set_elem_parse | ( | struct nft_set_elem * | e, |
enum nft_parse_type | type, | ||
const char * | data, | ||
struct nft_parse_err * | err | ||
) |
References NFT_PARSE_BUFFER.
int nft_set_elem_parse_file | ( | struct nft_set_elem * | e, |
enum nft_parse_type | type, | ||
FILE * | fp, | ||
struct nft_parse_err * | err | ||
) |
References NFT_PARSE_FILE.
int nft_set_elem_snprintf | ( | char * | buf, |
size_t | size, | ||
struct nft_set_elem * | s, | ||
uint32_t | type, | ||
uint32_t | flags | ||
) |
References nft_event_footer_snprintf(), nft_event_header_snprintf(), NFT_OUTPUT_DEFAULT, NFT_OUTPUT_JSON, NFT_OUTPUT_XML, size, and SNPRINTF_BUFFER_SIZE.
struct nft_set_elems_iter* nft_set_elems_iter_create | ( | struct nft_set * | s | ) |
References nft_set_elems_iter::cur, nft_set::element_list, nft_set_elems_iter::list, list_entry, list_head::next, NULL, s, and nft_set_elems_iter::set.
Referenced by mnl_nft_setelem_add(), and mnl_nft_setelem_batch_add().
struct nft_set_elem* nft_set_elems_iter_cur | ( | struct nft_set_elems_iter * | iter | ) |
References nft_set_elems_iter::cur.
void nft_set_elems_iter_destroy | ( | struct nft_set_elems_iter * | iter | ) |
References xfree.
Referenced by mnl_nft_setelem_add(), and mnl_nft_setelem_batch_add().
struct nft_set_elem* nft_set_elems_iter_next | ( | struct nft_set_elems_iter * | iter | ) |
References nft_set_elems_iter::cur, nft_set_elem::head, nft_set_elems_iter::list, list_entry, list_head::next, NULL, and s.
Referenced by nft_set_elems_nlmsg_build_payload_iter().
References nft_set::element_list, list_for_each_entry, mnl_attr_nest_end(), mnl_attr_nest_start(), and NFTA_SET_ELEM_LIST_ELEMENTS.
Referenced by mnl_nft_setelem_batch_del(), and mnl_nft_setelem_delete().
int nft_set_elems_nlmsg_build_payload_iter | ( | struct nlmsghdr * | nlh, |
struct nft_set_elems_iter * | iter | ||
) |
References nft_set_elems_iter::cur, nft_set_elem::head, list_entry, mnl_attr_nest_end(), mnl_attr_nest_start(), nft_set_elems_iter_next(), NFTA_SET_ELEM_LIST_ELEMENTS, NULL, list_head::prev, and nft_set_elems_iter::set.
Referenced by mnl_nft_setelem_add(), and mnl_nft_setelem_batch_add().
References nft_set::family, nft_set::flags, nft_set::id, mnl_attr_get_str(), mnl_attr_get_u32(), mnl_attr_parse(), mnl_nlmsg_get_payload(), nft_set::name, nfgenmsg::nfgen_family, NFT_SET_ATTR_FAMILY, NFT_SET_ATTR_ID, NFT_SET_ATTR_NAME, NFT_SET_ATTR_TABLE, NFTA_SET_ELEM_LIST_ELEMENTS, NFTA_SET_ELEM_LIST_MAX, NFTA_SET_ELEM_LIST_SET, NFTA_SET_ELEM_LIST_SET_ID, NFTA_SET_ELEM_LIST_TABLE, and nft_set::table.
References nft_set::element_list, nft_set_elem::head, list_for_each_entry_safe, nft_set::name, nft_set_elem_free(), NULL, nft_set::table, and xfree.
Referenced by mnl_nft_set_dump(), mnl_set_dump(), netlink_get_set(), netlink_get_setelems(), and nft_set_list_free().
void nft_set_list_add | ( | struct nft_set * | s, |
struct nft_set_list * | list | ||
) |
References nft_set::head, and nft_set_list::list.
void nft_set_list_add_tail | ( | struct nft_set * | s, |
struct nft_set_list * | list | ||
) |
References nft_set::head, and nft_set_list::list.
struct nft_set_list* nft_set_list_alloc | ( | void | ) |
References INIT_LIST_HEAD, nft_set_list::list, and NULL.
Referenced by mnl_nft_set_dump(), mnl_ruleset_dump(), and mnl_set_dump().
References nft_set::head.
int nft_set_list_foreach | ( | struct nft_set_list * | set_list, |
int(*)(struct nft_set *t, void *data) | cb, | ||
void * | data | ||
) |
References nft_set::head, nft_set_list::list, and list_for_each_entry_safe.
Referenced by netlink_list_sets().
void nft_set_list_free | ( | struct nft_set_list * | list | ) |
References nft_set::head, nft_set_list::list, list_for_each_entry_safe, nft_set_free(), s, and xfree.
Referenced by mnl_nft_set_dump(), mnl_set_dump(), netlink_list_sets(), nft_ruleset_attr_unset(), and nft_ruleset_free().
int nft_set_list_is_empty | ( | struct nft_set_list * | list | ) |
References nft_set_list::list.
Referenced by nft_ruleset_fprintf().
struct nft_set_list_iter* nft_set_list_iter_create | ( | struct nft_set_list * | l | ) |
References nft_set_list_iter::cur, nft_set_list_iter::list, nft_set_list::list, list_entry, list_head::next, and NULL.
Referenced by mnl_nft_ruleset_dump().
struct nft_set* nft_set_list_iter_cur | ( | struct nft_set_list_iter * | iter | ) |
References nft_set_list_iter::cur.
void nft_set_list_iter_destroy | ( | struct nft_set_list_iter * | iter | ) |
struct nft_set* nft_set_list_iter_next | ( | struct nft_set_list_iter * | iter | ) |
References nft_set_list_iter::cur, nft_set::head, nft_set_list_iter::list, nft_set_list::list, list_entry, list_head::next, NULL, and s.
Referenced by mnl_nft_ruleset_dump().
References nft_set::data_len, nft_set::data_type, nft_set::flags, nft_set::id, nft_set::key_len, nft_set::key_type, mnl_attr_put_strz(), mnl_attr_put_u32(), nft_set::name, NFT_SET_ATTR_DATA_LEN, NFT_SET_ATTR_DATA_TYPE, NFT_SET_ATTR_DESC_SIZE, NFT_SET_ATTR_FLAGS, NFT_SET_ATTR_ID, NFT_SET_ATTR_KEY_LEN, NFT_SET_ATTR_KEY_TYPE, NFT_SET_ATTR_NAME, NFT_SET_ATTR_POLICY, NFT_SET_ATTR_TABLE, NFTA_SET_DATA_LEN, NFTA_SET_DATA_TYPE, NFTA_SET_FLAGS, NFTA_SET_ID, NFTA_SET_KEY_LEN, NFTA_SET_KEY_TYPE, NFTA_SET_NAME, NFTA_SET_POLICY, NFTA_SET_TABLE, nft_set::policy, nft_set::set_flags, and nft_set::table.
Referenced by mnl_nft_set_add(), mnl_nft_set_batch_add(), mnl_nft_set_batch_del(), mnl_nft_set_delete(), mnl_nft_set_dump(), mnl_nft_set_get(), mnl_nft_setelem_get(), mnl_set_dump(), and mnl_setelem_get().
References nft_set::data_len, nft_set::data_type, nft_set::family, nft_set::flags, nft_set::id, nft_set::key_len, nft_set::key_type, mnl_attr_get_str(), mnl_attr_get_u32(), mnl_attr_parse(), mnl_nlmsg_get_payload(), nft_set::name, nfgenmsg::nfgen_family, NFT_SET_ATTR_DATA_LEN, NFT_SET_ATTR_DATA_TYPE, NFT_SET_ATTR_FAMILY, NFT_SET_ATTR_FLAGS, NFT_SET_ATTR_ID, NFT_SET_ATTR_KEY_LEN, NFT_SET_ATTR_KEY_TYPE, NFT_SET_ATTR_NAME, NFT_SET_ATTR_POLICY, NFT_SET_ATTR_TABLE, NFTA_SET_DATA_LEN, NFTA_SET_DATA_TYPE, NFTA_SET_DESC, NFTA_SET_FLAGS, NFTA_SET_ID, NFTA_SET_KEY_LEN, NFTA_SET_KEY_TYPE, NFTA_SET_MAX, NFTA_SET_NAME, NFTA_SET_POLICY, NFTA_SET_TABLE, nft_set::policy, nft_set::set_flags, and nft_set::table.
int nft_set_parse | ( | struct nft_set * | s, |
enum nft_parse_type | type, | ||
const char * | data, | ||
struct nft_parse_err * | err | ||
) |
References NFT_PARSE_BUFFER.
int nft_set_parse_file | ( | struct nft_set * | s, |
enum nft_parse_type | type, | ||
FILE * | fp, | ||
struct nft_parse_err * | err | ||
) |
References NFT_PARSE_FILE.
References flags, nft_event_footer_snprintf(), nft_event_header_snprintf(), NFT_OF_EVENT_ANY, NFT_OUTPUT_DEFAULT, NFT_OUTPUT_JSON, NFT_OUTPUT_XML, size, and SNPRINTF_BUFFER_SIZE.
Referenced by netlink_dump_set().