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 uint8_t counter_op; 26 const char *rename; 27 int counters_save; 28 struct { 29 unsigned int lineno; 30 } error; 31 }; 32 33 struct nft_cmd *nft_cmd_new(struct nft_handle *h, int command, 34 const char *table, const char *chain, 35 struct iptables_command_state *state, 36 int rulenum, bool verbose); 37 void nft_cmd_free(struct nft_cmd *cmd); 38 39 int nft_cmd_rule_append(struct nft_handle *h, const char *chain, 40 const char *table, struct iptables_command_state *state, 41 bool verbose); 42 int nft_cmd_rule_insert(struct nft_handle *h, const char *chain, 43 const char *table, struct iptables_command_state *state, 44 int rulenum, bool verbose); 45 int nft_cmd_rule_delete(struct nft_handle *h, const char *chain, 46 const char *table, struct iptables_command_state *state, 47 bool verbose); 48 int nft_cmd_rule_delete_num(struct nft_handle *h, const char *chain, 49 const char *table, int rulenum, bool verbose); 50 int nft_cmd_rule_flush(struct nft_handle *h, const char *chain, 51 const char *table, bool verbose); 52 int nft_cmd_zero_counters(struct nft_handle *h, const char *chain, 53 const char *table, bool verbose); 54 int nft_cmd_chain_user_add(struct nft_handle *h, const char *chain, 55 const char *table); 56 int nft_cmd_chain_del(struct nft_handle *h, const char *chain, 57 const char *table, bool verbose); 58 int nft_cmd_chain_zero_counters(struct nft_handle *h, const char *chain, 59 const char *table, bool verbose); 60 int nft_cmd_rule_list(struct nft_handle *h, const char *chain, 61 const char *table, int rulenum, unsigned int format); 62 int nft_cmd_rule_check(struct nft_handle *h, const char *chain, 63 const char *table, void *data, bool verbose); 64 int nft_cmd_chain_set(struct nft_handle *h, const char *table, 65 const char *chain, const char *policy, 66 const struct xt_counters *counters); 67 int nft_cmd_chain_user_rename(struct nft_handle *h,const char *chain, 68 const char *table, const char *newname); 69 int nft_cmd_rule_replace(struct nft_handle *h, const char *chain, 70 const char *table, void *data, int rulenum, 71 bool verbose); 72 int nft_cmd_table_flush(struct nft_handle *h, const char *table, bool verbose); 73 int nft_cmd_chain_restore(struct nft_handle *h, const char *chain, 74 const char *table); 75 int nft_cmd_rule_zero_counters(struct nft_handle *h, const char *chain, 76 const char *table, int rulenum); 77 int nft_cmd_rule_list_save(struct nft_handle *h, const char *chain, 78 const char *table, int rulenum, int counters); 79 int ebt_cmd_user_chain_policy(struct nft_handle *h, const char *table, 80 const char *chain, const char *policy); 81 int nft_cmd_rule_change_counters(struct nft_handle *h, 82 const char *chain, const char *table, 83 struct iptables_command_state *cs, 84 int rule_nr, uint8_t counter_op, bool verbose); 85 void nft_cmd_table_new(struct nft_handle *h, const char *table); 86 87 #endif /* _NFT_CMD_H_ */ 88