xref: /aosp_15_r20/external/iptables/iptables/nft-cmd.h (revision a71a954618bbadd4a345637e5edcf36eec826889)
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