summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/bird.sgml8
-rw-r--r--proto/ospf/config.Y2
2 files changed, 6 insertions, 4 deletions
diff --git a/doc/bird.sgml b/doc/bird.sgml
index 762b5fd..bab4679 100644
--- a/doc/bird.sgml
+++ b/doc/bird.sgml
@@ -1009,7 +1009,7 @@ on nonbroadcast networks.
protocol ospf <name> {
rfc1583compat <switch>;
area <id> {
- stub <switch>;
+ stub cost <num>;
tick <num>;
interface <interface pattern>
{
@@ -1047,8 +1047,10 @@ protocol ospf <name> {
The most important area is
the backbone (ID 0) to which every other area must be connected.
- <tag>stub <M>switch</M></tag>
- No external routes are flooded into stub areas. Default value is no.
+ <tag>stub cost <M>num</M></tag>
+ No external (except default) routes are flooded into stub areas.
+ Setting this value marks area stub with defined cost of default route.
+ Default value is no. (Area is not stub.)
<tag>tick <M>num</M></tag>
The routing table calculation is not performed when a single link state
diff --git a/proto/ospf/config.Y b/proto/ospf/config.Y
index 459a236..140cbb4 100644
--- a/proto/ospf/config.Y
+++ b/proto/ospf/config.Y
@@ -70,7 +70,7 @@ ospf_area_opts:
;
ospf_area_item:
- STUB bool { this_area->stub = $2 ; }
+ STUB COST expr { this_area->stub = $3 ; if($3<=0) cf_error("Stub cost must be greater than zero"); }
| TICK expr { this_area->tick = $2 ; if($2<=0) cf_error("Tick must be greater than zero"); }
| INTERFACE ospf_iface_list
;