0
0
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:
Ondrej Zajicek 2009-05-22 17:12:15 +02:00
parent d72a0ac239
commit ea2ae6dd0a
4 changed files with 22 additions and 22 deletions

View File

@ -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>.

View File

@ -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]])

View File

@ -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;

View File

@ -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;