Ondrej Zajicek
0c3d9dacaf
Fixes file descriptor leak when parser ends with error.
...
Thanks to MrBr for the bugreport.
2014-03-25 14:58:00 +01:00
Ondrej Zajicek
0c791f873a
BGP graceful restart support.
...
Also significant core protocol state changes needed for that,
global graceful restart recovery state and kernel proto support
for recovery.
2014-03-20 14:07:12 +01:00
Ondrej Zajicek
90eb5e7a8b
Use ISO 8601 timeformats by default.
2013-11-25 13:44:07 +01:00
Ondrej Zajicek
0aeac9cb7f
Merge commit 'origin/bfd'
2013-11-22 02:48:44 +01:00
Ondrej Zajicek
0e175f9f0f
Fixes some BFD bugs and makes logging thread-safe.
2013-10-05 20:12:28 +02:00
Ondrej Zajicek
6a8d3f1c1f
BFD work in progress.
...
Now it compiles and mostly works.
2013-09-16 23:57:40 +02:00
Ondrej Filip
1f64a487a0
Symbol names enclosed by apostrophes can contain colons.
2013-08-15 13:29:33 +02:00
Ondrej Zajicek
1103b32e83
Allows to define constants of all filter types.
2013-07-25 22:33:57 +02:00
Ondrej Filip
8c4da7e01d
Symbol names enclosed by apostrophes can contain DOTs.
2013-02-10 19:17:38 +01:00
Ondrej Zajicek
79b4e12e60
Implements interface masks for choosing router id.
...
Router ID could be automatically determined based of subset of
ifaces/addresses specified by 'router id from' option. The patch also
does some minor changes related to router ID reconfiguration.
Thanks to Alexander V. Chernikov for most of the work.
2012-12-27 12:56:23 +01:00
Ondrej Zajicek
a92cf57dd6
Implements undo command and optional timeout for configuration
...
Several new configure command variants:
configure undo - undo last reconfiguration
configure timeout - configure with scheduled undo if not confirmed in timeout
configure confirm - confirm last configuration
configure check - just parse and validate config file
2012-12-26 12:40:48 +01:00
Ondrej Zajicek
4be266a983
Implements wildcard matching in config file include.
...
Also fixes some minor bugs in include.
Thanks Kelly Cochran for suggestion and draft patch.
2012-07-18 19:29:33 +02:00
Ondrej Zajicek
af582c4811
Route Origin Authorization basics.
...
- ROA tables, which are used as a basic part for RPKI.
- Commands for examining and modifying ROA tables.
- Filter operators based on ROA tables consistent with RFC 6483.
2012-03-18 17:32:30 +01:00
Ondrej Zajicek
0f808c066f
Adds filtering to 'show symbols' command.
...
Thanks Alexander V. Chernikov for the original patch.
2012-03-16 12:47:12 +01:00
Ondrej Zajicek
20ab192bec
Adds filtering to 'show ospf lsadb' command.
...
Thanks Alexander V. Chernikov for the original patch.
2012-03-16 12:12:26 +01:00
Ondrej Zajicek
69a8259c5e
Allows sticky link-local neighbors.
...
Allows using NEF_STICKY neighbors with link-local addresses. This is
used for static route nexthops, they can be specified like fe80::1%eth0
.
2012-01-01 12:14:42 +01:00
Ondrej Zajicek
c32c3f88f0
Fixes parsing larger numbers on 64bit platforms.
2011-12-22 13:44:43 +01:00
Ondrej Zajicek
60fd666b79
Fixes missing header.
2011-11-10 09:22:38 +01:00
Ondrej Zajicek
a7f23f581f
Implements protocol templates.
...
Based on the patch from Alexander V. Chernikov.
Extended to support almost all protocols.
Uses 'protocol bgp NAME from TEMPLATE { ... }' syntax.
2011-11-07 00:31:23 +01:00
Ondrej Zajicek
9b7fdfc84a
Fixes for include.
2011-10-10 01:41:08 +02:00
Ondrej Filip
48ec367aab
Configuration can include other files.
2011-09-11 21:21:47 +02:00
Ondrej Zajicek
b8cc390e7e
Fixes several problems in filter syntax.
...
- Fixes several conflicts in the grammar.
- Fixes a bug in (a..b, c) pair patterns.
- Makes pair patterns orthogonal.
- Allows term expressions in pair patterns without additional ( ).
- Allows several comma separated values in switch cases.
2011-05-06 22:00:54 +02:00
Ondrej Zajicek
26d92bb892
A hack to distinguish if..else from else: in case.
...
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-23 12:49:53 +01:00
Ondrej Zajicek
93e868c730
Implements Router Advertisement protocol.
2011-03-13 11:33:50 +01:00
Ondrej Zajicek
112d71a73f
Fixes syntactic priority of '.' .
...
Dot in expressions like net.len definitely should have the highhest
priority.
2010-10-08 14:25:53 +02:00
Ondrej Zajicek
506fa1a73e
Merge several fixes suggested by Joakim Tjernlund.
2010-05-02 22:41:40 +02:00
Ondrej Zajicek
44d4ab7a96
Configurable syslog name.
...
Also fixes a bug in syslog initialization.
2010-04-07 15:34:45 +02:00
Ondrej Zajicek
97e46d28ff
Adds check for no protocol and some minor CLI fixes.
...
- Adds check to deny config file with no specified protocol to prevent
loading of empty config file.
- Moves CLI init before config parse to receive immediate error message
when cannot open control socket.
- Fixes socket name path check and other error handling in CLI init.
2010-03-17 12:19:22 +01:00
Ondrej Zajicek
e81b440f68
Fix configure to enable warnings and fix most of them.
2010-02-21 14:34:53 +01:00
Ondrej Zajicek
e304fd4bcf
Implements pattern match for 'show protocols' command.
...
And generally consolidates protocol commands.
2010-02-20 00:08:07 +01:00
Ondrej Filip
0efd646278
Define symbols as text between ''.
2010-02-10 12:30:14 +01:00
Ondrej Zajicek
76b53a4e20
Adds some log messages related to configure.
...
Also fixes a bug in the previous patch.
2010-02-06 22:57:51 +01:00
Ondrej Zajicek
c37e78510f
Makes date/time formats configurable.
2010-02-03 00:19:24 +01:00
Ondrej Filip
1960d20350
Priority for '||' and '&&' fixed.
2010-01-27 23:45:36 +01:00
Ondrej Filip
7515dafc00
Allow multiple || and && statements.
2010-01-27 22:26:45 +01:00
Ondrej Zajicek
cf31112f0d
Implements MRTdump feature.
2010-01-03 12:17:52 +01:00
Ondrej Zajicek
e75d3c74a8
Flex does not need the output of Bison.
2009-08-10 14:36:30 +02:00
Ondrej Zajicek
ea9097eaad
Fixes parallel runs of Bison.
...
Previous version of Makefile executed Bison two times (in parallel),
because of two specified targets. I am not sure wheter this is the best
fix.
Previon
2009-08-10 14:13:28 +02:00
Ondrej Zajicek
5b1f877e6e
Fixes typo in Makefile
2009-08-10 12:04:25 +02:00
Ondrej Filip
0ac39033c7
Missing dependency added.
2009-08-09 19:43:15 +02:00
Ondrej Zajicek
d72cdff411
Replace 'bind' option with 'listen' option.
...
To be consistent with other daemons.
2009-06-23 11:08:30 +02:00
Ondrej Zajicek
bf1aec970e
Adds support for soft reconfiguration.
2009-06-19 23:49:34 +02:00
Ondrej Zajicek
789772ed45
Implements option that changes BGP listening socket parametres.
2009-06-18 19:20:07 +02:00
Ondrej Zajicek
874b868544
Implements primary address selection base on 'primary' option.
2009-05-29 22:49:30 +02:00
Ondrej Zajicek
b1a597e0c3
Reimplementation of prefix sets.
...
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-31 12:55:57 +02:00
Ondrej Zajicek
cf18603491
New syntax for bgp_path
2009-03-14 12:43:10 +01:00
Ondrej Zajicek
f949163039
New syntax for bgp_path
2009-01-27 17:35:00 +01:00
Ondrej Zajicek
083c43e22e
fixes some 64-bit related bugs.
...
Filter code used 'aux' integer field of 'symbol' struct to store ptr
to next symbol and both 'aux2' and 'def' fields for value.
Changed to just 'def' for value and 'aux2' for ptr to next symbol.
Also another minor bugfix.
2008-12-25 11:55:27 +01:00
Ondrej Zajicek
1567edea8d
Bugfix for routing table breaking bug.
...
Here is a patch fixing a bug that causes breakage of a local routing
table during shutdown of Bird. The problem was caused by shutdown
of 'device' protocol before shutdown of 'kernel' protocol. When
'device' protocol went down, the route (with local network prefix)
From different protocol (BGP or OSPF) became preferred and installed
to the kernel routing table. Such routes were broken (like
192.168.1.0/24 via 192.168.1.2). I think it is also the cause
of problem reported by Martin Kraus.
The patch disables updating of kernel routing table during shutdown of
Bird. I am not sure whether this is the best way to fix it, I would
prefer to forbid 'kernel' protocol to overwrite routes with
'proto kernel'.
The patch also fixes a problem that during shutdown sometimes routes
created by Bird remained in the kernel routing table.
2008-10-26 23:09:46 +01:00
Ondrej Filip
a456788bce
New version of flex needs argument separated.
2007-06-20 12:32:39 +00:00
Ondrej Filip
0d3effcf8c
Time added in password management.
2005-02-12 22:27:55 +00:00
Martin Mares
7c103b1ee1
Marked unused parameters in core code as such.
2004-06-05 09:10:56 +00:00
Martin Mares
725270cb1d
Fixes for the programmer's manual.
2000-06-08 12:37:21 +00:00
Martin Mares
58f7d004fd
Fixes to the progdoc.
2000-06-07 13:25:53 +00:00
Martin Mares
2e9b24211a
Spelling fixes to progdoc.
2000-06-07 12:29:08 +00:00
Martin Mares
04dc62a011
Nested scopes could never have worked. My fault I wrote such a buggy code,
...
Pavel's fault that he's never tested shadowing of declarations in the filters.
cf_define_symbol() has been modified to check the scope of the symbol it's
given and it if it's an already defined symbol, but in a different scope,
a copy is created in the current scope and redefined to the new meaning,
the consequence being that it cf_define_symbol() now returns the new symbol
you need to use when assigning aux and aux2.
2000-06-04 19:30:13 +00:00
Martin Mares
58f9453776
Moved parser docs to cf-lex.l, so that the parser compiles.
2000-06-04 15:22:20 +00:00
Martin Mares
06607335ef
Documentation.
2000-06-03 18:23:00 +00:00
Martin Mares
c0b2f6463f
cf_symbol_class_name now recognizes SYM_IPA.
2000-06-03 16:56:00 +00:00
Pavel Machek
5f4aee76a2
Added && and ||.
2000-06-01 08:43:29 +00:00
Martin Mares
fcb5f4a725
Updated all the Doc files to new format.
2000-05-31 11:30:18 +00:00
Martin Mares
69a20d2eff
Recognize `!'.
2000-05-30 21:46:21 +00:00
Martin Mares
4761efdb43
Tracing of CLI connections/commands can be now controlled
...
by `debug commands <level>' in the configuration. Level 0 means
no tracing, 1 means connections only, 2 includes all commands.
2000-05-29 22:10:18 +00:00
Pavel Machek
9a09a64bb4
Use ? in path matching to avoid /* trap.
2000-05-25 14:58:38 +00:00
Pavel Machek
60de3356ab
Resolved shift/reduce conflict
2000-05-16 14:24:33 +00:00
Martin Mares
cc590a11a7
Changed syntax of expressions. Each `expr' can be now either a numeric literal
...
or a symbol or parenthesised filter expression.
2000-05-15 12:15:18 +00:00
Martin Mares
e3f2d5fce3
Cleanup of configuration.
...
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-15 11:48:23 +00:00
Martin Mares
3b1c523d79
Got rid of startup functions and filters_postconfig().
...
By the way, how do you expect pointers to fit in an int?
2000-05-15 10:53:56 +00:00
Martin Mares
d3abfbc68d
Added prefix_or_ipa.
2000-05-13 11:41:26 +00:00
Martin Mares
758458be05
Unified parsing of prefixes.
...
Had to rename `prefix' in filters to `fprefix'.
2000-05-13 11:17:49 +00:00
Martin Mares
ab1129c1bd
Added skeleton Doc files for the whole developer's documentation.
2000-05-05 17:17:42 +00:00
Martin Mares
6db8c5a63b
pxlen works even in IPv6 mode.
2000-05-04 20:02:19 +00:00
Martin Mares
a412f01ea8
Include CF_HDR section in keywords.h as well, so that protocol symbols
...
can be used in definition of ENUM's.
2000-04-28 15:12:03 +00:00
Martin Mares
2edb31b097
Split CF_HDR section to CF_HDR (only includes) and CF_DEFINES (defines,
...
C declarations etc.).
2000-04-28 15:11:10 +00:00
Martin Mares
8f6accb5bb
Event handlers no longer return re-queue flag. Instead of using it, just
...
call ev_schedule() on the same handler which should work perfectly now.
2000-04-27 22:28:49 +00:00
Pavel Machek
dcab789047
Renamed f_path to f_path_mask -- which is what it really is. Use
...
linklist instead of array of signed integers for path mask.
2000-04-12 13:07:53 +00:00
Pavel Machek
c3edb89ec1
Path masks are needed for filters.
2000-04-12 12:49:53 +00:00
Martin Mares
221135d6bf
Include "lib/string.h" instead of <string.h>. It should give us bzero()
...
and other non-portable functions on all systems.
2000-03-31 23:30:21 +00:00
Martin Mares
abf2be7d0c
Add internal commands of the client to the command list.
2000-03-12 23:04:04 +00:00
Martin Mares
4327090276
Made `show status' show uptime and time of last reconfiguration.
2000-03-12 22:44:54 +00:00
Martin Mares
6b9fa32080
Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,
...
several debug() calls converted to DBG().
2000-03-12 21:01:38 +00:00
Pavel Machek
c8d5ffafb7
Fix <=, >=, !=
2000-03-10 20:21:12 +00:00
Martin Mares
f30b86f9d5
Added configuration of default protocol debugging flags.
2000-03-07 21:50:03 +00:00
Martin Mares
16c07e3d51
Removed bogus comment.
2000-03-04 21:27:57 +00:00
Martin Mares
a58dad6238
Please *think* when defining operator priorities.
...
(-: num_of_parser_conflicts -= 42 :-)
2000-03-04 21:19:10 +00:00
Martin Mares
aee539f241
Made `datetime' more user friendly. Now it should be a quoted string
...
of type "dd-mm-yyyy".
2000-03-01 11:42:13 +00:00
Martin Mares
2ca3d9a8fc
Defined INVALID_TOKEN which is a token guaranteed to be never generated.
2000-03-01 11:30:16 +00:00
Martin Mares
0223d4fff1
Client: Online help works (Cisco style: just press `?' at the end of a line).
2000-02-17 22:00:13 +00:00
Martin Mares
f50b9e48b9
Generate a list of all commands and their help texts for the client to use.
2000-01-19 14:37:56 +00:00
Martin Mares
4b87e256eb
Split off general commands to cmds.c.
...
Added `show symbols' command which dumps whole symbol table together
with symbol types etc.
2000-01-19 12:30:19 +00:00
Martin Mares
d272fe22dd
Separated `official protocol names' used in status dumps from name templates
...
used for automatic generation of instance names.
protocol->name is the official name
protocol->template is the name template (usually "name%d"),
should be all lowercase.
Updated all protocols to define the templates, checked that their configuration
grammar includes proto_name which generates the name and interns it in the
symbol table.
2000-01-17 11:52:50 +00:00
Martin Mares
ca0edc5395
When a quoted string is encountered, don't forget to copy it to the
...
config pool before passing it to the parser.
2000-01-16 23:36:53 +00:00
Martin Mares
bf8558bc9c
Converted shutdown to a kind of reconfiguration, it's no more handled
...
as a exception in protocol state machines. Introduced a `shutdown'
CLI command. Killed few reconfiguration bugs.
2000-01-16 17:40:26 +00:00
Martin Mares
50fe90edf3
First attempt on dynamic reconfiguration. There are still lots of bugs
...
and problems to solve, but the hardest part works.
2000-01-16 16:44:50 +00:00
Martin Mares
4ab5331c63
Added type `g' for void (general) pointer.
1999-12-06 13:50:50 +00:00
Martin Mares
7c0cc76ed7
Moved initialization of protocol list to proto.c.
...
Added sysdep configuration hooks.
1999-12-06 13:44:45 +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
730f2e2c8c
Added dumping of routing tables (`show route'). This includes filtering.
1999-12-01 15:10:21 +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