|
1 #ifndef __LINUX_FIB_RULES_H |
|
2 #define __LINUX_FIB_RULES_H |
|
3 |
|
4 #include <linux/types.h> |
|
5 #include <linux/rtnetlink.h> |
|
6 |
|
7 /* rule is permanent, and cannot be deleted */ |
|
8 #define FIB_RULE_PERMANENT 0x00000001 |
|
9 #define FIB_RULE_INVERT 0x00000002 |
|
10 #define FIB_RULE_UNRESOLVED 0x00000004 |
|
11 #define FIB_RULE_DEV_DETACHED 0x00000008 |
|
12 |
|
13 /* try to find source address in routing lookups */ |
|
14 #define FIB_RULE_FIND_SADDR 0x00010000 |
|
15 |
|
16 struct fib_rule_hdr |
|
17 { |
|
18 __u8 family; |
|
19 __u8 dst_len; |
|
20 __u8 src_len; |
|
21 __u8 tos; |
|
22 |
|
23 __u8 table; |
|
24 __u8 res1; /* reserved */ |
|
25 __u8 res2; /* reserved */ |
|
26 __u8 action; |
|
27 |
|
28 __u32 flags; |
|
29 }; |
|
30 |
|
31 enum |
|
32 { |
|
33 FRA_UNSPEC, |
|
34 FRA_DST, /* destination address */ |
|
35 FRA_SRC, /* source address */ |
|
36 FRA_IFNAME, /* interface name */ |
|
37 FRA_GOTO, /* target to jump to (FR_ACT_GOTO) */ |
|
38 FRA_UNUSED2, |
|
39 FRA_PRIORITY, /* priority/preference */ |
|
40 FRA_UNUSED3, |
|
41 FRA_UNUSED4, |
|
42 FRA_UNUSED5, |
|
43 FRA_FWMARK, /* mark */ |
|
44 FRA_FLOW, /* flow/class id */ |
|
45 FRA_UNUSED6, |
|
46 FRA_UNUSED7, |
|
47 FRA_UNUSED8, |
|
48 FRA_TABLE, /* Extended table id */ |
|
49 FRA_FWMASK, /* mask for netfilter mark */ |
|
50 __FRA_MAX |
|
51 }; |
|
52 |
|
53 #define FRA_MAX (__FRA_MAX - 1) |
|
54 |
|
55 enum |
|
56 { |
|
57 FR_ACT_UNSPEC, |
|
58 FR_ACT_TO_TBL, /* Pass to fixed table */ |
|
59 FR_ACT_GOTO, /* Jump to another rule */ |
|
60 FR_ACT_NOP, /* No operation */ |
|
61 FR_ACT_RES3, |
|
62 FR_ACT_RES4, |
|
63 FR_ACT_BLACKHOLE, /* Drop without notification */ |
|
64 FR_ACT_UNREACHABLE, /* Drop with ENETUNREACH */ |
|
65 FR_ACT_PROHIBIT, /* Drop with EACCES */ |
|
66 __FR_ACT_MAX, |
|
67 }; |
|
68 |
|
69 #define FR_ACT_MAX (__FR_ACT_MAX - 1) |
|
70 |
|
71 #endif |