- May 11, 2020
-
-
Ondřej Zajíček authored
Resolve neighbors using longest prefix match. Although interface ranges should not generally collide, it may happen for unnumbered links. Thanks to Kenth Eriksson for the bugreport.
-
- Apr 09, 2020
-
-
Maria Matejka authored
This is merely a const propagation. There was no problem in there.
-
- Nov 28, 2018
-
-
Ondřej Zajíček authored
Modify protocols to use preferred address change notification instead on depending on hard-reset of interfaces in that case, and remove hard-reset in that case. This avoids issue when e.g. IPv6 protocol restarts interface when IPv4 preferred address changed (as hard-reset is unavoidable and common for whole iface). The patch also fixes a bug when removing last address does not send preferred address change notification.
-
- Jun 27, 2018
-
-
Ondřej Zajíček authored
Simplify neighbor cache code, fix several minor bugs, and improve handling of ONLINK flag.
-
- Dec 07, 2017
-
-
Ondřej Zajíček authored
Also redesign preferred address selection and update protocols to use appropriate preferred address. Based on a previous work by Jan Maria Matejka.
-
- Sep 06, 2017
-
-
Ondřej Zajíček authored
Add basic VRF (virtual routing and forwarding) support. Protocols can be associated with VRFs, such protocols will be restricted to interfaces assigned to the VRF (as reported by Linux kernel) and will use sockets bound to the VRF. E.g., different multihop BGP instances can use diffent kernel routing tables to handle BGP TCP connections. The VRF support is preliminary, currently there are several limitations: - Recent Linux kernels (4.11) do not handle correctly sockets bound to interaces that are part of VRF, so most protocols other than multihop BGP do not work. This will be fixed by future kernel versions. - Neighbor cache ignores VRFs. Breaks config with the same prefix on local interfaces in different VRFs. Not much problem as single hop protocols do not work anyways. - Olock code ignores VRFs. Breaks config with multiple BGP peers with the same IP address in different VRFs. - Incoming BGP connections are not dispatched according to VRFs. Breaks config with multiple BGP peers with the same IP address in different VRFs. Perhaps we would need some kernel API to read VRF of incoming connection? Or probably use multiple listening sockets in int-new branch. - We should handle master VRF interface up/down events and perhaps disable associated protocols when VRF goes down. Or at least disable associated interfaces. - Also we should check if the master iface is really VRF iface and not some other kind of master iface. - BFD session request dispatch should be aware of VRFs. - Perhaps kernel protocol should read default kernel table ID from VRF iface so it is not necessary to configure it. - Perhaps we should have per-VRF default table.
-
- Mar 09, 2017
-
-
Ondřej Zajíček authored
-
- Nov 09, 2016
-
-
Ondřej Zajíček authored
- Unit Testing Framework (BirdTest) - Integration of BirdTest into the BIRD build system - Tests for several BIRD modules Based on squashed Pavel Tvrdik's int-test branch, updated for current int-new branch.
-
- Nov 12, 2015
-
-
Ondřej Zajíček authored
Use net_addr for interface address prefixes, support net_addr in configuration parser.
-
- Dec 02, 2013
-
-
Ondřej Zajíček authored
-
- Dec 27, 2012
-
-
Ondřej Zajíček authored
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.
-
- Jan 23, 2012
-
-
Ondřej Zajíček authored
-
- Jan 01, 2012
-
-
Ondřej Zajíček authored
Allows using NEF_STICKY neighbors with link-local addresses. This is used for static route nexthops, they can be specified like fe80::1%eth0 .
-
- Dec 12, 2011
-
-
Ondřej Zajíček authored
Thanks Matthias Schiffer for the bugreport and the original patch.
-
- Apr 05, 2011
-
-
Ondřej Zajíček authored
-
- Mar 28, 2011
-
-
Ondřej Zajíček authored
Mainly changes IA_UNNUMBERED to IA_PEER and adds IA_HOST. Also do not show broadcast addr in show interfaces. Nobody cares for that.
-
- Nov 19, 2010
-
-
Ondřej Zajíček authored
-
- Nov 11, 2010
-
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
Also changes some symbol names (IFF_ADMIN_DOWN -> IFF_SHUTDOWN, IFF_LINK_UP -> IFF_ADMIN_UP).
-
- Mar 14, 2010
-
-
Ondřej Zajíček authored
-
- Mar 11, 2010
-
-
Ondřej Zajíček authored
-
- Feb 27, 2010
-
-
Ondřej Zajíček authored
When device protocol goes down, interfaces should be flushed asynchronously (in the same way like routes from protocols are flushed), when protocol goes to DOWN/HUNGRY. This fixes the problem with static routes staying in kernel routing table after BIRD shutdown.
-
- Feb 26, 2010
-
-
Ondřej Zajíček authored
- BSD kernel syncer is now self-conscious and can learn alien routes - important bugfix in BSD kernel syncer (crash after protocol restart) - many minor changes and bugfixes in kernel syncers and neighbor cache - direct protocol does not generate host and link local routes - min_scope check is removed, all routes have SCOPE_UNIVERSE by default - also fixes some remaining compiler warnings
-
- Sep 08, 2009
-
-
Ondřej Zajíček authored
Finally, it is working.
-
- May 29, 2009
-
-
Ondřej Zajíček authored
-
- May 06, 2009
-
-
Ondřej Zajíček authored
Allows to add more interface patterns to one common 'options' section like: interface "eth3", "eth4" { options common to eth3 and eth4 }; Also removes undocumented and unnecessary ability to specify more interface patterns with different 'options' sections: interface "eth3" { options ... }, "eth4" { options ... };
-
- Jun 01, 2000
-
-
Martin Mareš authored
(1) obsolete and (2) replaced by the progdoc.
-
Martin Mareš authored
neighbor->scope now contains proper address scope which is zero (SCOPE_HOST) for local addresses, higher (SCOPE_LINK, ..., SCOPE_UNIVERSE) for remote ones.
-
- Mar 27, 2000
-
-
Martin Mareš authored
Introduced neigh_connected_to() to serve the same purpose efficiently.
-
- Mar 26, 2000
-
-
Pavel Machek authored
-
Pavel Machek authored
-
- Mar 01, 2000
-
-
Martin Mareš authored
-
Martin Mareš authored
address, not per interface (hence it's ifa->flags & IA_UNNUMBERED) and should be set reliably. IF_MULTIACCESS should be fixed now, but it isn't wise to rely on it on interfaces configured with /30 prefix.
-
- Jan 19, 2000
-
-
Martin Mareš authored
Manual disable/enable/restart/shutdown/reconfiguration of protocols no longer hangs on loops in neighbor lists :)
-
- Dec 16, 1999
-
-
Martin Mareš authored
-
- Dec 01, 1999
-
-
Martin Mareš authored
-
- Nov 25, 1999
-
-
Martin Mareš authored
show protocols (incomplete).
-
- Aug 03, 1999
-
-
Martin Mareš authored
o Parsing of interface patterns moved to generic code, introduced this_ipatt which works similarly to this_iface. o Interface patterns now support selection by both interface names and primary IP addresses. o Proto `direct' updated. o RIP updated as well, it also seems the memory corruption bug there is gone.
-
- May 06, 1999
-
-
Martin Mareš authored
addresses per interface (needed for example for IPv6 support). Visible changes: o struct iface now contains a list of all interface addresses (represented by struct ifa), iface->addr points to the primary address (if any). o Interface has IF_UP set iff it's up and it has a primary address. o IF_UP is now independent on IF_IGNORED (i.e., you need to test IF_IGNORED in the protocols; I've added this, but please check). o The if_notify_change hook has been simplified (only one interface pointer etc.). o Introduced a ifa_notify_change hook. (For now, only the Direct protocol does use it -- it's wise to just listen to device routes in all other protocols.) o Removed IF_CHANGE_FLAGS notifier flag (it was meaningless anyway). o Updated all the code except netlink (I'll look at it tomorrow) to match the new semantics (please look at your code to ensure I did it right). Things to fix: o Netlink. o Make krt-iface interpret "eth0:1"-type aliases as secondary addresses.
-
- Mar 02, 1999
-
-
Martin Mareš authored
o Introduced if_find_by_index() o Recognizing two types of interface updates: full update (starting with if_start_update(), ending with if_end_update(), guaranteed to see all existing interfaces) and a partial update (only if_update(), usually due to asynchronous interface notifications).
-