summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2009-01-13Fix typo.Ondrej Zajicek
2009-01-13Fix OSPF protocol error recovery behavior.Ondrej Zajicek
When OSPF neighbor state drops down to EXSTART, clear LSA request and retransmit lists, as specified by RFC. I hope that this will prevent oscillations between EXSTART and LOADING states, which sometimes happened. It also contains related fix from Yury Shevchuk that properly resets DB summary list iterator.
2009-01-12Add check detecting packet overwrite in TX buffer.Ondrej Zajicek
2009-01-12Slist updateOndrej Zajicek
2009-01-11Some fixes and update of OSPF debug messagesOndrej Zajicek
2009-01-11Move check for NULL before usage of variable.Ondrej Zajicek
2009-01-11Fixes bug in OSPFOndrej Zajicek
Checksum was not recalculated when LSA was changed and packets with bad checksum were sent.
2008-12-25Bugfix in interpretOndrej Zajicek
Missing cases in filter code interpret leads to crash when bgp_next_hop attr was queried.
2008-12-25fixes some 64-bit related bugs.Ondrej Zajicek
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-24Adds support for fallback to capabilityless BGP connectOndrej Zajicek
When capability related error is received, next connect will be without capabilities. Also cease error subcodes descriptions (according to [RFC4486]) are added.
2008-12-24Fixes bug related to reconfiguration of BGP.Ondrej Zajicek
BGP keeps its copy of configuration ptr and didn't update it during reconfiguration. But old configuration is freed during reconfiguration. That leads to unnecessary reset of BGP connection during reconfiguration (old conf is corrupted and therefore different) and possibly other strange behavior.
2008-12-19Major changes to BGPOndrej Zajicek
Fixes two race conditions causing crash of Bird, several unhandled cases during BGP initialization, and some other bugs. Also changes handling of startup delay to be more useful and implement reporting of last error in 'show protocols' command.
2008-12-18Fixes nasty bug in event processing.Ondrej Zajicek
WALK_LIST_DELSAFE (in ev_run_list) is not safe with regard to deletion of next node. When some events are rescheduled during event execution, it may lead to deletion of next node and some events are skipped. Such skipped nodes remain in temporary list on stack and the last of them contains 'next' pointer to stack area. When this event is later scheduled, it damages stack area trying to remove it from the list, which leads to random crashes with funny backtraces :-) .
2008-12-12rx_hook may be cleaned in some callback so we check it beforeOndrej Zajicek
executing sk_read().
2008-12-08Fixes core state machine.Ondrej Zajicek
The core state machine was broken - it didn't free resources in START -> DOWN transition and might freed resources after UP -> STOP transition before protocol turned down. It leads to deadlock on olock acquisition when lock was not freed during previous stop. The current behavior is that resources, allocated during DOWN -> * transition, are freed in * -> DOWN transition, and flushing (scheduled in UP -> *) just counteract feeding (scheduled in * -> UP). Protocol fell down when both flushing is done (if needed) and protocol reports DOWN. BTW, is thera a reason why neighbour cache item acquired by protocol is not tracked by resource mechanism?
2008-11-22Fixes race condition leading to memory corruption and crash.Ondrej Zajicek
When protocol started, feeding was scheduled. If protocol got down before feeding was executed, then function responsible for connecting protocol to kernel routing tables was called after the function responsible for disconnecting, then resource pool of protocol was freed, but freed linked list structures remains in the list.
2008-11-21Fixes segfault with multiple routing tables.Ondrej Zajicek
2008-11-21I am not sure whether this is proper fix for a problem that birdcOndrej Zajicek
shows only parts of larger outputs (for example 'show route all'). It seems that birdc reads (from bird) and writes (to stdout) everything but during execution of some readline code some already written output disappeared (although it is fflush()ed and tcdrain()ed). As birdc reads from stdin when select said there are some data, O_NONBLOCK for stdin is unnecessary and when it is removed, i didn't notified this problem.
2008-11-21This is bug, isn't it?Ondrej Zajicek
2008-11-21birdc died during terminal resize because of unhandled EINTROndrej Zajicek
in select loop.
2008-11-16Fix some bugs in filter interpret.Ondrej Zajicek
2008-11-16Fix bug in AS path matchingOndrej Zajicek
2008-11-14Fixes feeding of new protocol, only preferred routes are announced.Ondrej Zajicek
2008-11-14OSPF routes appeared with random value of ospf_tag attribute.Ondrej Zajicek
This patch fixes it.
2008-11-14New read-only route attribute 'proto' added. It returns a stringOndrej Zajicek
representing a name of the protocol that originated the route. Strings can be compared using = or matched using ~. Routes can be filtered, for example: show route where proto ~ "bgp1*"
2008-11-08Proper format functions for ORIGINATOR_ID, CLUSTER_LISTOndrej Zajicek
2008-11-08Fix bugs in OSPF MD5 authentication. First bug is that defaultOndrej Zajicek
values for MD5 password ID changed during reconfigure, Second bug is that BIRD chooses password in first-fit manner, but RFC says that it should use the one with the latest generate-from. It also modifies the syntax for multiple passwords. Now it is possible to just add more 'password' statements to the interface section and it is not needed to use 'passwords' section. Old syntax can be used too.
2008-11-06Uprava configureOndrej Zajicek
2008-11-05Fix problem with local time changes.Ondrej Zajicek
2008-11-05Fixes bugs in IPv6 code caused by recent commits.Ondrej Zajicek
2008-11-04These warnings are so abundant (because char * / byte * mix) that theyOndrej Zajicek
are completely useless.
2008-11-04Ignore messages related to wireless extensions.Ondrej Zajicek
2008-11-01Multihop BGP was completely broken, because listening socket has alwaysOndrej Zajicek
ttl 1.
2008-11-01Implementation of route server.Ondrej Zajicek
2008-10-29Fix race condition that breaks BGP connections after reconfigure.Ondrej Zajicek
RFC says that only connections in OpenConfirm and Established state should participate in connection collision detection. The current implementation leads to race condition when both sides are trying to connect at the almost same time, then both sides receive OPEN message by different connections at the almost same time and close the other connection. Both connections are closed and the both sides end in start/idle or start/active state.
2008-10-28Fixes some sloppiness of commit a3b70dc499b64f41aa776b5b4afee5c7bfb8dfa6.Ondrej Zajicek
2008-10-27Merge branch 'dev' into outOndrej Zajicek
2008-10-27Two new informative CLI commands for OSPF.Ondrej Zajicek
Two new CLI commands for OSPF giving nice informative (and still machine parsable) representation of OSPF network graph (based on datas from the LSA database). The first command (show ospf topology) shows routers, networks and stub networks, The second command (show ospf state) shows also external routes and area-external networks and routers propagated by given area boundary router.
2008-10-26Check of socket name lengthOndrej Zajicek
2008-10-26Missing newline.Ondrej Zajicek
2008-10-26Bugfix in LSA origination for PTP OSPF links.Ondrej Zajicek
The code generating LSAs for PTP OSPF links is buggy. The old behavior is that it generates PTP link if there is a full/ptp neighbor and stub link if there isn't. According to RFC 2328, the correct behavior is to generate stub link in both cases (in the first case together with PTP link). And because of buggy detection of unnumbered networks, for numbered networks the code creates stub links with 0.0.0.0/32.
2008-10-26Do not repeat 'Invalid broadcast address' error message.Ondrej Zajicek
'Invalid broadcast address' error is reported only once for an interface and not during every interface scan.
2008-10-26Ignore unknown netlink events.Ondrej Zajicek
Bird sometimes reported 'bird: nl_parse_link: Malformed message received'. The cause is that bird asynchronously received netlink packet from wireless driver about some wireless event on its link layer. In that case bird shouldn't complain.
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.
2008-10-26Bugfixes in MULIT_EXIT_DISC attribute handling.Ondrej Zajicek
- Old MED handling was completely different from behavior specified in RFCs - for example they havn't been propagated to neighboring areas. - Update tie-breaking according to RFC 4271. - Change default value for 'default bgp_med' configuration option according to RFC 4271.
2008-10-26Bugfix in LOCAL_PREF attribute handling.Ondrej Zajicek
2008-10-26Update of a documentation - new options for AS4, MD5 auth and route reflection.Ondrej Zajicek
2008-10-26Implementation of an option for disabling AS4 support per BGP instance.Ondrej Zajicek
2008-10-26Implementation of route reflection for BGPOndrej Zajicek
2008-10-26Implementation of MD5 authentication of BGP sessions.Ondrej Zajicek