1 #ifndef _NFT_CMD_H_ 2 #define _NFT_CMD_H_ 3 4 #include <libiptc/linux_list.h> 5 #include <stdbool.h> 6 #include "nft.h" 7 8 struct nftnl_rule; 9 10 struct nft_cmd { 11 struct list_head head; 12 int command; 13 const char *table; 14 const char *chain; 15 const char *jumpto; 16 int rulenum; 17 bool verbose; 18 unsigned int format; 19 struct { 20 struct nftnl_rule *rule; 21 struct nftnl_set *set; 22 } obj; 23 const char *policy; 24 struct xt_counters counters; 25 const char *rename; 26 int counters_save; 27 struct { 28 unsigned int lineno; 29 } error; 30 }; 31 32 struct nft_cmd *nft_cmd_new(struct nft_handle *h, int command, 33 const char *table, const char *chain, 34 struct iptables_command_state *state, 35 int rulenum, bool verbose); 36 void nft_cmd_free(struct nft_cmd *cmd); 37 38 int nft_cmd_rule_append(struct nft_handle *h, const char *chain, 39 const char *table, struct iptables_command_state *state, 40 bool verbose); 41 int nft_cmd_rule_insert(struct nft_handle *h, const char *chain, 42 const char *table, struct iptables_command_state *state, 43 int rulenum, bool verbose); 44 int nft_cmd_rule_delete(struct nft_handle *h, const char *chain, 45 const char *table, struct iptables_command_state *state, 46 bool verbose); 47 int nft_cmd_rule_delete_num(struct nft_handle *h, const char *chain, 48 const char *table, int rulenum, bool verbose); 49 int nft_cmd_rule_flush(struct nft_handle *h, const char *chain, 50 const char *table, bool verbose); 51 int nft_cmd_zero_counters(struct nft_handle *h, const char *chain, 52 const char *table, bool verbose); 53 int nft_cmd_chain_user_add(struct nft_handle *h, const char *chain, 54 const char *table); 55 int nft_cmd_chain_del(struct nft_handle *h, const char *chain, 56 const char *table, bool verbose); 57 int nft_cmd_chain_zero_counters(struct nft_handle *h, const char *chain, 58 const char *table, bool verbose); 59 int nft_cmd_rule_list(struct nft_handle *h, const char *chain, 60 const char *table, int rulenum, unsigned int format); 61 int nft_cmd_rule_check(struct nft_handle *h, const char *chain, 62 const char *table, void *data, bool verbose); 63 int nft_cmd_chain_set(struct nft_handle *h, const char *table, 64 const char *chain, const char *policy, 65 const struct xt_counters *counters); 66 int nft_cmd_chain_user_rename(struct nft_handle *h,const char *chain, 67 const char *table, const char *newname); 68 int nft_cmd_rule_replace(struct nft_handle *h, const char *chain, 69 const char *table, void *data, int rulenum, 70 bool verbose); 71 int nft_cmd_table_flush(struct nft_handle *h, const char *table, bool verbose); 72 int nft_cmd_chain_restore(struct nft_handle *h, const char *chain, 73 const char *table); 74 int nft_cmd_rule_zero_counters(struct nft_handle *h, const char *chain, 75 const char *table, int rulenum); 76 int nft_cmd_rule_list_save(struct nft_handle *h, const char *chain, 77 const char *table, int rulenum, int counters); 78 int ebt_cmd_user_chain_policy(struct nft_handle *h, const char *table, 79 const char *chain, const char *policy); 80 void nft_cmd_table_new(struct nft_handle *h, const char *table); 81 82 #endif /* _NFT_CMD_H_ */ 83