mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 09:41:54 +00:00
Change import/preimport to export/preexport to be consistent with filters.
This commit is contained in:
parent
d72a0ac239
commit
ea2ae6dd0a
@ -435,7 +435,7 @@ This argument can be omitted if there exists only a single instance.
|
|||||||
<tag>show symbols</tag>
|
<tag>show symbols</tag>
|
||||||
Show the list of symbols defined in the configuration (names of protocols, routing tables etc.).
|
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/] [(import|preimport) <m/p/] [protocol <m/p/] [<m/options/]</tag>
|
<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),
|
||||||
that is routes, their metrics and (in case the <cf/all/ switch is given)
|
that is routes, their metrics and (in case the <cf/all/ switch is given)
|
||||||
all their attributes.
|
all their attributes.
|
||||||
@ -450,9 +450,9 @@ This argument can be omitted if there exists only a single instance.
|
|||||||
<p>You can also ask for printing only routes processed and accepted by
|
<p>You can also ask for printing only routes processed and accepted by
|
||||||
a given filter (<cf>filter <m/name/</cf> or <cf>filter { <m/filter/ }
|
a given filter (<cf>filter <m/name/</cf> or <cf>filter { <m/filter/ }
|
||||||
</cf> or matching a given condition (<cf>where <m/condition/</cf>).
|
</cf> or matching a given condition (<cf>where <m/condition/</cf>).
|
||||||
The <cf/import/ and <cf/preimport/ switches ask for printing of entries
|
The <cf/export/ and <cf/preexport/ switches ask for printing of entries
|
||||||
that are imported to the specified protocol. With <cf/preimport/, the
|
that are exported to the specified protocol. With <cf/preexport/, the
|
||||||
import filter of the protocol is skipped.
|
export filter of the protocol is skipped.
|
||||||
|
|
||||||
<p>You can also select just routes added by a specific protocol.
|
<p>You can also select just routes added by a specific protocol.
|
||||||
<cf>protocol <m/p/</cf>.
|
<cf>protocol <m/p/</cf>.
|
||||||
|
@ -43,7 +43,7 @@ CF_DECLS
|
|||||||
CF_KEYWORDS(ROUTER, ID, PROTOCOL, PREFERENCE, DISABLED, DEBUG, ALL, OFF, DIRECT)
|
CF_KEYWORDS(ROUTER, ID, PROTOCOL, PREFERENCE, DISABLED, DEBUG, ALL, OFF, DIRECT)
|
||||||
CF_KEYWORDS(INTERFACE, IMPORT, EXPORT, FILTER, NONE, TABLE, STATES, ROUTES, FILTERS)
|
CF_KEYWORDS(INTERFACE, IMPORT, EXPORT, FILTER, NONE, TABLE, STATES, ROUTES, FILTERS)
|
||||||
CF_KEYWORDS(PASSWORD, FROM, PASSIVE, TO, ID, EVENTS, PACKETS, PROTOCOLS, INTERFACES)
|
CF_KEYWORDS(PASSWORD, FROM, PASSIVE, TO, ID, EVENTS, PACKETS, PROTOCOLS, INTERFACES)
|
||||||
CF_KEYWORDS(PRIMARY, STATS, COUNT, FOR, COMMANDS, PREIMPORT, GENERATE)
|
CF_KEYWORDS(PRIMARY, STATS, COUNT, FOR, COMMANDS, PREEXPORT, GENERATE)
|
||||||
|
|
||||||
CF_ENUM(T_ENUM_RTS, RTS_, DUMMY, STATIC, INHERIT, DEVICE, STATIC_DEVICE, REDIRECT,
|
CF_ENUM(T_ENUM_RTS, RTS_, DUMMY, STATIC, INHERIT, DEVICE, STATIC_DEVICE, REDIRECT,
|
||||||
RIP, OSPF, OSPF_IA, OSPF_EXT1, OSPF_EXT2, BGP, PIPE)
|
RIP, OSPF, OSPF_IA, OSPF_EXT1, OSPF_EXT2, BGP, PIPE)
|
||||||
@ -56,7 +56,7 @@ CF_ENUM(T_ENUM_RTD, RTD_, ROUTER, DEVICE, BLACKHOLE, UNREACHABLE, PROHIBIT)
|
|||||||
%type <r> rtable
|
%type <r> rtable
|
||||||
%type <s> optsym
|
%type <s> optsym
|
||||||
%type <ra> r_args
|
%type <ra> r_args
|
||||||
%type <i> echo_mask echo_size debug_mask debug_list debug_flag import_or_preimport
|
%type <i> echo_mask echo_size debug_mask debug_list debug_flag export_or_preexport
|
||||||
%type <t> proto_patt
|
%type <t> proto_patt
|
||||||
|
|
||||||
CF_GRAMMAR
|
CF_GRAMMAR
|
||||||
@ -298,7 +298,7 @@ CF_CLI(SHOW INTERFACES,,, [[Show network interfaces]])
|
|||||||
CF_CLI(SHOW INTERFACES SUMMARY,,, [[Show summary of network interfaces]])
|
CF_CLI(SHOW INTERFACES SUMMARY,,, [[Show summary of network interfaces]])
|
||||||
{ if_show_summary(); } ;
|
{ if_show_summary(); } ;
|
||||||
|
|
||||||
CF_CLI(SHOW ROUTE, r_args, [[[<prefix>|for <prefix>|for <ip>] [table <t>] [filter <f>|where <cond>] [all] [primary] [(import|preimport) <p>] [protocol <p>] [stats|count]]], [[Show routing table]])
|
CF_CLI(SHOW ROUTE, r_args, [[[<prefix>|for <prefix>|for <ip>] [table <t>] [filter <f>|where <cond>] [all] [primary] [(export|preexport) <p>] [protocol <p>] [stats|count]]], [[Show routing table]])
|
||||||
{ rt_show($3); } ;
|
{ rt_show($3); } ;
|
||||||
|
|
||||||
r_args:
|
r_args:
|
||||||
@ -344,14 +344,14 @@ r_args:
|
|||||||
$$ = $1;
|
$$ = $1;
|
||||||
$$->primary_only = 1;
|
$$->primary_only = 1;
|
||||||
}
|
}
|
||||||
| r_args import_or_preimport SYM {
|
| r_args export_or_preexport SYM {
|
||||||
struct proto_config *c = (struct proto_config *) $3->def;
|
struct proto_config *c = (struct proto_config *) $3->def;
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
if ($$->import_mode) cf_error("Protocol specified twice");
|
if ($$->export_mode) cf_error("Protocol specified twice");
|
||||||
if ($3->class != SYM_PROTO || !c->proto) cf_error("%s is not a protocol", $3->name);
|
if ($3->class != SYM_PROTO || !c->proto) cf_error("%s is not a protocol", $3->name);
|
||||||
$$->import_mode = $2;
|
$$->export_mode = $2;
|
||||||
$$->primary_only = 1;
|
$$->primary_only = 1;
|
||||||
$$->import_protocol = c->proto;
|
$$->export_protocol = c->proto;
|
||||||
$$->running_on_config = c->proto->cf->global;
|
$$->running_on_config = c->proto->cf->global;
|
||||||
}
|
}
|
||||||
| r_args PROTOCOL SYM {
|
| r_args PROTOCOL SYM {
|
||||||
@ -372,9 +372,9 @@ r_args:
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
import_or_preimport:
|
export_or_preexport:
|
||||||
PREIMPORT { $$ = 1; }
|
PREEXPORT { $$ = 1; }
|
||||||
| IMPORT { $$ = 2; }
|
| EXPORT { $$ = 2; }
|
||||||
;
|
;
|
||||||
|
|
||||||
CF_CLI(SHOW SYMBOLS, optsym, [<symbol>], [[Show all known symbolic names]])
|
CF_CLI(SHOW SYMBOLS, optsym, [<symbol>], [[Show all known symbolic names]])
|
||||||
|
@ -212,8 +212,8 @@ struct rt_show_data {
|
|||||||
int verbose;
|
int verbose;
|
||||||
struct fib_iterator fit;
|
struct fib_iterator fit;
|
||||||
struct proto *show_protocol;
|
struct proto *show_protocol;
|
||||||
struct proto *import_protocol;
|
struct proto *export_protocol;
|
||||||
int import_mode, primary_only;
|
int export_mode, primary_only;
|
||||||
struct config *running_on_config;
|
struct config *running_on_config;
|
||||||
int net_counter, rt_counter, show_counter;
|
int net_counter, rt_counter, show_counter;
|
||||||
int stats, show_for;
|
int stats, show_for;
|
||||||
|
@ -978,7 +978,7 @@ rt_show_net(struct cli *c, net *n, struct rt_show_data *d)
|
|||||||
{
|
{
|
||||||
struct ea_list *tmpa, *old_tmpa;
|
struct ea_list *tmpa, *old_tmpa;
|
||||||
struct proto *p0 = e->attrs->proto;
|
struct proto *p0 = e->attrs->proto;
|
||||||
struct proto *p1 = d->import_protocol;
|
struct proto *p1 = d->export_protocol;
|
||||||
struct proto *p2 = d->show_protocol;
|
struct proto *p2 = d->show_protocol;
|
||||||
d->rt_counter++;
|
d->rt_counter++;
|
||||||
ee = e;
|
ee = e;
|
||||||
@ -986,12 +986,12 @@ rt_show_net(struct cli *c, net *n, struct rt_show_data *d)
|
|||||||
old_tmpa = tmpa = p0->make_tmp_attrs ? p0->make_tmp_attrs(e, rte_update_pool) : NULL;
|
old_tmpa = tmpa = p0->make_tmp_attrs ? p0->make_tmp_attrs(e, rte_update_pool) : NULL;
|
||||||
ok = (d->filter == FILTER_ACCEPT || f_run(d->filter, &e, &tmpa, rte_update_pool, FF_FORCE_TMPATTR) <= F_ACCEPT);
|
ok = (d->filter == FILTER_ACCEPT || f_run(d->filter, &e, &tmpa, rte_update_pool, FF_FORCE_TMPATTR) <= F_ACCEPT);
|
||||||
if (p2 && p2 != p0) ok = 0;
|
if (p2 && p2 != p0) ok = 0;
|
||||||
if (ok && d->import_mode)
|
if (ok && d->export_mode)
|
||||||
{
|
{
|
||||||
int ic = (p1->import_control ? p1->import_control(p1, &e, &tmpa, rte_update_pool) : 0);
|
int ic = (p1->import_control ? p1->import_control(p1, &e, &tmpa, rte_update_pool) : 0);
|
||||||
if (ic < 0)
|
if (ic < 0)
|
||||||
ok = 0;
|
ok = 0;
|
||||||
else if (!ic && d->import_mode > 1)
|
else if (!ic && d->export_mode > 1)
|
||||||
{
|
{
|
||||||
if (p1->out_filter == FILTER_REJECT ||
|
if (p1->out_filter == FILTER_REJECT ||
|
||||||
p1->out_filter && f_run(p1->out_filter, &e, &tmpa, rte_update_pool, FF_FORCE_TMPATTR) > F_ACCEPT)
|
p1->out_filter && f_run(p1->out_filter, &e, &tmpa, rte_update_pool, FF_FORCE_TMPATTR) > F_ACCEPT)
|
||||||
@ -1033,9 +1033,9 @@ rt_show_cont(struct cli *c)
|
|||||||
cli_printf(c, 8004, "Stopped due to reconfiguration");
|
cli_printf(c, 8004, "Stopped due to reconfiguration");
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
if (d->import_protocol &&
|
if (d->export_protocol &&
|
||||||
d->import_protocol->core_state != FS_HAPPY &&
|
d->export_protocol->core_state != FS_HAPPY &&
|
||||||
d->import_protocol->core_state != FS_FEEDING)
|
d->export_protocol->core_state != FS_FEEDING)
|
||||||
{
|
{
|
||||||
cli_printf(c, 8005, "Protocol is down");
|
cli_printf(c, 8005, "Protocol is down");
|
||||||
goto done;
|
goto done;
|
||||||
|
Loading…
Reference in New Issue
Block a user