Commit graph

614 commits

Author SHA1 Message Date
Martin Mares
02c1fbddd4 Added proto_get_named() to be used in CLI commands to get protocol instance
of a given protocol with optionally given name. See `show static' for an
example.
1999-12-03 11:40:45 +00:00
Martin Mares
28e01f85c6 Renamed SHOW PROTOCOLS VERBOSE to SHOW PROTOCOLS ALL to be consistent
with the other commands.
1999-12-03 11:10:50 +00:00
Martin Mares
430da60fa2 Implemented `show route where <condition>' command.
Pavel, please check my addition to filter/config.Y.
1999-12-02 14:04:44 +00:00
Martin Mares
f2c6c80a24 I tried to turn on the YYERROR_VERBOSE switch, but bison is buggy as hell,
so it doesn't even compile. Turned it again off and added a comment on it.
1999-12-02 14:03:25 +00:00
Martin Mares
efe51e3863 Avoid `default rule can be matched' warning in CLI state. 1999-12-02 12:04:39 +00:00
Martin Mares
9c3726afd2 Updated TODO file. 1999-12-01 15:17:24 +00:00
Martin Mares
730f2e2c8c Added dumping of routing tables (`show route'). This includes filtering. 1999-12-01 15:10:21 +00:00
Martin Mares
04a60c689a Added get_route_info and show_route_data hooks to struct protocol.
Please implement them.
1999-12-01 15:08:32 +00:00
Martin Mares
f611f0ee82 Reset temporary parser data before parsing, not afterwards. This enables
deferred CLI command handlers to store their temporary data in the CLI
parsing pool.
1999-12-01 15:07:56 +00:00
Martin Mares
2ad6dcdb2c Make ACCEPT/REJECT actually return the result... 1999-12-01 15:07:06 +00:00
Pavel Machek
e7f76bae8c Stupid bug (essentially while(1) loop) occuring sometimes during start
of bird fixed.
1999-12-01 13:44:42 +00:00
Pavel Machek
7e1f99719e accept should behave as return, not running any commands after it. 1999-12-01 12:54:23 +00:00
Pavel Machek
639e628554 Actually check sequence numbers. 1999-12-01 12:52:57 +00:00
Martin Mares
3daf783f95 Implemented get_status for the pipe protocol (reports name of the other
side of the pipe).

Please do so for your protocols as well.
1999-12-01 12:01:41 +00:00
Martin Mares
9685deb910 `show protocols' now shows time of last state change and protocol-dependent
status information (obtained via newly introduced hook protocol->get_status).
1999-12-01 12:00:15 +00:00
Martin Mares
5954dcfab7 Introduced new protocol-dependent integer field `aux' to struct neighbor. 1999-12-01 11:59:24 +00:00
Martin Mares
afa8937ac8 Added tm_format_reltime() for formatting of relative time quantities. 1999-12-01 11:59:00 +00:00
Pavel Machek
6781e5213b FIXME's cleaned up: I have actually fixed things without killing
comments.

There are no urgent FIXME's in filters. Perhaps we should start with
documentation?
1999-12-01 11:39:58 +00:00
Martin Mares
f2ed663aea Use linux-22 configuration with all 2.2.x and 2.3.x kernels. This means
you need to have your kernel compiled with netlink routing messages enabled.
If it doesn't work for you, use --with-sysconfig=linux-21 and let me know
what's going wrong.
1999-12-01 10:28:39 +00:00
Martin Mares
1d2664a4d4 Remember protocol instance in proto_config and use that for
`show protocols <name>'.
1999-11-30 14:04:09 +00:00
Martin Mares
c9aae7f47f Lexer supports fallback symbol tables and uses them to recognize
symbols from global config when parsing CLI commands.

cf_lex_init_tables() is now called automatically inside the lexer.
1999-11-30 14:03:36 +00:00
Martin Mares
f0474f2070 Use TIME_INFINITY for initialization of password entries instead
of 2000000000 (BTW who wrote that???)
1999-11-30 14:02:27 +00:00
Martin Mares
487d1afa52 Moved TIME_INFINITY to timer.h, so that it's publicly available. 1999-11-30 14:01:39 +00:00
Martin Mares
0d3e6bceee show interfaces' and show protocols' works. 1999-11-30 12:57:14 +00:00
Martin Mares
10b5baaef3 Don't use continuation shortcuts until real client is written. 1999-11-30 12:56:52 +00:00
Ondrej Filip
163b207346 Inicialisation of Topology Graph (TG). 1999-11-30 10:35:26 +00:00
Martin Mares
ae97b946e9 Added few basic commands: show status, show interfaces [summary],
show protocols (incomplete).
1999-11-25 15:35:30 +00:00
Martin Mares
3579376927 cli_msg() moved to cli.h, so that it can be used outside the parser. 1999-11-25 15:34:51 +00:00
Martin Mares
ea32afb765 Added ip_scope_text() for translating of scopes to strings. 1999-11-25 15:34:20 +00:00
Pavel Machek
1a509a6310 md5 authentication seems to work. 1999-11-25 15:03:12 +00:00
Pavel Machek
d3702d57fd Bugfixes: select right password for password authentication, do not
try to process authentication blocks as datablocks, make it possible
to add data at end of packet. Password authentication should actually work.
1999-11-25 14:54:08 +00:00
Pavel Machek
4aa885a53c Filters: fix rta access to use ->aux field. 1999-11-25 13:42:49 +00:00
Pavel Machek
7e61cac325 Triggered updates should now actually work. Fixed metric=16 -> time it
out logic.
1999-11-25 13:38:25 +00:00
Pavel Machek
774f149959 Fix timeouts. Triggered updates are not done, yet. 1999-11-25 12:01:45 +00:00
Pavel Machek
455ca441d9 Check that prefixes are really prefixes + fix config file to
comply. (:-( 1.2.3.4/8 looks nicer than 1.0.0.0/8).
1999-11-24 12:16:31 +00:00
Pavel Machek
8f013d9ca4 Sorry, previous commit did not even compile. 1999-11-24 12:09:58 +00:00
Pavel Machek
48f9e01954 Filters: write access to dynamic attributes should actually work. It
would be nice to find method of testing such beasts.
1999-11-24 12:04:32 +00:00
Martin Mares
99bbd23b22 More CLI plans... 1999-11-18 14:41:43 +00:00
Martin Mares
8d24b6899d Allow EA type to be set to 'undefined' which overrides all further definitons
of that EA in the same list and causes ea_find() to fail unless you add
EA_ALLOW_UNDEF to the second argument.

ea_sort (resp. ea_do_prune()) removes all undef'd attributes from the list.

I hope this works :)
1999-11-18 14:41:29 +00:00
Pavel Machek
f31156ca21 Filters: first parts of extended attributes being read-write. It can
not actually work since I do not do rta/rte cow, yet.
1999-11-18 14:29:10 +00:00
Pavel Machek
c7b43f33ae Split inst->code into inst->code and inst->aux. Both are only 16 bit,
so aux is suitable for storing type but not much more.
1999-11-18 14:01:36 +00:00
Martin Mares
da40b6f753 DEF_PREF_UKR and DEF_PREF_SINK removed. 1999-11-18 13:42:51 +00:00
Pavel Machek
346a12c210 You can now print enum. 1999-11-18 13:21:52 +00:00
Ondrej Filip
4364b47e48 ospf.c and ospc.h splitted into various files. 1999-11-17 15:50:41 +00:00
Martin Mares
bff1db7629 Added skeleton of command tree. Please inspect. 1999-11-17 14:58:21 +00:00
Ondrej Filip
2af2636a69 Another bugfix. (In EXCHANGE state.) 1999-11-17 13:28:51 +00:00
Ondrej Filip
e17baa3108 Fixed bug receiving dbdes packets in EXSTART state. 1999-11-17 13:15:01 +00:00
Martin Mares
62a4639548 Added some temporary examples of how to define CLI commands (search for CF_CLI).
To define a new command, just add a new rule to the gramar:
  CF_CLI(COMMAND NAME, arguments, help-args, help-text) {
	what-should-the-command-do
	} ;
where <arguments> are appended to the RHS of the rule, <help-args> is the
argument list as shown in the help and <help-text> is description of the
command for the help.

<what-should-the-command-do> is a C code snippet to be executed. It should
not take too much time to execute. If you want to print out a lot of
information, you can schedule a routine to be called after the current
buffer is flushed by making cli->cont point to the routine (see the
TEST LONG command definition for an example); if the connection is closed
in the meantime, cli->cleanup gets called.

You can access `struct cli' belonging to the connection you're currently
servicing as this_cli, but only during parse time, not from routines scheduled
for deferred execution.

Functions to call inside command handlers:
  cli_printf(cli, code, printf-args) -- print text to CLI connection,
	<code> is message code as assigned in doc/reply_codes or a negative
	one if it's a continuation line.
  cli_msg(code, printf-args) -- the same for this_cli.

Use 'sock -x bird.ctl' for connecting to the CLI until a client is written.
1999-11-17 12:14:44 +00:00
Martin Mares
30770df2ab If the main event queue is not empty, call select() with zero timeout, so
that the events are ran again after the FD's are checked. This allows us
to schedule I/O checks between processing of user commands.
1999-11-17 12:04:24 +00:00
Martin Mares
84a7d7f77c ev_run() now returns whether the event has been requeued or not.
ev_run_list() now returns number of events which remain in the list.
1999-11-17 12:01:11 +00:00