#include "internal.h"
#include <time.h>
#include <endian.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <netinet/in.h>
#include <errno.h>
#include <libmnl/libmnl.h>
#include <linux/netfilter/nfnetlink.h>
#include <linux/netfilter/nf_tables.h>
#include <libnftnl/set.h>
#include <libnftnl/rule.h>
#include "linux_list.h"
#include "expr/data_reg.h"
Data Structures | |
struct | nft_set_elems_iter |
EXPORT_SYMBOL | ( | nft_set_elem_alloc | ) |
EXPORT_SYMBOL | ( | nft_set_elem_free | ) |
EXPORT_SYMBOL | ( | nft_set_elem_attr_is_set | ) |
EXPORT_SYMBOL | ( | nft_set_elem_attr_unset | ) |
EXPORT_SYMBOL | ( | nft_set_elem_attr_set | ) |
EXPORT_SYMBOL | ( | nft_set_elem_attr_set_u32 | ) |
EXPORT_SYMBOL | ( | nft_set_elem_attr_set_str | ) |
EXPORT_SYMBOL | ( | nft_set_elem_attr_get | ) |
EXPORT_SYMBOL | ( | nft_set_elem_attr_get_str | ) |
EXPORT_SYMBOL | ( | nft_set_elem_attr_get_u32 | ) |
EXPORT_SYMBOL | ( | nft_set_elems_nlmsg_build_payload | ) |
EXPORT_SYMBOL | ( | nft_set_elems_nlmsg_parse | ) |
EXPORT_SYMBOL | ( | nft_set_elem_parse | ) |
EXPORT_SYMBOL | ( | nft_set_elem_parse_file | ) |
EXPORT_SYMBOL | ( | nft_set_elem_snprintf | ) |
EXPORT_SYMBOL | ( | nft_set_elem_fprintf | ) |
EXPORT_SYMBOL | ( | nft_set_elem_foreach | ) |
EXPORT_SYMBOL | ( | nft_set_elems_iter_create | ) |
EXPORT_SYMBOL | ( | nft_set_elems_iter_cur | ) |
EXPORT_SYMBOL | ( | nft_set_elems_iter_next | ) |
EXPORT_SYMBOL | ( | nft_set_elems_iter_destroy | ) |
EXPORT_SYMBOL | ( | nft_set_elems_nlmsg_build_payload_iter | ) |
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 * | e, | ||
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.