• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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