aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Graf <tgraf@suug.ch>2007-03-26 20:38:53 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-26 01:28:14 -0400
commitfa0b2d1d2196dd46527a8d028797e2bca5930a92 (patch)
treef11350b07f1c66fa5b4e1604c618126d500dd0ae
parent2b44368307cd06c5614d7b53801f516c0654020b (diff)
[NET] fib_rules: Add no-operation action
The use of nop rules simplifies the usage of goto rules and adds more flexibility as they allow targets to remain while the actual content of the branches can change easly. Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--include/linux/fib_rules.h2
-rw-r--r--net/core/fib_rules.c4
2 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/fib_rules.h b/include/linux/fib_rules.h
index c151273293e2..f278ba781d09 100644
--- a/include/linux/fib_rules.h
+++ b/include/linux/fib_rules.h
@@ -54,7 +54,7 @@ enum
54 FR_ACT_UNSPEC, 54 FR_ACT_UNSPEC,
55 FR_ACT_TO_TBL, /* Pass to fixed table */ 55 FR_ACT_TO_TBL, /* Pass to fixed table */
56 FR_ACT_GOTO, /* Jump to another rule */ 56 FR_ACT_GOTO, /* Jump to another rule */
57 FR_ACT_RES2, 57 FR_ACT_NOP, /* No operation */
58 FR_ACT_RES3, 58 FR_ACT_RES3,
59 FR_ACT_RES4, 59 FR_ACT_RES4,
60 FR_ACT_BLACKHOLE, /* Drop without notification */ 60 FR_ACT_BLACKHOLE, /* Drop without notification */
diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c
index 7ac602cc8c85..5824b2644f26 100644
--- a/net/core/fib_rules.c
+++ b/net/core/fib_rules.c
@@ -146,7 +146,9 @@ jumped:
146 rule = target; 146 rule = target;
147 goto jumped; 147 goto jumped;
148 } 148 }
149 } else 149 } else if (rule->action == FR_ACT_NOP)
150 continue;
151 else
150 err = ops->action(rule, fl, flags, arg); 152 err = ops->action(rule, fl, flags, arg);
151 153
152 if (err != -EAGAIN) { 154 if (err != -EAGAIN) {