summaryrefslogtreecommitdiff
path: root/conf/conf.c
AgeCommit message (Collapse)Author
2018-09-18The MRT protocolOndrej Zajicek (work)
The new MRT protocol is responsible for periodic RIB table dumps in the MRT format (RFC 6396). Also the existing code for BGP4MP MRT dumps is refactored and splitted between BGP to MRT protocols, will be more integrated into MRT in the future. Example: protocol mrt { table "*"; filename "%N_%F_%T.mrt"; period 60; } It is partially based on the old MRT code from Pavel Tvrdik.
2018-09-11Conf: Show the line:char position where the syntax error happensJan Maria Matejka
2017-05-25Conf: Replace keyword and symbol hash table with generic hash table.Ondrej Zajicek (work)
The old hash table had fixed size, which makes it slow for config files with large number of symbols and symbol lookups. The new one is growing according to needs.
2016-11-08Minor code cleanupsOndrej Zajicek (work)
2016-11-01Build: switch on -Wextra, get rid of most of the warningsJan Moskyto Matejka
There are several unresolved -Wmissing-field-initializers on older versions of GCC than 5.1, all of them false positive.
2016-06-27cppcheck: fix va_end() functionsPavel TvrdĂ­k
2015-11-09Conf: Fixes bug in symbol lookup during reconfigurationOndrej Zajicek (work)
Symbol lookup by cf_find_symbol() not only did the lookup but also added new void symbols allocated from cfg_mem linpool, which gets broken when lookups are done outside of config parsing, which may lead to crashes during reconfiguration. The patch separates lookup-only cf_find_symbol() and config-modifying cf_get_symbol(), while the later is called only during parsing. Also new_config and cfg_mem global variables are NULLed outside of parsing.
2014-03-25Fixes file descriptor leak when parser ends with error.Ondrej Zajicek
Thanks to MrBr for the bugreport.
2014-03-20BGP graceful restart support.Ondrej Zajicek
Also significant core protocol state changes needed for that, global graceful restart recovery state and kernel proto support for recovery.
2013-11-25Use ISO 8601 timeformats by default.Ondrej Zajicek
2012-12-27Implements interface masks for choosing router id.Ondrej Zajicek
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-26Implements undo command and optional timeout for configurationOndrej Zajicek
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-07-18Implements wildcard matching in config file include.Ondrej Zajicek
Also fixes some minor bugs in include. Thanks Kelly Cochran for suggestion and draft patch.
2012-03-18Route Origin Authorization basics.Ondrej Zajicek
- 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.
2011-11-07Implements protocol templates.Ondrej Zajicek
Based on the patch from Alexander V. Chernikov. Extended to support almost all protocols. Uses 'protocol bgp NAME from TEMPLATE { ... }' syntax.
2011-09-11Configuration can include other files.Ondrej Filip
2010-03-17Adds check for no protocol and some minor CLI fixes.Ondrej Zajicek
- 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-02-06Adds some log messages related to configure.Ondrej Zajicek
Also fixes a bug in the previous patch.
2010-02-03Makes date/time formats configurable.Ondrej Zajicek
2010-01-03Implements MRTdump feature.Ondrej Zajicek
2009-06-23Replace 'bind' option with 'listen' option.Ondrej Zajicek
To be consistent with other daemons.
2009-06-19Adds support for soft reconfiguration.Ondrej Zajicek
2009-06-18Implements option that changes BGP listening socket parametres.Ondrej Zajicek
2008-10-26Bugfix for routing table breaking bug.Ondrej Zajicek
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.
2004-06-05Marked unused parameters in core code as such.Martin Mares
2000-06-08Fixes for the programmer's manual.Martin Mares
2000-06-07Fixes to the progdoc.Martin Mares
2000-06-07Spelling fixes to progdoc.Martin Mares
2000-06-03Documentation.Martin Mares
2000-05-15Got rid of startup functions and filters_postconfig().Martin Mares
By the way, how do you expect pointers to fit in an int?
2000-04-27Event handlers no longer return re-queue flag. Instead of using it, justMartin Mares
call ev_schedule() on the same handler which should work perfectly now.
2000-03-12Made `show status' show uptime and time of last reconfiguration.Martin Mares
2000-03-12Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,Martin Mares
several debug() calls converted to DBG().
2000-03-07Added configuration of default protocol debugging flags.Martin Mares
2000-01-16Converted shutdown to a kind of reconfiguration, it's no more handledMartin Mares
as a exception in protocol state machines. Introduced a `shutdown' CLI command. Killed few reconfiguration bugs.
2000-01-16First attempt on dynamic reconfiguration. There are still lots of bugsMartin Mares
and problems to solve, but the hardest part works.
1999-12-06Moved initialization of protocol list to proto.c.Martin Mares
Added sysdep configuration hooks.
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-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-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-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-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-02I just don't like files enclosed in <>.Pavel Machek
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.