summaryrefslogtreecommitdiff
path: root/conf/confbase.Y
AgeCommit message (Collapse)Author
2011-03-23A hack to distinguish if..else from else: in case.Ondrej Zajicek
The old BIRD grammar needs two lookaheads to distinguish if..else from else: in case, which caused the parser to fail on some combinations of both expressions. This patch replaces two tokens 'else' ':' by one token 'else:' to fix that.
2011-03-13Implements Router Advertisement protocol.Ondrej Zajicek
2010-10-08Fixes syntactic priority of '.' .Ondrej Zajicek
Dot in expressions like net.len definitely should have the highhest priority.
2010-02-20Implements pattern match for 'show protocols' command.Ondrej Zajicek
And generally consolidates protocol commands.
2010-02-03Makes date/time formats configurable.Ondrej Zajicek
2010-01-27Priority for '||' and '&&' fixed.Ondrej Filip
2010-01-27Allow multiple || and && statements.Ondrej Filip
2009-05-29Implements primary address selection base on 'primary' option.Ondrej Zajicek
2009-03-31Reimplementation of prefix sets.Ondrej Zajicek
Prefix sets were broken beyond any repair and have to be reimplemented. They are reimplemented using a trie with bitmasks in nodes. There is also change in the interpretation of minus prefix pattern, but the old interpretation was already inconsistent with the documentation and broken. There is also some bugfixes in filter code related to set variables.
2009-03-14New syntax for bgp_pathOndrej Zajicek
2005-02-12Time added in password management.Ondrej Filip
2000-06-04Moved parser docs to cf-lex.l, so that the parser compiles.Martin Mares
2000-06-03Documentation.Martin Mares
2000-06-01Added && and ||.Pavel Machek
2000-05-16Resolved shift/reduce conflictPavel Machek
2000-05-15Changed syntax of expressions. Each `expr' can be now either a numeric literalMartin Mares
or a symbol or parenthesised filter expression.
2000-05-15Cleanup of configuration.Martin Mares
o Use `expr' instead of `NUM' and `ipa' instead of `IPA', so that defined symbols work everywhere. o `define' now accepts both numbers and IP addresses. o Renamed `ipa' in filters to `fipa'. Pavel, please update filters to accept define'd symbols as well.
2000-05-13Added prefix_or_ipa.Martin Mares
2000-05-13Unified parsing of prefixes.Martin Mares
Had to rename `prefix' in filters to `fprefix'.
2000-05-04pxlen works even in IPv6 mode.Martin Mares
2000-04-12Renamed f_path to f_path_mask -- which is what it really is. UsePavel Machek
linklist instead of array of signed integers for path mask.
2000-04-12Path masks are needed for filters.Pavel Machek
2000-03-31Include "lib/string.h" instead of <string.h>. It should give us bzero()Martin Mares
and other non-portable functions on all systems.
2000-03-04Removed bogus comment.Martin Mares
2000-03-04Please *think* when defining operator priorities.Martin Mares
(-: num_of_parser_conflicts -= 42 :-)
2000-03-01Made `datetime' more user friendly. Now it should be a quoted stringMartin Mares
of type "dd-mm-yyyy".
2000-03-01Defined INVALID_TOKEN which is a token guaranteed to be never generated.Martin Mares
1999-12-06Added type `g' for void (general) pointer.Martin Mares
1999-12-02I tried to turn on the YYERROR_VERBOSE switch, but bison is buggy as hell,Martin Mares
so it doesn't even compile. Turned it again off and added a comment on it.
1999-12-01Added dumping of routing tables (`show route'). This includes filtering.Martin Mares
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-10Enumerational types, defined keyword added.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-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-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-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-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-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-15Filters added. They are unable to do anything interesting for nowPavel Machek
(with exception of printing integers to screen), but they exist.