1
0
mirror of https://gitlab.labs.nic.cz/labs/bird.git synced 2024-05-11 16:54:54 +00:00

Implements show route noexport option.

Shows routes that would be exported to the protocol but are rejected by
the export filter.
This commit is contained in:
Ondrej Zajicek
2014-10-02 12:46:26 +02:00
parent 1123e70740
commit 7aa809016e
4 changed files with 32 additions and 15 deletions

View File

@@ -2255,6 +2255,9 @@ rt_show_net(struct cli *c, net *n, struct rt_show_data *d)
if (d->export_mode)
{
if (! d->export_protocol->rt_notify)
return;
a = proto_find_announce_hook(d->export_protocol, d->table);
if (!a)
return;
@@ -2287,18 +2290,20 @@ rt_show_net(struct cli *c, net *n, struct rt_show_data *d)
if (ic < 0)
goto skip;
if (d->export_mode > 1)
if (d->export_mode > RSEM_PREEXPORT)
{
/*
* FIXME - This shows what should be exported according to current
* filters, but not what was really exported. 'configure soft'
* command may change the export filter and do not update routes.
*/
int do_export = (ic > 0) ||
(f_run(a->out_filter, &e, &tmpa, rte_update_pool, FF_FORCE_TMPATTR) <= F_ACCEPT);
if (!ic && (f_run(a->out_filter, &e, &tmpa, rte_update_pool, FF_FORCE_TMPATTR) > F_ACCEPT))
if (do_export != (d->export_mode == RSEM_EXPORT))
goto skip;
if (ep->accept_ra_types == RA_ACCEPTED)
if ((d->export_mode == RSEM_EXPORT) && (ep->accept_ra_types == RA_ACCEPTED))
pass = 1;
}
}