summaryrefslogtreecommitdiffstats
path: root/conf
AgeCommit message (Collapse)Author
1999-12-02Avoid `default rule can be matched' warning in CLI state.Martin Mares
1999-12-01Added dumping of routing tables (`show route'). This includes filtering.Martin Mares
1999-11-30Lexer supports fallback symbol tables and uses them to recognizeMartin Mares
symbols from global config when parsing CLI commands. cf_lex_init_tables() is now called automatically inside the lexer.
1999-11-25cli_msg() moved to cli.h, so that it can be used outside the parser.Martin Mares
1999-11-17Command line interface now works.Martin Mares
1999-11-15Defined CF_ENUM.Martin Mares
1999-11-15SYM_STAT is gone.Martin Mares
1999-11-10Enumerational types, defined keyword added.Pavel Machek
1999-11-04Silly bug.Martin Mares
1999-11-04Symbols are not scoped.Martin Mares
1999-11-03You should not follow next two times.Pavel Machek
1999-10-31Parse CLI commands. We use the same parser as for configuration files (becauseMartin Mares
we want to allow filter and similar complex constructs to be used in commands and we should avoid code duplication), only with CLI_MARKER token prepended before the whole input. Defined macro CF_CLI(cmd, args, help) for defining CLI commands in .Y files. The first argument specifies the command itself, the remaining two arguments are copied to the help file (er, will be copied after the help file starts to exist). This macro automatically creates a skeleton rule for the command, you only need to append arguments as in: CF_CLI(STEAL MONEY, <$>, [[Steal <$> US dollars or equivalent in any other currency]]): NUM { cli_msg(0, "%d$ stolen", $3); } ; Also don't forget to reset lexer state between inputs.
1999-10-28switch() { } done right.Pavel Machek
1999-08-03Basic support for IPv6. The system-dependent part doesn't work yet,Martin Mares
but the core routines are there and seem to be working. o lib/ipv6.[ch] written o Lexical analyser recognizes IPv6 addresses and when in IPv6 mode, treats pure IPv4 addresses as router IDs. o Router ID must be configured manually on IPv6 systems. o Added SCOPE_ORGANIZATION for org-scoped IPv6 multicasts. o Fixed few places where ipa_(hton|ntoh) was called as a function returning converted address.
1999-07-01Function calling in filters works - somehow. Calling syntax isPavel Machek
currently very ugly, beware. Variables are not really local - that needs to be fixed.
1999-05-26Added notion of datetimePavel Machek
1999-05-17From now we support multiple tables. The master_table variable isMartin Mares
definitely gone. Both rte_update() and rte_discard() have an additional argument telling which table should they modify. Also, rte_update() no longer walks the whole protocol list -- each table has a list of all protocols connected to this table and having the rt_notify hook set. Each protocol can also freely decide (by calling proto_add_announce_hook) to connect to any other table, but it will be probably used only by the table-to-table protocol. The default debugging dumps now include all routing tables and also all their connections.
1999-05-17Implemented two new symbol handling functions:Martin Mares
o cf_define_symbol() -- it assigns a meaning to a symbol, bailing out if it already has one. o cf_find_symbol() -- finds symbol by name and creates it if not found. Also modified filter/config.Y to make use of the first function.
1999-04-19Updated filters: they now actually see IP/pxlen of net being filtered,Pavel Machek
gateway, and who told us, so they can do usefull jobs from now on.
1999-04-12Sets of integers now actually work. Sets of IP will work as soon asPavel Machek
compare function is ready.
1999-04-07Filters upgraded - a bit. Moved code to filter.c because it is wherePavel Machek
it belongs. (f-util.c stays there for auxiliary and non-important things.)
1999-04-05Use a more reasonable pool chunk size: 4080 bytes seem to be a goodMartin Mares
approximation of a integral fraction of page size even if both malloc overhead and chunk header space is counted.
1999-03-29Update of filters towards new interface.Pavel Machek
1999-03-29After today's lengthy discussions about filter syntax, let's clean upMartin Mares
whitespace/semicolon rules for whole config file: o All non-zero amounts of whitespace are equivalent to single space (aka `all the whitespace has been born equal' ;-)). o Comments count as whitespace. o Whitespace has no syntactic signifance (it can only separate lexical elements). o Consequence: line ends are no longer treated as `;'s. o Every declaration must be terminated by an explicit `;' unless or by a group enclosed in `{' and `}'.
1999-03-26Slightly better generator of default protocol instance names.Martin Mares
1999-03-17A couple of filter tweaks:Martin Mares
o Introduced struct filter which serves as an external reference to filter. Using struct symbol for this is unwise since it doesn't allow extra information attached to the filter and it also forces all filters to be named. o Implemented config rule 'filter' which matches either named filter or an embedded unnamed filter (`{ <filter> }'). o Fixed totally bogus comment at the top of filter.h. o Added a missing prototype for f_run() to filter.h.
1999-03-09Added '=' to operator listPavel Machek
1999-03-08Filters are now a tiny bit stronger (if is actually working ;-)Pavel Machek
1999-03-02I just don't like files enclosed in <>.Pavel Machek
1999-02-13'#' comments in config files are equivalent to end of line, thereforeMartin Mares
also to implicit ';'.
1999-02-13config->router_id works again.Martin Mares
1999-02-05Implemented new configuration/reconfiguration interface and defined protocolMartin Mares
state machines. Full explanation will follow soon.
1999-01-15Original `expr' is back, filter expressions renamed to `term'.Martin Mares
In the future, we'll allow any filter term in place of `expr' and we'll just evaluate it immediately, but not now as we have no evaluation routines.
1999-01-15Killed duplicate %type for expr.Martin Mares
1999-01-15Filters, second try. This time they have their own directory.Pavel Machek
1999-01-15#if 1 that creeped into cvs killed.Pavel Machek
1999-01-15Filters added. They are unable to do anything interesting for nowPavel Machek
(with exception of printing integers to screen), but they exist.
1999-01-10New makefiles. Includes support for out-of-source-tree builds.Martin Mares
1998-12-07Added new rule for prefix length / netmask.Martin Mares
1998-12-07cf_error() now accepts any format strings instead of just an errorMartin Mares
message. Also added extra kludge to get rid of collisions of REJECT symbols.
1998-12-06Fixed bug in CF_ADDTO. How it's possible it has ever worked?Martin Mares
1998-12-06Added rule "bool" for boolean switches.Martin Mares
1998-12-06Name cleanups as suggested by Pavel:Martin Mares
- cfg_strcpy() -> cfg_strdup() - mempool -> linpool, mp_* -> lp_* [to avoid confusion with memblock, mb_*] Anyway, it might be better to stop ranting about names and do some *real* work.
1998-11-29Added configuration of the device internal protocol. This is primarilyMartin Mares
intended to serve as an example of interface pattern list use. As a side effect, you can disable generating of device routes by disabling this protocol.
1998-11-29Created new functions for allocating configuration data:Martin Mares
o cfg_alloc(size) -- generic memory allocation o cfg_allocu(size) -- unaligned memory allocation o cfg_allocz(size) -- zeroed memory allocation o cfg_strcpy(str) -- allocate a copy of a string Also fixed a bug in lexing of string literals.
1998-11-27Trivial 15-line bison excercise: Implemented expressions includingMartin Mares
user-defined numeric symbols. Whenever possible, use `expr' instead of `NUM' to get full express ion power :-)
1998-11-27First attempt at protocol configuration (now done only for RIP).Martin Mares
1998-11-27Added generator of default names.Martin Mares
1998-11-27Compile and use the new configuration code by default.Martin Mares
1998-11-27Base of the parser.Martin Mares