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:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user