summaryrefslogtreecommitdiff
path: root/proto/static/config.Y
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2011-09-24 02:21:52 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2011-09-24 02:24:34 +0200
commit4116db182d8d80d26902a8b33f82664bb5770066 (patch)
treecd8b81a9514c6c78af09f4c7d9e1a4ba2c3f1b8e /proto/static/config.Y
parent4271f2b77ed3862a2356475dc18b0cf5c1086364 (diff)
Implements static recursive routes.
Diffstat (limited to 'proto/static/config.Y')
-rw-r--r--proto/static/config.Y7
1 files changed, 6 insertions, 1 deletions
diff --git a/proto/static/config.Y b/proto/static/config.Y
index 46debbc3..77d2419f 100644
--- a/proto/static/config.Y
+++ b/proto/static/config.Y
@@ -18,7 +18,7 @@ static struct static_route *this_srt, *this_srt_nh, *last_srt_nh;
CF_DECLS
CF_KEYWORDS(STATIC, ROUTE, VIA, DROP, REJECT, PROHIBIT, PREFERENCE, CHECK, LINK)
-CF_KEYWORDS(MULTIPATH, WEIGHT)
+CF_KEYWORDS(MULTIPATH, WEIGHT, RECURSIVE, IGP, TABLE)
CF_GRAMMAR
@@ -35,6 +35,7 @@ static_proto:
static_proto_start proto_name '{'
| static_proto proto_item ';'
| static_proto CHECK LINK bool ';' { STATIC_CFG->check_link = $4; }
+ | static_proto IGP TABLE rtable ';' { STATIC_CFG->igp_table = $4; }
| static_proto stat_route ';'
;
@@ -79,6 +80,10 @@ stat_route:
| stat_route0 MULTIPATH stat_multipath {
this_srt->dest = RTD_MULTIPATH;
}
+ | stat_route0 RECURSIVE ipa {
+ this_srt->dest = RTDX_RECURSIVE;
+ this_srt->via = $3;
+ }
| stat_route0 DROP { this_srt->dest = RTD_BLACKHOLE; }
| stat_route0 REJECT { this_srt->dest = RTD_UNREACHABLE; }
| stat_route0 PROHIBIT { this_srt->dest = RTD_PROHIBIT; }