summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-10-25Filter: Fix minor bug in accessing bgp_pathOndrej Zajicek (work)
Not relevant for regular BGP paths, just for BGP paths added by filters to e.g. static routes.
2018-10-11Fix installation with --disable-clientOndrej Zajicek (work)
The old check assumed that @CLIENT@ does not contain birdc, which is not true in 2.0 branc. Thanks to Thomas Petazzoni for the bugreport and original patch.
2018-10-11Nest: Fix 'show interfaces summary' commandOndrej Zajicek (work)
The command showed interfaces that were removed / in shutdown.
2018-10-01Lib: Add and use ev_new_init()Ondrej Zajicek (work)
2018-10-01BGP: Fix bug in show protocol related to LLGROndrej Zajicek (work)
When channel is not active due to not be negotiated during sessino establishment, the LLGR timer is not allocated, so we should not show it.
2018-09-18No more warnings ...Jan Maria Matejka
no more warnings No more warnings over me And while it is being compiled all the log is black and white Release BIRD now and then let it flee (use the melody of well-known Oh Freedom!)
2018-09-11Conf: Show the line:char position where the syntax error happensJan Maria Matejka
2018-08-28Main: Add -b to force background even in debug modeJan Maria Matejka
2018-08-24Doc: Fix description of 'description'Ondrej Zajicek (work)
Thanks to Clemens Schrimpe for the bugreport.
2018-08-22Lib: recursive printfJan Maria Matejka
Use like this: void func(const char *msg, va_list args) { ... bvsnprintf(buf, len, "file %s, line %d: %V (foo %d, bar %d)", file, line, msg, &args, foo, bar); ... }
2018-08-21DOC: Remove pipe mode referenceOndrej Zajicek (work)
Pipe mode was removed in 2.0, remove reference to it in the documentation. Thanks to Piotr Wydrych for the bugreport.
2018-08-14Bison: A bit more verbose error messages in config.Jan Maria Matejka
2018-08-14Make: Add option to force colors in compiler outputJan Maria Matejka
2018-08-14M4: generate synchronization linesJan Maria Matejka
This also includes Bison version check. Versions before 3.0 don't support them in a reliable way and we don't promise to work with versions older than 2.4.
2018-08-13sysdep/unix/main.c: Remove trailing spacesPavel Tvrdik
2018-08-07Doc: Fix notes related to obsolete optionOndrej Zajicek (work)
Thanks to Julien Dessaux for the report.
2018-07-31BGP: Long-lived graceful restartOndrej Zajicek (work)
The patch implements long-lived graceful restart for BGP, namely draft-uttaro-idr-bgp-persistence-03.
2018-07-28BSD: Use MSG_DONTROUTE for unicast packets on FreeBSDOndrej Zajicek (work)
BSD systems cannot use SO_DONTROUTE, because it does not work properly with multicast packets (perhaps it tries to find iface based on multicast group address). But we can use MSG_DONTROUTE sendmsg() flag for unicast packets. Works on FreeBSD, is ignored on OpenBSD and is broken on NetBSD (i guess due to integrated routing table and ARP table).
2018-07-19RAdv: Fix crash during prefix changeOndrej Zajicek (work)
Thanks to Julian Schuh for the bugreport.
2018-07-19OSPF: Fix crash during route removalOndrej Zajicek (work)
The bug was introduced by an earler patch which removed additional eattr argument to rt_notify hook.
2018-07-06Nest: Fix race condition during reconfiguration, part 2Ondrej Zajicek (work)
If export filter is changed during reconfiguration and a route disappears between reconfiguration and refeed (e.g., if the route is a static route also removed during the reconfiguration), the route is not withdrawn. The issue was fixed for regular channels by an earlier patch. This patch fixes the issue for channels in RA_ACCEPTED mode (first-pass-the-filter), used by BGP with 'secondary' option.
2018-07-03Cleanup some warningsOndrej Zajicek (work)
2018-07-03Nest: Fix race condition during reconfigurationOndrej Zajicek (work)
If export filter is changed during reconfiguration and a route disappears between reconfiguration and refeed (e.g., if the route is a static route also removed during the reconfiguration), the route is not withdrawn. The patch fixes that by adding tx reconfiguration timestamp.
2018-07-01BGP: Use implicit-NULL label when announcing MPLS routes with local next-hopOndrej Zajicek (work)
We currently cannot assing local labels, but we can still be LSP egress router. Therefore when we announce labeled route with local next-hop, we should announce implicit-NULL label instead of rejecting it completely.
2018-07-01BGP: Fix parsing of MPLS withdrawalsOndrej Zajicek (work)
RFC 3107 was bit vague with regard to labeled withdrawals, RFC 8277 clarified that. The old code was incompatible with some implementations, namely with Juniper. Thanks to Vadim Fedorenko for the original patch.
2018-06-29BGP: Attribute set function merged with its common counterpartMaria Jan Matejka
2018-06-27BSD: Fix of the previous commitOndrej Zajicek (work)
2018-06-27Nest: Neighbor cache cleanupsOndrej Zajicek (work)
Simplify neighbor cache code, fix several minor bugs, and improve handling of ONLINK flag.
2018-06-26Autotools: updated config.guess and config.subMaria Matejka
Updated to version 63b4ce2e8c28aee6a32133e400436e4ca885215a from git://git.savannah.gnu.org/config.git Previous version was 93b5037172b15ad28952481933517f1ba93d125b
2018-06-26Android: check for extra libs needed for buildMaria Matejka
2018-06-26Doc: renamed progdoc files Doc -> progdoc to fix collision with doc/ folder ↵Maria Matejka
on case-insensitive filesystems
2018-06-26Config: Dropping CF_ADDTO.Jan Maria Matejka
2018-06-19Filter: fixed eattr cached pointerJan Maria Matejka
Use ACCESS_RTE to guard **f_rte, use ACCESS_EATTRS to guard **f_eattrs. Use f_rta_cow() before writing to rta or eattrs, use f_rte_cow() before writing preference (stored in rte). Do not access eattrs indirectly through (*f_rte)->attrs->eattrs, it is way too slow. The cached pointer is faster.
2018-06-19Merge branch 'int-new' into HEADJan Maria Matejka
2018-06-13Babel: Fix handling of missing IPv4 next hopsOndrej Zajicek (work)
In case of missing IPv4 next hop, we should skip such routes on transmit and ignore such routes on receive. Thanks to Julian Schuh for the bugreport and Toke Hoiland-Jorgensen for the original patch.
2018-06-13BGP: Handle missing NEXT_HOP attribute properlyOndrej Zajicek (work)
RFC 7606 specifies handle-as-withdraw instead of session reset.
2018-05-30Nest: Removing separate tmpa from route propagationJan Maria Matejka
This is a fundamental change of an original (1999) concept of route processing inside BIRD. During import/export, there was a temporary ea_list created which was to be used instead of the another one inside the route itself. This led to some confusion, quirks, and strange filter code that handled extended route attributes. Dropping it now. The protocol interface has changed in an uniform way -- the `struct ea_list *attrs` argument has been removed from store_tmp_attrs(), import_control(), rt_notify() and get_route_info().
2018-05-29OSPF: Fix invalid NSSA RFC referencesOndrej Zajicek (work)
2018-05-29Protocol: Introducing an enum protocol_classJan Maria Matejka
This supersedes the EAP_* constants.
2018-05-29Filter: macro for recursive interpretation of instructionsJan Maria Matejka
2018-05-29Filter: Simple type checks converted to ARG() macroJan Maria Matejka
2018-05-29Filter: Removing the third argument hackJan Maria Matejka
Just to make the code a bit more clean and easier to maintain.
2018-05-29Filter: instruction namesJan Maria Matejka
2018-05-29Filter: Instruction codes linearizedJan Maria Matejka
2018-05-29Macro: Added a bunch of dirty C preprocessor tricksJan Maria Matejka
Included are Makefile implicit rules to show the preprocessed source. When debugging something around this, it may be handy.
2018-05-24Do not initialize route metrics in import_control hookOndrej Zajicek (work)
During route export, the receiving protocol often initialized route metrics to default value in its import_control hook before export filter was executed. This is inconsistent with the expectation that an export filter would process the same route as one in the routing table and it breaks setting these metrics before (e.g. for static routes directly in static protocol). The patch removes the initialization of route metrics in import_control hook, the default values are already handled in rt_notify hook called after export filters. The patch also changed the behavior of OSPF to keep metrics when a route is reannounced between OSPF instances (to be consistent with other protocols) and the behavior when both ospf_metric1 and ospf_metric2 are specified (to have more expected behavior).
2018-05-16Filter: Add support for src filter op to access SADR source prefixOndrej Zajicek (work)
The patch allows to use 'net.src' to access SADR source prefix from filters. Thanks to Toke Hoiland-Jorgensen for the original patch for srclen.
2018-05-03Better initialization of random generatorOndrej Zajicek (work)
Use full time precision to initialize random generator. The old code was prone to initialize it to the same values in specific circumstances (boot without RTC, multiple VMs starting at once).
2018-05-03Babel: Add option to randomize router IDOndrej Zajicek (work)
When a Babel node restarts, it loses its sequence number, which can cause its routes to be rejected by peers until the state is cleared out by other nodes in the network (which can take on the order of minutes). There are two ways to fix this: Having stable storage to keep the sequence number across restarts, or picking a different router ID each time. This implements the latter, by introducing a new option that will cause BIRD to randomize a high 32 bits of router ID every time it starts up. This avoids the problem at the cost of not having stable router IDs in the network. Thanks to Toke Hoiland-Jorgensen for the patch.
2018-05-03Babel: Fix type of route entry router IDOndrej Zajicek (work)
The router ID being assigned to routes was a uint, which discards the upper 32 bits. This also has the nice side effect of echoing the wrong router ID back to other routers. Thanks to Toke Hoiland-Jorgensen for the patch.