xref: /aosp_15_r20/external/iproute2/include/xt-internal.h (revision de1e4e894b0c224df933550f0afdecc354b238c4)
1*de1e4e89SAndroid Build Coastguard Worker #ifndef _XTABLES_INTERNAL_H
2*de1e4e89SAndroid Build Coastguard Worker #define _XTABLES_INTERNAL_H 1
3*de1e4e89SAndroid Build Coastguard Worker 
4*de1e4e89SAndroid Build Coastguard Worker #ifndef XT_LIB_DIR
5*de1e4e89SAndroid Build Coastguard Worker #	define XT_LIB_DIR "/lib/xtables"
6*de1e4e89SAndroid Build Coastguard Worker #endif
7*de1e4e89SAndroid Build Coastguard Worker 
8*de1e4e89SAndroid Build Coastguard Worker /* protocol family dependent informations */
9*de1e4e89SAndroid Build Coastguard Worker struct afinfo {
10*de1e4e89SAndroid Build Coastguard Worker 	/* protocol family */
11*de1e4e89SAndroid Build Coastguard Worker 	int family;
12*de1e4e89SAndroid Build Coastguard Worker 
13*de1e4e89SAndroid Build Coastguard Worker 	/* prefix of library name (ex "libipt_" */
14*de1e4e89SAndroid Build Coastguard Worker 	char *libprefix;
15*de1e4e89SAndroid Build Coastguard Worker 
16*de1e4e89SAndroid Build Coastguard Worker 	/* used by setsockopt (ex IPPROTO_IP */
17*de1e4e89SAndroid Build Coastguard Worker 	int ipproto;
18*de1e4e89SAndroid Build Coastguard Worker 
19*de1e4e89SAndroid Build Coastguard Worker 	/* kernel module (ex "ip_tables" */
20*de1e4e89SAndroid Build Coastguard Worker 	char *kmod;
21*de1e4e89SAndroid Build Coastguard Worker 
22*de1e4e89SAndroid Build Coastguard Worker 	/* optname to check revision support of match */
23*de1e4e89SAndroid Build Coastguard Worker 	int so_rev_match;
24*de1e4e89SAndroid Build Coastguard Worker 
25*de1e4e89SAndroid Build Coastguard Worker 	/* optname to check revision support of match */
26*de1e4e89SAndroid Build Coastguard Worker 	int so_rev_target;
27*de1e4e89SAndroid Build Coastguard Worker };
28*de1e4e89SAndroid Build Coastguard Worker 
29*de1e4e89SAndroid Build Coastguard Worker enum xt_tryload {
30*de1e4e89SAndroid Build Coastguard Worker 	DONT_LOAD,
31*de1e4e89SAndroid Build Coastguard Worker 	DURING_LOAD,
32*de1e4e89SAndroid Build Coastguard Worker 	TRY_LOAD,
33*de1e4e89SAndroid Build Coastguard Worker 	LOAD_MUST_SUCCEED
34*de1e4e89SAndroid Build Coastguard Worker };
35*de1e4e89SAndroid Build Coastguard Worker 
36*de1e4e89SAndroid Build Coastguard Worker struct xtables_rule_match {
37*de1e4e89SAndroid Build Coastguard Worker 	struct xtables_rule_match *next;
38*de1e4e89SAndroid Build Coastguard Worker 	struct xtables_match *match;
39*de1e4e89SAndroid Build Coastguard Worker 	/* Multiple matches of the same type: the ones before
40*de1e4e89SAndroid Build Coastguard Worker 	   the current one are completed from parsing point of view */
41*de1e4e89SAndroid Build Coastguard Worker 	unsigned int completed;
42*de1e4e89SAndroid Build Coastguard Worker };
43*de1e4e89SAndroid Build Coastguard Worker 
44*de1e4e89SAndroid Build Coastguard Worker extern char *lib_dir;
45*de1e4e89SAndroid Build Coastguard Worker 
46*de1e4e89SAndroid Build Coastguard Worker extern void *fw_calloc(size_t count, size_t size);
47*de1e4e89SAndroid Build Coastguard Worker extern void *fw_malloc(size_t size);
48*de1e4e89SAndroid Build Coastguard Worker 
49*de1e4e89SAndroid Build Coastguard Worker extern const char *modprobe_program;
50*de1e4e89SAndroid Build Coastguard Worker extern int xtables_insmod(const char *modname, const char *modprobe, int quiet);
51*de1e4e89SAndroid Build Coastguard Worker extern int load_xtables_ko(const char *modprobe, int quiet);
52*de1e4e89SAndroid Build Coastguard Worker 
53*de1e4e89SAndroid Build Coastguard Worker /* This is decleared in ip[6]tables.c */
54*de1e4e89SAndroid Build Coastguard Worker extern struct afinfo afinfo;
55*de1e4e89SAndroid Build Coastguard Worker 
56*de1e4e89SAndroid Build Coastguard Worker /* Keeping track of external matches and targets: linked lists.  */
57*de1e4e89SAndroid Build Coastguard Worker extern struct xtables_match *xtables_matches;
58*de1e4e89SAndroid Build Coastguard Worker extern struct xtables_target *xtables_targets;
59*de1e4e89SAndroid Build Coastguard Worker 
60*de1e4e89SAndroid Build Coastguard Worker extern struct xtables_match *find_match(const char *name, enum xt_tryload,
61*de1e4e89SAndroid Build Coastguard Worker 					struct xtables_rule_match **match);
62*de1e4e89SAndroid Build Coastguard Worker extern struct xtables_target *find_target(const char *name, enum xt_tryload);
63*de1e4e89SAndroid Build Coastguard Worker 
64*de1e4e89SAndroid Build Coastguard Worker extern void _init(void);
65*de1e4e89SAndroid Build Coastguard Worker 
66*de1e4e89SAndroid Build Coastguard Worker #endif /* _XTABLES_INTERNAL_H */
67