summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOndrej Filip <feela@network.cz>2013-02-25 10:39:46 +0100
committerOndrej Filip <feela@network.cz>2013-02-25 10:39:46 +0100
commite667622a35722ec007137e678f4f70841562e57f (patch)
tree90c0e478d352f4e022ad5932893374a94c83660c
parenta9c38203bdcad92f7ac0a8a912241d2acb483f2c (diff)
Default rounting table for 'show route export/preexport/protocol' is the one related to a respective protocol.
-rw-r--r--doc/bird.sgml3
-rw-r--r--nest/config.Y1
-rw-r--r--nest/rt-table.c5
3 files changed, 7 insertions, 2 deletions
diff --git a/doc/bird.sgml b/doc/bird.sgml
index 893d3bfa..e83cf0e1 100644
--- a/doc/bird.sgml
+++ b/doc/bird.sgml
@@ -670,7 +670,8 @@ This argument can be omitted if there exists only a single instance.
Show the list of symbols defined in the configuration (names of protocols, routing tables etc.).
<tag>show route [[for] <m/prefix/|<m/IP/] [table <m/sym/] [filter <m/f/|where <m/c/] [(export|preexport) <m/p/] [protocol <m/p/] [<m/options/]</tag>
- Show contents of a routing table (by default of the main one),
+ Show contents of a routing table (by default of the main one or
+ the table attached to a respective protocol),
that is routes, their metrics and (in case the <cf/all/ switch is given)
all their attributes.
diff --git a/nest/config.Y b/nest/config.Y
index 07e1af31..183059e8 100644
--- a/nest/config.Y
+++ b/nest/config.Y
@@ -427,7 +427,6 @@ r_args:
$$ = cfg_allocz(sizeof(struct rt_show_data));
$$->pxlen = 256;
$$->filter = FILTER_ACCEPT;
- $$->table = config->master_rtc->table;
}
| r_args prefix {
$$ = $1;
diff --git a/nest/rt-table.c b/nest/rt-table.c
index 75bfa6ba..e3fd985c 100644
--- a/nest/rt-table.c
+++ b/nest/rt-table.c
@@ -2204,6 +2204,11 @@ rt_show(struct rt_show_data *d)
{
net *n;
+ /* Default is either a master table or a table related to a respective protocol */
+ if ((!d->table) && d->export_protocol) d->table = d->export_protocol->table;
+ if ((!d->table) && d->show_protocol) d->table = d->show_protocol->table;
+ if (!d->table) d->table = config->master_rtc->table;
+
if (d->pxlen == 256)
{
FIB_ITERATE_INIT(&d->fit, &d->table->fib);