Ondrej Zajicek [Wed, 24 Jul 2013 12:11:12 +0000 (14:11 +0200)]
Fixes bug in protocol flushing and rtable pruning.
When route was propagated to another rtable through a pipe and then the
pipe was reconfigured softly in such a way that any subsequent route
updates are filtered, then the source protocol shutdown didn't clean up
the route in the second rtable which caused stale routes and potential
crashes.
Ondrej Zajicek [Mon, 24 Jun 2013 14:37:30 +0000 (16:37 +0200)]
Better packet priority and traffic class handling.
Implements support for IPv6 traffic class, sets higher priority for OSPF
and RIP outgoing packets by default and allows to configure ToS/DS/TClass
IP header field and the local priority of outgoing packets.
Ondrej Zajicek [Thu, 13 Jun 2013 09:27:14 +0000 (11:27 +0200)]
Fixes problems with kernel routes multiple routing tables.
Temporary dummy routes created by a kernel protocol during routing table
scan get mixed with real routes propagated from another kernel protocol
through a pipe.
Ondrej Zajicek [Tue, 23 Apr 2013 00:42:35 +0000 (02:42 +0200)]
Restructures birdc and birdcl to merge duplicated code.
The BIRD client code is restructured that most of the code (including
main function) is shared in client.c, while birdc.c and birdcl.c contain
just I/O-specific callbacks. This removes all duplicated code from
variant-specific files.
Ondrej Zajicek [Wed, 17 Apr 2013 13:09:50 +0000 (15:09 +0200)]
Adds two new default GCC options.
Adds two new default GCC options related to optimizations
(-fno-strict-aliasing and -fno-strict-overflow). This
should fix some hyperaggressive GCC optimizations.
Ondrej Zajicek [Wed, 17 Apr 2013 11:06:40 +0000 (13:06 +0200)]
Fixes a compatibility issue in OSPFv2 PtP links.
BIRD used zero netmask in hello packets on all PtP links, not just on
unnumbered ones. This patch fixes it and adds option 'ptp netmask'
for overriding the default behavior.
Thanks to Alexander V. Chernikov for the original patch.
Ondrej Zajicek [Tue, 16 Apr 2013 14:22:31 +0000 (16:22 +0200)]
Better handling of global addresses as configured NBMA neighbors in OSPFv3.
Configured NBMA neighbors in OSPFv3 should be link-local addresses, old
behavior was to silently ignore global ones. The patch allows BIRD to
accept global ones, but adds a warning and a documentation notice.
Tomas Hlavacek [Sat, 6 Apr 2013 20:07:32 +0000 (22:07 +0200)]
Fix birdcl async message handling
Fix handling of async messafe in the bird light client. The async message
may occure at the any moment so we need the client to liste for the
message from server when it waits for user input.
Tomas Hlavacek [Tue, 19 Mar 2013 17:02:40 +0000 (18:02 +0100)]
Fix birdcl questionmark handling
Fix handling of questionmark handling in the bird light client. The
questionmark should display help when it is the last non-blank character on
command line. Otherwise the questionmark does not have any special meaning
and it could be a part of a pattern.
Tomas Hlavacek [Sun, 24 Feb 2013 22:47:22 +0000 (23:47 +0100)]
Add lightweight client - birdcl
Restructure client/ subdir. Add two different flavors of client.
The full featured birdc client code is in client/birdc/.
The new light client birtcl is in client/birdcl/.
Common sources of both clients are directly in client/.
Rework on-line auto-completion in client/command.c to conditionally turn off
ncurses-specific code.
Add lightweight client without libreadline and ncurses dependencies - birdcl.
The birdcl lacks support of history, on-line auto-completion and there
are different implementations of "more" functionality and help on '?' press.
New client operates in canonical terminal mode (apart from "more" display)
and therefore all commands have to be executed by a return key including help
commands (called by '?' character in the end of the line).
Apart from these limitations the interaction style should be the same as
for the full client - birdc.
Build of birdcl is always on (independent on --enable-client parameter).
Tomas Hlavacek [Wed, 23 Jan 2013 14:51:04 +0000 (15:51 +0100)]
Rename client/client.c to client_full.c
Rename client/client.c to client-full.c and change the Makefile accordingly.
This is a preparation step for introducing a new lightweight client which
should reuse as much code as possible from the old one but it should not depend
on external libraries.
Signed-off-by: Tomas Hlavacek <tmshlvck@gmail.com>
Ondrej Zajicek [Fri, 8 Feb 2013 22:58:27 +0000 (23:58 +0100)]
Implements router advertisements activated by received routes.
The RAdv protocol could be configured to change its behavior based on
availability of routes, e.g., do not announce router lifetime when a
default route is not available.
Ondrej Zajicek [Thu, 27 Dec 2012 11:56:23 +0000 (12:56 +0100)]
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.
Ondrej Zajicek [Wed, 26 Dec 2012 11:40:48 +0000 (12:40 +0100)]
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
Ondrej Zajicek [Thu, 15 Nov 2012 13:08:20 +0000 (14:08 +0100)]
Change unnamed ptp link description on OSPFv2.
Although it is a slight deviation from the standard, it has no ill
consequences for OSPFv2 and the change fixes a compatibility issue
with some broken implementations.
Ondrej Zajicek [Sat, 10 Nov 2012 13:26:13 +0000 (14:26 +0100)]
Allows rejected routes to be kept and examined.
When 'import keep rejected' protocol option is activated, routes
rejected by the import filter are kept in the routing table, but they
are hidden and not propagated to other protocols. It is possible to
examine them using 'show route rejected'.