diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/fib_rules.h | 5 | ||||
-rw-r--r-- | include/net/fib_rules.h | 7 |
2 files changed, 9 insertions, 3 deletions
diff --git a/include/linux/fib_rules.h b/include/linux/fib_rules.h index 8270aac2aa5d..ec9c7b1d3e91 100644 --- a/include/linux/fib_rules.h +++ b/include/linux/fib_rules.h | |||
@@ -7,6 +7,7 @@ | |||
7 | /* rule is permanent, and cannot be deleted */ | 7 | /* rule is permanent, and cannot be deleted */ |
8 | #define FIB_RULE_PERMANENT 1 | 8 | #define FIB_RULE_PERMANENT 1 |
9 | #define FIB_RULE_INVERT 2 | 9 | #define FIB_RULE_INVERT 2 |
10 | #define FIB_RULE_UNRESOLVED 4 | ||
10 | 11 | ||
11 | struct fib_rule_hdr | 12 | struct fib_rule_hdr |
12 | { | 13 | { |
@@ -29,7 +30,7 @@ enum | |||
29 | FRA_DST, /* destination address */ | 30 | FRA_DST, /* destination address */ |
30 | FRA_SRC, /* source address */ | 31 | FRA_SRC, /* source address */ |
31 | FRA_IFNAME, /* interface name */ | 32 | FRA_IFNAME, /* interface name */ |
32 | FRA_UNUSED1, | 33 | FRA_GOTO, /* target to jump to (FR_ACT_GOTO) */ |
33 | FRA_UNUSED2, | 34 | FRA_UNUSED2, |
34 | FRA_PRIORITY, /* priority/preference */ | 35 | FRA_PRIORITY, /* priority/preference */ |
35 | FRA_UNUSED3, | 36 | FRA_UNUSED3, |
@@ -51,7 +52,7 @@ enum | |||
51 | { | 52 | { |
52 | FR_ACT_UNSPEC, | 53 | FR_ACT_UNSPEC, |
53 | FR_ACT_TO_TBL, /* Pass to fixed table */ | 54 | FR_ACT_TO_TBL, /* Pass to fixed table */ |
54 | FR_ACT_RES1, | 55 | FR_ACT_GOTO, /* Jump to another rule */ |
55 | FR_ACT_RES2, | 56 | FR_ACT_RES2, |
56 | FR_ACT_RES3, | 57 | FR_ACT_RES3, |
57 | FR_ACT_RES4, | 58 | FR_ACT_RES4, |
diff --git a/include/net/fib_rules.h b/include/net/fib_rules.h index ff3029fe9656..08bab8b6e575 100644 --- a/include/net/fib_rules.h +++ b/include/net/fib_rules.h | |||
@@ -19,6 +19,8 @@ struct fib_rule | |||
19 | u32 flags; | 19 | u32 flags; |
20 | u32 table; | 20 | u32 table; |
21 | u8 action; | 21 | u8 action; |
22 | u32 target; | ||
23 | struct fib_rule * ctarget; | ||
22 | struct rcu_head rcu; | 24 | struct rcu_head rcu; |
23 | }; | 25 | }; |
24 | 26 | ||
@@ -35,6 +37,8 @@ struct fib_rules_ops | |||
35 | struct list_head list; | 37 | struct list_head list; |
36 | int rule_size; | 38 | int rule_size; |
37 | int addr_size; | 39 | int addr_size; |
40 | int unresolved_rules; | ||
41 | int nr_goto_rules; | ||
38 | 42 | ||
39 | int (*action)(struct fib_rule *, | 43 | int (*action)(struct fib_rule *, |
40 | struct flowi *, int, | 44 | struct flowi *, int, |
@@ -66,7 +70,8 @@ struct fib_rules_ops | |||
66 | [FRA_PRIORITY] = { .type = NLA_U32 }, \ | 70 | [FRA_PRIORITY] = { .type = NLA_U32 }, \ |
67 | [FRA_FWMARK] = { .type = NLA_U32 }, \ | 71 | [FRA_FWMARK] = { .type = NLA_U32 }, \ |
68 | [FRA_FWMASK] = { .type = NLA_U32 }, \ | 72 | [FRA_FWMASK] = { .type = NLA_U32 }, \ |
69 | [FRA_TABLE] = { .type = NLA_U32 } | 73 | [FRA_TABLE] = { .type = NLA_U32 }, \ |
74 | [FRA_GOTO] = { .type = NLA_U32 } | ||
70 | 75 | ||
71 | static inline void fib_rule_get(struct fib_rule *rule) | 76 | static inline void fib_rule_get(struct fib_rule *rule) |
72 | { | 77 | { |