summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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.
2018-05-03Makefile: Only set git version if BIRD is build from its repository.Jan Maria Matejka
Thanks to Toke Høiland-Jørgensen <toke@toke.dk> for reporting this bug.
2018-04-27Filter: Added missing instruction comparators.Jan Maria Matejka
These instructions caused SIGABORTs on reconfiguration.
2018-04-25OSPF: Support of authentication trailer for OSPFv3Ondrej Zajicek (work)
Implement RFC 7166, crypthographic authentication for OSPFv3 analogous to authentication used for OSPFv2.
2018-04-12BGP: Fix extended next hop handlingOndrej Zajicek (work)
For IPv4 with extended next hop, we use MP-BGP format and therefore no independent NEXT_HOP attribute. Thanks to Arvin Gan for the bugreport.
2018-04-03Doc: Documentation for BGP disable after cease optionOndrej Zajicek (work)
2018-04-03Doc: Documentation for BGP extended next hop featureOndrej Zajicek (work)
Thanks to Arvin Gan for the bugreport.
2018-03-24Doc: Remove some superfluous slashesOndrej Zajicek (work)
2018-03-23Autoconf replaced by autoreconfOndrej Filip
2018-03-22Date added.v2.0.2Ondrej Filip
2018-03-22Merge branch 'int-new' of ssh://gitlab.labs.nic.cz/labs/bird into int-newOndrej Filip
2018-03-21NEWS and version updateOndrej Zajicek (work)
2018-03-21Doc: Minor updateOndrej Zajicek (work)
2018-03-20Doc: Redesign default config fileOndrej Zajicek (work)
The old one does not work with 2.0.x.
2018-03-19Merge remote-tracking branch 'birdlab-tmp/int-new' into int-newOndrej Zajicek (work)
2018-03-18Nest: Fix table reconfiguration when nettype changesOndrej Zajicek (work)
Thanks to Toke Hoiland-Jorgensen for the bugreport.
2018-03-18Nest: SADR support for DirectOndrej Zajicek (work)
2018-03-17Doc: SADR documentationOndrej Zajicek (work)
2018-03-17Doc: Update BGP documentationOndrej Zajicek (work)
Thanks to Joshua McQuistan for the bugreport.
2018-03-14Merge branch 'master' into int-newJan Maria Matejka
2018-03-14Filter: make bgpmask literals real constructorsJan Maria Matejka
The bgpmask literals can include expressions. This is OK but they have to be interpreted as soon as the code is run, not in the time the code is used as value. This led to strange behavior like rewriting bgpmasks when they shan't be rewritten: function mask_generator(int as) { return [= * as * =]; } function another() bgpmask m1; bgpmask m2; { m1 = mask_generator(10); m2 = mask_generator(20); if (m1 == m2) { print("strange"); # this would happen } } Moreover, sending this to CLI would cause stack overflow and knock down the whole BIRD, as soon as there is at least one route to execute the given filter on. show route filter bgpmask mmm; bgppath ppp; { ppp = +empty+; mmm = [= (ppp ~ mmm) =]; print(mmm); accept; } The magic match operator (~) inside the bgpmask literal would try to resolve mmm, which points to the same bgpmask so it would resolve itself, call the magic match operator and vice versa. After this patch, the bgpmask literal will get resolved as soon as it's assigned to mmm and it also will return a type error as bool is not convertible to ASN in BIRD.
2018-03-13Merge branch 'master' into int-newJan Maria Matejka
2018-03-13Filters: Removed FI_COMMA, not used for 19 years.Jan Maria Matejka
This instruction was removed in the commit linked below and never used ever again. Rest in peace. commit 84c7e1943f0dbf896b1dd8d02a21120aa00463f4 Author: Pavel Machek <pavel@ucw.cz> Date: Tue Mar 2 19:49:28 1999 +0000
2018-03-13Merge branch 'master' into int-newJan Maria Matejka
2018-03-13Filter: recursion to loopJan Maria Matejka
It was supposed to do tail-recursion in interpret() but it didn't compile as such. Converting it to loop makes a significant filter performance improvement for flat filters.
2018-03-13Filter: Instruction codes named as enumMaria Jan Matejka
The two-letter instructions were quite messy but they could be easily read from memory dumps. Now GDB (since 2012) supports pretty printing enum values and GCC checks the switch construction for missing enum values so we are converting the nice two-byte values to enums. Anyway, the enum still keeps the old two-byte values to be able to read the instruction codes even without GDB from plain memory dump.
2018-03-08Filter: the test conf checks also a bit of BGP argsJan Maria Matejka
Uncommented an old test.
2018-03-08Config: Dropped the ipv4:netmask4 syntax for IPv4 prefixes.Jan Maria Matejka
2018-03-07Merge branch 'master' into int-newOndrej Zajicek (work)
2018-03-07Babel: Fix build with restricted protocol setOndrej Zajicek (work)
All keywords used in Babel config have to be declared locally. Thanks to Leo Vandewoestijne for the bugreport.
2018-02-27Merge branch 'int-new' of ssh://gitlab.labs.nic.cz/labs/bird into int-newOndrej Filip
2018-02-13Handle properly enums for extended attributesOndrej Zajicek (work)
2018-02-13Add cscope Makefile targetOndrej Zajicek (work)
For those who prefer cscope to etags Thanks to Toke Hoiland-Jorgensen for the patch.
2018-02-13Babel: Fix accidental bitwise or assignmentOndrej Zajicek (work)
Fix an accidental bitwise or assignment that was supposed to be a comparison. Thanks to Toke Hoiland-Jorgensen for the patch.
2018-02-13Babel: Add source-specific routing supportOndrej Zajicek (work)
This patch adds support for source-specific routing to the Babel protocol. It changes the protocol to support both NET_IP6 and NET_IP6_SADR channels for IPv6 addresses. If only a NET_IP6 channel is configured, source-specific updates are ignored. Otherwise, non-source-specific routes are simply treated as source-specific routes with SADR prefix 0. Thanks to Toke Hoiland-Jorgensen for the original patch. Minor changes by Ondrej Santiago Zajicek.
2018-02-13Add support for source-specific IPv6 routes to BIRD coreOndrej Zajicek (work)
This patch adds support for source-specific IPv6 routes to BIRD core. This is based on Dean Luga's original patch, with the review comments addressed. SADR support is added to network address parsing in confbase.Y and to the kernel protocol on Linux. Currently there is no way to mix source-specific and non-source-specific routes (i.e., SADR tables cannot be connected to non-SADR tables). Thanks to Toke Hoiland-Jorgensen for the original patch. Minor changes by Ondrej Santiago Zajicek.
2018-02-07Nest: Trivial whitespace cleanupOndrej Zajicek (work)
2018-02-06KRT: Fix IPv6 route learnOndrej Zajicek (work)
Internal table used for route learn was created with non-matching net type for IPv6 kernel proto. Thanks to Toke Hoiland-Jorgensen for the bugreport
2018-01-29Nest: Fix corner case in recursive next hop lookupOndrej Zajicek (work)
Thanks to Svenne Krap for the bugreport.
2018-01-24Nest: remove duplicate functionOndrej Zajicek (work)
2018-01-23Merge branch 'master' into int-newOndrej Zajicek (work)
2018-01-23IO: Fix socket priorityOndrej Zajicek (work)
On Linux, setting the ToS will also set the priority and the range of accepted values is quite limited (masked by 0x1e). Therefore, 0xc0 is translated to a priority of 0, not something we want, overriding the "7" priority which was set previously explicitely. To avoid that, just move setting priority later in the code. Thanks to Vincent Bernat for the patch.