netfilter
firewalling, NAT, and packet mangling for linux
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
chain.h File Reference
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#include <sys/types.h>
#include <libnftnl/common.h>
Include dependency graph for chain.h:
This graph shows which files directly or indirectly include this file:

Macros

#define NFT_CHAIN_ATTR_MAX   (__NFT_CHAIN_ATTR_MAX - 1)
 
#define nft_chain_nlmsg_build_hdr   nft_nlmsg_build_hdr
 

Enumerations

enum  {
  NFT_CHAIN_ATTR_NAME = 0,
  NFT_CHAIN_ATTR_FAMILY,
  NFT_CHAIN_ATTR_TABLE,
  NFT_CHAIN_ATTR_HOOKNUM,
  NFT_CHAIN_ATTR_PRIO = 4,
  NFT_CHAIN_ATTR_POLICY,
  NFT_CHAIN_ATTR_USE,
  NFT_CHAIN_ATTR_BYTES,
  NFT_CHAIN_ATTR_PACKETS = 8,
  NFT_CHAIN_ATTR_HANDLE,
  NFT_CHAIN_ATTR_TYPE,
  __NFT_CHAIN_ATTR_MAX
}
 

Functions

struct nft_chainnft_chain_alloc (void)
 
void nft_chain_free (struct nft_chain *)
 
bool nft_chain_attr_is_set (const 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_data (struct nft_chain *t, uint16_t attr, const void *data, uint32_t data_len)
 
void nft_chain_attr_set_u8 (struct nft_chain *t, uint16_t attr, uint8_t data)
 
void nft_chain_attr_set_u32 (struct nft_chain *t, uint16_t attr, uint32_t data)
 
void nft_chain_attr_set_s32 (struct nft_chain *t, uint16_t attr, int32_t data)
 
void nft_chain_attr_set_u64 (struct nft_chain *t, uint16_t attr, uint64_t data)
 
void nft_chain_attr_set_str (struct nft_chain *t, uint16_t attr, const char *str)
 
const void * nft_chain_attr_get (struct nft_chain *c, uint16_t attr)
 
const void * nft_chain_attr_get_data (struct nft_chain *c, uint16_t attr, uint32_t *data_len)
 
const char * nft_chain_attr_get_str (struct nft_chain *c, uint16_t attr)
 
uint8_t nft_chain_attr_get_u8 (struct nft_chain *c, uint16_t attr)
 
uint32_t nft_chain_attr_get_u32 (struct nft_chain *c, uint16_t attr)
 
int32_t nft_chain_attr_get_s32 (struct nft_chain *c, uint16_t attr)
 
uint64_t nft_chain_attr_get_u64 (struct nft_chain *c, uint16_t attr)
 
void nft_chain_nlmsg_build_payload (struct nlmsghdr *nlh, const struct nft_chain *t)
 
int nft_chain_parse (struct nft_chain *c, enum nft_parse_type type, const char *data, struct nft_parse_err *err)
 
int nft_chain_parse_file (struct nft_chain *c, enum nft_parse_type type, FILE *fp, struct nft_parse_err *err)
 
int nft_chain_snprintf (char *buf, size_t size, struct nft_chain *t, uint32_t type, uint32_t flags)
 
int nft_chain_fprintf (FILE *fp, struct nft_chain *c, uint32_t type, uint32_t flags)
 
int nft_chain_nlmsg_parse (const struct nlmsghdr *nlh, struct nft_chain *t)
 
struct nft_chain_listnft_chain_list_alloc (void)
 
void nft_chain_list_free (struct nft_chain_list *list)
 
int nft_chain_list_is_empty (struct nft_chain_list *list)
 
int nft_chain_list_foreach (struct nft_chain_list *chain_list, int(*cb)(struct nft_chain *t, void *data), void *data)
 
void nft_chain_list_add (struct nft_chain *r, struct nft_chain_list *list)
 
void nft_chain_list_add_tail (struct nft_chain *r, struct nft_chain_list *list)
 
void nft_chain_list_del (struct nft_chain *c)
 
struct nft_chain_list_iternft_chain_list_iter_create (struct nft_chain_list *l)
 
struct nft_chainnft_chain_list_iter_next (struct nft_chain_list_iter *iter)
 
void nft_chain_list_iter_destroy (struct nft_chain_list_iter *iter)
 

Macro Definition Documentation

#define NFT_CHAIN_ATTR_MAX   (__NFT_CHAIN_ATTR_MAX - 1)

Referenced by nft_chain_attr_set_data().

Enumeration Type Documentation

anonymous enum
Enumerator
NFT_CHAIN_ATTR_NAME 
NFT_CHAIN_ATTR_FAMILY 
NFT_CHAIN_ATTR_TABLE 
NFT_CHAIN_ATTR_HOOKNUM 
NFT_CHAIN_ATTR_PRIO 
NFT_CHAIN_ATTR_POLICY 
NFT_CHAIN_ATTR_USE 
NFT_CHAIN_ATTR_BYTES 
NFT_CHAIN_ATTR_PACKETS 
NFT_CHAIN_ATTR_HANDLE 
NFT_CHAIN_ATTR_TYPE 
__NFT_CHAIN_ATTR_MAX 

Function Documentation

struct nft_chain* nft_chain_alloc ( void  )

Referenced by alloc_nft_chain(), nft_chain_user_add(), and nft_chain_user_rename().

Here is the caller graph for this function:

const void* nft_chain_attr_get ( struct nft_chain c,
uint16_t  attr 
)

References nft_chain_attr_get_data().

Referenced by nft_chain_attr_get_str(), nft_chain_zero_counters(), nft_rule_list(), and nft_xtables_config_load().

Here is the call graph for this function:

Here is the caller graph for this function:

int32_t nft_chain_attr_get_s32 ( struct nft_chain c,
uint16_t  attr 
)

References nft_assert, and nft_chain_attr_get_data().

Here is the call graph for this function:

const char* nft_chain_attr_get_str ( struct nft_chain c,
uint16_t  attr 
)

References nft_chain_attr_get().

Referenced by nft_chain_list_find(), nft_chain_save(), nft_chain_user_del(), nft_rule_flush(), nft_rule_list(), nft_rule_list_save(), and nft_table_purge_chains().

Here is the call graph for this function:

Here is the caller graph for this function:

uint32_t nft_chain_attr_get_u32 ( struct nft_chain c,
uint16_t  attr 
)

References nft_assert, and nft_chain_attr_get_data().

Referenced by mnl_nft_chain_add(), mnl_nft_chain_batch_add(), mnl_nft_chain_batch_del(), mnl_nft_chain_delete(), mnl_nft_chain_get(), nft_rule_list(), and nft_xtables_config_load().

Here is the call graph for this function:

Here is the caller graph for this function:

uint64_t nft_chain_attr_get_u64 ( struct nft_chain c,
uint16_t  attr 
)

References nft_assert, and nft_chain_attr_get_data().

Referenced by nft_chain_user_rename(), and nft_rule_list().

Here is the call graph for this function:

Here is the caller graph for this function:

uint8_t nft_chain_attr_get_u8 ( struct nft_chain c,
uint16_t  attr 
)

References nft_assert, and nft_chain_attr_get_data().

Here is the call graph for this function:

bool nft_chain_attr_is_set ( const struct nft_chain c,
uint16_t  attr 
)

References nft_chain::flags.

void nft_chain_attr_set ( struct nft_chain t,
uint16_t  attr,
const void *  data 
)

References nft_chain_attr_set_data().

Referenced by nft_chain_user_add(), and nft_chain_user_rename().

Here is the call graph for this function:

Here is the caller graph for this function:

void nft_chain_attr_set_s32 ( struct nft_chain t,
uint16_t  attr,
int32_t  data 
)

References nft_chain_attr_set_data().

Here is the call graph for this function:

void nft_chain_attr_set_str ( struct nft_chain t,
uint16_t  attr,
const char *  str 
)

References nft_chain_attr_set_data().

Referenced by alloc_nft_chain().

Here is the call graph for this function:

Here is the caller graph for this function:

void nft_chain_attr_set_u32 ( struct nft_chain t,
uint16_t  attr,
uint32_t  data 
)

References nft_chain_attr_set_data().

Referenced by alloc_nft_chain().

Here is the call graph for this function:

Here is the caller graph for this function:

void nft_chain_attr_set_u64 ( struct nft_chain t,
uint16_t  attr,
uint64_t  data 
)

References nft_chain_attr_set_data().

Referenced by alloc_nft_chain(), nft_chain_user_rename(), and nft_chain_zero_counters().

Here is the call graph for this function:

Here is the caller graph for this function:

void nft_chain_attr_set_u8 ( struct nft_chain t,
uint16_t  attr,
uint8_t  data 
)

References nft_chain_attr_set_data().

Here is the call graph for this function:

int nft_chain_fprintf ( FILE *  fp,
struct nft_chain c,
uint32_t  type,
uint32_t  flags 
)

References nft_fprintf().

Here is the call graph for this function:

void nft_chain_free ( struct nft_chain )

References NULL, nft_chain::table, nft_chain::type, and xfree.

Referenced by netlink_get_chain(), nft_chain_add(), nft_chain_list_free(), nft_chain_user_add(), and nft_chain_user_rename().

Here is the caller graph for this function:

void nft_chain_list_add ( struct nft_chain r,
struct nft_chain_list list 
)
void nft_chain_list_add_tail ( struct nft_chain r,
struct nft_chain_list list 
)
struct nft_chain_list* nft_chain_list_alloc ( void  )

References INIT_LIST_HEAD, nft_chain_list::list, and NULL.

Referenced by mnl_chain_dump(), mnl_nft_chain_dump(), and nft_xtables_config_load().

Here is the caller graph for this function:

void nft_chain_list_del ( struct nft_chain c)

References nft_chain::head.

int nft_chain_list_foreach ( struct nft_chain_list chain_list,
int(*)(struct nft_chain *t, void *data cb,
void *  data 
)

Referenced by netlink_list_chains().

Here is the caller graph for this function:

int nft_chain_list_is_empty ( struct nft_chain_list list)

References nft_chain_list::list.

Referenced by nft_ruleset_fprintf().

Here is the caller graph for this function:

int nft_chain_parse ( struct nft_chain c,
enum nft_parse_type  type,
const char *  data,
struct nft_parse_err err 
)

References NFT_PARSE_BUFFER.

int nft_chain_parse_file ( struct nft_chain c,
enum nft_parse_type  type,
FILE *  fp,
struct nft_parse_err err 
)

References NFT_PARSE_FILE.

int nft_chain_snprintf ( char *  buf,
size_t  size,
struct nft_chain t,
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.

Referenced by netlink_dump_chain(), and nft_chain_add().

Here is the call graph for this function:

Here is the caller graph for this function: