aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog31879
-rw-r--r--bird.conf58
-rw-r--r--conf/confbase.Y6
-rwxr-xr-xconfigure7924
-rw-r--r--doc/old/banner.tex44
-rw-r--r--doc/old/status.tex90
-rw-r--r--doc/slides/Makefile19
-rw-r--r--doc/slides/logo.eps454
-rw-r--r--doc/slides/obr1.eps2539
-rw-r--r--doc/slides/obr2.eps1134
-rw-r--r--doc/slides/obr5.eps3072
-rw-r--r--doc/slides/slides.tex190
-rw-r--r--doc/slt2001/Makefile10
-rw-r--r--doc/slt2001/slt.tex275
-rw-r--r--filter/config.Y19
-rw-r--r--filter/data.c10
-rw-r--r--filter/data.h2
-rw-r--r--filter/f-inst.c47
-rw-r--r--misc/Makefile7
-rwxr-xr-xmisc/bird.init97
-rw-r--r--misc/bird.spec55
-rwxr-xr-xmisc/cisco2list20
-rw-r--r--misc/docker/centos-6-amd64/Dockerfile11
-rw-r--r--misc/docker/centos-7-amd64/Dockerfile18
-rw-r--r--misc/docker/centos-8-amd64/Dockerfile18
-rw-r--r--misc/docker/debian-10-amd64/Dockerfile26
-rw-r--r--misc/docker/debian-10-i386/Dockerfile26
-rw-r--r--misc/docker/debian-11-amd64/Dockerfile26
-rw-r--r--misc/docker/debian-11-i386/Dockerfile25
-rw-r--r--misc/docker/debian-7-amd64/Dockerfile13
-rw-r--r--misc/docker/debian-7-i386/Dockerfile13
-rw-r--r--misc/docker/debian-8-amd64/Dockerfile12
-rw-r--r--misc/docker/debian-8-i386/Dockerfile12
-rw-r--r--misc/docker/debian-9-amd64/Dockerfile26
-rw-r--r--misc/docker/debian-9-i386/Dockerfile26
-rw-r--r--misc/docker/debian-testing-amd64/Dockerfile12
-rw-r--r--misc/docker/debian-testing-i386/Dockerfile12
-rw-r--r--misc/docker/fedora-25-amd64/Dockerfile11
-rw-r--r--misc/docker/fedora-26-amd64/Dockerfile11
-rw-r--r--misc/docker/fedora-27-amd64/Dockerfile11
-rw-r--r--misc/docker/fedora-28-amd64/Dockerfile11
-rw-r--r--misc/docker/fedora-29-amd64/Dockerfile11
-rw-r--r--misc/docker/fedora-30-amd64/Dockerfile18
-rw-r--r--misc/docker/fedora-31-amd64/Dockerfile18
-rw-r--r--misc/docker/fedora-32-amd64/Dockerfile18
-rw-r--r--misc/docker/fedora-33-amd64/Dockerfile18
-rw-r--r--misc/docker/fedora-34-amd64/Dockerfile18
-rw-r--r--misc/docker/opensuse-15.0-amd64/Dockerfile11
-rw-r--r--misc/docker/opensuse-15.1-amd64/Dockerfile19
-rw-r--r--misc/docker/opensuse-15.2-amd64/Dockerfile19
-rw-r--r--misc/docker/opensuse-15.3-amd64/Dockerfile19
-rw-r--r--misc/docker/ubuntu-14.04-amd64/Dockerfile12
-rw-r--r--misc/docker/ubuntu-16.04-amd64/Dockerfile12
-rw-r--r--misc/docker/ubuntu-18.04-amd64/Dockerfile27
-rw-r--r--misc/docker/ubuntu-20.04-amd64/Dockerfile27
-rw-r--r--misc/docker/ubuntu-21.04-amd64/Dockerfile27
-rw-r--r--misc/docker/ubuntu-21.10-amd64/Dockerfile28
-rw-r--r--misc/ips.c96
-rwxr-xr-xmisc/stats9
-rw-r--r--nest/route.h12
-rw-r--r--nest/rt-attr.c31
-rw-r--r--proto/bfd/bfd.c14
-rw-r--r--proto/bgp/attrs.c159
-rw-r--r--proto/bgp/bgp.c32
-rw-r--r--proto/bgp/bgp.h3
-rw-r--r--proto/bgp/config.Y4
-rw-r--r--proto/bgp/packets.c8
-rw-r--r--proto/l3vpn/config.Y2
-rw-r--r--sysdep/autoconf.h.in177
-rw-r--r--sysdep/linux/netlink.c18
70 files changed, 8967 insertions, 40171 deletions
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index bdba1918..00000000
--- a/ChangeLog
+++ /dev/null
@@ -1,31879 +0,0 @@
-commit 0e1fbaa5b21db8e5c64a732dbaf0b8afe707a147
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Oct 6 18:53:25 2023 +0200
-
- NEWS and version update
-
-commit 23f94b1368b71faa0a03e50b9e9d0cf8535cff3a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Oct 6 18:52:02 2023 +0200
-
- Doc: Minor fixes
-
-commit c5c3a22bccda5454775b48ad318a7fd4bf197f86
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Oct 6 02:36:59 2023 +0200
-
- Conf: Bytestrings with hex: should use the same general format as ones without.
-
- Either hex:01234567, or hex:01:23:45:67. No confusing formats like
- hex:0123:4567:ab:cdef, which looks like there is an implicit zero byte.
-
-commit e83beb70bd14923cece5b35411606ade6fb8fbee
-Author: Pavel Ĺ orejs <mail@sorejs.eu>
-Date: Fri Oct 6 04:31:19 2023 +0200
-
- KRT: Allow to learn routes with RTPROT_KERNEL
-
- The Kernel protocol, even with the option 'learn' enabled, ignores
- direct routes created by the OS kernel (on Linux these are routes
- with rtm_protocol == RTPROT_KERNEL).
-
- Implement optional behavior where both OS kernel and third-party routes
- are learned, it can be enabled by 'learn all' option.
-
- Minor changes by committer.
-
-commit 57aa077227d1f2440dc1b2bb6cbbebd418a6b898
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 5 21:29:04 2023 +0200
-
- BGP: Improve custom BGP attributes
-
- - Implement EA_GET for custom BGP attributes
- - Forbid EA_SET on existing opaque attributes
- - Forbid redefining existing attributes
- - Document possible compatibility problems
-
-commit ba01a6f2e66d03eb5d9426fdf4973f30e09c5710
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 5 17:54:43 2023 +0200
-
- MPLS: Handle compatibility with old configs
-
- Old configs do not define MPLS domains and may use a static protocol
- to define static MPLS routes.
-
- When MPLS channel is the only channel of static protocol, handle it
- as a main channel. Also, define implicit MPLS domain if needed and
- none is defined.
-
-commit de09fda5dcef16bf50663f7ffb56074e6ad20b5a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 5 14:26:22 2023 +0200
-
- Filter: Fix scope handling in for loops
-
- Changes in scope implementation broke scope handling in for loops.
- The term in for loops is supposed to be parsed in the parent scope.
-
-commit abae806efdf6ac5f919c93057dd8df1faff1058c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 4 20:14:12 2023 +0200
-
- Conf: Fix 'show symbols'
-
- Seems like the root scope was not marked as active.
-
-commit ab47c2ae466f785212f0519388417ebb31b2cf24
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 4 19:45:00 2023 +0200
-
- BGP: Custom attribute definitions should use cfg_alloc(), not malloc()
-
- Otherwise we would get memory leaks.
-
-commit d41b06238dc2167f8e470aa2fb31cb937ff8fb3e
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Oct 4 19:57:55 2023 +0200
-
- Filter: explicitly forbidden for-loop with pre-defined variable
-
-commit 6a242b3ec66f2ab89f9277e67125eab3e3676644
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 4 17:36:03 2023 +0200
-
- IO: Fix race condition in event processing
-
- When regular event was added from work event, we did remember that
- regular event list was empty and therefore we did not use zero time
- in poll(). This leads to ~3 s latency in route reload during
- reconfiguration.
-
-commit 0bfa216f496279905b843abcfb1242477b86783c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 4 15:25:05 2023 +0200
-
- Doc: Fix syntax errors in SGML
-
-commit be09b030ed40c76ee0727dd3980df77094fdc907
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 4 15:00:24 2023 +0200
-
- MPLS: Update to support and use 64bit source id
-
-commit cab5fce2b6822b7f3a892103077f26e197fecfbc
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 4 13:00:06 2023 +0200
-
- Doc: L3VPN documentation
-
-commit 8a70885694c5a3b384deba0f8cd25b7f63b99fcd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Oct 3 16:11:18 2023 +0200
-
- Doc: MPLS documentation
-
-commit 8f5511dafb54b5788546065c9b572f9b4f9d47ee
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 1 05:02:46 2023 +0200
-
- L3VPN: Import/export target reconfiguration
-
-commit d8130da86bda6244e1f5c06eb9b9033625b781e6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Sep 30 23:18:04 2023 +0200
-
- BGP, L3VPN: Fix MPLS channel reload
-
- When a MPLS channel is reloaded, it should reload all regular MPLS-aware
- channels. This causes re-evaluation of routes in FEC map and possibly
- reannouncement of MPLS routes.
-
-commit a7a9df8639c701dd020cf61d19b205230742a17e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Sep 30 20:07:40 2023 +0200
-
- MPLS: Implement FEC map reconfiguration
-
- This allows changing label policy or label range without restart.
-
-commit 9b775859cd7fd54a6fe2bd88359955fce079999d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Sep 26 18:50:20 2023 +0200
-
- MPLS: Handle label allocation failures
-
-commit e915f99e1cd4f6c90e640f7290c201633ab992f0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Sep 24 00:24:50 2023 +0200
-
- L3VPN: Fix bug in reconfiguration
-
- Fields import_target / export_target link to config structures, must be
- updated during reconfiguration.
-
-commit b6385decb3f9f4d4029ee7bfc2f013b495a725f8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Sep 23 17:55:01 2023 +0200
-
- MPLS: Improve handling of static label allocations
-
- Use mpls_new_label() / mpls_free_label() also for static labels, to keep
- track of allocated labels and to enforce label ranges.
-
- Static label allocations always use static label range, regardless of
- configured label range.
-
-commit 81a20ca5d8508f7317f2e023a3be5e5da454d740
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Sep 22 19:49:15 2023 +0200
-
- Static: Add syntax for static MPLS labels
-
- Instead of just using route attributes, static routes with
- static MPLS labels can be defined just by e.g.:
-
- route 10.1.1.0/24 mpls 100 via 10.1.2.1 mpls 200;
-
-commit 35726051517aaf1869458caed03c7ee1c516721c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Sep 22 15:47:48 2023 +0200
-
- MPLS: Label range non-intersection check
-
-commit fcf22586200000f0d19ffed339524d2530ed0d6f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Sep 18 17:47:17 2023 +0200
-
- MPLS: Improve label range reconfiguration
-
- Allow to shorten label range over unused area.
-
-commit 8e9e013b0ddec438151c9d12fd4bac079c350310
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Sep 18 17:32:24 2023 +0200
-
- MPLS: Add command 'show mpls ranges'
-
- Add command to show MPLS label ranges and their stats.
-
-commit 3397ca51f8a33e6ef97ab5ec7209dfce7051bc5d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Sep 18 14:19:20 2023 +0200
-
- Nest: Fix missing RTS_* values in filters
-
-commit e338c4b63c6a9258d858f158049943e1e8f00e6f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Sep 18 14:12:22 2023 +0200
-
- Lib: Extend MPLS label allocator bitmap
-
- Add function lmap_last_one_in_range() for finding the last active label
- in a label range.
-
-commit bcff3ae79acfd938459869ac98db4f83e3d422b6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Oct 3 20:06:13 2022 +0200
-
- L3VPN: BGP/MPLS VPNs using MPLS backbone
-
- The L3VPN protocol implements RFC 4364 BGP/MPLS VPNs using MPLS backbone.
- It works similarly to pipe. It connects IP table (one per VRF) with (global)
- VPN table. Routes passed from VPN table to IP table are stripped of RD and
- filtered by import targets, routes passed in the other direction are extended
- with RD, MPLS labels and export targets in extended communities. A separate
- MPLS channel is used to announce MPLS routes for the labels.
-
-commit 9ca86ef69cc56cb75e48e6f46bfdbe1b1e3e99b6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Oct 1 22:38:49 2022 +0200
-
- MPLS: Add support for per-VRF labeling policy
-
- The new labeling policy MPLS_POLICY_VRF assigns one label to all routes
- (from the same FEC map associated with one VRF), while replaces their
- next hops with a lookup to a VRF table. This is useful for L3VPN
- protocol.
-
-commit 9d456d5366593c7b0ebfde003be0517adb554541
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Sep 15 02:30:15 2022 +0200
-
- BGP: Add MPLS support
-
- When MPLS is active, received routes on MPLS-aware SAFIs (ipvX-mpls,
- vpnX-mpls) are automatically labeled according to active label policy and
- corresponding MPLS routes are automatically generated. Also routes sent
- on MPLS-aware SAFIs announce local labels when it should be done.
-
-commit 15c86ed061d3dbc7e4ef863e396cda5ec3ed0d4c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Sep 15 02:29:12 2022 +0200
-
- Static: Add MPLS support
-
- When MPLS is active, static IP/VPN routes are automatically labeled
- according to active label policy and corresponding MPLS routes are
- automatically generated.
-
-commit 333ddd4f981b90d5d3dff166b6abf9bf40bede9f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Sep 15 01:38:18 2022 +0200
-
- MPLS subsystem
-
- The MPLS subsystem manages MPLS labels and handles their allocation to
- MPLS-aware routing protocols. These labels are then attached to IP or VPN
- routes representing label switched paths -- LSPs.
-
- There was already a preliminary MPLS support consisting of MPLS label
- net_addr, MPLS routing tables with static MPLS routes, remote labels in
- next hops, and kernel protocol support.
-
- This patch adds the MPLS domain as a basic structure representing local
- label space with dynamic label allocator and configurable label ranges.
- To represent LSPs, allocated local labels can be attached as route
- attributes to IP or VPN routes with local labels as attributes.
-
- There are several steps for handling LSP routes in routing protocols --
- deciding to which forwarding equivalence class (FEC) the LSP route
- belongs, allocating labels for new FECs, announcing MPLS routes for new
- FECs, attaching labels to LSP routes. The FEC map structure implements
- basic code for managing FECs in routing protocols, therefore existing
- protocols can be made MPLS-aware by adding FEC map and delegating
- most work related to local label management to it.
-
-commit e55696a4f88b63c622bb3a0360f9114d01253e53
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat May 22 12:31:47 2021 +0200
-
- Lib: Indirect bitmap for MPLS label allocator
-
-commit 21213be523baa7f2cbf0feaa617f265c55e9b17a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Oct 2 15:09:30 2023 +0200
-
- Nest: Expand rte_src.private_id to u64
-
- In general, private_id is sparse and protocols may want to map some
- internal values directly into it. For example, L3VPN needs to
- map VPN route discriminators to private_id.
-
- OTOH, u32 is enough for global_id, as these identifiers are dense.
-
-commit 8ad9c4bb339172d445d1346876b2c9f3c27199c1
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Sep 27 12:51:55 2023 +0200
-
- BGP config: Splitting Route Refresh and Enhanced Route Refresh
-
- Both toggles are on by default but if some implementation needs one or
- another to be switched off separately, then it's possible now.
-
-commit a4adb09f5a5c3806488fb121eafc0e6c969135e7
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Sep 22 15:10:45 2023 +0200
-
- Aggregator: brief documentation
-
-commit 018a77fc0bc90f74e7267b40ce3bc82074ec8582
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Sep 22 14:21:21 2023 +0200
-
- Aggregator: Forbidden dangerous filter computations
-
-commit 8674d7ab4bf76cadc256ca24609ffe4b1e8fcbf4
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Jul 12 15:11:00 2023 +0200
-
- Aggregator: Fixed hashing of adata
-
-commit 977b82fba49b22d9548546d88b105945921efaed
-Author: Igor Putovny <igor.putovny@nic.cz>
-Date: Wed Jun 21 13:15:07 2023 +0200
-
- Basic route aggregation
-
- Add a new protocol offering route aggregation.
-
- User can specify list of route attributes in the configuration file and
- run route aggregation on the export side of the pipe protocol. Routes are
- sorted and for every group of equivalent routes new route is created and
- exported to the routing table. It is also possible to specify filter
- which will run for every route before aggregation.
-
- Furthermore, it will be possible to set attributes of new routes
- according to attributes of the aggregated routes.
-
- This is a work in progress.
-
- Original work by Igor Putovny, subsequent cleanups and finalization by
- Maria Matejka.
-
-commit 0a729b509c2c4476cbf66c64620a863e6a381c8c
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Jun 23 09:05:48 2023 +0200
-
- Simple testing of reconfiguration to a slightly different one
-
-commit a0fb0eaa6780e60b7c5434dfe0e2ed402e5a4ea4
-Author: katerina.kubecova <katerina.kubecova@nic.cz>
-Date: Tue Sep 19 11:11:24 2023 +0200
-
- BGP: Setting and unsetting unknown attributes
-
- All these must be declared as bytestring. Allows operators to delete
- unwanted attributes breaking the Internet:
-
- https://blog.benjojo.co.uk/post/bgp-path-attributes-grave-error-handling
-
-commit cc122bf0c295207a909061a365eccd49462b1b16
-Author: katerina.kubecova <katerina.kubecova@nic.cz>
-Date: Mon Sep 18 14:07:59 2023 +0200
-
- Attributes declared in config can be bytestrings
-
-commit 8cc9d198c7ab906e176a7926484ea85d4f53cab6
-Author: katerina.kubecova <katerina.kubecova@nic.cz>
-Date: Wed Sep 20 09:50:22 2023 +0200
-
- Filter: Function unset() accepts attributes declared in config
-
-commit bb8e28248be0ad1f728433e4884dfe2db3772b30
-Author: katerina.kubecova <katerina.kubecova@nic.cz>
-Date: Mon Sep 18 14:43:58 2023 +0200
-
- Structures bytestring and adata merged into adata.
-
-commit 9ffea830b673a8b8506877a371e0c9fc52c99b94
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Sep 14 17:24:09 2023 +0200
-
- Conf: Move definition of struct keyword to conf.h
-
-commit a3dc26455d125310ddf3c903208b0168dbbd81d4
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Sep 13 06:21:26 2023 +0200
-
- Filter: Use common initializer for undefined variables and eattrs.
-
- Undefined paths and clists should use typed f_val with empty adata
- instead of just void f_val. Use common initializer to handle both
- variables and eattrs.
-
-commit 7395b97daf529cab1065f107c924bed310a8ad75
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Sep 12 18:44:20 2023 +0200
-
- Filter: Minor updates to methods
-
- Remove warning when function-like syntax is used for calling
- add/remove/... methods.
-
- Fix argument offset in error messages for function-like syntax.
-
-commit 132f1edaf402aba79ae3983966795b2f1220afbb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jul 25 19:33:51 2023 +0200
-
- Filter: Split clist add/delete operations to multiple methods
-
-commit f0d1396073dc7c3a6ab5f88baa07f2494cbd5328
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jul 25 17:43:52 2023 +0200
-
- Filter: Implement constant promotion for multiple dispatch methods
-
-commit e88695913148ae63e1f8c8ac64f7b039dd3fc286
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 12 20:11:34 2023 +0200
-
- Filter: Print proper error response in multiple method dispatch
-
- When no matching method is found, print an error response containing
- position and type of infringing argument and a set of expected types.
-
-commit e4ce88cc50a7af21e0b7042f60abd11e4288c6fe
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 12 20:01:03 2023 +0200
-
- Filter: Move argument list reversal from function_call to var_list
-
- List of arguments for function calls is constructed in reverse and then
- reverted. This was done in function_call grammar rule. Do the reverse
- directly in var_list grammar rule. This fixes reverse order of arguments
- in method calls.
-
-commit fc4398b4e1d18142a5c428a7c90484071a81ab9c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jul 4 19:07:30 2023 +0200
-
- Filter: Better syntax for function return types
-
- The C-style syntax does not really fit into rest of our syntax.
-
-commit cc1099a04169b768cb4803686ee20423a6d3fede
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 3 17:00:58 2023 +0200
-
- Filter: Implement multiple dispatch for methods
-
- - Extend method descriptors with type signature
- - Daisy chain method descriptors for the same symbol
- - Dispatch methods for same symbol based on type signature
- - Split add/delete/filter operations to multiple methods
- - Replace ad-hoc dispatch of old-style syntax with scope-based dispatch
- - Also change method->arg_num to count initial arg
-
- It still needs some improvements, like better handling of untyped
- expressions and better error reporting when no dispatch can be done.
-
- The multiple dispatch could also be extended to dispatch regular
- function-like expressions in a uniform way.
-
-commit c696e3cb8e53229a438a8509a05e9d0ff27b8b4a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jun 28 01:21:23 2023 +0200
-
- Filter: Make f_method_call_*() usage symmetric
-
-commit ab61476ebf2b8873d542f77069ec111030329268
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jun 27 21:38:05 2023 +0200
-
- Filter: Convert more methods to use METHOD_R()
-
-commit 4cdd6f2ea0af64843082c05147c307eb62165352
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jun 27 21:16:11 2023 +0200
-
- Filter: Remove number of args from METHOD_R()
-
- Macro METHOD_R() is used for simplest methods, there is no place to
- define argument types, so let's force it to be 0.
-
-commit c0231b092960c66dd17119f75ce3d2b4101f42aa
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jun 27 14:49:28 2023 +0200
-
- Conf: Remove toksym from symbol_known
-
- No need to have toksym in symbol_known, as defined symbols are preferred
- (by scope) to keywords anyway. Adding it just creates grammar conflicts.
-
-commit fdd39c81bd4cb04dc9f0f5e5cc8db95909b76cbf
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jun 19 17:24:30 2023 +0200
-
- Filter: Print instructions take only one value (simplification)
-
-commit 6d411fc7bdd82ee40a96fee1ded228fa102b62c9
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jun 19 15:49:51 2023 +0200
-
- Filter: Shortened method declarations
-
-commit 21faa54ec3251cb730a23a663ebf7775834ee7a8
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sun Jun 18 22:50:45 2023 +0200
-
- Filter: The for loop uses the method system for type dispatch
-
-commit 1d38726c646ee3a4b6431d55f921fa6ede92fca1
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Jun 17 13:05:23 2023 +0200
-
- Removing unused terminals from filter config
-
-commit fc9d471b36b91429e5d86aa794716683a5281449
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Jun 16 17:35:37 2023 +0200
-
- Filter: Methods rework
-
- Methods can now be called as x.m(y), as long as x can have its type
- inferred in config time. If used as a command, it modifies the object,
- if used as a value, it keeps the original object intact.
-
- Also functions add(x,y), delete(x,y), filter(x,y) and prepend(x,y) now
- spit a warning and are considered deprecated.
-
- It's also possible to call a method on a constant, see filter/test.conf
- for examples like bgp_path = +empty+.prepend(1).
-
- Inside instruction definitions (filter/f-inst.c), a METHOD_CONSTRUCTOR()
- call is added, which registers the instruction as a method for the type
- of its first argument. Each type has its own method symbol table and
- filter parser switches between them based on the inferred type of the
- object calling the method.
-
- Also FI_CLIST_(ADD|DELETE|FILTER) instructions have been split to allow
- for this method dispatch. With type inference, it's now possible.
-
-commit 39f8f46d81203ebd6b976da56e83930f972dccab
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Jun 17 10:16:28 2023 +0200
-
- Uninitialized filter variables of path/[el]?clist types are now explicitly empty
-
-commit 6f798683a34aa87f5e4f590be4c90253a1135e08
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Jun 16 22:11:03 2023 +0200
-
- Conf: config warnings show the file position
-
-commit 062ff656830f89bd3bca5b39a86c4d41b535a7bf
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Jun 15 13:25:40 2023 +0200
-
- Filter: functions can and should have typed return values
-
-commit f86c86b7913f55c1221d8c5e1ff27700aa663a6e
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Jun 13 09:39:29 2023 +0200
-
- Filter/Conf: Method names have their own keyword hash
-
- To allow for future dynamic method definition, parsing method names is
- done via a dedicated keyword hash/scope.
-
-commit 6b95353ebdaa724252492f941ebe75f80e9e545a
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Jun 13 11:09:41 2023 +0200
-
- Conf: Allowing conf scope to be explicitly read only
-
-commit 51f2e7afaf069508685281e8c1b8bb1ceda79d8f
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Jun 13 10:51:03 2023 +0200
-
- Conf: Symbol manipulation gets its context explicitly
-
-commit 5951dfbd5ed21d973e7627740c069d6612d7b899
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jun 12 11:37:50 2023 +0200
-
- Filter: any lvalue can get its methods called
-
-commit ae8ecafda9e28bfd417795fbb43408d6857df76d
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jun 12 11:20:49 2023 +0200
-
- Filter: split out dot-notation methods to separate targets
-
- This is just a preparationary refactoring to allow type-based method
- tables.
-
-commit 58efa94460381309c754a3162df257ae043c2cbd
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Jun 9 12:49:19 2023 +0200
-
- Conf: Keywords have their default symbols
-
- This avoids unnecessary collapsed soft scopes caused by keyword symbol multiallocation.
-
-commit 8e177cf35b582ec973c1abce4709c80847adb711
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon May 2 20:29:03 2022 +0200
-
- Conf: Symbol hashes for all scopes
-
- This is a backport cherry-pick of commits
- 165156beeb2926472bbceca3c103aacc3f81a8cc
- cce974e8ea992d0e6d2f649eca7880b436d91d71
-
- from the v3.0 branch as we need symbol hashes directly inside their
- scopes for more general usage than before.
-
-commit a5a6de581b79641b21b26277580cb4cc118da7ea
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Jun 9 11:02:05 2023 +0200
-
- Dropping empty-type const f_vals, they were copied anyway
-
-commit 86598183917cd9ff1d21900e0d8cc18dd1e791e1
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Jun 9 13:49:17 2023 +0200
-
- Conf: Adding dummy thread-number setting for easier sharing of configuration between v2 and v3
-
-commit aa70e14c9e4cfeb70d2dc9cee497c40057dc105e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 29 18:23:29 2023 +0200
-
- BFD: Improve handling of AdminDown
-
- According to RFC 5882, system should not interpret the local or remote
- session state transition to AdminDown as failure. We followed that for
- the local session state but not for the remote session state (which
- just triggered a transition of the local state to Down). The patch
- fixes that.
-
- We do not properly generate AdminDown on our side, so the patch is
- relevant just for interoperability with other systems.
-
- Thanks to Sunnat Samadov for the bugreport.
-
-commit f5140d1027f514bc59d46ab8aa09181f5870afbd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Dec 13 19:31:46 2022 +0100
-
- Conf: Allow keywords to be redefined by user symbols
-
- Most syntactic constructs in BIRD configuration (e.g. protocol options)
- are defined as keywords, which are distinct from symbols (user-defined
- names for protocols, variables, ...). That may cause backwards
- compatibility issue when a new feature is added, as it may collide with
- existing user names.
-
- We can allow keywords to be shadowed by symbols in almost all cases to
- avoid this issue.
-
- This replaces the previous mechanism, where shadowable symbols have to be
- explictly added to kw_syms.
-
-commit cce48c6cdd9484c606879ea76d4c633fce12ba36
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Aug 25 23:14:36 2023 +0200
-
- Filter: Add separate instruction for uninitialized variable declaration
-
- The previous approach (use VOID constant for variable initialization)
- failed due to dynamic type check failure.
-
- Thanks to Alexander Zubkov <green@qrator.net> for the bugreport.
-
-commit 116285f2b000a4b78044f1bcf1eb1d6655f1d2fe
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Aug 25 04:32:01 2023 +0200
-
- RPKI: Fix conflict in config grammar
-
-commit 32427c9ce119df5457d3d2c6e677429e31a5edad
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Aug 25 04:29:32 2023 +0200
-
- Nest: Fix missing bar in kw_sym
-
- Thanks to Alexander Zubkov for the notice.
-
-commit 9d8e4b01bc53d684f5a5b3230c371382860de58b
-Author: Alexander Zubkov <green@qrator.net>
-Date: Thu Aug 24 18:04:33 2023 +0200
-
- Doc: Document bytestring type
-
-commit cbb43d6ff31fcae8a682659ec514cbea21ee4e25
-Author: Alexander Zubkov <green@qrator.net>
-Date: Thu Aug 24 17:41:51 2023 +0200
-
- Doc: Document RAdv "custom option" configuration definition
-
-commit f411a19bb0467cfc421f8aa6f5ead49972bab058
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Aug 24 16:59:23 2023 +0200
-
- Conf: Use nonterminal bytestring instead of BYTETEXT
-
- Nonterminal bytestring allows to provide expressions to be evaluated in
- places where BYTETEXT is used now: passwords, radv custom option.
-
- Based on the patch from Alexander Zubkov <green@qrator.net>, thanks!
-
-commit 0dbcc927260c6da918fa1bd78c86800e41ab05a8
-Author: Alexander Zubkov <green@qrator.net>
-Date: Thu Aug 24 04:45:55 2023 +0200
-
- Filter: Use more generic approach for intra-config expressions
-
- Replace f_eval_int() function with a type-generic variant: cf_eval().
- Implement similar fuction: cf_eval_int() via inline call to cf_eval().
-
-commit fc3547880aafad726509f0514df2d5e0bb140728
-Author: Alexander Zubkov <green@qrator.net>
-Date: Thu Aug 24 04:30:42 2023 +0200
-
- Filter: Add bytestring type
-
- - Rename BYTESTRING lexem to BYTETEXT, not to collide with 'bytestring' type name
- - Add bytestring type with id T_BYTESTRING (0x2c)
- - Add from_hex() filter function to create bytestring from hex string
- - Add filter test cases for bytestring type
-
- Minor changes by committer.
-
-commit eddc0ffdab239c61cc0e064b6ebd33dfadcef3cd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Aug 24 03:04:58 2023 +0200
-
- Lib: Add functions for reading and writing of bytestrings
-
- Based on patch from Alexander Zubkov, thanks!
-
-commit e3c0eca95642a846ab65261424a51dd99d954017
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Aug 23 15:55:31 2023 +0200
-
- Nest: Treat VRF interfaces as inside respective VRFs
-
- Despite not having defined 'master interface', VRF interfaces should be
- treated as being inside respective VRFs. They behave as a loopback for
- respective VRFs. Treating the VRF interface as inside the VRF allows
- e.g. OSPF to pick up IP addresses defined on the VRF interface.
-
- For this, we also need to tell apart VRF interfaces and regular interfaces.
- Extend Netlink code to parse interface type and mark VRF interfaces with
- IF_VRF flag.
-
- Based on the patch from Erin Shepherd, thanks!
-
-commit 5121101136cb80151a9361c63dc4822afeb44eef
-Merge: d2dbe854 4558adab
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 22 15:28:05 2023 +0200
-
- Merge branch 'bmp'
-
-commit d2dbe854631813eae9fbf3e264ced4460ea4c432
-Author: Jakub RuĹľiÄŤka <jakub.ruzicka@nic.cz>
-Date: Tue Aug 22 14:13:55 2023 +0200
-
- RPM: Sync bird.spec from Fedora dist-git
-
- It seems all Fedora packages are built from epel7 branch.
-
-commit 31ef5645e9155365db96705b847968008d378658
-Author: Jakub RuĹľiÄŤka <jakub.ruzicka@nic.cz>
-Date: Wed Apr 26 17:26:30 2023 +0200
-
- Distro: Add apkg packaging test
-
- The test was written by Maria Matejka, thanks!
-
- Run this using
-
- apkg test
-
-commit 215f7161c426975ca821f5d3c1866889287dcdbc
-Author: Jakub RuĹľiÄŤka <jakub.ruzicka@nic.cz>
-Date: Fri May 21 04:48:27 2021 +0200
-
- Distro: Add apkg compat level
-
- This will allow compatibility on future apkg config updates.
-
-commit 5fb871def46c9fc0d0e02d5bf1f2c8f76c40dc30
-Author: Jakub RuĹľiÄŤka <jakub.ruzicka@nic.cz>
-Date: Wed May 3 14:13:21 2023 +0200
-
- Debian: Fix for arm64 cross build
-
- Mirrors debian patch.
-
-commit 5fe00df693a7a06888d6fba2a967fe0ca04f29ae
-Author: Jakub RuĹľiÄŤka <jakub.ruzicka@nic.cz>
-Date: Thu Oct 20 18:47:09 2022 +0200
-
- Debian: Use {{ now }} in changelog
-
-commit 2b4ab79de1f5afdfd821689e81883db662f433c6
-Author: Jakub RuĹľiÄŤka <jakub.ruzicka@nic.cz>
-Date: Wed Feb 22 19:01:31 2023 +0100
-
- Debian: Bump compat level to 11
-
- Current is 13, remaining blockers:
-
- - Debian 9 @ 11 (EOL)
- - Ubuntu 18.04 @ 12 (EOL 2023-04-02)
-
-commit b983b5916594731b5af1ed8f7ef12c64ce36e7fb
-Author: Jakub RuĹľiÄŤka <jakub.ruzicka@nic.cz>
-Date: Tue Feb 7 19:20:52 2023 +0100
-
- Debian: Sync packaging with Debian
-
-commit b0c3c286a54050b56af0c0fe398e0761cc320581
-Author: Jakub RuĹľiÄŤka <jakub.ruzicka@nic.cz>
-Date: Tue Feb 7 19:19:57 2023 +0100
-
- Debian: Add birdcl manpage
-
- Mirrors Debian package change.
-
-commit ad514e603329807e28ddda6beaaa3ebc8f36b069
-Author: Jakub RuĹľiÄŤka <jakub.ruzicka@nic.cz>
-Date: Thu May 20 18:07:46 2021 +0200
-
- RPM: Add missing BuildRequires: autoconf
-
-commit fea04d7c34b92d854cfcd4cc3db2dcba60caba7b
-Author: Alexander Zubkov <green@qrator.net>
-Date: Tue Aug 22 14:44:18 2023 +0200
-
- Use more proper pointers to constant bytestrings
-
-commit 9bf20484764364b9f32bef0a3a7f877abbc29914
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 22 14:20:59 2023 +0200
-
- BGP: Update RFC reference
-
- RFC 5549 was obsoleted by RFC 8950.
-
-commit 4558adabfbbe3696156d20767168010d6238f434
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 22 01:24:21 2023 +0200
-
- BMP: Improve peer_down handling
-
- Move all bmp_peer_down() calls to one place and make it synchronous with
- BGP session down, ensuring that BMP receives peer_down before route
- withdraws from flushing.
-
- Also refactor bmp_peer_down_() message generating code.
-
-commit 52641e086675832e9f43f86237b0cddbd5ec551e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 21 04:20:32 2023 +0200
-
- BMP: Use generic channel feed instead of direct walk over rtable
-
- Now we use rt_notify() and channels for both feed and notifications,
- in both import tables (pre-policy) and regular tables (post-policy).
-
- Remove direct walk in bmp_route_monitor_snapshot().
-
-commit ef6ab5ce86af925ee10687fde4e62912fb892433
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 21 04:17:21 2023 +0200
-
- Nest: Use generic rte_announce() also for import tables
-
- Remove special rte_announce_in(), so we can use generic rte_announce()
- for bot feed and notifications.
-
-commit c40f29a79035b54a8b48ece0e91d38d9066529e3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Aug 18 15:39:08 2023 +0200
-
- BMP: Fix route timestamps
-
-commit f4deef89bebae6e41654217e20f2a7531c65bf49
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Aug 18 03:53:58 2023 +0200
-
- BMP: Refactor route monitoring
-
- - Manage BMP state through bmp_peer, bmp_stream, bmp_table structures
- - Use channels and rt_notify() hook for route announcements
- - Add support for post-policy monitoring
- - Send End-of-RIB even when there is no routes
- - Remove rte_update_in_notify() hook from import tables
- - Update import tables to support channels
- - Add bmp_hack (no feed / no flush) flag to channels
-
-commit aec21cda249f9460d63c14ca83a9fa4210bcc20d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 1 18:39:38 2023 +0200
-
- BMP: Remove useless buffer
-
-commit 8ded8baba2a95cec81f20b10160c81d229f8fae8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 1 17:56:56 2023 +0200
-
- BMP: Simplify route monitoring hooks
-
- No need for *_begin(), *_commit(), and *_end() hooks. The hook *_notify()
- is sufficient for everything.
-
-commit ecbae010bf057dbaf0ec46e888fb7446fee9c736
-Author: Alexander Zubkov <green@qrator.net>
-Date: Fri Jun 30 13:16:09 2023 +0200
-
- Fixed a typo in documentation
-
- The problem was the "/" symbol in the prefix mask that finished the formatting definition prematurely.
-
-commit ccfa48a24aea64d1a844fb97cfe15965197c0908
-Author: Alexander Zubkov <green@qrator.net>
-Date: Mon Jun 26 15:35:22 2023 +0200
-
- RAdv: Use new syntax for custom options
-
- And use WALK_LIST macro
-
-commit 9c81250c04798fd274ae9d77380e93b941ac2d7f
-Author: Alexander Zubkov <green@qrator.net>
-Date: Fri Jun 23 17:21:05 2023 +0200
-
- RAdv: Add custom options
-
- Currently one can use only a predefined set of advertised options in RAdv
- protocol, which are supported by BIRD configuration. It would be convenient
- to be able to specify other possible options at least manually as a blob
- so one should not wait until it is supported in the code, released, etc.
-
- This idea is inspired by presentation by Ondřej Caletka at CSNOG, in which
- he noticed the lack of either PREF64 option or possibility to add custom
- options in various software.
-
- The patch makes it possible to define such options with the syntax:
-
- other type <num> <bytestring>
-
-commit 65d6a525944faa3f77041419991d77106d8f0a0d
-Author: Alexander Zubkov <green@qrator.net>
-Date: Fri Jun 23 16:47:37 2023 +0200
-
- Add hex:XYZ syntax for short hex strings
-
- Hexadecimal bytestring literals have minimal length to not collide
- with IP addresses or regular (hexadecimal) number literals.
-
- Allow to use shorter literals with explicit hex: prefix.
-
-commit 5f2ecb2298a6fe4b2fcd9efc0b39c36202496c2c
-Merge: f8bcb037 52bae235
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Jun 22 17:25:18 2023 +0200
-
- Merge tag 'v2.13.1'
-
-commit 52bae235b716a3c8d629ddf1306178568c69833f
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Jun 22 16:14:12 2023 +0200
-
- NEWS and version update
-
-commit 1499a335f6f44a0fd85365e404c2a11842d7f75c
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Jun 22 16:07:28 2023 +0200
-
- Filter: Fixed segfault when a case option had an empty block
-
- Thanks to Kobayashi_Bairuo <noc@tohunet.com> for reporting.
-
-commit ac7341a18146bf0f0b2c60477c4292a9cd428a87
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 19 01:02:57 2023 +0200
-
- BGP: Fix role check when no capability option is present
-
- When an OPEN message without capability options was parsed, the remote
- role field was not initialized with the proper (non-zero) default value,
- so it was interpreted as if 'provider' was announced.
-
- Thanks to Mikhail Grishin for the bugreport.
-
-commit f8bcb037b5b71a19209f1b63d52895c8c34c675b
-Author: Luiz Amaral <email@luiz.eng.br>
-Date: Thu Jun 15 15:01:50 2023 +0200
-
- Netlink: Allow RTA_VIA even without MPLS support
-
- It is necessary for IPv4 over IPv6 nexthop support on FreeBSD,
- and RTA_VIA is not really related to MPLS.
-
- It breaks build for some very old systems like Debian 8 and CentOS 7,
- but we generally do not support older kernels than 4.14 LTS anyway.
-
-commit 90f417604518cbaa6f5b8a833352d73c51e53e57
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 15 15:50:18 2023 +0200
-
- CI: Remove obsolete CI targets
-
- Remove build-debian-8, build-ubuntu-14_04, build-centos-7, pkg-debian-9,
- and pkg-centos-7 targets.
-
- Debian 8, Ubuntu 14.04, and CentOS 7 have unsupported kernels, Debian 9
- has okay kernel, but is EOL.
-
-commit 43d41d8449a4eb196422d6d309dbea998d920541
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 8 05:10:05 2023 +0200
-
- BMP: Ensure that bmp_fire_tx() does nothing when not up
-
-commit e8838d930cd5c875f32aa2b7da5d84995b14ccac
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 8 04:56:41 2023 +0200
-
- BMP: Support multiple instances of BMP protocol
-
- Add internal BMP functions with plicit bmp_proto *p as first argument,
- which allows using TRACE() macro. Keep list of BMP instances and call
- internal functions. Old BMP functions are wrappers that call internal
- functions for all enabled BMP instances.
-
- Extract End-of-RIB mark into separate function.
-
- Based on patch from Michal Zagorski <mzagorsk@akamai.com>. Thanks!
-
-commit 69372dc9aa8b234b79999c4cdcdfa3aa05e3a672
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jun 2 02:34:05 2023 +0200
-
- Babel: Minor changes to RTT formatting
-
- Use existing %t printf code and move 'ms' in CLI output to table header.
-
-commit f08abcb8dda6ff488fa1b52314a67d97aee059d7
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Fri Jun 2 00:31:53 2023 +0200
-
- Babel: Add support for the RTT extension
-
- This adds support to the Babel protocol for the RTT extension specified
- in draft-ietf-babel-rtt-extension. While this extension is not yet at the
- RFC stage, it is one of the more useful extensions to Babel[0], so it
- seems worth having in Bird as well.
-
- The extension adds timestamps to Hello and IHU TLVs and uses these to
- compute an RTT to each neighbour. An extra per-neighbour cost is then
- computed from the RTT based on a minimum and maximum interval and cost
- value specified in the configuration. The primary use case for this is
- improving routing in a geographically distributed tunnel-based overlay
- network.
-
- The implementation follows the babeld implementation when picking
- constants and default configuration values. It also uses the same RTT
- smoothing algorithm as babeld, and follows it in adding a new 'tunnel'
- interface type which enables RTT by default.
-
- [0] https://alioth-lists.debian.net/pipermail/babel-users/2022-April/003932.html
-
-commit d8cf3cad5104ab7a9887397b2a34d94c8a5f2aef
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Fri Jun 2 00:26:41 2023 +0200
-
- IO: Add current_time_now() function for immediate timestamp
-
- Add a current_time_now() function which gets an immediate monotonic
- timestamp instead of using the cached value from the event loop. This is
- useful for callers that need precise times, such as the Babel RTT
- measurement code.
-
- Minor changes by committer.
-
-commit 0799fc99abb523432bc3f903f6a32eafbe37d043
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed May 31 18:32:53 2023 +0200
-
- BMP: Fix bug in buffer resize
-
- The buffer code in bmp_buffer_grow(), reuse the MRT buffer handling code.
-
- Based on comments by Michal Zagorski <mzagorsk@akamai.com>, Thanks!
-
-commit e8be7a7080be2ffd800ead5377b06c7a535b564a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed May 31 17:41:53 2023 +0200
-
- BMP: Proper reconfiguration and protocol status
-
- Based on patches from Michal Zagorski <mzagorsk@akamai.com> co-authored
- with Pawel Maslanka <pmaslank@akamai.com>. Thanks!
-
-commit 1e45e2aa4e173869be071bfa28057d8b52e8948c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue May 30 17:23:56 2023 +0200
-
- BMP: Add station address check
-
- Also, do not initialize it to IPA_NONE4, use regular IPA_NONE.
-
-commit 62d8fbdc1cb3d358b0d20d7b10bd3f17f357d567
-Author: Michal Zagorski <mzagorsk@akamai.com>
-Date: Tue May 30 17:09:25 2023 +0200
-
- BMP: Add local address option
-
- Also remove unused local and ip_post_policy options.
-
- Co-authored with Pawel Maslanka <pmaslank@akamai.com>.
-
- Minor changes by committer.
-
-commit ae4d934c53cdc4cc5ec3d4535cd5138fdf9b25cb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue May 30 15:52:01 2023 +0200
-
- BMP: Minor formatting cleanups
-
- Based on patches from Michal Zagorski <mzagorsk@akamai.com> co-authored
- with Pawel Maslanka <pmaslank@akamai.com>. Thanks!
-
-commit c1821a9aba3c7fbdb48cee7d86e4661317900a0a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue May 30 15:37:52 2023 +0200
-
- BGP: Improve bgp_create_update_bmp()
-
- Fix issue with missing AF cap (e.g. IPv4 unicast when no capabilities
- are announced).
-
- Add Linpool save/restore action similar to bgp_create_update().
-
- Based on patch from Michal Zagorski <mzagorsk@akamai.com> co-authored
- with Pawel Maslanka <pmaslank@akamai.com>. Thanks!
-
-commit f8ba82804faba5cc1520d4545330502e29b9e920
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 19 01:02:57 2023 +0200
-
- BGP: Fix role check when no capability option is present
-
- When an OPEN message without capability options was parsed, the remote
- role field was not initialized with the proper (non-zero) default value,
- so it was interpreted as if 'provider' was announced.
-
- Thanks to Mikhail Grishin for the bugreport.
-
-commit b0e97617d98ed02235de37b7e498d81f01330b50
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu May 18 15:55:45 2023 +0200
-
- Lib: Improve IP/net hashing
-
- Backport some changes from branch oz-parametric-hashes. Replace naive
- hash function for IPv6 addresses, fix hashing of VPNx (where upper half
- of RD was ignored), fix hashing of MPLS labels (where identity was used).
-
-commit 3cf91fb9eb5e6aa51e63edcd237ee266373aec79
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue May 16 13:25:48 2023 +0200
-
- Nest: Add tests and benchmark for FIB
-
- Basic fib_get() / fib_find() test for random prefixes, FIB_WALK() test,
- and benchmark for fib_find(). Also generalize and reuse some code from
- trie tests.
-
-commit aa3c35498d3c5ae7ec7fd34bf8758652fc2748f1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon May 1 03:35:21 2023 +0200
-
- BMP: Use OPEN messages stored in BGP
-
- The BMP protocol needs OPEN messages of established BGP sessions to
- construct appropriate Peer Up messages. Instead of saving them internally
- we use OPEN messages stored in BGP instances. This allows BMP instances
- to be restarted or enabled later.
-
- Because of this change, we can simplify BMP data structures. No need to
- keep track of BGP sessions when we are not started. We have to iterate
- over all (established) BGP sessions when the BMP session is established.
- This is just a scaffolding now, but some kind of iteration would be
- necessary anyway.
-
- Also, the commit cleans up handling of msg/msg_length arguments to be
- body/body_length consistently in both rx/tx and peer_up/peer_down calls.
-
-commit 1be0be1b71f0127740a4aa6f35d4a256d6c34fb9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 28 19:13:56 2023 +0200
-
- BGP: Save sent and received OPEN messages
-
- These are necessary for BMP Peer UP message and it is better to keep them
- in BGP than in BMP (so BMP could be restarted or added later).
-
-commit a8a64ca0fed41c78376b27880e934296bd3c3a7f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Apr 27 18:20:49 2023 +0200
-
- Conf: Improve handling of keywords
-
- For whatever reason, parser allocated a symbol for every parsed keyword
- in each scope. That wasted time and memory. The effect is worsened with
- recent changes allowing local scopes, so keywords often promote soft
- scopes (with no symbols) to real scopes.
-
- Do not allocate a symbol for a keyword. Take care of keywords that could
- be promoted to symbols (kw_sym) and do it explicitly.
-
-commit 9b471e72d75c154f3b8c4fa134c7c9f1a55fe27f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Apr 27 17:09:00 2023 +0200
-
- Conf: Fix symbol lookup
-
- The symbol table used just symbol name as a key, and used a trick with
- active flag to find symbols in active scopes with one hash table lookup.
-
- The disadvantage is that it can degenerate to O(n) for negative queries
- in situations where are many symbols with the same name in different
- scopes.
-
- Thanks to Yanko Kaneti for the bugreport.
-
-commit ca0f239c72486cebfe171e335e3b8a86f5999714
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 21 20:24:43 2023 +0200
-
- NEWS and version update
-
-commit 1a1e13cc2fc2df82e2319b7beeb18bb8eb92fbd2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 21 19:29:17 2023 +0200
-
- Filter: Disable some trie formatting tests
-
- Trie formatting works slightly different with 4-way tries than with
- 16-way ones, so these tests generated false error. Block them for now.
-
-commit 52450bc96dcedbc30cbb2e282c6706ad9e5e5774
-Merge: d61505b0 f3b599af
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 21 04:47:55 2023 +0200
-
- Merge branch 'bmp'
-
-commit f3b599afe5bde0c7f232421743041b305bb8afa7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 21 04:42:13 2023 +0200
-
- BMP: Add some basic documentation
-
-commit d61505b039bf0aa6697e28b2a4e07907c89ba1fb
-Author: Luiz Amaral <email@luiz.eng.br>
-Date: Fri Apr 21 01:37:30 2023 +0200
-
- BSD: IPv4 over IPv6 nexthop support on FreeBSD
-
- The support for IPv4 routes with IPv6 nexthops was implemented in FreeBSD
- 13.1, this patch allows to import and export such routes from/to kernel.
-
- Minor change from committer.
-
-commit 335409248ea932e93ce4361564b8e92d0b83b071
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Apr 20 19:33:00 2023 +0200
-
- Linpool: Fix lp_restore()
-
- When lp_save() is called on an empty linpool, then some allocation is
- done, then lp_restore() is called, the linpool is restored but the used
- chunks are inaccessible. Fix it.
-
-commit 976dec048a25fc22efb07fa73be1316c95046420
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Apr 20 17:14:45 2023 +0200
-
- BMP: Silence some log messages
-
- Hooks called from BGP to BMP should not log warning when BMP is not
- connected, that is not an error (and we do not want to flood logs with
- a ton of messages).
-
- Blocked sk_send() should not log warning, that is expected situation.
- Error during sk_send() is handled in error hook anyway.
-
-commit 2c7d2141ac86b0d482d3221447d1ad920c557108
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Apr 20 16:13:58 2023 +0200
-
- BMP: Fix connection management
-
- Replace broken TCP connection management with a simple state machine.
- Handle failed attempts properly with a timeout, detect and handle TCP
- connection close and try to reconnect after that. Remove useless
- 'station_connected' flag.
-
- Keep open messages saved even after the BMP session establishment,
- so they can be used after BMP session flaps.
-
- Use proper log messages for session events.
-
-commit 010df43519b12e83b0ff2cba9e344cba698586bb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 18 18:57:54 2023 +0200
-
- BMP: Fix reconfiguration
-
- It is not supported, but at least it must update internal config
- pointer to not keep old one.
-
-commit 02164814b49a3385caae0ea10aa042487c6002d2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 18 17:21:13 2023 +0200
-
- BMP: Allow build without BMP and disable BMP build by default
-
- It has still several important issues to be enabled by default.
-
-commit fbeef4b74dfd73fb86b1ccc5dd1c6109e3c21624
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 18 15:13:24 2023 +0200
-
- BMP: Move initialization to bmp_start()
-
- That fixes BMP socket allocation from an invalid pool.
-
-commit 04e3a76c9417d35acdfba96a11327e99000fe47d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 18 15:09:21 2023 +0200
-
- BMP: Fix missing template
-
- It is mandatory for protocol.
-
-commit 3925e65938e7c778f650d62a721dec7a66c19ab3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Apr 15 18:32:47 2021 +0200
-
- BMP: Add some missing bmp_buffer_free() calls
-
- They were inadvertently removed during recent code refactoring.
-
- Thanks to Dawid Macek for the bugreport and patch.
-
-commit 4d56b70dc5facdf4b839b76bf80c93856bcbb121
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Mar 29 04:43:04 2021 +0200
-
- BMP: Remove duplicate functions for update encoding
-
- Use existing BGP functions also for BMP update encoding.
-
-commit 568fd666136fcf7a37eb445d18b478b6464536c4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Mar 28 16:41:53 2021 +0200
-
- BMP: Integrate bmp_conn to bmp_proto
-
- There is only one socket per BMP instance, no need to have separate
- struct (like in BGP).
-
-commit 4adebdf198d6e2ca1afcd7cb9bfac81725e7b24e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Mar 28 15:36:59 2021 +0200
-
- BMP: Minor cleanups
-
- Remove redundant 'disable' option, simplify IP address serialization,
- and remove useless macros.
-
-commit a995ed43860eb139a13456242aa12486179fac86
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Mar 28 15:13:23 2021 +0200
-
- BMP: Do not use global instance ptr internally
-
- Use local variable to refence relevant instance instead of using global
- instance ptr. Also, use 'p' variable instead of 'bmp' so we can use
- common macros like TRACE().
-
-commit ad16e351773f4b606dd8b4dbbe77c2cb35bf5133
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Mar 28 04:30:11 2021 +0200
-
- BMP: Remove superfluous error handling
-
- Most error handling code was was for cases that cannot happen,
- or they would be code bugs (and should use ASSERT()). Keep error
- handling for just for I/O errors, like in rest of BIRD.
-
-commit a848dad40aa618e5e24417e4ef46b62c860de679
-Author: Pawel Maslanka <pmaslank@akamai.com>
-Date: Mon Mar 29 22:45:21 2021 +0200
-
- BMP protocol support
-
- Initial implementation of a basic subset of the BMP (BGP Monitoring
- Protocol, RFC 7854) from Akamai team. Submitted for further review
- and improvement.
-
-commit 9e44ace3928a19560058dc713fcbff3a8bad3b3c
-Author: Trisha Biswas <tbiswas@fastly.com>
-Date: Fri Apr 14 04:28:37 2023 +0200
-
- BGP: Add 'allow bgp_med' option for EBGP sessions
-
- This option allows to treat bgp_med as regular transitive attribute
- on EBGP sessions (without hacks in filters).
-
- Minor changes from committer.
-
-commit dc139fb6438f0864e83a9dc71e7c212c5acaf3ef
-Author: Jakub RuĹľiÄŤka <jakub.ruzicka@nic.cz>
-Date: Thu Apr 13 20:06:55 2023 +0200
-
- Increase tests timeout
-
- Tests may take longer than 5 s to complete on slow/virtual machines.
-
-commit f881b98d9b48e7a60c46dffc29009a86dac63233
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 4 05:20:49 2023 +0200
-
- BGP: Fix bgp_med handling
-
- Missing translation from BGP attribute ID to eattr ID in bgp_unset_attr()
- broke automatic removal of bgp_med during export to EBGP peers.
-
- Thanks to Edward Sun for the bugreport.
-
-commit 231c63851e3a56201dd02abfbf3fce47a80f8ae0
-Author: Johannes Moos <johannes.moos@de-cix.net>
-Date: Sat Mar 18 15:33:48 2023 +0100
-
- Add missing references to "show route in" in the cli-help and doc.
-
- The feature of showing all prefixes inside the given one has been added
- in v2.0.9 but not well documented. Fixing it by this update.
-
- Text in doc and commit message added by commiter.
-
-commit 2b712554d18dfb09274c003315a573f8578270ec
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Mar 16 19:23:19 2023 +0100
-
- BGP: Free bind applies also to outbound connections
-
- Even though the free bind option is primarily meant to alleviate problems
- with addresses assigned too late, it's also possible to use BIRD with AnyIP
- configuration, assigning whole ranges to the machine. Therefore free bind
- allows also to create an outbound connection from specific address even though
- such address is not assigned.
-
-commit 6b38285f587be9d4b128ae816bc25cb338f7f07c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 6 11:57:40 2023 +0100
-
- Net: Replace runtime checks with STATIC_ASSERT()
-
-commit 0f679438f36d8c2a31dfe490007e983b085caef6
-Author: Petr Vaněk <arkamar@atlas.cz>
-Date: Mon Mar 6 11:19:30 2023 +0100
-
- Printf test suite fails on systems with musl libc because tests for "%m"
- and "%M" formats expect "Input/output error" message but musl returns
- "I/O error". Proposed change compares the printf output with string
- returned from strerror function for EIO constant.
-
- See-also: https://bugs.gentoo.org/836713
-
- Minor change from committer.
-
-commit 2f080b543296aa2fa18bf7451b5174d942b0a952
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Feb 16 14:22:23 2023 +0100
-
- Config: Dropping filter instruction trees after linearization
-
-commit 6c058ae40cf33d6d36c0159d0c40c9925c8e60d8
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Feb 22 14:45:20 2023 +0100
-
- Linpool flush drops all the allocated pages but one
-
- When a linpool is used to allocate a one-off big load of memory, it
- makes no sense to keep that amount of memory for future use inside the
- linpool. Contrary to previous implementations where the memory was
- directly free()d, we now use the page allocator which has an internal
- cache which keeps the released pages for us and subsequent allocations
- simply get these released pages back.
-
- And even if the page cleanup routine kicks in inbetween, the pages get
- only madvise()d, not munmap()ed so performance aspects are negligible.
-
- This may fix some memory usage peaks in extreme cases.
-
-commit 913ec57f27b06845e3698e8ea08821d39b9575cf
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Feb 19 15:35:07 2023 +0100
-
- BGP: Update RFC references
-
-commit 501256cfc8c1fb5e225c81c4d3300b7c219baf63
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Feb 19 15:34:43 2023 +0100
-
- Babel: Update RFC references
-
-commit eefb29679957fed3724e6d5db2ddf112e28f646f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Feb 19 03:59:10 2023 +0100
-
- Conf: Fix too early free of old configuration
-
- The change 371eb49043d225d2bab8149187b813a14b4b86d2 introduced early free
- of old_config. Unfortunately, it did not properly check whether it is not
- still in use (blocked by obstacle during reconfiguration). Fix that.
-
- It also means that we still could have a short peak when three configs
- are in use (when a new reconfig is requeste while the previous one is
- still active).
-
-commit ee919658948772105d0bd3b4535ba28883484f2c
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Tue Feb 14 18:18:32 2023 +0100
-
- Babel: Keep separate auth PC counters for unicast and multicast
-
- The babel protocol normally sends all its messages as multicast packets,
- but the protocol specification allows most messages to be sent as either
- unicast or multicast, and the two can be mixed freely. In particular, the
- babeld implementation can be configured to unicast updates to all peers
- instead of sending them as unicast.
-
- Daniel discovered that this can cause problems with the packet counter
- checks in the MAC extension due to packet reordering. This happens on WiFi
- networks where clients have power save enabled (which is quite common in
- infrastructure networks): in this case, the access point will buffer all
- multicast traffic and only send it out along with its beacons, leading to a
- maximum buffering in default Linux-based access point configuration of up
- to 200 ms.
-
- This means that a Babel sender that mixes unicast and multicast messages
- can have the unicast messages overtake the multicast messages because of
- this buffering; when authentication is enabled, this causes the receiver to
- discard the multicast message when it does arrive because it now has a
- packet counter value less than the unicast message that arrived before it.
- Daniel observed that this happens frequently enough that Babel ceases to
- work entirely when runner over a WiFi network.
-
- The issue has been described in draft-ietf-babel-mac-relaxed, which is
- currently pending RFC publication. That also describes two mitigation
- mechanisms: Keeping separate PC counters for unicast and multicast, and
- using a reorder window for PC values. This patch implements the former as
- that is the simplest, and resolves the particular issue seen on WiFi.
-
- Thanks to Daniel Gröber for the bugreport.
-
- Minor changes from committer.
-
-commit eecc3f02e41bcb91d463c4c1189fd56bc44e6514
-Author: Andreas Rammhold <andreas@rammhold.de>
-Date: Tue Feb 14 16:17:03 2023 +0100
-
- Babel: Implement IPv4 via IPv6 extension (RFC 9229)
-
- The patch implements an IPv4 via IPv6 extension (RFC 9229) to the Babel
- routing protocol (RFC 8966) that allows annoncing routes to an IPv4
- prefix with an IPv6 next hop, which makes it possible for IPv4 traffic
- to flow through interfaces that have not been assigned an IPv4 address.
-
- The implementation is compatible with the current Babeld version.
-
- Thanks to Toke Høiland-Jørgensen for early review on this work.
-
- Minor changes from committer.
-
-commit 0851fcde651301a886fefc574a4f739bf68119b9
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Feb 3 09:12:34 2023 +0100
-
- Documentation: Adding roadmap as decided in January 2023
-
-commit 0ab62f267449d6496e753625e37924357fb0aa95
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Feb 1 19:30:21 2023 +0100
-
- Build: Partial revert of one of previous changes
-
- There are many compatibility issues with echo -e, scratch that.
-
-commit ba348b2029f3c51559bed0bd752c4365793f0ea9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Feb 1 17:46:48 2023 +0100
-
- Build: Minor improvement to build output
-
-commit 23f3dd5cfbe8681b4e71c8d7345bdeaafc86e077
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Feb 1 16:15:13 2023 +0100
-
- Nest: Minor cleanup in buildsystem
-
- There ware missing dependencies for proto-build.c generation, which
- sometimes lead to failed builds, and ignores changes in the set of
- built protocols. Fix that, and also improve formatting of proto-build.c
-
-commit dc4c5f51f83f97100b207136ecfde8ff94e597e6
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Tue Jan 31 15:52:14 2023 +0100
-
- Babel: Initialise source seqno from incoming message
-
- When creating a new babel_source object we initialise the seqno to 0. The
- caller will update the source object with the right metric and seqno value,
- for both newly created and old source objects. However if we initialise the
- source object seqno to 0 that may actually turn out to be a valid (higher)
- seqno than the one in the routing table, because of seqno wrapping. In this
- case the source metric will not be set properly, which breaks feasibility
- tracking for subsequent updates.
-
- To fix this, add a new initial_seqno argument to babel_get_source() which
- is used when allocating a new object, and set that to the seqno value of
- the update we're sending.
-
- Thanks to Juliusz Chroboczek for the bugreport.
-
-commit 96d7c4679df49b34be004177b10a99210af5f141
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jan 30 23:49:20 2023 +0100
-
- Babel: Improve clarity of unfeasible update handling.
-
- Add a comment and (unnecessary) check to make correctness obvious.
-
-commit 3e7e4a71868bc519aacc0eb785471b46fc345a5c
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Mon Jan 30 23:36:39 2023 +0100
-
- Babel: Fix missing modulo comparison of seqnos
-
- Juliusz noticed there were a couple of places we were doing straight
- inequality comparisons of seqnos in Babel. This is wrong because seqnos can
- wrap: so we need to use the modulo-64k comparison function for these cases
- as well.
-
- Introduce a strict-inequality version of the modulo-comparison for this
- purpose.
-
-commit 72230d3ca37d34cafa0442c23f83121ae1fc41be
-Author: Alexander Zubkov <green@qrator.net>
-Date: Mon Jan 23 14:23:00 2023 +0100
-
- Small fix of indenting
-
-commit 5437104afad90f2a74ce52946f06da607d021e2b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jan 23 02:23:19 2023 +0100
-
- NEWS and version update
-
-commit 99872676df45f1a490d3d63f43081afb41477040
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jan 22 23:42:08 2023 +0100
-
- BFD: Improve incoming packet matching
-
- For active sessions, ignore received packets with zero local id and
- mismatched remote id. That forces a session timeout instead of an
- immediate session restart. It makes BFD sessions more resilient to
- packet spoofing.
-
- Thanks to André Grüneberg for the suggestion.
-
-commit a82683694da23799f247b3392a00efdd342afdfc
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jan 22 18:12:04 2023 +0100
-
- VRF: Fix issues with reconfiguration
-
- Protocols receive if_notify() announcements that are filtered according
- to their VRF setting, but during reconfiguration, they access iface_list
- directly and forgot to check VRF setting here, which leads to all
- interfaces be addedd.
-
- Fix this issue for Babel, OSPF, RAdv and RIP protocols.
-
- Thanks to Marcel Menzel for the bugreport.
-
-commit 3186ffe79714a48542d5ad61a94c81216b522fd0
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sun Jan 22 12:55:31 2023 +0100
-
- Added test case for switch bug fixed in e20bef69ccc4a85ef62359ee539c9db2dbe09127
-
-commit af611f93aa5040acc606ed289a873bf1136831c2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jan 20 15:55:47 2023 +0100
-
- BGP: Add received role value to role mismatch log message
-
-commit 804916daa91834a4740edba96a43c7f0a43744b3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jan 18 13:40:21 2023 +0100
-
- Alloc: Minor cleanups
-
- - Fix THP disable on old systems
- - Failed syscalls should use die() instead of bug()
- - Our printf uses %ld for s64 instead of long
-
-commit 6bb992cb04926895be57dc97e7d569ea15a07db1
-Merge: 973aa37e 7144c9ca
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Jan 18 12:33:06 2023 +0100
-
- Merge branch 'master' of https://gitlab.nic.cz/labs/bird
-
-commit 973aa37e1e28a9c508fe09c008196f64cd3966fd
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Jan 18 09:39:45 2023 +0100
-
- Fix memory pre-allocation
-
- When BIRD has no free memory mapped, it allocates several pages in
- advance just to be sure that there is some memory available if needed.
- This hysteresis tactics works quite well to reduce memory ping-ping with
- kernel.
-
- Yet it had a subtle bug: this pre-allocation didn't take a memory
- coldlist into account, therefore requesting new pages from kernel even
- in cases when there were other pages available. This led to slow memory
- bloating.
-
- To demonstrate this behavior fast enough to be seen well, you may:
- * temporarily set the values in sysdep/unix/alloc.c as follows to
- exacerbate the issue:
- #define KEEP_PAGES_MAIN_MAX 4096
- #define KEEP_PAGES_MAIN_MIN 1000
- #define CLEANUP_PAGES_BULK 4096
- * create a config file with several millions of static routes
- * periodically disable all static protocols and then reload config
- * log memory consumption
-
- This should give you a steady growth rate of about 16kB per cycle. If
- you don't set the values this high, the issue happens much more slowly,
- yet after 14 days of running, you are going to see an OOM kill.
-
- After this fix, pre-allocation uses the memory coldlist to get some hot
- pages and the same test as described here gets you a perfectly stable
- constant memory consumption (after some initial wobbling).
-
- Thanks to NIX-CZ for reporting and helping to investigate this issue.
- Thanks to Santiago for finding the cause in the code.
-
-commit 7144c9ca46f092da33a4e051bbce8f973a3bd8c4
-Author: Radu Carpa <radu.carpa@cern.ch>
-Date: Tue Jan 17 18:13:37 2023 +0100
-
- Filter: Allow setting the 'onlink' route attribute in filters
-
- Add static route attribute to set onlink flag for route next hop. Can be
- used to build a dynamically routed IP-in-IP overlay network. Usage:
-
- ifname = "tunl0";
- onlink = true;
- gw = bgp_next_hop;
-
-commit 928a1cb034e6f9e8edcdd1dc07264cd703e00827
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jan 17 17:13:50 2023 +0100
-
- Alloc: Disable transparent huge pages
-
- The usage pattern implemented in allocator seems to be incompatible with
- transparent huge pages, as memory released using madvise(MADV_DONTNEED)
- with regular page size and alignment does not seem to trigger demotion
- of huge pages back to regular pages, even when significant number of
- pages is released. Even if demotion is triggered when system memory
- is low, it still breaks memory accounting.
-
-commit 54234c9eae978463a2518446da399470ff916252
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jan 13 16:44:42 2023 +0100
-
- Build: Fix cleanup of nest/proto-build.c
-
-commit f8276812e6bf3aaefe22cdf9135b06e344298273
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jan 13 13:32:29 2023 +0100
-
- Minor cleanups
-
-commit 7fb23041a52d01754c53ba963e2282e524813364
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jan 13 13:17:46 2023 +0100
-
- BSD: Add support for kernel route metric
-
- Add support for kernel route metric/priority, exported as krt_metric
- attribute, like in Linux. This should also fix issues with overwriting
- or removing system routes.
-
-commit 64a2b7aaa303be0b407508747bfc96c1c656f1e2
-Author: Mike Crute <mike@crute.us>
-Date: Thu Jan 12 17:40:53 2023 +0100
-
- Log message before aborting
-
- Log message before aborting due to watchdog timeout. We have to use
- async-safe write to debug log, as it is done in signal handler.
-
- Minor changes from committer.
-
-commit e20bef69ccc4a85ef62359ee539c9db2dbe09127
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jan 7 20:18:44 2023 +0100
-
- Filter: Change linearization of branches in switch instruction
-
- Most branching instructions (FI_CONDITION, FI_AND, FI_OR) linearize its
- branches in a recursive way, while FI_SWITCH branches are linearized
- from parser even before the switch instruction is allocated.
-
- Change linearization of FI_SWITCH branches to make it similar to other
- branching instructions. This also fixes an issue with constant
- switch evaluation, where linearized branch is mistaken for
- non-linearized during switch construction.
-
- Thanks to Jiten Kumar Pathy for the bugreport.
-
-commit d1cd5e5a63b2256eb71661f7438537e4ded7b01a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jan 3 19:09:51 2023 +0100
-
- BGP: Allow role specific keywords to be used as symbols
-
- Some of these new BGP role keywords use generic names that collides with
- user-defined symbols. Allow them to be redefined. Also remove duplicit
- keyword definition for 'prefer'.
-
-commit 309c874f9c8b217dbed1569c73b4a3035f5cb170
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jan 3 17:14:48 2023 +0100
-
- Configure: Expensive check option was broken, never worked
-
-commit b28431e557c4f63923476094a919a0630001275e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jan 3 17:01:54 2023 +0100
-
- Nest: Fix leaking internal attributes in RIP and Babel
-
- During backporting attribute changes from 3.0-branch, some internal
- attributes (RIP iface and Babel seqno) leaked to 'show route all' output.
- Allow protocols to hide specific attributes with GA_HIDDEN value.
-
- Thanks to Nigel Kukard for the bugreport.
-
-commit d3f50ede127df338f575e188566035b2a46cf6c6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jan 2 15:55:55 2023 +0100
-
- Add compile-time option to enable 4-way tries instead of 16-way ones
-
- In some cases 16-way tries are too memory-heavy, while 4-way are
- almost as efficient as the original 2-way ones.
-
-commit 6d1ae197d189d50e60279796441c6e74272ddc54
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jan 1 20:10:23 2023 +0100
-
- Nest: Fix several issues with pflags
-
- There were some confusion about validity and usage of pflags, which
- caused incorrect usage after some flags from (now removed) protocol-
- specific area were moved to pflags.
-
- We state that pflags:
-
- - Are secondary data used by protocol-specific hooks
- - Can be changed on an existing route (in contrast to copy-on-write
- for primary data)
- - Are irrelevant for propagation (not propagated when changed)
- - Are specific to a routing table (not propagated by pipe)
-
- The patch did these fixes:
-
- - Do not compare pflags in rte_same(), as they may keep cached values
- like BGP_REF_STALE, causing spurious propagation.
-
- - Initialize pflags to zero in rte_get_temp(), avoid initialization in
- protocol code, fixing at least two forgotten initializations (krt
- and one case in babel).
-
- - Improve documentation about pflags
-
-commit 8b06a4d8af46511f0f8dbb8905afa88590a831b6
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Sat Dec 24 15:47:11 2022 +0100
-
- Babel: Rework seqno request handling
-
- The seqno request retransmission handling was tracking the destination
- that a forwarded request was being sent to and always retransmitting to
- that same destination. This is unnecessary because we only need to
- retransmit requests we originate ourselves, not those we forward on
- behalf of others; in fact retransmitting on behalf of others can lead to
- exponential multiplication of requests, which would be bad.
-
- So rework the seqno request tracking so that instead of storing the
- destination of a request, we just track whether it was a request that we
- forwarded on behalf of another node, or if it was a request we originated
- ourselves. Forwarded requests are not retransmitted, they are only used
- for duplicate suppression, and for triggering an update when satisfied.
- If we end up originating a request that we previously forwarded, we
- "upgrade" the old request and restart the retransmit counter.
-
- One complication with this is that requests sent in response to unfeasible
- updates (section 3.8.2.2 of the RFC) have to be sent as unicast to a
- particular peer. However, we don't really need to retransmit those as
- there's no starvation when sending such a request; so we just change
- such requests to be one-off unicast requests that are not subject to
- retransmission or duplicate suppression. This is the same behaviour as
- babeld has for such requests.
-
- Minor changes from committer.
-
-commit 2b7643e1f8ecb0bd4cf9af4183b4fd53b655d19c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Dec 18 20:10:14 2022 +0100
-
- BSD: Use ip_mreqn on FreeBSD 12.1+ and OpenBSD 6.9+
-
-commit 6825f94570b05f933f09ae1bd7e520954d903e6a
-Author: Alexander Chernikov <melifaro@FreeBSD.org>
-Date: Fri Dec 16 19:35:02 2022 +0100
-
- FreeBSD: use interface index instead of IP address when specifying multicast interface
-
- Minor changes from committer.
-
-commit 176fc68aed32a5675aa643e3b7c6f65ff9ad13d0
-Author: Alexander Chernikov <melifaro@FreeBSD.org>
-Date: Fri Dec 16 19:20:05 2022 +0100
-
- Netlink: move OS-specific headers and defines to sysdep
-
- Minor changes from committer.
-
-commit 7b6c9649775b288653b0d61df6004d79f0d83ccf
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Dec 16 19:03:41 2022 +0100
-
- BSD: Add missing makefile for bsd-netlink target
-
- Use symlinks to linux/netlink* to avoid limitations of our buildsystem.
-
-commit 1e47b9f203aaaad0fb658d40a1670f1d0437f1f8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Dec 11 17:28:14 2022 +0100
-
- NEWS and version update
-
-commit 34ebc4e1ba41c618e5d46112696011ed596c5ebc
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Dec 11 16:28:28 2022 +0100
-
- BSD: Workaround for direct routes on FreeBSD 13.0
-
- FreeBSD 13.0 added some safechecks for syscalls, rejecting sockaddrs that
- are too small, later versions loosen up the check.
-
-commit 937ebf2536e6b4d65f996af53a29ac550ac0cc2a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Dec 10 18:03:41 2022 +0100
-
- BGP: Log unacceptable hold time as decimal number
-
- Thanks Johannes Moos for the suggestion.
-
-commit 4c19a8a984c39c7269cf497808735f147243800b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Dec 10 17:32:42 2022 +0100
-
- CLI: Fix for long-lived sessions during high loads
-
- When there is a continuos stream of CLI commands, cli_get_command()
- always returns 1 (there is a new command). Anyway, the socket receive
- buffer was reset only when there was no command at all, leading to a
- strange behavior: after a while, the CLI receive buffer came to its end,
- then read() was called with zero size buffer, it returned 0 which was
- interpreted as EOF.
-
- The patch fixes that by resetting the buffer position after each command
- and moving remaining data at the beginning of buffer.
-
- Thanks to Maria Matejka for examining the bug and for the original bugfix.
-
-commit 1124f39f731610687eb8fdd6d7079c20063809c1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Dec 10 03:02:26 2022 +0100
-
- Client: Unknown command should return nonzero errorcode
-
-commit e48f898fdaf06b61754ae520410729a9984ab65b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Dec 9 22:43:27 2022 +0100
-
- Doc: Document issue with import tables
-
- The import table does not work reliably together with re-evaluation of
- routes due to recursive next hops or flowspec validation. We will at
- least document that here, as import tables are completely redesigned and
- this issue is fixed in BIRD 3.x branch.
-
-commit a80cd4707464cedb526eb72e7704b097af20beb7
-Author: Alexander V. Chernikov <melifaro@ipfw.ru>
-Date: Fri Dec 9 15:59:06 2022 +0100
-
- Netlink on FreeBSD support
-
- Netlink support was added to FreeBSD recently. It is not as full-featured
- as its Linux counterpart yet, however the added subset is enough to make
- a routing daemon work. Specifically, it supports multiple tables,
- multipath, nexthops and nexthops groups. No MPLS support yet.
-
- The attached change adds 'bsd-netlink’ sysconf target, allowing to build
- both netlink & rtsock versions on FreeBSD.
-
-commit 3859e4efc1597368df647323c5a3cc1771cb64ca
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Dec 9 05:51:30 2022 +0100
-
- BGP: Improve handling of hold and keepalive timers
-
- The effective keepalive time now scales relative to the negotiated
- hold time, to maintain proportion between the keepalive time and the
- hold time. This avoids issues when both keepalive and hold times
- were configured, the hold time was negotiated to a smaller value,
- but the keepalive time stayed the same.
-
- Add new options 'min hold time' and 'min keepalive time', which reject
- session attempts with too small hold time.
-
- Improve validation of config options an their documentation.
-
- Thanks to Alexander Zubkov and Sergei Goriunov for suggestions.
-
-commit e80156d9363a594ff23524f56d59f0eee160859d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Dec 6 19:40:02 2022 +0100
-
- Nest: Avoid spurious announcements triggered by filtered routes
-
- When filtered routes (enabled by 'import keep filtered' option) are
- updated, they trigger announcements by rte_announce(). For regular
- channels (e.g. type RA_OPTIMAL or RA_ANY) such announcement is just
- ignored, but in case of RA_ACCEPTED (BGP peer with 'secondary' option)
- it just reannounces the old (and still valid) best route.
-
- The patch ensures that such no-change is ignored even for these channels.
-
-commit a50d2fa65f3350ee55f5106b87a884d1b98e7761
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Nov 30 02:45:07 2022 +0100
-
- CI: Remove docker rebuild phase
-
- It is unnnecessary and takes too much time
-
-commit ff38ee598648ae2fc76cc18dada7602dcfc90668
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 29 18:30:16 2022 +0100
-
- CI: Try new workers
-
-commit 543c8ba0971e91da3fe507dbfc1e1f9b556642b1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 29 19:43:38 2022 +0100
-
- BSD: Fix krt socket code w.r.t. rte/rta changes
-
-commit 140c534fb81d0e165b7d674e869c646455ed19d1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 29 03:50:33 2022 +0100
-
- Fix build variables for OpenBSD
-
-commit bbac9ca958c73fd08b4691ea40067d1cc3ac275a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Nov 9 22:02:46 2022 +0100
-
- Conf: Make 'configure check' command restricted
-
- While it does not directly change BIRD state, it can trigger reading
- arbitrary files and eating significant memory.
-
-commit 371eb49043d225d2bab8149187b813a14b4b86d2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Nov 9 21:09:16 2022 +0100
-
- Conf: Free stored old config before parsing new one
-
- BIRD keeps a previous (old) configuration for the purpose of undo. The
- existing code frees it after a new configuration is successfully parsed
- during reconfiguration. That causes memory usage spikes as there are
- temporarily three configurations (old, current, and new). The patch
- changes it to free the old one before parsing the new one (as user
- already requested a new config). The disadvantage is that undo is
- not available after failed reconfiguration.
-
-commit 84545a26cc3f7ce68408a663c1ad4a50edccdacc
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Nov 8 10:20:55 2022 +0100
-
- Added more netlab tests for automatic run.
-
- This commit uses bird-tools in version
- f35e8bce829f4bff61ec7eb07ec9c67aa867bc9a
-
-commit 57308fb277788ab082a0047e8764fe8023aff6df
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Nov 3 12:38:57 2022 +0100
-
- Page allocator: Fixed minor bugs and added commentary
-
-commit 9d03c3f56ced3d3191982f57029f9a3d12fa2e5a
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Nov 1 18:40:56 2022 +0100
-
- Memory pages are not munmapped, instead we just madvise()
-
- Memory unmapping causes slow address space fragmentation, leading in
- extreme cases to failing to allocate pages at all. Removing this problem
- by keeping all the pages allocated to us, yet calling madvise() to let
- kernel dispose of them.
-
- This adds a little complexity and overhead as we have to keep the
- pointers to the free pages, therefore to hold e.g. 1 GB of 4K pages with
- 8B pointers, we have to store 2 MB of data.
-
-commit 37b644413723670928f6b54f2abe0c852eb0b652
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Nov 1 08:56:26 2022 +0100
-
- Moved config-related allocations to config_pool and showing its size in memory usage
-
-commit 5aebce5e0cc59c4c8459ab92a201df5868f46e7a
-Author: Alexander Zubkov <green@qrator.net>
-Date: Tue Oct 18 04:25:29 2022 +0200
-
- Doc: Add documentation for "show route (import|export) table"
-
-commit e471f9e0fb7ade475dd3eb8b230bcb440877ee7e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Oct 18 03:58:19 2022 +0200
-
- Filter: Fix handling of variables in anonymous filters
-
- Define scope for anonymous filters, and also explicitly distinguish block
- scopes and function/filter scopes instead of using anonymous / named
- distinction.
-
- Anonymous filters forgot to push scope, so variables for them were in
- fact defined in the top scope and therefore they shared a frame. This got
- broken after rework of variables, which assumed that there is a named
- scope for every function/filter.
-
-commit 324252975004154cc70623c94f05083bff100209
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 12 17:57:26 2022 +0200
-
- Netlink: Parse onlink flag even on direct routes
-
- While onlink flag is meaningful only with explicit next hops, it can be
- defined also on direct routes. Parse it also in this case to avoid
- periodic updates of the same route.
-
- Thanks to Marcin Saklak for the bugreport.
-
-commit 8f79e6b93e32a4eb7e4dda9bd4a9d04400b79d45
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Oct 10 05:06:19 2022 +0200
-
- BGP: Add option 'next hop prefer global'
-
- Add BGP channel option 'next hop prefer global' that modifies BGP
- recursive next hop resolution to use global next hop IPv6 address instead
- of link-local next hop IPv6 address for immediate next hop of received
- routes.
-
-commit 8478de8817c58af02f7aed1d621013891115a2dc
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Oct 3 18:53:21 2022 +0200
-
- Nest: Add channel config flag to distinguish new or copy
-
- It is useful to distinguish whehter channel config returned from
- channel_config_get() was allocated new, or existing from template.
- Caller may want to initialize new ones.
-
-commit 92a856554780c262f188acb4cdcee363bf6dd1bb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Sep 27 16:47:52 2022 +0200
-
- Filter: Add some minor functions for f_tree and EC
-
- Add some supportive functions for f_tree and EC. These functions are used
- by L3VPN code.
-
-commit da0b589e7bbcd8177702caa925063d36e7f316ec
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Sep 27 16:13:27 2022 +0200
-
- BGP: Some fixes related to VRF and MPLS interactions
-
- - When next hop is reset to local IP, we should remove BGP label stack,
- as it is related to original next hop
-
- - BGP next hop or immediate next hop from one VRF should not be passed
- to another VRF, as they are different IP namespaces
-
-commit 54430df953d6c590e5f446530a21d18277eeda56
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Sep 8 19:41:02 2022 +0200
-
- BGP: Do not assume that all channels are struct bgp_channel
-
- In principle, the channel list is a list of parent struct proto and can
- contain general structures of type struct channel, That is useful e.g.
- for adding MPLS channels to BGP.
-
-commit 605ff0a0ebdd32b1a98316737c3e65acb528a156
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Oct 3 17:09:02 2022 +0200
-
- RPKI: wait for retry_time if we get error immediately after connected
-
-commit 0f2be469f897b6d9f925563bbf522438c83522ea
-Author: Alexander Zubkov <green@qrator.net>
-Date: Wed Sep 21 17:07:11 2022 +0200
-
- KRT: Fix setting default preference
-
- Changes in commit eb937358 broke setting of channel preference for alien
- routes learned during scan. The preference was set only for async routes.
- Move common attribute processing part of functions krt_learn_async() and
- krt_learn_async() to a separate function to have only one place for such
- changes.
-
-commit c73343de67afc703dfe812b8e94034b1b1dcfca8
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Sep 16 10:11:51 2022 +0200
-
- Revert "Reducing filter stack size to allow for lesser thread stack size"
-
- This reverts commit 2c13759136951ef0e70a3e3c2b2d3c9a387f7ed9.
-
-commit 71b3456eede17be6646b7deebff84f34ee5755f7
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Oct 22 19:43:55 2021 +0200
-
- Better profylaction recursive route loops
-
- In some specific configurations, it was possible to send BIRD into an
- infinite loop of recursive next hop resolution. This was caused by route
- priority inversion.
-
- To prevent priority inversions affecting other next hops, we simply
- refuse to resolve any next hop if the best route for the matching prefix
- is recursive or any other route with the same preference is recursive.
-
- Next hop resolution doesn't change route priority, therefore it is
- perfectly OK to resolve BGP next hops e.g. by an OSPF route, yet if the
- same (or covering) prefix is also announced by iBGP, by retraction of
- the OSPF route we would get a possible priority inversion.
-
-commit d2c1036a42881d413ec97203ede92a69f8cd218f
-Merge: dc28c6ed 16ac6c3c
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Aug 18 22:07:50 2022 +0200
-
- Merge branch 'mq-fix-eattr-setting' into backport
-
-commit dc28c6ed1c6643ec19d2e8f94f92955f58c357a7
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Aug 18 18:32:33 2022 +0200
-
- Simplified the protocol hookup code in Makefiles
-
-commit 16ac6c3c74020f043204ecf44aba30ba7257a3e3
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Aug 18 17:44:00 2022 +0200
-
- Fixed initialization of Linux kernel route attributes
-
-commit bc4ad83dacb07ad6bb454b75d78daa2f9c953088
-Merge: 73abd91a 082905a8
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Aug 3 15:04:42 2022 +0200
-
- Merge commit '082905a8' into HEAD
-
-commit 73abd91ac661f28d9341c7fbb80d2f7a71db186d
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Jul 22 16:09:37 2022 +0200
-
- rip_rte_better() uses the IGP_METRIC_UNKNOWN instead of protocol-specific infinity
-
-commit 082905a8338b4ba20a08ada0d562bbc5e15c707b
-Merge: 2e484f8d ddb1bdf2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 27 00:47:24 2022 +0200
-
- Merge branch 'master' into backport
-
-commit ddb1bdf2819ce69248d5a51e71d803f13548b217
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jul 26 18:45:20 2022 +0200
-
- Netlink: Restrict route replace for IPv6
-
- Seems like the previous patch was too optimistic, as route replace is
- still broken even in Linux 4.19 LTS (but fixed in Linux 5.10 LTS) for:
-
- ip route add 2001:db8::/32 via fe80::1 dev eth0
- ip route replace 2001:db8::/32 dev eth0
-
- It ends with two routes instead of just the second.
-
- The issue is limited to direct and special type (e.g. unreachable)
- routes, the patch restricts route replace for cases when the new route
- is a regular route (with a next hop address).
-
-commit 722daa950046a7ad307fd7aca8e0506f30b3d000
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 25 00:11:40 2022 +0200
-
- Netlink: Simplify handling of IPv6 ECMP routes
-
- When IPv6 ECMP support first appeared in Linux kernel, it used different
- API than IPv4 ECMP. Individual next hops were updated and announced
- separately, instead of using RTA_MULTIPATH as in IPv4. This has several
- drawbacks and requires complex code to merge received notifications to
- one multipath route.
-
- When Linux came with IPv6 RTA_MULTIPATH support, the initial versions
- were somewhat buggy, so we kept using the old API for updates (splitting
- multipath routes to sequences of route updates), while accepting both
- old-style routes and RTA_MULTIPATH routes in scans / notifications.
-
- As IPv6 RTA_MULTIPATH support is here for a long time, this patch fully
- switches Netlink to the IPv6 RTA_MULTIPATH API and removes old complex
- code for handling individual next hop announces.
-
- The required Linux version is at least 4.11 for reliable operation.
-
- Thanks to Daniel Gröber for the original patch.
-
-commit 2e484f8d2977186f6d97213827a66847738d2c31
-Merge: 4d48ede5 971721c9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jul 24 20:08:02 2022 +0200
-
- Merge branch 'master' into backport
-
-commit 534d0a4b44aa193da785ae180475a448f57805e2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jul 24 02:15:20 2022 +0200
-
- KRT: Scan routing tables separetely on linux to avoid congestion
-
- Remove compile-time sysdep option CONFIG_ALL_TABLES_AT_ONCE, replace it
- with runtime ability to run either separate table scans or shared scan.
-
- On Linux, use separate table scans by default when the netlink socket
- option NETLINK_GET_STRICT_CHK is available, but retreat to shared scan
- when it fails.
-
- Running separate table scans has advantages where some routing tables are
- managed independently, e.g. when multiple routing daemons are running on
- the same machine, as kernel routing table modification performance is
- significantly reduced when the table is modified while it is being
- scanned.
-
- Thanks Daniel Gröber for the original patch and Toke Høiland-Jørgensen
- for suggestions.
-
-commit 432dfe3b9b97062be243609d69e0f49bdb0bcaf6
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Jul 22 15:48:20 2022 +0200
-
- Fixed a rarely used part of Babel: comparing two routes in table by their metric
-
-commit 4d48ede51dfff9a59572a6b7a21a1bbf159dec60
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Jul 22 15:37:21 2022 +0200
-
- Revert "Export table: Delay freeing of old stored route."
-
- This reverts commit cee0cd148c9b71bf47d007c850193b5fbf9486c1.
- This change is not needed in version 2 and the surrounding code has
- disappeared mostly in version 3.
-
-commit 971721c9b50d361e886762f1c7d0392e10f74021
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jul 12 15:03:17 2022 +0200
-
- BGP: Minor improvements to BGP roles
-
- Add support for bgp_otc in filters and warning for configuration
- inside confederations.
-
-commit c73b5d2d3d94204d2a81d93efd02c4c115859353
-Author: Eugene Bogomazov <eb@qrator.net>
-Date: Mon Jul 11 17:19:34 2022 +0200
-
- BGP: Implement BGP roles
-
- Implement BGP roles as described in RFC 9234. It is a mechanism for
- route leak prevention and automatic route filtering based on common BGP
- topology relationships. It defines role capability (controlled by 'local
- role' option) and OTC route attribute, which is used for automatic route
- filtering and leak detection.
-
- Minor changes done by commiter.
-
-commit b5c8fce284a2bb529aee6ff201fe044f09a0e418
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 11 13:04:01 2022 +0200
-
- Added forgotten route source locking in flowspec validation
-
-commit 2e5bfeb73ac25e236a24b6c1a88d0f2221ca303f
-Merge: d429bc5c cb339a30
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 11 11:08:10 2022 +0200
-
- Merge remote-tracking branch 'origin/master' into backport
-
-commit d429bc5c841a8e9d4c81786973edfa56d20a407e
-Merge: 7e9cede1 beb5f78a
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 11 10:41:17 2022 +0200
-
- Merge commit 'beb5f78a' into backport
-
-commit 7e9cede1fd1878fb4c00e793bccd0ca6c18ad452
-Merge: 652be92a b867c798
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sun Jul 10 14:19:24 2022 +0200
-
- Merge version 2.0.10 into backport
-
-commit cb339a30677901f2c248de08ff535cf0a9efab3d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Mar 14 20:36:20 2022 +0100
-
- Filter: Implement for loops
-
- For loops allow to iterate over elements in compound data like BGP paths
- or community lists. The syntax is:
-
- for [ <type> ] <variable> in <expr> do <command-body>
-
-commit 1ac8e11bba15551ad6473a57a585649757fefa6b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 10 01:02:45 2022 +0100
-
- Filter: Implement mixed declarations of local variables
-
- Allow variable declarations mixed with code, also in nested blocks with
- proper scoping, and with variable initializers. E.g:
-
- function fn(int a)
- {
- int b;
- int c = 10;
-
- if a > 20 then
- {
- b = 30;
- int d = c * 2;
- print a, b, c, d;
- }
-
- string s = "Hello";
- }
-
-commit a2527ee53d9d8fe7a1c29b56f8450b9ef1f9c7bc
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 9 02:32:29 2022 +0100
-
- Filter: Improve handling of stack frames in filter bytecode
-
- When f_line is done, we have to pop the stack frame. The old code just
- removed nominal number of args/vars. Change it to use stored ventry value
- modified by number of returned values. This allows to allocate variables
- on a stack frame during execution of f_lines instead of just at start.
-
- But we need to know the number of returned values for a f_line. It is 1
- for term, 0 for cmd. Store that to f_line during linearization.
-
-commit f31f4e6eef1762a4b9bf54a274f1ba9e9e161802
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 9 00:31:39 2022 +0100
-
- Filter: Simplify handling of command sequences
-
- Command sequences in curly braces used a separate nonterminal in grammar.
- Handle them as a regular command.
-
-commit 1e6acf34bbf2d9c31246c6fc450ac3b0232531e2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Mar 6 22:57:33 2022 +0100
-
- Filter: Fix bug in variable shadowing
-
- When a new variable used the same name as an existing symbol in an outer
- scope, then offset number was defined based on a scope of the existing
- symbol ($3) instead of a scope of the new symbol (sym_). That can lead
- to two variables sharing the same memory slot.
-
-commit 946cedfcfe3bdfd850613c4d891f8abfd6b2cafd
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Mar 6 16:37:30 2022 +0100
-
- Filter: Implement soft scopes
-
- Soft scopes are anonymous scopes that most likely do not contain any
- symbol, so allocating regular scope is postponed when it is really
- needed.
-
-commit 26bc4f9904b014c9949489e8ae28366da473e85d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Mar 6 02:18:01 2022 +0100
-
- Filter: Implement direct recursion
-
- Direct recursion almost worked, just crashed on function signature check.
- Split function parsing such that function signature is saved before
- function body is processed. Recursive calls are marked so they can be
- avoided during f_same() and similar code walking.
-
- Also, include tower of hanoi solver as a test case.
-
-commit fb1d8f65136aa6190b527b691f24abe16a461471
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Mar 4 17:51:50 2022 +0100
-
- Filter: Apply constant promotion for FI_EQ / FI_NEQ
-
- Equality comparison is defined on all values, even of different
- types, but we still want to do constant promotion if possible.
-
-commit b2d6d2948af268812a8f55f260d340194eb3f7ac
-Author: Alexander Zubkov <green@qrator.net>
-Date: Fri Mar 4 14:07:58 2022 +0100
-
- Filter: Add literal for empty set
-
- Add literal for empty set [], which works both for tree-based sets
- and prefix sets by using existing constant promotion mechanism.
-
- Minor changes by committer.
-
-commit 8f3c6151b4ff11d98a20f6f9919723f0fb719161
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Mar 4 02:01:34 2022 +0100
-
- Nest: Cleanups in as_path_filter()
-
- Use struct f_val as a common argument for as_path_filter(), as suggested
- by Alexander Zubkov. That allows to use NULL sets as valid arguments.
-
-commit 9b302c133f02f96edc5caa769dfd21dc9ef038b5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 3 20:34:44 2022 +0100
-
- Filter: Ensure that all expressions declared return type
-
- All instructions with a return value (i.e. expressions, ones with
- non-zero outval, third argument in INST()) should declare their return
- type. Check that automatically by M4 macros.
-
- Set outval of FI_RETURN to 0. The instruction adds one value to stack,
- but syntactically it is a statement, not an expression.
-
- Add fake return type declaration to FI_CALL, otherwise the automatic
- check would fail builds.
-
-commit cde8094c1f81a74d8a434c4cbf41b4d9183e2879
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 3 15:11:05 2022 +0100
-
- Filter: Improve description of type system
-
-commit 93d6096c8714f3c7c9450df89e812021a212b978
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 3 03:38:12 2022 +0100
-
- Filter: Implement type checks for function calls
-
- Keep list of function parameters in f_line and use it to verify
- types of arguments for function calls. Only static type checks
- are implemented.
-
-commit 4c0c507b1fabbdab557d66eb9d90a2d3c8009880
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 1 02:04:35 2022 +0100
-
- Filter: Clean up function call instruction
-
- Pass instructions of function call arguments as vararg arguments to
- FI_CALL instruction constructor and move necessary magic from parser
- code to interpreter / instruction code.
-
-commit beb5f78ada79ac90f31f2c4923302c74d9ab38bf
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jun 27 19:04:22 2022 +0200
-
- Preexport callback now takes the channel instead of protocol as argument
-
- Passing protocol to preexport was in fact a historical relic from the
- old times when channels weren't a thing. Refactoring that to match
- current extensibility needs.
-
-commit b867c798c3e42c875311a79fe53a36d4a5bfd126
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 16 02:58:37 2022 +0200
-
- NEWS and version update
-
-commit 141fb51f1a3c22c45025426775c00f66c06406a7
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Jun 7 10:35:48 2022 +0200
-
- IPv4 flowspec literals should reject IPv6 prefices in a well-behaved way
-
- When writing flow4 { dst 2001:db8::dead:beef/128; }, BIRD crashed on an
- not-well-debuggable segfault as it tried to copy the whole 128-bit
- prefix into an IPv4-sized memory.
-
-commit ad686c55c3fad13f39e44ee5732c38296caff782
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jun 5 04:03:43 2022 +0200
-
- Babel: Do not try to remove multicast seqno request objects from neighbour list
-
- The Babel seqno request code keeps track of which seqno requests are
- outstanding for a neighbour by putting them onto a per-neighbour list. When
- reusing a seqno request, it will try to remove this node, but if the seqno
- request in question was a multicast request with no neighbour attached this
- will result in a crash because it tries to remove a list node that wasn't
- added to any list.
-
- Fix this by making the list remove conditional. Also fix neighbor removal
- which were changing seqno requests to multicast ones instead of removing
- them.
-
- Fixes: ebd5751cdeb4 ("Babel: Seqno requests are properly decoupled from
- neighbors when the underlying interface disappears").
-
- Based on the patch from Toke Høiland-Jørgensen <toke@toke.dk>,
- bug reported by Stefan Haller <stefan.haller@stha.de>, thanks.
-
-commit f39e9aa20363eccc38289958f23c789d037c269b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jun 4 17:54:08 2022 +0200
-
- IO: Improve resolution of latency debugging messages
-
-commit a8a3d95be5db1a8a7d5a17e2eb8e233417b1d8c7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jun 4 17:34:57 2022 +0200
-
- Nest: Improve GC strategy for rtables
-
- Use timer (configurable as 'gc period') to schedule routing table
- GC/pruning to ensure that prune is done on time but not too often.
-
- Randomize GC timers to avoid concentration of GC events from different
- tables in one loop cycle.
-
- Fix a bug that caused minimum inter-GC interval be 5 us instead of 5 s.
-
- Make default 'gc period' adaptive based on number of routing tables,
- from 10 s for small setups to 600 s for large ones.
-
- In marge multi-table RS setup, the patch improved time of flushing
- a downed peer from 20-30 min to <2 min and removed 40s latencies.
-
-commit 652be92a21f5575e5f74f6abe98eb4200b86776c
-Merge: f196b12c 9e60b500
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon May 30 15:20:21 2022 +0200
-
- Merge remote-tracking branch 'origin/master' into haugesund-to-2.0
-
-commit f196b12c62633e382541ba156e6df1534860c568
-Merge: 097f1571 9eec503b
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon May 30 15:20:05 2022 +0200
-
- Merge commit '9eec503b251c3388579032b300d32640403d8612' into haugesund-to-2.0
-
-commit 097f1571821caa775aec3ada52a1b02b5ffc89bb
-Merge: 5299fb9d 692055e3
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon May 30 15:17:52 2022 +0200
-
- Merge commit '692055e3df6cc9f0d428d3b0dd8cdd8e825eb6f4' into haugesund-to-2.0
-
-commit 9e60b500c76945ccdea94d3a67e7acfde5e3f969
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 27 16:07:24 2022 +0200
-
- CI: Remove broken FreeBSD builds
-
- We currently do not have FreeBSD CI workers.
-
-commit a9c19b923c886ddfaefd0fa5052d4799b80579e2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat May 21 16:21:34 2022 +0200
-
- BGP: Display neighbor port on show protocol
-
-commit 7bb06b34a110bbf40e7308eb19f32202a66d58ba
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat May 21 16:03:08 2022 +0200
-
- RPKI: Display cache server port on show protocol
-
- Thanks to Luiz Amaral for the idea.
-
-commit 9a9439d5e1d3b1372dadb25207d67d83a2e1e98c
-Author: Luiz Amaral <email@luiz.eng.br>
-Date: Thu May 19 19:43:59 2022 +0200
-
- RPKI: Implement VRF support
-
-commit ba2a076001be6e4140fbd2703cd134e5aa51450b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 15 15:05:13 2022 +0200
-
- BGP: Improve tx performance during feed/flush
-
- The prefix hash table in BGP used the same hash function as the rtable.
- When a batch of routes are exported during feed/flush to the BGP, they
- all have similar hash values, so they are all crowded in a few slots in
- the BGP prefix table (which is much smaller - around the size of the
- batch - and uses higher bits from hash values), making it much slower due
- to excessive collisions. Use a different hash function to avoid this.
-
- Also, increase the batch size to fill 4k BGP packets and increase minimum
- BGP bucket and prefix hash sizes to avoid back and forth resizing during
- flushes.
-
- This leads to order of magnitude faster flushes (on my test data).
-
-commit 5299fb9db0e3fb75c37f233e9a8b737c46e61265
-Author: Alexander Zubkov <green@qrator.net>
-Date: Wed May 4 15:37:23 2022 +0200
-
- Fixed spurious undef of route attributes
-
-commit 207ac4853316ceffa6d56ff06f8904320d3bf45f
-Author: Vincent Bernat <vincent@bernat.ch>
-Date: Fri Apr 22 17:06:27 2022 +0200
-
- Doc: fix mating -> matching in flowspec section
-
-commit d8298001389f021f68ead1ed2b4809edb60ae416
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Fri Apr 22 17:04:56 2022 +0200
-
- Babel: Fix compilation when LOCAL_DEBUG is set in packets.c
-
- The debug output was not updated with the rest of the code, so packets.c
- fails to compile if LOCAL_DEBUG is set.
-
-commit 4aef70136d8bae68e171fa7178889e6ad9fff9b8
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Fri Apr 22 16:41:52 2022 +0200
-
- Babel: Send out low-interval hello on shutdown
-
- When shutting down a Babel instance we send a wildcard retraction to make
- sure all peers can quickly switch to other route origins. Add another small
- optimisation borrowed from babeld: sending a Hello message (along with the
- retraction) with a very low interval.
-
- This will cause neighbours to modify their expiry timers for the node's
- state to quickly time it out, thus conserving resources in the network.
-
-commit 98fd158e28d89f10ee7a41b4f6a14fbd0021ef35
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Apr 13 17:05:12 2022 +0200
-
- RIP: fixed the EA_RIP_FROM attribute
-
- The interface pointer was improperly converted to u32 and back. Fixing
- this by explicitly allocating an adata structure for it. It's not so
- memory efficient, we'll optimize this later.
-
-commit 9eec503b251c3388579032b300d32640403d8612
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Apr 13 11:28:15 2022 +0200
-
- Fixed a munmap abort bug
-
- When BIRD was munmapping too many pages, it sometimes aborted, saying
- that munmap failed with "Not enough memory" as the address space was
- getting more and more fragmented.
-
- There is a workaround in place, simply keeping that page for future use,
- yet it has never been compiled in because I somehow forgot to include
- errno.h. And because I also thought that somebody may have ENOMEM not
- defined (why?!), there was a check which quietly omitted that
- workaround.
-
- Anyway, ENOMEM is POSIX. It's an utter nonsense to check for its
- existence. If it doesn't exist, something is broken.
-
-commit 692055e3df6cc9f0d428d3b0dd8cdd8e825eb6f4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Apr 7 19:33:40 2022 +0200
-
- BFD: Add 'strict bind' option
-
- Add BFD protocol option 'strict bind' to use separate listening socket
- for each BFD interface bound to its address instead of using shared
- listening sockets.
-
-commit d39ef961d1dde230c55fcc931b53f44cb34a1e63
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Apr 5 15:09:56 2022 +0200
-
- BGP uses lp_save / lp_restore instead of linpool flushing
-
- It is too cryptic to flush tmp_linpool in these cases and we don't want
- anybody in the future to break this code by adding an allocation
- somewhere which should persist over that flush.
-
- Saving and restoring linpool state is safer.
-
-commit 7e86ff2076f3046c6dcca53e7756f112362aeee9
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Apr 4 22:34:14 2022 +0200
-
- All linpools use pages to allocate regular blocks
-
-commit dabd7bccb3b9e2b7482cf4ae7619a67559f3ac94
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Mar 22 14:39:32 2022 +0100
-
- BGP: Fixed LLGR depreferencing in bgp_rte_mergable
-
-commit 4a23ede2b056a41456790cc20a0c3d92a7137693
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Mar 18 22:05:50 2022 +0100
-
- Protocols have their own explicit init routines
-
-commit 0f68515263e91dd49b2d845cdff35af40c064dc2
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Mar 14 11:13:48 2022 +0100
-
- Unsetting route attributes without messing with type system
-
-commit 63cf5d5d8c8e156a1f427614c8017ca71c32191c
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Mar 14 10:06:44 2022 +0100
-
- Eattr flags (originated and fresh) get their own struct fields
-
-commit af8568a8700b83f4d1946b7075fa3eac96d1d5b6
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 16 10:22:49 2022 +0100
-
- Minor fix: f_val literals should always have named struct fields
-
-commit 170b20701c46b36e6272d85fd00cc65f72c70b0d
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Apr 4 20:31:25 2022 +0200
-
- Converted Slab allocator to typed lists
-
-commit ebd807c0b8eb0b7a3dc3371cd4c87ae886c00885
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Apr 4 20:31:14 2022 +0200
-
- Slab allocator can free the blocks without knowing the parent structure
-
-commit 3a6eda995ecfcebff3130d86ee3baeab12a41335
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Apr 4 20:28:23 2022 +0200
-
- Typed lists for easier walking and stronger type checking
-
-commit 4b1aa37f931888febfd768309d5e2ef36f5e7194
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 16 23:16:26 2022 +0100
-
- Netlink: Remove superfluous sysdep/linux/netlink.c.orig
-
- Thanks to Vincent Bernat for notice.
-
-commit 269bfff9bf4b2349248bb48ff61009cf1c5a4aec
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 16 19:50:16 2022 +0100
-
- Lib: Allow use of 240.0.0.0/4 as a private range
-
- There were several requests to allow use of 240.0.0.0/4 as a private
- range, and Linux kernel already allows such routes, so perhaps we can
- allow that too.
-
- Thanks to Vincent Bernat and others for suggestion and patches.
-
-commit c53f547a0bf437fb95923b2a0b9ac497e474aef1
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Mar 15 11:21:46 2022 +0100
-
- Printf variant with a result allocated inside a pool / linpool
-
-commit 3c42f7af6a23de3f135235521318301e5b34f2de
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Mar 14 17:29:39 2022 +0100
-
- Slab memory allocator unit test
-
-commit c3828879a395c84bd7aac089903c88bb3a9c149d
-Author: Vincent Bernat <vincent@bernat.ch>
-Date: Fri Mar 11 15:47:00 2022 +0100
-
- Pkg: Improve RPM package unit file
-
- Update the RPM package unit file to check configuration before start and
- to use "birdc configure" instead of "kill -HUP".
-
-commit 9b0b2c0d410fd26e1b48d158a667e42f4bbec52c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Mar 11 03:40:03 2022 +0100
-
- Client: Use exit status to report errors
-
- When birdc is called with a command as an argument, it should set exit
- status to non-zero when BIRD replied with an error reply code.
-
- Thanks to Vincent Bernat and others for suggestion.
-
-commit 4e60b3ee7270a432357e203824a7d519a3134f01
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 9 13:27:49 2022 +0100
-
- Fixed a static assert in page allocator
-
-commit 9b6db9f9b8e561d215e1df01169b15a9dfaba1b9
-Merge: 19e727a2 5ddf98f6
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 9 11:51:00 2022 +0100
-
- Merge remote-tracking branch 'origin/master' into haugesund
-
-commit 19e727a248d15e9f8871986ac286cf74b3d86e61
-Merge: 8a4bc4fd 60880b53
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 9 11:28:34 2022 +0100
-
- Merge commit '60880b539b8886f76961125d89a265c6e1112b7a' into haugesund
-
-commit 8a4bc4fdbf2f4c6ccaa684c922779ddc11489e68
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Feb 11 22:29:13 2022 +0100
-
- BGP Flowspec validation: Removed in-route optimization for multithreading compatibility
-
-commit 24773af9e099530aa6ccf4c730ad31c452284228
-Merge: 83d9920f e42eedb9
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 9 11:01:44 2022 +0100
-
- Merge commit 'e42eedb9' into haugesund
-
-commit 83d9920f90738e4df75b3cf57335b43c094051cd
-Merge: ff47cd80 5cff1d5f
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 9 10:56:06 2022 +0100
-
- Merge commit '5cff1d5f' into haugesund
-
- Conflicts:
- proto/bgp/attrs.c
- proto/pipe/pipe.c
-
-commit ff47cd80dd04bc11692248a40cbf52ee8d351064
-Merge: 9e60a1fb d5a32563
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 9 10:50:38 2022 +0100
-
- Merge commit 'd5a32563' into haugesund
-
-commit 9e60a1fbc3ef9ab93b414dcf451bbe741e2e8827
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 9 10:30:03 2022 +0100
-
- Fixed resource initialization in unit tests
-
-commit b90c9b164fedd44115c01fb2b07f71fb40ab3b77
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 9 10:30:33 2022 +0100
-
- Linpools with pages fixed to the final page allocator version
-
-commit eeec9ddbf2a3536417c6dd434da9a7dd2bbdaa42
-Merge: c78247f9 0c59f7ff
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 9 09:13:55 2022 +0100
-
- Merge commit '0c59f7ff' into haugesund
-
-commit 0c59f7ff0112abd1261afb8f21b7c00fc5e37885
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 9 09:13:31 2022 +0100
-
- Revert "Bound allocated pages to resource pools with page caches to avoid unnecessary syscalls"
-
- This reverts commit 7f0e59820899c30a243c18556ce2e3fb72d6d221.
-
-commit c20506dc07e1b99cf1d9f2cf9d00e9211cd9e2f4
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 9 09:13:21 2022 +0100
-
- Revert "fixup! Bound allocated pages to resource pools with page caches to avoid unnecessary syscalls"
-
- This reverts commit bea582cbb53e30dd32a5b6829c7443e0e5558d11.
-
-commit 1c7df2c24029d6721745b99fd4137935db03e257
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 9 09:13:20 2022 +0100
-
- Revert "Multipage allocation"
-
- This reverts commit 6cd37713781a3092f8166b2178fae35cbfec1e28.
-
-commit 1740ff57e8ea05d7d9f15d1a6830ce42add3e4bd
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 9 09:13:18 2022 +0100
-
- Revert "fixup! Multipage allocation"
-
- This reverts commit a54f75f454b7ed8c8ff2c1787a506528f22cbae7.
-
-commit c78247f9b97802d6fe76d9b7cddf2c1940134d33
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 9 09:10:44 2022 +0100
-
- Single-threaded version of sark-branch memory page management
-
-commit 06ece3265e222f218224bb394c250cb414e44ab4
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 2 11:22:32 2022 +0100
-
- Replacing BGP temporary linpools by the common temporary linpool
-
-commit d814a8cb9381e8cb22c3f37d3c970ca7972656a6
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 2 10:59:52 2022 +0100
-
- Replaced custom linpools in tests for the common tmp_linpool
-
-commit 48bf1322aa141ca6259b26b37551402758cff0cc
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 2 10:35:21 2022 +0100
-
- Introducing an universal temporary linpool flushed after every task
-
-commit 2e8b8bfcc46ec1493f9e0efe9c796b88df85ada4
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 2 11:22:01 2022 +0100
-
- Static list initializer
-
-commit 5ddf98f6bdfec213d64957a580e0425c3ed4d660
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Mar 2 10:52:09 2022 +0100
-
- Small improvement in directory test
-
-commit d071aca7aaf7a4add9e0d1d93029fb9a0fad560a
-Merge: fcb4dd0c 2c137591
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 2 10:01:44 2022 +0100
-
- Merge commit '2c13759136951ef0e70a3e3c2b2d3c9a387f7ed9' into haugesund
-
-commit fcb4dd0c831339c4374ace17d8f2ae6ebfeed279
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Feb 27 03:10:38 2022 +0100
-
- Babel: Fix bug in iface reconfiguration
-
- A recent change in Babel causes ifaces to disappear after
- reconfiguration. The patch fixes that.
-
- Thanks to Johannes Kimmel for an insightful bugreport.
-
-commit eb859a3fb063b261fb76304e5b8eca206e7a162a
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 20 15:30:47 2022 +0100
-
- Small change to fix doc building on Debian
-
-commit 9b13fa4d9c3cd8894f61ed84a38ef3c69fe4fe6f
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 20 14:28:06 2022 +0100
-
- Small changes related to the new release
-
-commit 64d5d6d2c34fc198753f232959108305b5bd4b4c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Feb 13 16:45:49 2022 +0100
-
- NEWS: Fix formatting and add some notes
-
-commit 71c9484b00b4428ae6c7d7c8eea6d96073683a54
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Feb 9 03:47:49 2022 +0100
-
- NEWS and version update
-
-commit 2fc8b4c4bac576427b0054a13cc78e395b93d6c4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 8 22:42:00 2022 +0100
-
- Alloc: Use posix_memalign() instead of aligned_alloc()
-
- For compatibility with older systems use posix_memalign(). We can
- switch to aligned_alloc() when we commit to C11 for multithreading.
-
-commit ef614f29843ab2bdfb0ff5ed5da0a989eeaa33a6
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 8 22:21:08 2022 +0100
-
- Netlink: Minor cleanup
-
-commit edc1a2401752c3db30df1b9c6c796c06a8c59cc1
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Feb 7 04:39:49 2022 +0100
-
- Lib: Update alignment of slabs
-
- Alignment of slabs should be at least sizeof(ptr) to avoid unaligned
- pointers in slab structures. Fixme: Use proper way to choose alignment
- for internal allocators.
-
-commit 53a25406878ed686a58ec3e7379d6cb45b784942
-Merge: 4c6ee53f 24600c64
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Feb 6 23:32:15 2022 +0100
-
- Merge branch 'oz-trie-table'
-
-commit 24600c642a1f50e2404f4d9dd98bd8a0c9844860
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Feb 6 22:53:55 2022 +0100
-
- Trie: Fix trie format
-
- After switching to 16-way tries, trie format ignored unaligned / internal
- prefixes and only reported the primary prefix of a trie node.
-
- Fix trie format by showing internal prefixes based on the 'local' bitmask
- of a node. Also do basic (intra-node) reconstruction of prefix patterns
- by finding common subtrees in 'local' bitmask.
-
- In future, we could improve that by doing inter-node reconstruction, so
- prefixes entered as one pattern for a subtree (e.g. 192.168.0.0/18+)
- would be reported as such, like with aligned prefixes.
-
-commit 5a89edc6fd0b03716ccb77084e8d1a1910f52ab0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Feb 4 05:34:02 2022 +0100
-
- Nest: Implement locking of prefix tries during walks
-
- The prune loop may may rebuild the prefix trie and therefore invalidate
- walk state for asynchronous walks (used in 'show route in' cmd). Fix it
- by adding locking that keeps the old trie in memory until current walks
- are done.
-
- In future this could be improved by rebuilding trie walk states (by
- lookup for last found prefix) after the prefix trie rebuild.
-
-commit de6318f70a06854a324b436b3a4cca0b3d60024b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Feb 3 06:08:51 2022 +0100
-
- Nest: Implement prefix trie pruning
-
- When rtable is pruned and network fib nodes are removed, we also need to
- prune prefix trie. Unfortunately, rebuilding prefix trie takes long time
- (got about 400 ms for 1M networks), so must not be atomic, we have to
- rebuild a new trie while current one is still active. That may require
- some considerable amount of temporary memory, so we do that only if
- we expect significant trie size reduction.
-
-commit ba5aec94cdf643350677f6b0ac4d335039c22396
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Feb 2 05:06:49 2022 +0100
-
- Trie: Add prefix counter
-
- Add counter of prefixes stored in trie. Works only for 'restricted' tries
- composed of explicit prefixes (pxlen == l == h), like ones used in rtables.
-
-commit d0f9a77f641d44472679caf85b7bef6e13ce926a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Dec 31 18:42:50 2021 +0100
-
- Doc: Describe routing table options
-
-commit 1f2eb2aca8e348fefc1822ec2adcad0cc97768d8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 20 20:25:35 2021 +0100
-
- BGP: Implement flowspec validation procedure
-
- Implement flowspec validation procedure as described in RFC 8955 sec. 6
- and RFC 9117. The Validation procedure enforces that only routers in the
- forwarding path for a network can originate flowspec rules for that
- network.
-
- The patch adds new mechanism for tracking inter-table dependencies, which
- is necessary as the flowspec validation depends on IP routes, and flowspec
- rules must be revalidated when best IP routes change.
-
- The validation procedure is disabled by default and requires that
- relevant IP table uses trie, as it uses interval queries for subnets.
-
-commit 1ae42e522374ae60c23fe4c419c62b2209fbeea8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 22 04:32:26 2021 +0100
-
- Nest: Add routing table configuration blocks
-
- Allow to specify sorted flag, trie fla, and min/max settle time.
-
- Also do not enable trie by default, it must be explicitly enabled.
-
-commit fde1cff0122ee9d68f141976395e7f89ba28c311
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 20 20:44:36 2021 +0100
-
- Nest: Add convenience functions to check rtable net type
-
-commit 61375bd0b3803fada0d7bb5b81b5824bab16b7c1
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 2 04:05:17 2021 +0100
-
- Nest: Avoid unnecessary net_format() in 'show route' command
-
- When output of 'show route' command was generated, the net_format() was
- called for each network prematurely, even if the result was not needed.
-
- Fix the code to call net_format() only when needed. This makes queries
- that process many networks but show only few (e.g. 'show route where ..',
- or 'show route count') much faster (like 5x - 10x faster).
-
-commit 9ac16df3d7239bc82d8016591755b41b14285608
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 2 03:30:39 2021 +0100
-
- Nest: Add trie iteration code to 'show route'
-
- Add trie iteration code to rt_show_cont() CLI hook and use it to
- accelerate 'show route in <addr>' commands using interval queries.
-
-commit ea97b8905197180bee5244bce378d03e4b741d88
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 2 02:22:30 2021 +0100
-
- Nest: Implement 'show route in <addr>' command
-
- Implement 'show route in <addr>' command, which shows all routes in
- networks that are subnets of given network. Currently limited to IP
- network types.
-
-commit 836a87b8acd5da40bde6b89702090c6616e06dfb
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Nov 29 19:23:42 2021 +0100
-
- Nest: Attach prefix trie to rtable for faster LPM and interval queries
-
- Attach a prefix trie to IP/VPN/ROA tables. Use it for net_route() and
- net_roa_check(). This leads to 3-5x speedups for IPv4 and 5-10x
- speedup for IPv6 of these calls.
-
- TODO:
- - Rebuild the trie during rt_prune_table()
- - Better way to avoid trie_add_prefix() in net_get() for existing tables
- - Make it configurable (?)
-
-commit 4c6ee53f31a7ac667bc597b0fe19b6365abad415
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Jan 28 18:13:18 2022 +0100
-
- BGP: Make routing loops silent
-
- One of previous commits added error logging of invalid routes. This
- also inadvertently caused error logging of route loops, which should
- be ignored silently. Fix that.
-
-commit 963b2c7ce219df6bf9c179fff2dd2386cf26edf9
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Jan 28 05:35:22 2022 +0100
-
- BGP: Use proper class in attribute error messages
-
- Most error messages in attribute processing are in rx/decode step and
- these use L_REMOTE log class. But there are few that are in tx/export
- step and these should use L_ERR log class.
-
- Use tx-specific macro (REJECT()) in tx/export code and rename field
- err_withdraw to err_reject in struct bgp_export_state to ensure that
- appropriate error reporting macros are called in proper contexts.
-
-commit 75d01ecc2d32f3f673f82d90552f17b753e5e739
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Jan 28 05:03:03 2022 +0100
-
- BGP: Improve 'invalid next hop' error reporting
-
- Distinguish multiple causes of 'invalid next hop' message and report
- the relevant next hop address.
-
- Thanks to Simon Ruderich for the original patch.
-
-commit 9dbb7eb6ebda016cd14ce8fef403c2b3f7bdd504
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Jan 24 03:44:21 2022 +0100
-
- BGP: Log route updates that were changed to withdraws
-
- Typical BGP error handling is treat-as-withdraw, where an invalid route
- is replaced with a withdraw. Log route network when it happens.
-
-commit a9646efd40569f3a1d749bc1bd13219876b33a00
-Author: Matous Holinka <matous.holinka@nic.cz>
-Date: Thu Jan 6 09:53:23 2022 +0100
-
- .gitlab-ci.yml: minor changes inside the .yml file.
-
- + ubuntu:21.10 added into the pipeline,
- - ubuntu:20.10 removed from the pipeline,
-
- + misc/docker/ubuntu-21.10-amd64/Dockerfile added,
- - misc/docker/ubuntu-20.10-amd64/Dockerfile removed.
-
-commit 81ee6cda2e60bbd3d97ab63da30657a54b09feda
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Jan 17 05:11:29 2022 +0100
-
- Netlink: Add option to specify netlink socket receive buffer size
-
- Add option 'netlink rx buffer' to specify netlink socket receive buffer
- size. Uses SO_RCVBUFFORCE, so it can override rmem_max limit.
-
- Thanks to Trisha Biswas and Michal for the original patches.
-
-commit bbc33f6ec310d98b9100fb883a2b8908ede1b5a8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Jan 15 22:39:40 2022 +0100
-
- Netlink: Add another workaround for older kernel headers
-
- Unfortunately, SOL_NETLINK is both recently added and arch-dependent,
- so we cannot just define it.
-
-commit 8988264a64dc9985303332568832b108dba3acd3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Jan 14 23:15:05 2022 +0100
-
- Netlink: Add workaround for older kernel headers
-
-commit e818f16448e918ed07633480291283f3449dd9e4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Jan 14 21:53:40 2022 +0100
-
- Netlink: Enable strict checking for KRT dumps
-
- Add strict checking for netlink KRT dumps to avoid PMTU cache records
- from FNHE table dump along with KRT.
-
- Linux Kernel added FNHE table dump to the netlink API in patch:
-
- https://patchwork.ozlabs.org/project/netdev/patch/8d3b68cd37fb5fddc470904cdd6793fcf480c6c1.1561131177.git.sbrivio@redhat.com/
-
- Therefore, since Linux 5.3 these route cache entries are dumped together
- with regular routes during periodic KRT scans, which in some cases may be
- huge amount of useless data. This can be avoided by using strict checking
- for netlink dumps:
-
- https://lore.kernel.org/netdev/20181008031644.15989-1-dsahern@kernel.org/
-
- The patch mitigates the risk of receiving unknown and potentially large
- number of FNHE records that would block BIRD I/O in each sync. There is a
- known issue caused by the GRE tunnels on Linux that seems to be creating
- one FNHE record for each destination IP address that is routed through
- the tunnel, even when the PMTU equals to GRE interface MTU.
-
- Thanks to Tomas Hlavacek for the original patch.
-
-commit d0dd1d20cd40e75e417d58569fac3ff0bf1db41a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Jan 14 19:07:57 2022 +0100
-
- Netlink: Explicitly skip received cloned routes
-
- Kernel uses cloned routes to keep route cache entries, but reports them
- together with regular routes. They were skipped implicitly as they
- do not have rtm_protocol filled. Add explicit check for cloned flag
- and skip such routes explicitly.
-
- Also, improve debug logs of skipped routes.
-
-commit 60e9def9ef7b5d16f868b0fb4ab1192d59fd7541
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Jan 9 02:40:58 2022 +0100
-
- BGP: Add option 'free bind'
-
- The BGP 'free bind' option applies the IP_FREEBIND/IPV6_FREEBIND
- socket option for the BGP listening socket.
-
- Thanks to Alexander Zubkov for the idea.
-
-commit 87a02489f3880689a4e2ad72b0b981649dad2154
-Author: Alexander Zubkov <green@qrator.net>
-Date: Sat Jan 8 18:31:56 2022 +0100
-
- IO: Support nonlocal bind in socket interface
-
- Add option to socket interface for nonlocal binding, i.e. binding to an
- IP address that is not present on interfaces. This behaviour is enabled
- when SKF_FREEBIND socket flag is set. For Linux systems, it is
- implemented by IP_FREEBIND socket flag.
-
- Minor changes done by commiter.
-
-commit bcb25084d31fdb90fcf1666f10e73fe0f863afc0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jan 5 20:07:27 2022 +0100
-
- Test: Activate some remaining build tests
-
-commit f5c8fb5fba959d356ce1ea0fb5879223f76137f7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jan 5 19:25:42 2022 +0100
-
- Netlink: Do not ignore dead routes from BIRD
-
- Currently, BIRD ignores dead routes to consider them absent. But it also
- ignores its own routes and thus it can not correctly manage such routes
- in some cases. This patch makes an exception for routes with proto bird
- when ignoring dead routes, so they can be properly updated or removed.
-
- Thanks to Alexander Zubkov for the original patch.
-
-commit 77d032c71f62e44293a10ccc22f8c157442df179
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jan 5 18:46:41 2022 +0100
-
- Netlink: Improve multipath parsing errors
-
- Function nl_parse_multipath() should handle errors internally.
-
-commit 29dda184e56ce3a1ec72db4612198f6b3ba84e82
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jan 5 16:38:49 2022 +0100
-
- Conf: Fix parsing full-length IPv6 addresses
-
- Lexer expression for bytestring was too loose, accepting also
- full-length IPv6 addresses. It should be restricted such that
- colon is used between every byte or never.
-
- Fix the regex and also add some test cases for it.
-
- Thanks to Alexander Zubkov for the bugreport
-
-commit 75aceadaf746f8ed0acce0424f89903283dacf16
-Author: Matous <bralor92@email.cz>
-Date: Thu Oct 14 12:16:46 2021 +0200
-
- gitlab-ci.yml: failing gitlab runner fixed.
-
- 'registry.labs.nic.cz' -> 'registry.nic.cz' changed
-
-commit 77042292ff1ebeb5451f3a4119c3cbde0629f5b1
-Author: Alexander Zubkov <green@qrator.net>
-Date: Tue Dec 28 04:09:36 2021 +0100
-
- Doc: Document min/max operators for lists
-
-commit 0e1fd7ea6af8aaeb68a23e320c2a0a0a8480d6de
-Author: Alexander Zubkov <green@qrator.net>
-Date: Tue Dec 28 04:05:05 2021 +0100
-
- Filter: Add operators to find minimum and maximum element of sets
-
- Add operators .min and .max to find minumum or maximum element in sets
- of types: clist, eclist, lclist. Example usage:
-
- bgp_community.min
- bgp_ext_community.max
- filter(bgp_large_community, [(as1, as2, *)]).min
-
- Signed-off-by: Alexander Zubkov <green@qrator.net>
-
-commit e15e465720c428e765ab88fd587afb4f4f5d70ae
-Author: Alexander Zubkov <green@qrator.net>
-Date: Tue Dec 28 03:48:42 2021 +0100
-
- Doc: Document community components access operators
-
-commit a2a268da4f0c05012d691b57f9b358e3f35ef121
-Author: Alexander Zubkov <green@qrator.net>
-Date: Tue Dec 28 03:46:13 2021 +0100
-
- Filter: Add operators to pick community components
-
- Add operators that can be used to pick components from
- pair (standard community) or lc (large community) types.
- For example:
-
- (10, 20).asn --> 10
- (10, 20).data --> 20
-
- (10, 20, 30).asn --> 10
- (10, 20, 30).data1 --> 20
- (10, 20, 30).data2 --> 30
-
- Signed-off-by: Alexander Zubkov <green@qrator.net>
-
-commit a39cd2cc0b0c64235457c07e2b618318bbdfcacd
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 27 19:10:35 2021 +0100
-
- BSD: Assume onlink flag on ifaces with only host addresses
-
- The BSD kernel does not support the onlink flag and BIRD does not use
- direct routes for next hop validation, instead depends on interface
- address ranges. We would like to handle PtMP cases with only host
- addresses configured, like:
-
- ifconfig wg0 192.168.0.10/32
- route add 192.168.0.4 -iface wg0
- route add 192.168.0.8 -iface wg0
-
- To accept BIRD routes with onlink next-hop, like:
-
- route 192.168.42.0/24 via 192.168.0.4%wg0 onlink
-
- BIRD would dismiss the route when receiving from the kernel, as the
- next-hop 192.168.0.4 is not part of any interface subnet and onlink
- flag is not kept by the BSD kernel.
-
- The commit fixes this by assuming that for routes received from the
- kernel, any next-hop is onlink on ifaces with only host addresses.
-
- Thanks to Stefan Haller for the original patch.
-
-commit b9f38727a7ba7c9c7e383ade80dbf77086dfce05
-Author: Job Snijders <job@fastly.com>
-Date: Sat Dec 18 16:35:28 2021 +0100
-
- RPKI: Add contextual out-of-bound checks in RTR Prefix PDU handler
-
- RFC 6810 and RFC 8210 specify that the "Max Length" value MUST NOT be
- less than the Prefix Length element (underflow). On the other side,
- overflow of the Max Length element also is possible, it being an 8-bit
- unsigned integer allows for values larger than 32 or 128. This also
- implicitly ensures there is no overflow of "Length" value.
-
- When a PDU is received where the Max Length field is corrputed, the RTR
- client (BIRD) should immediately terminate the session, flush all data
- learned from that cache, and log an error for the operator.
-
- Minor changes done by commiter.
-
-commit 00410fd6c17697a5919cb32a44f7117dd3a0834a
-Author: Simon Ruderich <simon@ruderich.org>
-Date: Sat Dec 18 03:17:48 2021 +0100
-
- Doc: bgp: remove "advertise ipv4"
-
- The option was removed in d15b0b0a ("BGP redesign", 2016-12-07)
- but the documentation wasn't updated.
-
-commit b21104c97e59128973501fc23570e2d929f48923
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Dec 18 00:58:47 2021 +0100
-
- Nest: Do not ignore secondary flag changes in ifa updates
-
- Compare all IA_* flags that are set by sysdep iface code.
-
- The old code ignores IA_SECONDARY flag when comparing whether iface
- address updates from kernel changed anything. This is usually not an
- issue as kernel removes all secondary addresses due to removal of the
- primary one, but it breaks when sysctl 'promote_secondaries' is enabled
- and kernel promotes secondary addresses to primary ones.
-
- Thanks to 'Alexander' for the bugreport.
-
-commit 78ddfd2600a31305a78dc205b65deba6fb2e0240
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Nov 29 19:00:24 2021 +0100
-
- Trie: Clarify handling of less-common net types
-
- For convenience, Trie functions generally accept as input values not only
- NET_IPx types of nets, but also NET_VPNx and NET_ROAx types. But returned
- values are always NET_IPx types.
-
-commit f772afc525156498900770ffe5a98349df89a45c
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Nov 27 00:21:12 2021 +0100
-
- Memory statistics split into Effective and Overhead
-
- This feature is intended mostly for checking that BIRD's allocation
- strategies don't consume much memory space. There are some cases where
- withdrawing routes in a specific order lead to memory fragmentation and
- this output should give the user at least a notion of how much memory is
- actually used for data storage and how much memory is "just allocated"
- or used for overhead.
-
- Also raising the "system allocator overhead estimation" from 8 to 16
- bytes; it is probably even more. I've found 16 as a local minimum in
- best scenarios among reachable machines. I couldn't find any reasonable
- method to estimate this value when BIRD starts up.
-
- This commit also fixes the inaccurate computation of memory overhead for
- slabs where the "system allocater overhead estimation" was improperly
- added to the size of mmap-ed memory.
-
-commit 14fc24f3a53ebc5525b854ccdc93274aa74a400f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Nov 26 03:26:36 2021 +0100
-
- Trie: Implement longest-prefix-match queries and walks
-
- The prefix trie now supports longest-prefix-match query by function
- trie_match_longest_ipX() and it can be extended to iteration over all
- covering prefixes for a given prefix (from longest to shortest) using
- TRIE_WALK_TO_ROOT_IPx() macro.
-
-commit 644e9ca94e2d10ba0c2de45f94523da2414328e3
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Nov 24 17:30:13 2021 +0100
-
- Directly mapped pages are kept for future use if temporarily not needed
-
-commit 062e69bf520e5788913bdd564076ad9892b24a87
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Nov 19 18:04:32 2021 +0100
-
- Trie: Implement trie walking code
-
- Trie walking allows enumeration of prefixes in a trie in the usual
- lexicographic order. Optionally, trie enumeration can be restricted
- to a chosen subnet (and its descendants).
-
-commit 71c18d9f53ec0ea5eb512fdb6510d0c3350f96b4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Nov 13 21:11:18 2021 +0100
-
- Trie: Simplify network matching code
-
- Introduce ipX_prefix_equal() and use it to simplify network matching code.
-
-commit 60880b539b8886f76961125d89a265c6e1112b7a
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Nov 9 17:42:36 2021 +0100
-
- Extended route trace: logging Path Identifiers
-
-commit 9f24fef5e91fb4df301242ede91ee7ac1b46b8a8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Oct 20 01:51:28 2021 +0200
-
- Conf: Fix crash during shutdown
-
- BIRD implements shutdown by reconfiguring to fake empty configuration.
- Such fake config structure is created from the last running config and
- shares some data, including symbol table. This allows access to (removed)
- routing tables and causes crash when 'show route' command is used during
- shutdown.
-
- Clean up symbol table, table list and links to default tables, so removed
- routing tables cannot be accessed during shutdown.
-
-commit 0b295d695acab007dd7baab3e9e97c682f716ee8
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Sep 14 11:20:16 2021 +0200
-
- Dropping the unused rte_same hook
-
-commit 89ff49f8f0bcd2015f157134728d28ec428e1262
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Feb 17 12:42:14 2020 +0100
-
- Dropping rte-local dumper entries
-
-commit e42eedb912428aa9af450b0426e53b0a7004dfb1
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Feb 13 16:59:53 2020 +0100
-
- Kernel: Convert the rte-local attributes to extended attributes and flags to pflags
-
-commit 5cff1d5f022755df61af6fc21cc4f2e5d384404e
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Apr 10 17:08:29 2020 +0200
-
- Route: moved rte_src pointer from rta to rte
-
- It is an auxiliary key in the routing table, not a route attribute.
-
-commit d5a32563df1653952937117133f09143929ff0c2
-Author: Maria Matejka <mq@jmq.cz>
-Date: Sun Apr 12 21:54:20 2020 +0200
-
- Preexport: No route modification, no linpool needed
-
-commit 541881bedf391d9a19f071b856dcbd55e850dece
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Sep 16 11:00:19 2021 +0200
-
- RIP fixup + dropping the tmp_attrs mechanism as obsolete
-
-commit 3660f19dd534224da4870a507efcef5b36794506
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Feb 17 11:18:32 2020 +0100
-
- Dropping the RTS_DUMMY temporary route storage.
-
- Kernel route sync is done by other ways now and this code is not used
- currently.
-
-commit eb937358c087eaeb6f209660cc7ecfe6d6eff739
-Author: Maria Matejka <mq@jmq.cz>
-Date: Mon Feb 10 08:41:05 2020 +0100
-
- Preference moved to RTA and set explicitly in protocols
-
-commit cee0cd148c9b71bf47d007c850193b5fbf9486c1
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Mar 20 21:16:12 2021 +0100
-
- Export table: Delay freeing of old stored route.
-
- This is needed to provide the protocols the full old route after filters
- when export table is enabled.
-
-commit ddd89ba12d03d648e9bb820c6a4f48b1f96f15d2
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Feb 10 15:01:36 2020 +0100
-
- BGP: Moved the suppressed and stale flags to pflags
-
-commit c507fb41bb2e62f336357121598debab95a7c767
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Feb 13 13:22:15 2020 +0100
-
- Babel: Convert the rte-local attributes to extended attributes
-
-commit 8216ec3027d01b790e59a266227d378ba77a623e
-Author: Maria Matejka <mq@jmq.cz>
-Date: Wed Sep 8 15:30:09 2021 +0000
-
- There may be a symbol with NULL protocol when reconfiguring
-
-commit 5f0cb61d82315035a3a7f10eef510884da9f94c6
-Author: Maria Matejka <mq@jmq.cz>
-Date: Tue Feb 11 21:24:15 2020 +0100
-
- OSPF: Convert the rte-local attributes to extended attributes
-
-commit 8ac20511e17af14d62cd84fcc4e460474820a584
-Author: Maria Matejka <mq@jmq.cz>
-Date: Wed Sep 8 08:33:25 2021 +0000
-
- Show route may be accidentally called on shutdown also when not all default tables are present
-
-commit a0e4c66404681c5613ef7f6e80f8b8c3022446d4
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Sep 14 20:12:33 2021 +0200
-
- RIP: convert the rte-local attributes to extended attributes
-
-commit 6e13df70fdaeb0f08ae5171f62240402501783ea
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Sep 14 19:53:03 2021 +0200
-
- Extended route attributes may include also pointers
-
-commit d471d5fc7ce587ed836ca7fa10a79331bc181d45
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Mar 20 23:18:34 2021 +0100
-
- IGP metric getter refactoring to protocol callback
-
- Direct protocol hooks for IGP metric inside nest/rt-table.c make the
- protocol API unnecessarily complex. Instead, we use a proper callback.
-
-commit a54f75f454b7ed8c8ff2c1787a506528f22cbae7
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Oct 13 19:08:35 2021 +0200
-
- fixup! Multipage allocation
-
-commit 6cd37713781a3092f8166b2178fae35cbfec1e28
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Sep 8 11:29:49 2021 +0200
-
- Multipage allocation
-
- We can also quite simply allocate bigger blocks. Anyway, we need these
- blocks to be aligned to their size which needs one mmap() two times
- bigger and then two munmap()s returning the unaligned parts.
-
- The user can specify -B <N> on startup when <N> is the exponent of 2,
- setting the block size to 2^N. On most systems, N is 12, anyway if you
- know that your configuration is going to eat gigabytes of RAM, you are
- almost forced to raise your block size as you may easily get into memory
- fragmentation issues or you have to raise your maximum mapping count,
- e.g. "sysctl vm.max_map_count=(number)".
-
-commit 3a31c3aad6c53ea9673743f983e13728d8551149
-Author: Maria Matejka <mq@jmq.cz>
-Date: Tue Sep 7 16:22:32 2021 +0000
-
- CLI socket accept() may also fail and should produce some message, not a coredump.
-
-commit d322ee3d548a87d6e996dd20b2b415aad4b53f62
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sun Sep 5 13:00:08 2021 +0200
-
- OSPF: explicitly stop the periodic tick on shutdown to avoid recalculation races
-
-commit e5a8eec6d720408139d0a209ef149848c5dcfbe3
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Sep 3 19:48:38 2021 +0200
-
- Linpools may use pages instead of xmalloc
-
-commit bea582cbb53e30dd32a5b6829c7443e0e5558d11
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Oct 13 18:59:45 2021 +0200
-
- fixup! Bound allocated pages to resource pools with page caches to avoid unnecessary syscalls
-
-commit 067f69a56de0e0e61d423ec5aa68095aa28e3124
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Sep 25 16:00:30 2021 +0200
-
- Filter: Add prefix trie benchmarks
-
- Add trie tests intended as benchmarks that use external datasets
- instead of generated prefixes. As datasets are not included, they
- are commented out by default.
-
-commit e709dc09e61c4604821d10b81604d38616b81a0b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Apr 21 13:49:29 2020 +0200
-
- Filter: Improve prefix trie tests
-
- Add tests explicitly matching insides and outsides of trie and update
- tests to do testing of both IPv4 and IPv6 tries.
-
-commit dd61278c9db1d4bea29f0a21aa460c7fe931eb32
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Apr 6 14:20:16 2020 +0200
-
- Filter: Update trie documentation
-
-commit 562a2b8c29a50cca5731b0a19e99a87a261ab4ef
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Apr 5 03:56:07 2020 +0200
-
- Filter: Fix trie test
-
- Generated prefixes must be valid.
-
-commit 13225f1dbff54619476f2d8f6bc779dbb4983e3e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Apr 5 03:24:46 2020 +0200
-
- Filter: Faster prefix sets
-
- Use 16-way (4bit) branching in prefix trie instead of basic binary
- branching. The change makes IPv4 prefix sets almost 3x faster, but
- with more memory consumption and much more complicated algorithm.
-
- Together with a previous filter change, it makes IPv4 prefix sets
- about ~4.3x faster and slightly smaller (on my test data).
-
-commit 7f0e59820899c30a243c18556ce2e3fb72d6d221
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Sep 1 00:46:46 2021 +0200
-
- Bound allocated pages to resource pools with page caches to avoid unnecessary syscalls
-
-commit 2c13759136951ef0e70a3e3c2b2d3c9a387f7ed9
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Aug 25 22:20:48 2021 +0200
-
- Reducing filter stack size to allow for lesser thread stack size
-
-commit ceef6de459b25d8fcc5dd416e0cecf179bd243e7
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu May 27 10:35:38 2021 +0200
-
- OSPF: Setting a list node NULL before use
-
-commit 923a6644b206f70435c3d01b93b6880701938b49
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu May 27 10:35:33 2021 +0200
-
- Fixed memory poisoning in slab
-
-commit 227e2d5541e86210b383c8e8054805692ad3cf14
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed May 26 16:42:02 2021 +0200
-
- Debug output uses local buffer to avoid clashes between threads.
-
-commit eb2025165546d12114ca5ca4f2b338765f338af6
-Author: Maria Matejka <mq@jmq.cz>
-Date: Mon Apr 27 22:33:10 2020 +0200
-
- Filter: Additional consistency checks
-
-commit 47d92d8f9d9891a9b40f3fbef1d762537af4ae25
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jun 17 16:56:51 2021 +0200
-
- Nest: Clean up main channel handling
-
- Remove assumption that main channel is the only channel.
-
-commit f761be6b30633054a54369eee7d08b951a366e5e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jun 17 16:56:51 2021 +0200
-
- Nest: Clean up main channel handling
-
- Remove assumption that main channel is the only channel.
-
-commit 1b9bf4e192a252db861acadc7f800d7046435a3f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Jun 14 20:02:50 2021 +0200
-
- Nest: Fix export of tmpattrs through pipes
-
- Pipes copy the original rte with old values, so they require rte to be
- exported with stored tmpattrs. Other protocols access stored attributes
- using eattr list, so they require rte to be exported with expanded
- tmpattrs. This is temporary hack, we plan to remove whoe tmpattr mechanism.
-
- Thanks to Paul Donohue for the bugreport.
-
-commit 3ebabab2778d05212cc07ebccf583159d5e0890a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Jun 14 17:58:37 2021 +0200
-
- Revert "Nest: Fix export of tmpattrs through pipes"
-
- This reverts commit f8e273b5e7a3c721f4a30cf27a0b4fe54602e83f.
-
-commit f8e273b5e7a3c721f4a30cf27a0b4fe54602e83f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Jun 14 16:30:59 2021 +0200
-
- Nest: Fix export of tmpattrs through pipes
-
- In most cases of export there is no need to store back temporary
- attributes to rte, as receivers (protocols) access eattr list anyway.
- But pipe copies the original rte with old values, so we should store
- tmpattrs also during export.
-
- Thanks to Paul Donohue for the bugreport.
-
-commit 3f19100f5a47dce96d336d68e0cbe72de5d9ba60
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Jun 11 01:31:10 2021 +0200
-
- CI: Allow Babel tests
-
-commit 596f2e32e38bef076001f4b9a4c75b07fd0264b7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 9 19:54:01 2021 +0200
-
- Nest: Allow both 'password' and 'key' keywords for authentication keys
-
-commit 6d26f853951675bd188dbf88d539ccb9d02d7eb1
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 9 19:31:55 2021 +0200
-
- Babel: Simplify auth expiration
-
- Just use hello_expiry for that, keep init_expiry for initial
- unauthentized neighbors.
-
-commit 8eea396baf2bd73ea846a48e82d5c42fc2aec6d5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Jun 6 19:10:33 2021 +0200
-
- Nest: Fix password list parsing code
-
- One of previous patches broke password list parsing code, fix that.
-
-commit ee9516dbe85b7205c6c8e400780c5a25787d6bff
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Jun 6 17:23:45 2021 +0200
-
- Lib: Fix static assert macro
-
-commit b174cc0abc0a9d7e84cc6fae46d9e19b714fbcfb
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Jun 6 15:22:59 2021 +0200
-
- Babel: Add MAC authentication support - update
-
- Some cleanups and bugfixes to the previous patch, including:
-
- - Fix rate limiting in index mismatch check
-
- - Fix missing BABEL_AUTH_INDEX_LEN in auth_tx_overhead computation
-
- - Fix missing auth_tx_overhead recalculation during reconfiguration
-
- - Fix pseudoheader construction in babel_auth_sign() (sport vs fport)
-
- - Fix typecasts for ptrdiffs in log messages
-
- - Make auth log messages similar to corresponding RIP/OSPF ones
-
- - Change auth log messages for events that happen during regular
- operation to debug messages
-
- - Switch meaning of babel_auth_check*() functions for consistency
- with corresponding RIP/OSPF ones
-
- - Remove requirement for min/max key length, only those required by
- given MAC code are enforced
-
-commit b218a28f61e1e9a93c3a4f2e180590f85df62e79
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Sat Apr 17 15:04:16 2021 +0200
-
- Babel: Add MAC authentication support
-
- This implements support for MAC authentication in the Babel protocol, as
- specified by RFC 8967. The implementation seeks to follow the RFC as close
- as possible, with the only deliberate deviation being the addition of
- support for all the HMAC algorithms already supported by Bird, as well as
- the Blake2b variant of the Blake algorithm.
-
- For description of applicability, assumptions and security properties,
- see RFC 8967 sections 1.1 and 1.2.
-
-commit 69d10132a6020e00ea2e8f899fdebf8128329699
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Thu Apr 15 20:15:53 2021 +0200
-
- Babel: Refactor TLV parsing code for easier reuse
-
- In preparation for adding authentication checks, refactor the TLV
- walking code so it can be reused for a separate pass of the packet
- for authentication checks.
-
-commit 589f7d1e4f3aaca3fec6c38474bb962a9c578ebe
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Thu Apr 15 04:38:49 2021 +0200
-
- Nest: Allow MAC algorithms to specify min/max key length
-
- Add min/max key length fields to the MAC algorithm description and
- validate configured keys before they are used.
-
-commit 35f88b305ab6a0e27b5ff1b445f63f544986e14e
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Wed Apr 14 21:39:43 2021 +0200
-
- Nest: Allow specifying security keys as hex bytes as well as strings
-
- Add support for specifying a password in hexadecimal format, The result
- is the same whether a password is specified as a quoted string or a
- hex-encoded byte string, this just makes it more convenient to input
- high-entropy byte strings as MAC keys.
-
-commit f1a824190c22f8159ad0f9378c2dd23e521eaf61
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Wed Apr 14 20:00:03 2021 +0200
-
- Lib: Add tests for blake2s and blake2b
-
- Import the blake2-kat.h header with test vector output from the blake
- reference implementation, and add tests to mac_test.c to compare the
- output of the Bird MAC algorithm implementations with that reference
- output.
-
- Since the reference implementation only has test vectors for the full
- output size, there are no tests for the smaller-sized output variants.
-
-commit 725d9af94a6eaf3cbce1b107e36c8cf342828ea6
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Sat Apr 10 17:33:28 2021 +0200
-
- Lib: Add Blake2s and Blake2b hash functions
-
- The Babel MAC authentication RFC recommends implementing Blake2s as one of
- the supported algorithms. In order to achieve do this, add the blake2b and
- blake2s hash functions for MAC authentication. The hashing function
- implementations are the reference implementations from blake2.net.
-
- The Blake2 algorithms allow specifying an arbitrary output size, and the
- Babel MAC spec says to implement Blake2s with 128-bit output. To satisfy
- this, we add two different variants of each of the algorithms, one using
- the default size (256 bits for Blake2s, 512 bits for Blake2b), and one
- using half the default output size.
-
- Update to BIRD coding style done by committer.
-
-commit e5724f71d2c054bc51d66092beb6af4da21e0c62
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Apr 8 01:15:17 2021 +0200
-
- sysdep: Add wrapper to get random bytes - update
-
- Simplify the code and fix an issue with getentropy() return value.
-
-commit c48ebde5ce6db3da8cd571d213d1a1f265de8983
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Thu Apr 1 19:20:13 2021 +0200
-
- sysdep: Add wrapper to get random bytes
-
- Add a wrapper function in sysdep to get random bytes, and required checks
- in configure.ac to select how to do it. The configure script tries, in
- order, getrandom(), getentropy() and reading from /dev/urandom.
-
-commit 91d04583891f7a6f4aee612cf3f143cc84a73991
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jun 1 01:59:20 2021 +0200
-
- BGP: Ensure that freed neighbor entry is not accessed
-
- Routes from downed protocols stay in rtable (until next rtable prune
- cycle ends) and may be even exported to another protocol. In BGP case,
- source BGP protocol is examined, although dynamic parts (including
- neighbor entries) are already freed. That may lead to crash under some
- race conditions. Ensure that freed neighbor entry is not accessed to
- avoid this issue.
-
-commit ebd5751cdeb4c753c6c9df31b82dcd6afee2cd39
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sun May 30 13:07:16 2021 +0200
-
- Babel: Seqno requests are properly decoupled from neighbors when the underlying interface disappears
-
- When an interface disappears, all the neighbors are freed as well. Seqno
- requests were anyway not decoupled from them, leading to strange
- segfaults. This fix adds a proper seqno request list inside neighbors to
- make sure that no pointer to neighbor is kept after free.
-
-commit 10498b8e89a4509bdd447bd14f07a3b3e35ae575
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed May 26 18:57:32 2021 +0200
-
- OSPF: Fix OSPFv3 in IPv4 mode with multiple areas
-
- Some area handling code got confused by IPv4 setup in OSPFv3 mode.
-
-commit 8650e26dd1566032d587a654376092a9f31a1123
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 20 15:02:48 2021 +0200
-
- CI: Try different locale for Centos 7
-
-commit 0c4dca7ffd2957cca3635d607cb4acc8dfd4af90
-Author: Matous Holinka <bralor92@email.cz>
-Date: Wed May 19 19:10:09 2021 +0200
-
- CI: Package build for more platforms
-
- .gitlab-ci.yml:
- + pkg targets for some distros added
- + artifacts added
- - some distros were commented out (due to errors).
-
- misc/docker/*:
- + Dockerfiles updated with the necessary packages.
-
-commit 98ef34c0c77d49d766def88f263dab0e91817288
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Apr 25 19:52:19 2021 +0200
-
- CI: Try utf-8 locale to workaround apkg issue
-
-commit 445d0e699f2b98e5a892c812af9f021671920c1b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Apr 25 11:24:46 2021 +0200
-
- CI: Build documentation where tools are available
-
-commit 656c744080d308f75cc9707b139e2a3ec31ad5b7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Apr 25 03:37:54 2021 +0200
-
- CI: Update docker images for building of documentation
-
-commit 5ea3c5bfee6ed24139bc8e82cc35f08c49d6aaff
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Apr 25 03:07:25 2021 +0200
-
- Pkg: Enable docs subpackage for Debian
-
-commit 81666d2f126b94e99042ed963e45de5a95f63df5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Apr 23 00:20:36 2021 +0200
-
- CI: Test of apkg build
-
- Also temporarily disable cf-ospf-auth, as there is some problem with it.
-
-commit 312aeda393f9775f603a78c7feb0a11f3c789c02
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Apr 22 19:23:18 2021 +0200
-
- Tools: Improve make-dev-archive
-
- Use git-archive to avoid unrelated and temporary files and fix some
- minor issues (e.g. dependency on bash as system shell).
-
-commit 280d133a9b50dab88d51871927f26cd967211f85
-Author: Jakub RuĹľiÄŤka <jakub.ruzicka@nic.cz>
-Date: Tue Apr 13 20:29:11 2021 +0200
-
- ubuntu: use any init-system-helpers
-
- init-system-helpers (>= 1.56~) can't be satisfied on:
-
- * Ubuntu 18.04 (1.51)
- * Ubuntu 16.04 (1.29)
- * Debian 9 (1.48)
-
- Remove the specific version requirement in order to enable build on
- older platforms.
-
-commit 53cabf94f8de41f740ed08456877f6b8b5889170
-Author: Jakub RuĹľiÄŤka <jakub.ruzicka@nic.cz>
-Date: Fri Apr 9 18:36:25 2021 +0200
-
- suse: fix bird.spec to work on SUSE
-
- SUSE is more strict about .spec.
-
- * use SPDX license id
- * add missing %ghost file directive
-
-commit 60167856af243f5683840d7365493ed0b3fa6cd0
-Author: Jakub RuĹľiÄŤka <jakub.ruzicka@nic.cz>
-Date: Fri Apr 9 16:35:10 2021 +0200
-
- docs: disable docs subpackage to fix FTBFS
-
- Adressing following FTBFS on all older debian/ubuntu distros:
-
- Can't locate LinuxDocTools/Data/Latin1ToSgml.pm in @INC (you may need to install the LinuxDocTools::Data::Latin1ToSgml module)
-
-commit 329d6e3fbc5a09a9bc8800bd8a5d239dec1a3d24
-Author: Jakub RuĹľiÄŤka <jakub.ruzicka@nic.cz>
-Date: Tue Apr 6 18:13:16 2021 +0200
-
- add apkg-powered upstream packaging for deb, rpm
-
- Files in a single new distro/ dir allow apkg to build BIRD packages for
- various distros directly from upstream sources as well as from upstream
- archives.
-
- Please see distro/README.md for more detail as well as apkg docs:
-
- https://apkg.rtfd.io
-
- I've used these files to build bird-2.0.8 on all currently supported
- releases of following distros:
-
- * Debian
- * Ubuntu
- * Fedora
- * CentOS
- * openSUSE
-
- Please note that latest apkg with accumulated fixes for bird is needed:
- https://gitlab.nic.cz/packaging/apkg/-/merge_requests/35
-
-commit c3c691e95cd40d8654b720be8d9a8ae9fb050951
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 18 20:41:01 2021 +0200
-
- Flowspec: Documentation update
-
-commit abc9ccc5cb7a3adcbb2090ba7314031b835b0e04
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 18 20:18:06 2021 +0200
-
- Flowspec: Label field should use numeric operator and not bitmask operator
-
-commit dd8481cc1c92af32ec69cded42b985b7bad40b26
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 18 19:54:18 2021 +0200
-
- Flowspec: Do not use comma for bitmask operators
-
- For numeric operators, comma is used for disjunction in expressions like
- "10, 20, 30..40". But for bitmask operators, comma is used for
- conjunction in a way that does not really make much sense. Use always
- explicit logical operators (&& and ||) to connect bitmask operators.
-
- Thanks to Matt Corallo for the bugreport.
-
-commit e5468d16855600aeb8172e29936789c46ea58da0
-Author: Trisha Biswas <tbiswas@fastly.com>
-Date: Mon May 17 17:50:04 2021 +0200
-
- Filter: Add MPLS label route attribute
-
- Add support to set or read outgoing MPLS labels using filters. Currently
- this supports the addition of one label per route for the first next hop.
-
- Minor changes by committer.
-
-commit d114959e3aeef872441dccea34552047380af742
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri May 14 18:44:52 2021 +0200
-
- Flowspec: Fix values for true/false operators
-
- RFC 8955 is pretty clear that 000 is false and 111 is true.
-
-commit 69a33c92ffce12d173794508cc9d8acfa87d1dc3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri May 14 18:33:15 2021 +0200
-
- Flowspec: Add code for conversion of flowspec parts to interval lists
-
- Implement function flow_explicate_part() to convert flowspec numeric
- expressions to a simple list of (disjoint, sorted) intervals. That could
- be used in filters to build f_tree-based int-sets from them.
-
-commit c1511b92cc9c215224314be38c28ed80843f55e4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon May 10 20:09:31 2021 +0200
-
- Babel: Log the reason when refusing to run on an interface
-
- The babel protocol code checks whether iface supports multicast, and
- whether it has a link-local address assigned. However, it doesn not give
- any feedback if any of those checks fail, it just silently ignores the
- interface. Fix this by explicitly logging when multicast check fails.
-
- Based on patch from Toke Høiland-Jørgensen, thanks!
-
-commit b17adf073594974b05a60ddaaa6e36da4eac4831
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Mon May 10 19:49:43 2021 +0200
-
- BSD: Propagate OS-level IFF_MULTICAST to internal IF_MULTICAST flag
-
- The BSD code did not propagate the OS-level IFF_MULTICAST flag to the
- Bird-internal IF_MULTICAST flag, which causes problems with Wireguard
- interfaces on FreeBSD. The Linux sysdep code does propagate the flag
- already, so just copy over the same check and flag update.
-
-commit 2a0af925b83f699d126cf0e733a49c75ffd86033
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon May 10 13:39:55 2021 +0200
-
- OSPF: Allow ifaces with host address as unnumbered PtP or PtMP ifaces
-
- Ifaces with host address (/32) were forced to be stubby, but now they
- can be used as PtP or PtMP. For these ifaces we need to:
-
- - Do not force stub mode
- - Accept packets from any IP as local
- - Accept any configured neighbor as local
- - Detect ifaces properly as unnumbered
- - Use ONLINK flag for nexthops
-
-commit bc591061f618cdc35cf21c7973a660f8d7018b43
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun May 9 15:16:13 2021 +0200
-
- OSPF: Packets on PtP networks should be always sent to AllSPFRouters
-
- As specified in RFC 2328 8.1: "On physical point-to-point networks,
- the IP destination is always set to the address AllSPFRouters."
-
- Note that this likely break setups with multiple neighbors on a network
- configured as PtP, which worked before. These should be configured as
- PtMP.
-
- Thanks to Senthil Kumar Nagappan for the original patch and to Joakim
- Tjernlund for suggestions.
-
-commit 1647923bd8d2f8e53337365abc5be7e343aa570c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun May 9 14:51:39 2021 +0200
-
- OSPF: Minor refactoring of packet sending code
-
- Common behavior for LSupd and delayed LSack moved to ospf_send_to_iface()
- and other minor changes.
-
-commit 255722e0fcf251c101ff5bec92f1867edf841daa
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Apr 25 02:34:46 2021 +0200
-
- CI: Fix debian-10-i386 docker file
-
-commit 58510024bead8df9cba6e316f8275423a38fd51b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Apr 25 01:07:14 2021 +0200
-
- Doc: Include full LinuxDocTools code
-
- BIRD uses hacked LinuxDocTools for building documentation, keeping some
- parts locally and using remaining parts from system-installed one. This
- setup breaks when LinuxDocTools makes some internal changes and is hard
- to keep consistent.
-
- Just include full LinuxDocTools code (both hacked and unmodified parts)
- to avoid consistency issues. Note that we still need some binaries from
- LinuxDocTools, so it still needs to be installed to build documentation.
-
-commit b646c0098120bbb10ec91fa2fbf1df416c5849bd
-Author: Matous <bralor92@email.cz>
-Date: Wed Apr 21 13:22:23 2021 +0200
-
- CI/CD: some latest releases added.
-
- /misc/docker/:
- + debian 11 (i386+amd64) added,
- + fedora 32 added,
- + fedora 33 added,
- + fedora 34 added,
- + opensuse 15.2 added,
- + opensuse 15.3 added,
- + ubuntu 20.04 added,
- + ubuntu 20.10 added,
- + ubuntu 21.04 added,
- - ubuntu 19.10 removed.
-
- /.gitlab-ci.yml:
- + stages 'image' and 'build' updated.
-
-commit 3d90241f62393e6d614c1d20fde4013c9ff24685
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Apr 19 15:13:20 2021 +0200
-
- Internal route tables have a reduced cleanup routine
-
- This fixes an internal table cleanup bug introduced
- in ff397df7edcbe7a8abca5b419729b9c64c063847.
-
-commit a7c9515ebc88c42f26ce97255c98b2e61ad52934
-Author: Stefan Haller <stefan.haller@stha.de>
-Date: Mon Apr 19 15:06:42 2021 +0200
-
- BSD: Fix invalid pointer derefence in logging code
-
- For logging purposes a stack allocated net_addr struct was passed by
- value as vararg (instead of the expected pointer). This resulted in
- a segfault when the specific error condition got logged.
-
-commit 9c41e1ca3e93d4498eaa085139caf1545e08c1d8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Apr 12 17:01:31 2021 +0200
-
- Lib: Fix handling of buffers in timestamp formatting
-
- The code in tm_format_real_time() mixed up two buffers and their
- sizes, which may cause crash in MRT dumping code.
-
- Thanks to Piotr Wydrych for the bugreport.
-
-commit a2277975d787fb388e753432673acefd69454b1a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Apr 7 16:14:20 2021 +0200
-
- Unix: Expand accepted ranges of iproute2 constants
-
- We support 32bit table and realm/flow ids, we should also accept them as
- constants.
-
- Thanks to Patrick Hemmer for the bugreport.
-
-commit 5caf32efa209bc3e9d741fe2acfc992d2cfad3e7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Apr 3 20:09:32 2021 +0200
-
- Doc: Fix flowspec example
-
- Thanks to Matt Corallo for the bugreport.
-
-commit 7c8b7649f95c72c207bcf95064d08e831d5738ce
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Mar 30 21:44:35 2021 +0200
-
- Allocation of ea_list in one contiguous memory block
-
- This saves some bytes of memory for complex ea's.
-
-commit ff397df7edcbe7a8abca5b419729b9c64c063847
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Mar 30 18:51:31 2021 +0200
-
- Routing table is now a resource allocated from its own pool
-
- This also fixes memory leaks from import/export tables being never
- cleaned up and freed.
-
-commit a9938b179203a4d5c54eae6c814bfa8766f4fde0
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Mar 30 16:03:33 2021 +0200
-
- Resources: added mb_move() to complement rmove() for memory blocks
-
-commit 4635314cefd55aaa2a0146b6722df55e7efba4b8
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Mar 30 15:09:53 2021 +0200
-
- Routing tables list iteration should use explicit node struct position
-
-commit 7a74ad5a61c82ab0062a62dbc9ea6ab91d480485
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 30 16:59:11 2021 +0200
-
- BGP: Do not keep BAF_EXT_LEN flag internally
-
- The flag makes sense just in external representation. It is reset during
- BGP export, but keeping it internally broke MRT dumps for short attributes
- that used it anyways.
-
- Thanks to Simon Marsh for the bugreport and the patch.
-
-commit a06469d9fc1d3ec4b17b3109627aff7d9877ba0e
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Mar 25 20:51:23 2021 +0100
-
- Dropping automatic tests for Debian 7 Wheezy.
-
- Debian 7 Wheezy has been superseded by Debian 8 Jessie on Apr 25, 2015,
- with LTS support ending on May 31, 2018.
-
- Debian 7 Wheezy's default GCC doesn't fully support C11. It should
- anyway still be possible to build BIRD for Debian 7 if you backport
- a C11-capable compiler there.
-
-commit 886dd92eeefa070d8db6aaf0245a67f7a9e9b983
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Jul 22 00:09:15 2020 +0200
-
- Slab: head now uses bitmask for used/free nodes info instead of lists
-
- From now, there are no auxiliary pointers stored in the free slab nodes.
- This led to strange debugging problems if use-after-free happened in
- slab-allocated structures, especially if the structure's first member is
- a next pointer.
-
- This also reduces the memory needed by 1 pointer per allocated object.
- OTOH, we now rely on pages being aligned to their size's multiple, which
- is quite common anyway.
-
-commit 82f19ba95e421f00a8e99a866a2b8d9bbdba6cdc
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 18 20:18:38 2021 +0100
-
- NEWS and version update
-
-commit f1ffe6a23144a4b13f020194f23055ac8c20dea6
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 18 15:54:44 2021 +0100
-
- Add new BGP tests
-
-commit 5a6e8380f89deb4fff21805a7879658d2352471a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 18 15:44:04 2021 +0100
-
- BGP: Do not show statistics
-
- BGP statistics code was preliminary and i wanted to replace it by
- separate 'show X stats' command. The patch hides the preliminary
- output in 'show protocols all' so it is not part of the released
- version.
-
-commit 454ae3044598466ca7c50c12c6882d84ea545afa
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 17 17:24:00 2021 +0100
-
- RPKI: Improve error handling of DNS resolver
-
-commit 0a3db4c68040473ab45b974a7f9256c277c5d31c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 17 15:56:12 2021 +0100
-
- Minor fixes for restricted builds
-
-commit 2f981534902302cbd13cdb12d4f0c6e9a255687a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 16 20:10:00 2021 +0100
-
- Pipe: Propagate debug flags from protocol to channels
-
- Pipe channels are kind-of implicit, so setting protocol debug flags
- should also set pipe debug flags.
-
-commit ae9ae864d3fec20a74ce2567536e186ce178d032
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 16 16:34:42 2021 +0100
-
- OSPFv3: Update neighbor authentication state from Hello packets
-
- In OSPFv3, only Hello and DBDes packets contain flags specifying whether
- RFC 7166 authentication trailer is used. Other packets are processed
- based on stored authentication state in neighbor structure. Update this
- state with each received Hello to handle authentication change from
- reconfigurations.
-
- Thanks to Joakim Tjernlund and Kenth Eriksson for the bugreport.
-
-commit 94abefc00bb22b93493831798391d5d5b21f9d4c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Mar 15 18:35:23 2021 +0100
-
- Filter: Update 'gw' to handle IPv6 link-local addresses
-
- When a link-local address is set, use the existing iface for scope.
-
- Thanks to Marcel KrĂĽger for the bugreport.
-
-commit 0d1a11cca3136828808b8e73f4d5e547cc787fb8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Mar 15 17:51:33 2021 +0100
-
- Doc: Document automatic RPKI reload
-
-commit 6489a2450e0ab4aa63c25ac2f9be354fdbd711d2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Mar 15 16:16:32 2021 +0100
-
- Doc: Document channel debug options
-
-commit 7be3af7fa662958782d2e23989d79cc2c652b6bf
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Mar 12 15:35:56 2021 +0100
-
- Rate-limit scheduling of work-events
-
- In general, events are code handling some some condition, which is
- scheduled when such condition happened and executed independently from
- I/O loop. Work-events are a subgroup of events that are scheduled
- repeatedly until some (often significant) work is done (e.g. feeding
- routes to protocol). All scheduled events are executed during each
- I/O loop iteration.
-
- Separate work-events from regular events to a separate queue and
- rate limit their execution to a fixed number per I/O loop iteration.
- That should prevent excess latency when many work-events are
- scheduled at one time (e.g. simultaneous reload of many BGP sessions).
-
-commit 9cf3d533110313d55b60d47c134f1b7050d6be78
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 10 15:07:19 2021 +0100
-
- Static: Implement reload hook
-
-commit 211fe69c984c657095930d2831f46896197ec65b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Mar 8 20:45:22 2021 +0100
-
- Nest: No automatic ROA reload on non-reloadable channels
-
-commit d3782c72b9243f4609e61edf5f29e6adeaa41e9c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Feb 12 05:05:18 2021 +0100
-
- Nest: Add option to control automatic RPKI reload
-
- Also, no automatic reload for BGP channels without import/export table.
-
-commit 77ce849ecf0f89455eeabefbe520c6b4888837b0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Feb 10 17:29:14 2021 +0100
-
- Tests: Add missing mockup function to tests
-
-commit 714238716ef36f1dfc5721055e2ec4affd42ebfa
-Author: Vincent Bernat <vincent@bernat.ch>
-Date: Wed Feb 10 16:53:57 2021 +0100
-
- BGP: Add support for BGP hostname capability
-
- This is an implementation of draft-walton-bgp-hostname-capability-02.
- It is implemented since quite some time for FRR and in datacenter, this
- gives a nice output to avoid using IP addresses.
-
- It is disabled by default. The hostname is retrieved from uname(2) and
- can be overriden with "hostname" option. The domain name is never set
- nor displayed.
-
- Minor changes by committer.
-
-commit 00b85905b9f5081eb2fce0ed79542085278e9f42
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Feb 10 03:09:57 2021 +0100
-
- Nest: Automatic channel reloads based on RPKI changes
-
- If there are roa_check() calls in channel filters, then the channel
- subscribes to ROA table notifications, which are sent when ROA tables
- are updated (subject to settle time) and trigger channel reload or
- refeed.
-
-commit d06a875b042b608e61b2d5a2bb594641d3e1322f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Feb 7 19:21:42 2021 +0100
-
- Filter: Recursive filter iteration code
-
- Add macros for recursive filter iteration that allows to examine
- all instructions reachable from a filter.
-
-commit 5d414309ec5a01024d4de4c4f9521f8daa5c06ff
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Jan 22 04:34:15 2021 +0100
-
- MRT: Fix MP-BGP next hops
-
- Flag signalling that MP-BGP mode should be used got reset after first
- batch of routes, so remaining routes were processed without that, leading
- to missing MP_REACH_NLRI attribute.
-
- Thanks to Piotr Wydrych for the bugreport.
-
-commit df83f626973fda1e67769d295c47d4d246e4c1c4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jan 14 01:51:09 2021 +0100
-
- Netlink: Ignore dead routes
-
- With net.ipv4.conf.XXX.ignore_routes_with_linkdown sysctl, a user can
- ensure the kernel does not use a route whose target interface is down.
- Such route is marked with a 'dead' / RTNH_F_DEAD flag.
-
- Ignore these routes or multipath nexthops during scan.
-
- Thanks to Vincent Bernat for the original patch.
-
-commit a40ddf5c616465a93287e4ac41a98d04b4fb2b37
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 12 15:43:54 2021 +0100
-
- Build: Fix tags generation
-
-commit d774f6d721b0e52ed800c4b9a3a482c8ce9dd074
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 12 15:37:01 2021 +0100
-
- MRT: Fix IPv6 table dumps
-
- Add fake MP_REACH_NLRI attribute with BGP next hop when encoding MRT
- table dumps for IPv6 routes. That is necessary to encode next hop as
- NEXT_HOP attribute is not used for MP-BGP.
-
- Thanks to Santiago Aggio for the bugreport.
-
-commit 910adaa08bbd416288797505399ab47f990817e6
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Jan 10 15:29:02 2021 +0100
-
- BFD: Dispatch sessions also by interface index
-
- Direct BFD sessions needs to be dispatched not only by IP addresses, but
- also by interfaces, in order to avoid collisions between neighbors with
- the same IPv6 link-local addresses.
-
- Extend BFD session hash_ip key by interface index to handle that. Use 0
- for multihop sessions.
-
- Thanks to Sebastian Hahn for the original patch.
-
-commit 17663b6a7c505226cfe9ccc0671611075a3dff57
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jan 7 05:56:34 2021 +0100
-
- RPKI: Remove port (and SSH username) from 'Cache server' output line
-
- It was mixed-up if hostname is IPv6 address, and reporting separate
- values (like port) on separate lines fits better into key-value style
- of 'show protocols all' output. Also, the patch simplifies transport
- identification formatting (although it is unused now).
-
- Thanks to Alarig Le Lay for the suggestion.
-
-commit 2a8cc7259e236773f1b8423ef63305a5b8bfd652
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jan 7 01:56:00 2021 +0100
-
- Kernel: Do not check templates
-
- So one can define kernel protocol template without channels.
- For other protocols, it is either irrelevant or already done.
-
- Thanks to Clemens Schrimpe for the bugreport.
-
-commit a141959f0729b2381a90aaa9b7ed0e41a5f9513e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jan 7 01:20:56 2021 +0100
-
- Doc: Describe per-nexthop static route options
-
- Also remove description of (no longer supported) per-route 'bfd' option,
- and add examples of IPv6 routes with link-local nexthops.
-
-commit 7a1f4baac11cbfad82a2d09a130b3ae7bb48e9bd
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jan 6 14:51:49 2021 +0100
-
- Nest: remove last_tx_filter_change
-
- No longer needed after redesign of export handling.
-
-commit 4155104c90bc2f3fb680e8041e079ceb3d80a3b1
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jan 6 14:44:23 2021 +0100
-
- BGP: Deprecate 'missing lladdr' option
-
- The option is not implemented since transition to 2.0 and no plan to add it.
- Also remove some deprecated RTS_* valus from documentation.
-
- Thanks to SĂ©bastien Parisot for notification.
-
-commit 21f9acd2a01306af01f19914105985a8a0f9bcba
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jan 6 05:25:59 2021 +0100
-
- Kernel: Fix handling of krt_realm with ECMP routes
-
- For ECMP routes, RTA_FLOW attribute must be set per-nexthop, not
- per-route. Our corresponding krt_realm attribute is per-route.
-
- Thanks to Mikhail Petrov for the bugreport.
-
-commit 455c13dc9971ae4aa701135b5c1709d61477bdec
-Author: James Lu <james@overdrivenetworks.com>
-Date: Tue Dec 29 02:23:54 2020 +0100
-
- Nest: Read Babel metric as IGP metric
-
- (Minor syntactic changes by committer)
-
-commit ea3c6c1a15ce9b93f583f96919c70f7a2fd34e98
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 28 21:19:27 2020 +0100
-
- Static: Fix handling of 'net' attribute in per-route filters
-
- We need to define 'net' field temporarily as it may be accessed by
- per-route filters.
-
- Thanks to Damian Zaremba for the bugreport.
-
-commit 9e2635505a08e3453eef487360e49b4b70987ceb
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 28 15:23:28 2020 +0100
-
- Filter: Fix return on top-level
-
- Broken detection of top-level case caused crash when return was called
- from top-of-stack position. It should behave as reject/accept.
-
- Thanks to Damian Zaremba for the bugreport.
-
-commit 61dae32b29cc57b9884a1c13e5d630096e157a38
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 7 22:19:40 2020 +0100
-
- Nest: Per-channel debug flags
-
- The patch add support for per-channel debug flags, currently just
- 'states', 'routes', and 'filters'. Flag 'states' is used for channel
- state changes, remaining two for routes passed through the channel.
- The per-protocol debug flags 'routes'/'filters' still enable reporting
- of routes for all channels, to keep existing behavior.
-
- The patch causes minor changes in some log messages.
-
-commit 8cc5bb09e344038a1f8dff96946e05ec80607c93
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 2 05:02:26 2020 +0100
-
- Filter: Add 'weight' route attribute
-
- Add 'weight' route attribute that allows to get and set ECMP weight of
- nexthops. Similar to 'gw' attribute, it is limited to the first nexthop,
- but it is useful for handling BGP multipath, where an ECMP route is
- merged from multiple regular routes.
-
-commit 246586771296d1c42a012c06bdc75b36a7ce0b4f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Nov 25 15:44:00 2020 +0100
-
- BGP: Zero the newly allocated bucket structure
-
- This fixes an issue with dirty node passed to add_tail().
-
- Thanks to Andreas Rammhold for the initial patch.
-
-commit 62d57b9bdf82cc978f889f0118c8aa19ae999a3d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Nov 25 15:15:13 2020 +0100
-
- Log: Fix locking during log reconfiguration
-
- The log subsystem should be locked earlier, as default_log_list() may
- internally manipulate with the current_log_list (if it is also a default
- log list).
-
-commit 0ef082c51e5d905e9137e1484036b9d9b32e9a75
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Nov 25 15:04:34 2020 +0100
-
- Log: Reinitialize the static logging structures
-
- The static logging structures are reused, we need to reinitialize them
- otherwise add_tail() would fail in debug build. Reinitializing these
- structures should be fine as the list they belong to is being
- reinitialized on entry to the very same function.
-
- Thanks to Andreas Rammhold and Mikael Magnusson for patches.
-
-commit 30b846826905b4da76f59a212a31928bd55e9783
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 24 04:09:11 2020 +0100
-
- Minor cleanups with cfg_allocz()
-
- Also fixes some more failed asserts due to add_tail().
-
-commit 1678bc07467e6d977fc2f6bf830274ca92e0a6e5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 24 03:42:23 2020 +0100
-
- Fix some failed asserts due to add_tail()
-
- When config structures are copied due to template application,
- we need to reset list node structure before calling add_tail().
-
- Thanks to Mikael Magnusson for patches.
-
-commit c9ae81656f97bcc55910e80b6f00d3ee9383d848
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 24 03:21:44 2020 +0100
-
- Some minor sl_allocz() cleanups
-
-commit db2d29073acfd4086fca18ba43a5ed6baccaa8ad
-Author: Toke Høiland-Jørgensen <toke@toke.dk>
-Date: Tue Nov 24 02:32:13 2020 +0100
-
- lib/slab: introduce sl_allocz() function and use it in Babel
-
- The babel protocol code was initialising objects returned from the slab
- allocator by assigning to each of the struct members individually, but
- wasn't touching the NODE member while doing so. This leads to warnings on
- debug builds since commit:
-
- baac7009063d ("List expensive check.")
-
- To fix this, introduce an sl_allocz() variant of the slab allocator which
- will zero out the memory before returning it, and switch all the babel call
- sites to use this version. The overhead for doing this should be negligible
- for small objects, and in the case of babel, the largest object being
- allocated was being zeroed anyway, so we can drop the memset in
- babel_read_tlv().
-
-commit 3347aaafec5b269637604d1ea5f5969797beadea
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Nov 19 16:38:39 2020 +0100
-
- Static: Support for multiple routes with the same network
-
- Add support for proper handling of multiple routes with the same network
- to the static protocol. Routes are distinguished by internal index, which
- is assigned automatically (sequentially for routes within each network).
- Having different route preference or igp_metric attribute is optional.
-
-commit df65d519d6a5a7511cc893d2be55399b38b838be
-Author: Nigel Kukard <nkukard@lbsd.net>
-Date: Wed Nov 18 18:00:12 2020 +0100
-
- Doc: Added example of static routes with BGP large communities
-
-commit 00ddd18b02a4a4db973adecf6ef63a350c909cbd
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Nov 18 17:37:29 2020 +0100
-
- OSPFv3: Fix intra-area-prefix-LSA origination on DR
-
- When a new link-LSA is originated, we need to notify intra-area-prefix-LSA
- handling, like when a new link-LSA is received. Otherwise a new network
- prefix added to a DR is not propagated immediately.
-
- Thanks to Bala Sajja for the bugreport.
-
-commit 6ea8a46ccb540701dfe747566e6a5b7bc318db01
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Nov 15 16:28:13 2020 +0100
-
- Doc: Fix typo
-
- Thanks to Hexhu for the bugreport.
-
-commit b962967e20f186f797c163f69c673b0ee4ef3b2b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Nov 15 16:01:19 2020 +0100
-
- Nest: Fix crash in receive limit handling in import table
-
- Logging as a result of triggered receive limit in import table code
- accesset rte->net, which was not filed yet.
-
- Thanks to Pier Carlo Chiodi for the bugreport.
-
-commit 4a42e7e92520e7d07e585d542ef54e1de302fb1d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Nov 12 04:50:45 2020 +0100
-
- BFD: Update documentation about per-session options
-
-commit 3b56bf8849283977f2f4fa7b8f3dc62fdd8d7587
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Nov 12 04:02:38 2020 +0100
-
- BFD: Better handling of BFD options in BGP configs
-
- Merge multiple BFD option blocks in BGP configs instead of using the last
- one. That is necessary for proper handling of templates when BFD options
- are used both in a BGP template and in a BGP protocol derived from that
- template.
-
-commit 99ad208dd73d357156672a53f48b77dcf6515c30
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Nov 12 02:37:42 2020 +0100
-
- BFD: Fix superfluous reconfiguration of sessions
-
-commit 9d3fc3062b236f51b2c72a4c2c7b068f1946261d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Nov 8 15:33:22 2020 +0100
-
- BFD: Allow per-request session options
-
- BFD session options are configured per interface in BFD protocol. This
- patch allows to specify them also per-request in protocols requesting
- sessions (currently limited to BGP).
-
-commit fc1e3211b109400c0e96f889829c9f5145ac7226
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Oct 11 00:53:19 2020 +0200
-
- RPKI: Add 'ignore max length' option
-
- Add 'ignore max length' option to RPKI protocol, which ignores received
- max length in ROA records and instead uses max value (32 or 128). This
- may be useful for implementing loose RPKI check for blackholes.
-
-commit 6c11dbcf28faa145cfb7310310a2a261fd4dd1f2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Oct 5 14:52:55 2020 +0200
-
- Doc: Fix missing semicolons
-
- Thanks to Marco Gartmann for the bugreport.
-
-commit 14ce8904e7b9f6ceeaf2587faeab200cd67401d9
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Oct 5 14:45:01 2020 +0200
-
- Doc: Fix typo
-
- Thanks to Sergey Kulikov for the bugreport.
-
-commit 600eb695b1a273f8b3fd4f2c524d8eeef25483aa
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Aug 31 15:41:39 2020 +0200
-
- OSPF: Fixed a debug assert
-
-commit dc8d9dec4a3484f358d2117328fe860e8e7b16bb
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Aug 12 19:42:44 2020 +0200
-
- OSPF: Skip out-of-state packets earlier
-
- Sometimes multicast OSPF packet is received when neighbor adjacency is
- not established. Such packet should be ignored earlier in packet
- processing as otherwise it causes strange error messages when OSPFv3
- authentication is enabled.
-
-commit c0e1f534c95f5f395fda62b01ea1c245323e3aed
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jul 16 15:02:10 2020 +0200
-
- Nest: Keep route ordering during route updates
-
- Put new non-best routes to the end of list instead of the second
- position. Put updated routes to their old position. Position is changed
- just by best route selection.
-
-commit c26c6bc2d78a2fe76f27dcc9fbb5afc95c3a7626
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 14 03:48:17 2020 +0200
-
- Show info from multiple protocols when protocol is not specified
-
- Most commands like 'show ospf neighbors' fail when protocol is not
- specified and there are multiple instances of given protocol type.
- This is annoying in BIRD 2, as many protocols have IPv4 and IPv6
- instances. The patch changes that by showing output from all protocol
- instances of appropriate type.
-
- Note that the patch also removes terminating cli_msg() call from these
- commands and moves it to the common iterating code.
-
-commit a948cf9a5c338518773e6c98e895c829c469f56b
-Author: Kazuki Yamaguchi <k@rhe.jp>
-Date: Sun Jun 28 15:37:01 2020 +0200
-
- Filter: Improve handling of sets in BGP path masks
-
- Compare the content of PM_ASN_SET in path masks. A reconfiguration
- was not properly triggering a reload of affected protocols when the
- members of a set in a path mask change.
-
- Also, update the printing code to so that it can display sets in a path
- mask.
-
-commit 4ef0a966392672d04a567c25758462fe3bbb0fb4
-Author: Kazuki Yamaguchi <k@rhe.jp>
-Date: Sun Jun 28 15:33:26 2020 +0200
-
- Filter: Fix comparison of BGP path mask
-
- Add a missing return statement. Path masks with the same length were all
- considered the same. Comparing two with different length would cause
- out-of-bounds memory access.
-
-commit 82937b465b3a50bdcb00eff0b7aa6acb3fc21772
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 10 13:27:14 2020 +0200
-
- OSPF: Fix bad header length test
-
- Thanks to Slava Aseev for the thorough bugreport.
-
-commit 71e08edd942557ec333902bb45c57794f7a66bf8
-Author: Kenth Eriksson <kenth.eriksson@infinera.com>
-Date: Wed Jun 3 23:05:29 2020 +0200
-
- Doc: Add 'ptp address' to OSPF doc overview
-
-commit 63451c19611b5972769ed519bd7eb6c1b995a8a0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 3 16:15:29 2020 +0200
-
- Test: Fix unit test mockups
-
-commit f1b5f179dbd8aaef5eca4936b557e753e377d818
-Author: Kazuki Yamaguchi <k@rhe.jp>
-Date: Wed Jun 3 15:18:02 2020 +0200
-
- Netlink: Fix parsing of MPLS multipath routes
-
- Add support for RTA_MULTIPATH attribute parsing for AF_MPLS routes.
-
- BIRD is capable of installing a multipath route into kernel on Linux,
- but it would not be seen because parsing fails. This made BIRD attempt
- to install the same route repeatedly.
-
- (The patch minorly updated by committer)
-
-commit 19f8f173202d6f5cbf97ca2a9f66fcea6b9bb44f
-Author: Kazuki Yamaguchi <k@rhe.jp>
-Date: Wed Jun 3 15:05:35 2020 +0200
-
- RPKI: Fix unnecessary reconnection on reconfiguration
-
- Compare the new timing parameters with the old configuration, not with
- the temporary state of the current connection.
-
- The timing values in struct rpki_cache is updated by a version 1 End Of
- Data PDU, unless this behavior is suppressed by the configuration
- explicitly by the "keep" keyword. Consequently, every reconfiguration
- of BIRD triggers a reconnection even if it is not necessary.
-
-commit fae5448134dfec004be818d18ff1583cc61e5549
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun May 31 13:21:55 2020 +0200
-
- Log: Do not open logfiles when parse-and-exit option is active
-
- This is a quick workaround for an issue where configured logfiles are
- opened/created during parsing of a config file even when parse-and-exit
- option is active. We should later refactor the logging code to avoid
- opening log during parsing altogether.
-
-commit eee8af4db2d36a5017eac4447075cac3346e8b23
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Jun 2 16:58:06 2020 +0200
-
- OSPF: setting list node to zero before enlisting
-
-commit 4e8f8afc68cc7ba09ca42d989e47dbfcb17d2772
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 26 23:43:13 2020 +0200
-
- Babel: Set onlink flag for IPv4 routes with unreachable next hop
-
- If the next hop of a route is not a reachable address, the route should be
- installed as onlink. This enables a configuration common in mesh networks
- where the mesh interface is assigned a /32 and babel handles the routing by
- installing onlink routes.
-
- Thanks to Toke Hoiland-Jorgensen for the patch.
-
-commit c1632ad0f39f7221d649a9e469cacc38105528e2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 26 18:21:43 2020 +0200
-
- OSPF: Fix handling of unnumbered PtPs
-
- This issue has a long history. In 2012, we changed data field for
- unnumbered PtP links from iface id (specified by RFC) to IP address based
- on reports of bugs in Quagga that required it, and we used out-of-band
- information to distinquish unnumberred PtPs with the same local IP
- address.
-
- Then with OSPF graceful restart implementation, we found that we can no
- longer use out-of-band information, and we need to use only LSAdb info
- for routing table calculation, but i forgot to finish handling of this
- case, so multiple unnumbered PtPs with the same local IP addresses were
- broken.
-
- Considering that even recent Mikrotik RouterOS has broken next hop
- calculation that depends on IP address in PtP link data field, we
- cannot just switch back to the iface id for unnumbered PtP links.
-
- The patch makes two changes: First, it goes back to use out-of-band
- (position) info for distinguishing local interfaces in SPF when graceful
- restart is not enabled, while still uses LSAdb-only approach for SPF
- calculation when graceful restart is enabled.
-
- Second, it adds OSPF interface option 'ptp address', which controls
- whether IP address or iface id is used in data field. It is enabled
- by default except for unnumbered PtP links with enabled graceful
- restart.
-
- Thanks to Kenth Eriksson for the bugreport and Joakim Tjernlund for
- suggestions.
-
-commit 1ca7665fa4a9858a6d4c591ccff5b61e5e6aed13
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 19 02:50:47 2020 +0200
-
- Nest: Allow key id 0
-
- There is nothing in RFCs specifying that id 0 is not allowed. Some
- implementations does not support it, while some other use key id 0 by
- default. We allow it but start with key id 1 by default.
-
- Thanks to Kenth Eriksson for the bugreport.
-
-commit b729e731f99aa6ece085597091618ed559a9f656
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon May 18 22:16:37 2020 +0200
-
- RIP: Triggered RIP (demand circuit) documentation
-
-commit ec430a7feefd3b32ee39c641a48c44528d0eab25
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon May 18 16:25:08 2020 +0200
-
- Nest: Implement BGP path mask loop operator
-
- Implement regex-like '+' operator in BGP path masks to match previous
- path mask item multiple times. This is useful as ASNs may appear
- multiple times in paths due to path prepending for traffic engineering
- purposes.
-
-commit 5fc8407177fd34f2d57441a8ff9a068f4162fbfb
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 12 03:46:47 2020 +0200
-
- RIP: Fix handling of passive mode for demand circuit interfaces
-
-commit b8bbbbaf569799ab8faff0ee185528b6a2129154
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon May 11 04:29:36 2020 +0200
-
- Nest: Fix neighbor handling for colliding ranges
-
- 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.
-
-commit f7c34aa227693194e53ca0435dba52c2a839bae8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 5 02:20:30 2020 +0200
-
- Tests: Activate BGP-int test
-
-commit e6785c469b418785568c33241157d17107afd55c
-Author: Matous Holinka <matous.holinka@nic.cz>
-Date: Wed Apr 29 16:15:17 2020 +0200
-
- Tests: Change unsupported Ubuntu 19.04 for supported version 19.10
-
-commit 82bfee76f0adfd50d51833343c63ba9e2afcb60e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Apr 29 15:07:33 2020 +0200
-
- Filter: Remove quitbird command
-
- No need for this debug filter command and it can be abused from CLI.
-
-commit b12442c985f2bd8c9fd47ca63151724962fabdc2
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri May 1 15:41:42 2020 +0200
-
- Fixed a harmless warning in production build
-
-commit 048eb2ddf1ee9587d9fa30cbb3f87d6f650a2133
-Merge: 17de3a02 59238768
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri May 1 15:34:17 2020 +0200
-
- Merge remote-tracking branch 'origin/mq-static-analysis'
-
-commit 59238768b3b05fa134348d2232b42537d0403994
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Aug 19 14:43:14 2019 +0200
-
- Slab: Init node in slab head to NULLs.
-
-commit ea259d6201973eb0f764cbb2bb6549b6ac79b316
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Aug 17 16:09:29 2019 +0200
-
- Timer: Adding missing initializer.
-
-commit 0c3b8ffe25f43e59dfe8b1aeb219ff1cb4c6aa2b
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Aug 17 15:03:09 2019 +0200
-
- Lexer: strtoul shall never set endptr to NULL; it should be an error
-
-commit cdde3550dc188f493daf82ef9d9acf8b85d9d722
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Aug 17 14:57:41 2019 +0200
-
- Unix socket: Path length check directly before copying the path.
-
- This is not needed as the string is always short enough, anyway
- it may be needed in future and one strlen during BIRD start is
- cheap enough.
-
-commit 9ac13d7af25d6b26866bf4f4a4fab371925fb1df
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Aug 19 14:36:51 2019 +0200
-
- Lists: Replaced replace_node() by update_node() which is the only use of that function.
-
-commit e26a5195dd6c62e6f4b80d13b6ecd5f40ee68546
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Aug 17 14:03:47 2019 +0200
-
- Lists: fix a stupid sanitizer bug
-
-commit 3bb10b4d31d68a8139e284c27f7eb6fca897721d
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Aug 17 14:18:41 2019 +0200
-
- Uninitialized list nodes fixes
-
-commit 258be56539a3d4b47fe779f9658ca3d88761878d
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Aug 17 13:36:36 2019 +0200
-
- Nest: Added const to ea_show just to declare that this shouldn't really change anything
-
-commit a7d9b8f116d00194e94c7505cbc8ed7f8784eeab
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Aug 17 10:28:55 2019 +0200
-
- OSPF: Zero-initialization of a temporary neighbor
-
-commit 0fa8bf91cd474e393ded85b329fde30ba35f6a26
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Aug 17 10:20:46 2019 +0200
-
- Nest: Several assumptions to tame the static analyzer
-
-commit bbe49ae569534d0cf7ff226d19e729dcc764e606
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Aug 17 08:59:06 2019 +0200
-
- Nest: Assumption in rt-show for not-so-intuitive invariant.
-
-commit a08853a26989d343c507a41257dedcdea3befd73
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Aug 17 08:54:08 2019 +0200
-
- Static scanner and expensive debugging setup fix
-
-commit 5f60d14edeb48824d28e6393e7eb1aa50d5f2cd1
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Aug 16 21:22:56 2019 +0200
-
- RPKI: fixed rare va_list leak
-
-commit b7482209065a03c3186d74e5e4129539ce7a3ce4
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Aug 16 21:15:49 2019 +0200
-
- Static check: Don't report dead code
-
-commit 9e64ac4b7c23aa3b8b9149794c05305315cf31e5
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Aug 16 14:04:53 2019 +0200
-
- OSPF: Adding a note about a static analyzer result.
-
-commit dccee408262262ab9a63403141b74a0d937284bc
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Aug 16 12:47:13 2019 +0200
-
- OSPF: variable-length array of size 0 replaced by alloca()'d pointer
-
- NULL pointer is safer than a random pointer onto stack if this function
- gets changed and eventually broken.
-
-commit baac7009063d94799821422ecc63ea2af41561ea
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Aug 14 16:23:58 2019 +0200
-
- List expensive check.
-
-commit a0d0a71a1828cce725c3132f8c243bf0c537786f
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Aug 14 16:22:39 2019 +0200
-
- Expensive check declaration
-
- Intended to be run at every operation with complex data structures
- to check their consistency and validity.
-
-commit a1b61a271af40a9d6ef0837424ab2c98d29f1575
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Aug 14 12:29:04 2019 +0200
-
- IPv6 address parser: fail on incomplete addresses
-
-commit d65a926a67749f8e8ffb6df9b3e2e123669b0656
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Aug 14 11:49:20 2019 +0200
-
- Filter: Don't alloc varargs array if its length would be zero
-
-commit 30ba7c1661a13d665ae0aaa4e40cb5ed24023450
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Aug 14 11:31:03 2019 +0200
-
- Filter: Removed forgotten dead code
-
-commit bf9486bf20ee16af71e338ee690fc36805d98fe5
-Author: Maria Matejka <mq@jmq.cz>
-Date: Mon Apr 27 22:33:10 2020 +0200
-
- Non-null function argument declaration
-
-commit 17de3a023f7bde293892b41bfafe5740c8553fc8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Apr 29 02:50:29 2020 +0200
-
- BGP: Fix handling of strange IPv6 link-local-only next hops
-
- There are three common ways how to encode IPv6 link-local-only next hops:
- (:: ll), (ll), and (ll ll). We use the first one but we should accept all
- three. The patch fixes handling of the last one.
-
- Thanks to Sebastian Hahn for the bugreport.
-
-commit 8029ae527edde4d47a51b55efdbdea546296c5ef
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Aug 1 14:25:01 2019 +0200
-
- More assertion categories
-
-commit d607205486d7ea11f2cbf3dcc3d5e7e6b53f1d0f
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Aug 14 10:28:23 2019 +0200
-
- Not calling memcpy with n=0.
-
-commit 124d860f648f4c1c080e77b5f070b97d094f5285
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Aug 14 11:06:49 2019 +0200
-
- Filter: fixed omitted overflow check in EC constructor
-
-commit 59a86cbc7c5d5640b16ca9d8a99be979b11a4c68
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Aug 14 10:14:15 2019 +0200
-
- Makefile rule for static analyzer
-
-commit b465604eb13fc57ebe240556ebf0d4469690c906
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Apr 28 14:58:43 2020 +0200
-
- Tests: Activate BGP-auth test
-
-commit 716e11a58437498c09ffdb321b0de4e28a7383d8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Apr 28 03:52:47 2020 +0200
-
- Tests: Activate OSPF-VRF test
-
-commit 3c838ad9fdc553c658ee2fbb466ab8ab4cd14805
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Apr 22 16:03:37 2020 +0200
-
- Tests: Activate BGP test
-
-commit a6548d5b5be1d0186dfab43b76790803f8c8625e
-Author: Nasato Goto <goto@mfeed.ad.jp>
-Date: Wed Apr 15 03:46:53 2020 +0200
-
- BGP: Fix handling of 16bit-only ASN translation
-
- The bug generated invalid AGGREGATOR attribute during translation of
- 32bit ASN to 16bit-only BGP peer. The patch fixes that.
-
-commit fd9f0c0640fd02a26b96b4f9d3cbbffbb6544a84
-Author: Maria Matejka <mq@jmq.cz>
-Date: Wed Apr 8 22:25:15 2020 +0200
-
- Configuration strings are constant.
-
- This is merely a const propagation. There was no problem in there.
-
-commit a109056145a6bc8a6b498ecb6e309ebc143c8b3c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Mar 28 17:17:51 2020 +0100
-
- Doc: Update prefix set comment
-
-commit 2928c5bcc7c3caaeb6de34a84ca63de9a12e1f1a
-Author: Maria Matejka <mq@jmq.cz>
-Date: Sun Apr 5 01:12:06 2020 +0200
-
- Fletcher16 test fixed to work at bigendian architectures.
-
- To be honest, it was wrong in concept, anyway it accidentally worked.
-
-commit c9d11e6230c49cdfd1f17829be0e877aba05e90b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 26 04:53:23 2020 +0100
-
- Filter: Remove mixed address tests and fix formatting
-
-commit 27550028907fd135051a43dda0abe76e9118b7e9
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 26 03:57:48 2020 +0100
-
- Filter: Optimize IPv4 prefix sets
-
- Use separate IPv4 and IPv6 implementation of prefix sets. Just this
- change makes IPv4 prefix sets 60% smaller and 50% faster.
-
-commit d516c68ad838351fa5e20e3e10bd3fb2b3157618
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Mar 14 17:04:49 2020 +0100
-
- RIP: Improvements to demand circuit mode
-
- Restart iface after changing demand circuit mode during reconfiguration.
- Fix next_regular interval reset during reconfiguration. Send flushing
- response when iface goes down.
-
-commit dc042d87cb68e44b49e9f4f153db444afaa00fba
-Author: Maria Matejka <mq@jmq.cz>
-Date: Mon Jan 27 17:42:11 2020 +0100
-
- Perf: changed route update pattern to be more like common protocols
-
-commit e2630a494ebc90bee97729ebe92a1bb9fd8bb611
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 5 23:51:28 2020 +0100
-
- Netlink: Handle interfaces with missing broadcast addresses
-
-commit 1ad98965c5eacd5c5f468beac146dfd0d63c83f2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 5 22:01:30 2020 +0100
-
- Tests: Enforce cleanup before running a test
-
-commit ead531ffefdad0f6b5d654330d0e4aba94757569
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 5 17:39:52 2020 +0100
-
- Tests: Activate OSPF tests
-
-commit e6746da6de45bcacc42010cea828129eae38ba67
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 3 19:04:05 2020 +0100
-
- Flowspec: Fix tests
-
- Missing dst no longer generates error.
-
-commit 78e4a123bb937bb45f7eaebb0ea475095443bfd0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 3 17:45:16 2020 +0100
-
- BGP: Handle flowspec rules without dst part
-
- The RFC 5575 does not explicitly reject flowspec rules without dst part,
- it just requires dst part in validation procedure for feasibility, which
- we do not implement anyway. Thus flow without dst prefix is syntactically
- valid, but unfeasible (if feasibilty testing is done).
-
- Thanks to Alex D. for the bugreport.
-
-commit 757cab18d6427d9246618ce48c158f2b05183838
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Feb 27 16:16:48 2020 +0100
-
- BGP: Support for MD5SIG together with remote range
-
- When dynamic BGP with remote range is configured, MD5SIG needs to use
- newer socket option (TCP_MD5SIG_EXT) to specify remote addres range for
- listening socket.
-
- Thanks to Adam Kułagowski for the suggestion.
-
-commit 22c3cf955dbbb65aa29e322efa70dabb749f0232
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Feb 21 02:35:50 2020 +0100
-
- RIP: Demand circuit support (RFC 2091)
-
-commit 3343088a7164a54b1e6c6cf9648d8036a61e9827
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Feb 14 22:37:07 2020 +0100
-
- RIP: Fix crash when interface is removed
-
- Recent changes in neighbor code caused RIP to access neighbor field which
- is NULL during interface/neighbor removal and caused crash when debug
- messages are enabled. Use correct field to get iface from neighbor.
-
-commit ab089f4fb5e1ac762a9c95ed4638e2477803678e
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Feb 4 10:34:46 2020 +0100
-
- Conf: Better error message when reading iproute2 config
-
- Reported by: Martin Weinelt <martin@darmstadt.freifunk.net>
-
-commit 027a3e66f786be8863784aefb043097b41090896
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Feb 4 10:15:35 2020 +0100
-
- RPKI: Allow build without libSSH
-
-commit 4bbc10614f3431c37e6352f5a6ea5c693c31021e
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Feb 4 10:11:16 2020 +0100
-
- Added missing extern
-
- Thanks to Robert Scheck <bird@robert-scheck.de> who reported it
- and Toke Høiland-Jørgensen <toke@toke.dk> who suggested this patch.
-
-commit 7f9adafc109d576d5249c25ef284606dbac4adfa
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 28 18:07:25 2020 +0100
-
- BFD: Option to specify which class of BFD sessions are accepted
-
- Allows to configure IPv4/IPv6-only or direct/multihop-only BFD protocol
- instances.
-
-commit 9f2670277cc0d56d3364d4784348056174175aba
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jan 9 02:59:59 2020 +0100
-
- OSPF: Fix bad initialization of tx_hdrlen field
-
- Function ifa_tx_hdrlen() uses fields autype and passwords, so it must be
- called after these are set.
-
- Thanks to Kenth Eriksson for the bugreport.
-
-commit 7d767c5a3d001a6a1a5c3e800553202fd492190c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 7 18:35:03 2020 +0100
-
- KRT: Improve syncer code to avoid using temporary data in rtable
-
- The old code stored route verdicts and temporary routes directly in
- rtable. The new code do not store received routes (it immediately
- compares them with exported routes and resolves conflicts) and uses
- internal bitmap to keep track of which routes were received and which
- needs to be reinstalled.
-
- By not putting 'invalid' temporary routes to rtable, we keep rtable
- in consistent state, therefore scan no longer needs to be atomic
- operation and could be splitted to multiple events.
-
-commit ef8c45749c82e246d477ea4d7f749668a9c7e9ee
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 7 01:24:30 2020 +0100
-
- Filter: Fix typecheck for AND/OR.
-
- Do not apply dynamic type check for second argument of AND/OR, as it is
- not evaluated immediately like regular argument would be.
-
- Thanks to Mikael for the bugreport.
-
-commit cc75b3e1dc4a7440479d6f4d73e7e1b9ba65332f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 19 16:34:35 2019 +0100
-
- KRT: Remove KRF_SYNC_ERROR flag
-
- This info is now stored in an internal bmap. Unfortunately, net.flags
- is still needed for temporary kernel data.
-
-commit 90a9c97e38e3769b400b434723516213eccb3ab0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 17 16:30:29 2019 +0100
-
- KRT: Fix removal of KRF_INSTALLED
-
- Use route id from net->routes to check export_map. Route received from
- sysdep KRT code does not have proper id.
-
-commit 3dabf7b8d09c3188ea41b7e2f763397946943778
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 17 00:01:53 2019 +0100
-
- Test: Improve filter_test
-
- Initial parsing of test.conf must be done directly in filter_test main,
- while reconfiguration is handled as a regular test. Also fix several
- minor issues in test code.
-
-commit 3232d1718636eb7617fedc7b27378cd1d8f8691d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 16 18:05:56 2019 +0100
-
- Doc: Fix documentation of BGP gateway option
-
- Thanks to Nico Schottelius for the bugreport.
-
-commit c132acae362b6106c2eecbef2d8c163acde84035
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 16 02:40:28 2019 +0100
-
- KRT: Remove KRF_INSTALLED flag
-
- The same information is stored in export_map of kernel protocol.
-
-commit d3aa4f2aeddf7f546b3c0c9bd5fc7958ecb3814a
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Dec 12 15:42:29 2019 +0100
-
- Filter: fix filter comparison test
-
-commit dfb3eb771683ae4cc5ae43a990352578ab20f0fa
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 10 18:53:16 2019 +0100
-
- Filter: Fix function comparison
-
- Check the SYM_FLAG_SAME in new symbols. The old code checked that
- in old symbols (f2).
-
-commit 4ab54f1aefd6a3ecc5e2340cbc15d492444daff5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 10 18:18:02 2019 +0100
-
- Nest: Fix bitmap cleanup
-
- Channel currently does not have independent pool and uses protocol pool,
- which is freed when protocol changes state to down, while channel is
- still in flushing. Move some some cleanup code to channel_do_flush()
- so it is done before freeing of protocol pool.
-
-commit ff2ca10cba9c5a3be690ec1a77a068e23395ef20
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 9 04:23:01 2019 +0100
-
- Filter: Add support for src/dst accessors for Flowspec and SADR
-
-commit 21d09632a524c0d2a7f44a51f877370ad07b983c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 3 18:05:41 2019 +0100
-
- BGP: Add some statistics
-
- Add some statistic counters to BGP consistent with BGP MIB (RFC 4273),
- including persistent 'FSM established transitions'.
-
-commit 92249894b333f7785e62b2f629dca1bbe6597c2f
-Author: Matous Holinka <matous.holinka@nic.cz>
-Date: Tue Nov 26 19:33:01 2019 +0100
-
- CI: Add more build tests
-
- Add more Docker images with distributions (CentOS 8, Debian 10,
- Fedora 27-31, OpenSUSE 15.0 & 15.1, and Ubuntu 18.04 & 19.04).
- Fix some issues with older ones.
-
-commit 0adfa0ec076196275a3cf034ba3ce82ffbcd2fbd
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Nov 11 00:24:07 2019 +0100
-
- CI: Cleanup of job templates
-
- Env templates were used for separate IPv4/IPv6 build, that is no longer
- needed.
-
-commit 6a314d26cbcc0e75c872d6c222f93661049466b7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Nov 10 22:58:23 2019 +0100
-
- CI: Update new netlab location
-
-commit 148bd9ee92c55ba23be2d60a278dfa7ad0005971
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Nov 10 03:43:30 2019 +0100
-
- CI: Minor update
-
-commit faa43a755eba5194c50fae20dddc0e3837fe5dc5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Nov 10 03:02:58 2019 +0100
-
- Apply relevant changes from branch mh-test-gitlab
-
-commit 5176455f1a4506e9397e23895e1de525c3c190c9
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Nov 1 00:13:59 2019 +0100
-
- Gitlab test
-
-commit 5ea39eaa96625ec8274703b1eb2c8f59042a8a32
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Sep 9 02:55:32 2019 +0200
-
- Nest: Use bitmaps to keep track of exported routes
-
- Use a hierarchical bitmap in a routing table to assign ids to routes, and
- then use bitmaps (indexed by route id) in channels to keep track whether
- routes were exported. This avoids unreliable and inefficient re-evaluation
- of filters for old routes in order to determine whether they were exported.
-
-commit af02b83b888c693c292960072195f0e1caf1d2a1
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Sep 9 02:43:39 2019 +0200
-
- Lib: Basic and hierarchical bitmaps
-
- Basic bitmap is obvious. Hierarchical bitmap is structure of several
- bitmaps, where higher levels are conjunctions of intervals on level
- below, allowing for efficient lookup of first unset bit.
-
-commit d033e6327d1e63f5d212981fca785b5086491905
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 26 16:43:09 2019 +0100
-
- CLI: Fix continuation lines after final one
-
- Continuation lines may use short form (with space instead of message
- number), but this should not be done when previous line is final.
-
- Thanks to Kenth Eriksson for the bugreport and analysis.
-
-commit 0f88200247cc61175c7a1d98a3e935aedce93f3b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Nov 18 17:44:34 2019 +0100
-
- BGP: Fix processing of IPv6 Flowspec
-
- During NLRI parsing of IPv6 Flowspec, dst prefix was not properly
- extracted from NLRI, therefore a received flow was stored in a different
- position in flowspec routing table, and was not reachable by command
- 'show route <flow>'.
-
- Add proper prefix part accessors to flowspec code and use them from BGP
- NLRI parsing code.
-
- Thanks to Alex D. for the bugreport.
-
-commit 53401bef63013dfee01b65d071ffbd88e457539f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 12 18:13:21 2019 +0100
-
- Netlink: Handle IPv4 routes with IPv6 nexthops
-
- Accept RTA_VIA attribute in all cases. The old code always used
- RTA_GATEWAY for IPv4 / IPv6 and RTA_VIA for MPLS. The new code uses
- RTA_VIA in cases where AF of network and AF of nexthop differs.
-
-commit 0b228fca04c8a9a81af6a4973877ceba9aede3f0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Nov 10 02:06:07 2019 +0100
-
- BGP: Add option to enforce first AS in AS_PATH
-
- This is optional check described in RFC 4271. Although this can be also
- done by filters, it is widely implemented option in BGP implementations.
-
- Thanks to Eugene Bogomazov for the original patch.
-
-commit becda5638a8ff8b056ec04b5e156e86b168cb9ef
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 5 16:29:47 2019 +0100
-
- Doc: Minor fix
-
-commit d54a69ac7f0a29846cd9dbc697d1d369f51988bb
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 5 16:00:25 2019 +0100
-
- Doc: Add documentation for BGP option 'allow as sets'
-
-commit 10c4cd9677555e88a4ac8c95784aa281655e3326
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 5 15:14:57 2019 +0100
-
- Filter: Add type info for more instructions
-
-commit 87512e97516160ec980e9d0621522ada405438fe
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 5 15:13:57 2019 +0100
-
- Filter: Improve typecheck error messages
-
-commit c00c20a79941b2bbed9e957134259763dcbb29f0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Oct 23 22:56:23 2019 +0200
-
- Filter: Better constant promotion
-
- We use constant promotion from IPv4 to Router-ID values, as they have
- same literals. Instead of ad-hoc code in filter instructions, add
- constant promotion code to parse-time typecheck code.
-
-commit 26194bd684b2926740a74ebdfe73e6afc3c145b6
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Oct 23 22:53:23 2019 +0200
-
- Filter: Improved parse-time typechecks
-
-commit 6fbcd8914aa2b0e0f50c6f20a15cd6eb1ba44497
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Oct 22 19:19:36 2019 +0200
-
- Filter: Parse-time typechecks
-
- Most expressions can be type-validated in parse time. It is not
- strong enough to eliminate runtime checks, but at least one gets
- errors immediately during reconfigure.
-
-commit a52476c9be41e8d33e4a22e3dc733240ce791b42
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Nov 4 22:07:03 2019 +0100
-
- BGP: Add option to reject AS_SETs
-
- There is a pending draft to make them obsolete
-
-commit 0edf0c8cd919a8b3fbf5bc036f27ea0b4ed0b91a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Nov 3 20:26:54 2019 +0100
-
- Support for address family constants
-
- We already had them defined on BGP level, but they are more general.
-
-commit 08c4c9a30b7ed61be39ddc71aebd69a0fea6a55a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Nov 3 20:25:42 2019 +0100
-
- Nest: Fix bug in export table
-
- For regular channels do not compare src in export table, as we want to
- keep here only the best (exported) route per network.
-
-commit be7c1aef429092bb90167a7f1b5c33b74a8030c2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Oct 26 01:28:38 2019 +0200
-
- BGP: RFC 8654 got released
-
-commit 498d8145c0984acf6b39d7e312950315571e7030
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Oct 25 13:28:51 2019 +0200
-
- Nest: Fix primary flag in show route
-
- The route is changed by rte_make_tmp_attrs(), so we need to compare
- net->routes to the original one.
-
- Thanks to Kenth Eriksson for the bugreport.
-
-commit ec331acf48535211fb5b50c87e74bf1c8370283a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Oct 24 17:47:45 2019 +0200
-
- BGP: Fix handling of transitive extended communities
-
- Transitive extended communities should be removed on external sessions,
- the old code them in all cases.
-
- Thanks to Jean-Daniel Pauget for the original patch.
-
-commit 5ce881be82d6698c32e36add9ed6e1643150c3f3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Oct 22 16:20:38 2019 +0200
-
- Accept uppercase letters in iproute2 names
-
- Names read from texfiles in /etc/iproute2/* are normalized by replacing
- non-alphanumeric chars with underscore. The patch fixes handling of
- uppercase letters, which were handled as non-alphanumberic.
-
- Thanks to Igor Gavrilov for the bugreport.
-
-commit f9eb9b4cab65b850c61738dd56632bae0e7329ca
-Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-Date: Sat Oct 19 12:50:27 2019 +0200
-
- Nest: Fix build without protocols
-
- (CHECK keyword added by commiter)
-
-commit 4e23b499696da81acf0ed5ad181573b94ccdb9a3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Oct 19 03:37:43 2019 +0200
-
- RPKI: Fix handling of IPv6 cache addresses
-
- The old code used just sizeof(struct sockaddr) bytes of IP address.
-
-commit b000a94275d7bb81868b9d6ad7582e5a3939532a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Oct 11 00:18:38 2019 +0200
-
- NEWS and version update
-
-commit 6c9cda6f924ec400e6e55ed009bfaf7a7fd9819d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Oct 10 23:33:40 2019 +0200
-
- BGP: Fix reconfiguration with import table
-
- Change of some options requires route refresh, but when import table is
- active, channel reload is done from it instead of doing full route
- refresh. So in this case we request it internally.
-
-commit eeb2c61653cb8a912a1c92ad3b98932245c2c202
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Oct 10 22:43:41 2019 +0200
-
- Doc: Minor documentation fixes
-
- Thanks to Christoph for the bugreport.
-
-commit 843b10c8b0c28ed3bea9a37b166500aabf5e930f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Oct 10 15:25:36 2019 +0200
-
- Nest: Handle non-MPLS on MPLS case in recursive route update
-
- When non-MPLS recursive route resolves to MPLS underlying route,
- then it should get MPLS labels from the the underlying route.
-
-commit 9eace84342bc879abf371a84f8af3bd697e1c0a2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Oct 10 15:06:32 2019 +0200
-
- Nest: Handle PtP links in recursive route update
-
- Underlying (IGP) route may lead to PtP link, in this case it does not
- need gateway. Which is different than direct route without gateway.
-
- When recursive (BGP) route uses PtP route, it should not use recursive
- next hop as immediate next hop, while for direct routes it should.
-
-commit cb2b6e0494e685fc4cce52a1d449ffd69bec351e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Oct 10 14:01:16 2019 +0200
-
- Nest: Fix recursive route update
-
- Missing cleanup can lead to dangling pointer to old next hops.
-
-commit 09ee846d9275b4cb0b77f7e458aba6a71b111c52
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Sep 28 14:17:20 2019 +0200
-
- BGP: AIGP metric support (RFC 7311)
-
-commit 759b204be33fa8485c9e28038ee029a49e2e9d3f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Oct 1 17:01:29 2019 +0200
-
- Lib: Support for 64-bit numbers in bvsnprintf()
-
- Use 'l' for s64/u64 instead of for long/ulong, as that is much more
- useful. Also make number() correct with regard to signed/unsigned
- typecasts.
-
-commit cc95b4594ac924b40325a4f1adcae5312179db40
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Sep 30 13:54:14 2019 +0200
-
- Build: Pass -g to cc called as linker to explicitly keep debug info
-
-commit d6eea6caee187dc5f6d8ed585a59031039a5c523
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Sep 23 15:41:55 2019 +0200
-
- Testing measures times
-
-commit 368f70604f347e310ca70828bfdd2504fd116064
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Sep 25 16:37:16 2019 +0200
-
- LTO: debug info also kept with the final binary
-
-commit 6dda6931d1d8f99d944d85770e235bfe75db0eb6
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Aug 21 17:35:27 2019 +0200
-
- Perf: allow testing with cached route attributes.
-
-commit 15a758378716a0af1d198c55d56a66da4ef08c93
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Oct 8 14:20:25 2019 +0200
-
- Doc: Fix duplicated lines
-
- Thanks to elados93 for the patch.
-
-commit c41a914d6e9be91cda40c7e7c05a8b4f2b515089
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Sep 30 13:53:24 2019 +0200
-
- Testing: Don't call vsnprintf with NULL format
-
-commit 24493e9169d3058958ab3ec4d2b02c5753954981
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Oct 4 12:20:02 2019 +0200
-
- Fixed undefined behavior on signals.
-
- The C11 specification allows only sig_atomic_t and _Atomic variable
- access. All other accesses to global variables are undefined behavior.
-
- Using int was probably OK on x86 and x86_64; yet there were some reports
- from other architectures (especially some MIPS) that in rare cases,
- after issuing SIGHUP, BIRD did strange things.
-
-commit 4821251ebb13c05e8752f6f54b8e5ad6d87fecaa
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Sep 30 19:10:14 2019 +0200
-
- BFD: Fix reconfiguration of neighbors
-
- The bfd_reconfigure_neighbors() returned after first reconfigured
- neighbor instead of continuing with the next one.
-
- Thanks to Winston Chen for the bugreport and a patch.
-
-commit ca2dacfcee92d8cfecff74dd020c2d16202b0d5c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Sep 24 17:12:15 2019 +0200
-
- Nest: Fix bug in export table
-
- Exported route may be in modified state, we need to get cached one for
- rte_same() and rta_clone() to work properly.
-
-commit ea0917bcba86d354f9c8516a4f114c38d04f890b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Sep 24 00:18:48 2019 +0200
-
- Filter: Fix eval command
-
-commit 9c79022153c6ef3a6c35b2db8be6b259104e67f3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Sep 22 23:32:22 2019 +0200
-
- Nest: Fix help for 'graceful restart' command
-
- Multi-worded commands are not automatically added to top-level
- help output.
-
- Thanks to Christoph for the bugreport.
-
-commit 3f477ccb03ed99cf6754baaca179fcf791bcda55
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Sep 20 10:16:51 2019 +0200
-
- Filters: Function body comparison result now used.
-
- Function bodies were compared in post-parse time, yet the result was not
- used and the functions were incorrectly considered the same as before.
-
- Now the result is used to reload affected protocols.
-
-commit eb1e43a9af9e1905b754f1f191d228e2676ce181
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Sep 17 14:45:14 2019 +0200
-
- BGP: Fix setup with multiple dynamic BGP ranges
-
- Based on a patch from Liam Nattrass, thanks.
-
-commit 5235c3f78da15826b0654ba68dc7a897faa42c98
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Sep 10 17:34:41 2019 +0200
-
- NEWS and version update
-
-commit 532471967e6d92ae7a480367cc6d935cca75c7b2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Sep 10 17:28:06 2019 +0200
-
- Doc: Update BGP mask documentation
-
-commit 452e90ba72f57c44b44f9940ac951d2fde417583
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Sep 10 13:45:18 2019 +0200
-
- Filter: Fix crash with 'where' filters and function calls
-
- The old 'where' code computed size value incorrectly, which leads
- to invalid instruction lines and filter errors or crashes.
-
-commit 1127887a8b111dab18c592f1f3f575920f38bfe3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Sep 9 13:17:30 2019 +0200
-
- BGP: Fix handling of bgp_aggregator atttribute
-
- The attribute should not be modifiable by filters as we do not
- support its type.
-
-commit 8388f5a7e14108a1458fea35bfbb5a453e2c563c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Sep 9 03:13:35 2019 +0200
-
- BGP: Fix bugs in handling of shutdown messages
-
- There is an improper check for valid message size, which may lead to
- stack overflow and buffer leaks to log when a large message is received.
-
- Thanks to Daniel McCarney for bugreport and analysis.
-
-commit 56d8b1e7f6252158caf0ecd3147376b858b16d97
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Aug 29 20:58:16 2019 +0200
-
- OSPF: Fix 'show ospf lsadb' cmd without proto arg
-
- It crashed when used without protocol argument.
-
- Thanks to Alexander for the bugreport.
-
-commit 32a254050d3da57ca6d7627aa606a8dce11907ee
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Aug 26 21:53:56 2019 +0200
-
- Channel refeed with import table splitting between routes for one prefix
-
-commit 5ab3447de18235de566eb5116c0aec24050f5f85
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Aug 21 17:30:00 2019 +0200
-
- Sysdep: Drop supplementary groups when dropping GID
-
- We forgot to do that. Oops.
-
-commit 4fa0e472cf3e8c61a3f67e91d201dbc12ea94221
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Aug 21 17:16:08 2019 +0200
-
- BGP: Use reallocation for capability structure
-
- Instead of having large stack buffer for max amount of AFI/SAFI pairs.
- The old code is not correct w.r.t. extendeded option length, as more
- AFI/SAFI pairs may fit into the capability option.
-
-commit 524d2538537b2530bf031daa1d5c8e4653f92c5c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 20 19:12:59 2019 +0200
-
- BGP: Implement extended optional parameters length
-
- Extends BGP options/capabilities data length to 16bit, to avoid issues
- with too many capabilities. See draft-ietf-idr-ext-opt-param-07
-
-commit a297a4f044bcc7c38549710a720bc1f97df9ba65
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 13 18:57:40 2019 +0200
-
- Nest: Fix crash in route reload when some channels are not up.
-
- Only channels that are up can be reloaded.
-
-commit b7d7599ce3576f28310af18b403fed49a0840b67
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 13 18:22:07 2019 +0200
-
- BGP: implement Adj-RIB-Out
-
- The patch implements optional internal export table to a channel and
- hooks it to BGP so it can be used as Adj-RIB-Out. When enabled, all
- exported (post-filtered) routes are stored there. An export table can be
- examined using e.g. 'show route export table bgp1.ipv4'.
-
-commit dfe63ed84d42178a53b01071c64f23250e74d6d9
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Aug 13 16:45:27 2019 +0200
-
- Filter: Fixing empty block and never-executed-statement bug
-
-commit 70a4320bdd44122d7a93bc71c77a9d684b3c9adc
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Aug 12 00:41:36 2019 +0200
-
- RAdv: Allow solicited RAs to be sent as unicast
-
- Add option to send solicited router advertisements as unicast directly
- to soliciting nodes instead of as multicast to all-nodes group.
-
-commit 9f3e09832081bc029dc98ae6dda49ee86d138fde
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 6 18:54:19 2019 +0200
-
- Filter: Allow to use set constants / expressions in path masks
-
- Allow to not only use set literals in path masks, but also existing
- set constants or set expressions.
-
-commit ef113c6f725349a2ab52f3cbef18403f82c84134
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 6 16:58:13 2019 +0200
-
- Filter: Allow to use sets in path masks
-
-commit e2b530aa729f9c5973e498b45dd6f55ab669d1ac
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 6 15:29:06 2019 +0200
-
- BGP: Improve reconfiguration
-
- Several BGP channel options (including 'next hop self') could be
- reconfigured without session reset, with just route refeed/refresh.
- The patch improves reconfiguration code to do it that way.
-
-commit f6a6a77640a9749c79a91300d130ba6b5941d408
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 6 15:09:42 2019 +0200
-
- BGP: Fix 'deterministic med' to work with 'merge paths'
-
- The 'deterministic med' option is implemented by suppressing other than
- best-in-group routes (grouped by ASN) from best route selection. This
- interferes with 'merge paths' as supressed routes are no longer mergable
- with best route. This is fixed by suppressing only those routes that are
- not mergable with best-in-group route.
-
-commit 8c42205e35e24537122a4c821bd3128d698abf1b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 6 14:53:02 2019 +0200
-
- Configure: CFLAGS update
-
- - add -flto only to default CFLAGS
- - add -fno-strict-aliasing, -fno-strict-overflow always
- - remove -Wno-implicit-fallthrough
-
-commit cc02da816fb062c93b4f0d61b0cfa02b673a5e00
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Aug 1 14:49:03 2019 +0200
-
- Show LDFLAGS in configure
-
-commit 3ffb0c4f25eff926989867b4a7f604f54d68281b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Aug 1 14:45:23 2019 +0200
-
- Enable more threads for flto
-
-commit de41d24a3d67c98d7330551bcf7549c007b89ae8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Aug 1 14:27:20 2019 +0200
-
- Fix output of CFLAGS in configure script
-
-commit 543875e080969876c33d365474589899c1f960e3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jul 31 23:35:29 2019 +0200
-
- NEWS and version update
-
-commit 96e4d0960c2b1bb01dc90ebfe341af8e4284090a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jul 31 19:45:29 2019 +0200
-
- Change 'graceful down' command to 'graceful restart' and update docs
-
- The command initiating planned graceful restart including bird shutdown
- should be called 'graceful restart' instead of 'graceful down', as the
- later should be reserved for graceful shutdown in style of RFC 8326.
-
-commit 8c703ecf73d7ccbd5e767858ba47a5f3ad0bc439
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 30 19:21:06 2019 +0200
-
- Doc: Update documentation about VRFs and BFD
-
-commit 2de1e2062eba66893a36f5a84f922c880ab6c351
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Jul 30 14:28:40 2019 +0200
-
- Conf: Fixed symbol redefinition
-
-commit 48addc88be27c46d83805ec2854bf1b5e0f0ddb3
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Jul 30 12:11:49 2019 +0200
-
- Log: Fixed race condition in reconfigure while BFD is running
-
-commit 3b62417c356796a35229ce07238abf98fb569ccb
-Author: Vincent Bernat <vincent@bernat.ch>
-Date: Mon Jul 29 15:42:30 2019 +0200
-
- RPKI: Fix allocation of hostname when using an IPv6 address
-
-commit 00284f0ed67370c7c697adf20b08840482ea18ea
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jul 25 14:24:16 2019 +0200
-
- BFD: Fix formatting of 'show bfd sessions'
-
- The formatting was broken due to longer date in 'since' column.
-
-commit cec40a74679821513e627f93b924067a404f6475
-Merge: 18f70a62 8263690e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jul 24 15:38:32 2019 +0200
-
- Merge remote-tracking branch 'origin/mq-filter-stack'
-
-commit 18f70a6229f586d5e4f387075be42d7a1ef5d269
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jul 24 15:08:03 2019 +0200
-
- Nest: VRF of protocol can be explicitly specified as 'default'
-
- Protocol can have specified VRF, in such case it is restricted to a set
- of ifaces associated with the VRF, otherwise it can use all interfaces.
-
- The patch allows to specify VRF as 'default', in which case it is
- restricted to a set of iface not associated with any VRF.
-
-commit 048c2f0e8cc1451b1fa48e915e0bb5e124aa9d26
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 23 17:02:41 2019 +0200
-
- OSPF: Fix formatting of 'show ospf neighbors'
-
- The formatting was broken when too short router-id was used.
-
-commit 15b0a9229431dc75425c229b2f94e680db49d594
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 23 01:52:18 2019 +0200
-
- RPKI: Fix reconfiguration when ssh parameters are undefined
-
-commit d843c274781bf9d30bfba93229b9f02a88f26fe2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jul 18 02:39:35 2019 +0200
-
- Lib: Improve printf() tests
-
- Includes patch from Maximilian Eschenbacher
-
-commit 39edf4abcafda429f33f98c31ae11bf6a27ab18e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jul 18 01:57:26 2019 +0200
-
- Lib: Fix print of 64-bit router id
-
- Mismatched types to printf(). The old code coincidentally worked on amd64
- due to its calling conventions.
-
- Thanks to Maximilian Eschenbacher for the bugreport.
-
-commit cf7ff99513728e4e405508e5ccd7522289d4ec82
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jul 17 16:20:35 2019 +0200
-
- BFD: Support for VRFs
-
- Allow multiple BFD instances in separate VRFs, dispatch BFD requests
- according to VRFs.
-
- Thanks to Alexander Zubkov for notice and patches.
-
-commit 2eaf65ec607b68748744fa8e0d596cf1f3ba117a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Jul 15 18:16:55 2019 +0200
-
- Netlink: Fix parsing of multipath routes with MPLS labels
-
-commit 8235c4747dcc92de2ea991f78cdf9c6b8fa7f522
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Jul 15 16:23:18 2019 +0200
-
- Netlink: Use route replace for IPv4
-
- Use route replace netlink op instead of delete+add netlink ops for kernel
- IPv4 route replace. This avoids some packetloss during route replace.
- Still use the old behavior for IPv6, as some kernel bugs are hidden in
- IPv6 ECMP handling.
-
-commit 8263690e754a83b8f3c58bd0080a1628d6cba556
-Merge: efd7c87b 1aec7112
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 15 16:07:16 2019 +0200
-
- Merge remote-tracking branch 'origin/master' into mq-filter-stack
-
-commit efd7c87b5bcd476ba74ffe9f369e2f6fe978cbb1
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 15 15:43:47 2019 +0200
-
- Filter: further split of print & die to FI_PRINT, FI_FLUSH and FI_DIE
-
-commit 3782454e8dead1184e698fa84f7491182b54454e
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 15 15:23:35 2019 +0200
-
- Filter: Simpler filter context allocation
-
-commit f634adc7dcf8cfc2a8ea8a61fe2f85d8aadf5a75
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 15 15:17:04 2019 +0200
-
- Filter: FID_MEMBER debug string is a C constant string
-
-commit c0999a149c223fa9c622552a314c767e6a640bf6
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 15 15:12:18 2019 +0200
-
- Filter: Converted FI_PRINT and FI_PATHMASK_CONSTRUCT to VARARG
-
-commit c29d73a06a8052f653e85f6472c663f70f6706cc
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 15 15:06:52 2019 +0200
-
- Filter: fixed excessive stack allocation in functions with args but no local vars
-
-commit 0da06b7103a5601fb7c224ab82a6d3799cb55308
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 15 13:19:01 2019 +0200
-
- Filter: lots of documentation
-
-commit 1b9db6d4a7d8ab9f3ada5d21f8f05c3c8bf3c2e2
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 15 12:03:47 2019 +0200
-
- Filter: Don't write out when re-evaluating filter for internal purposes.
-
-commit 547be53b8cefc6d346cf13dcedb3e527c3472b06
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 15 12:03:13 2019 +0200
-
- Filter: Don't fail badly when trying to access non-existent route in config time
-
-commit 1aec7112f7314c3e9a4d8b9440dd85a782295310
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jul 10 18:25:36 2019 +0200
-
- OSPF: Fix handling of NSSA option flags
-
- Per RFC 3101, N-bit signalling NSSA support should be used only in Hello
- packets, not in DBDES packets. BIRD since 2.0.4 verifies N-bit in
- neighbor structure, which is learned from DBDES packets, therefore
- NSSA-LSAs are not propagated to proper implementations of RFC 3101.
-
- This patch fixes that. Both removing the check and removing N-bit from
- DBDES packet. This will fix compatibility issues with proper
- implementations, but causes compatibility issues with BIRD 2.0.4.
-
-commit bfa15a642f8e262af5c18ba5898597a20bdf4e2f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jul 10 16:46:31 2019 +0200
-
- Filter: Minor cleanups
-
-commit b2a4feeb4c877ff56d9b2ebd8119225c53ea40db
-Merge: eac9250f 422a9334
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Jul 10 11:27:08 2019 +0200
-
- Merge branch 'master' into mq-filter-stack
-
-commit 422a9334294dd9a5b13abd8563a3dc7233e64b13
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Jul 10 11:12:41 2019 +0200
-
- Debug: growing message format buffer
-
- This led in corner cases to undefined buffer content
- and garbage output.
-
-commit deb84d79896cca3ac10ff9f853604f845c9420a7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 9 15:57:46 2019 +0200
-
- OSPF: Minor fix in graceful restart
-
- Most LSA origination is blocked in ospf_update_topology(), this fix
- blocks LSA origination from ospf_rt_spf().
-
-commit e840cb9cd54162efca72137f53fddbb0e490d6fe
-Author: Vincent Bernat <bernat@luffy.cx>
-Date: Tue Jul 9 15:25:40 2019 +0200
-
- Doc: Fix typo in BGP dynamic names feature description
-
-commit 74a38adb6b4b4bf2a67e7a779a7c95b0ef1b9894
-Merge: 1322e205 2872ab92
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Jul 9 14:53:15 2019 +0200
-
- Merge branch 'master' of gitlab.labs.nic.cz:labs/bird
-
-commit 1322e205e2066c0da8526bed505dc699d0f5b92a
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Feb 8 11:19:04 2019 +0100
-
- Test: Fixed annoying warnings (and possible obscure bugs).
-
-commit bb001af0e8022f6445ff50b7f32c9ac102cc244e
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Jul 9 14:34:26 2019 +0200
-
- Test: better random u64 generator
-
-commit 2872ab927ecb94b1555f5e3c8bd33021261d0c54
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 9 03:48:02 2019 +0200
-
- OSPF: Update DR when local priority changes
-
- When priority is reconfigured locally, we need to trigger DR election.
-
- (recommiting, was reset by the previous commit)
-
-commit 85840d4c03552a69927b666774fa39921e7b1047
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 9 03:31:54 2019 +0200
-
- OSPF: Fix handling of external routes on graceful restart
-
- We need to flush learned external LSAs a bit later than other LSAs (after
- first feed after end of the graceful restart) to avoid flap of external
- routes.
-
-commit 05e3933c06b488e71c9c149c25aec9c733a8bd1f
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 8 13:04:50 2019 +0200
-
- Nest: Uninitialized variable fix
-
- Thanks to Vincent Bernat for reporting this.
-
-commit 2ce25ebbefd2eaf517361a446fe40679e78e23e9
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 8 13:00:13 2019 +0200
-
- Libdmalloc macros fixed
-
-commit fa1e0ba35416561bda3708ec808d24641dd8995f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jul 4 13:34:42 2019 +0200
-
- OSPF: Update DR when local priority changes
-
- When priority is reconfigured locally, we need to trigger DR election.
-
-commit eac9250fd5b10809830361b94438339b3b31b270
-Merge: 8816b6cd 026bfedb
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Jul 3 11:09:52 2019 +0200
-
- Merge branch 'master' into mq-filter-stack
-
-commit 8816b6cdd98d24535eece6b5e35730aac57cd9f7
-Merge: c376555c 84ac62d3
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Jul 3 08:44:42 2019 +0200
-
- Merge branch 'mq-filter-stack' of gitlab.labs.nic.cz:labs/bird into mq-filter-stack
-
-commit 84ac62d3967f5294f4dc208b803a273a101744a8
-Author: Maria Matejka <mq@jmq.cz>
-Date: Wed Jul 3 08:13:07 2019 +0200
-
- Filter: CLI command to dump all the linearized filters
-
-commit 0206c070ace90c48a806a74fac52ba6e6ff9858b
-Author: Maria Matejka <mq@jmq.cz>
-Date: Wed Jul 3 01:23:49 2019 +0200
-
- Filter: Split printing and dying
-
-commit 3265c9169dfc185ccdb787c6c83d9d8e2d0429c1
-Author: Maria Matejka <mq@jmq.cz>
-Date: Wed Jul 3 00:04:24 2019 +0200
-
- Removed obsolete comment at as_path_cut()
-
-commit 78976974e711e52c3b8fa6a80b290cf2fa4f692d
-Author: Maria Matejka <mq@jmq.cz>
-Date: Wed Jul 3 00:00:11 2019 +0200
-
- Dynamic attributes definition split whether it is bitmask or not.
-
-commit 263fa2c4a6bf226172a6aef9a6b8198a5901c5bf
-Author: Maria Matejka <mq@jmq.cz>
-Date: Tue Jul 2 22:57:00 2019 +0200
-
- Filter: Dropped some more irrelevant whitespace from generated files
-
-commit 59d3a3611f05c05040cec4bf09f31c26ade0fa0a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 2 18:23:06 2019 +0200
-
- Netlink: Handle alien routes with unsorted nexthops
-
- Nest requires that nexthops are sorted, the kernel protocol have to
- ensure that for alien routes.
-
-commit 84c58aabd0d7a6a3d1508de004a29fd22423fde6
-Author: Maria Matejka <mq@jmq.cz>
-Date: Tue Jul 2 17:59:21 2019 +0200
-
- Filter: Nicer whitespaces in generated inst-gen.h
-
-commit 550a6488c9e2241e2979317c04d6d73752618402
-Author: Maria Matejka <mq@jmq.cz>
-Date: Tue Jul 2 17:39:56 2019 +0200
-
- Filter: documentation of the M4 preprocessor
-
-commit 1187627a1dded6a3673c0d43033f431f15cd1b8f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 2 16:30:36 2019 +0200
-
- Netlink: Do unified scan for both IPv4 and IPv6
-
- Instead of separate scans for IPv4, IPv6 and MPLS, do one AF_UNSPEC scan.
-
- This also avoids kernel issue when kernel reported IPv4 and IPv6 routes
- during MPLS scan if MPLS is not active.
-
-commit c376555cecbfea83314e9f76bce5002185d3566a
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Jul 2 13:13:29 2019 +0200
-
- Filter: GCC, don't complain about indentation in generated code.
-
-commit b40c0f028f37086991fefa9197708ba8c7b3d571
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Jul 2 10:45:53 2019 +0200
-
- Filter: Pre-evaluation of constant expressions
-
-commit 30667d50417f926fc948905aaab3e679b416b2e1
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 1 14:12:05 2019 +0200
-
- Filter: Resolving of defined constants in config time
-
-commit 26bfe59f450c2497dabc536c3e2a604e8aa5839a
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 1 13:13:06 2019 +0200
-
- Filter: Moved singleton member definitions to f-inst.c
-
-commit 4212c0e7e5647e107e6e06238a417afc44fd7f75
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 1 12:49:02 2019 +0200
-
- Filter: Moved f_inst allocation to separate function
-
-commit f74d19765ea3fafdff8fd3443f50a7b309babe89
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 1 12:07:06 2019 +0200
-
- Filter: Getting rid of RESULT_OK. Adding RESULT_VOID.
-
- This is a preparation for filter pre-evaluation.
-
-commit 236828d06f512b44457970795e44068d9d38ad3e
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jul 1 11:57:35 2019 +0200
-
- Filter: The interpreter code now shares its diversion with constructor
-
- This is a preparation for filter pre-evaluation.
-
-commit 026bfedb332d8c0dde28c693c177fe993b5df26d
-Author: Maria Jan Matejka <mq@jmq.cz>
-Date: Tue Jun 11 13:19:21 2019 +0000
-
- BGP: Prefix hash is too small, increase its max size.
-
- This doesn't make any change for you until you have
- millions of updates waiting to be sent. Increasing
- the max hash size from 2^20 to 2^24.
-
-commit 9dac814ee89fe41856923a532c87ffd14dbc0f79
-Author: Maria Jan Matejka <mq@jmq.cz>
-Date: Tue Jun 11 09:35:25 2019 +0000
-
- BGP: split tx explicitly
-
- If BGP has too many data to send and BIRD is slower than the link, TX is
- always possible until all data is sent. This patch limits maximum number
- of generated BGP messages in one iteration of TX hook.
-
-commit bb57d9171f2b4567f54169c8864953c4e5e18025
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Jun 30 22:30:56 2019 +0200
-
- Add mock-up function for unit tests
-
- They failed without it.
-
-commit 6c0f85d5de1588b6427f6f47c1be4a220799cd70
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Jun 30 22:11:11 2019 +0200
-
- Doc: OSPF graceful restart options
-
-commit 1a2ad348f660b150265f6df759a07de8a2b6de2f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Jun 30 20:12:59 2019 +0200
-
- OSPF: Support for graceful restart
-
- Implement OSPFv2 (RFC 3623) and OSPFv3 (RFC 5187) graceful restart,
- for both restarting and helper sides. Graceful restart is initiated
- by 'graceful down' command.
-
-commit 8a68316eb96be1fecf91ca395f3321aa99997ad2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jun 18 16:27:21 2019 +0200
-
- Nest: Add command to request graceful restart
-
- When 'graceful down' command is entered, protocols are shut down
- with regard to graceful restart. Namely Kernel protocol does
- not remove routes and BGP protocol does not send notification,
- just closes the connection.
-
-commit 63f49457dcc4216002742166dfecce751efa78d5
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Jun 28 11:08:48 2019 +0200
-
- Filter: renaming pointers for consistency
-
- The struct f_inst * is now always "what"
- and the union member pointer is always "whati".
-
-commit 64bb1346c71cbd2764b1e0a00dc88290bec72a5a
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Jun 27 15:55:48 2019 +0200
-
- Filter: A little cleanup of M4 interpreter generator
-
-commit a8ab54d18d3af8e7dc9811ab8e3ba9a105131a25
-Merge: 63e76204 2e077731
-Author: Maria Matejka <mq@jmq.cz>
-Date: Tue Jun 25 22:40:05 2019 +0200
-
- Merge remote-tracking branch 'refs/remotes/origin/mq-filter-stack' into mq-filter-stack
-
-commit 63e7620462b80c9c6bbbd4f128b6816e0748d6c6
-Author: Maria Matejka <mq@jmq.cz>
-Date: Tue Jun 25 16:18:06 2019 +0200
-
- Conf/Filters: Moved argument count to conf scope
-
-commit 2e0777317f373921487d80e88c376d23a842ba2c
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Jun 21 11:33:28 2019 +0200
-
- Filter instructions don't confuse now v1 and res.
-
-commit a84b8b6ebb2b6825b7059e34cfaafe405ab0117e
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Jun 19 14:09:57 2019 +0200
-
- Revert "Filter: Dropped the setter instructions in favor of direct result storage."
-
- This reverts commit bd91338246c1ba40358243f1bdf5a6dbd3a29f35.
-
-commit 5c864e2cfaf5ff5e8e3db3ccd746162fbc7aac5b
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Jun 13 14:27:58 2019 +0200
-
- String: bstrtoul macro expanded to bstrtoul10 and 16
-
-commit 87c82334a77dfa3fea3057fa6d4bcf8558f203a4
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Jun 13 14:24:48 2019 +0200
-
- Filter: removal of semantically insane consts in filter_commit
-
-commit bdf2e55d98636eacaac8188ee0bd000cc10d217c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 12 18:02:01 2019 +0200
-
- Add mock-up function for unit tests
-
- They failed without it.
-
-commit 9106a750cd76d4a76c7a60294ce3a43eede166c9
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 12 16:13:21 2019 +0200
-
- Add CLI command to test reconfiguration status
-
- Based on patch from Kenth Eriksson <kenth.eriksson@infinera.com>.
-
-commit 8a2cbb88d1657b4aee366605cb3d8ffcc5d3f90a
-Author: Kenth Eriksson <kenth.eriksson@infinera.com>
-Date: Wed Jun 12 15:03:37 2019 +0200
-
- BIRD coding conventions
-
- Added Emacs config file describing BIRD coding conventions, as suggested
- by Kenth Eriksson based on existing practice.
-
-commit d35fb9d732b05f20a556e9bda798939358459975
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 12 16:35:42 2019 +0200
-
- BGP: Fix bug introduced in one of last patches
-
-commit bd91338246c1ba40358243f1bdf5a6dbd3a29f35
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri May 31 17:33:41 2019 +0200
-
- Filter: Dropped the setter instructions in favor of direct result storage.
-
- This should help filter performance a bit.
-
-commit aa6c5f4d92f225452e432991671e7bdad185506a
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu May 30 14:42:54 2019 +0200
-
- Filter: Just a little comments in filter structure
-
-commit 1757a6fce5bd23c44cc5b72a042644c4abb744c8
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed May 29 21:03:52 2019 +0200
-
- Filter: Stacks moved to thread-local storage if available.
-
-commit 6479e403ef7398f48c0e1c0f1a71aa112938a357
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Thu May 23 11:27:24 2019 +0000
-
- Filters: If somebody doesn't like _Thread_local, don't fail for now, just be a little slower.
-
- When the parallel execution comes into place, we'll likely enforce this
- C11 feature. It's much simpler and also faster than pthread_[sg]etspecific().
-
-commit 23e3b1e6652bac4a003a7eb1e074bdaf7ebb4900
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Wed May 22 15:16:32 2019 +0000
-
- Filter: Some people can't pronounce "postfixify" correctly. Let's try "linearize" instead.
-
- This is just a naming change.
-
-commit 96d757c13fe4b2e21b265275af9ac7d1e2c3f075
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue May 21 16:33:37 2019 +0000
-
- Filter: Store variables and function arguments on stack
-
-commit 20c6ea70ccb69f3c1d9ca46cc7941eb686f283c6
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Mon May 20 17:53:10 2019 +0000
-
- Filter: Making the filter state thread local.
-
- While having the filter code still reentrant if we really need,
- the compiler can now do constant propagation and address the
- thread local storage directly to save some computation time.
-
-commit 9eef9c648cee7179e069ea1f978d4e86cef580d3
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri May 17 22:18:49 2019 +0200
-
- Lexer now returns known sym / unknown sym / keyword
-
-commit dbbe4a783b3d4e7722bcb466673f8a1d2832fc7b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Apr 30 16:16:50 2019 +0200
-
- Doc: Dynamic BGP
-
-commit 7ff34ca2cb86f3947bf049f73e76e6ce5d57e4a8
-Author: Alexander Azimov <a.e.azimov@gmail.com>
-Date: Tue Apr 30 13:55:43 2019 +0200
-
- BGP: Compliance with RFC8203bis
-
-commit 0b1e1e1a007f860230855d0c9e8adc88969ee077
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Apr 30 13:44:11 2019 +0200
-
- BGP: Output Local AS number in show protocol
-
- Useful for implementation of agents implementing the SNMP-BGP MIB, which
- requires the local AS of a session to be specified.
-
- Thanks to Jan-Philipp Litza for the patch.
-
-commit e0835db4f137c1686c26165053ec9c0578b94009
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Apr 8 17:05:07 2019 +0200
-
- BGP: Dynamic BGP
-
- Support for dynamically spawning BGP protocols for incoming connections.
- Use 'neighbor range' to specify range of valid neighbor addresses, then
- incoming connections from these addresses spawn new BGP instances.
-
-commit df092aa1def0419da74f15bd20582fab4ec09207
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Apr 24 13:49:18 2019 +0200
-
- Small type in doc.
-
-commit 6ff811976513132c831a352bd0aa0f3600252acb
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Apr 12 14:11:23 2019 +0200
-
- OSPFv3: Fix some overlooked cases in IPv4 mode
-
- Prefixes with max length (/32) were not handled properly.
-
- Thanks to bauen1 for the bugreport.
-
-commit 4a50c8bd0310053a3dcab45c8dde0362348c0503
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Apr 8 16:39:22 2019 +0200
-
- BGP: Handle corner cases in event ordering
-
- When BGP connection is opened, it may happen that rx hook (with remote
- OPEN) is called before tx hook (for local OPEN). Therefore, we need to do
- internal changes (like setting local_caps) synchronously with OPENSENT
- transition and we need to ensure that OPEN is sent before KEEPALIVE.
-
-commit 23ee6b1cd6dc597876d91db9a015f7a633764808
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Apr 3 15:54:50 2019 +0200
-
- BGP: Promiscuous ASN mode
-
- Allow to specify just 'internal' or 'external' for remote neighbor
- instead of specific ASN. In the second case that means BGP peers with
- any non-local ASNs are accepted.
-
-commit a22c3e59683d0ea6c379a37f990e74a6d281ccef
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Apr 2 17:22:31 2019 +0200
-
- BGP: Separate runtime and config usage of local/remote ip and as fields
-
-commit fe503c7c0632b385222c92b85d04526fdf36a1a3
-Author: Maria Matejka <mq@ucw.cz>
-Date: Sat Mar 23 13:32:14 2019 +0100
-
- Filter: fixed error-checking bug in !~ operator
-
-commit 7078aa63ae498b55c729df4a075eb28019917e81
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Mar 22 21:40:35 2019 +0100
-
- Fixed one warning and one undefined value.
-
-commit 2ab680c6972306db71d9a8d4ee4fabf265981d30
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 20 16:50:58 2019 +0100
-
- Fixed an undefined symbol bug in CLI introduced by filter refactoring
-
-commit 3a22a6e858cd703d254ab331183ccd56fe195c6b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 19 19:38:32 2019 +0100
-
- Doc: Route attribute cleanups
-
-commit 3c3605818fb304f8de6975c56096bfafa43a8b6b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 19 17:44:50 2019 +0100
-
- BGP: Mandatory option for channels
-
- Allow to mark channel to be mandatory, and do not allow BGP sessions if
- no common AFI/SAFI is established.
-
-commit 7e5f769d91319b4130f7d611dd14252806892ace
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Mar 15 20:54:01 2019 +0100
-
- BGP: Handle case where capabilites are not used
-
- If peer does not announce capabilities at all, or when we have
- capabilities disabled, handle that as implicit IPv4 unicast.
-
-commit 8d65add626b34256879a3e83855af3c0fa8ce4e7
-Merge: 2f02c25e 5d511948
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Mar 18 12:54:40 2019 +0100
-
- Merge branch 'master' into HEAD
-
-commit 5d511948cddee415c2f0f1103bda0468a193f2d6
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Mar 15 15:07:00 2019 +0100
-
- Build: Automatic dependency tracking for generated files
-
-commit 2f02c25e36f3946019c24dafe9b894a9e195350d
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Mar 7 18:02:05 2019 +0100
-
- Perf: fixed stupid allocation bug
-
-commit d638c1794a48dec79fa0a6c118296356754a134d
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 6 21:45:28 2019 +0100
-
- Gitlab CI: Drop CentOS 6 test build as unsupported.
-
- If someone wants to maintain BIRD for CentOS 6,
- feel free to send patches.
-
-commit 875cc073b067f295cccc668008e10218f8e98dd3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 14 17:22:22 2019 +0100
-
- Nest: Update handling of temporary attributes
-
- The temporary atttributes are no longer removed by ea_do_prune(), but
- they are undefined by store_tmp_attrs() protocol hooks. This fixes
- several bugs where temporary attributes were removed when they should
- not or not removed when they should be. The flag EAF_TEMP is no longer
- needed and was removed.
-
- Update all protocol make_tmp_attrs() / store_tmp_attrs() hooks to use
- helper functions and to handle unset attributes properly.
-
- Also fix some related bugs like improper handling of empty eattr list.
-
-commit 9aa77fccebc4d84b5e1496884cd124d09893041b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 6 18:14:12 2019 +0100
-
- OSPF: Improved handling of tmpattrs
-
- Keep track of whether OSPF tmpattrs are actually defined for given route
- (using flags in rte->pflags). That makes them behave more like real
- eattrs so a protocol can define just a subset of them or they can be
- undefined by filters.
-
- Do not set ospf_metric2 for other than type 2 external OSPF routes and do
- not set ospf_tag for non-external OSPF routes. That also fixes a bug
- where internal/inter-area route propagated from one OSPF instance to
- another is initiated with infinity ospf_metric2.
-
- Thanks to Yaroslav Dronskii for the bugreport.
-
-commit e1ac6f1e301416037725b631fd6529a805e65d51
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 6 15:01:10 2019 +0100
-
- Faster filters: documentation on what is happening there
-
-commit a68442e0563f5b756f9a7323cea44a25ce048738
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Feb 27 14:40:05 2019 +0100
-
- Fixed link time optimizer check for FreeBSD
-
-commit b9deced219cfda2afe8604b24351ae10ac56f98b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 26 18:19:35 2019 +0100
-
- NEWS and version update
-
-commit f249d0b84c840242a084966999a1d228c603b431
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Feb 26 16:44:24 2019 +0100
-
- Filters: comparison of functions and filters caching
-
-commit 0d12aa48363802e751d3b9a4afd6eb090592d7a3
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Feb 26 16:11:40 2019 +0100
-
- Build: No link time optimization when debug is enabled
-
-commit 2915e711f77d68dff756babd19af8da1677c4549
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Feb 25 23:28:36 2019 +0100
-
- Custom number parser to speed up config parsing
-
- The glibc's generic parser is slow due to its versatility. Specialized
- parsers for base-10 and base-16 are much faster and we don't use other
- bases.
-
-commit 99911873a196975f5221aad89ae5eac42e1330e0
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Feb 25 17:19:47 2019 +0100
-
- Conf: Lexer parses quoted strings in a more descriptive way
-
-commit 7c36eb3e8bd7d06f65dc7319d42b6abe782c5b89
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Feb 22 12:41:51 2019 +0100
-
- Conf: Switch for faster (and slightly bigger) lexer
-
-commit 412614c700085ac964b07ff9405403eaf02fa5b4
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Feb 22 12:41:51 2019 +0100
-
- Conf: Switch for faster (and slightly bigger) lexer
-
-commit 93af78d2d29ce11e20d46f60cfe1d3ef68052e5c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Feb 22 02:16:39 2019 +0100
-
- Nest: Do not compare rte.flags during rte_update()
-
- Route flags are mosty internal state of rtable, they are not significant
- to whether a route has changed. With the old code, all routes received as
- a part of enhanced route refresh are always re-announced to other peers
- due to change in REF_STALE.
-
-commit ad702bae0ce95ee1913327dd13a877e6bf9b320d
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Feb 20 22:14:28 2019 +0100
-
- Enabled link time optimization.
-
-commit d1039926f5ee5a4e0442919474f16f3c93385cc9
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Feb 19 12:34:16 2019 +0100
-
- Filter: Interpreter merged into the common m4 generator.
-
- The config-time partial evaluation of constant expressions in filters is nearby.
-
-commit 32793ab685b047b553d6f7afc23b3245e8850e4a
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Feb 18 14:57:15 2019 +0100
-
- Filter: Fixed bugs in FI_CALL and FI_SWITCH
-
-commit d348a916f57cb0ac390718295624dd9a1cf2d32a
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Feb 18 14:56:49 2019 +0100
-
- Test: Added -d flag to die directly after first error.
-
-commit d4bf74816faf9955297f93f8bb6973c1f600dbe2
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Feb 18 14:56:10 2019 +0100
-
- GDB: Added more pretty printers for filters
-
-commit ea4f55e3dcd472bb6d18c030839597ffd9583462
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Feb 15 23:59:44 2019 +0100
-
- Filter: More cleanup -- customized structures also in struct f_line_item
-
-commit 0b39b1cbb70c6f37a30a3130e1c308ddd0ba36de
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Feb 15 13:53:17 2019 +0100
-
- Conf: Symbol implementation converted from void pointers to union
-
- ... and consted some declarations.
-
-commit 132529ce8908661fd2baa0758c335006fb039ef0
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Feb 13 12:25:30 2019 +0100
-
- Filter: merged filter compare functions into common M4 file
-
-commit dd4d409551ae22d0a9bf4e3a6edc6fb9656911b9
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Feb 12 20:37:32 2019 +0100
-
- Filter: Merged postfixify routine
-
-commit de12cd18fb213ee9cc872fec77b789f34cfd7cc4
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Feb 12 14:16:28 2019 +0100
-
- Filter: Merged filter line item dumpers into common generated source
-
-commit b256f241459c51224a4bf428f4bc5dfa44882920
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Feb 12 11:35:41 2019 +0100
-
- Filter: auto-generating enum-to-string
-
-commit 041608129ab15b5eab6fb607c45ddd2d748295b5
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Feb 12 11:31:18 2019 +0100
-
- Filter generator: workaround for M4 claiming all the put-around code be on one line
-
-commit 5289304519918f62d099463123bf6c69a0dd497e
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Feb 11 17:12:48 2019 +0100
-
- Filter data manipulation functions separated to their file
-
-commit 87bd7cd7b03f24c9d7c37a2a060ef553f26ead29
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Feb 11 16:44:14 2019 +0100
-
- Filter: split the constructors to a separate file
-
-commit 75206f266f8534367b88401be463953b7d5dc770
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Feb 11 15:27:47 2019 +0100
-
- Conf: Fixed makefiles
-
-commit 4f082dfa892e95f86ca8137410992a248110b6ef
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Feb 8 13:38:12 2019 +0100
-
- Filter: merged filter instruction constructors, counting line size on instruction construct
-
-commit 0a793ebc6059f4354c62ccec62ef7c950988ca4a
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Feb 8 11:19:04 2019 +0100
-
- Test: Fixed annoying warnings (and possible obscure bugs).
-
-commit 8bdb05edb2b4e1d2989ed98d67992047ad69443c
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Feb 7 21:25:38 2019 +0100
-
- Filters: split the large filter.h file to smaller files.
-
- This should be revised, there are still ugly things in the filter API.
-
-commit c1e97169cd96ce39337e75cfdf6882b180341f09
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Feb 6 14:41:39 2019 +0100
-
- Filter: M4 convertors polished a bit.
-
-commit c0e958e022aac79f69e6aca2652fdb6a529e68e2
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Jan 30 14:03:47 2019 +0100
-
- Filter + Config: Fix bugs, tests and split symbols by type
-
-commit 713658798dfafabcd0a74f510c1639f6e3c9c820
-Author: Maria Matejka <mq@ucw.cz>
-Date: Wed Jan 23 17:08:27 2019 +0100
-
- GDB pretty printers: f_inst and f_val.
-
-commit 9b46748d5b50d1e8c242a571e80fe1f9f33aeb73
-Author: Maria Matejka <mq@ucw.cz>
-Date: Mon Jan 21 09:17:54 2019 +0100
-
- Filter: refactoring of instruction constructors
-
-commit 4c553c5a5b40c21ba67bd82455e79678b204cd07
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Dec 27 14:26:11 2018 +0100
-
- Filter refactoring: dropped the recursion from the interpreter
-
- This is a major change of how the filters are interpreted. If everything
- works how it should, it should not affect you unless you are hacking the
- filters themselves.
-
- Anyway, this change should make a huge improvement in the filter performance
- as previous benchmarks showed that our major problem lies in the
- recursion itself.
-
- There are also some changes in nest and protocols, related mostly to
- spreading const declarations throughout the whole BIRD and also to
- refactored dynamic attribute definitions. The need of these came up
- during the whole work and it is too difficult to split out these
- not-so-related changes.
-
-commit 967b88d9388b3800efed45798542cd0b41f2b903
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Dec 20 16:25:54 2018 +0100
-
- Filter refactoring: The instructions are converted to the switch body by M4
-
-commit 8436040735b84bb185311125bfc91375f740fd86
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Dec 20 16:07:59 2018 +0100
-
- Filter refactoring: Drop the roa check specific f_inst
-
-commit ca2ee91a80aa87b7f18898c28e93ff22cebf73d7
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Dec 20 15:25:04 2018 +0100
-
- Filter refactoring: The constant f_val is simply included inside the instruction
-
- With 32 bits, size of the args is 12 bytes, the f_val is 20 bytes.
- With 64 bits, size of the args is 24 bytes, the f_val the same.
-
- This is not so nice on 32 bits, anyway the f_inst itself is
- 24 vs. 32 bytes and the overall size of filters must be 32k of
- instructions to get to one megabyte of RAM eaten by f_inst.
-
- Therefore it seems to be improbable for common user to get into
- problems with this change.
-
-commit 7f0ac73724f7383a2bcc229910414d339dbd2434
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Dec 20 14:55:40 2018 +0100
-
- Filter refactoring: Changed arguments from separate unions to an array
-
-commit 224b77d4f786ea09bb2632476a89f0976baafd64
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Dec 20 14:34:35 2018 +0100
-
- Filter refactoring: Converted condition to three-args instruction
-
-commit 8e8b1fe48cfcb92d54e15df5198e8cef9bc3dd8e
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Dec 20 14:29:47 2018 +0100
-
- Filter refactoring: Some instructions eat up excessively much space.
-
-commit c577493908a9cda9008cc4043d0473b69fb2da66
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Dec 20 14:05:32 2018 +0100
-
- Filter refactoring: Expanded the short instructions with common code.
-
- This will make the further changes more straightforward.
-
-commit a8740d6c09547dd9fe445b3deb5238305c0a5959
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Dec 18 17:10:05 2018 +0100
-
- Filter refactoring: indentation fix
-
-commit fc8df41ec6cd5e6e3d53036a97dc7219dbbade5e
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Mon Dec 17 15:00:01 2018 +0100
-
- Filter refactoring: The values are now saved on a custom stack.
-
- This shall help with performance.
-
-commit 7afa1438866fa94454ba133608b6877171f71d37
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Mon Dec 17 13:51:11 2018 +0100
-
- Filter refactoring: Passing the resulting struct f_val as a pointer.
-
- This also drops the multiplexing of errors with the f_val itself
- together with the T_RETURN f_val type flag.
-
-commit f62a369fb48be066560d6e8f0df82eef9c464ef0
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Mon Dec 17 13:08:08 2018 +0100
-
- Filter refactoring: Moved filter instruction definition to a separate file
-
-commit 25566c68109381178e0305f3e7e1464dea15b90b
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Mon Dec 17 12:58:01 2018 +0100
-
- Filter refactoring: Moved the bitfield bit position formula to route.h
-
-commit aca8263926df6156322e1a1157886f1cad2486b1
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Mon Dec 17 12:48:33 2018 +0100
-
- Filter refactoring: Moved the interpret macros inside the block
-
-commit 02dcbf343d94dd548605c5efbf724f89d81d7258
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Mon Dec 17 12:45:21 2018 +0100
-
- Configure: Don't check for implicit fallthrough unless when debugging.
-
-commit a946317fab9776754192f679f38cb7789050c52d
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Feb 27 15:39:39 2018 +0100
-
- Filter: Converted static global variables to a filter_state struct.
-
- The static filter state was messy and blocked the planned parallel
- execution of filters. Anyway, this will be also slower as the state
- structure must be passed almost everywhere with us.
-
-commit ae294cc2d02ec02cbea11c275b64e7637ba0ea68
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 19 18:30:28 2019 +0100
-
- HTML are no longer generated in srcdir
-
-commit 900fda4411a5346f808a575101b1260b5f73fa93
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 19 18:20:07 2019 +0100
-
- Doc: Detect SP/OpenSP automatically
-
-commit 3a8ca7abbcf6452fa56d0c1c6ddcf7d5bd6876ed
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 19 16:26:09 2019 +0100
-
- Nest: Prevent withdraws from propagation back to source protocol (for accepted mode)
-
- Update for one of previous patches, handles the the issue for
- first-accepted mode of route propagation.
-
-commit bf8d7bba9ef3c6d95661f97dc71fa7a6b2cf0b87
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Feb 17 01:54:01 2019 +0100
-
- OSPF: Reset LSAs during area type change
-
- When area is reconfigured to a different type, we need to flush LSAs as
- they may not be valid (e.g. NSSA-LSA for non-NSSA area). Also, when we
- have have just one OSPF area and that changes type, we could restart OSPF
- as there is no state to keep anyway. That solves issue with different
- handling of external routes exported to OSPF based of main area type.
-
-commit 4a3f5b36173299d44e26dc18db4e5d103875f8c4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Feb 13 15:40:22 2019 +0100
-
- OSPF: Basic support for DN-bit handling (RFC 4576)
-
- External LSAs originated by OSPF routers with VPN-PE behavior enabled are
- marked by DN flag and they are ignored by other OSPF routers with VPN-PE
- enabled.
-
-commit 1e958e52d3ef0c38e5fb5e673bcce95d1c28ac0e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Feb 9 16:15:01 2019 +0100
-
- OSPF: Do not originate Router-Information LSA
-
- As we do not have much usage for it yet.
-
-commit cd16538fc91778e31f8241f62ee47056f099c051
-Merge: 6e8fb668 f9b97f1c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Feb 9 15:53:16 2019 +0100
-
- Merge remote-tracking branch 'origin/mq-opt'
-
-commit 6e8fb66859a17b295cd9246264221a75cdbe6c55
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 5 19:00:43 2019 +0100
-
- Nest: Improve export counter handling
-
- One of previous workarounds for phantom route avoidance breaks export
- counters by expanding sending of spurious withdraws, which are send when
- we are not sure whether we have advertised that routes in the past.
- If not, then export counter is decreased, but it was not increased
- before, so it overflows under zero.
-
- The patch fixes that by sendung spurious withdraws, but not counting them
- on export counter. That may lead to error in the other direction, but that
- happens only as a race condition (i.e., in normal operation filters
- return proper values about old route export state).
-
-commit 52fdd1cb76be1e278799001fa57f56888062dd86
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 5 15:59:26 2019 +0100
-
- Nest: Report preferred counters also when 'import keep filtered' is enabled
-
- Thanks to Michal Nowak for reporting the issue.
-
-commit a9b97cbcb74d918f3f606eb87a506712dccd2832
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Feb 3 20:22:40 2019 +0100
-
- OSPF: Send direct acknowledgements as unicast
-
- Direct acknowledgements should be send as unicast to a corresponding
- neighbor. Only delayed acks should be send as multicast to all/designated
- routers.
-
-commit 16605f2fdad730b8bb570e17192dc5f45cf15d3f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Feb 3 17:31:27 2019 +0100
-
- OSPF: Reject duplicate DBDES packets after dead interval
-
- Master may free last DBDES packet immediately. Slave must wait dead
- interval before freeing last DBDES packet and then reject duplicate
- DBDES packets with SeqNumberMismatch.
-
-commit 9c94583a3ded3b2792bd08d88beb10100a82d7b4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Feb 3 16:20:37 2019 +0100
-
- OSPF: DD seqnum should be initialized only for first attempts
-
- After SeqNumberMismatch/BadLSReq, we should continue with the old
- seqnum++. The old code tries to do that by n->adj, but it was set
- nowhere.
-
-commit 267da8138d7f429941f2d829b44cf9bdd94a14d6
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Feb 3 15:45:43 2019 +0100
-
- OSPF: Reject DBDES packets with non-matching MTU
-
- As it is specified in RFC 2328. The old code just provided warning.
-
-commit e1c275d87b26f35c29ec8bfab0a3265810463574
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Feb 2 13:28:16 2019 +0100
-
- Nest: Reestablish preferred counters
-
-commit f9b97f1c6282be398d2c2bb896dbb453f638f720
-Author: Maria Matejka <mq@ucw.cz>
-Date: Fri Feb 1 14:09:01 2019 +0100
-
- Perf: Added forgotten all-protocol options
-
-commit a8d0f2516c1ee0372edfc607832ae78632e404ca
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Jan 29 15:19:06 2019 +0100
-
- Nest: FIB rehash values tweaked for better performance
-
-commit e85e37d91d0c5fca6cb7a3ea80fac582074c389d
-Author: Maria Matejka <mq@ucw.cz>
-Date: Tue Jan 29 14:22:55 2019 +0100
-
- Perf: Prune the table after every loop to have clean state.
-
-commit 7411b694c3ca9db4947f577f826b622ff23e570d
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Jan 31 15:03:43 2019 +0100
-
- Perf: Write also BIRD version to have all the needed data in the logfile
-
-commit c65a9a05f9005d8b7369d07a3f0e99b2f205955b
-Author: Maria Matejka <mq@ucw.cz>
-Date: Thu Jan 31 15:02:15 2019 +0100
-
- Nest: Don't lookup net in table before filters are run.
-
- Using dummy net instead. This should help with performance on rejected
- routes.
-
-commit e84c81b76ff6af88041b55c4ed25c208f78d4826
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jan 30 17:25:21 2019 +0100
-
- Nest: Prevent withdraws from propagation back to source protocol
-
- The earlier fix loosen conditions for not running filters on old
- route when deciding about route propagation to a protocol to avoid
- issues with ghost routes in some race conditions.
-
- Unfortunately, the fix also caused back-propagation of withdraws. For
- regular updates, back-propagation is prevented in import_control hooks,
- but these are not called on withdraws. For them, import_control hooks
- are called on old routes instead, changing (old, NULL) notification
- to (NULL, NULL), which is ignored. By not calling export processing
- in some cases, the withdraw is not ignored and is back-propagated.
-
- This patch fixes that by contract conditions so the earlier fix is not
- applied to back-propagated updates.
-
-commit ee95f281f038684a4a2613a0c54af7389afe64da
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Jan 26 21:02:35 2019 +0100
-
- Doc: Add documentation for OSPF retransmit delay option
-
- Thanks to Igor Podlesny for notification.
-
-commit 1c730ee761b3c9b7ff12a0ad11c5b1768d1e4ada
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Jan 26 20:44:37 2019 +0100
-
- Doc: Remove doc for already removed option
-
-commit b8a3608aa59a67364f05dbd0d0332371a200f226
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Jan 26 19:48:16 2019 +0100
-
- BGP: Cleanup channels when going down
-
- When going up, uncleaned old channel state may trigger unexpected
- conditions crashing bird.
-
-commit 5a50a98980a3554b66cedda6992ece4063a0e85a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jan 24 22:34:33 2019 +0100
-
- OSPF: Opaque LSAs and Router Information LSA
-
- Add support for OSPFv2 Opaque LSAs (RFC 5250) and for Router Information
- LSA (RFC 7770). The second part is here mainly for testing opaque LSAs.
-
-commit 954888859969587a288501b6801ab0ddb1f94133
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Fri Dec 14 16:10:19 2018 +0100
-
- Nest: Don't make tmp_attr before preexport is called
-
-commit 3e60932a289e55e212dec1cbaf3bca44b2bbaeb8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Jan 5 00:38:37 2019 +0100
-
- NEWS and version update
-
-commit d7e8f00e7e35daff9bcf96aa455ebc6f932d0882
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Jan 4 23:49:26 2019 +0100
-
- Unix: Remove removed option from help
-
- Also includes minor cleanup of help.
-
-commit a1ee5eb2aae1f5e78909b36c979fd689ba319bbd
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Jan 4 17:03:48 2019 +0100
-
- BSD: Fix TCP-MD5 code on current FreeBSD kernels
-
- Current FreeBSD kernels require SA records for both directions.
-
- Thanks to Joseph Mulloy and Andrey V. Elsukov for reporting and
- solving the issue.
-
-commit 4d9049dc1a57ccbf0ff9fa2642282a30e875e9e1
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jan 3 17:11:56 2019 +0100
-
- Doc: README and INSTALL update
-
- Minor cleanups, updates and clarifications. Also removes (incomplete
- and well-known) build steps from README, as they are better described
- in INSTALL.
-
-commit 470740f97bfa61c3c5c79d6f2d92f2014a119031
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jan 2 16:01:21 2019 +0100
-
- BGP: Better dispatch of incoming connections
-
- Since v2 we have multiple listening BGP sockets, and each BGP protocol
- has associated one of them. Use listening socket that accepted the
- incoming connection as a key in the dispatch process so only BGP
- protocols assocaited with that listening socket can be selected.
- This is necesary for proper dispatch when VRFs are used.
-
-commit e16b0aef31adf7000c22430adc3ceb9fc969ae14
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jan 2 15:57:14 2019 +0100
-
- BGP: Postpone setting link_addr
-
- It may happen that the LLv6 address for given iface is not defined during
- BGP start, so we postpone the check to the the session establishment.
-
-commit 4659b2ae45672868646900c81c963da221363b40
-Author: Arthur Gautier <baloo@gandi.net>
-Date: Fri Dec 28 19:38:18 2018 +0100
-
- KRT: Fix debug messages in netlink code
-
-commit c2d29dd197cbff6c143a570576c81bee20fc06eb
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 18 19:16:23 2018 +0100
-
- IO: Workaround for broken FreeBSD behavior
-
- FreeBSD silently changes TTL to 1 when MSG_DONTROUTE is used, even when
- it is explicitly set to another value. That breaks TTL security sockets,
- including BFD which always uses TTL 255. Bad FreeBSD!
-
-commit 82b742533bdbf977ec95997fc0011a47a672bcc8
-Author: Maria Matějka <mq@jmq.cz>
-Date: Fri Oct 26 09:32:35 2018 +0200
-
- Perf: Protocol to measure BIRD performance internally
-
- This protocol is highly experimental and nobody should use it in
- production. Anyway it may help you getting some insight into what eats
- so much time in filter processing.
-
-commit 78131eee64aeaf14cf418d6e5bf3f17ca602afb7
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Fri Dec 14 15:50:44 2018 +0100
-
- Debug: support for -gdwarf-4 is not available everywhere
-
-commit bda5863425854cc1c705c6f428e952bafd01d2a1
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 18 14:41:12 2018 +0100
-
- Nest: Handle labels_orig correctly in attribute cache
-
-commit cea2e25f417866129ce7e78f1c078e993743173c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 17 17:01:08 2018 +0100
-
- OSPF: Fix wrong LSA collisions detection
-
- In some circumstances (old LSA flushed but not acknowledged and not
- removed) origination of a new LSA may wrongly triggers LSA collision
- code. The patch fixes that.
-
- Thanks to Asbjorn Mikkelsen for the bugreport and @mdelagueronniere
- for the original patch.
-
-commit 1cab2b4a7cffb7ad604dcbd200267733ef079973
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Dec 16 23:44:24 2018 +0100
-
- BGP: Extend 'next hop keep' and 'next hop self' options
-
- Extend 'next hop keep' and 'next hop self' options to have boolean values
- (enabled / disabled) and also values 'ibgp'/ 'ebgp' to restrict it to
- routes received from IBGP / EBGP. This allows to have it enabled by
- default in some cases, matches features of other implementations, and
- allows to handle some strange cases like EBGP border router with 'next
- hop self' also doing IBGP route reflecting.
-
- Change default of 'next hop keep' to enabled for route servers, and
- 'ibgp' for route reflectors.
-
- Update documentation for these options.
-
-commit 337165959c5a556d6556fb2acbba5e7f2b1c35a5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Dec 16 23:39:53 2018 +0100
-
- Nest: Fix handling of ECMP next hop flags
-
- Flag field was not copied when next hop was cached.
-
-commit cfa6ff95695bcaff0c1046c63eb4a839c7a90cb7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Dec 16 22:48:13 2018 +0100
-
- Nest: fix bug in previous patches related to channel reconfiguration
-
- The patch d506263d... blocked adding channel during reconfiguration,
- that broke protocols which use the same functiona also during init.
- This patch fixes that.
-
-commit cb311b441a6bbc02e88cd4a92e19044e2e95aac2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Dec 15 14:01:57 2018 +0100
-
- BGP: Better handling of non-matching AFI in nexthops
-
-commit 3a2a3c7325b34923c4ecc465700708dd13e6ad73
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Dec 14 02:03:42 2018 +0100
-
- Doc: Rename code documentation files back to Doc
-
-commit 1e0fccd1af54fdd4dbd79f6e7c5715478f83dea3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Dec 14 01:53:32 2018 +0100
-
- Doc: Move root of code documentation to doc dir
-
- It reduces clutter in root and also avoid collision with doc dir on
- case-insensitive filesystems when name back to Doc.
-
-commit 532116e7e33d80a79e176f043defffbfc2b8d06e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 12 17:36:54 2018 +0100
-
- BGP: Do not prepend ASN in export from non-RS EBGP to RS EBGP
-
- When route is exported to regular EBGP, local ASN should be prepended to
- AS_PATH. When route is propagated by route server (between RS-marked
- EBGP peers), it should not change AS_PATH. Question is what to do in
- other cases (from non-RS EBGP, IBGP, or locally originated to RS EBGP).
-
- In 1.6.x, we did not prepend ASN in non-RS EBGP or IBGP to RS EBGP, but
- we prepended in local to RS EBGP.
-
- In 2.0.x, we changed that so only RS-EBGP to RS-EBGP is not prepended.
- We received some negative responses (thanks to heisenbug and Alexander
- Zubkov), we decided to change it back. One reason is that it is simple
- to modify the AS_PATH by filters, but not possible to un-modify
- changes done by BGP itself. Also, as 1.6.x behavior was not really
- consistent, the final behavior is that ASN is never prepended when
- exported to RS EBGP, like to IBGP.
-
- Note that i do not express an opinion about whether such configurations
- are even reasonable.
-
-commit 6b5ad2066a8002bb0fd1dde58e6c0f1e43613aee
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 12 16:54:23 2018 +0100
-
- Doc: Document log rotation feature
-
-commit 0f40405fc94fa253b5020e6603dc9ec7a02e13e7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 12 16:38:30 2018 +0100
-
- Update RFC references
-
- Progdoc comments do not allow SGML tags
-
-commit 9e92f357becf405643fa8c536734cccf2ae26da2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 12 16:04:15 2018 +0100
-
- Doc: Document BGP import table option
-
-commit 67d8665af58a14bdc26963f8910e738886edb373
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 11 13:52:30 2018 +0100
-
- Nest: Update statistics and rx-limit for Adj-RIB-In
-
-commit 682d3f7de0905ca2e853844734cce7ff65f7d77d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Sep 27 22:57:55 2018 +0200
-
- BGP: implement Adj-RIB-In
-
- The patch implements optional internal import table to a channel and
- hooks it to BGP so it can be used as Adj-RIB-In. When enabled, all
- received (pre-filtered) routes are stored there and import filters can
- be re-evaluated without explicit route refresh. An import table can be
- examined using e.g. 'show route import table bgp1.ipv4'.
-
-commit 01fd00f5ed9298ab5829403cd7a8a9ba22bcc96a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 11 18:43:58 2018 +0100
-
- Doc: Fix typo in previous LinuxDoc change
-
-commit d506263da713673f95bc17aaedceebaaad03580d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 11 17:57:14 2018 +0100
-
- Nest: Forbid adding channels during reconfiguration
-
- When a new channel is found during reconfiguration, do force restart
- of the protocol, like with any other un-reconfigurable change.
-
- The old behavior was that the new channel was added but remained in down
- state, even if the protocol was up, so a manual protocol restart was
- often necessary.
-
- In the future this should be improved such that a reconfigurable
- channel addition (e.g. direct) is accepted and channel is started,
- while an un-reconfigurable addition forces protocol restart.
-
-commit baeacdcfd3ce30b3fa89ebdd4e53c60c38c26c31
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 10 02:11:42 2018 +0100
-
- OSPF: Fix reconfiguration of vlinks
-
- Fix crash during reconfiguration of OSPF config with vlinks. When vlink
- is reconfigured, a generic iface-reconfiguration code is used, which in
- one place supposes that it is running on a regular iface.
-
- Thanks to Cybertinus for a bugreport.
-
-commit 9a5ef043c11ad9fba00557dedcc0d7ae0d2794e9
-Merge: 0e492063 265419a3
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Thu Dec 6 09:55:34 2018 +0100
-
- Merge branch 'mq-custom' into int-new
-
-commit 265419a3695b9a5c0a01d9fffc60f66fea8bee13
-Author: Maria Matejka <mq@jmq.cz>
-Date: Wed Nov 21 20:37:11 2018 +0100
-
- Custom route attributes
-
- For local route marking purposes, local custom route attributes may be
- defined. These attributes are seamlessly stripped after export filter to
- every real protocol like Kernel, BGP or OSPF, they however pass through
- pipes. We currently allow at most 256 custom attributes.
-
- This should be much faster than currently used bgp communities
- for marking routes.
-
-commit 0e4920632aa30dab4fbfb0530bce5a959e7a7675
-Author: Robert Scheck <robert@fedoraproject.org>
-Date: Tue Dec 4 18:14:04 2018 +0100
-
- Doc: Allow overriding $SGML_CATALOG_FILES using distribution specific paths
-
-commit f26bf60fb58bc975d510a9fff3adb76817ddb624
-Author: Robert Scheck <robert@fedoraproject.org>
-Date: Tue Dec 4 18:11:42 2018 +0100
-
- Doc: Add alternative path for SGML ISO entities 8879.1986 to $SGML_CATALOG_FILES
-
- The existing paths are valid for Debian, alternative paths are necessary
- for Fedora and RHEL/CentOS.
-
-commit 3fda08e40532245ba69e14cdac0623a138b939f9
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 4 16:55:25 2018 +0100
-
- Unix: Change debugging options
-
- The old behavior was that enabling debugging did many nontrivial changes
- in BIRD behavior. The patch changes it that these changes are generally
- independent. Compiling with --enable-debug now just enables compile-time
- debug macros, but do not automatically activate debug mode (-d) nor local
- mode (-l). Debug mode with output to file (-D) do not force foreground
- mode (-f), therefore there is no need for backgroud option (-b), which is
- removed. Also fixes a bug when the default log target in -D mode was
- stderr instead of given debug file.
-
-commit 0642fb4d456fe12e1bbeb2ffc2149433f228c02e
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Nov 27 08:49:31 2018 +0100
-
- Hash: mem_hash doesn't modify the memory, declared constant
-
-commit d73c4ac869048e60276c5e568450c7342bc0bc8a
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Thu Nov 1 12:17:49 2018 +0100
-
- Route table max hash size raised to 2^24.
-
- This is still OK for everybody to fit into RAM and also probably enough
- to keep a little collision rate for full BGP table.
-
-commit 84661bf6da683d70e6e5e0e490d95abaf91b470b
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Oct 30 15:25:32 2018 +0100
-
- Changed IPv4 hash function to simple multiplication.
-
-commit 14375237f6901a926d59cc54870cf44ed2a61d20
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Wed Feb 14 13:42:53 2018 +0100
-
- Terminology cleanup: The import_control hook is now called preexport.
-
- Once upon a time, far far away, there were the old Bird developers
- discussing what direction of route flow shall be called import and
- export. They decided to say "import to protocol" and "export to table"
- when speaking about a protocol. When speaking about a table, they
- spoke about "importing to table" and "exporting to protocol".
-
- The latter terminology was adopted in configuration, then also the
- bird CLI in commit ea2ae6dd0 started to use it (in year 2009). Now
- it's 2018 and the terminology is the latter. Import is from protocol to
- table, export is from table to protocol. Anyway, there was still an
- import_control hook which executed right before route export.
-
- One thing is funny. There are two commits in April 1999 with just two
- minutes between them. The older announces the final settlement
- on config terminology, the newer uses the other definition. Let's see
- their commit messages as the git-log tool shows them (the newer first):
-
- commit 9e0e485e50ea74c4f1c5cb65bdfe6ce819c2cee2
- Author: Martin Mares <mj@ucw.cz>
- Date: Mon Apr 5 20:17:59 1999 +0000
-
- Added some new protocol hooks (look at the comments for better explanation):
-
- make_tmp_attrs Convert inline attributes to ea_list
- store_tmp_attrs Convert ea_list to inline attributes
- import_control Pre-import decisions
-
- commit 5056c559c4eb253a4eee10cf35b694faec5265eb
- Author: Martin Mares <mj@ucw.cz>
- Date: Mon Apr 5 20:15:31 1999 +0000
-
- Changed syntax of attaching filters to protocols to hopefully the final
- version:
-
- EXPORT <filter-spec> for outbound routes (i.e., those announced
- by BIRD to the rest of the world).
- IMPORT <filter-spec> for inbound routes (i.e., those imported
- by BIRD from the rest of the world).
-
- where <filter-spec> is one of:
-
- ALL pass all routes
- NONE drop all routes
- FILTER <name> use named filter
- FILTER { <filter> } use explicitly defined filter
-
- For all protocols, the default is IMPORT ALL, EXPORT NONE. This includes
- the kernel protocol, so that you need to add EXPORT ALL to get the previous
- configuration of kernel syncer (as usually, see doc/bird.conf.example for
- a bird.conf example :)).
-
- Let's say RIP to this almost 19-years-old inconsistency. For now, if you
- import a route, it is always from protocol to table. If you export a
- route, it is always from table to protocol.
-
- And they lived happily ever after.
-
-commit e2ae08694e45b2a127c9d741e41dee4b14c2964d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Nov 28 16:43:17 2018 +0100
-
- Nest: Do not hard-reset interface when preferred address is changed
-
- 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.
-
-commit 66934aceff0e5299719177782bcbf151f8030591
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Nov 21 16:30:22 2018 +0100
-
- Autoconf: Minor cleanup
-
-commit fc1b933304c325775169d5241ce1ac5ae3266680
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Nov 21 16:00:22 2018 +0100
-
- MRT documentation
-
-commit 863ecfc78538657e51f1ec67441aec32261aa405
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 20 17:38:19 2018 +0100
-
- The MRT protocol
-
- The new MRT protocol is responsible for periodic RIB table dumps in the
- MRT format (RFC 6396). Also the existing code for BGP4MP MRT dumps is
- refactored and splitted between BGP to MRT protocols, will be more
- integrated into MRT in the future.
-
- Example:
-
- protocol mrt {
- table "*";
- filename "%N_%F_%T.mrt";
- period 60;
- }
-
- It is partially based on the old MRT code from Pavel Tvrdik.
-
-commit 6712e77271fb3cb4a3c48cd7b027b39c5cea00a2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Nov 14 17:16:05 2018 +0100
-
- Unix: Implement log file size limit / log rotation
-
- Allow to specify log file size limit and ensure that log file is rotated
- to secondary name to avoid exceeding of log size limit.
-
- The patch also fixes a bug related to keeping old fds open after
- reconfiguration and using old fds after 'configure undo'.
-
-commit c68ba7d093e1fcf01fceb341438fc5dc95f93ac5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 13 18:13:11 2018 +0100
-
- Unix: Refactor tracked files
-
- We need access to resource in order to free it.
-
-commit d0b4597842ba1f65e5280529fca243ce5b5043fa
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Nov 18 01:22:09 2018 +0100
-
- Configure: Use standard --runstatedir option
-
- Newer Autoconf defines --runstatedir option for setting directory for
- run-time variable data. Use it instead our old --with-runtimedir.
-
-commit f2d8e6801e88a84b1e57da72d078d7569598a5f5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Nov 5 22:03:21 2018 +0100
-
- Filter: Make ifname attribute modifiable
-
- Allow to change an interface associated with a route by setting
- ifname attribute. It will also change the route to a direct one.
-
-commit 69b2f63d9a477ab5d083773e16ca15ed2e570144
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Nov 5 13:56:59 2018 +0100
-
- Nest: Fix crash in rta_show() for RPKI and Babel routes
-
- Some new route source values did not have associated string
- in rta_show(), which might caused crash in some cases.
-
-commit e19d08055a4614f03e51ee72617be10946ce7919
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Oct 26 19:11:33 2018 +0200
-
- BGP: Fix VRF for listening socket
-
- Listening socket should be bound to specified interface and VRF.
-
- Thanks to Alexander Zubkov for the bugreport.
-
-commit 0ac9cb2c1f6592290e025f61ccd0fef0dc09de46
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Oct 25 17:22:37 2018 +0200
-
- OSPF: Fix some trace messages
-
- Missing argument in MTU change trace message can crash bird when MTU
- change happens and trace messages are active.
-
- Thanks to Alexander Velkov for the bugreport.
-
-commit df50598f1c285a5e2820b7427998c6ebf86bbbec
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Oct 25 12:39:13 2018 +0200
-
- Lib: Force output type in ip4_addr constructor
-
- Fixes type issue when u64 is pushed into it.
-
-commit 83715aa82966020100afa35f15d1ca56cadf6d10
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Oct 25 11:26:58 2018 +0200
-
- Filter: Add support for VPN_RD sets
-
-commit 41b83e52f7f0a0de88c220aab88a4dd31f05fce0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Oct 25 11:23:15 2018 +0200
-
- Filter: Fix minor bug in accessing bgp_path
-
- Not relevant for regular BGP paths, just for BGP paths added by filters
- to e.g. static routes.
-
-commit 01dd78f9e924cc6d7511da1ec32c8f36d357db7a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Oct 11 15:03:09 2018 +0200
-
- Fix installation with --disable-client
-
- 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.
-
-commit addb1bcd86885dcee559a61eb18998ae6a38b2ab
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Oct 11 14:39:13 2018 +0200
-
- Nest: Fix 'show interfaces summary' command
-
- The command showed interfaces that were removed / in shutdown.
-
-commit 961671c0f51693aff34bf3adf5319b35275a86d3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Oct 1 15:55:23 2018 +0200
-
- Lib: Add and use ev_new_init()
-
-commit 0db7a1d69c80b1089f10a268ceacb059db41ced8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Oct 1 15:35:43 2018 +0200
-
- BGP: Fix bug in show protocol related to LLGR
-
- 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.
-
-commit d4cebc6bbe2a55bd344383fcc27255a12d686195
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Sep 18 14:21:11 2018 +0200
-
- No more warnings ...
-
- 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!)
-
-commit d50b0bc437f5ffd0d2c9f843217f8ed098c8d675
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Sep 11 16:55:41 2018 +0200
-
- Conf: Show the line:char position where the syntax error happens
-
-commit 89b0af3978caf15e1478922a8d9d4f7e38145a61
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Aug 28 16:45:50 2018 +0200
-
- Main: Add -b to force background even in debug mode
-
-commit a043f2d79488cdfbc4d97ac0bad4926d29bf9a82
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Aug 24 18:54:27 2018 +0200
-
- Doc: Fix description of 'description'
-
- Thanks to Clemens Schrimpe for the bugreport.
-
-commit 64c5ad58d276d8a0463aa9ad2b34f75b7d1f4108
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Wed Aug 22 14:58:53 2018 +0200
-
- Lib: recursive printf
-
- 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);
- ...
- }
-
-commit 765f400f6b7ac054ddb4fcc4f5bec58f94d1bdd4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 21 15:24:55 2018 +0200
-
- DOC: Remove pipe mode reference
-
- Pipe mode was removed in 2.0, remove reference to it in the documentation.
-
- Thanks to Piotr Wydrych for the bugreport.
-
-commit 7ffc0a6534fb66ad27d22984e25bd0789f4404b6
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Aug 14 14:36:44 2018 +0200
-
- Bison: A bit more verbose error messages in config.
-
-commit 78ca6ea8f0b8ab312b1e0ef56629a18e3efbce42
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Jul 17 15:39:06 2018 +0200
-
- Make: Add option to force colors in compiler output
-
-commit 86b9e8e39a0b42407c95921ca8262b0a75cad5f2
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Jul 17 15:30:59 2018 +0200
-
- M4: generate synchronization lines
-
- 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.
-
-commit 1279a83103262950ab99e8a6fe3c6cc2da8d42a8
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Mon Nov 14 14:53:10 2016 +0100
-
- sysdep/unix/main.c: Remove trailing spaces
-
-commit d33cf3f4c3a92f895e8b52fc19ed8a88f350a32b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 7 14:46:24 2018 +0200
-
- Doc: Fix notes related to obsolete option
-
- Thanks to Julien Dessaux for the report.
-
-commit 5bd734317c05008a66eefaa14fc98a6d533cf9ef
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 31 18:40:38 2018 +0200
-
- BGP: Long-lived graceful restart
-
- The patch implements long-lived graceful restart for BGP, namely
- draft-uttaro-idr-bgp-persistence-03.
-
-commit 318acb0f6cb77a32aad5d7f79e06f3c5065ac702
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Jul 28 16:54:06 2018 +0200
-
- BSD: Use MSG_DONTROUTE for unicast packets on FreeBSD
-
- 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).
-
-commit 0ed3129f6b0a80afea877340d940e45f1a5d3000
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jul 19 20:54:10 2018 +0200
-
- RAdv: Fix crash during prefix change
-
- Thanks to Julian Schuh for the bugreport.
-
-commit 8bd718b3ba34cee95a5443f3d20d6f16c2d4c946
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jul 19 20:48:13 2018 +0200
-
- OSPF: Fix crash during route removal
-
- The bug was introduced by an earler patch which removed additional eattr
- argument to rt_notify hook.
-
-commit 092c4930277c0f0f0dcb0c4013ff642314f90842
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Jul 6 02:04:45 2018 +0200
-
- Nest: Fix race condition during reconfiguration, part 2
-
- 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.
-
-commit 7b9b0c0a0087def6a3fc11824a891be5940a257b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 3 18:08:35 2018 +0200
-
- Cleanup some warnings
-
-commit a81e18da254ddd7cccff82feab61aa943a277805
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 3 17:52:51 2018 +0200
-
- Nest: Fix race condition during reconfiguration
-
- 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.
-
-commit 8e86ffce8251f4e48f61b6d8e89966d037ef8e59
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Jul 1 01:03:16 2018 +0200
-
- BGP: Use implicit-NULL label when announcing MPLS routes with local next-hop
-
- 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.
-
-commit 93c1defdb03729ae8b41752d2155dff65964df5b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Jul 1 00:43:24 2018 +0200
-
- BGP: Fix parsing of MPLS withdrawals
-
- 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.
-
-commit daf113ac66fb9dc83a904ce9bcc68e90830624d0
-Author: Maria Jan Matejka <mq@jmq.cz>
-Date: Fri Jun 29 17:23:27 2018 +0200
-
- BGP: Attribute set function merged with its common counterpart
-
-commit d8e816c150ebad08ff75ef34eb459a67a09a34d0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 27 17:08:59 2018 +0200
-
- BSD: Fix of the previous commit
-
-commit 586c1800c447ff099d34889b23647c4733876d9b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 27 16:51:53 2018 +0200
-
- Nest: Neighbor cache cleanups
-
- Simplify neighbor cache code, fix several minor bugs, and improve
- handling of ONLINK flag.
-
-commit 45f28d85818f79790968725a945063228989bae7
-Author: Maria Matejka <mq@jmq.cz>
-Date: Mon Apr 23 15:59:02 2018 +0200
-
- Autotools: updated config.guess and config.sub
-
- Updated to version 63b4ce2e8c28aee6a32133e400436e4ca885215a
- from git://git.savannah.gnu.org/config.git
-
- Previous version was 93b5037172b15ad28952481933517f1ba93d125b
-
-commit da16b33ab98602628d66ed4f434dc6fa76f338c6
-Author: Maria Matejka <mq@jmq.cz>
-Date: Mon Apr 23 15:54:20 2018 +0200
-
- Android: check for extra libs needed for build
-
-commit c2fc4c10ac81b8815c1434aa2b0945aa937df4fa
-Author: Maria Matejka <mq@jmq.cz>
-Date: Mon Apr 23 11:29:13 2018 +0200
-
- Doc: renamed progdoc files Doc -> progdoc to fix collision with doc/ folder on case-insensitive filesystems
-
-commit f851f0d7e30cbd1e2ba20a5bf06a584acc136828
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Jun 26 14:29:03 2018 +0200
-
- Config: Dropping CF_ADDTO.
-
-commit 1771f70d7473b8c8e0c6bd47d5c35cc5fbe7eb19
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Jun 19 16:16:08 2018 +0200
-
- Filter: fixed eattr cached pointer
-
- 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.
-
-commit 1ef23f05ee00394e6a2748f658b73c20d3ff7c45
-Merge: 13c0be19 caa9d03d
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Jun 19 14:32:16 2018 +0200
-
- Merge branch 'int-new' into HEAD
-
-commit caa9d03d65ce827ce536d54b26988e70767e032f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 13 15:22:29 2018 +0200
-
- Babel: Fix handling of missing IPv4 next hops
-
- 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.
-
-commit 9c9050ff12c52762708dadda78a05108a5b533b2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 13 14:47:37 2018 +0200
-
- BGP: Handle missing NEXT_HOP attribute properly
-
- RFC 7606 specifies handle-as-withdraw instead of session reset.
-
-commit 13c0be19d3d2acc9c1636bbab9222aabdf27d7ac
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue May 29 12:08:12 2018 +0200
-
- Nest: Removing separate tmpa from route propagation
-
- 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().
-
-commit 18b4f2082c30586890596988086fbc3e15336526
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 29 14:23:14 2018 +0200
-
- OSPF: Fix invalid NSSA RFC references
-
-commit ee7e2ffd265fd76dbc8c94d9c2d48da54c27ff76
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Mon May 7 14:47:00 2018 +0200
-
- Protocol: Introducing an enum protocol_class
-
- This supersedes the EAP_* constants.
-
-commit c3becfe1934da2dc2c0881a71eac8a26f810791f
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Wed May 2 12:34:35 2018 +0200
-
- Filter: macro for recursive interpretation of instructions
-
-commit 0ec6b5ecd37529d57079e13748c4ecbd336332c1
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Mon Apr 30 16:06:53 2018 +0200
-
- Filter: Simple type checks converted to ARG() macro
-
-commit 478f9babed361f8df8a9c944f20bcbe116dc30aa
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Mon Apr 30 13:29:05 2018 +0200
-
- Filter: Removing the third argument hack
-
- Just to make the code a bit more clean and easier to maintain.
-
-commit cff9e937fd0ed42b88be1deb5e1aa9fe301caabd
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Mon Apr 30 12:49:22 2018 +0200
-
- Filter: instruction names
-
-commit 31d6939cde071ab04d1da6b3ff6fb6cd579e164a
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Mon Apr 30 12:39:32 2018 +0200
-
- Filter: Instruction codes linearized
-
-commit 906092534ba8479ca76723b7dd7ee233f5a70d1e
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Mon Apr 30 12:20:04 2018 +0200
-
- Macro: Added a bunch of dirty C preprocessor tricks
-
- Included are Makefile implicit rules to show the preprocessed source.
- When debugging something around this, it may be handy.
-
-commit feae132e0f9bdc62d2b90bf676d12241af8e794c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 24 14:51:05 2018 +0200
-
- Do not initialize route metrics in import_control hook
-
- 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).
-
-commit b24b781117179f301116837f0a39468343e4805b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed May 16 11:19:29 2018 +0200
-
- Filter: Add support for src filter op to access SADR source prefix
-
- 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.
-
-commit eaf63d314d50cba5b2cfa8f18de64a91d3131b94
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 3 17:07:39 2018 +0200
-
- Better initialization of random generator
-
- 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).
-
-commit 70fab17837dbb4c5848681e4c6b9b90891891130
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 3 16:55:11 2018 +0200
-
- Babel: Add option to randomize router ID
-
- 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.
-
-commit 23b079043bea5899b49a750c4616aff5b332c50d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 3 16:02:29 2018 +0200
-
- Babel: Fix type of route entry router ID
-
- 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.
-
-commit 29958745c8f58cffd24e1793702524ce84545e5a
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Thu May 3 11:14:49 2018 +0200
-
- Makefile: Only set git version if BIRD is build from its repository.
-
- Thanks to Toke Høiland-Jørgensen <toke@toke.dk> for reporting this bug.
-
-commit 823ad12191e66e243dd088a81c66e4a518563e40
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Fri Apr 27 14:38:41 2018 +0200
-
- Filter: Added missing instruction comparators.
-
- These instructions caused SIGABORTs on reconfiguration.
-
-commit 4727d1db9d83a8f1025481cbcc06a7e4c8ec9f33
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Apr 25 15:50:57 2018 +0200
-
- OSPF: Support of authentication trailer for OSPFv3
-
- Implement RFC 7166, crypthographic authentication for OSPFv3
- analogous to authentication used for OSPFv2.
-
-commit f3a8cf050e6181e158dcde2fe885d7bf220eedc3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Apr 12 16:55:56 2018 +0200
-
- BGP: Fix extended next hop handling
-
- 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.
-
-commit c408d807a374b521dc66c434ca0dc5987820646f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Apr 3 17:31:45 2018 +0200
-
- Doc: Documentation for BGP disable after cease option
-
-commit a63d20aa872364873d0fbfa03d1c3c6d9a1889eb
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Apr 3 16:53:58 2018 +0200
-
- Doc: Documentation for BGP extended next hop feature
-
- Thanks to Arvin Gan for the bugreport.
-
-commit 157f6c2aaddbf8668e33ed6efcd874a6677fa005
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Mar 24 01:53:03 2018 +0100
-
- Doc: Remove some superfluous slashes
-
-commit 6807320a0f732829c475ab230857147bf4f0cc7c
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Mar 23 17:24:58 2018 +0100
-
- Autoconf replaced by autoreconf
-
-commit 4d3d34f5997128824c376a097eee60954c3611cf
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Mar 22 13:30:10 2018 +0100
-
- Date added.
-
-commit 966602602a0f24942bee3ab0492bbb9197e71aa1
-Merge: 44062812 4841804f
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Mar 22 13:25:58 2018 +0100
-
- Merge branch 'int-new' of ssh://gitlab.labs.nic.cz/labs/bird into int-new
-
-commit 4841804fffd8bf669b2445ec3328b6a49eed31f9
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 21 15:17:56 2018 +0100
-
- NEWS and version update
-
-commit a177e4dd04b29dc364d2c5505fe2c483981c6498
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 21 16:32:51 2018 +0100
-
- Doc: Minor update
-
-commit 3b522a1e5cd034196cd0f5c0eab4d9e87f0f2a8a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 20 19:28:26 2018 +0100
-
- Doc: Redesign default config file
-
- The old one does not work with 2.0.x.
-
-commit 89ac4dd3c433cae865d5339efe5e682d4506044d
-Merge: bcb4af81 8a871e89
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Mar 19 13:29:39 2018 +0100
-
- Merge remote-tracking branch 'birdlab-tmp/int-new' into int-new
-
-commit bcb4af81fc8ea0acf7c2fa5a6854cd3c23d92d9f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Mar 18 13:48:47 2018 +0100
-
- Nest: Fix table reconfiguration when nettype changes
-
- Thanks to Toke Hoiland-Jorgensen for the bugreport.
-
-commit 364d5823eac85178361bad188d89949b7e0d321c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Mar 18 02:56:51 2018 +0100
-
- Nest: SADR support for Direct
-
-commit 159d619caf2311b62dc0d876f22c42b5d23e86c0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Mar 17 22:25:06 2018 +0100
-
- Doc: SADR documentation
-
-commit 7a8ae228f907400a33375c07b31f3e42a89834e7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Mar 17 17:14:02 2018 +0100
-
- Doc: Update BGP documentation
-
- Thanks to Joshua McQuistan for the bugreport.
-
-commit 8a871e890a7198f7cbaff5c75033160ae3ad68f3
-Merge: e95705f0 e8bc64e3
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Wed Mar 14 12:57:16 2018 +0100
-
- Merge branch 'master' into int-new
-
-commit e8bc64e308586b6502090da2775af84cd760ed0d
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Wed Feb 28 16:57:50 2018 +0100
-
- Filter: make bgpmask literals real constructors
-
- 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.
-
-commit e95705f00c9e297cd6dde1e8fa60bee4a4d539f2
-Merge: d1ba927b 74bfd2f9
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Mar 13 17:02:49 2018 +0100
-
- Merge branch 'master' into int-new
-
-commit 74bfd2f97c0a95b6fb73a67d9334e54a90695c58
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Mar 13 12:08:37 2018 +0100
-
- Filters: Removed FI_COMMA, not used for 19 years.
-
- 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
-
-commit d1ba927b369c91ddb2143b686ca4c1be53e46e64
-Merge: f2f5a7d9 7c601e6b
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Mar 13 16:51:04 2018 +0100
-
- Merge branch 'master' into int-new
-
-commit 7c601e6b7b7696b24ce5f5715fa14dbb91c71d6e
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Wed Nov 29 11:38:01 2017 +0100
-
- Filter: recursion to loop
-
- 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.
-
-commit 5a14df395053f4094a1e3ebea98e3487cbfc0e63
-Author: Maria Jan Matejka <mq@jmq.cz>
-Date: Thu Oct 19 12:39:44 2017 +0200
-
- Filter: Instruction codes named as enum
-
- 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.
-
-commit f2f5a7d9455f938fb14e31315a879c3be2c5d28a
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Mar 6 16:04:56 2018 +0100
-
- Filter: the test conf checks also a bit of BGP args
-
- Uncommented an old test.
-
-commit 0575c7db723523701d5582e2a9058cb5c46951c9
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Mar 6 16:03:35 2018 +0100
-
- Config: Dropped the ipv4:netmask4 syntax for IPv4 prefixes.
-
-commit d0f47327f81a278d6adb3d0a6c235ea715798d01
-Merge: 1561ee79 2d6d4b80
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 7 17:41:49 2018 +0100
-
- Merge branch 'master' into int-new
-
-commit 2d6d4b80539be13aa53c6751fb33689b263e4010
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 7 17:35:24 2018 +0100
-
- Babel: Fix build with restricted protocol set
-
- All keywords used in Babel config have to be declared locally.
-
- Thanks to Leo Vandewoestijne for the bugreport.
-
-commit 44062812600bd29f8edf30ebc871ff218069c5a2
-Merge: 6f46465a 1561ee79
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Feb 27 06:08:03 2018 +0100
-
- Merge branch 'int-new' of ssh://gitlab.labs.nic.cz/labs/bird into int-new
-
-commit 1561ee799cfe79d208ce9588e487da4b62a88dad
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 13 19:52:22 2018 +0100
-
- Handle properly enums for extended attributes
-
-commit d5144ea9bf01f0b19cba40ab06aa05a11d70aa3e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 13 17:00:24 2018 +0100
-
- Add cscope Makefile target
-
- For those who prefer cscope to etags
-
- Thanks to Toke Hoiland-Jorgensen for the patch.
-
-commit 5ce7adfcf96787878d60668cf33acf7349a69c0b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 13 16:42:03 2018 +0100
-
- Babel: Fix accidental bitwise or assignment
-
- Fix an accidental bitwise or assignment that was supposed to be a
- comparison.
-
- Thanks to Toke Hoiland-Jorgensen for the patch.
-
-commit 185a0a51f8aed635eecac0cfbd837dd262a8add0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 13 16:39:36 2018 +0100
-
- Babel: Add source-specific routing support
-
- 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.
-
-commit be17805c0bbd37e865dc9b17b56e8e8d210c2c6c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 13 16:27:57 2018 +0100
-
- Add support for source-specific IPv6 routes to BIRD core
-
- 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.
-
-commit a82f692e5844d5efdc091a796dc0e8ae8ab5a322
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 6 17:43:55 2018 +0100
-
- Nest: Trivial whitespace cleanup
-
-commit 28b3b551222ab58456a067a9be4790824cdbb60e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 6 16:08:45 2018 +0100
-
- KRT: Fix IPv6 route learn
-
- 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
-
-commit 85ad5855a02e8b185a61bbcb601f005d2e6747db
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Jan 29 12:49:37 2018 +0100
-
- Nest: Fix corner case in recursive next hop lookup
-
- Thanks to Svenne Krap for the bugreport.
-
-commit 345e50d59ff299e466fab6d0e0d37c210d624d96
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jan 24 13:55:12 2018 +0100
-
- Nest: remove duplicate function
-
-commit 75d98b6013c19598b1d3ba5e05e8f84525e8678a
-Merge: ace3072e d6cf9961
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 23 18:29:32 2018 +0100
-
- Merge branch 'master' into int-new
-
-commit d6cf996151307d083c30e4ecde0f1d7449b19253
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 23 17:05:45 2018 +0100
-
- IO: Fix socket priority
-
- 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.
-
-commit ace3072e09e445b2fd8554492b80bea5cc1f3411
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 23 15:12:43 2018 +0100
-
- KRT: Fix option 'merge paths'
-
-commit e5ff7929c4d85b84496cdfc46f006b8cd1b4c0e5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 23 14:48:07 2018 +0100
-
- KRT: Remove useless option
-
-commit def6efa1ef98966424a73923832c6912acefc0ba
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 23 14:26:18 2018 +0100
-
- Doc: Fix example
-
-commit 8adaf730c0e2dae2debd7aa09633899e28428b11
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Jan 16 16:10:13 2018 +0100
-
- Pipe: show export state
-
-commit c591810d46ae31c9e46768388878321e78e4ef94
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Jan 16 14:46:06 2018 +0100
-
- Pipe: fixed template bug
-
- When pipe inherited from template, every channel config was lost.
-
-commit 63472779ad4ecdecbcfedf2d2bb40abc2f8c84b0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 16 19:17:04 2018 +0100
-
- BGP: Implement 'disable after cease' option
-
- The option allows to specify that some cease subcodes should
- disable the protocol when received.
-
-commit b94057911554e04df9b709f8354e2e220131096a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 16 16:20:01 2018 +0100
-
- Filter: Allow silent filter execution
-
- A filter should log messages only if executed explicitly (e.g., during
- route export or route import). When a filter is executed for technical
- reasons (e.g., to establish whether a route was exported before), it
- should run silently.
-
-commit 6f46465af1b3d21ca67e3b4379640c008fc9d1a1
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jan 16 14:36:46 2018 +0100
-
- Error in version guessing
-
-commit c2febfa33294be0f457b49f5453d8066a7d88a5d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 16 14:18:57 2018 +0100
-
- Add note to NEWS
-
-commit 68d0048b3d8d17cfa30846cfe06ea159c3c49a17
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jan 16 10:45:03 2018 +0100
-
- Notice about RFC 8212 added
-
-commit 3831b619661d08d935fd78656732cd2f339ff811
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 16 04:14:49 2018 +0100
-
- BGP: Require explicit import and export policies for EBGP channels
-
- To comply with RFC 8212 requirements.
-
-commit 4db4ac7243bf54187029abda0b42cc9d29757d13
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Jan 14 21:52:58 2018 +0100
-
- NEWS and version update
-
-commit 4d3679613179637df5ef999073aba2d187540a57
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Jan 14 14:30:38 2018 +0100
-
- KRT: Fix direct routes for BSD
-
- Old way to set direct routes is to use local IP as gateway, but that does
- not work properly on newer FreeBSDs. Now we use sockaddr_dl containing
- interface index as gateway.
-
-commit 2e507a745733b0cee2ea7d302cc9d626cb2e0c80
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jan 10 16:17:37 2018 +0100
-
- Use non-fatal asserts even for regular build
-
-commit 72163bd5f3ccefc1edda585f6f605c37e774a0b8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 9 18:42:22 2018 +0100
-
- Nest: Allow modification of channels inherited from templates
-
- Multiple definitions of same channels are forbidden, but inherited
- channel can be redefined. In such case channel options are merged.
-
-commit 09c1e370b3084f7acb7c3777427670a69945368a
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Jan 9 16:46:00 2018 +0100
-
- Moved freebsd cflags and ldflags to configure
-
-commit 94f9be80c3686284942ba73670780d27730da997
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 9 14:36:11 2018 +0100
-
- Nest: Fix filter reconfiguration
-
- Function filter_same() must be called with arguments in proper order,
- otherwise it breaks the new filter, causing crash during route
- processing.
-
-commit 8f8671bcde738890d312ab91336f101465b3eeac
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jan 3 15:44:05 2018 +0100
-
- Filter: Handle undefined BGP paths as empty
-
- The same is already done for clists. Also fixes defined() to work
- properly for paths and clists.
-
-commit 0ff86d054efa8005c5df943acf6d2122781d3175
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jan 3 14:12:00 2018 +0100
-
- ROA: Fix reconfiguration
-
-commit 9bd8cb7c3ca23524cb7d69ee503e24658ad2ee42
-Merge: d493d0f1 cce6ba4d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 2 16:59:59 2018 +0100
-
- Merge branch 'master' into int-new
-
-commit d493d0f180e3df1f33d344d8b28cc1743201210b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 2 16:57:45 2018 +0100
-
- BGP: Fix unknown attribute handling
-
-commit e62cd033079c4bc988a467f4122c7c276c77fdde
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 2 14:30:08 2018 +0100
-
- BGP: Fix graceful restart timer
-
- Should use remote value, not local value.
-
-commit cce6ba4daa2e00d6e1881a831d05cdc51249b4a7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 2 14:11:59 2018 +0100
-
- Remove libhistory check
-
- According to GNU Readline developers, if we link with libreadline then
- there is no need to link with libhistory at all.
-
-commit 4842eeaad32aeeeb1774ec9840c6da03952425ff
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 21 00:16:52 2017 +0100
-
- Minor fix in documentation
-
-commit a63e78c31a518f4441b2f87e1947c12e1e49aba1
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 18 23:15:07 2017 +0100
-
- Fix build without limited protocol set
-
-commit e87a95d97d18eb12d005312f27b082f0821d3923
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Dec 16 16:31:43 2017 +0100
-
- Minor fixes for debug mode
-
-commit 3013fc57bdc97b0031c4f4250b9bdd172f4c0f4e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Dec 16 00:42:56 2017 +0100
-
- Netlink: Fix memory leak
-
-commit 8396094156c2ddae279ec9c265100e28acb65a8d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 14 22:15:01 2017 +0100
-
- Minor cleanups
-
-commit abd4367f483bc29a03cce8bcfc70a83ac5d13cdc
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 14 21:52:07 2017 +0100
-
- Minor cleanup
-
-commit c36a298c21f1aa5b4e61d2d4740811529175df09
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 13 19:18:30 2017 +0100
-
- Use git describe for BIRD version
-
- Based on patch from Pavel Tvrdik
-
-commit d807ea087f8d60e25eaef8c10168a40ca6545c57
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 13 15:57:44 2017 +0100
-
- BGP: Fix non-transitive ext communities
-
-commit 3e7923507b40b42c80dc621aff9d896106bae8c7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 13 15:26:29 2017 +0100
-
- Netlink: Use linpool instead of static buffer
-
-commit 772beb7308a53558e153223bc42742f719ff4a40
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 13 14:49:55 2017 +0100
-
- Lib: Minor fix
-
-commit cb21c5ffa92494b1a4bf110605509de3326b6c3d
-Merge: 71c51aa4 1e11918c
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Wed Dec 13 10:29:10 2017 +0100
-
- Merge branch 'int-new' of gitlab.labs.nic.cz:labs/bird into int-new
-
-commit 71c51aa4ab0daa3490f9a488f505eb25102c4705
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Wed Dec 13 10:28:50 2017 +0100
-
- Doc: Fixed misc sgml bugs, no content change
-
-commit 1e11918c8c56e3505193f4e6426c1a34aaae3941
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 12 19:51:36 2017 +0100
-
- Lib: Save/restore state for linpools
-
- Also change linpool.current ptr to really point to thr current chunk.
-
-commit ac48e72bf6f9f491824e2de59a035c93aab8f81b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 12 15:56:31 2017 +0100
-
- Fix some minor issues
-
-commit cb5df823acdc54f94b0b85094cb59ac68c83c33a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 12 15:22:01 2017 +0100
-
- Minor CI tweak
-
-commit b5257bea853850809be7f03eb0e1dbb398c56c34
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Dec 12 10:43:56 2017 +0100
-
- Removed '--enable-ipv6' reference.
-
-commit 66acbc8d7f80ce3c197549922b60fca093129047
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 12 00:05:49 2017 +0100
-
- Revive FIB and kernel MPLS code
-
-commit fa5c09a2e708ed505ca140531b98e695fdaf989c
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Dec 11 09:36:21 2017 +0100
-
- Changes to be able to build 2.0.0
-
-commit d4eada9e0f3dc1f1e22b83fc8a8361ae256592ff
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 11 02:05:35 2017 +0100
-
- NEWS and version update
-
-commit c99050cce228b214c2856c6eebefbefffccade7f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 11 01:04:15 2017 +0100
-
- KRT: Fix bug in multipath handling
-
-commit cf3e3845c205dacf2720cdb76a9a004a816d2e6f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Dec 10 22:47:38 2017 +0100
-
- Doc: Documentation update
-
-commit 6b0f5f68a8ae35b05abb144cf998bf537dfa283b
-Author: Maria Jan Matejka <mq@jmq.cz>
-Date: Mon Sep 25 13:00:05 2017 +0200
-
- Switchoff for MPLS in kernel.
-
-commit 67a2eb9177fe0b8a6854775a4fad1f7768f6a94a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Dec 10 13:18:36 2017 +0100
-
- Lib: Check size of nets
-
-commit a32a7b58cebc2838de2ffd94e679d3e1ec9d493a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Dec 10 13:16:31 2017 +0100
-
- Lib: Fix macro/keyword collisions
-
- Old code breaks with some versions of bison
-
-commit 7fc55925beb06059759294e0e9b7bae45465395f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Dec 10 00:55:34 2017 +0100
-
- Several minor fixes
-
-commit ed1d853e5147376086e25f5edae9804cf242d6e0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Dec 8 17:31:33 2017 +0100
-
- Filter: Remove old BGP path mask syntax from tests
-
-commit dea9886454c1c0953b5977dd8a96718be465b962
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Dec 8 17:00:47 2017 +0100
-
- BGP: Link check just for single-hop
-
-commit 3e52d112d714545df3cd97119824ee94c27a0606
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Wed Sep 27 16:55:09 2017 +0200
-
- Docs: Update to v2.0
-
-commit 517d05dff17e881b880ee4fd28a72e827c10e8c3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Dec 8 15:59:44 2017 +0100
-
- Enable ECMP and Link detection by default
-
- ECMP is not enabled on BSD, where it is not supported by BIRD.
-
-commit eb95b5ec1a5c3bd4e57f3a134828f8de2875cb43
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Dec 8 15:16:47 2017 +0100
-
- Nest: Minor formatting changes
-
-commit 49c7ef3b21e51ae7d1969baa52b4d8fd29b22eeb
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Dec 8 14:00:36 2017 +0100
-
- BGP: Fix IPv6 MPLS/VPN multicast SAFI
-
-commit ccee67ca3b607130bf441b6060b88525b5e50ad9
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Dec 8 02:26:17 2017 +0100
-
- BGP: Autoconfigure BGP next hops from preferred addresses
-
-commit 830ba75e6dd369c3e64d122f0537cc85211e56e6
-Merge: 46434a3c 1e8721e2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 7 21:54:47 2017 +0100
-
- Merge commit '1e8721e2aeccfbc3f533e8b8abc07582cee77e9a' into int-new
-
-commit 46434a3cad99260b5a659e5df874eab4615bcb36
-Merge: 4ff15a75 7b2c5f3d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 7 18:35:46 2017 +0100
-
- Merge commit '7b2c5f3d2826e3175bf31b1c36056c9efc587a2b' into int-new
-
-commit 4ff15a75c56531fa2d3858d8250dcef1af4e75b6
-Merge: cd80c9b0 98bb80a2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 7 17:41:09 2017 +0100
-
- Merge commit '98bb80a243b58c43453e9be69d19d0350286549c' into int-new
-
-commit cd80c9b0700ef9533a19ab19d66c38a1722c4e08
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 7 14:21:38 2017 +0100
-
- BSD: Fix in the last commit
-
-commit a6f79ca57f0b4b296f67c2d063fd85a627b611b8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 28 17:43:20 2017 +0100
-
- Timers: Revert temporary names and remove old timer.h
-
-commit 574b2324275d3292e98a8e329f791eb5c799f7f2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 28 17:06:10 2017 +0100
-
- Timers: Fix TBF and some last remains
-
-commit 3b3b0910ffb1b212b1c9ea420db6c575a3ecb71a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 28 15:11:41 2017 +0100
-
- Babel: More changes and bugfixes
-
- Several changes and bugfixes in Babel, namely:
-
- - Exported route parameters stored directly in route table entry
- - Exported non-babel routes no longer stored in per-entry route list
- - Route update, selection and retraction simplified and fixed
- - Route feasibility is evalualated per update and stored with route
- - Unreachable route handling fixed, based on hold interval
- - Added 'show babel routes' command
-
- Overall, it fixes some issues with proper propagation of triggered
- updates, making Babel convergence after topology change almost
- instant.
-
-commit dbf1ed263c1c15f79fb200b4dfe3bffea231f4e4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Nov 8 14:35:52 2017 +0100
-
- Babel: Fix handling of seqno requests
-
- Old behavior has several deficiencies compared to standard behavior
- (no triggered updates for replies, no retransmissions, ...).
-
-commit 672fb78e1272bb49cc2521176effe75e3cb22460
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Nov 8 14:15:11 2017 +0100
-
- Babel: Fix handling of IPv4 retractions
-
- Babel TLV parsing code rejected IPv4 retractions without next-hop,
- although next-hop is needed just for regular updates.
-
-commit 268dc7c8b3c45412fc8f4b0bae451e51c4c48b31
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Oct 27 12:20:58 2017 +0200
-
- Babel: Remove babel_proto ptr from babel_entry
-
-commit 738a57b69bdff6244cf5093ae3997290e6c11324
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Oct 25 17:59:57 2017 +0200
-
- Babel: Fix hello timeout for short hello intervals
-
-commit b47eaefe12d0673af2c7c7ec1a8adff982a958ca
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Oct 25 17:14:08 2017 +0200
-
- Babel: Revamp cost computation and run route selection when cost change
-
- Also fix several minor bugs and add 'limit' option for k-out-of-j
- link sensing strategy. Change default from 8-of-16 to 12-of-16.
- Change IHU expiry factor from 1.5 to 3.5 (as in RFC 6126).
-
-commit f00221fadbb2c85c835cc5e4e69a0d3ce13d31b3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Oct 13 23:46:41 2017 +0200
-
- Babel: Fix unicast seqno requests
-
-commit 38f4721092f5a835248f9f521d34990ec9883dbd
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Oct 13 19:34:34 2017 +0200
-
- Babel: Avoid batch seqno updates
-
-commit 5ee69d11f2e859b77ff04bb4068f43082fd1794f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Oct 13 19:33:42 2017 +0200
-
- Babel: Fix Hello and IHU expiration
-
-commit 8b58f565e4fcd076e2d9fe008c7f2b19e264b319
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Oct 13 12:34:08 2017 +0200
-
- Babel: Update to new timers
-
-commit 6b5cd7c05f82e87d67c1b41296021757a3d952a0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 21 15:38:11 2017 +0200
-
- Sysdep: Remove old timer code
-
-commit 3e405fb188bee0bb8fcf91f574126771c8661afb
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 21 14:43:49 2017 +0200
-
- Nest: Update to new timers
-
-commit cc881bd15561224f507ed7162016114ed2b15a1e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 21 14:14:51 2017 +0200
-
- BGP: Update to new timers
-
-commit b32d557a6eca10c1e1dc2f2ab83e201f53d134b4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jun 20 18:03:06 2017 +0200
-
- OSPF: Update to new timers
-
- Note that recurrent timers are currently limited to ~1 hour.
-
-commit ee528fbd5dc482ceece52832d4a8ea5a08251bfa
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jun 20 15:55:39 2017 +0200
-
- Timers: Add typecast to unit-converting macros
-
-commit 92cc1e745758893a57a2432a0e11e4cd3ad289b7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jun 20 14:30:44 2017 +0200
-
- RIP: Update to new timers
-
-commit c521b3ac324e1c97b22581a06172dcb08fd740f6
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 14 17:02:11 2017 +0200
-
- RAdv: Update to new timers
-
-commit d59c1a295834aa5cc63aceb6769c8413fa0639fe
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 14 16:32:15 2017 +0200
-
- RPKI: Update to new timers
-
-commit 21f4f0f4b0785e30ce2af4741ffa6f2ebdd7d714
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 14 13:15:35 2017 +0200
-
- Kernel: Update to new timers
-
-commit d3fa9e84e98d7b8c726f5e35d6a359971eb98f94
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jun 13 16:52:21 2017 +0200
-
- Timers: Show sub-second times in some protocol outputs
-
-commit 212eda07c4e481e3341ede37b0877fa22bc042a4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jun 13 15:55:13 2017 +0200
-
- Timers: Fix tests after timer change
-
-commit 49fc021337eba2e9cea228e80e1f95ef21b30cd2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jun 13 15:41:49 2017 +0200
-
- Printf: Add support for microsecond times
-
- Use '%t' in bsnprintf() for microsecond times (in btime) with variable
- sub-second precision.
-
-commit f047271cb963c62663687d63b2f7cf8dd5edfbb7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jun 6 16:47:30 2017 +0200
-
- Timers: Parse and format functions for microsecond times
-
- Date/time output (e.g. in logs, show commands) can use %f to specify
- subsecond time. By default, millisecond precision is used in output.
-
-commit 025525266f6861437ca54aca2a86eb505a486baf
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jun 1 12:33:20 2017 +0200
-
- Timers: Replace old timers with microsecond timers
-
- The old timer interface is still kept, but implemented by new timers. The
- plan is to switch from the old inteface to the new interface, then clean
- it up.
-
-commit 28a7d3943ef915c405b3552ae06f639a86f4dc1e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed May 31 15:46:04 2017 +0200
-
- Timers: Integrate microsecond timers to the main loop
-
-commit 534215a18fb3fb7ce5b26c9e6ec1fdb32bf22ae6
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 30 19:12:35 2017 +0200
-
- Timers: Split microsecond timers from BFD code to lib
-
-commit 7c454d918682c072a6ae6ad8e0cd8d35b9edd2aa
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 7 13:44:00 2017 +0100
-
- BSD: Minor fix of penultimate commit
-
-commit abae1cc58b7c4ccf683651a6fcd51cfaecd03566
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 7 13:28:24 2017 +0100
-
- KRT: Minor fix of last commit
-
-commit 153f02da3bce1f3f1a99295648679c71327e8319
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 7 13:06:01 2017 +0100
-
- Nest: Maintain separate IPv4, IPv6 and LLv6 preferred addresses
-
- Also redesign preferred address selection and update protocols to use
- appropriate preferred address.
-
- Based on a previous work by Jan Maria Matejka.
-
-commit 1e8721e2aeccfbc3f533e8b8abc07582cee77e9a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 28 19:33:33 2017 +0100
-
- Babel: Parse flags in Hello TLV
-
- RFC6126bis introduces a flags field for the Hello TLV, and adds a unicast flag
- that is used to signify that a hello was sent as unicast. This adds parsing of
- the flags field and ignores such unicast hellos, which preserves compatibility
- until we can add a proper implementation of the unicast hello mechanism.
-
- Thanks to Toke Hoiland-Jorgensen for the patch.
-
-commit 9ba4b4a63d27943586b76574b7f310ee532509a3
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Thu Nov 9 15:04:05 2017 +0100
-
- Filter test: typo fix
-
-commit 4ae3ee1200b386219673c2168eae996c6207b077
-Author: Jan Maria Matejka <mq@ucw.cz>
-Date: Tue Aug 22 13:47:01 2017 +0200
-
- Babel: Interface address irrelevant for interface pattern matching.
-
-commit 289c1a7968c5a3c0a76124a89eb45de010f1c640
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Mon Aug 21 14:14:07 2017 +0200
-
- Iface address debug dump fix
-
-commit 2d7fb19c3c6eadfbd9b994f5c306e79b7c4ee994
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Oct 10 16:07:54 2017 +0200
-
- OSPF: Add option to disable OSPFv3-AF
-
-commit 2549300b54f262932dd14e6d465926627e6dc8ef
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Oct 9 21:11:53 2017 +0200
-
- OSPF: Fix minor issue in TTL check
-
- The TTL check must be done after instance ID dispatch to avoid warnings
- when a physical iface is shared by multiple instances and some use TTL
- security and some not.
-
-commit f097f7659c7ff226a53c51673158e32fb69a6d21
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Oct 9 20:36:14 2017 +0200
-
- OSPF: Fix next hop calculation for PtP links in IPv4 OSPFv3-AF
-
- In such case, next hop has to be taken from Link-LSA like in broadcast
- case, not from neighbor source address like in other PtP cases.
-
- Also add some checks, comments and code cleanup.
-
-commit d3f4f92b0ece0ce4031087a25735e6cbf0d741e2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Oct 9 01:16:29 2017 +0200
-
- OSPF: Support of address families in OSPFv3
-
- OSPFv3-AF can handle multiple topologies of diferent address families
- (IPv4, IPv6, both unicast and multicast) using separate instances
- distinguished by instance ID ranges.
-
-commit d9573a40ecaf9758690e4482782bebaf7847ba9b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Oct 10 15:06:39 2017 +0200
-
- Doc: Update sgml2* tools
-
- The old ones do not work on current Debian.
-
-commit 7e8d6116df68e96ef4abd64f6b9cbe7406c5985d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Oct 10 13:27:03 2017 +0200
-
- Doc: Fix reference
-
-commit 18352188ed7415ddb3aa7b0d7a2fc16d57a2d5d2
-Author: Michal 'vorner' Vaner <michal.vaner@nic.cz>
-Date: Tue Sep 19 17:23:31 2017 +0200
-
- RAdv: Documentation for more specific routes
-
-commit 7c0bab3a3987b42bc699c4417c7b2e838f189158
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Oct 6 12:22:18 2017 +0200
-
- RAdv: Change specific route options to be per-interface
-
- And change default values of specific route options to be consistent with
- values of default router options.
-
-commit 2a95e63343a94243745e5d7000bb3e0cb61a4a0f
-Author: Michal 'vorner' Vaner <michal.vaner@nic.cz>
-Date: Thu Aug 31 15:40:23 2017 +0200
-
- RAdv: Support for more specific routes (RFC 4191)
-
- The patch implements Default Router Preferences and More-Specific Routes
- (RFC 4191) for RAdv protocol, allowing to announce router preference and
- more specific routes in router advertisements. Routes can be exported to
- RAdv like to regular routing protocols.
-
- Some cleanups, bugfixes and other changes done by Ondrej Zajicek.
-
-commit 5a8b1fb047d675badc17ab24175d0db06d7cc00c
-Author: Michal 'vorner' Vaner <michal.vaner@nic.cz>
-Date: Tue Sep 5 15:50:00 2017 +0200
-
- filter: Allow assigning enums into extended attributes
-
- They are internally ints, but they got refused as a wrong type. This
- fixes setting of the BGP origin and is also needed for RA.
-
-commit cd1d99611e445c9fe2452d05627ccfc624f35c39
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Sep 19 19:55:37 2017 +0200
-
- BGP: Shutdown communication (RFC 8203)
-
- The patch implements BGP Administrative Shutdown Communication (RFC 8203)
- allowing BGP operators to pass messages related to BGP session
- administrative shutdown/restart. It handles both transmit and receive of
- shutdown messages. Messages are logged and may be displayed by show
- protocol all command.
-
- Thanks to Job Snijders for the basic patch.
-
-commit 7b2c5f3d2826e3175bf31b1c36056c9efc587a2b
-Author: Michal 'vorner' Vaner <michal.vaner@nic.cz>
-Date: Thu Sep 14 12:31:15 2017 +0200
-
- Docs: FIB iteration macros
-
-commit 18ea2ea759963a68a1a9f82d50aa9ed90b128df9
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Sep 13 13:10:50 2017 +0200
-
- Doc: Document 'empty' operator
-
- Thanks to Alexander Zubkov for the notification.
-
-commit f2dd602fef2ecf0a6598b817d71ce2ee8fadd5cc
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Sep 12 16:33:29 2017 +0200
-
- Backport some minor changes from int-new
-
-commit 9f4908fe78cb3e5191bca721588ee1acb10876e3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Sep 12 15:49:36 2017 +0200
-
- Nest: VRF support for neighbor cache and olock code
-
- Actually much simpler than expected.
-
-commit 943478b00f585725c3e7406909ee867dcfac5f87
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Sep 6 17:38:48 2017 +0200
-
- Basic VRF support
-
- 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.
-
-commit 98bb80a243b58c43453e9be69d19d0350286549c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Sep 5 00:02:20 2017 +0200
-
- KRT: Fix IPv6 ECMP handling with Linux 4.11+
-
- Starting from Linux 4.11, IPv6 ECMP routes are now notified using
- RTA_MULTIPATH, like IPv4 ones. The patch adds support for RTA_MULTIPATH
- parsing for IPv6 routes. This also enables to parse ECMP alien routes
- correctly.
-
- Thanks to Vincent Bernat for the original patch.
-
-commit 9befc7cc4f26889077ace537019de92903139133
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Sep 4 22:32:45 2017 +0200
-
- BSD: Fix alignment issue
-
- Incorrect structure alignment breaks kernel routing table updates on
- FreeBSD/ARM (and perhaps other platforms).
-
- Thanks to Eugene Sevastyanov for the original patch.
-
-commit 96eace1ea70d7c2bc13672fbeba104d34d8ede4c
-Merge: 08b6a617 5c4dfe0c
-Author: Michal 'vorner' Vaner <michal.vaner@nic.cz>
-Date: Mon Sep 4 13:30:13 2017 +0200
-
- Merge branch 'gitlab-ci'
-
-commit 5c4dfe0c30e5516fac73e6ed8455af2245ebc62a
-Author: Michal 'vorner' Vaner <michal.vaner@nic.cz>
-Date: Thu Aug 17 15:02:35 2017 +0200
-
- Gitlab CI support
-
- Add configuration and docker definitions for tests and builds in Gitlab
- CI platform.
-
- Some of them currently fail, which is a known problem.
-
-commit 08b6a617e862ffc7b7460abb79fe4c198806517c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 29 19:17:35 2017 +0200
-
- RAdv: Some style nitpicks
-
-commit ec7d6a506ecae89e5019ce7fcb380a713be28bce
-Author: Michal 'vorner' Vaner <michal.vaner@nic.cz>
-Date: Thu Aug 17 11:34:25 2017 +0200
-
- RAdv: Configure how long a dead prefix is advertised
-
-commit e2d2b3ef21f082a034e79d0880d4b36428029a59
-Author: Michal 'vorner' Vaner <michal.vaner@nic.cz>
-Date: Fri Aug 11 12:25:36 2017 +0200
-
- RAdv: Buffer prefixes awhile after they disappear
-
- Keep a cache of all the relevant prefixes we send out. When a prefix
- appears, insert it into the cache. If it dies, keep it there for a
- while, marked as dead.
-
- Send out the dead prefixes with zero lifetime.
-
-commit 3ac5d1ce4c10719dd48555521a50d4a9c5eadd15
-Author: Michal 'vorner' Vaner <vorner@vorner.cz>
-Date: Wed Aug 9 16:00:16 2017 +0200
-
- RAdv: Extract prefix option preparation
-
- Put the prefix option preparation into a separate function. We're going
- to reuse that bit of code.
-
-commit e7ed9ecba77162b4c09f34354378b0e752b9078e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 22 14:03:38 2017 +0200
-
- Client: Fix include
-
-commit 080d9e4ce25f8f14e61ba0a81d5385bf8de3e48f
-Author: Michal 'vorner' Vaner <michal.vaner@nic.cz>
-Date: Thu Aug 10 14:35:14 2017 +0200
-
- Nicer log output
-
- non-primary is ugly, just omit it (and use primary in the other case).
-
-commit 5699a2036cfb32cb3a683814f83242eb21e40d02
-Author: Michal 'vorner' Vaner <michal.vaner@nic.cz>
-Date: Thu Aug 10 13:06:05 2017 +0200
-
- Less confusing log message
-
- A non-primary address isn't necessarily secondary, that's an independent
- flag.
-
-commit 15a4421f9cb2c077cc484e3cda94e8710a1d68f5
-Author: Michal 'vorner' Vaner <michal.vaner@nic.cz>
-Date: Thu Aug 10 12:32:30 2017 +0200
-
- Fix bird.conf example
-
- Make it syntactically correct, so it is accepted.
-
-commit 9b776458efdfae0c30b97f3670a1f4646221f072
-Author: Michal 'vorner' Vaner <vorner@vorner.cz>
-Date: Wed Aug 9 13:39:20 2017 +0200
-
- Gitignore: File created by autoreconf
-
-commit da390bb11c8efc70767fc4b6d00bebf558d3b00f
-Author: Michal 'vorner' Vaner <vorner@vorner.cz>
-Date: Wed Aug 9 13:35:55 2017 +0200
-
- Drop stale TODO
-
- A TODO file last updated 5 years ago is useless.
-
-commit 69f73992477a0e29f939f9e2722f705c4ad72a38
-Merge: 5a41eed2 b3fae3a8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Aug 9 12:46:27 2017 +0200
-
- Merge branch 'master' into int-new
-
-commit b3fae3a81796b6deea48445402793660fade5eb6
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Aug 9 12:41:44 2017 +0200
-
- RAdv: Fix typo
-
-commit 1f182675c816e4708312f99dd817fb894f3a90b3
-Author: Michal 'vorner' Vaner <michal.vaner@nic.cz>
-Date: Tue Aug 8 14:40:51 2017 +0200
-
- RAdv: Style updates
-
- Adapt the naming conventions to be a bit closer to the other protocols.
-
- proto_radv -> radv_proto
- struct radv_proto *ra -> struct radv_proto *p
- struct proto *p -> struct proto *P
-
-commit 5a41eed26d1b12861ba0ecddcd7cade335d2a192
-Author: Michal 'vorner' Vaner <michal.vaner@nic.cz>
-Date: Tue Aug 8 14:40:51 2017 +0200
-
- RAdv: Style updates
-
- Adapt the naming conventions to be a bit closer to the other protocols.
-
- proto_radv -> radv_proto
- struct radv_proto *ra -> struct radv_proto *p
- struct proto *p -> struct proto *P
-
-commit 637ed49868c56c0e05467f0e0ddb6aa1231deaa4
-Author: Michal 'vorner' Vaner <michal.vaner@nic.cz>
-Date: Fri Aug 4 10:52:57 2017 +0200
-
- radv: Fix RFC reference in comments
-
-commit afd9845e2636146a66508639614a93167d5d1728
-Author: Michal 'vorner' Vaner <michal.vaner@nic.cz>
-Date: Fri Aug 4 10:52:57 2017 +0200
-
- radv: Fix RFC reference in comments
-
-commit b4a33e21ea3a8d23dee3ed23a515cc7430a38643
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Jul 18 23:48:25 2017 +0200
-
- Configure: Fix a typo in checking of backtrace()
-
-commit a1f5e514ef091b82754f38f0e583af40778c7d97
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 4 23:36:21 2017 +0200
-
- Implement onlink flag for nexthops
-
- Add proper support for per-nexthop onlink flag in routes to handle next
- hop addresses that are not covered by interface IP ranges. Supported by
- kernel and static protocols.
-
- Thanks to Vincent Bernat for the idea.
-
-commit e46128fb50e108e8cfdf6bb6e9ab040e00f5dfdc
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Jun 19 12:46:40 2017 +0200
-
- Filters: Do not clamp EC set values to 16 bit for EC_GENERICs
-
- Thanks to Lennert Buytenhek <buytenh@wantstofly.org> for the patch.
-
-commit 5220cb63e34961b097d3bc274e394c0fa946d7d3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 14 12:34:43 2017 +0200
-
- Babel: Fix pointer arithmetic in subtlv parsing
-
- The subtlv parsing code was doing byte-based arithmetic with non-void pointers,
- causing it to read beyond the end of the packet.
-
- Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
-
-commit 145ebfa1df9ad252af61cce01cc0f09db45f7c9d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Jun 9 14:33:06 2017 +0200
-
- Babel: Parse sub-TLVs and skip TLVs with mandatory sub-TLV
-
- RFC6126bis formally introduces sub-TLVs to the Babel protocol, including
- mandatory sub-TLVs. This adds support for parsing sub-TLVs to the Babel
- protocol and skips TLVs that contain mandatory sub-TLVs, as per the spec.
-
- For details, see section 4.4 of
- https://tools.ietf.org/html/draft-ietf-babel-rfc6126bis-02
-
- Thanks to Toke Høiland-Jørgensen <toke@toke.dk> for the patch.
-
-commit b3c6273efaa15976cc1290f00d5abde4991e184e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Jun 9 13:00:20 2017 +0200
-
- Babel: Implement IPv6 prefix compression on outgoing updates
-
- Previously, the Babel protocol would never use prefix compression on outgoing
- updates (but would parse it on incoming ones). This adds compression of IPv6
- addresses of outgoing updates.
-
- The compression only works to the extent that the FIB is walked in lexicographic
- order; i.e. a prefix is only compressed if it shares bytes with the previous
- prefix in the same packet.
-
- Thanks to Toke Høiland-Jørgensen <toke@toke.dk> for the patch.
-
-commit 300bd0eb85d14523ea7f0a7a3a4d92184f3c4fb3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Jun 9 11:56:20 2017 +0200
-
- Babel: Add documentation for dual-stack operation and options
-
- This updates the documentation for the Babel protocol to mention the fact
- that it now supports dual-stack operation, and adds documentation for the
- new next hop options.
-
- Thanks to Toke Høiland-Jørgensen <toke@toke.dk> for the patch.
-
-commit 4324025f981a8f545cc28ab16426ab7c2d1843cd
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jun 8 12:18:16 2017 +0200
-
- Babel: Add support for dual-stack IPv4/IPv6 operation
-
- This adds support for dual-stack v4/v6 operation to the Babel protocol.
- Routing messages will be exchanged over IPv6, but IPv4 routes can be
- carried in the messages being exchanged. This matches how the reference
- Babel implementation (babeld) works.
-
- The nexthop address for v4 can be configured per interface, and will
- default to the first available IPv4 address on the given interface. For
- symmetry, a configuration option to configure the IPv6 nexthop address
- is also added.
-
- Thanks to Toke Høiland-Jørgensen <toke@toke.dk> for the patch.
-
-commit 801fd81efea5bf51fe459d951e4be95119798b2b
-Merge: 77810030 33f7fbc4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed May 31 14:12:03 2017 +0200
-
- Merge branch 'master' into int-new
-
-commit 33f7fbc42d0490b27e33275d0fc74d3ef55683e4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed May 31 13:31:03 2017 +0200
-
- CLI: Fix bug in symbol handling introduced in previous patches
-
-commit 77810030d2556e3af659d354a2b3d661f58dd735
-Merge: a1dc5267 4fec4306
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 30 14:44:37 2017 +0200
-
- Merge branch 'master' into int-new
-
-commit 4fec43067e27c7a6c20a6ef9909bef0238984a64
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 30 14:43:49 2017 +0200
-
- Workaround for older bisons
-
-commit a1dc5267602062562f9adca7acfbbc2fee3b315e
-Merge: 4b2aef88 b7761af3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 25 23:37:50 2017 +0200
-
- Merge branch 'master' into int-new
-
-commit b7761af34dc4ed3f1bdf874eb85d743b931b0af6
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 25 23:30:39 2017 +0200
-
- Conf: Replace keyword and symbol hash table with generic hash table.
-
- The old hash table had fixed size, which makes it slow for config files
- with large number of symbols and symbol lookups. The new one is growing
- according to needs.
-
-commit 4b2aef8857a9ac23015e410930d2162d945892f0
-Merge: 6aaaa635 c72b660b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 23 18:45:33 2017 +0200
-
- Merge branch 'master' into int-new
-
-commit c72b660b7423b0fb687794b722884cd6e5e6c562
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 23 18:39:20 2017 +0200
-
- Client: Fix isspace() calls
-
- Function isspace() expects to get *unsigned* chars (encoded as ints),
- not that it matters for plain ASCII.
-
-commit 6aaaa63519c88c872f15dcc639643103b563b1c6
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 23 17:22:53 2017 +0200
-
- Change parser to handle numbers as unsigned
-
- Lexer always parsed numbers as unsigned, but parser handled them as
- signed and grammar contained many unnecessary checks for negativity.
-
-commit 0705a1c5658c2682c915007f466f55d2a8f7ec14
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu Jun 30 15:04:49 2016 +0200
-
- Add a hint for an invalid IP prefix
-
- bird> eval 200.210.220.0/16
- Invalid IPv4 prefix 200.210.220.0/16, maybe you wanted 200.210.0.0/16
-
- bird> eval 1000:2000::/8
- Invalid IPv6 prefix 1000:2000::/8, maybe you wanted 1000::/8
-
-commit 734e9fb8a933898cd3396786c06728bce6a754e5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 23 13:12:25 2017 +0200
-
- Minor cleanups and fixes
-
-commit bb7aa06a48f52813a019861a0e06ce9fe4d20c4b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri May 19 00:33:52 2017 +0200
-
- Fix type mixing in flowspec formatting
-
- Variable of u64 type was passed to vararg function as uint.
-
-commit e521150b8f6bed678527da1cf96e75026b86fe4f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 18 14:51:36 2017 +0200
-
- Fix VPN-RD parsing on 32-bit systems
-
- When shift count >= width of type the behavior is undefined.
-
-commit 5a9169e152779ac6f99e2eccb79a2a2f6e2c76b2
-Merge: 7d5e61a6 78e4dac9
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 18 14:28:03 2017 +0200
-
- Merge branch 'master' into int-new
-
-commit 78e4dac993ad018bee98e245f6e858e18cc5db8a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 18 14:26:57 2017 +0200
-
- Fix some forgotten warnings
-
-commit 7d5e61a66a3d4ecd004f3aa44a3d1bd3682ccf07
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 18 13:29:38 2017 +0200
-
- Fix of the previous fix
-
- Avoid empty macro argument to avoid default behavior.
-
-commit 271fa063a3e2078d7a046146ac2da3718b080cfa
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 18 12:05:09 2017 +0200
-
- Fix minor bug in configure script
-
- Space in action branch breaks build on some platforms.
-
-commit 9b701e69cc812260788eced3370c7e65cd0e25fe
-Merge: d19617f0 d6e01ff9
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed May 17 17:37:27 2017 +0200
-
- Merge branch 'master' into int-new
-
-commit d6e01ff90024fcee259eb145f38a0f5b000e4798
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed May 17 17:30:23 2017 +0200
-
- Fix of the previous commit
-
-commit dab6706abad3be5b8efd44fe860689df44d20e83
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed May 17 17:03:36 2017 +0200
-
- History lib may be integrated to Readline lib
-
-commit 81edd3b3a78265b87c2ec6100dce852db5f40d2b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed May 17 16:05:07 2017 +0200
-
- Fix build on systems with dirty headers
-
-commit d19617f06b4526bccc2fc5e5e15c43c754b99a4d
-Merge: 144c10fa 31874783
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed May 17 14:50:00 2017 +0200
-
- Merge remote-tracking branch 'origin/int-new' into int-new
-
-commit 144c10fad1ed6a2520abd1c43501ce00ea2699db
-Merge: 1c5b4c5d a01e951d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed May 17 14:38:04 2017 +0200
-
- Merge branch 'master' into int-new
-
-commit a01e951d0fa452fea10a9faca0fbdc9c7cacff23
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed May 17 13:17:40 2017 +0200
-
- One more configure cleanup
-
- Simplify BIRD client library checks, add proper devel header checks and
- prefer dependency on just tinfo than full ncurses.
-
-commit 31874783c44dd59c355921908016f9b42d22ef02
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue May 16 15:47:41 2017 +0200
-
- Client: manipulate history only if interactive
-
-commit 05d47bd53e71480f1b276bd895f1c25088201e48
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue May 16 14:31:16 2017 +0200
-
- Linpool: default allocation size
-
-commit b880e3ffaea12c3231975157bc51b5f90a2f2433
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue May 16 10:35:10 2017 +0200
-
- Bird readline client saves its history.
-
-commit 1c5b4c5d5b937fe6bbc3a599296e40a05f022b33
-Merge: fd1f355b b845ea09
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 16 14:18:25 2017 +0200
-
- Merge branch 'master' into int-new
-
-commit b845ea097c285f17641d60df3dea4d3e820a1475
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 11 01:29:39 2017 +0200
-
- Remove autoconf macros for time_t and alignment
-
- Replaced by constant compile-time expressions. CPU_STRUCT_ALIGN is not
- really correct, but is consistent with the old behavior.
-
-commit b81a73d1fbddda4c319899910d751215ff3d29ca
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 9 18:58:22 2017 +0200
-
- Minor autoconf cleanups
-
- Make indentation and quotation consistent in configure macros.
- Also remove --with-sysinclude option, which was broken for 7 years
- and nobody complained.
-
- Thanks to Ruben Kerkhof for source patches.
-
-commit e40542ef3a415d163a5ff5fee26c888fead79fa6
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 9 16:46:41 2017 +0200
-
- Minor autoconf cleanup and documentation update
-
-commit c253ec3a9c45cfce3661f38bc2f5156d4bdd7969
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 9 13:44:02 2017 +0200
-
- Some more autoconf cleanups
-
- Replace integer type width detection with C99 fixed-width types.
- Also remove some unused or obsolete code.
-
- Thanks to Ruben Kerkhof for the patchset.
-
-commit f8d44b01df5d93681e116ccbff39cc4618632825
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Mon May 15 12:10:51 2017 +0200
-
- Nest: split route show into separate file
-
-commit fd1f355b7b24f354f7d57f127911b4fd98354b34
-Merge: 525a88d8 71652572
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 9 17:37:38 2017 +0200
-
- Merge branch 'master' into int-new
-
-commit 71652572e35bfeea2f346b7c700a3050bf27e466
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 9 16:46:41 2017 +0200
-
- Minor autoconf cleanup and documentation update
-
-commit 525a88d87930d01d4301e2723dda3dca208cd3d4
-Merge: 95639d95 5d6dc930
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 9 14:07:14 2017 +0200
-
- Merge branch 'master' into int-new
-
-commit 5d6dc93043a0bc77b1e0a71ea8dfe15325024b45
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 9 13:44:02 2017 +0200
-
- Some more autoconf cleanups
-
- Replace integer type width detection with C99 fixed-width types.
- Also remove some unused or obsolete code.
-
- Thanks to Ruben Kerkhof for the patchset.
-
-commit 95639d957758cba04aeec7ef319c2de2a5ff52da
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed May 3 12:56:17 2017 +0200
-
- Device: Fix option 'primary'
-
-commit 8e25f7d229fcb6591e9cd96d3cc61767b3c8dea7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Apr 29 22:14:36 2017 +0200
-
- One last update to NEWS and example
-
-commit 92a85089b887a91d0b686cd050ac59bb465c602f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Apr 29 21:49:13 2017 +0200
-
- NEWS and version update
-
-commit b644a490f03d27e0bd8ce5106f6205d122b16191
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Apr 29 18:37:51 2017 +0200
-
- BSD: Fix address scan on OpenBSD
-
-commit 1d21306785392e997099362fbc863b050fe359da
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Apr 29 00:36:35 2017 +0200
-
- Minor fixes
-
-commit e919601aaf29615edb2a231e58a358c2c5c9d286
-Merge: 5ca4bd5d 33b6c292
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Apr 28 11:19:12 2017 +0200
-
- Merge master into int-new
-
-commit 5ca4bd5d9018bb7572f10825e1ca431444601be7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Apr 26 17:13:45 2017 +0200
-
- Flowspec: Max tcp mask length is 12 bits
-
-commit a1de692a6999106c645a7b28d4124b68f63bd6f5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Apr 26 14:38:19 2017 +0200
-
- Doc: BIRD example update
-
-commit 751fb2366ce6c9ebe70fb6ef769608dd34e736e7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Apr 26 14:11:28 2017 +0200
-
- Test: Fix broken test for filters
-
-commit 69fddac0525b1b0c940d778a161ed3a0a742ed6f
-Merge: 93a3661c b2949999
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Apr 26 12:30:22 2017 +0200
-
- Merge branch 'int-new' of gitlab.labs.nic.cz:labs/bird into int-new
-
-commit 93a3661c15c612e1de807524649482765b2c2702
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Apr 26 12:26:14 2017 +0200
-
- Flowspec: split net_format_flowspec into several functions
-
-commit 2af807a83f6aa120b9d0b7b68dc04e543840e2e6
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Apr 26 12:19:39 2017 +0200
-
- Test: fixed broken test for VPN RD output
-
-commit a2fd34f81fe4259d5ef27f1684177753a03f0f90
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Apr 26 10:53:48 2017 +0200
-
- Debug: Add a Makefile rule for assembler intermediates.
-
- The main Makefile rules directly compile to object files;
- this target is only for debug purposes.
-
-commit b29499996bbc1612a63a7e715bb53a8abf0940e3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Apr 25 19:02:31 2017 +0200
-
- Nest: Update of show route cmd
-
- Some code cleanup, multiple bugfixes, allows to specify also channel
- for 'show route export'. Interesting how such apparenty simple thing
- like show route cmd has plenty of ugly corner cases.
-
-commit 6f535924ebbb5a08d96c4a8d0cf0984b130a0995
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Apr 6 17:16:49 2017 +0200
-
- Filter: Fix reconfiguration of roa_check()
-
-commit 4278abfe272de64556c4d6df19efc0c853527851
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Apr 5 16:16:04 2017 +0200
-
- Check validity of dest w.r.t. net_type
-
- Allow to define static roa/flow routes without dest.
-
-commit 3484cb9a654cab9bd2c2b1164528d3000a22a79e
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue Apr 18 13:45:50 2017 +0200
-
- Client: separate config syntax structure for "show route for"
-
-commit 7ee07a3c3966ec787bcb7e5100c1add4abef9213
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Apr 5 15:11:10 2017 +0200
-
- Nest: Fix route lookup
-
-commit 97e48b6a18142d1aa11e909d094812f3fff4ea61
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Apr 5 14:26:37 2017 +0200
-
- Adding also our copy of struct rtvia.
-
-commit 54635f435a76ad0f3141b09a9c5072f6e2e8c319
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Apr 5 14:15:43 2017 +0200
-
- Include local lwtunnel.h unless found in system
-
-commit 711d617dc106a8af34c6c8f3500f337a792f1f3d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 30 14:00:08 2017 +0200
-
- BGP: Add support for SAFI 129 (VPN multicast)
-
- Which, in contrast to SAFI 128, does not use MPLS labels.
-
-commit ffb38dfb8b454dc23cd08836d7236a5a9c9f80c1
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 30 13:29:34 2017 +0200
-
- Static: Support for dual-AF IGP tables
-
- When recursive routes with hybrid next hops (e.g. IPv6 route with IPv4 next
- hop) are allowed, we need both IPv4 and IPv6 IGP tables.
-
-commit 2faf519cf9d34f90d59081ee5f8d6976c62f4f6e
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Thu Mar 30 13:52:01 2017 +0200
-
- Client: multitable version of show route
-
-commit bff21441dd9b8cd526680e9977f8eceb9912ca6f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 29 16:10:00 2017 +0200
-
- Netlink: Change default kernel metric to 32
-
- This avoids collisions with non-BIRD routes in kernel tables.
-
-commit ed6100441ec6e95797d3692925b85c627a4e8df1
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 29 15:55:39 2017 +0200
-
- Netlink: Better handling of an error case
-
-commit 6fe11c994151344c38d1b080c3f2e1280b4b2448
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 29 15:31:04 2017 +0200
-
- BGP: Simplify igp table options
-
-commit c49e4a65657e9abff1b94cbfdc7686efe7376a7a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 29 13:48:23 2017 +0200
-
- BGP: Update list of supported standards
-
-commit 7074be22f1a8a42ec738fd34125e36a732f311a5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 28 18:14:32 2017 +0200
-
- Netlink: Fix device route delete
-
-commit 5dbeb87ec96157ca95c84d881e014614dd3164a3
-Merge: 2282030b d1b8fe93
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue Mar 28 17:35:57 2017 +0200
-
- Merge branch 'int-new' of gitlab.labs.nic.cz:labs/bird into int-new
-
-commit 2282030b2a4fb07805a0cd8b82a9aab73b7586d8
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue Mar 28 17:35:32 2017 +0200
-
- Simpler format of VPN RD
-
-commit d1b8fe93f018fb272c3a423df1ab13d86c159f00
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 28 16:05:40 2017 +0200
-
- Netlink: Fix bug in RTA_PRIORITY handling
-
-commit ef57b70fa51687865e5823c0af2df2c6de338215
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Mar 26 19:20:15 2017 +0200
-
- BGP: Support for routes with mixed-AF next hops
-
- Covers IPv4/VPNv4 routes with IPv6 next hop (RFC 5549), IPv6 routes with
- IPv4 next hop (RFC 4798) and VPNv6 routes with IPv4 next hop (RFC 4659).
- Unfortunately it also makes next hop hooks more messy.
-
- Each BGP channel now could have two IGP tables, one for IPv4 next hops,
- the other for IPv6 next hops.
-
-commit 01111fc42c461202d427260fb56807eac256e8d5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Mar 23 14:10:42 2017 +0100
-
- BGP: Bugfix in VPN NLRI encoding
-
-commit 1e37e35c3ea88672c677ea7ac63fe0b9df609b0c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 22 15:00:07 2017 +0100
-
- BGP: Support for MPLS labels and VPN SAFI
-
- Basic support for SAFI 4 and 128 (MPLS labeled IP and VPN) for IPv4 and
- IPv6. Should work for route reflector, but does not properly handle
- originating routes with next hop self.
-
- Based on patches from Jan Matejka.
-
-commit ead7b8f498ddefc0b7373cbba78f9a7ba1dddaa9
-Merge: da3cf9ea 61e501da
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Mar 22 14:54:00 2017 +0100
-
- Merge branch 'nexthop-merged' into int-new
-
-commit 61e501da895553abfd2424e56470ab2b457beac4
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Mar 22 14:53:37 2017 +0100
-
- Filter: Check whether IP is 4 or 6
-
-commit 3c74416465d77c0e79eeaaeb988e471663484b5d
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Fri Mar 17 15:48:09 2017 +0100
-
- Nexthop: Fixed recursive route mpls label merging
-
-commit a5d2a34497853a02692a0b8ea812f44d6820a399
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 14 17:18:50 2017 +0100
-
- Minor cleanups
-
- BTW, 'prefices' is hypercorrection, as 'prefix' is from 'praefixum' with
- plural 'praefixa'.
-
-commit 7a855725f2ffde508da0c7ee01dc1bcd6e0a5d93
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 14 13:46:51 2017 +0100
-
- Some autoconf cleanups
-
- The patch allows to use autoreconf, replaces some long obsolete
- constructs and does some other minor cleanups. Also, the file
- configure.in is renamed to configure.ac, as the old name has been
- deprecated for a long time.
-
- Thanks to Ruben Kerkhof for the patchset.
-
-commit 33b6c292c3e3a8972d0b9f43d156aae50db65720
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 14 12:56:47 2017 +0100
-
- BGP: Allow to specify interface for regular sessions
-
- This may be useful if multple interfaces share the same network range.
-
- Thanks to Fritz Grimpen for the original patch.
-
-commit 27f6ba651ebb07201f7964c8f14a254267f0f26a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Mar 11 16:21:28 2017 +0100
-
- BGP: Fix bug in ADD_PATH
-
- When a BGP session with ADD_PATH is restarted and the neighbor do not
- announce ADD_PATH capability during reconnect, the accept_ra_types is
- still set to RA_ANY.
-
- Thanks to Lennert Buytenhek for the bugreport
-
-commit 8c9986d310c58b26c000375be00be0deb9c2e360
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Mon Mar 13 13:50:32 2017 +0100
-
- Filters: VPN Route Distinguishers, Prefix Type, Docs Update
-
-commit 54334b5667158d4b0af55201f327faeb80c05e0e
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Thu Mar 9 15:57:54 2017 +0100
-
- Filter: ROA check test and mixed prefix test
-
-commit 665be7f6bdbf1fd8dbac45cef533bd4b1df35d4d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 8 16:27:18 2017 +0100
-
- Nest: Minor fixes in show route
-
-commit 7126cadf80fce1af2bb4aa33f8bcb7c6b5ff1a47
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 7 18:42:41 2017 +0100
-
- Static: Minor overhaul
-
- The patch fixes several bugs introduced in previous changes, simplifies
- the protocol by handing routes uniformly, introduces asynchronous route
- processing to avoid issues with separate notifications for each next-hop
- in ECMP routes, and makes reconfiguration faster by avoiding quadratic
- complexity.
-
-commit 5ffb62dd034db0beab5ef245ad7dd31aadefb2d8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 21 14:56:14 2017 +0100
-
- Nest: Allow iface-only neighbors
-
-commit da3cf9eae3085d43a2299bae63e6ceb3828856a5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 8 17:37:11 2017 +0100
-
- Update OSPF and RIP protocol names and related documentation
-
-commit 039a65d0e4f33f8432caae78cd919d2fd2052eea
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Fri Feb 24 14:05:11 2017 +0100
-
- Nexthop: Fixed hostentry
-
-commit 1950a479c020d1972b6007d8ea0f66e3d4f8564a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Feb 23 16:32:07 2017 +0100
-
- BGP: Allow exchanging LOCAL_PREF with eBGP peers
-
- Adds option 'allow bgp_local_pref' to override the usual restriction of
- LOCAL_PREF on eBGP sessions.
-
- Thanks to Lennert Buytenhek for the patch.
-
-commit 93f50ca31757fc8e416093e0c73681e070294a3d
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Feb 22 14:02:03 2017 +0100
-
- Nest: names for nhu_state values
-
- It took too much time to analyze what's the meaning of nhu_state values
- so I spent less than the same amount of time documenting it.
-
-commit b2b84359abd382c1ec5a266b211276fbae7da0fc
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Feb 22 12:02:28 2017 +0100
-
- Babel post-merge fixes
-
-commit c609d039860f97f400d2cf0e9ca2b4e87b3fd1cc
-Merge: 62e64905 2be9218a
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Feb 22 11:58:04 2017 +0100
-
- Merge branch 'int-new' into nexthop-merged
-
-commit 2be9218a3b1dfcc8e42c8d118e95f2074d9f7a7c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Feb 20 02:28:04 2017 +0100
-
- BGP: Update RFC references
-
-commit 62e64905b76b88da72c522eac9276a74f60c9592
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Feb 20 02:26:45 2017 +0100
-
- Several minor fixes
-
-commit 4e379bde60172823452cf96e9c0b6b1737c490f0
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Feb 19 12:02:39 2017 +0100
-
- BGP: Update RFC references
-
-commit 9be12a7d95d668a64922f935057c0b401b58ab75
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Feb 19 11:25:16 2017 +0100
-
- Doc: Fix RIP example
-
- Thanks to Steve Leung for the bugreport.
-
-commit 30c734fc73648e4c43af4f45e68ac2de3d7ddea1
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Feb 17 22:54:06 2017 +0100
-
- Static: Fix bug in static route filter expressions
-
- During reconfiguration, old and new filter expressions in static routes
- are compared using i_same() function. When filter expressions contain
- function calls, it is necessary that old filter expressions are the
- second argument in i_same(), as it is internally modified by i_same().
- Otherwise pointers to old (and freed) data appear in the config
- structure.
-
- Thanks to Lennert Buytenhek for tracking and reporting the bug.
-
-commit c259669fa33ca13b5c6ae60eb8ffa0874ddc01b2
-Merge: 82f42ea0 da65a3d8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Feb 8 14:34:48 2017 +0100
-
- Merge branch 'master' into int-new
-
-commit 82f42ea09176afdb67ab119258d714e8c8e54d12
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 7 15:55:51 2017 +0100
-
- BGP: Minor cleanups
-
-commit da65a3d898fde0ce567782d86919a66e29916ed7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 24 15:35:38 2017 +0100
-
- Filter: Fix missing case for !~ operator
-
- Thanks to Vincent Bernat for the patch.
-
-commit d8022d26fc64121c3416abfdb4c38fcbaf81c12e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 24 02:00:35 2017 +0100
-
- BGP: Partial support for IPv4 routes with IPv6 next hop (RFC 5549)
-
- Mostly capability signalling
-
-commit 5509e17d0c1b4e75d5911864f75ba119769e5725
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Jan 22 16:32:42 2017 +0100
-
- BGP: Support for AS confederations (RFC 5065)
-
-commit f6e6c3b5a5997ffc67d96785bbde76bcec072890
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 17 13:21:25 2017 +0100
-
- Fix IP_HDRINCL usage on FreeBSD 11
-
- FreeBSD 11 changed endianity of ip_len field from host order to network
- order. Also DragonFly BSD allegedly expects network order here.
-
- Thanks to Olivier Cochard-Labbé for the patch.
-
-commit f8aad5d5b7601d0500841e57bafa5796cc3156ab
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Dec 23 23:03:26 2016 +0100
-
- Minor cleanups
-
-commit d311368bc58842552e25744a0aae9a09c42cda9f
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue Feb 9 14:53:29 2016 +0100
-
- VPN4 and VPN6 literals
-
- From now on, protocol static accepts VPN4 and VPN6 addressess.
- With some concerns about VPN6 Route Distinguishers, I finally chose
- to have the same format as for VPN4 (where it is defined by RFC 4364).
-
-commit d47c3d64b2733baea756f1bb37ef09f10d7f9644
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue Aug 9 14:47:51 2016 +0200
-
- MPLS: Label stack concatenation for recursive routes
-
-commit d14f8c3c45f7e33a7e54ebc0d45bdb0295d70301
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Fri Mar 4 12:55:50 2016 +0100
-
- Netlink: MPLS routes in kernel
-
- Anyway, Bird is now capable to insert both MPLS routes and MPLS encap
- routes into kernel.
-
- It was (among others) needed to define platform-specific AF_MPLS to 28
- as this constant has been assigned in the linux kernel.
-
- No support for BSD now, it may be added in the future.
-
-commit f2010f9c65ca69584c34c762fb3e5e957958478e
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Mon Jun 13 15:49:53 2016 +0200
-
- Static: Protocol rework wrt. struct nexthop changes; MPLS label support
-
-commit 33ad6e0188b56f682a012ca1b782812c96285d51
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Mar 2 14:37:18 2016 +0100
-
- MPLS: added net_addr_mpls variant of net_addr
-
-commit ec5e5d23faa482495c84163c4ae38d9a31bdc00f
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Fri Jun 10 14:34:41 2016 +0200
-
- Nexthop: Support for label stack in nest
-
-commit 5b208e296fed0beddce16188478c5119df610d89
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue Jun 7 11:46:07 2016 +0200
-
- Removing (struct rta)->cast. Never used.
-
-commit 4e276a8920ed0496836f002f144943ab42f120f6
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Fri May 6 15:48:35 2016 +0200
-
- Merged multipath and single-path data structures.
-
- Dropped struct mpnh and mpnh_*()
- Now struct nexthop exists, nexthop_*(), and also included struct nexthop
- into struct rta.
-
- Also converted RTD_DEVICE and RTD_ROUTER to RTD_UNICAST. If it is needed
- to distinguish between these two cases, RTD_DEVICE is equivalent to
- IPA_ZERO(a->nh.gw), RTD_ROUTER is then IPA_NONZERO(a->nh.gw).
-
- From now on, we also explicitely want C99 compatible compiler. We assume
- that this 20-year norm should be known almost everywhere.
-
-commit 017da76b729cc36c4a3416995b06386235660f42
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 21 16:46:47 2016 +0100
-
- NEWS and version update
-
-commit 2c33da507046c25d87741fe0ce7947985c8c7a10
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue Dec 20 20:13:08 2016 +0100
-
- Netlink: fix occasional netlink hangs on busy machines
-
-commit 256cc8ee0867d7f5314d3a3d7db5429d2bf16b4e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 20 17:39:59 2016 +0100
-
- BGP: Report capabilities in show protocols all
-
-commit 7d95c44572d79ef15ec8b0220950b4e4374c6bc6
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 15 15:31:25 2016 +0100
-
- OSPF: Fix ECMP external merging
-
- The variable nfa is not cleaned before each loop iteration and can have
- a wrong value of nfa.nhs_reuse from the previous step.
-
- Thanks to Bernardo Figueiredo for the bugreport and analysis.
-
-commit eeba61ccd5d1757fd79fcb0cd42b8dee9f941d7e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 13 20:18:11 2016 +0100
-
- Minor cleanups
-
-commit 9e7d3a781075b39a7e0f97e63b6f313955daa661
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 13 17:34:42 2016 +0100
-
- OSPF: Fix net-summary origination combined with stubnet option
-
- Stubnet nodes in OSPF FIB were removed during rt_sync(), but the pointer
- remained in top_hash_entry.nf, so net-summary LSA origination was
- confused, reported 'LSA ID collision' and net-summary LSAs were not
- originated properly.
-
- Thanks to Naveen Chowdary Yerramneni for bugreport and analysis.
-
-commit 5e8df049fbf53220735a2eeb6c751e1758869a18
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Dec 10 00:11:26 2016 +0100
-
- Babel: Update to integrated branch
-
-commit 2119ae74c2e3b101bb8c6f5f0413b143d9978c9c
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Dec 7 20:31:12 2016 +0100
-
- Documentation build system fix
-
-commit 5546aad260a3e569e86e2fd2b5f613202ac70be3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 7 19:56:42 2016 +0100
-
- NEWS and version update
-
-commit 66e5dc157af41547f3806a5980183d95ac9bfcd1
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 7 19:16:02 2016 +0100
-
- Doc: Add MP-BGP example config file
-
-commit ac3ad139f648184d44707ab145fde3a03ef5cb6e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 7 18:28:07 2016 +0100
-
- BGP: Add support for flowspec (RFC 5575)
-
-commit b7605d5c953902b461e5c9e87aa3dfa60ddce5bc
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Dec 7 17:17:04 2016 +0100
-
- Doc: Example simple config
-
-commit c42ecaab8d606ae1362a46210e2bc02dbf6f1476
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 7 16:27:12 2016 +0100
-
- Tests: Fix build
-
-commit a7848dd880a902f465eecd9ed9ea64673548874a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 7 16:20:38 2016 +0100
-
- Client: No need for birdlib functions
-
-commit 77234bbbde6bc328871af695e4450e6773adbafa
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 7 15:36:15 2016 +0100
-
- Basic flow specification support (RFC 5575)
-
- Add flow4/flow6 network and rt-table type and operations, config grammar
- and static protocol support.
-
- Squashed flowspec branch from Pavel Tvrdik.
-
-commit b94e5e58dbd33f4d2b9d721c51a9c8c4d8f77bea
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Dec 7 15:35:35 2016 +0100
-
- RPKI: fixed some of the extended warnings
-
-commit ad88b94bca78e010357a6c7806e1d5e01701d4a7
-Merge: d15b0b0a af62c0f9
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Dec 7 15:30:46 2016 +0100
-
- Merge branch 'int-new-rpki-squashed' (early part) into int-new
-
-commit d15b0b0a1b494c14b139d2d28706d82cd6e2f139
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Dec 7 14:11:28 2016 +0100
-
- BGP redesign
-
- Integrated and extensible BGP with generalized AFI handling,
- support for IPv4+IPv6 AFI and unicast+multicast SAFI.
-
-commit af62c0f9f1f6382fe88c8ae5e514f70c0b5b6d05
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Dec 7 14:15:35 2016 +0100
-
- LibSSH may be switched off together with RPKI
-
-commit cdbe1defa4b783715ed29d8d253a55d3efe0b9ed
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Dec 7 09:13:29 2016 +0100
-
- SSH: Commented quirk based on undocumented behavior of LibSSH
-
-commit f7f70bed8f5fd50873f92b6e119de8864c2631a8
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Dec 7 09:12:06 2016 +0100
-
- Make: upgrade Babel makefiles
-
-commit cd6ca9b1f6e5f71667c1fe6027cfb865f1dcebc1
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu Jun 30 14:56:09 2016 +0200
-
- filter/test.conf: add ROA check and operator tests
-
-commit e58f8c28d252a9979c07b478091b8d0ef40a9f22
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Jun 29 12:21:43 2016 +0200
-
- Add `.maxlen' operator to all ROA prefixes in filters
-
- Example:
- bird> eval (1.2.0.0/16 max 20 as 1234).maxlen
- 20
-
- Todo: Should be described in user docs
-
-commit 69ae5784509d51ee928c99b8b066f68a166bfe18
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Jun 29 12:08:28 2016 +0200
-
- Add `.asn' operator to all ROA prefixes in filters
-
- Example:
- bird> eval (1.2.0.0/16 max 20 as 1234).asn
- 1234
-
- Todo: Should be described in user docs
-
-commit f6e8e141df63cd86e344ca659637f23d638d47a2
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Jun 29 09:56:33 2016 +0200
-
- Check table type at `show route for ...'
-
-commit 65d2a88dd2aaef7344cfa62918e3ddf4c72ca50a
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Thu Sep 17 17:15:30 2015 +0200
-
- RPKI protocol with one cache server per protocol
-
- The RPKI protocol (RFC 6810) using the RTRLib
- (http://rpki.realmv6.org/) that is integrated inside
- the BIRD's code.
-
- Implemeted transports are:
- - unprotected transport over TCP
- - secure transport over SSHv2
-
- Example configuration of bird.conf:
- ...
- roa4 table r4;
- roa6 table r6;
-
- protocol rpki {
- debug all;
-
- # Import both IPv4 and IPv6 ROAs
- roa4 { table r4; };
- roa6 { table r6; };
-
- # Set cache server (validator) address,
- # overwrite default port 323
- remote "rpki-validator.realmv6.org" port 8282;
-
- # Overwrite default time intervals
- retry 10; # Default 600 seconds
- refresh 60; # Default 3600 seconds
- expire 600; # Default 7200 seconds
- }
-
- protocol rpki {
- debug all;
-
- # Import only IPv4 routes
- roa4 { table r4; };
-
- # Set cache server address to localhost,
- # use default ports tcp => 323 or ssh => 22
- remote 127.0.0.1;
-
- # Use SSH transport instead of unprotected transport over TCP
- ssh encryption {
- bird private key "/home/birdgeek/.ssh/id_rsa";
- remote public key "/home/birdgeek/.ssh/known_hosts";
- user "birdgeek";
- };
- }
- ...
-
-commit 2706747f66ab0e7a7f2b8acc6bd7fbd376647258
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu Jun 9 10:11:39 2016 +0200
-
- Client: Includes stdlib.h for malloc()
-
-commit 5df4073c81942ea119de90a81431bae71c87157b
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Nov 30 10:40:57 2016 +0100
-
- filter/test.conf: Minor changes in order of calls
-
-commit 0eb7f17d9a5f29ffa8edccf9e2698f3fd70b2f22
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Nov 30 11:55:33 2016 +0100
-
- nest/a-path.c: Fix description of BS constant (block size)
-
-commit bd7958776baede8175505aa6813ffa96f3ec43fa
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Nov 30 10:21:43 2016 +0100
-
- conf/conf.h: Fix a description of a variable in a structure
-
-commit 1b7ddb0ea01aae0be6cb5f89259bad88b5066b1a
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Nov 30 10:17:23 2016 +0100
-
- conf/conf.c: Revert some includes removing
-
-commit 4abe781c27abea5f8dd0e041106ea6511c210cb7
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Nov 30 10:11:12 2016 +0100
-
- Remove filter/test_bgp_filtering.conf file
-
- It was an example filtering configuration from BIRD's wiki.
-
-commit 012a0d6bf8761253c67c40ac236e27b2f6b6ce43
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Nov 30 10:06:37 2016 +0100
-
- Merge test6.conf IPv6 tests into test.conf
-
-commit ed1a908e535e4333b358d83b472453a2ad6d3f51
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Nov 25 11:51:38 2016 +0100
-
- BGP: Fix memory leak in graceful restart code
-
- Prefix and bucket tables are initialized when entering established state
- but not explicitly freed when leaving it (that is handled by protocol
- restart). With graceful restart, BGP may enter and leave established
- state multiple times without hard protocol restart causing memory leak.
-
-commit c39a1cb17e396b9c94eec6af3ac26fd333adc3c6
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Nov 16 14:05:59 2016 +0100
-
- filter/test.conf: Extend tests
-
-commit 0ed1e850913cb9a9b939c616b90312070c65797e
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Nov 16 13:46:08 2016 +0100
-
- filter/test.conf: Reorder tests
-
- Tests are sorted from trivial tests to more complex tests
-
-commit 7dea7ccb1074e83d0c5ea2f667deca1f0c938e72
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Nov 16 12:18:06 2016 +0100
-
- filter/test.conf: Replace print func with assert and format
-
-commit 4b135d095860cf861ff47c24a10169faa41fe35a
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Nov 16 12:15:43 2016 +0100
-
- Birdtest: Add function format in grammar for stringify expression
-
-commit bb721f0d6d00bc2d7944640bfaf1cb266060d972
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Nov 16 12:10:34 2016 +0100
-
- Add lp_strdup function for string duplication on linpool
-
-commit 3ec0bedc6077ebd2716f29c68155bab806aaa8d6
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Nov 16 11:09:55 2016 +0100
-
- Birdtest: Remove bt_assert command from term
-
- The bt_assert function does not return any value, so it was useless to
- have a option in term definition.
-
-commit 45ec4ce82a3b82f27ff6c44ad11570606733775e
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Nov 16 11:03:39 2016 +0100
-
- Lexer: Add a quotation mark back while parsing quotes
-
- Thanks to Ondrej Zajicek for code.
-
-commit 261816b0d4f3d4549a4402b95541b82fc7f10a4b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 15 16:24:39 2016 +0100
-
- BGP: Cluster list item should be prepended
-
- Commit 3c09af41... changed behavior of int_set_add() from prepend to
- append, which makes more sense for community list, but prepend must be
- used for cluster list. Add int_set_prepend() and use it in cluster list
- handling code.
-
-commit 5e3cd0e5b56e6c58cfba4d0d38fbbbed3657889d
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Fri Nov 11 17:43:09 2016 +0100
-
- Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0
-
-commit fa71b268a8d15d579f50d7f4f92e2edb3b431e05
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Fri Nov 11 17:03:43 2016 +0100
-
- Birdtest: Put hard new lines for strict line width
-
- This patch ensures width of output lines from testing framework (not
- debug output). So output piped lined into file that has default width 80
- cols is now correctly wrapped.
-
-commit fd328869cc2510808074591f7b9f1b71c6439ec3
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Fri Nov 11 17:02:16 2016 +0100
-
- birdtest: Fix no-forked mode in trie_test
-
-commit 101c5a50aa9cd46bf4b971586d78d7f9041fb656
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Nov 9 19:08:25 2016 +0100
-
- Filter: Add long community tests
-
- Based on Pavel Tvrdik's int-test-lc branch.
-
-commit 9b0a0ba9e671d9134b93c33ab73ccccb352acafa
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Nov 9 16:36:34 2016 +0100
-
- Unit Testing for BIRD
-
- - 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.
-
-commit 8860e991f6650e47cfe6c1af595fe4fe92a4edfd
-Merge: cc5b93f7 c8cafc8e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 8 19:27:58 2016 +0100
-
- Merge branch 'master' into int-new
-
-commit c8cafc8ebb5320ac7c6117c17e6460036f0fdf62
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 8 17:46:29 2016 +0100
-
- Minor code cleanups
-
-commit cc5b93f72db80abd1262a0a5e1d8400ceef54385
-Merge: 5de0e848 f51b1f55
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 8 17:03:31 2016 +0100
-
- Merge tag 'v1.6.2' into int-new
-
-commit 920a86e8493fe25008f084f67f368aea9b197efd
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Nov 3 09:53:53 2016 +0100
-
- Add missing extern
-
-commit e03dc6a984555e3c943735d50376cada2220bac8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Oct 30 23:51:23 2016 +0100
-
- BFD: Authentication
-
- Implement BFD authentication (part of RFC 5880). Supports plaintext
- passwords and cryptographic MD5 / SHA-1 authentication.
-
- Based on former commit from Pavel Tvrdik
-
-commit 29239ba2bbee3e9ec7d17793b25936a1bfc795ca
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Oct 27 20:58:21 2016 +0200
-
- OSPF: Use message authentication interface
-
- Based on former commit from Pavel Tvrdik
-
-commit 390601f038b69d5de3841c691f92af0fcd088454
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Oct 26 16:07:45 2016 +0200
-
- RIP: Use message authentication interface
-
- Based on former commit from Pavel Tvrdik
-
-commit 64385aee0cc2dfae8297f29ce6724cedf7cc4736
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Thu Jan 28 17:05:15 2016 +0100
-
- DOC: Password algorithm option
-
-commit 56cb3bedc2634a44ea41587566c2889f5b5f5b5b
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Tue Jan 26 16:45:13 2016 +0100
-
- Nest: Add support for MAC algorithms in grammar
-
-commit de2a27e255b6ec834d11c005909b28a150c7c0db
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Oct 25 17:04:17 2016 +0200
-
- Add generic message authentication interface
-
- Add generic interface for generating and verifying MACs (message
- authentication codes). Replace multiple HMAC implementation with
- a generic one.
-
-commit 7eec3988758cb4c19a0ab3bf90cab2a4914165be
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 1 16:18:27 2016 +0100
-
- BSD: Fix build on OpenBSD broken by previous commit
-
-commit 3e236955c9369475872b9b86a58502fa777b50b9
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Fri Oct 14 15:37:04 2016 +0200
-
- Build: switch on -Wextra, get rid of most of the warnings
-
- There are several unresolved -Wmissing-field-initializers on older
- versions of GCC than 5.1, all of them false positive.
-
-commit 17fe57d8dcc89aea520788914b252cf49cf060ff
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 1 11:37:49 2016 +0100
-
- Log: Fix broken syslog name
-
- BIRD passed string from configuration to openlog(), which kept it
- internally. After reconfiguration the old string was freed, therefore
- openlog had invalid copy.
-
- Thanks to Chris Caputo for the original patch.
-
-commit 3213273d8261c69a343fcd7d4c9607385dfdbb65
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Oct 27 11:08:28 2016 +0200
-
- IANA assigned a different number to large BGP communities - changed.
-
-commit c68e8cd374f16a1d659c80f9ebe503f2dd0d4acb
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Oct 18 13:06:05 2016 +0200
-
- Filter: Minor formatting changes in test.conf
-
-commit 3c09af416939d26c252aa1b339b52fd8f9f8e774
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu Oct 13 16:57:21 2016 +0200
-
- Clist: The add() function will append a new value
-
- The add() function used to prepend a new community to clist, but after
- this fix the add() function appends new community.
-
-commit 5fd7dacadc3cd8f91f66cb56e3a9ef81028aa102
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu Oct 13 15:17:41 2016 +0200
-
- Filter: Expand testing of large community sets
-
-commit 2e7fb11a6e31324151c6db98df2fe26d2d6cffab
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Oct 12 14:16:34 2016 +0200
-
- Fixed memory bloating on kernel merge paths together with export filter.
-
- Some memory was being allocated from bad linpool, not from the given one
- as they should.
-
- Thanks to Madhu and Justin Cattle for reporting this.
-
-commit 9df52a98e2eae28f219510d4c3d65ec43a50c394
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Mon Sep 5 11:20:28 2016 +0200
-
- Doc: Change debug to { flag1|flag2|flag3 [, ...] } style
-
- Thanks to Micah Anderson for bug report and Ondrej Zajicek for the idea!
-
-commit 9fcb9637b55d234dfedfcb54bd76ed5a9570b7a1
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Mon Sep 19 16:01:29 2016 +0200
-
- Nest: Remove trailing whitespaces
-
-commit 3d28f0145382feddcf7f66c0a20b6c5b3e0edbc9
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Mon Sep 26 18:05:51 2016 +0200
-
- Doc: Fix deprecated unescaped braces in perl script
-
- This commit should fix warning `make docs'
-
- ./sgml2html bird.sgml Unescaped left brace in regex is deprecated,
- passed through in regex; marked by <-- HERE in m/\\nameurl{ <-- HERE
- (.*)}{(.*)}/ at fmt_latex2e.pl line 287.
-
-commit c2564d34af9e01a828c24b0be7f269e5b036b5da
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Sat Oct 1 12:50:29 2016 +0200
-
- Tree/Trie: Check the end of buffer
-
- We set buffer->pos to buffer->end in function buffer_print() when
- bvsnprintf() failed, so there would be uninitialized memory between
- the old buffer->pos and the current buffer->pos.
-
-commit 7935b9d21228dcd1eb95ebcb056b2a815e3e854b
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu Sep 29 18:08:40 2016 +0200
-
- Doc: Add tag for links to RFCs
-
-commit 9c20a8b7ae69487397392c720a5e75087c343df1
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Mon Oct 3 12:35:36 2016 +0200
-
- Doc: Fix inline <htmlurl></htmlurl>
-
- Don't make space before or after link name.
-
-commit 963929df021ae54d8ff4cd18ca228932fc89dc13
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Mon Oct 3 12:04:44 2016 +0200
-
- Doc: Do not use symlinks for files
-
-commit 70104ef4fb5f8105422d6eb811a93b68aeae709d
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Mon Oct 3 11:46:40 2016 +0200
-
- Doc: Generate one-sided version
-
- This removes jumping offset for odd and even pages for binding book.
-
-commit f9bd11c337afcc3e95b459e3901a4ca28cb14b85
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Mon Oct 3 11:39:56 2016 +0200
-
- Doc: Use [table t] or [table name]
-
-commit 74d76f6c3877e4a745fb63b55486810322076153
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Mon Oct 3 11:36:44 2016 +0200
-
- Doc: Fix unnecessary special chars
-
-commit f15dc6813870565d01378265ab20e017757af220
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Mon Oct 3 10:59:43 2016 +0200
-
- Doc: Enable break lines in <tag></tag>
-
-commit f5952c7343841fe4b7b63b7a56e95aba104f2e82
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Mon Oct 3 10:32:28 2016 +0200
-
- Doc: Daemon command-line options alphabet order
-
-commit 22558357d45c27583156f8c11412e37ce48a42e0
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Mon Oct 3 10:22:24 2016 +0200
-
- Doc: Add command-line options --version, --help
-
-commit b9864aa87193ac1a5ebbc04d24ec782a1fe9637a
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Mon Sep 26 18:00:59 2016 +0200
-
- Doc: Add labels to all chapters and options
-
-commit a2df7c0303d235f4122969243e9df152a8a16dcb
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu Sep 29 14:05:25 2016 +0200
-
- Doc: Generate clickable PDF
-
-commit 9faf72c8cc9a099b41c90ee1822e8bca22fd0596
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu Sep 29 11:20:04 2016 +0200
-
- Doc: Fix whitespaces
-
-commit a998836d4bd4df8820e67f51e16d81a5a8dc9e9b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Oct 4 23:19:35 2016 +0200
-
- Filter: fix missing separator
-
-commit a46e01eeef17a7efe876618623397f60e62afe37
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Oct 4 12:45:39 2016 +0200
-
- Nest: Fix signedness of large communities
-
-commit cec4a73ccb22ed412e87560e4210b6df40832aad
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Oct 4 00:31:43 2016 +0200
-
- Doc: Documentation for large communities
-
-commit 60566c5c804070c145fafd75ef2c17efb489a1eb
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Oct 1 22:31:01 2016 +0200
-
- Filter: large community sets
-
- Add support for lc sets to filter code. Grammar of (small) community sets
- has to be updated to avoid parser collisions.
-
-commit 66dbdbd993115c57acafdb776d2165d0b4a90a45
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Oct 1 12:50:29 2016 +0200
-
- BGP: Support for large communities
-
- Add support for large communities (draft-ietf-idr-large-community),
- 96bit alternative to RFC 1997 communities.
-
- Thanks to Matt Griswold for the original patch.
-
-commit f51b1f556595108d53b9f4580bfcb96bfbc85442
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Sep 29 15:06:19 2016 +0200
-
- NEWS and version update
-
-commit 5bf35a9aee448ce7e3493ec7b80c84c8f5f39242
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu Sep 29 13:28:18 2016 +0200
-
- Docs: fix BFD label
-
- BFD headline will appear in Table of Contents again.
-
-commit ccd2a3eda24230df550e9880f4340fc6341c8f52
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Thu Sep 29 12:00:53 2016 +0200
-
- Kernel socket missing err_hook fix
-
- Thanks to Tim Weippert for bugreport.
-
-commit 79e2293ab2abbd92bb3326a95759a4ca32d9af81
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Sep 22 13:34:56 2016 +0200
-
- NEWS and version update
-
-commit 768d5e1058693d2bfb7c3bcbe04306097c3246a0
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Tue Sep 20 15:13:01 2016 +0200
-
- Add !~ operator to filter grammar
-
-commit 75ac3d199d1fd5b199dd753915234b8634c272e5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Sep 21 12:07:59 2016 +0200
-
- Remove cvsignore
-
- We have gitignore
-
-commit 6e75d0d27fe85f12a22928e5729465823704281e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Sep 19 12:29:56 2016 +0200
-
- KRT: Add krt_scope attribute
-
- Add a new route attribute, krt_scope, to expose the Linux kernel route
- scope. Constants from /etc/iproute2/rt_scopes (prefixed by "ips_") are
- expected to be used with the attribute. Both import and export are
- supported.
-
- Also, the patch fixes device route export to the kernel, by setting link
- scope automatically.
-
-commit 292f7858e60b0dffd8c06f6818d90ccf3b34e0b2
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu Sep 8 16:27:40 2016 +0200
-
- Main: Improve BIRD help messages
-
-commit 6273fcf072fc5789ebabf4f1acd6fc6c9fa143ee
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Wed Sep 7 14:58:51 2016 +0200
-
- Add stdlib.h to client/commands.c
-
-commit 0f5054f6850c7419933a6337a34263f565663ee3
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu Sep 8 13:45:36 2016 +0200
-
- BFD: Fix invalid read from pollfd array
-
- It is possible that sockets_add() are called between sockets_prepare()
- and sockets_fire() during poll loop in birdloop_main(), so we need to
- use loop->poll_fd.used instead of loop->sock_num to find the last field.
-
-commit a290da25a16b7c79d4a7a87f522b4068bca04979
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Tue Sep 6 17:08:45 2016 +0200
-
- rt-table: Fix kernel protocol export filter memory bug
-
- Kernel protocol calls rt_export_merged(), which used @rte_update_pool for
- temporary allocations, supposing it is called from other functions from
- rt-table.c that handles locking and flushing of the linpool. Therefore,
- linpool was not flushed properly and memory leaked.
-
- Add linpool argument to rt_export_merged() and use @krt_filter_lp when
- called from kernel protocol.
-
- Thanks to Justin Cattle and Alexander Frolkin for the bugreport.
-
- (Commit squashed and updated by Ondrej Zajicek)
-
-commit bc00f058154bb4a630d24d64a55b5f181d235c63
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Tue Sep 6 17:18:15 2016 +0200
-
- Filter: Prefer xmalloc/xfree to malloc/free
-
-commit 4adcb9df1bf551cc5fd1145c09af1843fdc4fe85
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Sep 15 14:59:06 2016 +0200
-
- KRT: Add kernel metric protocol option
-
- Kernel routes with different metrics do not clash with each other,
- therefore using dedicated metric value is a reliable way to avoid
- overwriting routes from other sources (e.g. kernel device routes).
-
- Although kernel route metric could already be set as a route attribute by
- filters, that is not consistent with the way how Linux kernel handles
- route metric - not just a route attribute, but a part of a route key.
-
-commit 2feaa6931bfe39eba696b33b0c8aac13d313b223
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Sep 14 11:40:15 2016 +0200
-
- KRT: Support for IPv6 ECMP
-
- Linux represents IPv6 ECMP routes as a sequence of unipath routes with
- the same prefix. We have to translate between our representation (one
- route with multipath next hop) and the Linux representation in both
- directions.
-
- Proper learning of alien IPv6 ECMP routes still not supported.
-
- Thanks to Mikhail Sennikovskii for the original patch.
-
-commit 84cac51a51fc29349077e8cecadf1aed11f9b824
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 30 17:17:27 2016 +0200
-
- Nest: Keep multipath next hops sorted
-
-commit a1839f3c61af66814a8c52b9ad28e59aab4ede0e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Aug 31 14:02:41 2016 +0200
-
- KRT: Fix trivial error
-
-commit f9f2e280ea4fa1af19d8ce9e54abeb495694c0d5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 30 12:43:46 2016 +0200
-
- KRT: Forbid path merging on BSD
-
- We support ECMP routes only on Linux. Exported routes are checked in
- krt_capable(), but a route generated during path merging avoids this
- check.
-
-commit 768d013267bd2a52bab70ba6d413f49365fb31e3
-Merge: 678c97f2 d107ef78
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 23 17:35:26 2016 +0200
-
- Merge remote-tracking branch 'origin/misc-fixes'
-
-commit 678c97f21ef15c98546f41647f3244799a37db1f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Aug 23 17:33:00 2016 +0200
-
- Minor README update
-
-commit d107ef78df2564cba75af1a6dcc9894c4468b207
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Tue Aug 16 13:02:32 2016 +0200
-
- Whitespace fixes
-
-commit dbac8793bd88279fd8956ce42db7bd2230965948
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Tue Aug 16 10:42:12 2016 +0200
-
- Add link to INSTALL in README file
-
-commit 9b3d2464cd6dafdd3021f4513f24d19d56d42d3d
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Tue Aug 16 10:15:58 2016 +0200
-
- Rewrote README file
-
- * Made structure with headlines,
- * reordered,
- * kicked out 'What is missing' part,
- * Updated content by home page site and user docs
-
-commit 671ddd5b05cf35b2ab7b80f1d13641c875f22e77
-Author: Ondřej Surý <ondrej@sury.org>
-Date: Tue Aug 16 09:25:50 2016 +0200
-
- Add .gitignore to ignore generated files
-
-commit 33d22f0e9e79c387c492d1cf16bdb723ca1d588a
-Author: Ondřej Surý <ondrej@sury.org>
-Date: Tue Aug 16 09:24:12 2016 +0200
-
- whitespace fixes
-
-commit 61e6725335fbba86175ec770c1e94c5f60e76d5c
-Author: Ondřej Surý <ondrej@sury.org>
-Date: Tue Aug 16 09:23:55 2016 +0200
-
- Include <stdint.h> in cf-lex.l to avoid UINTx_MAX redefinition
-
-commit 0ea2afe67150661328c93679587740fbd8928b2a
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Mon Aug 15 16:16:36 2016 +0200
-
- Adds mailing list address at the top of README file
-
-commit 13a31a4001e02ea7c84d26cbeaaa9fea816736f7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jul 20 15:55:45 2016 +0200
-
- Babel: Immediately update hello interval on interface reconfigure
-
- An interface reconfiguration may change both the hello and update
- intervals. An update interval change is immediately put into effect,
- while a hello interval change is not. This also updates the hello
- interval immediately (if the new interval is shorter than the old one),
- and sends a hello to notify peers of the change.
-
- Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
-
-commit a08a81c6b40dcf07e786b67e5015fc91a44333ca
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jul 20 15:31:25 2016 +0200
-
- Netlink: Fix build with older headers missing IFA_FLAGS
-
-commit e37d2e3e708db78f9b8f15eb34bb266cfae7bb42
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jul 20 15:06:57 2016 +0200
-
- Netlink: Ignore tentative addresses
-
- Ignore tentative IPv6 addresses and wait until finish of Duplicate
- Address Detection (We got notification when an address is no longer
- tentative) to avoid problems when protocols try to use interfaces
- with tentative link-local addresses.
-
- Based on patch from Jan Moskyto Matejka
-
-commit 0a21c21112eff1286a0a2a7f7afc812f8d16cfa2
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 19 15:40:57 2016 +0200
-
- Doc: Fix password ID option description
-
- Thanks to Alexander Velkov for noticing it
-
-commit c6ed5a0f9925476714d6b351c61dbce704a4f09d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 19 14:38:36 2016 +0200
-
- Babel: Do not maintain feasibility distance for our own routes
-
- We do not need to maintain feasibility distances for our own router
- ID (we ignore the updates anyway). Not doing so makes the routes be
- garbage collected sooner when export filters change.
-
- Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
-
-commit 0f673666017bfc9c05c9495ae53bc323b9dc6660
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 19 14:28:53 2016 +0200
-
- Babel: Do not keep an infeasible route as selected
-
- When a route becomes infeasible it should not be kept as selected; this
- is forbidden by section 3.6 of the RFC and prevents subsequent updates
- from the same router ID from replacing it.
-
- Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
-
-commit 5d6ca220850c615126ea6820f8c05528269feec6
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 19 14:23:41 2016 +0200
-
- Babel: Send wildcard retractions on shutdown and startup
-
- This makes BIRD send a wildcard retraction on all interfaces before
- shutting down and right after starting up. This helps ensure that
- neighbours will discard the announced routes as soon as possible,
- rather than only after the normal timeout procedures.
-
- Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
-
-commit ecae2f43f37df642e5098201a0472802e6a70e78
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 19 13:33:02 2016 +0200
-
- Babel: Rework handling of retractions
-
- An update with wildcard AE and infinite metric should be treated as a
- global retraction of all prefixes announced by that neighbour, per
- section 4.4.9 of the RFC. In addition, router ID and seqno in retraction
- updates should be ignored. This reworks the handling of retractions and
- adjusts the parser to handle all this correctly.
-
- Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
-
-commit 12640c149976e1eca54d9c22c593d07a27c49d42
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 19 12:16:51 2016 +0200
-
- Babel: Documentation updates
-
- This updates the documentation to correctly mention Babel when protocols
- are listed, and adds examples and route attribute documentation to the
- Babel section of the docs.
-
- Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
-
-commit 321ff8c4049ec6c2fa198858b4a7f1814ce05e39
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jul 19 11:57:20 2016 +0200
-
- Babel: Make sure intervals do not overflow
-
- Intervals are carried as 16-bit centisecond values, but kept internally
- in 16-bit second values, which causes a potential for overflow. This adds
- some checks to make sure this does not happen.
-
- Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
-
-commit 6887f409f0766c60dd8c3d3fdf01a1d989c090a5
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jul 17 14:54:52 2016 +0200
-
- Prepare for longer interface names - clean up of the code.
-
-commit ea0cb652e91d871e7808e93aa15ef34fc453c4fc
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Jul 11 20:41:32 2016 +0200
-
- BGP: Fix extended messages
-
- Change attribute length limit to handle extended (64 kB) messages.
-
- Do not mix updates and withdraws (RFC 7606).
-
-commit f0b822a831d0f0f593bbedf0a7f15b94c3ca1d43
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Jul 11 20:22:55 2016 +0200
-
- Log: Fix error handling of debug file open
-
- Logging is not yet initialized, we have to use fprintf() here.
-
- Thanks to Pavel Tvrdik for noticing and debugging it.
-
-commit f1f39bb9d8e2260fe181240dd8194b06bdcfb54f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Jul 1 11:03:13 2016 +0200
-
- Filter: Fixes reconfiguration with last_nonaggregated operator
-
-commit 5de0e848de06a9187046dbc380d9ce6a6f8b21a2
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu Jun 30 15:00:47 2016 +0200
-
- filter/test.conf: fixes formating
-
-commit 775a5a81958e66a69663803dd2e731e3800da9e7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Jun 29 14:11:03 2016 +0200
-
- BGP: Skip empty path segments in received AS_PATH
-
- Although RFC 4271 does not forbid empty path segments, they are useless
- and some implementations consider them invalid. It is clarified in RFC 7606,
- specifying that AS_PATH with empty segment is considered malformed.
-
-commit 8f01879c5629bd714dfeec968337cfcd4dbe6a87
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Tue Mar 29 10:37:31 2016 +0200
-
- cppcheck: fix va_end() functions
-
-commit 044e123fd34a17b13d7636def38542511f9c6baf
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu Jun 9 10:11:39 2016 +0200
-
- Client: Includes stdlib.h for malloc()
-
-commit 122deb6d5b14f46f3cfb25bf3f5726005d6a3b3e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Jun 9 00:30:41 2016 +0200
-
- Filters: Fixes pm_same() w.r.t. ASN ranges and ASN expressions
-
- This is necessary for proper detection of filter changes during
- reconfigurations.
-
-commit 18c53c456704f8f0ccbdf6eb8ba5f82cb43aeba7
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu Apr 7 12:18:57 2016 +0200
-
- Fix declaration of shared global variables async_*
-
- In a header file write it with extern keyword. And in one of the *.c
- file declare it without extern keyword.
-
-commit a0fe1944d12771d60986a352552e5f4b306e5f7f
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 8 16:22:44 2016 +0200
-
- Add AS# ranges to bgpmask.
-
-commit 90dc0f08434323535f84d64e113dae84675c46b2
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Jun 4 12:38:06 2016 +0200
-
- Small typo in documentation example, submitted by Felix Eckhofer.
-
-commit 9dbcb11cb50167e959536e5a564ee9aafae509c6
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Mon May 30 14:28:22 2016 +0200
-
- Unix IO: Tried to fix strange behavior after POLLHUP or POLLERR.
-
-commit 925aa14912329bafff38a9e5a3f675809ff97785
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue May 17 13:19:18 2016 +0200
-
- After-master-merge simple fixes.
-
- BSD lib/setkey.h and lib/sysio.h #include fixes.
- OpenBSD's flex needs -o param without space.
- V6ONLY for SK_IP fix.
-
-commit d6f027ef3474bbc93d06865b0031bb6aae4fc031
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 17 17:59:38 2016 +0200
-
- Make: Silence echo in verbose mode
-
-commit 379f99594086a0934155bd09696938dc39d1802d
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 17 16:19:50 2016 +0200
-
- BSD: Fix setkey in int-new branch
-
-commit 08b3a24da5bbd1bab09d6a2400cdf7705d5e18a7
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue May 17 15:21:49 2016 +0200
-
- IO: Minor changes in socket AF handing
-
- AF can be specified implicitly by saddr or daddr, flags SKF_V4ONLY and
- SKF_V6ONLY are to be removed.
-
-commit 5af7b59660be615fbbd7c20b92b71321c003c43a
-Merge: d39d41fb b66a9e2f
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Fri May 13 13:48:04 2016 +0200
-
- Merge branch 'int-new' of gitlab.labs.nic.cz:labs/bird into int-new
-
-commit d39d41fbda2ec86ea2bac27308eb4fb16ecc4702
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Fri May 13 13:46:46 2016 +0200
-
- Hash: Fix of previous commit
-
-commit b66a9e2f3376b4cb07ef4cc318f70a9c794f407a
-Merge: 659f80f2 3f2c7600
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 12 21:47:50 2016 +0200
-
- Merge branch 'master' into int-new
-
-commit 659f80f262a83d600d5f095fb8a03e912d3fbe64
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 12 21:47:29 2016 +0200
-
- Make int-new compilable again
-
-commit 3f2c7600fa2e35b1028c755aa06092b5991e1a8e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 12 21:29:04 2016 +0200
-
- We don't need bvsnprintf() in BIRD client
-
-commit 776d6b2c05fe8b14e5ec357eca24fe59c549bfa4
-Merge: af678af0 54ac0bec
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 12 18:11:12 2016 +0200
-
- Merge remote-tracking branch 'origin/int-new' into int-new
-
-commit af678af0d5c9ef3d8afdc0789b33dd0c40b6d6e5
-Merge: 286e2011 8e433d6a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 12 17:49:12 2016 +0200
-
- Merge remote-tracking branch 'origin/master' into int-new
-
-commit 54ac0beceedb9b36eb58dd8599ba903c668382f6
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Thu May 12 16:16:25 2016 +0200
-
- Hash: fixed rta hashing wrt. structure padding
-
-commit 286e2011d22ea6914d5f2db5de3f11911a1fb663
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu May 12 16:04:47 2016 +0200
-
- Miscellaneous minor fixes
-
-commit 8e433d6a529a883d566dc1d5a4afe0f1e2750baf
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu May 12 15:49:44 2016 +0200
-
- Prog Doc: Complete several missing parameters
-
-commit fff7498d6a54d4bcce4bd56db7ef3fb28be35578
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Thu May 12 13:37:23 2016 +0200
-
- User Doc: Fix several typing error
-
-commit 31e9e10144a6994773a04d94903fa3bdde6de91e
-Author: Stijn Tintel <stijn@linux-ipv6.be>
-Date: Tue May 10 16:45:35 2016 +0300
-
- netlink: update struct msghdr
-
- The netlink code assumes an order for the members of struct msghdr.
- This breaks recvmsg and sendmsg with musl libc on mips64. Fix this by
- using designated initializers instead.
-
- Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
-
-commit 0c6dfe52369a59d7f3da8ee6bc7c505e3da5c064
-Merge: 7a7ac656 92912f06
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue May 10 14:30:49 2016 +0200
-
- Merge branch 'int-new' into int-new-merged
-
-commit 92912f063a94bd7c743a25628ca2073380e09ef4
-Merge: a8caff32 2003a184
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue May 10 14:21:15 2016 +0200
-
- Merge remote-tracking branch 'origin/rte-update' into int-new
-
-commit a8caff322f83f1303c408bbefc440aeea9e619a3
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Apr 27 14:45:14 2016 +0200
-
- Portability: Fixed C extension error generated by CLang.
-
- sysdep/linux/netlink.c:921:10: error: fields must have a constant size:
- 'variable length array in structure' extension will never be supported
- char buf[128 + KRT_METRICS_MAX*8 + nh_bufsize(a->nexthops)];
- ^
- 1 error generated.
-
-commit 7152e5efbb0fade868d5f2d2c7bc10ed52b3d19d
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue Apr 12 11:14:54 2016 +0200
-
- Build system reworked to one global Makefile with includes and no nesting
-
- Also removed the lib-dir merging with sysdep. Updated #include's
- accordingly.
-
- Fixed make doc on recent Debian together with moving generated doc into
- objdir.
-
- Moved Makefile.in into root dir
-
- Retired all.o and birdlib.a
- Linking the final binaries directly from all the .o files.
-
-commit f7a99acb4eac23223f51ce83b8081cc9695fef1e
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.com>
-Date: Tue May 3 09:32:49 2016 +0200
-
- Initialize variable ifr in sk_setup()
-
- ==00:00:00:02.831 2468== Syscall param socketcall.setsockopt(optval) points to uninitialised byte(s)
- ==00:00:00:02.831 2468== at 0x513BDEA: setsockopt (in /usr/lib/libc-2.23.so)
- ==00:00:00:02.831 2468== by 0x45C7AF: sk_setup (io.c:1216)
- ==00:00:00:02.831 2468== by 0x45CDFF: sk_open (io.c:1417)
- ==00:00:00:02.831 2468== by 0x44B562: rip_open_socket (packets.c:740)
- ==00:00:00:02.831 2468== by 0x4481A7: rip_iface_locked (rip.c:616)
- ==00:00:00:02.831 2468== by 0x4133E4: olock_run_event (locks.c:177)
- ==00:00:00:02.831 2468== by 0x45A6DE: ev_run (event.c:85)
- ==00:00:00:02.831 2468== by 0x45A7AD: ev_run_list (event.c:142)
- ==00:00:00:02.831 2468== by 0x45E0FC: io_loop (io.c:2066)
- ==00:00:00:02.831 2468== by 0x463B56: main (main.c:845)
- ==00:00:00:02.831 2468== Address 0xffefffd24 is on thread 1's stack
- ==00:00:00:02.831 2468== in frame #1, created by sk_setup (io.c:1188)
- ==00:00:00:02.831 2468== Uninitialised value was created by a stack allocation
- ==00:00:00:02.831 2468== at 0x45C6BB: sk_setup (io.c:1188)
-
-commit 1e3810f9f8e251d82a8157b39df9be196315c43e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Apr 29 13:25:46 2016 +0200
-
- Doc: Minor fix
-
-commit 52bae25580e6e0edae8384885818044ef89103e3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Apr 29 13:07:21 2016 +0200
-
- NEWS and version update
-
-commit 937e75d8f1d203b637ba0ea050026f9af92485f3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Apr 28 18:01:40 2016 +0200
-
- Add the Babel routing protocol (RFC 6126)
-
- This patch implements the IPv6 subset of the Babel routing protocol.
- Based on the patch from Toke Hoiland-Jorgensen, with some heavy
- modifications and bugfixes.
-
- Thanks to Toke Hoiland-Jorgensen for the original patch.
-
-commit a7baa09862e6b4856cd66197c6bd74c7df336b8f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Apr 13 14:30:28 2016 +0200
-
- BSD: Add the IPsec SA/SP database entries control
-
- Add code for manipulation with TCP-MD5 keys in the IPsec SA/SP database
- at FreeBSD systems. Now, BGP MD5 authentication (RFC 2385) keys are
- handled automatically on both Linux and FreeBSD.
-
- Based on patches from Pavel Tvrdik.
-
-commit 43fc6bb0fb720762f12124076e2241855741ceb5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Apr 11 00:41:10 2016 +0200
-
- Documentation update
-
-commit e90dd656cc9126e1fbcc45fb77a10bf1baa2a1b5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Fri Apr 8 15:10:57 2016 +0200
-
- Direct: Implement check link for direct protocol
-
- When enabled, direct protocol generates routes only if the underlying
- link state is up.
-
-commit 2003a1840731bd57365876e48c96c5a1ea0348cb
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Fri Apr 8 13:08:03 2016 +0200
-
- Route update: move table lookup from protocols into rte_update2().
-
- Many protocols do almost the same when creating a rte_update request
- before calling rte_update2(). This commit should simplify the protocol
- side of the route-creation routine.
-
-commit 7a7ac656829223713f9e6bcef63d2b5a5efce7d2
-Merge: 4bdf1881 06edbb67
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Fri Apr 8 12:09:31 2016 +0200
-
- Merge branch 'master' into int-new-channels
-
-commit f2ae2badff37c008ba8217a12f8ee6dc6a3c5a39
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Apr 7 12:20:45 2016 +0200
-
- Main: Add local option
-
- Add option that changes default paths for config file and control socket
- to the current working directory.
-
-commit 4bdf1881dc6230b742d7efcaad8eeac4ed25f445
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Mon Apr 4 16:17:11 2016 +0200
-
- Channelize: rt_notify arg conversion table -> channel
-
-commit 0c8c8151fc1fb0dbfcd682153f50192ea1369884
-Merge: a815d62d 1a7daab1
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Thu Apr 7 09:58:31 2016 +0200
-
- Merge branch 'int-new-channels' of gitlab.labs.nic.cz:labs/bird into int-new-channels
-
-commit 06edbb67ed807811654e7fd8f0f9b83766430216
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Apr 7 01:10:24 2016 +0200
-
- Nest: Reset export route counter during graceful restart
-
- Counter exp_routes is increased during initial route feed after GR
- recovery, so it has to start with zero, otherwise BIRD will end with
- double value in exp_routes.
-
-commit bd22d7f41d37dec8f7b8b845f6a18c775e66ddfc
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Apr 6 11:57:28 2016 +0200
-
- IO: Avoid multiple event cycles in one loop cycle.
-
- Event cycle may took too much time and trigger next timer events, so
- avoid cycling between timer and event cycles inside the loop cycle.
-
-commit 9e7b3ebdf9556d7464911dd39e862b1c003319b3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Apr 6 11:49:34 2016 +0200
-
- IO: Replace RX priority heuristic with explicit mark
-
- In BIRD, RX has lower priority than TX with the exception of RX from
- control socket. The patch replaces heuristic based on socket type with
- explicit mark and uses it for both control socket and BGP session waiting
- to be established.
-
- This should avoid an issue when during heavy load, outgoing connection
- could connect (TX event), send open, but then failed to receive OPEN /
- establish in time, not sending notifications between and therefore
- got hold timer expired error from the neighbor immediately after it
- finally established the connection.
-
-commit e86cfd41d975122cc944db68383aef4028da9575
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 23 18:25:15 2016 +0100
-
- KRT: Fix route learn scan when route changed
-
- When a kernel route changed, function krt_learn_scan() noticed that and
- replaced the route in internal kernel FIB, but after that, function
- krt_learn_prune() failed to propagate the new route to the nest, because
- it confused the new route with the (removed) old best route and decided
- that the best route did not changed.
-
- Wow, the original code (and the bug) is almost 17 years old.
-
-commit ea0a8be2ff5afb8385a69cc0df70984e0fd3a570
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Mar 30 16:21:32 2016 +0200
-
- IO/Poll: fix mistaken variable merge
-
- The events variable is used in the short loop decision. The reasons are
- not much clear, keeping this to keep the former behaviour.
-
-commit 54bb032d21d25a2221877e15325e79add10278ec
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Mar 23 01:45:37 2016 +0100
-
- Birdlib: Modify lists to avoid problems with pointer aliasing rules
-
- The old linked list implementation used some wild typecasts and required
- GCC option -fno-strict-aliasing to work properly. This patch fixes that.
- However, we still keep the option due to other potential problems.
-
- (Commited by Ondrej Santiago Zajicek)
-
-commit 665b8e5283df4f64eb44d8fb434489be1474b5d4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 22 13:35:40 2016 +0100
-
- Birdlib: Do cleanups after remove/free
-
- To avoid byzantine behavior in case of some errors, linked lists are
- cleared after rem_node() and resource headers are cleared after rfree().
-
-commit 39a6b19d6d7e420805bd75783b77bf442745bccb
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Mar 22 12:51:31 2016 +0100
-
- OSPF: Fix bogus LSA ID collisions between received and originated LSAs
-
- After restart, LSAs locally originated by the previous instance are
- received from neighbors. They are installed to LSA db and flushed. If
- export of a route triggers origination of a new external LSA before flush
- of the received one is complete, the check in ospf_originate_lsa() causes
- origination to fail (because en->nf is NULL for the old LSA and non-NULL
- for the new LSA). The patch fixes this by updating the en->nf for LSAs
- being flushed (as is already done for empty ones). Generally, en->nf
- field deserves some better description in the code.
-
- Thanks to Jigar Mehta for analyzing the problem.
-
-commit 0a505706bc909b2625d308ffb2eaed3dc8398538
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 9 17:51:50 2016 +0100
-
- Minor changes in documentation
-
-commit a459f4df16eca156cb7c6def4a758fd89c9fa504
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Mar 9 17:37:44 2016 +0100
-
- OSPF: Fix reading from freed memory
-
- Thanks to Pavel Tvrdik for noticing it.
-
-commit 62a4ad365760afae485ae61c5aab734012545be4
-Merge: 9036bbf2 9c92f692
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue Mar 22 13:23:55 2016 +0100
-
- Merge remote-tracking branch 'origin/poll'
-
-commit 9c92f69272de3795f7289969e815d99a93d0d9b3
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Fri Mar 18 11:44:28 2016 +0100
-
- Unix: Substituted select -> poll also in congestion checker
-
- It does strange things when even one fd larger than FD_SETSIZE is
- passed to select().
-
-commit 9036bbf2b7cc781c87f2a6b3979198f77ec6ada1
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Tue Mar 15 14:55:40 2016 +0100
-
- RIP: fix typo in configuration at rx length opt
-
-commit 79a4f74a65941603cc42680d2e61b00ec88abe97
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Tue Mar 15 10:29:32 2016 +0100
-
- BGP: Add documentaion for extended messages
-
-commit fd926ed4eea319b94bd0e09e093b90846bcb169b
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue Mar 15 14:57:49 2016 +0100
-
- Poll: Prevent the improbable case of EAGAIN after POLLIN
-
-commit e1c13a5a7b86f2ba09178300bad960224658c833
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Mar 9 12:12:02 2016 +0100
-
- Unix: Rework of select-loop to poll-loop
-
- This should lift the limit of FD_SETSIZE and allow more than 1024 fd's.
- FD_SETSIZE limit doesn't matter now when creating new sockets.
-
-commit 1a7daab126471374841e41de7f7e590ab22f35c8
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Wed Mar 9 16:48:28 2016 +0100
-
- cf_error(char *msg, ...) -> cf_error(const char *msg, ...)
-
-commit 43fd8fae526cbc62093a32bda572c93fa4055e98
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Wed Mar 9 11:03:49 2016 +0100
-
- nest/proto fix local_debug mode
-
-commit 062d18fdb1f48bf7e3b10907b417d4568ba8cf3f
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Tue Feb 2 18:14:53 2016 +0100
-
- Fix typo
-
-commit ce95af7a5f5159033e569a7ccedce0e20bb5d913
-Merge: b25509e5 e3f506f9
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Thu Feb 25 18:25:53 2016 +0100
-
- Merge branch 'master' of gitlab.labs.nic.cz:labs/bird
-
-commit e3f506f9b53bd8e44976df1c935c7ec417793ace
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Feb 25 18:16:59 2016 +0100
-
- OSPF: Multicast ability is irrelevant for stub interfaces
-
-commit b25509e5128e6f2a856cd4a07bb78f3d6b7fc789
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Jan 20 15:23:17 2016 +0100
-
- All the current pthread implementations are OK and working with us.
-
- No more need to disable pthread for specific BSD's.
-
-commit a815d62d5902fb84c28c77726dbe94fc7528bf36
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Fri Feb 19 15:51:16 2016 +0100
-
- Hash: typecast error fix
-
-commit 9c9cc35c0273f8bcae10fb8b546d199514b2bbc5
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Feb 16 17:33:58 2016 +0100
-
- Filter: Implement last_nonaggregated operator on bgp_path
-
-commit c2106b674ca632f7c0bffd7cab4b1940f74d353c
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Feb 11 21:53:55 2016 +0100
-
- Unix: Fix bug in syslog name handling
-
- Pointer to current_log_name has to be changed even if the name is the
- same, because the old one will be invalid/freed after reconfiguration.
-
-commit 487c6961cb29046dbe9560262e3e742e38691b83
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Feb 11 16:38:28 2016 +0100
-
- BGP: Fix bug in incoming connection handling
-
- When a BGP session was established by an outgoing connection with
- Graceful Restart behavior negotiated, a pending incoming connection in
- OpenSent state, and another incoming connection was received, then the
- outgoing connection (and whole BGP session) was closed, but the old
- incoming connection was just overwritten by the new one. That later
- caused a crash when the hold timer from the old connection fired.
-
-commit 9a74622ca1994669cdb3bac0bb2f6df2febd2744
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Feb 10 13:26:07 2016 +0100
-
- Updated RTA hashes to 32-bit values.
-
- ... and reworked the hashes a bit. Also added mem_hash function
- which just computes a hash of given memory block.
-
-commit 1bb3ecb2a5369bc1992514da3cf5ef59dca46416
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Mon Feb 8 16:08:50 2016 +0100
-
- Fix closing flushed channel
-
- Fix reading from freed memory.
- Free at: channel_set_state(c, CS_DOWN)
- Read at: WALK_LIST2_DELSAFE(c, n, x, tab->channels, table_node)
-
- ==00:00:00:00.261 24718==
- ==00:00:09:31.755 24718== Invalid read of size 8
- ==00:00:09:31.755 24718== at 0x4061BA: rt_prune_table (rt-table.c:1688)
- ==00:00:09:31.755 24718== by 0x405D5E: rt_event (rt-table.c:1559)
- ==00:00:09:31.755 24718== by 0x45D089: ev_run (event.c:85)
- ==00:00:09:31.755 24718== by 0x45D158: ev_run_list (event.c:142)
- ==00:00:09:31.755 24718== by 0x462814: io_loop (io.c:2412)
- ==00:00:09:31.755 24718== by 0x468712: main (main.c:833)
- ==00:00:09:31.755 24718== Address 0x5601538 is 136 bytes inside a block of size 304 free'd
- ==00:00:09:31.755 24718== at 0x4C29D2A: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
- ==00:00:09:31.755 24718== by 0x46FF3E: rfree (resource.c:166)
- ==00:00:09:31.755 24718== by 0x470309: mb_free (resource.c:415)
- ==00:00:09:31.755 24718== by 0x406A6B: rt_unlock_table (rt-table.c:1921)
- ==00:00:09:31.755 24718== by 0x40DAE3: channel_do_down (proto.c:297)
- ==00:00:09:31.755 24718== by 0x40DD46: channel_set_state (proto.c:359)
- ==00:00:09:31.755 24718== by 0x4061AD: rt_prune_table (rt-table.c:1692)
- ==00:00:09:31.755 24718== by 0x405D5E: rt_event (rt-table.c:1559)
- ==00:00:09:31.755 24718== by 0x45D089: ev_run (event.c:85)
- ==00:00:09:31.755 24718== by 0x45D158: ev_run_list (event.c:142)
- ==00:00:09:31.755 24718== by 0x462814: io_loop (io.c:2412)
- ==00:00:09:31.755 24718== by 0x468712: main (main.c:833)
- ==00:00:09:31.755 24718== Block was alloc'd at
- ==00:00:09:31.755 24718== at 0x4C28C10: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
- ==00:00:09:31.755 24718== by 0x470FBC: bird_xmalloc (xmalloc.c:29)
- ==00:00:09:31.755 24718== by 0x4701E6: mb_alloc (resource.c:339)
- ==00:00:09:31.755 24718== by 0x406C29: rt_commit (rt-table.c:1977)
- ==00:00:09:31.755 24718== by 0x45C36D: config_do_commit (conf.c:269)
- ==00:00:09:31.755 24718== by 0x45C545: config_commit (conf.c:361)
- ==00:00:09:31.755 24718== by 0x4686F9: main (main.c:822)
- ==00:00:09:31.755 24718==
-
-commit 2a013bb3a01174fac3a841fd825ac4f13f3ea84d
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Mon Feb 1 10:25:31 2016 +0100
-
- Fixed sigsegv for missing proto->rt_notify hook
-
- If rt_notify is NULL, the export must always stay DOWN.
-
-commit ade389b326ddf2caaf08d7d3be8b3a1066ea7c97
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Mon Feb 1 09:22:18 2016 +0100
-
- BSD: compilation error fix
-
-commit f4a60a9bc429c28cb397402331dc01a789197450
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Jan 26 11:48:58 2016 +0100
-
- Channels - explicit links between protocols and tables
-
- The patch adds support for channels, structures connecting protocols and
- tables and handling most interactions between them. The documentation is
- missing yet.
-
-commit 9f5782d9691f23296c4b1a68ef66630d9cc3a6cd
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Thu Jan 28 16:55:27 2016 +0100
-
- Add 'GENERATE/ACCEPT FROM datetime TO datetime' to password options
-
-commit 966ca6143b8648a29e77b6328133bc3f245d50ee
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Wed Jan 27 12:14:46 2016 +0100
-
- io.c: fix reads from uninitialized memory
-
-commit d82987d12e96db887033deabb6c46f07db64e1b8
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Wed Jan 27 12:25:30 2016 +0100
-
- RIP: Fix DBG output
-
-commit 74d94167631ffd1b10709460510a1e3c8fc0e904
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Mon Jan 25 10:29:06 2016 +0100
-
- RIPng: fixed misrejection of host routes
-
-commit 2fad92144ee2e3a818a7510554d2144e46c3a4c8
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Thu Jan 21 15:46:33 2016 +0100
-
- BSD: fix no-return warning
-
-commit 3f35816136f1b57067d5ce426b031e4e3583085c
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Thu Jan 21 10:59:52 2016 +0100
-
- BSD: Explicitly dropping routes with mismatched AF's.
-
-commit 0e965f69914313857a95d03b2e6136d3e84019dd
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Jan 20 15:23:17 2016 +0100
-
- All the current pthread implementations are OK and working with us.
-
- No more need to disable pthread for specific BSD's.
-
-commit 7eb9e79648e17037f3691aafa829970efacbbbc9
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Thu Jan 21 10:30:08 2016 +0100
-
- Add condition for max_pxlen by ROA grammar
-
-commit a4caa1c0a3b6bfb9918f08dbbf856e4d3c78080a
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Thu Jan 21 10:24:50 2016 +0100
-
- Use net_addr pointer for net_addr_roaX
-
- net_addr_roa6 is bigger than net_addr
-
- Thanks to Ondrej Zajicek for notice
-
-commit 259052199ba82f0f37b87416592e2e2ddbdaee5f
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Wed Jan 20 15:41:15 2016 +0100
-
- Add forgotten semicolon
-
-commit 650b4189427eb5a5f96753e39c0d67f09e0ef445
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Wed Jan 20 16:29:17 2016 +0100
-
- Delete old ROA code
-
-commit 0264ccf6f4acaea5313dee2cd3bc3bdb28c74f60
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Wed Jan 20 15:38:37 2016 +0100
-
- Rewrite roa_check() for integrated BIRD
-
- Thanks to Ondrej Zajicek for his support with writing this code.
-
-commit cb1bd816db5b69acb8c6f72211d13f987a494304
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Wed Jan 20 15:06:19 2016 +0100
-
- Add ROA_* constants values to grammar of configuration
-
- Add ROA_UNKNOWN, ROA_VALID and ROA_INVALID
-
-commit 513ad0a85e57e4e0f7928fde7332778ca1c2148f
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Wed Jan 20 14:55:37 2016 +0100
-
- Add ROA net_addr to grammar
-
- Example:
- protocol static
- {
- route 10.110.0.0/16 max 16 as 1000 blackhole;
- route 10.120.0.0/16 max 24 as 1000 blackhole;
- route 10.130.0.0/16 max 24 as 2000 blackhole;
- route 10.130.128.0/18 max 24 as 3000 blackhole;
- ...
- }
-
-commit 8109eb765fe92f4d47b497b3e2b24b59841c3487
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Thu Jan 7 14:45:01 2016 +0100
-
- BSD integration fixes
-
-commit f9d729ab682156cc658eb451b95d7cbd37dfa139
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Thu Jan 14 10:03:50 2016 +0100
-
- NET ROAx: add max_pxlen, fix format
-
-commit 9a883adf954c2f68085a398e8ab38bd54831cf52
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Mon Jan 11 11:03:11 2016 +0100
-
- Net address format: Do not print the -4 or -6 suffix in %I4 and %I6
-
-commit a820ae107456a26656f29a3ed14010cf0cd87842
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Tue Jan 12 11:36:28 2016 +0100
-
- NET ROAx more small changes
-
- - Remove `u8 src` from net_add_roaX
- - Add `u8 max_pxlen` to net_add_roaX
- - Add some missing macro and functions for ROA
- - Remove ASN from hash function for ROA
-
- Thanks to Ondrej Santiago Zajicek
-
-commit 93e807292cff6eb3dfcd8d590dded04b965ac1a5
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Tue Jan 12 11:27:38 2016 +0100
-
- ROA change printf 'ASN: xxx' to 'ASxxx'
-
-commit 6ffa8f53931e2ae8becf8ec6ef09db88737a6a06
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Thu Jan 7 12:02:54 2016 +0100
-
- Hidden AF_INET* inside sysdep/
-
-commit 5b218c3d9bf9357aed0acf535bdfc6684cc5cda4
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Thu Jan 7 11:29:05 2016 +0100
-
- BFD: split of v4/v6 sockets
-
-commit b9f56921865dfe816091266e990e94db3e2fdbdf
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Thu Jan 7 18:24:14 2016 +0100
-
- Fix check in net_route() in debug mode
-
-commit de9b87f55863f29eb7965d8a772f8a34f195f4ac
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Thu Jan 7 18:17:16 2016 +0100
-
- Add NET ROA4/6 structures
-
-commit e691d16a63ce40bc56ecbc970e8118686d4b0148
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 29 17:12:47 2015 +0100
-
- Explicit ip4_addr / ip6_addr printf support
-
-commit 74c838a87000ca800e8b3f265340c1317989a04a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Dec 29 15:34:48 2015 +0100
-
- Move ID allocator to a separate file and use it also in OSPF
-
-commit 9a70c8d6c38155d8abb6d814563b9eefc134e901
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue Dec 29 13:01:00 2015 +0100
-
- Netlink: Removed forgotten if-stub (caused strange errors)
-
-commit 04632fd77f291f67753341d12d540f7dac341bd3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Dec 24 15:52:03 2015 +0100
-
- Follow-up work on integration
-
-commit 70b90dde23a684c4d32aa53685f76a73ecba941d
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue Dec 22 09:45:09 2015 +0100
-
- Better fix of missing AF_INET6? definition in lib/socket.h
-
- Moved the code to sysdep.
-
-commit 600998fcb1a1d155215ab32644982e9b78767e3e
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 21 20:16:05 2015 +0100
-
- Modify FIB_WALK() and FIB_ITERATE() to work with new FIB code
-
- Returned user data pointers have offset relative to fib_node.
-
-commit 67aa88336a91e635753ba42df45d7de5e191ed35
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Mon Dec 21 18:23:08 2015 +0100
-
- BSD wants to include sys/socket.h in lib/socket.h (AF_INET6? definitions)
-
-commit 0bf95f99e6126b481a4dcac574ada59f9ad3662b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 21 17:17:21 2015 +0100
-
- Follow-up work on integration
-
- Contains some patches from Jan Moskyto Matejka
-
-commit 23c212e7f1e80a3c6b88b49918972bc28375bd51
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Dec 21 03:27:41 2015 +0100
-
- Follow-up work on integration
-
-commit e92a4b855f668e8ac685ad79c288ff182ebd110b
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Dec 20 21:43:00 2015 +0100
-
- Filter: Fix some changes in IP<->Quad implicit conversion
-
-commit d549b83fc2f66b4c5e15e158409442993a2d62c4
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Dec 20 19:47:36 2015 +0100
-
- Delete ipv6 option from configure
-
-commit 0f7d5b1a889142cdcda0546d8adcc76de465ffb8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Dec 20 18:16:48 2015 +0100
-
- Nest: Reimplement fib_route() and add some consts
-
-commit 29a6416276a04ca1fc2bc64ebc7ef559918d78d8
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sun Dec 20 16:58:37 2015 +0100
-
- KRT: Integration of IPv4/IPv6 in sysdep/linux
-
-commit 7fd4143eadd5af6e1ad7825d7d7506ad021bf1ad
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Fri Dec 18 11:57:38 2015 +0100
-
- Integrated address print lengths
-
- Minor changes by Ondrej Santiago Zajicek
-
-commit 9656dce72eead158e6da3ad560720bb0addfe7e2
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Dec 16 15:30:44 2015 +0100
-
- ROA code switchoff
-
-commit aedd3a6babbaf35becb7770f73f30b20b464393f
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Dec 16 10:43:58 2015 +0100
-
- Implemented missing prefix manipulation functions
-
-commit 5e173e9f631913f68cf38d57a69c3ce6faf60d1e
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Wed Dec 16 10:25:12 2015 +0100
-
- Stop perusing f_prefix for non-prefix-set uses
-
- Multiple changes by Ondrej Santiago Zajicek
-
-commit d7661fbe9dea980c61daa01a11a9aa59fa7be426
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Fri Dec 11 15:35:37 2015 +0100
-
- Removed BITS_PER_IP_ADDRESS, MAX_PREFIX_LENGTH, BIRD_AF
-
- Explicit setting of AF_INET(6|) in IP socket creation. BFD set to listen
- on v6, without setting the V6ONLY flag to catch both v4 and v6 traffic.
-
- Squashing and minor changes by Ondrej Santiago Zajicek
-
-commit 9b136840d90cce887cd139054c3f0a7d8b9f57d2
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Mon Dec 7 16:24:18 2015 +0100
-
- Netlink and BSD: Integrating IPv4 and IPv6
-
- Squashing and minor changes by Ondrej Santiago Zajicek
-
-commit 52e21323b6c49af9d076586241451973a7d1e7c6
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Nov 25 15:52:58 2015 +0100
-
- BGP: Update capability number from IANA for extended messages
-
-commit 04ae8ddaa15b72c265dc7cf038b733d235198754
-Merge: d44e686e 33b4f40a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Wed Nov 25 14:24:35 2015 +0100
-
- Merge branch 'master' into int-new
-
-commit 33b4f40acce02c90b4b7766c5c94ebf2d22765c6
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Fri Nov 13 16:08:28 2015 +0100
-
- MD5: Mormalize naming style
-
-commit 90f78507f4a13673ccf0ba7c786b43d9e882fca7
-Merge: 8eb8e546 ad276157
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 24 15:21:11 2015 +0100
-
- Merge branch 'master' into rip-new
-
-commit ad27615760e2795da3efe5e97c0e888281d5ca59
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue Nov 10 14:59:41 2015 +0100
-
- Netlink: attribute validation before parsing
-
- Wanted netlink attributes are defined in a table, specifying
- their size and neediness. Removing the long conditions that did the
- validation before.
-
- Also parsing IPv4 and IPv6 versions regardless on the IPV6 macro.
-
-commit e422ca0f292d08a873deacdbffbb6c6cbd79f88a
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 24 13:52:26 2015 +0100
-
- Some consts for function arguments
-
- Patch from Pavel Tvrdik
-
-commit 5126380beace4e39578f005fe115917b8e8b8ff3
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 24 13:47:28 2015 +0100
-
- Minor changes to SHA hash functions
-
-commit 12d752ef24ab507d249a60098ec98dcf28b70036
-Merge: 1e4891e4 f312a837
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Nov 23 11:32:18 2015 +0100
-
- Merge commit 'origin/crypto-hash^'
-
-commit 1e4891e48e7b6f022564e7409d15c3fdb65ec2ad
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Nov 23 11:13:40 2015 +0100
-
- Nest: Fix bug in device proto
-
- If an interface address notification is received during device protocol
- shutdown/restart, BIRD crashed.
-
- Thanks to Wei Huang for the bugreport.
-
-commit f312a837e919c660884ceb9c50c106df1e4c0658
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Fri Nov 13 16:14:36 2015 +0100
-
- Add SHA-384/512 and HMAC-SHA-384/512 crypto hash
-
-commit 4035e0e79c609bde30a2f755eec864771ea08e21
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Fri Nov 13 16:13:15 2015 +0100
-
- Add SHA-224/256 and HMAC-SHA-224/256 crypto hash
-
-commit 5d0c36f1da83b2a2a07e043247410948d90c600e
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Fri Nov 13 16:11:51 2015 +0100
-
- Add SHA1 and SHA1-HMAC crypto hash
-
-commit 75ff08022ea58fe3efa96639f080ce375e997675
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Fri Nov 13 16:10:33 2015 +0100
-
- Add get_u64() and put_u64() into lib/unaligned.h
-
-commit d44e686e9bcae5850115c0e1adfe24523dce61ee
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Nov 12 02:03:59 2015 +0100
-
- Follow-up commit on integrated BIRD
-
- Use net_addr for interface address prefixes, support net_addr in
- configuration parser.
-
-commit fce764f90e8331d1adb6a85ec00136dfeae1a398
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.com>
-Date: Mon Nov 9 09:14:26 2015 +0100
-
- Fix compiling with --enable-debug option
-
-commit 9ddbfbddf87462bbf50437bdc1d44499a5c223e7
-Author: Jan Moskyto Matejka <mq@ucw.cz>
-Date: Tue Nov 3 14:42:41 2015 +0100
-
- Netlink: Allow more than 256 routing tables.
-
- Since 2.6.19, the netlink API defines RTA_TABLE routing attribute to
- allow 32-bit routing table IDs. Using this attribute to index routing
- tables at Linux, instead of 8-bit rtm_table field.
-
-commit 86b4e17001fe4cca6dde7ff523346121c0ae68fe
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Nov 9 01:01:12 2015 +0100
-
- Nest: Fixes bug in missing cleanup during table removal
-
- When a table is removed during reconfiguration, a reference was not
- cleared in the old configuration, which breaks undo.
-
-commit 9b9a7143c43d01f0459d40363d56e9c7690c596f
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Nov 9 00:42:02 2015 +0100
-
- Conf: Fixes bug in symbol lookup during reconfiguration
-
- Symbol lookup by cf_find_symbol() not only did the lookup but also added
- new void symbols allocated from cfg_mem linpool, which gets broken when
- lookups are done outside of config parsing, which may lead to crashes
- during reconfiguration.
-
- The patch separates lookup-only cf_find_symbol() and config-modifying
- cf_get_symbol(), while the later is called only during parsing. Also
- new_config and cfg_mem global variables are NULLed outside of parsing.
-
-commit fe9f1a6dedda6bab23cbb605d1cd5db6cd3e2468
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Thu Nov 5 12:48:52 2015 +0100
-
- Initial commit on integrated BIRD
-
- New data types net_addr and variants (in lib/net.h) describing
- network addresses (prefix/pxlen). Modifications of FIB structures
- to handle these data types and changing everything to use these
- data types instead of prefix/pxlen pairs where possible.
-
- The commit is WiP, some protocols are not yet updated (BGP, Kernel),
- and the code contains some temporary scaffolding.
-
- Comments are welcome.
-
-commit 3aed0a6ff7b2b811a535202fd787281d2ac33409
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 3 11:27:27 2015 +0100
-
- IO: Fix the previous bugfix
-
- I should check it after making some trivial changes. The original patch
- from Alexander has it right.
-
-commit 338f85ca7721fac16394ccabd561ddb5ccaacb36
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Tue Nov 3 11:08:57 2015 +0100
-
- IO: Handle fd values too big for select()
-
- If the number of sockets is too much for select(), we should at least
- handle it with proper error messages and reject new sockets instead of
- breaking the event loop.
-
- Thanks to Alexander V. Chernikov for the patch.
-
-commit 8eb8e546dc8cc647fcfa4a3a17dfa8ab36b00958
-Merge: 8465dccb acb04cfd
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Oct 17 14:44:34 2015 +0200
-
- Merge branch 'master' into rip-new
-
-commit acb04cfdc550697a7171a86ca559fd8c52841acb
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Sat Oct 17 14:36:53 2015 +0200
-
- Minor changes
-
-commit 8465dccb06afffed171dc1e224e4eb5f67cc3326
-Author: Ondrej Zajicek (work) <santiago@crfreenet.org>
-Date: Mon Oct 5 12:14:50 2015 +0200
-
- Major RIP redesign
-
- The new RIP implementation fixes plenty of old bugs and also adds support
- for many new features: ECMP support, link state support, BFD support,
- configurable split horizon and more. Most options are now per-interface.
-
-commit b5e76398de1d4468b4061d9ef57dd3154b2f745e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Aug 19 11:16:23 2015 +0200
-
- OSPF: Fixes some issues with link detection
-
- Thanks to Bernardo Figueiredo and Israel G. Lugo for the bugreport.
-
-commit c7b99a932cab1873042e356143ab71755920157a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jul 28 15:08:21 2015 +0200
-
- Nest: Fixes one of previous commit
-
-commit dbf4c0cb258bd92efb54f95194f664f95ba98fd9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jul 28 12:56:51 2015 +0200
-
- Minor update to test commits
-
-commit 641172c6e5e4e291029084074f94f448d6bc69dd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jul 28 12:35:12 2015 +0200
-
- Netlink: Fixes uninitialized variable
-
- Thanks to Pavel Tvrdik for the bugfix
-
-commit 538264cf1a7690d90b2953aebff21958c2b55c44
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jul 24 18:02:07 2015 +0200
-
- Static: Support for BFD controlled static routes
-
-commit 1321e12ac460bd542d3946a0c4a4dacd71157cfa
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 20 11:12:02 2015 +0200
-
- Static: Allows to specify attributes for static routes
-
- The patch adds suport for specifying route attributes together with
- static routes, e.g.:
-
- route 10.1.1.0/24 via 10.0.0.1 { krt_advmss = 1200; ospf_metric1 = 100; };
-
-commit ffa398b8d8bac4cf6368fe700466cad4ff12fee8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jul 19 11:39:24 2015 +0200
-
- BFD: Fixes crash after socket error
-
- Thanks to Thomas King for the bugreport.
-
-commit a8ad8fd6491d04620fe4fdebc50f0da2927f9b21
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jul 18 23:15:04 2015 +0200
-
- Simplify build messages
-
- Thanks to Christian Tacke for the original patch.
-
-commit 17661ff934a80d517284c96756357d4ed5af9a64
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jul 18 19:30:35 2015 +0200
-
- Nest: Fixes symbols in router id
-
- Thanks to Peter Hudec for noticing the problem.
-
-commit 6683d42d5b560c8805b977736b2a769ea2d9aa8b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jul 18 19:05:11 2015 +0200
-
- Documentation update
-
-commit 06e0d1b692d8a190c3f1d073c5c557d8efe78b17
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jul 18 13:38:21 2015 +0200
-
- BGP: Extended messages support
-
- Implements draft-ietf-idr-bgp-extended-messages-10, for now
- undocumented and with temporary private capability number.
-
-commit ab4da3423d89fb6c60a4137f19c189a8716ecab6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jul 18 13:05:05 2015 +0200
-
- Direct: Fixes behavior for the same routes on different interfaces
-
- Thanks to Andrew (seti.kr.ua) for the bug report.
-
-commit 8d9eef17713a9b38cd42bd59c4ce76c3ef6c2fc2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jun 8 02:20:43 2015 +0200
-
- BGP multipath support
-
- Kernel option 'merge paths' allows to merge routes exported to kernel
- protocol (currently BGP and static routes) to multipath routes.
-
-commit db027a41d47b8fc52b65067ccabe2024554e53ca
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 4 11:35:26 2015 +0200
-
- Fixes subtle bug in temporary attribute handling
-
- In some cases, export filter accessed attributes of a different route.
-
-commit 78a2cc289fbe11d5b5783220e2cc61d119a78ec3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jun 3 11:58:46 2015 +0200
-
- KRT: Fixes some minor bugs in kernel protocol
-
-commit d217ba5111a80a629e408961b902d7759c4b46f5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 31 23:25:33 2015 +0200
-
- Moving of mulipath merging code from OSPF to nest
-
-commit ca34698ca62d979c281ed517f040619e31c3ada3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 31 11:29:53 2015 +0200
-
- Fixes bug in pipe feeding when filtered routes are kept in table
-
-commit ae80a2de95d3d3c153ce20b90c9d8757d02cb33d
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.cz>
-Date: Tue May 19 08:53:34 2015 +0200
-
- unsigned [int] -> uint
-
-commit e348ef01b433e06888310c1098a05291034a856c
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.cz>
-Date: Tue May 19 08:14:04 2015 +0200
-
- unsgined char -> byte
-
-commit 398f92253186d70eb3f2e910c7f8dd2636ee5fa1
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 1 10:41:17 2015 +0200
-
- Typo fix by Hans van Kranenburg
-
-commit 9fe1d3ca8a6420b4bdaf15a54ab7b13be6cc07eb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 22 11:12:48 2015 +0200
-
- Fixes unnamed protocols from templates
-
-commit d0e23d42de133de706151411d8d4091d07904d29
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 17 00:54:33 2015 +0200
-
- Simplify flushing process
-
- Related to changes from previous patch.
-
-commit 86f567e13c2202fc3c3a1ce49f9a35220a50f117
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat May 16 20:17:59 2015 +0200
-
- Fix minor issue in pipe route propagation
-
- In some circumstances during reconfiguration, routes propagated by pipes
- to other tables may hang there even after the primary routes are removed.
-
- There is already a workaround for this issue in the code which removes
- these stale routes by flush process when source protocols are shut down.
-
- This patch is a cleaner fix and allows to simplify the flush process
-
-commit 38e835dede88158d97c3039ed22faabed79c7181
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed May 13 13:19:26 2015 +0200
-
- Fix in the last commit
-
-commit 9fdf9d29b6b570205c36934aab7e50539e042102
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue May 12 16:42:22 2015 +0200
-
- KRT: Add support for plenty of kernel route metrics
-
- Linux kernel route metrics (RTA_METRICS netlink route attribute) are
- represented and accessible as new route attributes:
-
- krt_mtu, krt_window, krt_rtt, krt_rttvar, krt_sstresh, krt_cwnd, krt_advmss,
- krt_reordering, krt_hoplimit, krt_initcwnd, krt_rto_min, krt_initrwnd,
- krt_quickack, krt_lock_mtu, krt_lock_window, krt_lock_rtt, krt_lock_rttvar,
- krt_lock_sstresh, krt_lock_cwnd, krt_lock_advmss, krt_lock_reordering,
- krt_lock_hoplimit, krt_lock_rto_min, krt_feature_ecn, krt_feature_allfrag
-
-commit 315f23a0470112ced04badbb117bc7854ee53e06
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat May 9 18:50:15 2015 +0200
-
- Add bitfield route attribute type
-
-commit 77edab640925e8d1131f0d00b41de055129ff99f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 1 14:40:56 2015 +0200
-
- OSPF: Redesign LSA checksumming
-
- New LSA checksumming code separates generic Fletcher-16 and OSPF-specific
- code and avoids back and forth endianity conversions, making it much more
- readable and also several times faster.
-
-commit 30d09eb96e8d46143d04285016a137d71a87c416
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 28 13:45:44 2015 +0200
-
- OSPF: Fixes validation of LSA checksums
-
- Prior to this patch, BIRD validates the OSPF LSA checksum by calculating
- a new checksum and comparing it with the checksum in the header. Due to
- the specifics of the Fletcher checksum used in OSPF, this is not
- necessarily correct as the checkbytes in the header may be calculated via
- a different means and end up with a different value that is nonetheless
- still correct.
-
- The documented means of validating the checksum as specified in RFC 905
- B.4 is to calculate c0 and c1 from the unchanged contents of the packet,
- which must result in a zero value to be considered valid.
-
- Thanks to Chris Boot for the patch.
-
-commit 7069fc9e724134ddd841219f5673cc9b13c58490
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Apr 25 21:41:43 2015 +0200
-
- KRT: Fixes route reload
-
- Did not really worked
-
-commit c5ff44a703e4ab810a5bd45cf9140643a50fb3ec
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Apr 25 20:43:43 2015 +0200
-
- KRT: Fixes learning of preferred kernel routes.
-
- When a new route was imported from kernel and chosen as preferred, then
- the old best route was propagated as a withdraw to the kernel protocol.
- Under some circumstances such withdraw propagated to the BSD kernel could
- remove the new alien route and thus reverting the import.
-
-commit 90097f4fb924922b416247abf291fb21f39dc8e1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 22 10:53:15 2015 +0200
-
- KRT: Support for RTM_CHANGE on BSD
-
-commit deec752ef941eef4c36c21c5c5426d08e98c7a44
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Apr 20 12:27:00 2015 +0200
-
- NEWS and version update
-
-commit b867a87c2fd694e6e690dc94da76754e89f03370
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Apr 19 00:19:56 2015 +0200
-
- Fixes port range socket option
-
-commit ef3cac669ca0f6f2b983e33ab6d553705c35f3df
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Apr 18 13:22:41 2015 +0200
-
- OSPF: Fixes handling of external routes with immediate gw
-
- The bug caused that received external LSAs with locally reachable
- next hops were ignored. I wonder why nobody noticed it sooner.
-
-commit 304ac2e861a5ea28683489aff38ff37ff6873bb4
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Apr 12 10:47:17 2015 +0200
-
- Minor fixes
-
-commit d924d5a5626397da7e71fddfb1c0fd22c2714f2c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 1 00:01:35 2015 +0200
-
- BGP: Fixes serious bug in TX handling
-
- Under some circumstances and heavy load, TX could be postponed
- until the session fails with hold timer expired.
-
- Thanks to Javor Kliachev for making the bug reproductible.
-
-commit 16a3254c4cb592e7cfa3aea744e9fd58665d6367
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Mar 31 23:59:40 2015 +0200
-
- Understand IFF_MULTICAST flag on ifaces in Linux
-
- Unfortunately, some interfaces support multicast but do not have
- this flag set, so we use it only as a positive hint.
-
- Thanks to Clint Armstrong for noticing the problem.
-
-commit 2eadd36fa004d705a4003892d1639485eeaf8486
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Mar 29 21:24:47 2015 +0200
-
- BGP: AS-wide unique router ID (RFC 6286) support
-
- RFC 6286 relaxed rules for router IDs, allowing EBGP sessions between
- routers with the same ID (but different ASN).
-
-commit 9aed29e605334d34d0e6a90fc172ee83d0274ad3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Mar 29 18:27:13 2015 +0200
-
- BGP: Enhanced route refresh (RFC 7313) support
-
- Also hook feed_done is renamed to feed_end.
-
-commit a5a5a41e2ee51ad6dfef0ab24e07d6d9b16a4215
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Mar 9 23:59:26 2015 +0100
-
- Possibility to define unnamed protocols from template added.
-
-commit 509aab5debef5b4710d8983da6ef076a226fd7ea
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 2 10:58:20 2015 +0100
-
- Fixes serious bug in BGP add-path
-
- Temporary rta is reused in BGP, while rta_lookup() breaks it.
-
- Thanks to Alexander Chernikov for analysing the problem.
-
-commit af454f9b7c3930a7900e60a7fb608b7de11852aa
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 2 09:42:44 2015 +0100
-
- Fixes bug in debug dumps
-
- Using 'dump sockets' in IPv6 mode caused crash due to mismatched format string.
-
- Thanks to Pavel Tvrdik for noticing it.
-
-commit 8bcb5fb1e8a0718f88f99cde2f5b5a3bae5c4451
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 2 09:41:14 2015 +0100
-
- Implement latency tracking, internal event log and watchdog
-
-commit 4e63974471c4e2f11781cda163e0dc2ac6fb72f9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Feb 24 16:19:14 2015 +0100
-
- Add minor comment
-
-commit 9c89560e6cdf44a21b2eff8765973ed8665fa07f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Feb 22 20:14:14 2015 +0100
-
- Use IP_PORTRANGE_HIGH for BFD where available
-
-commit 6cf72d7ad7cbe1eb2f5b63660be6967d29b37044
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Feb 22 16:08:28 2015 +0100
-
- Rename BGP option 'start delay' to 'connect delay'
-
- Also update log message for error-triggered startup delay.
-
-commit a1beb8f3ee7a6e41dbe4bfd336b8bf5eecb46d01
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Feb 22 13:50:58 2015 +0100
-
- Relax BGP neighbor parameter
-
- Permit specifying neighbor address, AS number and port independently.
- Add 'interface' parameter for specifying interface for link-local
- sessions independently.
-
- Thanks to Alexander V. Chernikov for the original patch.
-
-commit 86c3eea0f3ec74ac1024d4aba4e98c962126f387
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 21 21:19:49 2015 +0100
-
- Use AF_UNSPEC for RTM_GETLINK
-
- This value is specified in documentation.
-
-commit 2bbc308321894e0fd301766e8d7d78a4ec119053
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 21 21:08:23 2015 +0100
-
- Store protocol config size inside protocol structure
-
- Make proto_config_new() use this info instead of supplied size.
-
- Thanks to Alexander V. Chernikov for the patch.
-
-commit 374917adccb955fbb2796955166fabe46a09e096
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 21 20:39:59 2015 +0100
-
- Make BGP protocol instance search a separate function
-
- Thanks to Alexander V. Chernikov for the patch.
-
-commit 6264aad16f3320eceb20825c6049917e771b9364
-Author: Pavel TvrdĂ­k <pawel.tvrdik@gmail.cz>
-Date: Wed Jan 7 15:04:02 2015 +0100
-
- Minor fixes
-
-commit 85a3639d99a39a79b65c2dbc2a136baee6ba2a2b
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.cz>
-Date: Fri Dec 5 09:25:38 2014 +0100
-
- Better Clang compatibility
-
-commit 7d37bf79de190c89f704bfbf0a753f328d995d5a
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.cz>
-Date: Wed Dec 3 10:32:26 2014 +0100
-
- Remove a comparison of unsigned expression < 0
-
-commit e598853e681d23dd7820627eeed96bf53197eae5
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.cz>
-Date: Wed Dec 3 10:57:31 2014 +0100
-
- Add const to a param msg at functions log_msg, log_rl, die, bug and debug
-
-commit 4a591d4b947e0abc0ad013ca1b75da27c6922be5
-Author: Pavel Tvrdik <pawel.tvrdik@gmail.cz>
-Date: Wed Dec 3 10:10:34 2014 +0100
-
- Replacing GNU old-style field designator extension
-
-commit 8ce9a87755372d7612375bb1a81a288f309746c8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 21 14:52:17 2015 +0100
-
- Fixes minor bug in BFD.
-
- Thanks to Pavel Tvrdik for noticing it.
-
-commit 51762a45b39f906fe72db2d3d46c9890cb01bbd8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 21 14:05:20 2015 +0100
-
- Allows user data attached to f_trie_node structure.
-
- Thanks to Alexander Chernikov for the patch.
-
-commit bc7f4e0e3447c579f68b43d407b64a5262f0d11e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 21 12:42:31 2015 +0100
-
- Bump max symbol length to 64.
-
- And move the constant to conf.h header.
-
- Thanks to Alexander Chernikov for the patch.
-
-commit ab006391305165c805f75e3a2ce20946748233c9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 21 12:27:05 2015 +0100
-
- Fixes a bug in locking code.
-
- When multiple protocols have a lock for the same IP address, it crashes
- under some circumstances.
-
- Thanks to Matthias Schiffer for the bugreport.
-
-commit dfc7a6c6a0758a1d9a13b94708228c9844efe97e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 21 12:24:30 2015 +0100
-
- Fixes potential alignment bug in BGP.
-
- Thanks to Andrew (seti.kr.ua) for the bug report.
-
-commit 523f020b5f6b63096a7d5e90938baecd4beea0bd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 21 11:46:14 2015 +0100
-
- Link state support in BGP.
-
- Configurable fast shutdown of a BGP session when an interface loses link.
-
-commit 7730553b7eeb33d21e5597f110334ca584ad532d
-Merge: 0da562a7 ec2194fa
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 21 11:39:45 2015 +0100
-
- Merge remote-tracking branch 'origin/soft-int'
-
-commit 0da562a7cb25ed2b8724248ad6f841b1831a09c3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Nov 8 23:52:42 2014 +0100
-
- Fixes error message in 'show route' cmd.
-
- Message 'Network not in table' was not reported if a network node without
- any routes was found in a routing table.
-
-commit ec2194fa7a20a2768ca0027b5f3c024f0a251866
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Nov 5 11:07:25 2014 +0100
-
- Version 1.5.0pre
-
-commit dd5ef279bce002b9942ea437ef80ce3443bbe1dc
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Nov 4 18:11:59 2014 +0100
-
- Small typo fixed.
-
-commit f92e6ab364d50900bc9104af4539f6ea42b25c43
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Nov 3 20:35:58 2014 +0100
-
- Changes order of iface/addr/neigh event hooks.
-
- Now the order is:
-
- Up -> iface, addr, neigh
- Down -> neigh, addr, iface
-
- It fixes the case when an iface appears, related static routes are
- activated and exported to OSPF before the iface notification and
- therefore forwarding addresses are not encoded in generated external
- LSAs.
-
-commit ac9dc669d80cbfeea3d0cdba5ec7354c804b1ae9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Nov 3 20:35:25 2014 +0100
-
- Bugfix in latest OSPF changes.
-
-commit cd3b700393144796c9dead54b6ac2fc31aaa5272
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Nov 3 14:53:59 2014 +0100
-
- Bugfix to OSPF reconfiguration.
-
-commit 6f8bbaa10bbd21729d0b62a5878febcbee2c0811
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Nov 3 10:42:55 2014 +0100
-
- Fininshing integrated OSPF.
-
-commit d148d0af363cdac7783c4bf79527669cdd5ddf4a
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Oct 25 21:08:35 2014 +0200
-
- Mailling list location changed.
-
-commit 88a183c6c9a2b86b52f67e87bbc8b7edd32670c6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Oct 24 11:11:43 2014 +0200
-
- Integrated IP functions.
-
-commit f8fefde318c6248ad94e7b6d60155deed9ab8eed
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Oct 24 10:27:21 2014 +0200
-
- Refactoring of OSPF messages.
-
-commit d26cfa0519daf1369b697b0df000c8db8b730e66
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Oct 16 18:05:54 2014 +0200
-
- __attribute__((packed)) added. Thank to Maksim Tamarsky
-
-commit 78342404ff573e85e396f0611014b90cea9b4c0a
-Merge: 178a197a cfdea7b8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Oct 14 17:23:34 2014 +0200
-
- Merge remote-tracking branch 'origin/master' into soft-int
-
-commit cfdea7b85f6c520cc5a62eb907d2190db14c9900
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 5 23:59:18 2014 +0200
-
- NEWS and version update.
-
-commit 7aa809016e9a2e24ef914888f7413dc1f2721b17
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 2 12:46:26 2014 +0200
-
- Implements show route noexport option.
-
- Shows routes that would be exported to the protocol but are rejected by
- the export filter.
-
-commit 1123e707400984108f48ac7c1be559f7ed8d9306
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 2 11:41:34 2014 +0200
-
- Implements token bucket filter for rate limiting.
-
-commit dcde7ae597ccb7d81648b9ecab7c0f61c88e60f2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 2 11:33:55 2014 +0200
-
- Allows to configure different remote port for BGP sessions.
-
- Thanks to JoĂŁo Taveira AraĂşjo for the original patch.
-
-commit 252c7e4d0b7b45c89f69b3c4763b0c013aa5830d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 2 11:05:55 2014 +0200
-
- Refresh kernel protocol when interface disappears.
-
- When an interface goes down, (Linux) kernel removes routes pointing to
- that ifacem but does not send withdraws for them. We rescan the
- kernel table to ensure synchronization.
-
- Thanks to Alexander Demenshin for the bugreport.
-
-commit b2f008378a39104152b20a969942cd6c99644984
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 2 11:02:14 2014 +0200
-
- Allows more constants in set literals.
-
- Thanks to Michael Fincham for the bugreport.
-
-commit 0479b44373892db273f3e0365c7cbaad2eeb0d5f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 2 10:59:34 2014 +0200
-
- Fixes some warnings.
-
-commit 178a197afb77770d8a90765e39065679936a45d1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 21 21:50:56 2014 +0200
-
- OSPF instance id option and documentation update.
-
-commit 742029eb782f19c05decbd443d245f12360d5e78
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jul 19 17:28:38 2014 +0200
-
- Whitespace cleanup in OSPF.
-
-commit a7a7372aa7c527619ee527e3b37013f9fb87d618
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jul 18 18:24:12 2014 +0200
-
- Temporary integrated OSPF commit.
-
-commit 7c00551749005ad951845eb924f76e1fd28e62a2
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jul 9 23:46:02 2014 +0200
-
- Version 1.4.4.
-
-commit 06c4b6ac9da204453049fa56a204474486a9c9e9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 9 18:42:59 2014 +0200
-
- NEWS and version update.
-
-commit 029ec22d0acedb79e03394b60ea99bb46c479d79
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 9 18:34:42 2014 +0200
-
- Fixes a bug in BSD kernel interfacing code.
-
- The bug was introduced in 05476c4d04a24bdb26fa64e05ab31bc36118f34e.
-
-commit 751482899c190194b4958bc54ded428f98f565e9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 7 22:56:21 2014 +0200
-
- Implements default router preference (RFC 4191) for RAdv.
-
- Thanks to Baptiste Jonglez for the patch.
-
-commit 6285793f18817091060c7257f7d4af0db010a67a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 7 22:23:37 2014 +0200
-
- Replaces function name in test.conf as it collided with new keyword.
-
-commit 20e8d040b09f1e01c431c686f1ced5a12ba7bc68
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jun 30 11:55:22 2014 +0200
-
- Fixes integer overflow in show memory command.
-
- Thanks to Job Snijders for the bugreport.
-
-commit 8945f73d946a9323daf8dfc1bf5b3884cf6d7664
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 26 13:30:27 2014 +0200
-
- Ensures that msg_controllen includes last padding.
-
- Although RFC 3542 allows both cases, Theo de Raadt thinks
- he knows better, and msg_controllen without last padding
- fails on OpenBSD.
-
- Thanks to Job Snijders for the bugreport.
-
-commit 70945cb645402a4bb1d3dc46a07928caeb954c1f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 26 11:58:57 2014 +0200
-
- Temporary integrated OSPF commit.
-
-commit 9d5960cfa5b4c15ddd48dbab599f864a6aa1e025
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jun 10 12:16:01 2014 +0200
-
- Fixes max include depth in documentation.
-
- Thanks to Artyom Gavrichenkov for the patch.
-
-commit 9eceab33f97724be148f9f05614d7551940e85f1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu May 29 23:05:03 2014 +0200
-
- String constants could be used for string option values.
-
- Thanks to Frederik Kriewitz for the patch.
-
-commit 05476c4d04a24bdb26fa64e05ab31bc36118f34e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 18 11:42:26 2014 +0200
-
- IPv4/IPv6 integrated socket code.
-
-commit 1149aa977d906a6400f998d5f6600871584395d0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon May 5 11:05:12 2014 +0200
-
- Fixes a problem with undoing of deconfiguring of protocol.
-
- Thanks to Sergey Popovich for the original patch.
-
-commit 5a3905fe905ab1cc1a58fe9e6a4284f7d5057d13
-Merge: 66370eac 7d9ab86b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 4 11:59:50 2014 +0200
-
- Merge commit 'origin/master'
-
-commit 66370eac1f88ec74b3017f1c39038d7b8b776de6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 4 00:01:06 2014 +0200
-
- Fixes BGP crash when update with some attributes and empty NLRI is received.
-
- Thanks to Charlie Allom for the bugreport.
-
-commit 7d9ab86b7ac7d1f039af92a58eb749a24811b5c9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 4 00:01:06 2014 +0200
-
- Fixes BGP crash when update with some attributes and empty NLRI is received.
-
-commit c865cae3eb327d1e0a745352c483bc7cb00f9323
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Apr 28 17:31:03 2014 +0200
-
- Fixes 'show route export' w.r.t. protocols with different RA_* types.
-
-commit 984d734944a39b70a59f74e57f0e6fc3f720dd48
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Apr 27 00:46:32 2014 +0200
-
- Fixes limit verification during reconfiguration.
-
-commit 145368f5474436ad7c48fa26f5bde8108ae5ef4a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 23 13:54:28 2014 +0200
-
- Extends multipath support for OSPF.
-
- Fixes cases where the same network or external route are propagated by
- several OSPF routes and some other corner cases in next hop construction
- and ECMP. Allows to specify whether external routes should be merged.
-
- Thanks to Peter Christensen for the original patch.
-
-commit 4dd24f05f384ac14546d4bebbfcb0ecf9a976ec6
-Merge: 1cb0f83d 6c6ebd64
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 23 13:52:15 2014 +0200
-
- Merge commit 'origin/master'
-
-commit 6c6ebd64c3e44a2658a7ae8729159f1653c00a89
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Apr 14 14:47:20 2014 +0200
-
- NEWS and version update.
-
-commit 7c4a8007255403d046d7e909f710f0b1ed1791b1
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Apr 14 12:28:30 2014 +0200
-
- Fixed bug in unused function.
-
-commit 859cbd75e12966b09985b2a992da5ffb250938f8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Apr 14 12:50:03 2014 +0200
-
- Fixes a bug in (mainly) IPv6 BGP.
-
- Stack variable may be used unitialized and that would lead to spurious
- rta_free(), which may cause crash. The bug was introduced in 1.4.1 from
- merging add-path branch.
-
- Thanks to Peter Andreev for reporting it and Alexander V. Chernikov for
- resolving it.
-
-commit 1cb0f83d291d9bb3da06067bc2ea838238d5c487
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Apr 7 11:48:25 2014 +0200
-
- Fixes some asserts.
-
-commit 538fec7b1b7dd729eadf1c933e27f59080cd3576
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 2 23:00:10 2014 +0200
-
- NEWS and version update.
-
-commit 2750b2484f256686a38ef6b89db7e2afe9b7999a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 2 20:09:37 2014 +0200
-
- Fixes missing line in BFD context help.
-
-commit 864f52a5f4c47ac8dc44a8808beb7f038cbf9899
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 2 19:58:23 2014 +0200
-
- Fixes nasty bug in BFD.
-
- When a BFD session is removed while being scheduled for notification,
- the session stays in notify list and is removed twice, which leads to
- a strange crash after a while.
-
-commit 60442b1698563ebc5837454d89dbe4afa037882d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 31 18:51:51 2014 +0200
-
- NEWS and version update.
-
-commit d96ec7f6e0d26546d9a27064fd13591618258894
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 31 18:51:16 2014 +0200
-
- Updates BFD documentation.
-
-commit eb5ea6bdd6fa45f03425ea38b8d1b16fd5ff7469
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 31 13:21:13 2014 +0200
-
- Fixes build on some old systems.
-
-commit 43eb8f610f7796375419dc8d72df7a41c01c82af
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 31 12:02:20 2014 +0200
-
- Removes conflicting definition.
-
- This function is a part of Readline interface for a long time
- (with a different type).
-
-commit d7c0628591b802e202903b63fce53b6a422a3db2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 31 00:56:44 2014 +0200
-
- Check validity of interface definitions.
-
- Thanks to Aleksey Berezin for the bugreport.
-
-commit 0c3d9dacafdb807d2101c67610969707353f434a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Mar 25 14:58:00 2014 +0100
-
- Fixes file descriptor leak when parser ends with error.
-
- Thanks to MrBr for the bugreport.
-
-commit 4e7c974d22ee5d938d8d8e7018f0a63f609d630b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 24 19:22:19 2014 +0100
-
- Fixes a bug in graceful restart.
-
-commit 9637c7c0acbc56bbf6fedc44d89f921386843992
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 24 13:33:15 2014 +0100
-
- Minor fixes in documentation.
-
-commit dad92c30c7892457335d52a09548330498567ea8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 24 12:56:56 2014 +0100
-
- Reformat bird.sgml to have consistent line length.
-
-commit c980f8002e0f0578d5e715d48d65d9fb9a0c5a70
-Merge: 2e84b4e8 227af309
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 24 12:41:43 2014 +0100
-
- Merge branch 'bgp-grace'
-
-commit 227af309e55a59f14d1a5a757f17900164bffc97
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 24 12:32:12 2014 +0100
-
- Fixes some minor issues in graceful restart.
-
-commit 2e84b4e82dbf8fce0fd12fb0c25d925ffd287970
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Mar 23 01:40:37 2014 +0100
-
- Fixes a bug in rte_src handling.
-
-commit 6eda3f135f5bab4db456531d25bc3e5f669ec22e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Mar 23 01:35:33 2014 +0100
-
- Documentation (and minor fixes) for BGP graceful restart.
-
-commit 0c791f873aeb7c1052c97db7da4fe23873d69603
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 20 14:07:12 2014 +0100
-
- BGP graceful restart support.
-
- Also significant core protocol state changes needed for that,
- global graceful restart recovery state and kernel proto support
- for recovery.
-
-commit d40c26594c22ad934a13061e11b373bdf81af8f9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Feb 26 13:25:39 2014 +0100
-
- Fixes issues with static protocol reconfiguration.
-
- The old static route was not removed when the nexthop changed and the
- new one was not viable (no neighbor).
-
- Thanks to Pierluigi Rolando for the original patch.
-
-commit 3216eb03ddddc057bb18fa4dd02b7935a604f71f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Feb 26 12:52:00 2014 +0100
-
- Fixes longstanding issue with interfaces staying in IF_TMP_DOWN.
-
- Thanks to Pierluigi Rolando and others for the bugreport.
-
-commit d776540811cdf672dc113f29feef2415465589c6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Feb 12 12:57:38 2014 +0100
-
- Adds configure error message.
-
-commit 4e398e34bf140baf73fe8dceaf81078fb343f65a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Feb 7 13:09:55 2014 +0100
-
- Workaround thread-unsafeness of cli_echo().
-
-commit 9ae0f4b78c5e3619ee19969c052c863bf96be6d9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Feb 7 11:46:01 2014 +0100
-
- Fixes autoconf check for ncurses.
-
-commit 5c200e0a4d26d183e04fda43de16340521002c40
-Merge: 4a5eb284 080ed4d8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 6 20:15:05 2014 +0100
-
- Merge branch 'add-path'
-
-commit 4a5eb284c9d51441e09976021d1bd93c21408d46
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 6 18:09:18 2014 +0100
-
- Update include directive documentation.
-
- Thanks to Pierluigi Rolando for the bugreport.
-
-commit 12201fd854424628be7a00e1180ba082db7efa0b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 6 18:00:41 2014 +0100
-
- Fix a documentation update.
-
-commit 10c2e1e0125dfa600b1c2b6553883cccf2d025dd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 6 17:54:25 2014 +0100
-
- Fixes crash when state of disabled OSPF protocol is queried.
-
- Thanks to Ondrej Caletka for the bugreport.
-
-commit cba9cbf1bdb253c7727da10ff4f835d7ffbadeed
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 6 17:51:16 2014 +0100
-
- Silence this annoying warning.
-
-commit 48e5f32db676645640f84ab3d630cce975aa6b20
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 6 17:46:01 2014 +0100
-
- Many changes in I/O and OSPF sockets and packet handling.
-
- I/O:
- - BSD: specify src addr on IP sockets by IP_HDRINCL
- - BSD: specify src addr on UDP sockets by IP_SENDSRCADDR
- - Linux: specify src addr on IP/UDP sockets by IP_PKTINFO
- - IPv6: specify src addr on IP/UDP sockets by IPV6_PKTINFO
- - Alternative SKF_BIND flag for binding to IP address
- - Allows IP/UDP sockets without tx_hook, on these
- sockets a packet is discarded when TX queue is full
- - Use consistently SOL_ for socket layer values.
-
- OSPF:
- - Packet src addr is always explicitly set
- - Support for secondary addresses in BSD
- - Dynamic RX/TX buffers
- - Fixes some minor buffer overruns
- - Interface option 'tx length'
- - Names for vlink pseudoifaces (vlinkX)
- - Vlinks use separate socket for TX
- - Vlinks do not use fixed associated iface
- - Fixes TTL for direct unicast packets
- - Fixes DONTROUTE for OSPF sockets
- - Use ifa->ifname instead of ifa->iface->name
-
-commit f48fa14214301382b2e6b134788a7506b61b664f
-Merge: 6601a148 300e4008
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 6 16:47:43 2014 +0100
-
- Merge commit 'origin/master' into socket
-
-commit 300e4008f02382b87409dabb52a317b8336de55b
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Feb 5 23:32:28 2014 +0100
-
- Fedora init script improvement suggested by alex@alex.org.uk
-
-commit e9e6fbf924630abf821aa38f99e571f706536350
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Feb 5 15:57:37 2014 +0100
-
- Minor changes in Fedora init script.
-
-commit ec35c7c2fc24e499a86022860c38460ae4bbad39
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jan 21 23:43:22 2014 +0100
-
- Small doc update.
-
-commit 6601a14831cdd32fc671ebc9dc299d2be427e489
-Merge: 2d0b7e24 283c7dfa
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Dec 10 22:30:46 2013 +0100
-
- Merge branch 'add-path'
-
-commit 2d0b7e24a52d51904faa8a8e96d68863491c110a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Dec 2 11:54:32 2013 +0100
-
- Fixes problem with source address selection in BGP and BFD.
-
-commit 080ed4d8c2c1982dd0c81c62703064b620a67a01
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Dec 1 18:25:39 2013 +0100
-
- Fixes bug in documentation.
-
-commit 10115b1d70552f3ec4446dfec9e62c3a16d9eae0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Dec 1 18:20:09 2013 +0100
-
- Updates add-path documentation.
-
-commit e7d2ac4401be8aaf9629e248cad6a74498a6be24
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 26 22:37:24 2013 +0100
-
- Finishes add-path.
-
- Fixes some bugs and uses generic hash implementation.
-
-commit 283c7dfada53a6dee6a8a17ecab492ffafd44b66
-Merge: 736e143f 0bb4e37d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Nov 25 18:42:47 2013 +0100
-
- Merge branch 'master' into add-path
-
-commit 0bb4e37db317a1290bad24fe430cac6569a9bd8c
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Nov 25 15:16:20 2013 +0100
-
- Release date added.
-
-commit e75520c455a1a3fd026a9633c3ad26d865165fee
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Nov 25 13:46:29 2013 +0100
-
- NEWS and version update.
-
-commit 90eb5e7a8bb60cb637626a3b433caf10cd8d2a03
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Nov 25 13:44:07 2013 +0100
-
- Use ISO 8601 timeformats by default.
-
-commit 0c95f85ec59cc970e8f9aa2da56e25dad249bbb8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Nov 25 11:06:00 2013 +0100
-
- Fixes a reply code.
-
-commit 8137fe6d45762844248300de2a030e96042b1975
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Nov 25 02:03:23 2013 +0100
-
- Allows shorthands for birdc noninteractive commands.
-
-commit e237b28a4d4b17ab50182ac110f28594967e76dc
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Nov 25 01:21:39 2013 +0100
-
- Changes primary addr selection on BSD to respect SIOCGIFADDR ioctl() result.
-
- Thanks to Alexander V. Chernikov for the original patch.
-
-commit 5ebc92935cb58c78286d91f0831de94cd4ae0f9e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Nov 24 22:22:24 2013 +0100
-
- Last state change should track protocol state change.
-
- And not core state change, which is not much relevant
- (e.g. refeed in BGP).
-
-commit c72aca41e5fa55b0efa768e93b55f5c307f84025
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Nov 24 22:12:51 2013 +0100
-
- OSPF ifaces on loopback should be stub.
-
-commit e4d179f2c2f213c9190ff4d05979dc33f2c5b2c7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Nov 24 12:50:53 2013 +0100
-
- Minor changes to default router ID calculation.
-
-commit f3e59178506dab9d54cf19ec701f8d9a7fe283f9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Nov 24 12:37:24 2013 +0100
-
- Enables multihop mode for IBGP by default.
-
- This is more consistent with common usage and also with the behavior of
- other implementations (Cisco, Juniper).
-
- Also changes the default for gw mode to be based solely on
- direct/multihop.
-
-commit 52e030e14666ff00a4bb0c700d2c027fbeb87d04
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Nov 24 00:17:02 2013 +0100
-
- Converts filters to unsigned integers.
-
-commit 65194bd1eb2e6af217a750fa1e02b6eea66c7130
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 15 02:12:54 2011 +0200
-
- Removes workaround related to import of kernel device routes.
-
- Thanks to Benjamin Cama for notification.
-
-commit 204e0d5d59279c4245d4d46b86a570b043d683cf
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Nov 23 18:11:55 2013 +0100
-
- Dots added.
- New release will be 1.4.0.
-
-commit d0e33681540c9ad64b15f57a9d39c27658127a31
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Nov 23 13:27:47 2013 +0100
-
- Added some other features into NEWS file
-
-commit d940a2c4d4096f761a750e2df42ab55fd27a7e80
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Nov 23 13:26:52 2013 +0100
-
- Added a few sentences about symbol names.
-
-commit 736e143fa50607fcd88132291e96089b899af979
-Merge: 094d2bdb 2b3d52aa
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Nov 23 11:50:34 2013 +0100
-
- Merge branch 'master' into add-path
-
- Conflicts:
-
- filter/filter.c
- nest/proto.c
- nest/rt-table.c
- proto/bgp/bgp.h
- proto/bgp/config.Y
-
-commit 2b3d52aa421ae1c31e30107beefd82fddbb42854
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Nov 23 01:56:16 2013 +0100
-
- NEWS and version update.
-
-commit 77e43c8b72ff77dc7607accb09576c0baab422e0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 22 22:49:04 2013 +0100
-
- Minor fixes.
-
-commit 547d3bf45dd430828d597dfb56624bdc1bd798b3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 22 22:42:47 2013 +0100
-
- Allows pthreads by default on Linux and FreeBSD only.
-
-commit 41f8bf57c4d80cbec89b90b901afa9df4d2d76f1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 22 21:59:43 2013 +0100
-
- Changes identifiers to avoid use of reserved ones.
-
-commit 56027b5cbd7f432d30f7fc99bcf8680c840e6163
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 22 21:58:43 2013 +0100
-
- Minor fix in log_commit() w.r.t. changes in BFD branch.
-
-commit 1fba34a7a1e245f08212a31a65030230da8c451d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 22 18:45:57 2013 +0100
-
- Adds check for buffer size in OSPF LSA flood.
-
-commit 0aeac9cb7f9887374ce0258c8653f9518529bf08
-Merge: 8931425d 7c9930f9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 22 02:43:41 2013 +0100
-
- Merge commit 'origin/bfd'
-
-commit 8931425d02dd8656b48142f608d3119ab6f4a96f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 22 02:12:21 2013 +0100
-
- Fixes problem with RIP on multiple ifaces on BSD.
-
- RIP sockets for multiple ifaces collided, because we cannot bind to
- a specific iface on BSD. Workarounded by SO_REUSEPORT.
-
- Thanks to Eugene M. Zheganin for the bugreport.
-
-commit 548c329cde371bceef05f86b7f904378a392d89c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 22 01:20:32 2013 +0100
-
- Adds rate limiting to some log messages.
-
-commit 64534ea2f4361c247d7a0d1b6b14a02e8e3d6d33
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Nov 21 13:17:42 2013 +0100
-
- Fixes an issue when opposite address is mistaken for broadcast on ptp ifaces on BSDs.
-
- Thanks to Lex van Roon for the bugreport and to Alexander V. Chernikov
- for examining it and locating the problem.
-
-commit 7c9930f9c8feb3b08f7a9e94a08807ccbbc096f5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Nov 21 11:36:49 2013 +0100
-
- Adds a missing file.
-
- I forgot to add that to the previous commit.
-
-commit f8f2419d4c5b9028b9b3d2d893fe802f18eb239b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Nov 20 13:30:00 2013 +0100
-
- Additional filter test case.
-
-commit 4d4979c67c65dceb1ae557707312b83fde4bc8a8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Nov 20 13:25:33 2013 +0100
-
- Fixes some potential issues with invalid term size in clients.
-
-commit 1ec522538fb81a56b068c087d0a842faf7aa7869
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 19 22:33:48 2013 +0100
-
- BFD protocol, ready for release.
-
- Supports OSPF and BGP and also statically configured sessions.
-
-commit 33be3ba713901befe2df651b869a406df8fc8ace
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Oct 21 15:06:09 2013 +0200
-
- Accepts a change of OSPFv3 neighbor's IP address.
-
- Thanks to Pierre Pfister for the patch.
-
-commit a15dab76f93337b07b4b03a64ac3bac26285dfd9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Oct 21 14:58:32 2013 +0200
-
- Implements 'allow local as' option.
-
- Similar to allowas-in option on other routers.
-
-commit f8cc7396cf25328b002394bbd7af679188b03370
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Oct 15 10:57:57 2013 +0200
-
- Forces KRT rescan on syncer startup with multi syncer config.
-
- Thanks to Sergey Popovich for the patch.
-
-commit 1cd198cf52b3eae677159d81eacca3e0ebe24e71
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Oct 5 22:45:08 2013 +0200
-
- Flag -f "run in foreground" added as requested by a package maintainter.
-
-commit 0e175f9f0fd872e95225355dbdeca49cd35ec0fd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Oct 5 20:12:28 2013 +0200
-
- Fixes some BFD bugs and makes logging thread-safe.
-
-commit e7c2380260f20a4a3587b47df97879ef91c69774
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Oct 5 19:30:12 2013 +0200
-
- Implements PID file support.
-
- Thanks to Thierry Fournier for the original patch.
-
-commit 7ccb36d3308ef57d340e663f0cabd24663f4f62a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 2 14:57:29 2013 +0200
-
- Implements C.len operator for clist and eclist types.
-
- Thanks to Sergey Popovich for the original patch.
-
-commit 28a10f84cbc3635e59bff348cb1715859dfacade
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 2 14:41:37 2013 +0200
-
- Some fixes in filter code.
-
- Thanks to Sergey Popovich for original patches.
-
-commit 70c5780535fa3bd2360e8208f9273ac6d1741107
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 2 12:10:09 2013 +0200
-
- Minor code cleanups.
-
- Thanks to Sergey Popovich for the patch.
-
-commit b655596d1d9ad7664d12249c946ba3483b2de3f0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 2 11:42:46 2013 +0200
-
- Simplifies val_in_range().
-
- Also fixes missing type check for element ~ set.
-
-commit ec57bbf67f9e4221fb98f6769f592cedf2eb2d24
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Sep 30 14:07:34 2013 +0200
-
- Recheck export/import/receive limits during reconfiguration.
-
-commit a5fc59587fe864e4fcfb44eb3be57231b4ca339b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Sep 26 22:08:21 2013 +0200
-
- Rewrites static attribute filter code and adds ifname/ifindex attributes.
-
- Thanks to Sergey Popovich for the original ifname/ifindex patch.
-
-commit 4df2019ebfc0f77feb16b6a33dea6d5ac595f55e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Sep 26 17:36:30 2013 +0200
-
- Fixes build issues without BGP.
-
- Thanks to Sergey Popovich for the patch.
-
-commit f83ce94d5e410d5e5b921121867321c19451896b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Sep 26 17:33:00 2013 +0200
-
- Fixes missing unregister of kernel table handling code.
-
- And some minor fixes.
-
- Thanks to Sergey Popovich for the patch.
-
-commit f515e22924591542a909db0deb8545386aaa576e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Sep 22 19:15:39 2013 +0200
-
- Allows other than IA_PEER addresses on PtP ifaces on BSD.
-
- Also fixes a potential problem with link-local dest_addrs
- for IA_PEER addresses.
-
- Thanks to Alexander V. Chernikov for the suggestion.
-
-commit 6a8d3f1c1ffbd964e4d11b452c73e1ea70310af3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Sep 16 23:57:40 2013 +0200
-
- BFD work in progress.
-
- Now it compiles and mostly works.
-
-commit e550a37206528be39e4751865b46720885fd64ed
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Sep 13 18:55:02 2013 +0200
-
- Fixes problem with OSPF neighbor router ID change. Thanx to Alexander V. Chernikov
-
-commit c404f4b968b69a2c5c1975d04abf7474891d5656
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Sep 11 01:15:34 2013 +0200
-
- OSPF state machine fix - thanx to Alexander V. Chernikov
-
-commit 92f8878cbf5d8ad9e9b909a9dcbb2112de54a542
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Sep 10 13:03:58 2013 +0200
-
- Fixes a bug related to multiple IPs and direct protocol.
-
- Multiple IPs in the same IP prefix confuse the direct
- protocol and could cause withdrawal of a valid prefix.
-
- Thanks to Dan Rimal for a bugreport.
-
-commit 2a0130f94d2304e316f0ffad8e52fce094559782
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Sep 10 13:01:22 2013 +0200
-
- Fixes a bug in kernel extended attribute processing.
-
- The bug caused that krt_prefsrc attribute was not processed when a route
- received from a kernel protocol was exported to another kernel protocol.
-
- Thanks to Sergey Popovich for a bugreport.
-
-commit 507e182a60c3704f8a28a0450f1affc2c7c1b66a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Sep 10 12:58:24 2013 +0200
-
- Fixes reconfiguration of global set variables.
-
- When global set variables were used, every reconfiguration restarted
- protocols that use it in filters.
-
- Thanks to Sergey Popovich for a bugreport.
-
-commit d27e127aa996d500fed21be2bbbe888cafecb830
-Merge: bff9ce51 b0a8c7fc
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Sep 10 12:54:57 2013 +0200
-
- Merge commit 'origin/master'
-
-commit bf139664aa2ae9956b520ba4813bb6e03bf1a3e8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Sep 10 12:09:36 2013 +0200
-
- Initial BFD commit, work in progress.
-
-commit b0a8c7fc8547eef21ede33887580b5e867ee742c
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Aug 15 20:26:50 2013 +0200
-
- Wrong change commited - 'route limit' marked as obsolete.
-
-commit e628cad0ca9eb7d9bf4141e57201169c46faa661
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Aug 15 20:20:05 2013 +0200
-
- BGP option 'route limit' is marked as obsolete. 'import limit' should be used instead.
-
-commit 6d90e57332e102e261d69a1a05dfaa19fb31d933
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Aug 15 19:54:18 2013 +0200
-
- Typo in documentation fixed.
-
-commit 1f64a487a065cc27c52ab0d3d38b7c82926fea70
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Aug 15 13:29:33 2013 +0200
-
- Symbol names enclosed by apostrophes can contain colons.
-
-commit bff9ce5130d16af2fd802d42bdb2bff00980c9ae
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Aug 15 01:06:47 2013 +0200
-
- Extends delete/filter operators to work no bgp_paths.
-
-commit 8a112d8ba2e77d79468146ec8f54b3c90b6e68e4
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 13 23:04:06 2013 +0200
-
- Removes strip from make install
-
- Thanks to Alexander V. Chernikov for the patch.
-
-commit b21955e05800c3ceedfe39eef605da84285296c7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 13 20:42:43 2013 +0200
-
- Fixes a bug related to mixed up neighbor events in BGP.
-
- Neighbor events related to received route next hops got mixed up with
- sticky neighbor node for an IP of the BGP peer. If a neighbor for a next
- hop disappears, BGP session is shut down.
-
-commit 00192d5ab88ff9eeccbc1bc10cb534976a56963d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 13 20:25:05 2013 +0200
-
- Implements proper setting of 'gw' route attribute.
-
- Thanks to Sergey Popovich for the bugreport.
-
-commit f8e8fcfabeb206287065f48e800743b0aa797cc2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 29 13:07:15 2013 +0200
-
- Test commit.
-
-commit fd6cbe9053c529df7eac431ff72d3c509ba91ca9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 29 12:52:38 2013 +0200
-
- Test commit.
-
-commit cff430f396b006ef34e756075948dcb6b07fc427
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 29 12:28:03 2013 +0200
-
- Test commit.
-
- Also contains minor fixes in doc formatting.
-
-commit 50b71c1b96f99ac40e733295daeb03927777b206
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jul 28 18:50:40 2013 +0200
-
- Fixed small error in documantation (thanks engels@openit.de).
-
-commit 643228bc1cfb6a8f5169ee8ebfe1b75c81cc8543
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jul 27 00:47:58 2013 +0200
-
- NEWS and version update.
-
-commit f4830d8cb801c9124361bcc0c9e33f8f6005c08d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jul 27 00:38:29 2013 +0200
-
- Documentation update.
-
-commit 4ee39ff2ff78f86ce1ec79a77e22120984452549
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jul 26 11:06:08 2013 +0200
-
- Fixes initial random values for function arguments.
-
- Thanks to Javor Kliachev for the bugreport.
-
-commit 1103b32e830fbf98d9b3e32c0425b9a589773bf8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jul 25 22:33:57 2013 +0200
-
- Allows to define constants of all filter types.
-
-commit ac5745134847c044b21c311e5ab11d92d05bacc1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jul 25 13:55:24 2013 +0200
-
- Implements RFC 6608 Subcodes for BGP FSM Error.
-
-commit 508d936078aecc8fbbb9ca1218104599c4a3cb4a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jul 25 13:15:32 2013 +0200
-
- Implements eval command and minor CLI cleanups.
-
- Implemented eval command can be used to evaluate expressions.
-
- The patch also documents echo command and allows to use log classes
- instead of integer as a mask for echo.
-
-commit a0b176e3b2b50d3a30574afa927e0ee8ef65be68
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 24 14:20:46 2013 +0200
-
- Fixes header file name.
-
- Thanks to Fritz Grimpen for the patch.
-
-commit e1afee279993363ffb4a7005554d0774eb09b764
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 24 14:19:37 2013 +0200
-
- Fixes socket error hook for radv protocol.
-
-commit 9135c1f0ca6322bff9648895b5394b97761b4bcb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 24 14:11:12 2013 +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.
-
-commit 48b15ef10fede35113af71bd0dbb0b27a5fcb8f5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jul 13 01:39:41 2013 +0200
-
- Fixes stuck connection during BGP session shutdown.
-
- If TX buffers were full during BGP session shutdown
- then a protocol waited indefinitely to be able to
- send notification packet to close the session.
-
-commit 354496ace87341428e6005fbc073fbe57b4e6c0e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jul 11 13:50:44 2013 +0200
-
- Some fixes for TTL security.
-
-commit cc31b75a8fd7949533c12db2c3e9d67eeaf46d10
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jul 9 23:27:10 2013 +0200
-
- Implements 'bgppath ~ int set' filter op.
-
-commit c01a94663cc18f53fd741c5d44387eead9ca88af
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jul 7 12:11:42 2013 +0200
-
- Implements multiple routing table support for FreeBSD and OpenBSD.
-
- Inspired by the patch from Alexander V. Chernikov.
-
-commit c6964c305b425b98aaf0492806a28b578d799d83
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jun 29 22:55:41 2013 +0200
-
- Makes krt.c much more readable.
-
-commit 6ac4f87a2d661c739e55a63577e7bccf696c7abd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jun 26 14:35:39 2013 +0200
-
- Documentation for TTL security.
-
-commit 70e212f913b6ce9d343d6c401b4f1712986a5f8c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jun 25 15:33:00 2013 +0200
-
- Implements TTL security for OSPF and RIP.
-
- Interfaces for OSPF and RIP could be configured to use (and request)
- TTL 255 for traffic to direct neighbors.
-
- Thanks to Simon Dickhoven for the original patch for RIPng.
-
-commit ef4a50be10c6dd0abffd957132cd146029c3d79d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jun 24 16:37:30 2013 +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.
-
-commit fad04c750ca6906fb095f1b45958dec0ac8e210c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 13 11:27:14 2013 +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.
-
-commit f623ab9875cad2d129f708e95021d3a252930000
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jun 11 12:12:11 2013 +0200
-
- Implements OSPF stub router option (RFC 3137).
-
- Also fixes OSPFv3 routing table calculcation w.r.t.
- errata 2078 to RFC 5340.
-
-commit 924868543c2010f3ef2cfcb7ba6bac5988ab3264
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue May 28 10:48:14 2013 +0200
-
- Fixes crash with vlinks.
-
-commit 9810d055628877232f811d684567e203381e10dc
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue May 28 10:44:44 2013 +0200
-
- Fixes problems with routing table scans on some platforms.
-
- Negative bit shifts are definitely undefined oprations.
-
-commit 9c99d753fd672bd9839715ee325ef01cca993dbf
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu May 9 11:11:06 2013 +0200
-
- Fixes a problem with BGP neighbors, link-local addresses and locking.
-
- Thanks to Fritz Grimpen for the bugfix.
-
-commit a2017200c71293d0a28a39d1f250ba38d57f6289
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Apr 29 22:33:50 2013 +0200
-
- NEWS and version update.
-
-commit 572c6440432e3138ea622cfb5a4ef7580d77ef4a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Apr 29 22:08:05 2013 +0200
-
- Fixes a crash when mrtdump is enabled and interface goes away.
-
- Thanks to Peter Christensen for the bugfix.
-
-commit 32622d0ea366406f3afa14bb9edb4855d6979786
-Merge: efd6d12b a5e9f3d2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 23 02:54:13 2013 +0200
-
- Merge branch 'birdcl'
-
-commit a5e9f3d26f887deb451a3ea086e52266c117aa0a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 23 02:42:35 2013 +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.
-
-commit d2c392d44839baaefa48f4a38060be648d3415fb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 19 13:59:08 2013 +0200
-
- Removes unnecessary client subdirectories and updates buildsystem.
-
- Renames some files:
- birdc/client.c -> birdc.c
- birdcl/client.c -> birdcl.c
- client_common.c -> common.c
-
-commit efd6d12b975441c7e1875a59dd9e0f3db7e958cb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 17 15:09:50 2013 +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.
-
- Also updates autoconf option detection.
-
-commit 8df02847e8af29863c325b7297e3a2b2ed5f961c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 17 13:06:40 2013 +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.
-
-commit cd3b02d198093abbbe671f647e4deb2470eb9cf1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 16 17:53:22 2013 +0200
-
- Allows IP of loopback to be used in automatic router ID selection.
-
- Thanks to Alexander V. Chernikov for the patch.
-
-commit 8bd9b930c320f09d3b3792b5f991cf702e9d55be
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 16 17:40:44 2013 +0200
-
- Fixes a bug in IPv6 BGP next hop processing.
-
- BGP next hop attributes with empty link-local IPv6 addresses were not
- handled properly.
-
- Thanks to Sergey Popovich for the bugfix.
-
-commit 48bc232f08141d26691237c3d79db587ce16932b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 16 17:27:34 2013 +0200
-
- Implements 'next hop keep' option for BGP.
-
- This option allows to keep the received next hop even in cases when
- the route is sent to an interface with a different subnet.
-
-commit 9ff5257357d9975654279db17bbc8525583ba1cc
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 16 16:22:31 2013 +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.
-
- Thanks to Wilco Baan Hofman for the bugreport.
-
-commit 568d9c9faeab70951d8e9bfea521e1b38a9a3d1c
-Author: Tomas Hlavacek <tmshlvck@gmail.com>
-Date: Sat Apr 6 22:07:32 2013 +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.
-
-commit ce1348537455e5482a283f7a4cae734d13dcf34e
-Author: Tomas Hlavacek <tmshlvck@gmail.com>
-Date: Tue Mar 19 18:02:40 2013 +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.
-
-commit 8322ecde124188a9408b54afead4666bb954e5a5
-Author: Tomas Hlavacek <tmshlvck@gmail.com>
-Date: Sun Feb 24 23:47:22 2013 +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).
-
-commit e454916149d4efe66732fdd0388181813cab6ed0
-Author: Tomas Hlavacek <tmshlvck@gmail.com>
-Date: Wed Jan 23 17:14:53 2013 +0100
-
- Pull out independent routines from client_full.c
-
- Pull out routines for interacting with the server and interpreting
- internal commands which are not dependent on libreadline and
- ncurses libraries.
-
- This is a preparation step for a new lightweight birdc client.
-
-commit 5c2c4ea8b1e924fce433094e744c0467da55aaab
-Author: Tomas Hlavacek <tmshlvck@gmail.com>
-Date: Wed Jan 23 15:51:04 2013 +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>
-
-commit a9fc659b840e13323aa43e92eb8f39ceb19b5ed6
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Feb 26 14:29:53 2013 +0100
-
- Small typos fixed.
-
-commit de41dcd13d6f9d4785c80e6234ac38f2a15f5429
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Feb 26 14:13:11 2013 +0100
-
- Redundant lines removed.
-
-commit e667622a35722ec007137e678f4f70841562e57f
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Feb 25 10:39:46 2013 +0100
-
- Default rounting table for 'show route export/preexport/protocol' is the one related to a respective protocol.
-
-commit a9c38203bdcad92f7ac0a8a912241d2acb483f2c
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 24 00:43:08 2013 +0100
-
- Allow 1 sec RIP update.
-
-commit 04ddefb357b2b8759be16633f7bb1df49b0405ea
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Feb 22 07:15:27 2013 +0100
-
- Use BIRD's ASSERT instead of assert.h
-
-commit 2bf59bf4d3e4fcaff489d3445134e5e2e2af9cf6
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Feb 21 00:44:59 2013 +0100
-
- Hotfix to solve an issue with delaying timers reported by Aleksey Chudov.
-
-commit 9d969be5f2d867704e82bd7d6c8049623d50708f
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Feb 14 23:35:51 2013 +0100
-
- I still believe that 0 == NULL, however this patch will make Santiago happy. :-)
-
-commit 4c2abee74e64f64fba61aad6e2b66e3895820003
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Feb 12 13:15:01 2013 +0100
-
- Allow submitting BIRD commands from UNIX shell even in restricted mode.
-
-commit 8c4da7e01ded3f06cbf873e67c5ae1cf70cf280b
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 10 19:17:38 2013 +0100
-
- Symbol names enclosed by apostrophes can contain DOTs.
-
-commit 0bc3542ab6e0a96342e35ead8ff1c52f980facc2
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 10 19:06:56 2013 +0100
-
- Route limits can be disabled - this makes sense for protocol templates
-
-commit 155134f3960bc06a18c8c7d9a97181b786d77a3a
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 10 19:04:08 2013 +0100
-
- A few semicolons added to decrease a number of warnings.
-
-commit c6a2fe64bed8dc67af0e868052b055aa0f45cdf2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 9 00:53:04 2013 +0100
-
- Fixes handling of iface routes in static proto during reconfiguration.
-
- During reconfiguration, iface routes were installed even when iface was down.
-
-commit 36da2857bc911924a250a234f38cf58c3b21f1bc
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Feb 8 23:58:27 2013 +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.
-
-commit d214ae4fdc1e323f89efb8a80c068fef4a45758f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jan 12 21:26:42 2013 +0100
-
- Fix missing documentation for one option.
-
-commit 13d4dd138d5dc6c884ded280f9244fac707c4f32
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jan 11 14:53:20 2013 +0100
-
- NEWS update.
-
-commit b662290f40ea0fa0b1a1ba283e50e833724f2050
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jan 10 13:07:33 2013 +0100
-
- Separate import and receive limits.
-
- They have different behavior w.r.t. filtered routes that are kept.
-
-commit 79b4e12e6032faf6bb1f3feac385bd36ee53019e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Dec 27 12:56:23 2012 +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.
-
-commit a92cf57dd6ba021a495fe7268c86dc8e6aeecbb2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Dec 26 12:40:48 2012 +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
-
-commit 80a9cadc76101157707aecc0b482ad88ad702fc3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 27 02:08:04 2012 +0100
-
- Changes static route targets drop/reject to blackhole/unreachable.
-
- To be consistent with rest of BIRD and Linux. Old names are also
- allowed for compatibility.
-
-commit b31774eeb01a2f63e4ce4dc83f36ffd17879593e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 27 01:30:09 2012 +0100
-
- Removes some nonsense.
-
-commit 3e40f3e795e39f0b92445fd5295382220077c77f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 27 01:25:47 2012 +0100
-
- Fixes setting of route attributes of type router id.
-
-commit c93c02088a026b83f452fbd260135ba4c8da7ecf
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 16 13:30:54 2012 +0100
-
- NEWS and version update.
-
-commit 70577529244d6d920b75d95e797156e05141db30
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 16 13:29:16 2012 +0100
-
- Fixes route tracing w.r.t. kept filtered routes.
-
-commit cf3a704b6a2263aba6bb6adb4c2c9dd93b72f470
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 16 02:34:12 2012 +0100
-
- Updates the documentation.
-
-commit 6cadbf325bfcf25a04d869778abb443f9e1b6119
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Nov 15 14:08:20 2012 +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.
-
-commit 15550957957f3c790f3bec3f6b8721559ea25969
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Nov 15 01:29:01 2012 +0100
-
- Changes 'rejected' to 'filtered' in one of the last patches.
-
-commit e16469bc4d182428687a5ef5f2fb4707afa15abd
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Nov 12 13:48:29 2012 +0100
-
- AS# in bgp.agreggator was a signed integer - fixed.
-
-commit 227af52fb5be09c841fbd9f86e7bb3992b981a4a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Nov 10 16:18:12 2012 +0100
-
- Fixes OSPF reconfigure w.r.t. downed ifaces.
-
-commit a55a90faec5cce09cee65f484e3731207af00335
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Nov 10 14:54:35 2012 +0100
-
- Peer address of stub iface should be announced in OSPF Router LSA.
-
-commit cf98be7b6743e45dde9e0458664cc0762bf08867
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Nov 10 14:26:13 2012 +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'.
-
-commit dd4da6f640fb581cbd7d1ca537bf382558492b8e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 31 17:14:35 2012 +0100
-
- Fixes another bug in OSPFv3 vlinks.
-
-commit 8249ad9b304ea88b29e3aea76ebe49bb50348aaa
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Oct 29 20:39:03 2012 +0100
-
- Fixes sorting in OSPF show state.
-
-commit e4404cef0be10e639566986a2f8c1906c9f37de1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Oct 29 20:29:31 2012 +0100
-
- Fixes several bugs related to OSPFv3 vlinks.
-
-commit 0343d066dab077d1391640c53198199b16bef993
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Aug 29 12:42:49 2012 +0200
-
- Fixes a bug in primary IP selection.
-
-commit 8ecbaf9c70b802a1200ad37f2bfd4bc64173c5fe
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Aug 16 13:09:26 2012 +0200
-
- Fixes a bug with neighbor cache and overlapping IP prefixes.
-
- When there are overlapping IP prefixes and one disappears,
- neighbors associated with it was removed even if there
- is another covering IP prefix.
-
-commit 094d2bdb79e1ffa0a02761fd651aa0f0b6b0c585
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 14 16:25:22 2012 +0200
-
- Implements ADD-PATH extension for BGP.
-
- Allows to send and receive multiple routes for one network by one BGP
- session. Also contains necessary core changes to support this (routing
- tables accepting several routes for one network from one protocol).
- It needs some more cleanup before merging to the master branch.
-
-commit d760229ab897fa1bf1fd0fe7019cc2431d21a1cc
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Aug 8 14:10:31 2012 +0200
-
- DragonFly support add - thanks to john@marino.st
-
-commit 60c412b9368fd7c3b0a8df2200f02140adcb0cf3
-Merge: 3fe1d9e4 94e2f1c1
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Aug 7 11:15:23 2012 +0200
-
- Merge branch 'master' of ssh://git.nic.cz/bird
-
-commit 94e2f1c111721d6213ea65cac5c53036e38e3973
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 7 11:06:57 2012 +0200
-
- NEWS and version update.
-
-commit c06de722ddf36f3d6aaabfd4ae9d74a3ea72bbf9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 6 11:09:13 2012 +0200
-
- Some minor fixes.
-
-commit 5400c0e7f982757418a0aeb892459b52fbbcffc3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 6 02:42:24 2012 +0200
-
- Fixes BGP subcode during global shutdown.
-
-commit bbcfd5a0485a8df9568d8da0fc524e272e3e7601
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jul 26 13:59:50 2012 +0200
-
- Fixes default route in OSPF multiple area setting.
-
-commit 48cf5e84e6ed17578e4ad43c5ef54d6ff7d825c4
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jul 24 20:12:14 2012 +0200
-
- Documentation update,
-
-commit 0e224d598579626e03d3727d5901ba2d654ac521
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jul 22 12:35:04 2012 +0200
-
- RDNSS and DNSSL documentation for RAdv.
-
-commit 36415e4b1dd769458cced44525ee74d26d15f9c6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jul 20 19:56:57 2012 +0200
-
- Allows to redefine master table.
-
-commit c4b76d7b19cf48ddbcbe913c22ef7f1e8429f5ea
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 18 19:35:30 2012 +0200
-
- Rename sk_new() to avoid name collision with OpenSSL.
-
-commit 4be266a9831799dcc2e67e83fc83d9db43828a64
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 18 19:29:33 2012 +0200
-
- Implements wildcard matching in config file include.
-
- Also fixes some minor bugs in include.
-
- Thanks Kelly Cochran for suggestion and draft patch.
-
-commit abced4a91495e27fe86b142bc1967cec53bab3dc
-Merge: fc06fb62 76170264
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 16 14:44:45 2012 +0200
-
- Merge branch 'rt-accepted'
-
- Conflicts:
-
- nest/config.Y
- nest/rt-table.c
- proto/bgp/bgp.c
-
-commit 761702644397886bd3c1be10fd55c01485b7c454
-Merge: 26822d8f 553e4054
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 16 10:41:29 2012 +0200
-
- Merge commit 'origin/rt-accepted' into rt-accepted
-
-commit 26822d8fe1376b2ffd902a3b5caa47f81a88e74e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 4 21:31:03 2012 +0200
-
- Finalize RA_ACCEPTED handling.
-
-commit fc06fb62443c135773ee4c05ed83925cc47b046d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jul 7 10:40:00 2012 +0200
-
- Implements RDNSS and DNSSL support for RAdv.
-
-commit 3fe1d9e4a40663b93b59f5b6f9d61af9dc6a8ae6
-Merge: 72b2db8d 95127cbb
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 15 23:40:37 2012 +0200
-
- Merge branch 'master' of ssh://git.nic.cz/bird
-
-commit 95127cbbb76e8870e029454a5313bc4b6ce69a4a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon May 14 11:47:41 2012 +0200
-
- Real broadcast mode for OSPFv2.
-
-commit 0ec031f7400fbacdd86b40ae1870c58715a7f108
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 11 18:52:59 2012 +0200
-
- Allows to set instance ID for OSPFv3 interfaces.
-
-commit 47c447c42e0bfa1836d951d1e6c1a2236d39dcbb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 4 23:05:47 2012 +0200
-
- Minor cleanups.
-
-commit b7f3df79054aca327654c1fb4739c4ff02e59e6e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 11 12:01:27 2012 +0200
-
- Fixes a bug in RA_ACCEPTED handling.
-
-commit 72b2db8db7534c52e928618410ec1f18787752c8
-Merge: 2795700c 95616c82
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri May 11 00:01:29 2012 +0200
-
- Merge branch 'master' of ssh://git.nic.cz/bird
-
-commit 95616c820248018f4999972cad315f2da60e4960
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 4 16:38:25 2012 +0200
-
- Cleanup in sysdep KRT code, part 4.
-
- Adding some files that was accidentally removed
- (instead of moved) in cleanup part 2.
-
-commit 064e7be5cd4dffd564b4ea41ba6d843492a55c97
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 4 00:20:23 2012 +0200
-
- History deduplication in birdc.
-
-commit e14bd38087ed8ef1945dd0a3878cc560478145f0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu May 3 14:04:56 2012 +0200
-
- Fixes flushing of device routes.
-
-commit ab188fb76d7822350724b182106a19995a73d719
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu May 3 12:25:15 2012 +0200
-
- Implements build options to specify socket dir and suffix.
-
-commit 2795700c3158fa52b6cf957e9d0b9ad4a27c67a5
-Merge: 1f85226e bf422073
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 2 11:10:40 2012 +0200
-
- Merge branch 'master' of ssh://git.nic.cz/bird
-
-commit 7a2c48dafce9420a23fd57408c31eecfc20c4fe0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Apr 30 22:34:06 2012 +0200
-
- Cleanup in sysdep KRT code, part 3.
-
- Just one more renaming, old krt_set_notify() to krt_replace_rte().
-
-commit f1aceff59bbf942bc11c2e9a4c51e381c06f2b20
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Apr 30 22:21:52 2012 +0200
-
- Cleanup in sysdep KRT code, part 2.
-
- Remove support for historic Linux kernels,
- merge krt-iface, krt-set and krt-scan stub headers.
-
-commit 396dfa9042305f62da1f56589c4b98fac57fc2f6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Apr 30 15:31:32 2012 +0200
-
- Cleanup in sysdep KRT code, part 1.
-
- OS-dependent functions renamed to be more consistent,
- prepared to merge krt-set and krt-scan headers.
-
- Name changes:
-
- struct krt_if_params -> struct kif_params
- struct krt_if_status -> struct kif_status
- struct krt_set/scan_params -> struct krt_params
- struct krt_set/scan_status -> struct krt_status
-
- krt_if_params_same -> kif_sys_reconfigure
- krt_if_copy_params -> kif_sys_copy_config
- krt_set/scan_params_same -> krt_sys_reconfigure
- krt_set/scan_copy_params -> krt_sys_copy_config
-
- krt_if_scan -> kif_do_scan
- krt_set_notify -> krt_do_notify
- krt_scan_fire -> krt_do_scan
-
- krt_if_ -> kif_sys_
- krt_scan_ -> krt_sys_
- krt_set_ -> krt_sys_
-
-commit 182a78957d60a4c91c1ff8d1ff0f09b1b64b70ba
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Apr 29 01:35:52 2012 +0200
-
- Allows some modifications of dest attribute in filters.
-
-commit bf42207332e8e502d636038f1ec44aaea6ec50e0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Apr 28 13:03:48 2012 +0200
-
- Changes keyword 'exceed' to 'action'.
-
-commit ab758e4fb205346946f2d828236bd23efc2a419e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Apr 28 12:59:40 2012 +0200
-
- Some fixes in route export limits.
-
-commit d494df63ac3061accdff348511a565c021411b28
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 27 00:04:51 2012 +0200
-
- Some minor fixes.
-
-commit 1f85226ecb76d3803b8fe37eb0891c45a6557dcd
-Merge: 92f8f7e3 d9b77cc2
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Apr 26 17:03:53 2012 +0200
-
- Merge branch 'master' of ssh://git.nic.cz/bird
-
-commit d9b77cc28115e5c1ef64c69722c9d1fd1392dcd1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 24 23:39:57 2012 +0200
-
- Implements generalized export limits.
-
- And also fixes some minor bugs in limits.
-
-commit 3589546af4baa4d349409a318f8c9658dd11b3cc
-Merge: 7d0a31de cca97066
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 24 23:37:01 2012 +0200
-
- Merge commit 'origin/master'
-
-commit 92f8f7e3a3a5a42768c18c1f3d4d8f9f98150c61
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 24 16:31:17 2012 +0200
-
- Small bug in detection of class-A networks.
-
-commit cca970666a90af02eaeb6848bbfc3d5a2222fa21
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Apr 22 14:03:07 2012 +0200
-
- Small typo in programmer's documentation.
-
-commit 7d0a31deed92971e274aa0314e12619f93c850c9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Apr 21 21:05:36 2012 +0200
-
- Fixes in generalized import limits.
-
-commit 334a0ed24d015e106558cc9eeef301c6f0d21aec
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 20 21:04:55 2012 +0200
-
- Fixes missing device attributes when exporting routes to kernel.
-
- Thanks to Howden Nick for the bugreport.
-
-commit 9b2b502be521b58a736f7b78644e89ee01b4418b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 20 21:04:55 2012 +0200
-
- Fixes missing device attributes when exporting routes to kernel.
-
- Thanks to Howden Nick for the bugreport.
-
-commit f93e6f338e59e02b0cddea85e7d367948d9cf3f2
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Apr 19 17:14:16 2012 +0200
-
- Small clean up in debug texts
-
-commit 553e4054609e7aa8dcb92849c92a6fea73354f0e
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Apr 19 17:12:13 2012 +0200
-
- Small clean up in debug texts
-
-commit ebecb6f6a11bb418dd054cf12a2673ca0d9eac37
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Apr 15 15:28:29 2012 +0200
-
- Implements generalized import hooks.
-
- Thanks to Alexander V. Chernikov for the original patch.
-
-commit 3e17e380598b9a512bb369f51a4cf55da269f608
-Merge: 00a09f3c ae8b3001
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Apr 15 15:17:03 2012 +0200
-
- Merge branch 'master' into rt-accepted
-
-commit ae8b300164a975597f9b6caea0b205af2e4db30b
-Merge: d360f129 ed7c4b0c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Apr 15 15:15:05 2012 +0200
-
- Merge commit 'origin/master'
-
-commit d360f129e393298ff3e5309ec06a3baf170784fb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Apr 15 15:13:12 2012 +0200
-
- Fix static protocol w.r.t. some recent changes in protocol ahooks.
-
-commit 00a09f3c367e79297f827b52ec5f16842db1ac4e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Apr 15 15:07:58 2012 +0200
-
- Implement RA_ACCEPTED mode of route propagation.
-
-commit ed7c4b0cd530126b9a794f817f5d1d93556a1bce
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Apr 9 14:19:28 2012 +0200
-
- Small bugfix in error message related to reconfiguration.
-
-commit bf2abe2f515d7b7aaed5fb4f37af82169adcd2f2
-Merge: fb829de6 c0adf7e9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Mar 30 11:04:12 2012 +0200
-
- Merge branch 'soon'
-
- Conflicts:
-
- nest/proto.c
- nest/rt-table.c
-
-commit fb829de69052755a31d76d73e17525d050e5ff4d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Mar 28 18:40:04 2012 +0200
-
- Fixes responsiveness for protocol shutdown.
-
- When a protocol went down, all its routes were flushed in one step, that
- may block BIRD for too much time. The patch fixes that by limiting
- maximum number of routes flushed in one step.
-
-commit cb3cf95859d81c711337738f004675f43c8bbb0e
-Merge: c9df01d3 16fc65ac
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Mar 25 20:59:13 2012 +0200
-
- Merge commit 'origin/master'
-
-commit c9df01d3215379c0463dd2a3b0c9b1700d6e2ac3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Mar 25 19:44:14 2012 +0200
-
- Fixes several minor bugs in kernel syncer.
-
-commit 9ba2798c65c02254ec000ab03a76fbbaae1ddc97
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Mar 23 01:17:02 2012 +0100
-
- Adds krt_metric linux route attribute.
-
-commit 72aed1a00ba9e18116d6fd907f7e1a36d0a0a583
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Mar 23 00:26:26 2012 +0100
-
- Adds krt_source route attribute.
-
- Thanks Jeremie Dimino for the original patch.
-
-commit 16fc65acc536d3788efe4c0554a2f52699fedc7f
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Mar 22 14:52:40 2012 +0100
-
- Minor correction
-
-commit 89647357af0d8507652f257f1e8f5679fe9a7078
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 22 12:29:02 2012 +0100
-
- NEWS and version update.
-
-commit c47d037ecb5b9c835700b152eed7589409a2e42f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 22 11:46:38 2012 +0100
-
- Some minor changes to CLI.
-
-commit df27911880bffb88c1eae90e36c755a3ed3d77ad
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 19 13:00:00 2012 +0100
-
- Fixes problem with dirname().
-
- Thanks Henrique de Moraes Holschuh for the original patch.
-
-commit af582c4811175d9a27ed5d08a4f6d5eaa69ecec7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Mar 18 17:32:30 2012 +0100
-
- Route Origin Authorization basics.
-
- - ROA tables, which are used as a basic part for RPKI.
- - Commands for examining and modifying ROA tables.
- - Filter operators based on ROA tables consistent with RFC 6483.
-
-commit fd087589f80a435a42cedb87b917c71363b11860
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Mar 16 13:01:12 2012 +0100
-
- Fixes broken vlinks in OSPF.
-
-commit 0f808c066f3b5b190de951db042a34a1eb957a16
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Mar 16 12:47:12 2012 +0100
-
- Adds filtering to 'show symbols' command.
-
- Thanks Alexander V. Chernikov for the original patch.
-
-commit 20ab192beca749166e19118e987b53b5e131d0cf
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Mar 16 12:12:26 2012 +0100
-
- Adds filtering to 'show ospf lsadb' command.
-
- Thanks Alexander V. Chernikov for the original patch.
-
-commit 0888a737b045b48106edbd28ba3cd62fcc8c191e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 15 20:42:29 2012 +0100
-
- Extends set operations in filters.
-
- Allows add/filter/delete clist on clist (set algebra on clists).
-
- Allows number ~ bgppath match.
-
-commit 9f1500f50a0196f912eeb97e77ccf6873e186c29
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 15 13:45:55 2012 +0100
-
- Adds warning for mismatch MTU in OSPF packets.
-
- Thanks Alexander V. Chernikov for the original patch.
-
-commit 2f9955b5d508698b04ff41e5e38097acdac416b9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 15 13:12:00 2012 +0100
-
- Fixes TTL for multicast OSPF packets.
-
- Thanks Alexander V. Chernikov for the suggestion.
-
-commit 8796a8a56edbcd420de724a58947c7aedadf04de
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 15 12:50:49 2012 +0100
-
- Fixes name for unnamed filters.
-
- Thanks to Alexander V. Chernikov for the suggestion.
-
-commit 7d837aa014a78bce2b329cc9f56e8dc799d456e8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 15 12:43:47 2012 +0100
-
- Fixes documentation - default pipe mode.
-
- Thanks to Benjamin Cama for the bugreport.
-
-commit e2bf812f3dc84981eac045b617261987c25b5e90
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 15 12:38:08 2012 +0100
-
- Fixes RIPng compatibility.
-
- Also probably breaks compatibility with older BIRDs, but RIPng not
- really worked here.
-
- Thanks to Goesta Smekal for the original patch.
-
-commit f761503760fba2d4124cc3352f5260c31fac526d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 15 12:23:49 2012 +0100
-
- Fixes RIPng socket and neighbor handling.
-
- RIPng did not really work because of link-local addresses.
-
- Thanks to Roman Hoog Antink for some notes.
-
-commit 117e3c4bbfd4b7f1b2cae6ef9e5cb603fe33307a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 15 12:18:26 2012 +0100
-
- Fixes a bug in pair set intervals.
-
- Pair intervals in form (a,b)..(c,d) were mishanded.
-
- Thanks to Alexander Shikoff for the bugreport.
-
-commit c0adf7e9fc0bb920175a639c6f56ed7b4190f3e4
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 15 11:58:08 2012 +0100
-
- Better support for multitable protocols.
-
- The nest-protocol interaction is changed to better handle multitable
- protocols. Multitable protocols now declare that by 'multitable' field,
- which tells nest that a protocol handles things related to proto-rtable
- interaction (table locking, announce hook adding, reconfiguration of
- filters) itself.
-
- Filters and stats are moved to announce hooks, a protocol could have
- different filters and stats to different tables.
-
- The patch is based on one from Alexander V. Chernikov, thanks.
-
-commit 46c1a583a5c1ea81e8d8f372bd7f614506a63938
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Feb 3 11:50:51 2012 +0100
-
- Fixes a bug causing crash during soft reconfiguration of export to kernel proto.
-
-commit 39c028e9e9e3acf840051f4271fadd4939fde2af
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jan 24 11:31:00 2012 +0100
-
- Assign default protocol preference via proto_config_new().
-
- The patch from Alexander V. Chernikov.
-
-commit 09686693d35bd71187847c95c0967d4125215b97
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jan 23 03:15:12 2012 +0100
-
- Implements handling of BSD iface arrival/departure notifications.
-
- Thanks to Alexander V. Chernikov for original patch.
-
-commit 732a0a257d180a95a02587203555b8552b6128ac
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jan 23 01:26:40 2012 +0100
-
- Fixes problems with creating/removing/renaming ifaces on BSD.
-
-commit 5c78e0e386d4c770b646cab4a8adc3c87987f50f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jan 22 11:03:30 2012 +0100
-
- Some more verbose warnings.
-
-commit bc092571171d00de8b429fec8ba70c39240d7e91
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jan 21 22:56:16 2012 +0100
-
- Fixes another minor bug in iface scan.
-
- Iface flags are not updated in some cases.
-
-commit b573755df426156c22d2a4c65e3f502284820166
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jan 21 22:41:31 2012 +0100
-
- Fixes a bug in BSD iface scan.
-
- if_update() should be called always, because periodic iface scan code
- removes all not-updated ifaces.
-
-commit 544f2e1b36fb9473132f77d9c0f6e97d1495bb24
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jan 20 18:16:35 2012 +0100
-
- NEWS and version update.
-
-commit 3ce17142791b2e1a7f0b8e512b5b74224600056c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jan 20 16:20:03 2012 +0100
-
- Fixes a new bug in BGP route ordering.
-
-commit 2c5ca47ad4d18cae162c2ddf85af2dedb89f00a5
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jan 10 13:44:06 2012 +0100
-
- New version 1.3.5
-
-commit 4b3a8ff8c6e34f0486b82a10706f1ee0b688048e
-Author: root <root@localhost.(none)>
-Date: Mon Jan 9 16:57:45 2012 +0100
-
- Extend buffer for netlink messages.
-
-commit 2c67a564b368bee94f387ba988e8a2e9a76a04ce
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jan 9 03:32:34 2012 +0100
-
- NEWS and version update.
-
-commit 8cf8f820fe66af1755e360ea1c5179483766131d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jan 9 03:20:52 2012 +0100
-
- Show interface for link-local gw in static protocol.
-
-commit d7f469c15c1fd8315061f85b87a19946c3ea4700
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jan 9 02:40:57 2012 +0100
-
- Some minor fixes.
-
-commit 3f58437405f8e37e9c14d83274a6b82ffd9583f8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jan 8 16:28:33 2012 +0100
-
- Fix for IPv6 addresses on non-multiaccess ifaces on BSD.
-
- Thanks Matthias Schiffer for the patch.
-
-commit 53ffbff39f054e1302fb296327b9bb1b4f88226c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jan 8 15:28:27 2012 +0100
-
- Implements support for link-local addresses in BGP.
-
- Thanks Matthias Schiffer for the original patch.
-
-commit eb1451a3a0c45a4cc62dd0f1f3c3157ec38e2f8e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jan 8 15:27:04 2012 +0100
-
- Better support for link-local addresses in IO code.
-
-commit a03ede64936d0aee1a760a19dc6194b2fdc9c692
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jan 3 00:42:25 2012 +0100
-
- Fixes a tricky bug in route filtering.
-
- Route attributes was used after rta was freed during copy-on-write in
- filter code. This causes some random crashes, esp. with multipath
- routes.
-
-commit 69a8259c5e438f949bd58b1a2f8e1d12a49f9216
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jan 1 12:02:20 2012 +0100
-
- Allows sticky link-local neighbors.
-
- Allows using NEF_STICKY neighbors with link-local addresses. This is
- used for static route nexthops, they can be specified like fe80::1%eth0
- .
-
-commit c32c3f88f0c8788118ed3701c11a5aea2aaf9356
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Dec 22 13:44:43 2011 +0100
-
- Fixes parsing larger numbers on 64bit platforms.
-
-commit be4cd99a3688cef19f66e1c8b8e0506ffc1e13fc
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Dec 22 13:20:29 2011 +0100
-
- Implements deterministic MED handling.
-
- Thanks to Alexander V. Chernikov for many suggestions.
-
-commit cf7f0645316f5df0984467cf7001f5466254eaf3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Dec 12 00:24:15 2011 +0100
-
- Fixes problem with sticky neighbors and iface address changes.
-
- Thanks Matthias Schiffer for the bugreport and the original patch.
-
-commit 2779d50a24dc1b7c6b4cf83a17af817c02462855
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Nov 17 21:12:23 2011 +0100
-
- Fixes RAdv proto w.r.t. templates.
-
- Thanks Alexander V. Chernikov for this.
-
-commit 60fd666b796dfa8ba12b44338754ca73b76da2e8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Nov 10 09:22:20 2011 +0100
-
- Fixes missing header.
-
-commit a7f23f581f5e3efe92ec97dfca7d01c66f31ab04
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Nov 7 00:31:23 2011 +0100
-
- Implements protocol templates.
-
- Based on the patch from Alexander V. Chernikov.
- Extended to support almost all protocols.
- Uses 'protocol bgp NAME from TEMPLATE { ... }' syntax.
-
-commit 74add5df17c386bd109ebea7b1dac04d1651ae51
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 27 13:21:24 2011 +0200
-
- Fixes seqnum generation.
-
- Thanks Mohammad Amin Shoaie for notification.
-
-commit 78e33c29bbbc6f4dd308cd8ef589ce543c3d8d6e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 26 20:06:36 2011 +0200
-
- Some minor fixes in parser.
-
-commit 14a8f396e1d8fc5787041eace8ab026fe5a0896c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 26 13:55:24 2011 +0200
-
- Fixes sockets for IPv4 RIP.
-
- Thanks Roman Hoog Antink for a suggestion.
-
-commit 00a124e3fc218aa39c634bbda244789f2ea0cd3d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Oct 10 02:33:11 2011 +0200
-
- NEWS and version update.
-
-commit 9b7fdfc84a516ede415cd1941e5ff1d6312e83ff
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Oct 10 01:01:58 2011 +0200
-
- Fixes for include.
-
-commit 1cb97af419ee5bff45049f4d3a85acadbb5b1cb9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 9 17:01:01 2011 +0200
-
- Extend the error message.
-
-commit 9491f9f593c1195039cecd1bb2a502363b58c66d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 6 23:01:23 2011 +0200
-
- Use reserved address blocks for documentation (RFC 5737).
-
-commit 32f95476a8d60508ca9d24fe20b09899b72de9d7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 6 22:48:49 2011 +0200
-
- Signal problems with route installation to kernel tables.
-
-commit 35c875f0d1eb7c72e0b0ab8a90eb32cbcbfdac02
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Oct 1 09:57:49 2011 +0200
-
- Fixes some error messages and the NSSA gw lookup.
-
- Thanks to Alexander V. Chernikov for the patch.
-
-commit 736fd7303cb05e910507edaa9310178a23dbcf1e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Sep 27 13:49:32 2011 +0200
-
- Fixes a bug with multiple function arguments.
-
-commit bf6d91dc4edf3d08f0de41f71503159b1713fc9a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Sep 24 11:06:42 2011 +0200
-
- Use undefined scope for undefined IPv6 addresses.
-
-commit 4116db182d8d80d26902a8b33f82664bb5770066
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Sep 24 02:21:52 2011 +0200
-
- Implements static recursive routes.
-
-commit 4271f2b77ed3862a2356475dc18b0cf5c1086364
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Sep 18 13:52:50 2011 +0200
-
- Fixed problem during 'configure' with EC
-
-commit 55b58d8c1f51942c487cc268bd9e2ca214913377
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Sep 12 12:13:53 2011 +0200
-
- Removed some completed jobs.
-
-commit 1e69379e70da3486a601cab7a41ccf7a5825101d
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Sep 11 21:43:24 2011 +0200
-
- NEWS file updated.
-
-commit 48ec367aabaaa5328f4072d237001e245a7363df
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Sep 11 21:21:47 2011 +0200
-
- Configuration can include other files.
-
-commit a98995273bd8788cf525f44479026d5ce6b7dd52
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Sep 4 13:23:26 2011 +0200
-
- NEWS and version update.
-
-commit cb2b586f00f5e7ef9a902b028fc5bfe117890457
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Sep 4 10:39:10 2011 +0200
-
- NetBSD compile fix.
-
-commit 51947659abbf9af861aa7dec36fd1c845fb617ab
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Sep 4 00:56:02 2011 +0200
-
- Minor changes in BGP protocol info.
-
- Shows neighbor IP and ASN even if protocol is down.
-
-commit 6c4df70373fa640a7f068d4e1b563621b67c0d2b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Sep 3 21:59:40 2011 +0200
-
- Fixes possible buffer overflow when printing BGP attributes.
-
- Thanks to Alexander V. Chernikov for the patch.
-
-commit 2918e61046388821c3d4411c602dc5b28ad59329
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Sep 3 21:31:26 2011 +0200
-
- Fixes for OSPF NSSA handling.
-
-commit b1b19433602f2a2ff58cfe2c1858ff883eee7b20
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 16 23:05:35 2011 +0200
-
- The generalized TTL security mechanism (RFC 5082) support.
-
- Thanks to Alexander V. Chernikov for the patch.
-
-commit a52d52fa91ffcbcea58326fc2de476ce5644256f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 15 20:54:58 2011 +0200
-
- Fixes some missing tabs.
-
- They unintentionally disappeared in 1.3.2.
-
-commit a209d5d8e1bea2b37a7cddebe1f275da4ebde4e3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 15 02:06:56 2011 +0200
-
- A minor fix in BSD.
-
-commit 8815d846bf77e4231f36b64d8e4ac9a3ec2d1504
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Aug 14 15:53:47 2011 +0200
-
- BGP Extended communities documentation.
-
-commit 42a0c05408c4151442e6a0ec1c6889acbcfe9c17
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Aug 12 21:03:43 2011 +0200
-
- BGP Extended communities.
-
-commit bde872bba745e5596bdb066df6ef323b7cabcfdd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 8 10:57:54 2011 +0200
-
- The documentation update.
-
-commit ed317862c2958303cf541fe63f4ea26d00918a9a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 8 01:45:31 2011 +0200
-
- OSPF NSSA support, inter-area LSA translation.
-
-commit aca0e79faa391a2841134dac78a499dfdca68bd9
-Author: root <root@localhost.(none)>
-Date: Fri Jul 29 14:52:28 2011 +0200
-
- Handles missing macro.
-
-commit 14272097df989808790673521f643053f898aa8c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jul 28 13:50:02 2011 +0200
-
- Fixes crash on BSD.
-
-commit 4160a9dd9416ee5afd215750bdd6c6e7a4e7ed1f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jul 22 20:00:24 2011 +0200
-
- OSPF NSSA translator election.
-
-commit 41b612c31be05409e69e7365db82b3d1aefc4ca3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 20 23:40:20 2011 +0200
-
- OSPF NSSA support, part one.
-
-commit 9008579b97239564e1dcac855cf726fa9ab7dabd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 20 23:46:03 2011 +0200
-
- Fixes broken multi-area OSPF.
-
-commit c49490f8c096ef1379f08e7d70cc24f0c28b80ef
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jul 8 08:58:50 2011 +0200
-
- NEWS and version update.
-
-commit beeda6af44e72e3a20fcd2837b231a04354790fa
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jul 7 17:43:39 2011 +0200
-
- Removes timers for stub interfaces. Also fixes some minor bugs.
-
-commit 7d4e923603fdb43b6f017e5ef78e37d0891c699c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 6 03:10:02 2011 +0200
-
- Do not open sockets for stub interfaces.
-
-commit f796945f04d8be4e71cdf48d919c2035c0a2551d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jul 3 23:24:38 2011 +0200
-
- Fixes LSA checksum computation for larger LSAs.
-
-commit fdf16eb65872b3bee02fb9e25c80ea32cf59f8e9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jul 3 19:43:30 2011 +0200
-
- Prints full community lists during 'show route all'.
-
-commit 6370d6f61b30b2390727eee8136e0e575dff609f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jun 26 22:25:09 2011 +0200
-
- Fix route types in rta_show().
-
-commit e08d2ff08e4cff4bec38878e084fee7666caaaf2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jun 26 17:09:24 2011 +0200
-
- Adds filter clist operation.
-
-commit 35f8c731ea29bd534c74b2d0de089d5683ebcd8d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jun 25 14:51:16 2011 +0200
-
- Fixes output of BGP timers in 'show protocols all'.
-
-commit d8b5a786d27eed72106f88f893c521e67f1bef06
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jun 25 11:35:54 2011 +0200
-
- IPV6_CHECKSUM should not be used on ICMPv6 sockets.
-
-commit 23fd464447c4d0f0efe7b61ca3128bbb1bc1c21c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jun 20 20:35:59 2011 +0200
-
- Fixes a bug related to protocol enabling and reconfigure.
-
- When a protocol was enabled interactively (but disabled in the config
- file), then reconfigure in some cases forgets to disable it.
-
-commit ae85e28cf410cefe4f6e1cdf92510fbf9cea7ae0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jun 20 07:37:55 2011 +0200
-
- Fixes a bug in OSPF causing DoS by an invalid packet.
-
-commit 61c96d724464ee067e589b72ca9d10a2f7692901
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue May 31 17:27:46 2011 +0200
-
- Fixes bug that causes crash with strange BGP updates.
-
-commit 5e9bdac28ec95172b0c31641507f6a2fcd2e95fb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat May 21 22:48:08 2011 +0200
-
- Fixes a bug with setting preference during show route cmd.
-
- If show route cmd was used with a filter that changed preference,
- BIRD crashed.
-
-commit 1155c79209b6a670d0e1f85b2603363ba1132ae0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu May 19 01:20:00 2011 +0200
-
- Fixes compatibility with Mikrotik.
-
-commit b54ad333b3c8b486b059f6c0e1afc8c35b64ebea
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon May 16 12:39:55 2011 +0200
-
- Documentation update.
-
-commit e8b89a610443f32b901801668cbae634e13f3e68
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 15 16:29:44 2011 +0200
-
- Update and document the privilege restriction.
-
-commit 1bc2695744c729804af32d48ce68854cba4de8f7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue May 10 02:42:17 2011 +0200
-
- Allows run with restricted privileges.
-
- Adds option -u and -g to specify user and group.
- When different user (than root) is specified,
- linux capabilities CAP_NET_* are kept.
-
-commit 46bb7e0d176a4dc0a47bb406988f92fb29cceaf4
-Merge: b8cc390e b7c48981
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 6 22:09:44 2011 +0200
-
- Merge commit 'origin/master'
-
-commit b8cc390e7ed724a9ad605453227d1e4686f3a11b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 6 22:00:54 2011 +0200
-
- Fixes several problems in filter syntax.
-
- - Fixes several conflicts in the grammar.
- - Fixes a bug in (a..b, c) pair patterns.
- - Makes pair patterns orthogonal.
- - Allows term expressions in pair patterns without additional ( ).
- - Allows several comma separated values in switch cases.
-
-commit b7c48981069f25c01c552519e10aec4ebab1f031
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu May 5 14:14:20 2011 +0200
-
- Compilation was failing without OSPF or RIP protocol - FIXED.
-
-commit 409e8a6e21d3df0919fd2e131ba9a58222baee50
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon May 2 02:06:03 2011 +0200
-
- NEWS and version update.
-
-commit a506476acd4baa212f542b257eb5abba733ba4c5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 1 17:16:05 2011 +0200
-
- There may be more IP address records with the same IP.
-
-commit 5964569c23829ec93fcf671a2582be01c8aebecf
-Merge: acc93efd d600909d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 29 19:03:19 2011 +0200
-
- Merge commit 'origin/master'
-
-commit acc93efd4c754cc995ee8edf52ce0bc45511062e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Apr 28 00:31:37 2011 +0200
-
- Use constants from /etc/iproute2/rt_* files.
-
-commit 73272f04af40484b72451f541a986da996b0da58
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 22 16:13:27 2011 +0200
-
- Adds BGP option related to MED handling.
-
- Adds option 'med metric' allows to compare MEDs
- between routes received from different neighbors.
-
-commit d600909da9ef0a4b25052c1bf2de83d4e7628b0e
-Author: Ondrej Filip <feela@trubka.network.cz>
-Date: Wed Apr 13 13:19:37 2011 +0200
-
- Fixed bug FICORA #503685.
-
-commit 71ca77169d5d3e67459e46841b8bdb95accd8c2a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 13 12:32:27 2011 +0200
-
- Adds support for several Linux kernel route attributes.
-
-commit 4aef102be1e29d3450e53a20a6b2f96d50527139
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Apr 7 11:31:56 2011 +0200
-
- Fixes KRT sync in BSD.
-
- When buffer is too small (because of change between sysctls()),
- needed is *not* changed.
-
-commit 489c308a75b121f286cc8637ead8b2bf7bf896ec
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 5 11:41:18 2011 +0200
-
- Minor fixes.
-
-commit bf27abd6d4a20448f5b4c80e9aa9258dc8670f62
-Merge: 4ef09506 a5b84ab5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 1 13:56:42 2011 +0200
-
- Merge commit 'origin/master'
-
-commit 4ef0950603ffbd515d97359015585b4a7512bc75
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 1 13:54:39 2011 +0200
-
- Fixes a problem with BGP protocols and implicit router IDs.
-
-commit d93a43a57d37b7cc5506a823a081d21f515c3820
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 1 12:21:18 2011 +0200
-
- Fix leaked debug message.
-
-commit a5b84ab540ff3131938b38ebc82ed8e3ce46f261
-Author: Ondrej 'Feela' Filip <feela@atrey.karlin.mff.cuni.cz>
-Date: Thu Mar 31 10:30:58 2011 +0200
-
- NEWS updated.
-
-commit eb3786e4ea46ce1abc4ca211346369b36dc17dd7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Mar 30 02:00:56 2011 +0200
-
- NEWS and version update.
-
- (and minor changes in documentation)
-
-commit 06fb60c4af38d529d20b662748243b3f4a693c60
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Mar 30 01:09:18 2011 +0200
-
- Fixes some problems in BGP error handling.
-
-commit 83696b3913c9f52a3d53db073e1ba0641b60ab07
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Mar 29 02:44:39 2011 +0200
-
- Hide 6to4 route warnings.
-
-commit ab164971891c64126097eedca11d2f5586f1d8e7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Mar 29 01:41:46 2011 +0200
-
- Fixes a nasty bug in OSPF.
-
- Sending malformed network prefixes in LSAs causes OSPF to crash
- just after the LSA is propagated to the other routers.
-
-commit 52a43ae3b76f86b697537bc3ad8afdb3b421cf2c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 28 22:46:18 2011 +0200
-
- Minor changes in addresses.
-
- Mainly changes IA_UNNUMBERED to IA_PEER and adds IA_HOST. Also do not
- show broadcast addr in show interfaces. Nobody cares for that.
-
-commit c454872f4e81e69a8e9950289ab810fcac3fc922
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Mar 27 23:27:37 2011 +0200
-
- Avoid using stack.
-
-commit 4e712ec3b7cb4678607b2a48a2feaa0658333ab2
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Mar 26 15:21:35 2011 +0100
-
- Added CZ.NIC copyright.
-
-commit 86c038ccae2149645058d4288ff8efb498013522
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Mar 26 14:38:00 2011 +0100
-
- Documentation about previous commit added.
-
-commit 4fc36f394ec0988a18decb2d1916e3cebef18d22
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Mar 26 14:18:56 2011 +0100
-
- This adds (*,x) functionality.
-
-commit d0e9b36d30176a9e18cad6151b20746e1588cdc8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Mar 23 17:15:11 2011 +0100
-
- Added header file.
-
-commit 0aa88530ad3c58a6bdab886cabd9b2a4278486e8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Mar 23 13:40:46 2011 +0100
-
- Convert && and || to shortcut boolean operators.
-
-commit 26d92bb8921ac4e022cdc88bde8fc7bc617f8766
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Mar 23 12:49:53 2011 +0100
-
- A hack to distinguish if..else from else: in case.
-
- The old BIRD grammar needs two lookaheads to distinguish if..else from
- else: in case, which caused the parser to fail on some combinations of
- both expressions.
-
- This patch replaces two tokens 'else' ':' by one token 'else:' to fix
- that.
-
-commit 6bcef22580010aec695fb2b559c7b33ee00261b0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Mar 19 12:13:59 2011 +0100
-
- Documentation for the router advertisement protocol.
-
-commit 8e48831a970a784a979446813191628790d477f1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 17 15:53:36 2011 +0100
-
- Vastly improved OSPF reconfiguration.
-
- Now it can handle a change in iface pattern structure.
- It can add, remove and reconfigure interfaces, vlinks and areas.
-
-commit 93e868c730dc0b1825b2a685e0b066c051b1cb07
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Mar 13 11:33:50 2011 +0100
-
- Implements Router Advertisement protocol.
-
-commit 9d67ffb0b4cdfbbf88779ce2b44ba810d1ba85d3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jan 8 19:34:12 2011 +0100
-
- Fixes scope for sticky neighbors.
-
-commit d32a071da9655c2d05038e721bcf020498263c1e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jan 8 11:31:12 2011 +0100
-
- Some cleanups in krt_read_ifinfo().
-
-commit dad7ee70c1711b2cbdfd86c615736fe12c0d126a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jan 8 11:22:38 2011 +0100
-
- Fixes interface names on BSD systems.
-
-commit e7b4948cbd3e4cacf4fe0f774b44d1f74029ea6d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Dec 28 01:43:07 2010 +0100
-
- A simplification of the next-hop calculation.
-
- Thanks to Joakim Tjernlund for the idea.
-
-commit 919f5411c48f509a49400a1293e670f5d5d2bcf1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Dec 24 18:08:07 2010 +0100
-
- Implements Point-to-MultiPoint interface type for OSPF.
-
-commit 39847cda73d8e8536300b74d90d01b6e2f233ef7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Dec 23 12:24:40 2010 +0100
-
- Add some comments.
-
-commit f0160f0e06be883528e5e29edfd509efa14d0c78
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Dec 23 10:25:22 2010 +0100
-
- Fixes a minor memory wasting.
-
-commit 8cab377d92b62c028ee7aab49049b7cb6cd53ab9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Dec 22 23:33:40 2010 +0100
-
- Remove unnecessary check.
-
-commit 154e2aeded13f46666a69b7a7241149c43ebc01f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Dec 13 11:17:11 2010 +0100
-
- Fixes string handling in birdc.
-
-commit e91f6960bae16314e9429719c2c2321edb484a44
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Dec 7 23:36:48 2010 +0100
-
- Documentation update (multipath).
-
-commit 32b4972834352d641f7d2c08a27c18b0babd3790
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Dec 7 23:36:11 2010 +0100
-
- Multipath support for linux kernel protocol.
-
-commit 57c574d82a44d10143aba7aaea6d1384d850c079
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Dec 7 23:35:39 2010 +0100
-
- Multipath support for OSPF
-
-commit 9852f81064a38d35ff1bd5cc9fab7fc33926c83c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Dec 7 23:34:36 2010 +0100
-
- Multipath support for static protocol.
-
-commit 7e95c05d889f22be44aef5051eb07d35a4a8f579
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Dec 7 23:33:55 2010 +0100
-
- Core multipath support.
-
-commit 01427d3f2b69a4ae1b616b380d4911a132ec450f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 19 18:03:27 2010 +0100
-
- Remove some runaway debug messages and typos.
-
-commit 391931d45686a807d322878d4b3d5c9634e2dbca
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 19 13:46:21 2010 +0100
-
- Minor finalizations of link state checks.
-
-commit 79f561a173c9ceb824d64aa32d82e43ba62acebc
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Nov 13 14:19:55 2010 +0100
-
- Fixes a typo (in OSPF_MAX_PKT_SIZE value).
-
- And updates a comment.
-
-commit d9e7e1b13d69fa50d1979576c418c579f05463c6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Nov 13 14:19:23 2010 +0100
-
- Adds support for iface link detection to OSPF.
-
-commit fe181e7c63843ad65401cc1e400ae1ac3187122f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Nov 11 12:24:27 2010 +0100
-
- Adds support for iface link check to static protocol.
-
-commit f25cb0ef9f6341648513e793a3162b32fc250d2b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Nov 11 10:03:02 2010 +0100
-
- Implements link state detection.
-
- Also changes some symbol names (IFF_ADMIN_DOWN -> IFF_SHUTDOWN,
- IFF_LINK_UP -> IFF_ADMIN_UP).
-
-commit 5cdf264f937687aff194574f5fe2badb087337b8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Nov 10 16:43:11 2010 +0100
-
- Fixes a bug related to implicit backbone on ABR.
-
-commit c4443085a198c26a478463429477e7e8a599fa07
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Nov 4 17:25:48 2010 +0100
-
- OSPF tx buffers should have the same size as rx buffers.
-
- We should be able to send everything we received.
-
-commit d5356072ac18d5b0eb12f14afca6bfbea702dda2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Nov 4 17:22:43 2010 +0100
-
- Fixes a bug in LSA update of large LSAs.
-
-commit d3209d939d4d0d8801432f212edd4302a7d03633
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Nov 3 10:04:46 2010 +0100
-
- Fixes a bug in OSPF.
-
-commit fcf5a4f4b3e1a984f65d873e7a5a8c830b1ad9bf
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Nov 3 10:02:24 2010 +0100
-
- Change default for BGP IPv6 socket to V6ONLY.
-
- Also add a new option 'dual' for the old behavior.
-
-commit 5adc02a6f87bda06094ce36eb699884c03760bf5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Oct 22 11:25:47 2010 +0200
-
- Documentation update.
-
-commit ed76033c847939877e4fbfadf06898521aafb740
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Oct 22 08:35:19 2010 +0200
-
- Fixes some typos.
-
-commit 938b191b9282b138cbdd30dfc11b78c0467d6380
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Oct 9 01:00:53 2010 +0200
-
- Fixes error handling in ASN expressions.
-
-commit 112d71a73f30d26891eda4374bf0f2ab31c5c048
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Oct 8 14:25:53 2010 +0200
-
- Fixes syntactic priority of '.' .
-
- Dot in expressions like net.len definitely should have the highhest
- priority.
-
-commit b2b7bbfc690a7ad6a61a8cdf4abe87345057fb2e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Oct 4 19:55:11 2010 +0200
-
- Fixes scope of filter symbols.
-
-commit 0d1b3c4c0e3261d1d4261e9aeb9975a01d0ff2f9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Sep 20 13:01:01 2010 +0200
-
- Changes print-like filter commands to use a log instead of a stderr.
-
- And extends the log subsystem to better handle that.
-
-commit 2dec1e3471385ea191862c8fe85d76a8e47410de
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Sep 15 02:01:23 2010 +0200
-
- Fixes a bug in pair sets.
-
-commit a58022a64ee8aa2fc46816020723dfbf4bfd08d9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Sep 11 20:14:53 2010 +0200
-
- Fixes a bug in community set delete.
-
-commit 4ca93a50675489a6a5ef9369c24806cc3cbff45e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Sep 8 12:08:38 2010 +0200
-
- Fixes a one byte buffer overflow.
-
-commit 948c865fac85f91dd7463195b190d8f133e0f741
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Sep 3 17:15:02 2010 +0200
-
- Fixes a crash in RIP during reconfigure.
-
-commit 3cb6c83f1a2eb563e459ce34d0f4850cc9dd4776
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Sep 3 16:32:00 2010 +0200
-
- Fixes a memory leak in RIP.
-
-commit faf58cec4d0c0d3c1fddee6faf2f57a1362477bb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Aug 22 14:43:53 2010 +0200
-
- Fixes a bug in NBMA on an iface with multiple IP addresses.
-
-commit ac4a1eedfc515e041877d48fd5f64ee4e3b30532
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Aug 13 14:30:36 2010 +0200
-
- Change default for handling missing link-local addresses on route servers.
-
-commit dcc71a7fb7e507acc2e0b417e6c9d1940448908e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Aug 12 10:22:40 2010 +0200
-
- Supports unique local unicast addresses.
-
-commit 0ef69b1c4a255360e1fa76dffd7a0cb97ea1e9dc
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Aug 9 14:09:53 2010 +0200
-
- Typo in doc.
-
-commit 265d06dcbc138c7373ec7b341fcd628eb87e4c4b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Aug 4 15:27:11 2010 +0200
-
- Fixes IPv6 build.
-
-commit 373d3dbe8dfbce21af72618c0f912dd0e23a6f3c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Aug 4 13:53:52 2010 +0200
-
- Fixes build on Sparc.
-
-commit 946dc15c928d9a48cdcc857bc80f4fabf9a4e2bf
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Aug 3 17:35:34 2010 +0200
-
- Documentation update and improvement of tests related to expressions in sets.
-
-commit e0e8c04a83bbe24cdcf3836ca171ce60db299b1f
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Aug 3 15:23:30 2010 +0200
-
- Small typo in documentation.
-
-commit edaec901e12c2f0756ab44f7493e999145d7dff9
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Aug 3 15:22:29 2010 +0200
-
- Even set of number can be made by expressions.
-
-commit 4733b49ed6ec11669061e15680417961d13c7a61
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Aug 3 15:14:26 2010 +0200
-
- Syntax of sets improved.
-
-commit 2c9033afd5ce5e99255d248fb065e94534405da7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 3 08:26:47 2010 +0200
-
- Do not allow interdependent recursive routes.
-
-commit f428631cd6f48c5155bd1b7724e9bb8a545fda12
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 3 01:12:43 2010 +0200
-
- Ignore warning when BGP peer is unreachable.
-
-commit b74f45f8a05444dca16f0995c7d201ea592ce299
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 3 00:59:13 2010 +0200
-
- Documentation update.
-
-commit ba5e5940aa1f11128c76a3964823bda22e47ab04
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 2 13:11:53 2010 +0200
-
- Adds igp_metric attribute.
-
-commit d395fe48553062413a85fd04cda0752f933e70c6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jul 31 11:37:30 2010 +0200
-
- Fixes bug in OSPF ext-LSA origination.
-
-commit d1e146f2f8da303af7bbe0cec363cc15c58c37fd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jul 31 01:04:32 2010 +0200
-
- Implements IGP metric comparison for BGP routes.
-
-commit ac3ac49a71d4b290cfb28aecafc8ac4a69df7a64
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 28 13:13:34 2010 +0200
-
- Adds route resolvability test.
-
-commit 1b180121a90ef98f3adce1a355d48d64c6fc3c4f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 28 11:45:35 2010 +0200
-
- Use link-local addresses in recursive next hops for IPv6 BGP.
-
-commit c477f48916d74c2db6156145851f9536ae0a0a6c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jul 27 18:20:12 2010 +0200
-
- Hostcache should use trie to filter relevant route changes.
-
-commit 7f0d245a5e6d2d789e1fce4b5388ea69aba3b428
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jul 27 17:17:11 2010 +0200
-
- Minor changes in prefix trie.
-
-commit f2b76f2c45bb8e7c1f13f6d4924e10f0c6b12778
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 26 16:39:27 2010 +0200
-
- For hostentry cache, replace FIB with a hash table using (IP, dep table) as a key.
-
-commit 852b7062e33b9886eb869fac8b9354497c49b126
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jul 22 15:09:35 2010 +0200
-
- Fixes a buffer overflow in TX code of IPv6 BGP.
-
-commit 7873e9828ff7ba7203fd30ffa7d50859d583d4ca
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 14 19:03:23 2010 +0200
-
- Fixes the documentation.
-
-commit 087cecd0e2db0ec1e630fde67ec560578264bf32
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jul 13 12:48:23 2010 +0200
-
- Adds some options and documentation related to recursive next hops.
-
-commit f038f0a6385d7b81f57254e3c9bf84021a6b040d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 12 21:39:10 2010 +0200
-
- Fixes missing check in reconfiguration.
-
-commit 9be9a264137cdd881f339c37d1a1918527924254
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 12 17:39:39 2010 +0200
-
- Implements proper multihop BGP.
-
- Also does some incompatible changes to config file syntax,
- like removing 'via IP' from multihop option.
-
-commit cfe34a316e35a209fcd814ccf3523c262e8d4b0a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 5 17:50:19 2010 +0200
-
- Implements hostcache and recursive next hops.
-
- Hostcache is a structure for monitoring changes in a routing table that
- is used for routes with dynamic/recursive next hops. This is needed for
- proper iBGP next hop handling.
-
-commit 824de84d48eff6cbd0c550309fbd0bbf7740cb14
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jun 2 22:25:39 2010 +0200
-
- Do not start with huge OSPF FIBs.
-
- Most OSPF instances don't need 64k FIB fields. This change halves
- resident memory usage on small OSPF networks.
-
-commit acb60628f53ba1fc29d1a554683acdb03f961c6f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jun 2 22:20:40 2010 +0200
-
- Implements command that shows memory usage.
-
-commit 4461b8979143bd13024663622c419646a1db0c85
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Wed Jun 2 12:11:20 2010 +0200
-
- Minor bug that appears only in debug mode.
-
-commit 9ef239946b7298a679a9b155606257738bb52347
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon May 31 20:41:40 2010 +0200
-
- NEWS and version update.
-
-commit a34b09349e809a6d8f696fb0897c0bfdc3b66159
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon May 31 11:35:29 2010 +0200
-
- Disable BGP protocol when cannot open listening socket.
-
-commit 9b061f7ea5933f70c200bb3b3a7be5a2e472e805
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 28 11:16:39 2010 +0200
-
- Minor fixes.
-
-commit 691057f03310e712428e19214ae48462d0f258e1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed May 26 16:09:22 2010 +0200
-
- Support loopback/dummy addresses.
-
-commit e0a62ad0f8be198bf8afb1f6900f138dfe12d4fb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed May 26 12:32:30 2010 +0200
-
- Fixes a bug in duplicit configured stubnets.
-
- If there was the same configured stubnet on local and remote
- router, the remote route always won regardless of its cost.
-
-commit 52572e94ec75728c114f47db37aaf220c1af29d6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 23 12:34:09 2010 +0200
-
- Check for OSPF seqnum wraparound and handle it.
-
-commit ba5c0057ed01fb006b7a6fb1bd8c21f0c9ae12be
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat May 22 22:47:24 2010 +0200
-
- Extends pair set syntax, matching and deleting against clist.
-
- Expressions like (123,*) can be used in pair set literals, clists can be
- matched against pair sets (community ~ pairset) and pair sets can be
- used to specify items to delete from clists (community.delete(pairset)).
-
-commit 6d04ef8987f6f5483d353d393ef66dae4b887f30
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 21 16:40:09 2010 +0200
-
- Comment update.
-
-commit 87a9abeac976180ade1c7619545e610d743994b5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 21 15:17:49 2010 +0200
-
- Fixes interface scan on Linux 2.4.x in IPv6 mode.
-
-commit 002b6423188abdd62c5a494069fd299b96863a79
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 21 11:51:39 2010 +0200
-
- Fixes bug on Linux 2.4.x - kernel sync does not work until restart of kernel protocol.
-
- Which was, actually, a bug in timers - on older kernel, monotonic timer
- is missing and the other implementation started with now == 0, which
- collides with usage 0 as a special value in timer->expires field.
-
-commit c1cefd7bea79201c58c7c0fa8e192be3cc5ed771
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 16 11:03:59 2010 +0200
-
- Do not remove old static route if it is in new config with different gw.
-
-commit 7ff5803becec14da870d3997d78e3963fa5ec6e6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 16 10:27:20 2010 +0200
-
- Do not originate summary or external LSA if it already here and not changed.
-
-commit 475977242ac5bb9ff8826c2dd8c9a1a180320de2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 14 16:54:39 2010 +0200
-
- Handle EPIPE as a common connection close event.
-
-commit 0267f49fb2e44525aa2777bcb9900c4bb2db41e1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 14 15:24:53 2010 +0200
-
- Do not add community if it is already in clist.
-
-commit ee7408c2be2cd514ba6eefc5589e57a6056198dc
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 7 15:54:27 2010 +0200
-
- Fixes a bug in LSA flooding.
-
- LSAs are sometimes prematurely removed from LS retransmission lists.
-
-commit 54818e9beb6bfcbcb5dcc2b175dca9d174012e6c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon May 3 00:10:48 2010 +0200
-
- A minor bugfix in OSPF ext-LSA processing.
-
-commit 506fa1a73eab0c6426f68cd7784c6712898b88f3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 2 22:41:40 2010 +0200
-
- Merge several fixes suggested by Joakim Tjernlund.
-
-commit 6384c7d7aa85d1e593eca30cda48f6677b023cb0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 2 19:58:34 2010 +0200
-
- OSPF: most of summary LSA orig./flush logic rewritten.
-
- Fixes many bugs in the old code and makes it much cleaner.
-
-commit ba321706578de8402d50214a9e79a65835cdd821
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 28 00:39:57 2010 +0200
-
- Better support for /31 networks.
-
-commit 48b0814ace2d05f9fef093d9f309bfa186a6f365
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 27 18:29:01 2010 +0200
-
- A fix in OSPFv3 next_hop calculation.
-
-commit 96599c957baa9c82bde91d610ce4f519aead05e9
-Merge: ba130172 9d1ee138
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Tue Apr 27 11:28:44 2010 +0200
-
- Merge branch 'master' of ssh://git.nic.cz/projects/bird/GIT/bird
-
-commit ba130172549ef2313f713e048083432f74e7d03d
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Tue Apr 27 11:27:54 2010 +0200
-
- Avoid warning if not compiled with pipes.
-
-commit 9d1ee1388771a3caa6c23163571a80457adfab2c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Apr 26 19:08:57 2010 +0200
-
- Neighbors on OSPF broadcast networks should be identified by IP address, not RID.
-
- Allows simple support for multiple interfaces to the same network.
-
-commit 4e5fb4b60c59db3248fd12db2bc6f0424d798122
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Apr 25 20:12:34 2010 +0200
-
- Skip LSA host<->network endianity conversions on big endians.
-
-commit c1b51598d49ff737b926bd8ad2e308a5a15ce3a2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Apr 25 19:13:49 2010 +0200
-
- Implements changes in checksum alg suggested by Joakim Tjernlund.
-
-commit 0ea8fb4abe5acad0b8f470bbdc5cc929b6a58ced
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Apr 24 15:18:21 2010 +0200
-
- Fixes and enhancements in 'show ospf state' command.
-
- Now it shows a distance, option to change showing reachable/all network
- nodes and better handling of AS-external LSAs in multiple areas. The
- command 'show ospf topology' was changed to not show stubnets in both
- OSPFv2 and OSPFv3 (previously it displayed stubnets in OSPFv2).
-
-commit 1d44ddf20f3ecef864d4bd20355251839fcd10ee
-Merge: 3b89a232 6bc414d6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 21 21:52:10 2010 +0200
-
- Merge commit 'origin/master' into new
-
-commit 3b89a2327ba385abf2a8321a5a900faba3765612
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 21 21:50:38 2010 +0200
-
- Fixes several problems in OSPF vlink implementation.
-
-commit 6bc414d619e1d8710990e89e5085d18e2d5c544c
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Mon Apr 19 16:10:20 2010 +0200
-
- It seems that prefixes /31 and /127 are valid and used in this strange world.
-
-commit 607d991424006c083be63878b6a606e76679e1ce
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 14 15:35:08 2010 +0200
-
- Fixes build on newer Linux systems.
-
-commit dcc6049444f5e12e0d0fcc4cfbb244c08b4c20b0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 14 14:46:21 2010 +0200
-
- Fixes IPv6 build on older systems.
-
-commit 6e8067609673afef9eb9e786f4e43a73a3b544f0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Apr 11 12:22:47 2010 +0200
-
- Fixes next hop calculation on NBMA and parallel PTP links.
-
-commit 7969ea3b41db05294c78a5e0ec0bd3c29ae8c549
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Apr 11 10:19:54 2010 +0200
-
- Fixes a bug in OSPF on NBMA interfaces.
-
- A very tricky bug. OSPF on NBMA interfaces probably never really worked.
- When a packet was sent to multiple destinations, the checksum was
- calculated multiple times from a packet with already filled checksum
- field (from previous calculation). Therefore, many packets were sent
- with an invalid checksum.
-
-commit d759c1a6f834cd8a8a7c264d159b9ceb246aec2a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 9 17:42:39 2010 +0200
-
- NEWS and version update.
-
-commit de14a7c7aa9225cbc9f837fac9e332a99a99ed69
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 9 00:56:47 2010 +0200
-
- Ignore routes with next-hop 127.0.0.1 on BSD.
-
-commit a9f380fe83187a95ead715e516696024e73f3fb7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Apr 8 18:41:17 2010 +0200
-
- On BSD, consider unmarked non-device routes as alien.
-
-commit 6b5a8649a48d7616efbc798095eee2c10563b4e6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Apr 8 17:56:56 2010 +0200
-
- Do not export empty community list attribute in BGP.
-
-commit 0277cc0baf1439a779f4c3ed8b2a77f29f5cfed7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Apr 8 17:47:14 2010 +0200
-
- Revert "Fixes behavior of defined() on bgp_community attribute."
-
- This reverts commit 74e9331fe0892c4c96b4c4d7db3f14bb7e9d928e.
-
-commit 646b24d93249199ee59fdecd685532212b506bda
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 7 23:15:56 2010 +0200
-
- Minor changes.
-
-commit 44d4ab7a960cf143c43d1645f2985cc9d74e3077
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 7 11:00:36 2010 +0200
-
- Configurable syslog name.
-
- Also fixes a bug in syslog initialization.
-
-commit b8113a5e92cb19a0910041d5708f4eafeb713b54
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 7 00:19:23 2010 +0200
-
- Implements BGP 'show protocols' info details.
-
-commit c429d4a4ba2cc8778634461e8adea33e0f0ae022
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Apr 4 15:41:31 2010 +0200
-
- Restrict export of device routes to the kernel protocol.
-
- In usual configuration, such export is already restricted
- with the aid of the direct protocol but there are some
- races that can circumvent it. This makes it harder to
- break kernel device routes. Also adds an option to
- disable this restriction.
-
-commit d2d2b5d2ae43f608d03304d280367b658650138b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Apr 3 12:03:52 2010 +0200
-
- Ignore some kernel messages.
-
-commit 44aa101cd0716daf1b9f0d9ca5ec1814386c1e0d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Apr 3 11:42:18 2010 +0200
-
- Fixes related to routes with link-local gw on BSD.
-
-commit 46a82e9c2c04c432775c7db5ab5d5cc0301b2a94
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Apr 3 10:45:21 2010 +0200
-
- Fixes missing header.
-
-commit e60d55becdd9b2eeb36ac16daedae2ab54d05b0c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 2 19:03:18 2010 +0200
-
- Fixes OSPFv3 route generation for local stub networks.
-
-commit e7b09e4ab99fc850480480bbb577ffa36a6c5cd7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 2 16:11:46 2010 +0200
-
- Use SO_BINDTODEVICE also in Linux/IPv6.
-
-commit 97ab4c34986139b2419c563a3de7ddfe41727d07
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 2 11:36:38 2010 +0200
-
- Fixes link-local addresses on BSD.
-
-commit bed417288e989c48a1362bb1177f436a2e2f9f4f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 2 11:31:20 2010 +0200
-
- Minor fixes to previous patches.
-
-commit 126683feeda03ffb5a4ce23611e59a4598382d49
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 29 19:29:03 2010 +0200
-
- Filter language updates; new route attributes and datatype.
-
- - Adds bgp_originator_id and bgp_cluster_list route attributes.
- - Adds dotted quad filter datatype (for router IDs, used by
- bgp_originator_id and ospf_router_id route attributes).
- - Fixes pair ~ pair set matching.
- - Documentation updates.
-
-commit eb0f129fcedcecbee85403095abad8f59b82683c
-Merge: b1c030b0 48cff379
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Mar 26 18:53:31 2010 +0100
-
- Merge branch 'socket2' into new
-
-commit 48cff379a718998cd984d60fb6f8b48cb961c0f1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Mar 26 16:21:29 2010 +0100
-
- Added some comments.
-
-commit af157fa3dbe2bba0674eb7634efd3ade6c89d604
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Mar 26 14:48:01 2010 +0100
-
- Disable multiple OSPF pseudointerfaces on BSD.
-
-commit b1c030b0ba59eed6da5271ed592d6b93ed088518
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Mar 24 16:39:18 2010 +0100
-
- Adds autoconf test for -Wno-pointer-sign compliler option.
-
-commit 4d9a0d1f02134235bf686caf49af44232590c456
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Mar 24 10:39:14 2010 +0100
-
- Update lastmod in 'ignored' case only for RIP routes.
-
-commit 885b3d6127ae2c5c4f17d9dba95ffe67bdf7a688
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Mar 19 19:23:34 2010 +0100
-
- Fixes LLS compatibility.
-
-commit 5d53b80770b4927b5a8205ee0e57f80454b0abf5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Mar 19 18:46:56 2010 +0100
-
- Allow iface pattern matching code to match peer address on ptp links.
-
-commit aa4612480424ad2fede0cd4ae4c7a893f61c6c0f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Mar 19 09:41:18 2010 +0100
-
- Clear local variables in filters and functions.
-
- Fixes crash when used uninitialized variables.
- This problem was surprisingly tricky to fix.
-
-commit 74e9331fe0892c4c96b4c4d7db3f14bb7e9d928e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 18 00:10:35 2010 +0100
-
- Fixes behavior of defined() on bgp_community attribute.
-
-commit 1528d30aebc462a13861d7cdb827e74556f3aa91
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Mar 17 23:17:55 2010 +0100
-
- Fixes unterminated string for atomic_aggr attribute formatting.
-
-commit 97e46d28fff1aa27d7d15e113cc3a52ae20934c7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Mar 17 12:19:22 2010 +0100
-
- Adds check for no protocol and some minor CLI fixes.
-
- - Adds check to deny config file with no specified protocol to prevent
- loading of empty config file.
- - Moves CLI init before config parse to receive immediate error message
- when cannot open control socket.
- - Fixes socket name path check and other error handling in CLI init.
-
-commit 4e3bfd9006ba3033a814a392f9bf4bbca060c8a9
-Merge: e8da1bd0 cda2dfb7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 15 00:39:45 2010 +0100
-
- Merge commit 'origin/master' into new
-
-commit e8da1bd0b5f83991d37bc7e8364101c3faa78b3b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Mar 15 00:34:44 2010 +0100
-
- Fixes missing cases in filters.
-
-commit 0aad2b9292f8e5ff32d048378faf80d2d0bfbb80
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Mar 14 16:36:59 2010 +0100
-
- Temporary OSPF commit - sockets.
-
-commit 54305181f6ee3af57dd3d15d53ea2e851b36ed23
-Merge: e7b76b97 afa9f66c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 11 18:55:59 2010 +0100
-
- Merge branch 'new' into socket2
-
-commit e7b76b976084006e430543f4b872f624326dbfe6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 11 18:07:24 2010 +0100
-
- Temoporary OSPF commit - socket changes.
-
-commit afa9f66c27e2f96b92059131def53cc7b2497705
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Mar 10 01:04:09 2010 +0100
-
- Adds support for PTP links on BSD.
-
-commit cda2dfb7a9e03543eaf407ee26e5046fc589ef29
-Author: Ondrej Filip <feela@trubka.network.cz>
-Date: Mon Mar 8 00:05:37 2010 +0100
-
- Arnold from DE-CIX suggested to have this formulation more precise.
-
-commit 53434e44a95fe9334f4bdf5e0da987929addffb1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 27 16:00:07 2010 +0100
-
- Better flushing of interfaces.
-
- 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.
-
-commit 3075824dbd4bb654e98614dfd9992ceec0428beb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Feb 26 14:09:24 2010 +0100
-
- Comparing cluster list length should be later in bgp_rte_better().
-
-commit 212ff335828fbe28311fcbae6154cf2495a44d0e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Feb 26 13:55:22 2010 +0100
-
- Fixes signedness in format route attributes.
-
-commit ff2857b03db854f99902766ad842aaa5fa29ec3c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Feb 26 10:55:58 2010 +0100
-
- Many changes in (mainly) kernel syncers.
-
- - 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
-
-commit e81b440f6878605edd19ed62441648ac71260881
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Feb 21 14:34:53 2010 +0100
-
- Fix configure to enable warnings and fix most of them.
-
-commit 9e43ccf07b96597ef098955a07383d826938cd2d
-Merge: e285bd23 89534cda
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Feb 21 10:15:49 2010 +0100
-
- Merge commit 'origin/master' into new
-
-commit e285bd236e9cd42e3f92db3a35b5ec2d307c7a48
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Feb 21 10:14:41 2010 +0100
-
- Fixes installation (missing /usr/local/var/run).
-
-commit e0a45fb42163a6bfdeeee44bd0a6a7461552e10f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Feb 21 09:57:26 2010 +0100
-
- Restricted read-only CLI.
-
- Also adds support for executing commands using birdc <cmd>.
-
-commit 89534cdae500cc82d9081088be90013e4121542d
-Author: Ondrej Filip <feela@trubka.network.cz>
-Date: Sat Feb 20 21:14:02 2010 +0100
-
- 'rr client id' is not expression but ID (like router id).
-
-commit a68066538fde600941ea43c40d777e14cfac0ee7
-Author: Ondrej Filip <feela@trubka.network.cz>
-Date: Sat Feb 20 21:09:40 2010 +0100
-
- Minor typos in configuration example.
-
-commit e304fd4bcf5813b581a39078a25a5cf6916b9f29
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 20 00:03:31 2010 +0100
-
- Implements pattern match for 'show protocols' command.
-
- And generally consolidates protocol commands.
-
-commit dfd48621d1a54f2beb461fe3847fc4b2a535675e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Feb 17 21:53:07 2010 +0100
-
- Replaces the algorithm for building balanced trees.
-
- Changes the time complexity of the algorithm from O(n^2) to O(n*log(n)).
- This speeds up loading of huge DEC-IX config from 128 s to 15 s. It also
- makes the code significantly simpler.
-
-commit 14f6aca48037a0653e6bcfa27a4da48e8f962198
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Feb 17 11:29:48 2010 +0100
-
- Changes right recursion to left in the grammar of the case expression.
-
-commit dca75fd7c207f0bfc627cb6b74a484da3b27e05f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 13 12:26:26 2010 +0100
-
- Removes phantom protocol from the pipe design.
-
- It seems that by adding one pipe-specific exception to route
- announcement code and by adding one argument to rt_notify() callback i
- could completely eliminate the need for the phantom protocol instance
- and therefore make the code more straightforward. It will also fix some
- minor bugs (like ignoring debug flag changes from the command line).
-
-commit 9db74169be76f658df2207d1ec99eac48fa36f5f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 13 10:44:46 2010 +0100
-
- Fixes protocol statistics for pipes.
-
-commit c83876265eeae3591bfe90375503728e633cb807
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 11 22:27:06 2010 +0100
-
- Fixes a tricky bug in the pipe protocol.
-
- When uncofiguring the pipe and the peer table, the peer table was
- unlocked when pipe protocol state changed to down/flushing and not to
- down/hungry. This leads to the removal of the peer table before
- the routes from the pipe were flushed.
-
- The fix leads to adding some pipe-specific hacks to the nest,
- but this seems inevitable.
-
-commit a2ea1bac601ca79946e2a215dac9427c526cedab
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 11 21:19:20 2010 +0100
-
- Moves errno.h include.
-
-commit 2af25a971a28ccac05d2385669e8b103c0328f7d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 11 11:12:58 2010 +0100
-
- Fixes a crash caused by missing error hook on BGP listening socket.
-
- Error happened when too many BGP connections arrived in one moment
- (ECONNABORTED).
-
-commit 353729f513aa6a1f9e7f66083a0f9d2117fe2be5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 11 10:23:35 2010 +0100
-
- Temporary OSPF commit - socket changes.
-
-commit fa5a99c766dde2a4ac3d44596ff5396a0efd1cc8
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Wed Feb 10 23:09:23 2010 +0100
-
- NEWS version update.
-
-commit 75f8861898d53f43cb23dbba9c776bce223c18c8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Feb 10 16:18:17 2010 +0100
-
- NEWS and version update.
-
-commit fae9be7782a161bdf93c83884d62941a34cbe518
-Merge: 7d196668 0efd6462
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Feb 10 14:59:26 2010 +0100
-
- Merge commit 'origin/master' into new
-
-commit 7d1966689f3f748d8bfa36eef64ced6a750ecb47
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Feb 10 14:57:16 2010 +0100
-
- RTF_CLONING is removed in FreeBSD 8.
-
-commit 0efd646278987df023586d85817a848c2bb39a1d
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Wed Feb 10 12:30:14 2010 +0100
-
- Define symbols as text between ''.
-
-commit c27b2449d1f57e780974ed13fbd572a48e2a3602
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Feb 8 16:01:03 2010 +0100
-
- Shows source (Router ID) for OSPF routes and adds such attribute.
-
- A sad thing is that we does not have a 'router_id' filter type,
- so it must be given as decimal number in filters.
-
-commit 5a56f27cd00c2cad661aed9b54696699e800883c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Feb 8 12:42:09 2010 +0100
-
- Adds asterisk to the primary route in 'show route' cmd.
-
- And also fixes a minor bug.
-
-commit aa80826e4af4e6e0a6de5604ab5ce7991f2a8b4e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Feb 7 09:49:34 2010 +0100
-
- Unnumbered OSPF interfaces should be always in the point-to-point mode.
-
-commit 76b53a4e207696c535a45f4358a8e047ca936e45
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 6 22:57:51 2010 +0100
-
- Adds some log messages related to configure.
-
- Also fixes a bug in the previous patch.
-
-commit ebae4770c949de41c64c9efbeaaef44adfb25790
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 6 19:19:09 2010 +0100
-
- Modifies configure to just reload protocols when filters change.
-
- Before this change, protocols were restarted in that case.
-
-commit c37e78510f2ac4d9bb4c44eddf33352eda72fd0f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Feb 3 00:19:24 2010 +0100
-
- Makes date/time formats configurable.
-
-commit 44f26560ec9f108039e6736d6de929f899bf20ea
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Feb 2 10:14:21 2010 +0100
-
- Workaround for some broken BGP implementations that skip initial KEEPALIVE.
-
-commit 5f47c4c11ed8da3415c4c8c247bf52ab6a48255d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Feb 2 00:03:46 2010 +0100
-
- Changes right-recursion to left-recursion in a filter grammar.
-
- Because we don't want to have a limit on a function/filter length.
-
-commit 1a7a4e59a22f903a0be791f229e86ab881593851
-Merge: 41677025 1960d203
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jan 28 16:00:16 2010 +0100
-
- Merge commit 'origin/master' into new
-
-commit 41677025ee67fcccd34493f9b205037dd68811c9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jan 28 15:59:18 2010 +0100
-
- Changes 'ignore communities' to 'interpret communities'.
-
-commit 1960d20350c5191b089f0a233d99969a0ff23ef6
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Wed Jan 27 23:45:36 2010 +0100
-
- Priority for '||' and '&&' fixed.
-
-commit 7515dafc006f8b71bc15aa7ed9749c7d4fb00153
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Wed Jan 27 22:26:45 2010 +0100
-
- Allow multiple || and && statements.
-
-commit 6cb8f742f1adf99881334b8ae21c398d98571aa1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jan 27 17:22:57 2010 +0100
-
- Better handling of well-known communities.
-
- Process well-known communities before the export filter (old behavior is
- to process these attributes after, which does not allow to send route
- with such community) and just for routes received from other BGP
- protocols. Also fixes a bug in next_hop check.
-
-commit a3062085827db3115961eacd9d945ac202728174
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jan 13 14:53:33 2010 +0100
-
- Comment update.
-
-commit 974363c172e026b00be5f78ec585dda1e402b6f6
-Merge: 99f5fc14 844e0f65
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jan 8 22:20:09 2010 +0100
-
- Merge commit 'origin/master' into new
-
-commit 99f5fc14cd457f71973bc2264566284049ccfb2c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jan 8 22:19:41 2010 +0100
-
- A partial vlink fix.
-
-commit 844e0f65dbab98f71f2a5631277a720613d4d7a5
-Merge: 3242ab43 fc33143f
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Fri Jan 8 21:19:03 2010 +0100
-
- Merge branch 'master' of ssh://git.nic.cz/projects/bird/GIT/bird
-
-commit 3242ab437f47f34d6734726003d647d0f493a163
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Fri Jan 8 21:06:06 2010 +0100
-
- Typo in documentation.
-
-commit fc33143f02642cc775a704dec37446e0b4343a43
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jan 8 17:22:51 2010 +0100
-
- A fix for broken multi-area OSPF
-
-commit 0741e68750fdda754790b6de7739e06310bdf723
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jan 8 10:21:51 2010 +0100
-
- Socket table update.
-
-commit 538dd2e486c3cc95ffebbdf73c934ddc71d70e09
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Fri Jan 8 01:14:34 2010 +0100
-
- Cryptographic auth can be used also on virtual links.
-
-commit 5f47fd85e341d94e2cbf46801cc14be06fb65dd8
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Fri Jan 8 01:13:58 2010 +0100
-
- Small typo.
-
-commit 6901fd0685f75ad5e95ea252039eec9e8926cd6a
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Thu Jan 7 23:42:11 2010 +0100
-
- More information about vlinks.
-
-commit 18722dc98c57af6bfa2d9b967417b65db263e5ca
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Thu Jan 7 23:03:19 2010 +0100
-
- Bugfix in DBG call.
-
-commit 3127b81755de4a09475df71072964e292c6994a7
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Thu Jan 7 22:54:39 2010 +0100
-
- Be a little bit more verbose on virtual links.
-
-commit cf0858c2174c6bf0a4f63b914d06a2342c433b09
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jan 7 22:43:06 2010 +0100
-
- A fix of a previous fix.
-
-commit ba39197c11db085c4bc062e45fd9c74f42b41ca0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jan 7 22:22:10 2010 +0100
-
- Fixes vlinks for OSPFv2.
-
-commit 29bfbae7936beb401d944daf0f0106aa8a92ef50
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jan 7 16:24:36 2010 +0100
-
- Debugging change leaked to repository.
-
-commit 3034b384dd9e6c78e686a294b1f80775fdb3e392
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jan 7 11:46:11 2010 +0100
-
- A minor fix in OSPF.
-
-commit 861f223a531be17d2e3e7abc0246be3057b809a0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jan 6 23:20:43 2010 +0100
-
- BSD compatibility fix.
-
-commit 0c75411bec2f4e37bfdb4c7162631a22898052c1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jan 6 16:57:20 2010 +0100
-
- NEWS, version and documentation update.
-
-commit cf31112f0d7618464097f71228f84bd534f1bc0f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jan 3 12:17:52 2010 +0100
-
- Implements MRTdump feature.
-
-commit 610bb3cff05f6d5b09c77724bc97295b809d15e2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Dec 22 10:49:39 2009 +0100
-
- Show command cleanups.
-
-commit 0ad19261bf551ef49a1565e21e384ec749ec16d4
-Merge: c4ae5385 67b24e7c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Dec 22 01:34:01 2009 +0100
-
- Merge commit 'origin/master' into new
-
-commit 67b24e7c1991de345dcb14173943a28d499f6f85
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Mon Dec 21 16:29:23 2009 +0100
-
- Wrong switch name in configuration example.
-
-commit c4ae53858be1bce6798f31ee2fb46775a607085f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Dec 21 11:53:58 2009 +0100
-
- Change default mode of pipes to transparent.
-
- Opaque pipes are obsolete and should disappear in the future.
-
-commit fbcb7d5faf419057ccbe2340f3714f8885495c51
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Dec 21 11:50:42 2009 +0100
-
- Change default LOCAL_PREF attribute to 100 (suggested value by RFC 4277).
-
-commit ba9a122142a3d42137c129fabaef097702d44801
-Merge: 0225ea4e c4199e30
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Dec 20 22:57:44 2009 +0100
-
- Merge branch 'ospf3' into new
-
-commit c4199e30313c88c0911060a5b5f3cc181ceedb37
-Merge: f2d7da74 ea7ada38
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Dec 20 22:56:09 2009 +0100
-
- Merge branch 'dev' into ospf3
-
-commit 053dc3d81fe6470966bc35a852e791de0c00ee68
-Author: Ondrej 'Feela' Filip <feela@atrey.karlin.mff.cuni.cz>
-Date: Sun Dec 20 16:18:22 2009 +0100
-
- Typo corrected.
-
-commit ea7ada3809ed672bd9d2f9e5742f42b238cc5389
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Dec 20 14:59:12 2009 +0100
-
- Fixes a new bug in the pipe protocol soft reconfiguration.
-
- Also updates route reload for pipes.
-
-commit 1a5178587ff63234d1b323fca965acb4a42cb9e2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Dec 20 12:13:15 2009 +0100
-
- Fixes unnecessary pipe restart during configure.
-
-commit 6877ff73a61d1924bc8940f7b646f52f7b34eca0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Dec 19 18:45:46 2009 +0100
-
- NEWS and version update.
-
-commit 0225ea4eddb44bd9dd4f112e512325cbf80134d3
-Merge: 43c1cecc f2d7da74
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Dec 15 00:32:13 2009 +0100
-
- Merge branch 'ospf3' into new
-
-commit f2d7da742bd683b8eaecb1be8e3b04618171c796
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Dec 15 00:30:07 2009 +0100
-
- Fixes export of routes with link-local gw.
-
-commit 43c1ceccb9caf8c4f63f191346c2f33889b4ad22
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Dec 14 23:31:25 2009 +0100
-
- Remove bgp_as4_support variable.
-
-commit 13a7395704deeeff2d86910d8bcf9a6f32a7b207
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Dec 14 23:08:48 2009 +0100
-
- Minor doc update.
-
-commit f75747073e45c3129568c4936c2f34fa618db41e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Dec 14 21:17:15 2009 +0100
-
- Implements route reload for OSPF.
-
-commit 63542845dfb6d2277f93f77ad9ca3ad8bbaddd09
-Merge: 34a877cc 8a7fb885
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Dec 14 20:37:32 2009 +0100
-
- Merge branch 'dev' into ospf3
-
- Conflicts:
-
- proto/ospf/lsreq.c
- proto/ospf/lsupd.c
- proto/ospf/rt.c
-
-commit 34a877ccac25d38172716d3d2488449c870cad0b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Dec 14 17:29:33 2009 +0100
-
- Minor updates.
-
-commit 8a7fb8858fa87bce6f2f15ee2bbb77704b5fff4e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Dec 14 01:32:37 2009 +0100
-
- Finishes 'route reload' feature.
-
-commit 28008482a97c0ac70e648759fe37bad0633ed9f7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Dec 12 01:35:51 2009 +0100
-
- Minor fixes in OSPF.
-
-commit 8a70a13e7e79afa6818b10cf64d4f1ae4cf89e4b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Dec 11 01:20:53 2009 +0100
-
- Implements protocol-specific Router ID for OSPF.
-
- And fixes one minor bug.
-
-commit be2d38b7e977c1f72ed9cd52f8e3e85130c0aaa1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Dec 11 00:31:56 2009 +0100
-
- Temporary OSPFv3 commit.
-
-commit 9807690b413f3a1d29d064761cc99ed5261cfb58
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Dec 6 22:05:50 2009 +0100
-
- Fixes link-back check.
-
-commit b76aeb823446616b746b52b5c8152f4c5a73b242
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Dec 4 22:20:13 2009 +0100
-
- Fixes next hop handling.
-
-commit 98955023926734c7ecf79f9b8d004baff5225a78
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Dec 3 23:20:02 2009 +0100
-
- Fixes OSPFv2 build.
-
-commit bb3c7c6d22c48cd78b4c5b77a78ff1b92adca053
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Dec 3 18:56:39 2009 +0100
-
- Fixes some log messages.
-
-commit 69fbf9a25190e0149dcc31e830e952c586fe2024
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Dec 3 18:25:14 2009 +0100
-
- Minor fix in LSA update.
-
-commit a421ec33cb9029899122d0ab63bab0fa268348d2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Dec 2 22:22:40 2009 +0100
-
- Fixes silly bug.
-
-commit 11361a101517c2c87e3d35d2c63cacb3ddb97724
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Dec 2 22:19:47 2009 +0100
-
- Implements route re-feed.
-
- This can be used to re-feed routes to protocol after soft change in
- export filters.
-
-commit 11787b8473ae1685d43dad809592fabc64eb8f46
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Dec 2 17:26:16 2009 +0100
-
- Fixes some problems in pipes.
-
- For transparent pipes, loop detection works correctly now.
- Pipes are now more symmetric - in both directions filtering
- is done in do_rte_announce().
-
-commit e8b29bdc8dc34d4a0358458907a5d8ac29011d28
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Dec 2 14:33:34 2009 +0100
-
- Fixes one missing log message.
-
-commit 4b84bd4554b2a9331055bfd8d02a0bab0d10df92
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Nov 29 10:29:33 2009 +0100
-
- Fixes some crashes in OSPFv2.
-
-commit e4a810b0ce3d7904e87a210c44c36eda7cba7a3e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Nov 29 10:09:25 2009 +0100
-
- Temporary commit.
-
-commit a6250a7d1013442ad4feb0d67128a707f2c6880b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Nov 26 23:23:29 2009 +0100
-
- Fix -p option.
-
-commit bf47fe4b2e40ccfcfe6af2d86548d06cdf9739c5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Nov 26 20:47:59 2009 +0100
-
- Implements BGP route refresh.
-
-commit 5e6f568115511e2bcf43c60dfdcbd7a35cb04b93
-Merge: 069bfcb5 1f8be1e4
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 24 17:19:23 2009 +0100
-
- Merge commit 'origin/master' into dev
-
-commit 069bfcb53cef012c063a27e5af93d620be2917bd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 24 17:15:20 2009 +0100
-
- Fixes serious bug in core related to route filtering.
-
- If protocol announces a route, route is accepted by import filter to
- routing table, and later it announces replacement of that route that is
- rejected by import filter, old route remains in routing table.
-
-commit 717e4c4d8173a8dbae2956f1703ff6d4365a9d34
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 20 09:29:29 2009 +0100
-
- Fixes in the documentation.
-
-commit 1f8be1e46f666e79072cc5f800c2dba91788368b
-Author: Ondrej Filip <feela@trubka.network.cz>
-Date: Thu Nov 19 23:15:58 2009 +0100
-
- Added word 'IPv6' to underline, that this problem was not IPv4 related.
-
-commit 6a72a276f6a677a8adec9566867023d76ac7da7e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Nov 19 12:53:55 2009 +0100
-
- New version.
-
-commit a4644ed6ab32c098b755bdac03498634b2794409
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Nov 19 11:44:17 2009 +0100
-
- Implement option to exit after config file parsing.
-
-commit 3f9b7bfe9ff050430a5886b22a5ab11b5f253048
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Nov 18 20:32:36 2009 +0100
-
- Implements option that controls IPv6 BGP next hops when lladdr is missing.
-
-commit 62aa96caa28180f76c8aff0c49dd21128e396153
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 17 15:50:29 2009 +0100
-
- Adds some documentation to the description option.
-
-commit e04555c04545278cfe3aeae85d707b1d78e5abeb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 17 15:45:05 2009 +0100
-
- Implement description field of protocol.
-
-commit d0e2d6d1e05455cf1ec4e71135edaa659fe96dac
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 17 14:17:23 2009 +0100
-
- Show both IPv6 next hop addresses in BGP.
-
-commit 3228c72cc030f409914134440a7e55bbcfc9ff6a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 17 11:41:29 2009 +0100
-
- Implements RFC 5004 - prefer older external routes.
-
-commit cbf8b08d622695f360bcdd80d61eb4add967749e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 17 10:31:33 2009 +0100
-
- Temporary OSPFv3 devel commit
-
-commit 2eece54a04d95f534b935ccac4c3959b25516bd5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Nov 15 14:24:20 2009 +0100
-
- Fixes bug related to reconfiguration with bgp_path first/last operators.
-
-commit 653b4015f137d9590147f8774ec686031696f81c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 13 14:54:43 2009 +0100
-
- After shutdown, BIRD should have exit code 0.
-
-commit d3f36e5978e85a926c497e2aa2cbdf319776ebb5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 13 14:43:29 2009 +0100
-
- Fixes BIRD socket unlink.
-
-commit 4ac7c8341c660db654821ed2dc0273645dc19645
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Nov 9 23:22:53 2009 +0100
-
- Use IPv6 checksums in OSPFv3.
-
-commit 3f22fa9e74c8643d3e4f7e3a7b4f2aa992ad09f5
-Merge: a6bc04d5 b7c0e93e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Nov 9 22:54:39 2009 +0100
-
- Merge branch 'dev' into ospf3
-
-commit b7c0e93ebd40cdc4f6e89067a3e5f7293263c7f9
-Merge: 7965e17d f1f1e899
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Nov 2 16:27:17 2009 +0100
-
- Merge commit 'origin/master' into dev
-
-commit 7965e17d67e8e2e68d96a8471f4828c0dc0d0b21
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Nov 2 16:25:05 2009 +0100
-
- Fixes build in Debian GNU/kFreeBSD.
-
-commit f1f1e899b708e0e2ebaba46444fad650648ccb93
-Author: Ondrej 'Feela' Filip <feela@atrey.karlin.mff.cuni.cz>
-Date: Mon Nov 2 15:59:01 2009 +0100
-
- Version 1.1.5
-
-commit a6bc04d59130c49a1dbfadffa4285b11e2ff4939
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 29 23:57:42 2009 +0100
-
- Implements better checks on incoming packets and LSAs in OSPF.
-
-commit 9d4d38d1a5d67f5485d2b2fa439c879583dfdcb0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 28 22:39:24 2009 +0100
-
- Fixes some problems related to link-local routes in KRT interface.
-
-commit b5332824ea4108d62cb559205391fd2c530348e4
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 28 20:33:08 2009 +0100
-
- New version.
-
-commit e6ff7a08e4e7808e1175c3c3bc830d93c0454b19
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Oct 27 22:25:36 2009 +0100
-
- Replaces local endianity testing macro with the common one.
-
- That makes it easier to integrate BIRD to crosscompiling
- buildsystems.
-
-commit 9727681a38d3a7c474892e167c0e5a4e0cfac844
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 25 20:02:28 2009 +0100
-
- Implements proper handling of summary/external LSA IDs.
-
-commit bff74c7aa3ce4d407cb18b48c9df7b670c3c7a3d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Oct 20 19:04:28 2009 +0200
-
- Allows importing 'onlink' routes.
-
-commit 988992446d3aaaef9c19902d94cd1908a963fd80
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 15 11:57:25 2009 +0200
-
- Implement command to show LSA db.
-
-commit b66abe8ef986698caccd08b38a991330f0791075
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 15 00:28:04 2009 +0200
-
- Reimplements 'show ospf state' for OSPFv3 and fixes some bugs.
-
-commit 4cdd078453d585ac97a183ea1f3951d85f1b8784
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Oct 12 23:31:42 2009 +0200
-
- Implements protocol-specific router id and updates documentation.
-
-commit 52b9b2a1786140c38af03de570b0cc96c835c1d3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Oct 12 20:44:58 2009 +0200
-
- Rename as_path_get_last/as_path_get_first to be consistent.
-
-commit ea89da381fc682155e7d08d6ad3d4ac8aa5fe115
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 11 18:56:16 2009 +0200
-
- Workaround for stupid callback scheduler.
-
- There is no reak callback scheduler and previous behavior causes
- bad things during hard congestion (like BGP hold timeouts).
-
- Smart callback scheduler is still missing, but main loop was
- changed such that it first processes all tx callbacks (which
- are fast enough) (but max 4* per socket) + rx callbacks for CLI,
- and in the second phase it processes one rx callback per
- socket up to four sockets (as rx callback can be slow when
- there are too many protocols, because route redistribution
- is done synchronously inside rx callback). If there is event
- callback ready, second phase is skipped in 90% of iterations
- (to speed up CLI during congestion).
-
-commit 7ea5b00f42bd3d1fdafb0be349e3ebbcdf3ea466
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Oct 8 15:23:24 2009 +0100
-
- First and last accessors to as_paths.
-
-commit d82fc18d75e4ebf615657cb5d98f000c728b13e4
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 7 21:10:29 2009 +0100
-
- Implement proper LSA ID generation.
-
-commit 43c7a1ffa07dda2a9f37c046e1cd9a75242db2b7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Sep 30 18:48:38 2009 +0200
-
- New version.
-
-commit aa7088fe2646e53b5168f7ea4e5bd098f891951c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Sep 30 16:34:47 2009 +0200
-
- Fixes one previous commit.
-
-commit a5bf5f781cf921bd1e092b7f9ae6ccdbf7424428
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Sep 24 23:14:44 2009 +0200
-
- Show bad peer AS number in log in decimal.
-
-commit be6e39ebbf7ed107abde6fc1a18e8827ca47a7c1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Sep 24 22:12:11 2009 +0200
-
- Passive option.
-
-commit 2d507e64b7d7029906aac30dbea317795b5339de
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Sep 24 19:08:14 2009 +0200
-
- Do not allow gateway routes with NULL iface.
-
-commit 54fe0d9230be440d9f627ff7f94a202e6117e1b9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Sep 18 13:59:04 2009 +0200
-
- Fixes setting of IP addresses to route attributes (NEXT_HOP).
-
-commit db96fccb31bc0436ec182ff825f592d6c16dc930
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Sep 18 01:11:09 2009 +0200
-
- Fixes bug in filter rta copy-on-write.
-
- Filters should try to copy-on-write just cached rtas.
-
-commit 46eb80d5d50a2b284cae19444149d57d857a8e02
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Sep 17 17:52:36 2009 +0200
-
- Fixes headers for uintptr_t (and build on NetBSD).
-
-commit f4c6ca8c9c7ca7c0d481e6059396beed6adc768d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Sep 17 13:35:37 2009 +0200
-
- Fixes preference bounds.
-
-commit 0781e9c62cd34175eb4e3bc61ffe785d08538727
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Sep 17 12:40:02 2009 +0200
-
- Fixes preference in transparent pipes.
-
-commit 9f0ba7b1c7a0754c473b8ab202f572c9c8363285
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Sep 17 12:18:03 2009 +0200
-
- Implements proper RID handling in OSPFv3.
-
-commit 5eb4d0180ed92cee31d962fbc4d0175a7e1d5933
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Fri Sep 11 12:20:30 2009 +0200
-
- New release 1.1.3
-
-commit c15e569065e80f91b4c9c77b86640aac72aa0a47
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Sep 8 17:06:47 2009 +0200
-
- Make endianity swapping simpler.
-
-commit be862406627da3bd1facea9309b3f32e67422eab
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Sep 8 13:45:02 2009 +0200
-
- Temporary OSPFv3 development commit.
-
- Finally, it is working.
-
-commit 29bcd04e75a4d145bee500b8aef79052974b1981
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Sun Sep 6 21:26:46 2009 +0200
-
- Update of config.sub & config.guess
-
-commit daeeb8e982a3463f4a866e805b64f214d9f44160
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Sep 4 11:24:08 2009 +0200
-
- Clear memory allocated by ralloc().
-
- This also fixes bug that timer->recurrent was not cleared
- in tm_new() and unexpected recurrence of startup timer
- in BGP confused state machine and caused crash.
-
-commit f9c799a00e705b1420b214628c2bb2a30bf491d9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Sep 4 11:06:51 2009 +0200
-
- Temporary OSPFv3 development commit (changing multicast support).
-
-commit d2ceaf4ec82837239a35ace00399ce3aa845849e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Aug 28 13:45:43 2009 +0200
-
- Temporary OSPFv3 development commit
-
-commit 05198c12f48c9d4a65ee6d1d4117bd8067a71131
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Aug 27 19:01:04 2009 +0200
-
- Some cleanups.
-
-commit 061ab802a67cfc336785f6daeecdcbd4910734ed
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Aug 27 18:25:46 2009 +0200
-
- Temporary OSPFv3 development commit
-
-commit 949bd34e81ee99370decdabefa51c9c11ffe915b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 25 19:01:37 2009 +0200
-
- Fixes bug related to AS2->AS4 conversion.
-
-commit b49e6f5a65d437cb7e7bdefe8397e0f550496012
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 25 16:42:14 2009 +0200
-
- Temporary OSPFv3 development commit
-
-commit a0c405501fa6a0df8472f1598256e725cec753fd
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Sun Aug 23 23:04:59 2009 +0200
-
- Version 1.1.2
-
-commit d2f8d0a509d96d752c86f8807e7f6644467e5af5
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Sun Aug 23 23:03:31 2009 +0200
-
- Version 1.1.2
-
-commit 2ef58837dcb7b78edc193bc9ef1da316bba86998
-Merge: 86975e58 5516a66d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Aug 21 09:46:49 2009 +0200
-
- Merge commit 'origin/master' into dev
-
-commit 86975e584eeabbc4f3111f2d100f05ca00579d31
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Aug 21 09:43:31 2009 +0200
-
- Allow more kernel routing tables in IPv6.
-
-commit fee78355b480294f28c3c6814953297dca92d4a0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Aug 21 09:31:35 2009 +0200
-
- Fixes bug in eattr binary search.
-
-commit c3226991a061415fa83b757cbff678111c586e58
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Aug 21 09:27:52 2009 +0200
-
- Temporary OSPFv3 development commit
-
-commit 5516a66d492497ba8776212defb3117ed1dbfbf8
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Sun Aug 16 22:41:07 2009 +0200
-
- Ondrej Zajicek add to the team.
-
-commit 87d7fd9725ded186f6fa331d68a1e9df5d1982cf
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Sun Aug 16 22:36:41 2009 +0200
-
- Bugfix - each protocol can be compiled separately.
-
-commit c5be5a163c2a7b640cb3d0942de44ec87de0f25b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Aug 12 10:26:42 2009 +0200
-
- NEWS and version update.
-
-commit 9c46ad8e2fba592d28d19757d39bc090fc5b0d47
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Aug 12 10:16:32 2009 +0200
-
- Count number of lines (and not messages) in 'more'.
-
-commit c0973621bc1e06cb6176dc2dfd97bec637861edd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 11 15:49:56 2009 +0200
-
- Fixes another bug in rte_recalculate().
-
- Previous bugfix revealed another hidden bug here.
-
-commit ac07aacd2cdb5cf69a3bfdbc0e078cb0ae96c0db
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 11 11:03:37 2009 +0200
-
- Replace assert with log.
-
- Although it is true unless there is a bug in BIRD, this assert is not
- needed (code below does not require that assumption), so we should not
- crash.
-
-commit 024e633c16cf21ae94d7e023e057e59080f92175
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Aug 11 10:54:50 2009 +0200
-
- Fixes bug that caused losing of some routes.
-
- When update changes preferred route in such a way that
- it ceased to be preferred, the new route was linked
- to wrong place and lost.
-
-commit e75d3c74a8f665a6e7dc0cc743a68e980e7c10da
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 10 14:36:30 2009 +0200
-
- Flex does not need the output of Bison.
-
-commit ea9097eaad7dfccd5a88480d748781d947b25cc8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 10 14:13:28 2009 +0200
-
- Fixes parallel runs of Bison.
-
- Previous version of Makefile executed Bison two times (in parallel),
- because of two specified targets. I am not sure wheter this is the best
- fix.
-
- Previon
-
-commit f2cfc509960741bd587cf92f7d154d06fbb2c9a4
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 10 13:59:56 2009 +0200
-
- Compilation and dependency generation should be serialized.
-
-commit 581b59907ca5b79b44cc0654e57c34ab77883a96
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 10 13:57:08 2009 +0200
-
- Clean files generated by Bison and Flex.
-
-commit 5b1f877e6edfb3b541d444ae5b1ffd025dd9fbd6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 10 12:04:25 2009 +0200
-
- Fixes typo in Makefile
-
-commit b92c8e30191dd757c76239076eda82d0065f2348
-Merge: 54d70d3e 71a9574a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Aug 10 10:16:00 2009 +0200
-
- Merge branch 'master' into dev
-
-commit 71a9574a515613cded23b20f260a88784bcd4286
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Sun Aug 9 19:43:42 2009 +0200
-
- Makefile changed to make it work with 'make -jN' where N>1
-
-commit 0ac39033c7470f7301bb108f8e777c7ce6af273f
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Sun Aug 9 19:43:15 2009 +0200
-
- Missing dependency added.
-
-commit 0d328932be54a6756c6b43b0cd6d8d314a5b7fe2
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Thu Jul 30 18:39:41 2009 +0200
-
- Symbols PASSWORDS and BROADCAST not declared for OSPF
-
-commit 54d70d3ebb20c36f483cde9d7d5b877772d4884e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jul 23 22:21:17 2009 +0200
-
- Fixes compiler warning in OFFSETOF().
-
-commit 3aab39f589c352e30e9db92346b579dd561482b3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jul 23 16:51:28 2009 +0200
-
- Use %R in OSPF when appropriate.
-
-commit 2f6483cd312ffd7ef055099ce801fb8f437d9abe
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jul 23 16:06:25 2009 +0200
-
- Adds %R printf directive for Router ID.
-
-commit f0333f44a5a4bec9f3978a90cf7eda1b0a2ec151
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jul 15 01:47:29 2009 +0200
-
- Implements 'more' feature to birdc.
-
- Also does some code restructuring.
-
-commit 6baef17ecf1ed994cfc8038bc610e8b7ff88506a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jul 14 14:18:54 2009 +0200
-
- Fixes bug in CLI TX buffer management.
-
-commit 70670bf317a612a1700ffbd0dbc8d92614e0caf2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jul 9 15:42:39 2009 +0200
-
- Fixed bug related to reconfiguration of BGP with MD5 passwords.
-
-commit dd7b4a13848f5a92b403a563e8e27a3cbdfc937f
-Merge: d1abbeac bffd4c0b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 6 23:10:33 2009 +0200
-
- Merge branch 'master' into dev
-
-commit d1abbeacfb5a099418f53b583625ac97b1c62059
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jul 6 19:07:01 2009 +0200
-
- Fixes memory alignment problems on Sparc64.
-
- Not quite standard construction, i should add
- some autoconf macro.
-
- Not tested yet.
-
-commit 2389c46fe314867f99bbdfa1f6c9ff92d433d754
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jul 5 21:18:55 2009 +0200
-
- Another pile of ipa_from_u32() calls.
-
-commit b082c1bfcc53b10012a427aa3b4b8281fe2f496c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jul 5 20:26:51 2009 +0200
-
- Fixes OSPF on big-endians.
-
- Hmm, #ifdef is not very typo-safe.
-
-commit f9bdcad4694cf80690982dfc58d28f91216c8bd0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jul 5 19:01:54 2009 +0200
-
- Fixes type mismatch in OSPF printf statements.
-
- Mixing ip_addr and u32 does bad things on Ultrasparc.
- Although both have the same size. Fascinating.
- It was not catched by compiler because of varargs.
-
-commit bffd4c0b3900b28cfa84131752d44277866cb413
-Author: Ondrej Filip <feela@trubka.network.cz>
-Date: Sun Jun 28 10:03:24 2009 +0200
-
- Small typos.
-
-commit f1684ae6c05a52e1757c709dfbbedb5fc8ae1e07
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Sun Jun 28 09:43:29 2009 +0200
-
- New release 1.1.0!
-
-commit ef86b8465ff7d8e81038f37103594eb9c66d9c58
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Sat Jun 27 18:56:26 2009 +0200
-
- Unused file removed.
-
-commit 2d785e8d6a646a878c970583aa54a15209fa0e6e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jun 26 13:33:41 2009 +0200
-
- Fixes bug on TCP passive socket binding on BSD.
-
- BGP on BSD was bound to random port. I am surprised that
- nobody noticed it already.
-
-commit 5004d02cb9df1f3ee231632a8e89929f4eb4f088
-Merge: 1876e18d 99355da1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jun 26 01:06:12 2009 +0200
-
- Merge branch 'master' into dev
-
-commit 1876e18d32fa4b21888aae2c984b1b61338c3e60
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 25 15:44:43 2009 +0200
-
- Minor bugfix.
-
-commit 200ede8226a4173b2405bcd1c98cf20604c33545
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 25 14:42:25 2009 +0200
-
- NEWS and version update.
-
-commit d72cdff411d0bf4ddecaea5d0fc6d4341b4cb3f1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jun 23 11:08:30 2009 +0200
-
- Replace 'bind' option with 'listen' option.
-
- To be consistent with other daemons.
-
-commit da95a7a7dad6ebf572adfb448dfc1a5c8400e6ab
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jun 23 11:00:38 2009 +0200
-
- Fixes bug in ORIGIN check.
-
-commit 29c430f8569b90e1962d92a26f96fad7e72d27ec
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jun 23 10:50:57 2009 +0200
-
- Changes handling of AS_PATH_CONFED_* segments in AS_PATH.
-
- Although standard says that if we receive AS_PATH_CONFED_*
- (and we are not a part of a confederation) segment, we should
- drop session, nobody does that and it is unwise to do that.
-
- Now we drop session just in case that peer ASN is in
- AS_PATH_CONFED_* segment (to detect peer that considers BIRD
- as a part of its confederation).
-
-commit 4323099da9e6e8d53072595009731da9b39e9f19
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jun 20 00:59:32 2009 +0200
-
- Fixes bug in scheduling of callback by main loop.
-
- If other side of a socket is sending data faster than
- BIRD is processing, BIRD does not schedule any other
- callbacks (events, timers, rx/tx callbacks).
-
-commit 2757985709f0a132427d4f440ec913b6a0064f80
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jun 20 00:40:21 2009 +0200
-
- Documentation update
-
-commit bf1aec970e9ac0600266fe7a045847a62f18ac3b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jun 19 23:49:34 2009 +0200
-
- Adds support for soft reconfiguration.
-
-commit 789772ed4586213d6a7fbb867b9296a01ce1b9c0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 18 19:20:07 2009 +0200
-
- Implements option that changes BGP listening socket parametres.
-
-commit 1b3b3e34ecbc281a13d4ca0b99e891ee9c4d5cac
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 18 14:32:44 2009 +0200
-
- Minor bugfixes.
-
-commit 6f5603badc12dbbf440e8f85b1165cc8f5d671c7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 11 20:51:13 2009 +0200
-
- Documentation update.
-
-commit 386752028143e78d0a617216d86f95af4024346d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 11 17:25:38 2009 +0200
-
- Implements an option that allows to change a set of stub networks.
-
-commit 3d15dcdb1cc91c694aa9319b86bb37510d7ed12b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Jun 10 23:45:08 2009 +0200
-
- Changes OSPF to generate stub networks for non-primary addresses.
-
- Also does some reorganization in RT LSA announcement.
-
-commit b99d378698641b9821e4b708a90761aeb9bf6cc4
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jun 7 00:38:38 2009 +0200
-
- Minor BGP changes related to error wait time.
-
-commit 723826267101cfbb918125f0f270166cd309229d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jun 6 18:56:33 2009 +0200
-
- Fixes bug related to startup delay change.
-
-commit dd91e467657b2dba84df308d0dc74d268bbfa228
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Jun 6 18:16:22 2009 +0200
-
- Differentiate between error delay and connect/reconnect delay.
-
- The difference is here to reject incoming connections in the
- first case.
-
-commit 2a04b045e480bbf75229f0177abbd7f84d3b7089
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 4 13:38:18 2009 +0200
-
- Adds route limit documentation.
-
-commit 72b28a041df18f0da2e6a85360d6935c6a2db471
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 4 13:31:09 2009 +0200
-
- Implements import route limits.
-
-commit 925fe2d3de0e12c644f91f94d13bf388aeda9b57
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Jun 4 01:22:56 2009 +0200
-
- Implements route statistics and fixes some minor bugs.
-
-commit 99355da18f8598e93d0e55167582da9687eae082
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Tue Jun 2 12:01:24 2009 +0200
-
- Inlude DESTDIR in install to make life of packagers easier.
-
-commit 26978ec419217fccfbb8901033703ede886e78b7
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Tue Jun 2 11:36:07 2009 +0200
-
- Clean also ipv6 bird.ctl
-
-commit de8f238fdb85bdba8ce4b5988584403cf5dbcd1e
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Tue Jun 2 11:00:12 2009 +0200
-
- Error in test fixed.
-
-commit dc16584ac2be1c097acbf8a0b2f6d412214f2a01
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Tue Jun 2 00:28:08 2009 +0200
-
- Small change to make BIRD's IPv6 packaging easier
-
-commit c07c65d6d079eaf4525f03f5d126d51caa2595d6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jun 1 23:18:45 2009 +0200
-
- Escaped debbuging message removed.
-
-commit 92a72a4cbdd010f69e8d054019770e55a47637e0
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jun 1 19:32:41 2009 +0200
-
- Adds support for dynamic pair and bgp mask expressions.
-
-commit f429d4348275030a9f488046c4021aa377ad1a79
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jun 1 16:20:48 2009 +0200
-
- Removes some remnant of '|' bgp path separator.
-
-commit f98e2915794e8641f0704b22cbd9b574514f5b23
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jun 1 14:07:13 2009 +0200
-
- The pipe cleanup.
-
-commit 2d45e09f58c4ce857e10c241cf0e89b51b9ec49c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jun 1 12:10:10 2009 +0200
-
- Adds opaque/transparent pipe mode selection.
-
-commit 23ac9e9a9eefe13918ee7f21a1d0f271a44d9efd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 31 15:24:27 2009 +0200
-
- Changes pipes to transfer all routes between routing table, not just optimal routes.
-
-commit 23e563d86b412632644bdc4a886b0b7fb60e5175
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat May 30 00:35:35 2009 +0200
-
- Fixes buggy prefix ~ prefix matching.
-
-commit 9be1086d2970633fb5af2a1faaae16d5a1cf48ea
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Fri May 29 23:08:28 2009 +0200
-
- New type variable 'V' defined in filters. This type is checked
- only for name, never for value in function filter_same()
-
-commit 43de796b8a10f561d8b3ef64a86e5ce70de01eb5
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Fri May 29 23:04:54 2009 +0200
-
- Function pm_path_compare() checked just length of the bgpmasks
-
-commit d59405ec6652e95f4825492c7322536bb7044db0
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Fri May 29 23:02:36 2009 +0200
-
- Typo in warning fixed.
-
-commit 874b868544c3a6ba45ace062091cc3aee007b719
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 29 22:49:30 2009 +0200
-
- Implements primary address selection base on 'primary' option.
-
-commit 51f4469f03759642870a45634d9b53054e3deb92
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 29 17:36:37 2009 +0200
-
- Fixes problems with rewriting of kernel device routes.
-
-commit 6f68f066b63e992321ec1873a15c233f567b9aca
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 29 13:32:24 2009 +0200
-
- Add 'primary' configuration option.
-
-commit 7c3d06b087946cbea4affa4a814e72b7a3556833
-Merge: f571473e 4c2507da
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu May 28 13:58:51 2009 +0200
-
- Merge branch 'dev' into ospf
-
-commit a6c9f0648db56175ee9e077e2ca631b678552835
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Thu May 28 13:37:04 2009 +0200
-
- Missing boolean comparison added.
-
-commit 4c2507da687cdad1b9d147c1655e5ac46aaaa511
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Tue May 26 10:43:59 2009 +0200
-
- Warning for BSD system and TCP-MD5.
-
-commit 0c8c86c825f9cebf4c1d9f8d9cd57b2fad84d35b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon May 25 01:41:20 2009 +0200
-
- Adds INSTALL file.
-
-commit f571473ef3f78f6e38558d306d4d16ce7797e26c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 24 17:55:33 2009 +0200
-
- Hello packets on PTP networks should have zero netmask.
-
- This also ensures that misconfigured routers (one side
- ptp and one side broadcast) do not make adjacency.
-
-commit 8cc598a5205dbe46f5f249fa4f2de0586438965d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 24 17:51:27 2009 +0200
-
- Ignore Hello packets from different IP network (than primary).
-
-commit 050ceb867fbb96395c6f7d3207acbb5fe57b8d1c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 22 18:41:52 2009 +0200
-
- Update versions.
-
-commit 0c51083e97a4288219b29e82be65f399d085adee
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 22 18:08:54 2009 +0200
-
- NEWS update.
-
-commit ea2ae6dd0ae3f5dd8cd41c1e5a1170a163027725
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 22 17:12:15 2009 +0200
-
- Change import/preimport to export/preexport to be consistent with filters.
-
-commit d72a0ac2396471ffb2b3a580ee986f950e4d23ae
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 22 15:16:53 2009 +0200
-
- Fixes serious bug in route attribute handing.
-
- ea_same() sometimes returns true for different route attributes,
- which caused that hash table in BGP does not work correctly and
- some routes were sent with different attributes.
-
-commit 80f0d6764aa2c54eabdc1b41321a46e8cbcce2b9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 22 13:37:07 2009 +0200
-
- Fixes type mismatch on BSD systems.
-
-commit d0c64519e798132b73ae5769b9246acb77b4c5aa
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 22 01:13:07 2009 +0200
-
- Ugly hack for finding readline on NetBSD
-
-commit 8de11deb9107b0bcfc7bf3922ee7edff3dbcd73a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 22 00:26:30 2009 +0200
-
- Better checks for M4 in configure.
-
-commit 6c84554b671fce473fe333ab3d8b548a0768882b
-Merge: f434d191 4d176e14
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu May 21 09:26:59 2009 +0200
-
- Merge branch 'master' into dev
-
-commit f434d19174cb2d3054a00248ca609aa87bf8c263
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed May 13 22:04:44 2009 +0200
-
- Documentation updates
-
-commit 4d176e14509c71823a539b3c8b6103e254296d4f
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Mon May 11 02:01:11 2009 +0200
-
- 'show route protocol <p>' added to CLI.
-
-commit ef9c9ab9b64a6f3b5154e5340ffdcd1d211ec4c5
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Mon May 11 01:32:49 2009 +0200
-
- OpenBSD port related changes.
-
-commit dd8d2acd3c4ed7d7eb56ca9dbb7c9a6d43e2a869
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Sun May 10 19:23:05 2009 +0200
-
- Fixed bug in cli help.
-
-commit e755986a342b9a35cb7dd52e055066b1168aef12
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun May 10 13:15:17 2009 +0200
-
- Fixes in documentation.
-
-commit 19e10907c197ef123fafdd8a2783f9eb5f4a6f72
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri May 8 14:37:06 2009 +0200
-
- Fixes communication on netlink sockets
-
- Independent sessions on netlink sockets mixed state
- in some common variables.
-
-commit 20e94fb85b7097b57089e3912475ac881fd5528d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed May 6 22:02:45 2009 +0200
-
- A change in OSPF and RIP interface patterns.
-
- 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 ... };
-
-commit 10ab65a8c9eb846655feacd22c29747743a65328
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed May 6 15:18:52 2009 +0200
-
- Fixes one recently introduced IPv6 BGP compatibility problem.
-
-commit 2b70f0742e808053f87315433a2a64c749c3ec1d
-Author: Ondrej Filip <feela@mamlas.feela.net>
-Date: Mon May 4 18:17:46 2009 +0200
-
- Linux specific TCP-MD5 handling moved to sysdep/linux/sysio.h
- FreeBSD coded added. BSD cannot set BGP passwords itself.
- This has to be done by external command.
-
-commit 1bc4b2cc840eb3f48c7e245528ef79c2b0ba50e7
-Author: Ondrej Filip <feela@mamlas.feela.net>
-Date: Mon May 4 17:49:56 2009 +0200
-
- Syntax error fix for systems without CONFIG_SELF_CONSCIOUS (KRT_ALLOW_LEARN)
-
-commit b7a735ea9d14ceb5c31712fbe122b54f0d7ec6e7
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 29 22:17:40 2009 +0200
-
- Allow 'third party' BGP updates for originated routes.
-
-commit 4827b69ff43661f4f34d437999b0edaac76f7355
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 29 18:58:24 2009 +0200
-
- Fixes BGP IPv6 link local next hop handling.
-
- When sending 'third party' BGP update, Bird used bogus link local
- addresses instead of addresses it received before.
-
-commit ad440a570b37e8674ef35f3a18df48f0eb2579eb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 28 18:11:56 2009 +0200
-
- Fixes handling of 'next hop self' and 'source address' configuration
- options.
-
-commit a6ee026693a9c24c71dcf846abd32508782e0249
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Tue Apr 28 11:56:33 2009 +0200
-
- Typo in gendist script.
-
-commit f8fbda6fb0c30fdc6e5182679e7bf1eb2fb9c8e9
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Tue Apr 28 11:53:12 2009 +0200
-
- Small formatting typo in documentation.
-
-commit 73841442d916490fa6a9b5967dbb1f797ca3dac1
-Author: Ondrej Filip <feela@majklik.network.cz>
-Date: Tue Apr 28 10:20:50 2009 +0200
-
- Gendist script adapted to git.
-
-commit 11e0568f8b7a51584c7d0fa60368050dfba17193
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Apr 28 09:46:59 2009 +0200
-
- NEWS and version update
-
-commit 64cf11f544257cae443d899111be1299b1ec0684
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Apr 23 23:15:07 2009 +0200
-
- Fixes BGPv6 bug - missing endianity conversion.
-
- Also removes code skipping SNPAs
- (obsoleted by newer RFCs, should be ignored).
-
-commit f307842ad85396f8186fa049d551b6cde9925484
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Apr 23 14:44:02 2009 +0200
-
- Fixes BGPv6 bug - mandatory attributes weren't validated;
-
-commit 8f0c887a52fb19cee14725f66d435cebf2010390
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Apr 23 14:16:05 2009 +0200
-
- Fixe bug in BGPv6 that causes to send invalid network withdraws.
-
-commit b9539e78d8ebfa9e13d7b61ec9278b76abefdac3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Apr 23 12:36:24 2009 +0200
-
- Fixes bug in BGPv6 causing crash by checking missing attributes.
-
-commit e366625c0ef21d02caf2dab1935862ace1e10fed
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 17 18:43:11 2009 +0200
-
- Fixes mixed-up messages on netlink socket
-
- Under specific circumstances there might be two mixed-up
- netlink sessions (one for scan, the other for route change
- request). This patch separates netlink scans and requests
- to two fds (and seq counters).
-
- This should fix http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=428865
-
-commit c8a6b9a3d199444fd45879dd5cc5ececd9624822
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Apr 17 01:48:36 2009 +0200
-
- Rewrite of buggy AS path matching.
-
- Old AS path maching supposes thath AS number appears
- only once in AS path, but that is not true. It also
- contains some bugs related to AS path sets.
-
- New code does not use any assumptions about semantic
- structure of AS path. It is asymptotically slower than
- the old code, but on real paths it is not significant.
-
- It also allows '?' for matching one arbitrary AS number.
-
-commit 024c310b537abc3ddbac3054de71fd759d422824
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Apr 8 20:15:01 2009 +0200
-
- Fixes broken cryptographic authentication in OSPF
-
- Cryptographic authentication in OSPF is defective by
- design - there might be several packets independently
- sent to the network (for example HELLO, LSUPD and LSACK)
- where they might be reordered and that causes crypt.
- sequence number error.
-
- That can be workarounded by not incresing sequence number
- too often. Now we update it only when last packet was sent
- before at least one second. This can constitute a risk of
- replay attacks, but RFC supposes something similar (like time
- in seconds used as CSN).
-
-commit b722fe7ebdf7e11f097ed0a85302769de2ac10fb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Apr 6 16:53:06 2009 +0200
-
- Fixes bug in OSPF packet retransmission.
-
- If a DBDES packet from a master to a slave is lost, then the old code
- does not retransmit it and instead send a next one with the same
- sequence number. That leads to silent desynchronization of LSA
- databases.
-
-commit 8298d780be5a5b00c31c10a37a5f3a1353d6e234
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Apr 6 16:17:47 2009 +0200
-
- Better OSPF packet tracing log messages.
-
- Replaces old OSPF packet tracing messages with
- uniform messages with packet dumps.
-
-commit bcb81251b4e37b96743aa1cdf790f30ef41a465e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Mar 31 21:30:58 2009 +0200
-
- Documentation update
-
-commit c60cdd8c3926a1b3d9156327e8aae64986084ff4
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Mar 31 21:17:00 2009 +0200
-
- Cleanup changes
-
-commit b1a597e0c3821c791a41278454e74261cf1b95fb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Mar 31 12:55:57 2009 +0200
-
- Reimplementation of prefix sets.
-
- Prefix sets were broken beyond any repair and have to be reimplemented.
- They are reimplemented using a trie with bitmasks in nodes.
- There is also change in the interpretation of minus prefix pattern,
- but the old interpretation was already inconsistent with
- the documentation and broken.
-
- There is also some bugfixes in filter code related to set variables.
-
-commit 1733d080c9f60de69e843f22e138f27240a8176c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Mar 25 19:15:26 2009 +0100
-
- Minor text updates.
-
-commit 40b65f947aed065c03c5f2d5c66c6c794a5aadda
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Mar 25 19:05:52 2009 +0100
-
- Fixes bug in pipe route filtering.
-
- Routes comming through pipe from primary to secondary table were
- filtered by both EXPORT and IMPORT filters, but they should be
- only filtered by EXPORT filters.
-
-commit 4d7d0cb137b700a17751b5a565539357304f9080
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Mar 25 18:29:17 2009 +0100
-
- Fixes minor bug in pipe.
-
- Missing macro leads to not calling some of protocol's
- callbacks.
-
-commit 3d574679b8cceb1362bb973e7dfe9981fc93b79b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Mar 20 12:58:21 2009 +0100
-
- Fix bugs related to kernel table synchronization.
-
- KRF_INSTALLED flag was not cleared during reconfiguration
- that lead to not removing routes during reconfigure when
- export rules changed.
-
- We also should not try to remove routes we didi not installed,
- on Linux this leads to warnings (as kernel checks route source
- field and do not allow to remove non-bird routes) but we should
- not rely on it.
-
-commit 48d79d521cc13f11eafa129a4216512403b83115
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Mar 18 20:30:21 2009 +0100
-
- Better handling of AS4 optional attribute errors
-
- AS4 optional attribute errors were handled by session
- drop (according to BGP RFC). This patch implements
- error handling according to new BGP AS4 draft (*)
- - ignoring invalid AS4 optional attributes.
-
- (*) http://www.ietf.org/internet-drafts/draft-chen-rfc4893bis-02.txt
-
-commit eb875dbbe1afaceaf3645384f2a35c98b4c5b5f6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Mar 14 22:18:49 2009 +0100
-
- Documentation fixes.
-
-commit ad586334d51a0aef9de868e9586198e402576599
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Mar 14 14:01:39 2009 +0100
-
- Path related documentation update
-
-commit cf1860349182503523975fb8084d514407a75fb4
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Mar 14 12:43:10 2009 +0100
-
- New syntax for bgp_path
-
-commit f16ad72ed76c398f081b97b09d56f4b199822464
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Mar 13 14:19:03 2009 +0100
-
- Update NEWS
-
-commit e8ba557c7f66aaf02dd24f554fba8b3607c2b3d5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Mar 13 12:49:44 2009 +0100
-
- Update capability handshake options
-
- Add 'capabilities' option, change default behavior to advertise ipv4,
- add some checks and ignore incoming capabilities when capabilities
- are disabled.
-
-commit e3299ab14877de6ce688050e550c44cd4e85b212
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Mar 5 11:52:47 2009 +0100
-
- Added Cisco and Quagga capability workaround option.
-
-commit 82a79586e5810af2f0338cb4c5982e085b5c5292
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Feb 27 15:24:46 2009 +0100
-
- Better handling of too long attributes
-
- This patch extends the length for attributes from 1024 to 2048
- (because both AS_PATH and AS4_PATH attributes take 2+4 B per AS).
-
- If there is not enough space for attributes, Bird skips that
- route group. Old behavior (skipping remaining attributes)
- leads to skipping required attributes and session drop.
-
-commit cb5303927188de9504a6e18aedec299956a22b6f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 26 14:23:54 2009 +0100
-
- Rate limit for most abundant log messages
-
-commit a9dc5e1ef2fd08c53bceb54690f6dac83ddf0c81
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Feb 25 16:28:21 2009 +0100
-
- Fixes another bug in packet retransmissions.
-
- When slave was in full state, it didn't retransmit
- lost packets. That leads to OSPF connection locked
- in states loading-full.
-
-commit 82ba9032be9cf1210ffffd01245b99ce5d9b6b1b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 21 22:46:50 2009 +0100
-
- Fixes crash during some expressions
-
- Bird crashed when 'bgp_path.len' was used for routes that does
- not came from BGP.
-
-commit cd17c651a60c30837b683f8ca6e07139dc57d882
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 21 17:47:56 2009 +0100
-
- Add format for BGP_AGGREGATOR attribute
-
-commit 25cb9f1d0165df5e86956021cc3e6ee87730ef3b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Feb 21 16:20:45 2009 +0100
-
- Fix bug in empty bgp mask handling
-
-commit e312bb4014d5b4ccc706c737f4362ac6ca1046ee
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 12 21:53:44 2009 +0100
-
- Documentation update
-
-commit d901db3fb72860d4669793bfb1af3a9aa7a27b91
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 12 19:46:51 2009 +0100
-
- Fixes bug in packet retransmissions.
-
- When packet was lost during dbdes exchange, slave did not retransmit
- it. That leads to OSPF connection locked in states exchange-exstart.
-
-commit b807ef9a15db2a5db14f68011923975dfc472f49
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 12 13:43:06 2009 +0100
-
- Fixes bug in protocol state machine
-
- Scheduling flush must be done before resource pool freeing as it
- frees some allocated list nodes from a global list.
-
-commit 80ac7dc18145baa04a05eee3a69d325087cb9472
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Feb 12 13:41:34 2009 +0100
-
- Do not use ? for client-side help when in new BGP path syntax
-
-commit f9491630390da4de138961354433635729668b7d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jan 27 17:35:00 2009 +0100
-
- New syntax for bgp_path
-
-commit 11ec0f1a5171c556dec09e90c20af12f45a6d902
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jan 16 12:49:51 2009 +0100
-
- Fixes compilation on older systems.
-
- Older kernel headers (the ones in Debian Sarge) does not
- have __kernel_sockaddr_storage .
-
-commit e3c460bc9034b30743dd861ddbdbc026cd2997b5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jan 16 12:08:07 2009 +0100
-
- Fixes some past config grammar update that caused password related regression.
-
-commit 3b108f18e8c151d9c570fd418fc822c1e9ad5e79
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Jan 16 10:58:52 2009 +0100
-
- One null-pointer dereference bugfix hidden in whitespace changes
-
-commit 0dd7ccc7669834495c637f5055f2cd783367f8f9
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jan 13 19:25:27 2009 +0100
-
- Fix typo.
-
-commit 0844b65d13d7a5928d425e9adaf28de63550a542
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Jan 13 19:15:49 2009 +0100
-
- Fix OSPF protocol error recovery behavior.
-
- 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.
-
-commit f15cb99c79034fbd98d90b104bd6267e6c2fec81
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jan 12 23:42:51 2009 +0100
-
- Add check detecting packet overwrite in TX buffer.
-
-commit 02a9eeeb8547b3f0940a0295df8a78ce2181ec30
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Jan 12 14:40:21 2009 +0100
-
- Slist update
-
-commit 23d6702952841184d364a5520dbe6be7a1a5d14b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jan 11 12:14:27 2009 +0100
-
- Some fixes and update of OSPF debug messages
-
-commit 0e9617e400d54f6f5119a24e7380b7719c2fc3dd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jan 11 10:51:54 2009 +0100
-
- Move check for NULL before usage of variable.
-
-commit f20907adf60960f63b797f4423b4790e8591e99c
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Jan 11 10:47:41 2009 +0100
-
- Fixes bug in OSPF
-
- Checksum was not recalculated when LSA was changed and
- packets with bad checksum were sent.
-
-commit 330aecead80140b0016d6de56dad1d193be774c8
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Dec 25 17:49:57 2008 +0100
-
- Bugfix in interpret
-
- Missing cases in filter code interpret leads to crash
- when bgp_next_hop attr was queried.
-
-commit 083c43e22efb5353a258827a9e6f2f995cfe822d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Dec 25 11:55:27 2008 +0100
-
- fixes some 64-bit related bugs.
-
- 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.
-
-commit 165a62272720071ca5e9ed1badfddc78b7a7af10
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Dec 24 17:24:41 2008 +0100
-
- Adds support for fallback to capabilityless BGP connect
-
- When capability related error is received, next connect will be
- without capabilities. Also cease error subcodes descriptions
- (according to [RFC4486]) are added.
-
-commit 591211557f4106ed9e877fa9b80eb56ffb99fef3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Dec 24 12:18:10 2008 +0100
-
- Fixes bug related to reconfiguration of BGP.
-
- 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.
-
-commit 11b32d911715cbfb3ce4c87685b1388e4b0de1c4
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Dec 19 01:34:39 2008 +0100
-
- Major changes to BGP
-
- 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.
-
-commit b933281ed5efb9ad9375c3ea41ee2412b9f89c15
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Dec 18 23:26:08 2008 +0100
-
- Fixes nasty bug in event processing.
-
- 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 :-) .
-
-commit 35164c501722f07beef21178b19090fa9d1930cd
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Dec 12 17:48:03 2008 +0100
-
- rx_hook may be cleaned in some callback so we check it before
- executing sk_read().
-
-commit d6a836f8d673a117fd19136d24e98fa9bbc4b27e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Dec 8 12:24:55 2008 +0100
-
- Fixes core state machine.
-
- 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?
-
-commit fbde6c39084637c2f3f4d31261a44dbf367958d1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Nov 22 01:12:22 2008 +0100
-
- Fixes race condition leading to memory corruption and crash.
-
- 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.
-
-commit 35f983f88912eadb1e0b25d800693256cbee33ce
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 21 18:17:03 2008 +0100
-
- Fixes segfault with multiple routing tables.
-
-commit 661ec5db7fa047d883997d0b2cbdd71659f80777
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 21 13:05:12 2008 +0100
-
- I am not sure whether this is proper fix for a problem that birdc
- 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.
-
-commit eac21b46f7cf0f704c976f2ffdb289837ad100cc
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 21 13:01:05 2008 +0100
-
- This is bug, isn't it?
-
-commit e00115904ff7c1854957117d52a6db484050965b
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 21 12:59:03 2008 +0100
-
- birdc died during terminal resize because of unhandled EINTR
- in select loop.
-
-commit 44711e0ca2658da080e04ce7e208a78c9b20e927
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Nov 16 22:16:04 2008 +0100
-
- Fix some bugs in filter interpret.
-
-commit ebacaf6f7b4418dd283fd3e39b84e48e331a6a66
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Nov 16 11:35:30 2008 +0100
-
- Fix bug in AS path matching
-
-commit 258d0ad4ca550895a1ef20fc478c0160be5374f2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 14 23:03:15 2008 +0100
-
- Fixes feeding of new protocol, only preferred routes are announced.
-
-commit 3f670371cfeef155256a8a77ac5581accee13b05
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 14 21:13:56 2008 +0100
-
- OSPF routes appeared with random value of ospf_tag attribute.
- This patch fixes it.
-
-commit e29fa06ece1bf9f9a47f224db797df940556136e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Fri Nov 14 14:50:37 2008 +0100
-
- New read-only route attribute 'proto' added. It returns a string
- 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*"
-
-commit aebe06b40ce730a88cc8a3121be1944b3ddf5765
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Nov 8 23:33:22 2008 +0100
-
- Proper format functions for ORIGINATOR_ID, CLUSTER_LIST
-
-commit b21f68b4cd4794c84e5f0eb2c34204c87ccf0e9a
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Nov 8 17:24:23 2008 +0100
-
- Fix bugs in OSPF MD5 authentication. First bug is that default
- 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.
-
-commit 08cca48a149bd6d5210659daf220b6dae87a43b3
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Thu Nov 6 19:13:55 2008 +0100
-
- Uprava configure
-
-commit fd91ae3325adfdc83f95a284caa746c000ad7e30
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Nov 5 22:36:49 2008 +0100
-
- Fix problem with local time changes.
-
-commit 1389f3699fc643dac6fd4d2f19fb59da3624a2fa
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Nov 5 21:39:04 2008 +0100
-
- Fixes bugs in IPv6 code caused by recent commits.
-
-commit baa9ef18c62612bd91a8362ef20427046105c113
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 4 14:52:47 2008 +0100
-
- These warnings are so abundant (because char * / byte * mix) that they
- are completely useless.
-
-commit 6c8102e3a8bf8ae4c15d383f0bd31294dd2ef76e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Nov 4 14:51:45 2008 +0100
-
- Ignore messages related to wireless extensions.
-
-commit a39b165e45fbfea053fd0237e0d5a3ebdcf40f78
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Nov 1 16:58:40 2008 +0100
-
- Multihop BGP was completely broken, because listening socket has always
- ttl 1.
-
-commit a92fe607173b52cf28256f00399953c623788c35
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sat Nov 1 12:55:43 2008 +0100
-
- Implementation of route server.
-
-commit e16466b379be2b94c84b351a69e63b6de5be9dc5
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Wed Oct 29 14:16:34 2008 +0100
-
- Fix race condition that breaks BGP connections after reconfigure.
-
- 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.
-
-commit f0ad56f4414fef2781339cfa41704f7bf4c61ad2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Tue Oct 28 16:10:42 2008 +0100
-
- Fixes some sloppiness of commit a3b70dc499b64f41aa776b5b4afee5c7bfb8dfa6.
-
-commit a98fbf0f12b5e83e25afa0f585ca6a4d4ac5f6bf
-Merge: a3b70dc4 1567edea
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Oct 27 00:20:22 2008 +0100
-
- Merge branch 'dev' into out
-
-commit a3b70dc499b64f41aa776b5b4afee5c7bfb8dfa6
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Mon Oct 27 00:03:30 2008 +0100
-
- Two new informative CLI commands for OSPF.
-
- 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.
-
-commit 68fa95cfec78f1bfe790949bf747d578ad583ec2
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 26 23:55:38 2008 +0100
-
- Check of socket name length
-
-commit 52586ccdf17cd9f34f767718d97f8a258da5efdb
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 26 23:53:05 2008 +0100
-
- Missing newline.
-
-commit a97122a3caff40bf35e6019a9b60d5e5ef35a84f
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 26 23:43:13 2008 +0100
-
- Bugfix in LSA origination for PTP OSPF links.
-
- 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.
-
-commit 4c94a6c7e78fb75a9952d891db9d47605f8a26e1
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 26 23:23:09 2008 +0100
-
- Do not repeat 'Invalid broadcast address' error message.
-
- 'Invalid broadcast address' error is reported only once for
- an interface and not during every interface scan.
-
-commit d7f3b306495327e76aa9ae381c6c7575104e0e24
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 26 23:20:50 2008 +0100
-
- Ignore unknown netlink events.
-
- 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.
-
-commit 1567edea8d3da7da08092eef15bb3bd4544c6464
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 26 23:09:46 2008 +0100
-
- Bugfix for routing table breaking bug.
-
- 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.
-
-commit b6bf284a905412cfe107b4967e55649e6194187e
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 26 22:59:21 2008 +0100
-
- Bugfixes in MULIT_EXIT_DISC attribute handling.
-
- - 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.
-
-commit 4819c3e17ac22c6810ee80261ac3bffb5127e39d
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 26 22:54:23 2008 +0100
-
- Bugfix in LOCAL_PREF attribute handling.
-
-commit 1adc17b4b57267e301fcd67309494bbbddbfa718
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 26 22:52:21 2008 +0100
-
- Update of a documentation - new options for AS4, MD5 auth and route reflection.
-
-commit ba5ed6f3e4eb4b2899cdad08e2edb99063bfbcee
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 26 22:48:02 2008 +0100
-
- Implementation of an option for disabling AS4 support per BGP instance.
-
-commit 4847a894bf7d4852325c3f1ea4bb4890054a1f66
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 26 22:45:09 2008 +0100
-
- Implementation of route reflection for BGP
-
-commit d51aa2819005a03e4cfb6f62333be6ccadfb3c06
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 26 22:42:39 2008 +0100
-
- Implementation of MD5 authentication of BGP sessions.
-
-commit 11cb620266035ffbe17b21c4a174380cb8b6a521
-Author: Ondrej Zajicek <santiago@crfreenet.org>
-Date: Sun Oct 26 22:36:08 2008 +0100
-
- Implementation of 4B ASN support for BGP
-
-commit 44cb1449edec6a80e063981a955e8025ee87ea65
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Oct 26 14:14:37 2008 +0100
-
- The top-level Makefile is a generated file, so remove it from the repo.
-
-commit c94d56cb04b15dc32f54e8e39b877a92d7bda8c5
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Oct 26 14:11:06 2008 +0100
-
- Updated version number in the README.
-
-commit 226cb2bc3ff573c4c027d525a96aa2b10a28b817
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Aug 25 12:51:06 2008 +0000
-
- Expand ospf dump information.
-
-commit 97c6fa02e089e3fb057185fe5937297afc5a11ec
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Aug 25 12:06:20 2008 +0000
-
- Previous patch reverted. :-(
-
-commit 73e53eb555a58846c4d2db6464d41d1761a60169
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Aug 25 12:00:55 2008 +0000
-
- Endianity problem in debug message fix.
-
-commit 030e3a79cb9376fa85597fdb8243299cd843ca3a
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Aug 25 11:57:46 2008 +0000
-
- Buffer overflow fix.
-
-commit 057021df0d699f9c21368ab0fa51fe821cc9a544
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Aug 25 11:19:49 2008 +0000
-
- Fix behavior of ipa_opposite().
-
- It was giving wrong results on /30 networks.
-
-commit 6c36c4b66be5c67a8d5cfa9578aa5a85ebebab6d
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Aug 25 11:14:14 2008 +0000
-
- Updated config.{guess,sub} to a recent version.
-
- Patch from the Debian package.
-
-commit 3c3271d9fce8cdd614f1d1b24bcebb3599aad930
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Aug 24 23:24:14 2008 +0000
-
- Close fd of config file after reconfiguration.
-
-commit 85ae398a61184d8f7a353eacaa6aefd3422dfd71
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Aug 24 23:20:46 2008 +0000
-
- The source address configuration in BGP added.
-
-commit a456788bce7f9d1e54b19ffbfd35b8fa889c4b47
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 20 12:32:39 2007 +0000
-
- New version of flex needs argument separated.
-
-commit 8411a37e7dc72a5fd2e4fb68d1c557dc89253973
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 20 07:33:26 2007 +0000
-
- Detach from the TTY properly.
-
-commit 4b1cf69e765b19ebc0cb988be08910c156c76376
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Mar 16 16:09:28 2005 +0000
-
- Again back to regina.gin.cz.
-
-commit c81b4ec36105ff036a7e2423936ab5773011fed1
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Mar 16 16:08:40 2005 +0000
-
- Yes, we will go for 1.0.12
-
-commit f39e3bfdbff318b3a889f42acfb589e9dfd34c2f
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Mar 15 23:42:41 2005 +0000
-
- Small bugfix in tracing.
-
-commit 94c42054ea65d10477afc76f221e3ac345a431eb
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Mar 15 22:06:36 2005 +0000
-
- Added new parametr 'rx buffer <num>'. BIRD is able to receive
- very large packets (if configured).
-
-commit e6ea2e375e4c547ca1b6fc9c313c2b7940acbd77
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Mar 15 20:51:33 2005 +0000
-
- Maximal packet size in virtual links is 576.
-
-commit e300066d5f66b8bd1d5561d63c10a8fbdce3ba8e
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Mar 14 11:24:56 2005 +0000
-
- OSPF can accept larger packets than MTU.
-
-commit 427e59939bc72c79f1566167b337927b14cb1715
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Mar 14 11:07:10 2005 +0000
-
- Look for large packets.
-
-commit a2d5b405d41c212993e47d47607df3b708254c97
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Mar 14 10:59:52 2005 +0000
-
- Bugfix in external routes calculation.
-
-commit f735de0290ce9a8f119f3d72bdde5a16dafe27ad
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Feb 21 14:06:22 2005 +0000
-
- Small typos in documentation.
-
-commit 129e912924b7726166b9ff5925a9dff84ee511f9
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Feb 21 10:22:57 2005 +0000
-
- Ftp server change.
-
-commit 89478fe3ab6d07b824adbd4c8ed997ccaca5c7b4
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Feb 21 10:04:37 2005 +0000
-
- Change of ftp servers.
-
-commit 39fc85b4c63582b56c4f96de49d0c6aad03c4086
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 20 19:03:34 2005 +0000
-
- Unused code deleted.
-
-commit 63ca37f3139505a1881bf2c343f18d4ed8e22ce4
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 20 18:56:06 2005 +0000
-
- Cleanup - all unused variables deleted.
-
-commit efc9e1b78b9332a0a8dfce31f1ef8efc82edc63d
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 20 17:04:00 2005 +0000
-
- Some tasks are fulfilled. :-)
-
-commit 52d61a84989cc40140e7e8b5fc294ac48d4e0245
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 20 16:54:09 2005 +0000
-
- Intelligent reconfiguration should work again.
-
-commit dafaef9ba9e7b46b9ff42b2cb75954a86f920951
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 20 16:53:06 2005 +0000
-
- Originate default route into stub areas.
-
-commit 028a4cfc02f425de34323082d800a39b7bbc51de
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 20 04:28:55 2005 +0000
-
- Let's go for 1.0.11.
-
-commit d8c7d9e8846f025e42227c64e992a3a52ca7dfb4
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 20 04:27:56 2005 +0000
-
- Since now I can also use 'dead interval', not just 'dead counter'.
-
-commit 7de7470a2a6c649ce4d4ce52146e84e6638ebf58
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 20 03:37:47 2005 +0000
-
- Bugfix - count courrectly next hop on single hop virtual link.
-
-commit 6eb4b73fe829cf5da56d8990c33e5c7edaa19d77
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 20 03:30:44 2005 +0000
-
- Time of neighbor's dead was not shown correctly.
-
-commit 5506c82ce6123f70220f2d84ff21269bb832bfac
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Feb 18 19:36:32 2005 +0000
-
- Bugfix in previous bugfix.
-
-commit 60e04f041303fdafd0abf0dec003a9745345c68a
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Feb 18 18:51:42 2005 +0000
-
- Minor bugfix: Summary LSA for aggregated area was always propagated with
- metric = 1. Now it's metric of most distant component.
-
-commit 27a1e3ac35bd3f6a9b5161eafb5b8178162a37f8
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Feb 15 16:17:42 2005 +0000
-
- Minor bugfixes in routing table calsulation.
-
-commit 8ffc753441cd58acf46783de335062ed9af7a12e
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Feb 15 06:32:31 2005 +0000
-
- Minor changes to keep gcc happy.
-
-commit c025b85273178bc7c129bf54e420a91c775a9340
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Feb 14 23:15:04 2005 +0000
-
- Real write is only in sk_maybe_write. Previous change partially reverted.
- Thank you MJ.
-
-commit 2eef9e887ad82976476ea81aa3a25d97c3956b87
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Feb 14 21:34:46 2005 +0000
-
- Be more verbose in log.
-
-commit 7c49f715593ad7bbe0a4fb86284e2023f7b65bc1
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Feb 14 21:28:51 2005 +0000
-
- Added s->err_hook wrapper that empties socket.
-
-commit 030d3b387edae4a30fb524ed839be020b7b8df8e
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Feb 14 11:58:46 2005 +0000
-
- Small changed to reduce the number of warnings.
-
-commit b181f444a6538b03a02296f02928e3c131b251a6
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Feb 14 11:54:16 2005 +0000
-
- Small changes to reduce number of warnings.
-
-commit 75c1c585197f2b4a1b0295d36fe16a4869c21914
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Feb 14 11:37:40 2005 +0000
-
- Yes, I'd like to go to 1.0.10
-
-commit 5d3f555234d7144272e3081665411d098280d5ad
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Feb 13 23:36:31 2005 +0000
-
- Many bugfixes in routing table calculation and summary LSA origination.
-
-commit 0d3effcf8ca3784c36ce6229343ddfd754e405dc
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Feb 12 22:27:55 2005 +0000
-
- Time added in password management.
-
-commit 89ba9a18068dc83557e03c58bf280f4dc203271d
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Feb 12 22:22:18 2005 +0000
-
- Bugfix in inter-area route calculation and summary LSA origination.
- Bugfix of some debugging commands.
-
-commit bae7c43ff35482807654519253b1daa0a6518951
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Feb 12 22:19:46 2005 +0000
-
- Bugfix in password acceptance
-
-commit 9912fa51c8dabbbdf068d271ee7bddfb4a8526ef
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Feb 12 22:18:48 2005 +0000
-
- Bugfix - cost of interface can be larger than 0xffff
-
-commit 4991756863538cc5168cc5f10b2599c84eafd8bf
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Sep 15 19:33:01 2004 +0000
-
- Dont check netmask field on PTP links.
-
-commit 8910351c76af983411e09e04aff86ea5d9940cf1
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Sep 8 16:06:07 2004 +0000
-
- sort from GNU coreutils 5.2.1 doesn't accept the +- syntax
- anymore. Hopefully the -k syntax is supported by all other
- sort versions
-
-commit c6dce04bed40959b331a5b79aadd11c3b34d4af5
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Sep 8 16:04:02 2004 +0000
-
- Bugfix.
-
-commit 27e3e5e0c95b068111bf00d7dceb473dc77a93f2
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Aug 19 09:15:36 2004 +0000
-
- Do not forget to propagate LDFLAGS from configure. Allows static linking,
- among other things.
-
-commit 7715f9d9edb2cd5a230424881b1d5ec4e842738a
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Aug 10 17:47:32 2004 +0000
-
- Bugfix in config.y
-
-commit 56e2a4b776b0d013f71bff9fbf8550442c11df91
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Aug 5 18:06:30 2004 +0000
-
- Bugfix in OSPF - BIRD sometimes failed during rt calculation with VLINKs.
-
-commit 6236beab1ec5ba61487c418119e01a933e1cacee
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Aug 2 22:38:43 2004 +0000
-
- Some more TODOs for OSPF.
-
-commit 8d94a524b637dbb1513c23daefa8411dcdc9a054
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jul 16 08:27:11 2004 +0000
-
- Added handling of STUB bool.
-
-commit 73089070e6e5c94ffac2da4c9e267ae9bcda2164
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jul 16 08:01:32 2004 +0000
-
- Typo.
-
-commit 002ecc063845243613eb1ff40c3aa2a46c7013a1
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jul 16 07:22:43 2004 +0000
-
- Bugfix - bird needed double ';' after rfc1583compat.
-
-commit 4e9742bb597225d7cefc0ee08270f76db29b65f1
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jul 15 19:46:52 2004 +0000
-
- Added note about *BSD.
-
-commit 6b68de07d9a4f1ad122e46dc40c6cdfd8b06ae4b
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jul 15 17:58:07 2004 +0000
-
- News update to 1.0.9.
-
-commit 004cf4fc0ced85dba570173f372c51b1bf71dafe
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jul 15 17:28:13 2004 +0000
-
- Minor bugfix to compile bird in IPv6.
-
-commit b37bb5ce03aed03d8b1bb0346f3277a93ff76da4
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jul 15 16:48:12 2004 +0000
-
- Minor bugfix - add interface routes.
-
-commit 28e8d862b7952419e6050230cf154d244a5bae51
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jul 15 16:42:06 2004 +0000
-
- Minor bugfix in calculation of external routes.
-
-commit 86c84d76b706e77ec5977a3c9e300b0fca9f6b10
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jul 15 16:37:52 2004 +0000
-
- Huge OSPF database redesign. Since now, all LSAs of all areas
- are in single database. This avoids duplication of external LSAs and
- fixes bug in external LSA distribution.
-
-commit 777acf91bb0d8ca0f33f367ae5fa00f46dde5a9a
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jul 14 21:47:39 2004 +0000
-
- Everything is tested and works. I thins it's right time to go to 1.0.9.
-
-commit 3b16080c97a2d89c90f7df7a8fda0401ec9abe42
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jul 14 21:46:20 2004 +0000
-
- Multiple OSPF areas can be attached.
- Origination of summary LSA works.
- Routing table calculation works.
- Virtual links works.
-
- Well, I hope, OSPF is fully compatible with RFC2328!!!!
-
-commit a417ad13a117d2458702cbec4aa418ba99981611
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jul 13 23:42:14 2004 +0000
-
- Send hello just after interface is up.
- This makes the adjacency forming faster.
- Minor code clean up.
-
-commit 897999c22a85499e4e8a476e27469201645012fb
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jul 13 23:31:37 2004 +0000
-
- Send hello as soon as possible after the interface is up.
- This helps to faster establish the adjacency.
-
-commit 490767adfce6207012f54f004babcb2aef7f33f8
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jul 13 22:10:14 2004 +0000
-
- Add more reasonable options to LSAs. (But it seems, that it's ignored.)
-
-commit fe1489e6c13a405b0c76c36213af4017dd4ea2ec
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jul 13 22:04:57 2004 +0000
-
- Bugfix: Router was unable to advertise AS external routes.
-
-commit 62eee82321a9a0451eea9b41a478444ceb87ecb0
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jul 13 21:27:33 2004 +0000
-
- Default tick = 1. The today's CPU is fast enough.
-
-commit 35fdf4b6a2c3d8ad11be3a7d2525d653237fa3bf
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jul 13 21:22:32 2004 +0000
-
- Don't inform us about every ospf_age()
-
-commit 16c2d48d8fe10521fd493886cf245c75d843fc69
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jul 13 20:53:56 2004 +0000
-
- Bugfix - RIP now updates routes with worse metric.
-
-commit bc956fcab678f591137cba2a0ebe80c0812437db
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jul 13 14:46:14 2004 +0000
-
- MD5 authentication in OSPF works. :-)
-
-commit 32d3228d864cb6af8c679a7742f4b0a71c2facc0
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jul 13 13:52:54 2004 +0000
-
- Bugfix in simple authentification.
-
-commit 12dd8dc8779c13889a6860b769df7e0d68e7764c
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jul 13 12:21:24 2004 +0000
-
- Bugfix - nasty bug in router LSA origination - Router did not describe all interfaces.
-
-commit 621ccdfe5acd2889956ec0f8e96b812acd09f168
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jul 13 11:58:50 2004 +0000
-
- Bugfix - options bits were not included in LSAs
- Bugfix - E bit was not unset on stub areas.
-
-commit 9baece57d308d9e0d8eaab9d068471e1884817b8
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jul 8 16:56:49 2004 +0000
-
- Syntax bugfix.
-
-commit 69b27ed6fd7794d36852764319e4dad19d4b6f87
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jul 1 15:01:44 2004 +0000
-
- Length calculation bugfix.
-
-commit 02ad2737fd24573d870a5009a624c9b3c49aa176
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jul 1 15:01:26 2004 +0000
-
- Password WALK_LIST bugfix.
-
-commit bc4ea680cea9eca46cd2c5f41db91c3014f90167
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jul 1 15:01:04 2004 +0000
-
- Hello reading bugfix.
-
-commit ea357b8b6de387a55930a3fc831b8ccbcef24582
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Jun 26 22:52:39 2004 +0000
-
- Update of the documentation. (passwords and md5).
- Option for md5 auth in config.
-
-commit 3e2bd0f17aab3d2bd460d5f7aef4d3bc152ea1ab
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Jun 26 20:15:34 2004 +0000
-
- Md5 authentification added (unsested).
- Packet receiving clean up.
-
-commit 5236fb03afecd3d7a6ec6e96712c79a31be32132
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Jun 26 20:11:14 2004 +0000
-
- Password management redesigned (untested).
-
-commit 98ac61766d81d9f20c4a7c7e12859c3b82b24f4c
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 25 16:39:53 2004 +0000
-
- A lot of changes:
- - metric is 3 byte long now
- - summary lsa originating
- - more OSPF areas possible
- - virtual links
- - better E1/E2 routes handling
- - some bug fixes..
-
- I have to do:
- - md5 auth (last mandatory item from rfc2328)
- - !!!!DEBUG!!!!! (mainly virtual link system has probably a lot of bugs)
- - 2328 appendig E
-
-commit 5ed68e46d781f8a14d3ef3ffd7fe3afc4a62260e
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 23 23:59:48 2004 +0000
-
- Small typo changes.
-
-commit 973cf09c3b311691d063a00f52be7e9b8bdec376
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 23 21:36:55 2004 +0000
-
- Hotfix to problem with metric change reported by Luca.
-
-commit 3fe5f8990764b33cc0245317e90fbbcd0cde84de
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 23 21:34:26 2004 +0000
-
- P->magic used just in LOCAL_DEBUG mode
-
-commit 09e4117cc19dd94efbdad6edde9bc7d715a58a9a
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 18 12:54:53 2004 +0000
-
- sk_write bugfix for BSD.
-
-commit b4d8a0c280d34e6164a88d0e2f9ebf16fd5a1d68
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 16 23:01:49 2004 +0000
-
- Some cisco routers send shorter ospf messages in larger packets.
- Well it's strange, but, actually it's correct.
-
-commit 1a61882d370e6aef99ebc11d6bbc4e9dc48c6b95
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 11 09:36:50 2004 +0000
-
- Better routing table calculation. We are ready to work with
- multiple OSPF areas.
-
-commit b1f7229ad7d0b10fcc1fde6645c8b8ebbb3644a6
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 11 09:34:48 2004 +0000
-
- Better adjacency building, some minor bugfixes.
-
-commit 9a4b87905d727a518af04c16b8d7b603404098b7
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 11 09:06:08 2004 +0000
-
- Deleted RTS_OSPF_BOUNDARY
-
-commit 8bf684eca2de6ffd9ba797cad485e36db0b9548f
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 11 09:05:06 2004 +0000
-
- RTS_OSPF_BONDARY is nonsense, RTS_OSPF_IA must have smaller id than RTS_OSPF_EXT
-
-commit 7df86c25fc6c871795265faebe02bf4dcecdd190
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 9 12:39:49 2004 +0000
-
- Better checking of configuration.
-
-commit b7e9c74cba36ed6932dbc30a4b9b0b9f9a06dba5
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 7 16:51:23 2004 +0000
-
- Used parameter can be marked as unused. :-) Thanx MJ.
-
-commit e02652a7d2e1f9bb599dbf9fa5862f03f4188efa
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 7 16:42:48 2004 +0000
-
- Bugfix in RT calculation.
-
-commit 6721e2862bf69d3af7dd643cd9f442b76e134d5b
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 7 14:38:35 2004 +0000
-
- Build and run both IPv4 and IPv6.
-
-commit ff61673427370c71d0a5f2d0d838f00ff46bbda1
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 7 14:37:29 2004 +0000
-
- Delete automate*cache.
-
-commit bf1b1b605b26202466f58b0572db5918acf8cf22
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 7 13:07:12 2004 +0000
-
- Let's go for release.
-
-commit 541cbe97633281b273ade8045b77834a5b6a1db4
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 7 12:52:32 2004 +0000
-
- It was too verbose.
-
-commit c90ac711bc5d1989dcb093088c74d062b43e9914
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 7 10:42:24 2004 +0000
-
- Cleanup in show route import <p>.
-
-commit 282997f21e6d40c840433128b198a19e9fdf41fb
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 7 10:00:29 2004 +0000
-
- Some new warnings eliminated.
-
-commit 19d9e3033661b49cd4e4771166c45db2f1f24805
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 7 09:52:15 2004 +0000
-
- Marked unused parameters as unused.
-
-commit fb257e43fc23f9e0455444ef67c4be0dae22a713
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 7 09:09:14 2004 +0000
-
- Deleted some unused code.
-
-commit 5e3436d20ffdd95a164ffcb82f584fad76fb94e7
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 6 19:53:52 2004 +0000
-
- Cleanup in packet.c. Deleted unused parameters.
-
-commit d5d9693ce90c190ca7358b4ac71b9d034603a3ae
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 6 18:45:08 2004 +0000
-
- Deleted unused parameters.
-
-commit e677d04aeb19e26da30e6a3ae94ad6e183d7af8e
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 6 17:20:16 2004 +0000
-
- RPM is now able to build IPv4 and IPv6 bird.
-
-commit 41c8976e29bbf2986b063d1a8c5c8b386fae500e
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 6 17:05:25 2004 +0000
-
- Test old instance of BIRD.
-
-commit cd09226078471cf9a2db4e755fbd5f6f137137c9
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 6 17:03:56 2004 +0000
-
- Be sure, that ospf_area is aged before routing table calculation.
-
-commit 933bfdde2a0bc4e31e74a3f9e03174b0287c03fb
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 6 16:14:57 2004 +0000
-
- Keep al lSAs invalidated.
-
-commit 54a2178fd4c16189e7e0140c0a885b2cd6d2025e
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 6 16:05:14 2004 +0000
-
- TODO updated.
-
-commit b8f17cf1923ff5894b6689479f7fb7d008b8ce44
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 6 16:00:09 2004 +0000
-
- Small cleanup, indentation and preparation for multiple areas routing table calculation.
-
-commit d631698ec8a63270f7ca9bc069508d1313a08f92
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 6 14:27:11 2004 +0000
-
- Indentation.
-
-commit d8d553cadfecab2a2f3d8a69624b5a743bd97ce3
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 6 14:25:55 2004 +0000
-
- This warning is stupid.
-
-commit 2e10a170fe70e405b5d6cb2cb53cd9a15de25b73
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 6 09:37:54 2004 +0000
-
- Indentation.
-
-commit 66261211a9c9abd5e1591f0875d16da1e3975fcb
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 6 09:13:37 2004 +0000
-
- Struct area_net changed.
-
-commit b9ed99f738c10c0576a9ab8a70b028a92d0d74a7
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 6 08:55:33 2004 +0000
-
- Cleanup in iface.c
-
-commit a5918961f3a62c55857f811f712f861fa3d35d4f
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 6 08:12:42 2004 +0000
-
- Be more verbose in troubles.
-
-commit 66004c91a89479abd3df89404afff62c5d60d4c3
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Jun 5 15:02:52 2004 +0000
-
- Set size of the buffers. (Thanx MJ.)
-
-commit 9831e5916f6956377739f948869d377b091f5c92
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:58:23 2004 +0000
-
- Staticized lots of local functions.
-
-commit 598b984d1f04ea71fc04bc89f390f230a3960680
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:58:06 2004 +0000
-
- One less unused variable.
-
-commit 2f6de49f8c4d9c7ebd12554d386037e5b063beda
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:57:49 2004 +0000
-
- Better prototypes.
-
-commit 54c411f6afeafb88649c565d252ab0245266eeee
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:57:35 2004 +0000
-
- Add more warnings if --enable-warnings is turned on. (probably requires
- gcc-3.0 or newer, but I hope it's OK)
-
-commit 189dab54a211d2d92148d2aae7130df3a080e7c8
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:29:38 2004 +0000
-
- `defaut' should be `default'.
-
-commit 1512813e95a7edd2fad2834221dc1cb79aab6406
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:28:17 2004 +0000
-
- ... and a whole bunch of unused parameters and variables in ospf.
-
-commit c91fc9b6064e988e7526ecedd6b9e25f0204c4b7
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:27:49 2004 +0000
-
- ... and in rip (there are even unused functions!).
-
-commit 662faa4afc4d2f29bb884d0c7ad0aca9fc7de7c9
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:27:35 2004 +0000
-
- ... in pipe.
-
-commit e21423bab8a7cfc1cf5d13ab77ebebfae8ce156e
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:27:17 2004 +0000
-
- ... in BGP.
-
-commit fab37e81971a08b550c6d63ff11f0bf34f0a9aa2
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:27:02 2004 +0000
-
- One more in the library.
-
-commit 6ecd20605c62e91069ecd014374836d8392ae948
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:26:55 2004 +0000
-
- ... and in the filter.
-
-commit d7390312d4e322e0dac3fefddd6033cb255933a4
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:26:48 2004 +0000
-
- Unused parameters in the client.
-
-commit 6578a60493f9dbf83d6485ac99635094bef2af7d
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:11:07 2004 +0000
-
- Marked unused parameters in sysdep code as such.
-
-commit 7c103b1ee17a274fa062fcf4b14234b48db8123a
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:10:56 2004 +0000
-
- Marked unused parameters in core code as such.
-
-commit e98bc2ea9b957287e78bc51e3293fc48a49c26b2
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:05:12 2004 +0000
-
- Renamed log() to log_msg(), but still keeping the old name as a macro.
- This is done to avoid clashes with gcc-3.3 which has built-in logarithms :)
-
-commit 5da8f82feb14512725e09664f6db96f03e3ece8f
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 09:01:12 2004 +0000
-
- A better comment.
-
-commit c33d4cad9fbfb0b2a4b3ee699943d9955bcd9e3e
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 08:59:17 2004 +0000
-
- Moved the tests for socket existence here.
-
- BTW, where do you exactly set the new buffer sizes?
-
-commit 4da25acb0ab964826f133025493a9b80d8bef509
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 5 08:56:43 2004 +0000
-
- Cleaned up sk_reallocate() and friends.
- Also, removed the `if (s)' test, because I believe that as the whole
- socket interface doesn't accent NULL pointers, sk_reallocate() shouldn't
- be the only exception.
-
-commit c6bdc78befaf5ae9e5e3c58a8df1301d5cafd4e7
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 21:19:47 2004 +0000
-
- Be more verbose.
-
-commit 6f3203fabf30b0e5ca7d41b4550efbc5df0b421a
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 21:05:43 2004 +0000
-
- cleanup in lsupd.c, indenting, "struct proto" removed...
-
-commit 9b7de4c4d13a5701aac446627672e65fce9e1a9d
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 20:41:02 2004 +0000
-
- 'struct proto' removed
- Finally, I found the bug reported by Andreas Steinmetz. FIXED.
-
-commit 54467ed46b31e29215e50d32b0a757998de29793
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 19:53:36 2004 +0000
-
- Useless logs removed.
-
-commit 551e30886d7ed156d3fe98cc9562ffa2c22e4ce3
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 19:21:19 2004 +0000
-
- Bugfix in last patch.
-
-commit e7ef86a58cc5393ba764606b0ee6d760e6164f0c
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 18:51:29 2004 +0000
-
- OSPF is ready for changing MTU.
-
-commit f158bb710b8be65b626f54399c8a5db8df9bd7b6
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 18:24:15 2004 +0000
-
- no comment
-
-commit 12bed559ffaccc7093188722899e4ac85521777e
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 17:49:25 2004 +0000
-
- dbdes indent an minor changes.
-
-commit 85305e5d8f7137dc5ce4572d72e80ad186792b37
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 17:32:38 2004 +0000
-
- typo in README
-
-commit 874654076a9e3d2c36a248b3d3a4066dff76276b
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 17:31:03 2004 +0000
-
- better log() usage.
-
-commit 27f49a2c3c2a86b4822ff1980d751666ed8cee97
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 17:28:41 2004 +0000
-
- lsreq.c indented and small 'struct proto' changes.
-
-commit 77539c4471d4b3f19347d2efc99680f815e1c78a
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 17:12:27 2004 +0000
-
- hello.* reindented, code cleanup.
-
-commit 8e15e048f2e14dcdd9915860feace487e4ae07d5
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 17:05:24 2004 +0000
-
- Deleted useles "struct proto" sending.
-
-commit 7a03e29d5c7ff07c907ed0d4c4f1c226eba5941d
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 16:56:54 2004 +0000
-
- Better log() usage.
-
-commit fb9bf6888c75adb88e5a8818161b89b207cf1f9f
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 16:55:53 2004 +0000
-
- Indented. No other change.
-
-commit c76ba51a5fc7d61e18213f99d9c09502af0bc192
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 16:30:04 2004 +0000
-
- lsack.c cleaned. Better names for functions and
- DIRECT acks can be sent in one packet now.
-
-commit 28de5133ecdcb5b45dc251123047164fbb940e50
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 15:45:35 2004 +0000
-
- ackd_timer_hook moded to neighbor.c
-
-commit d03e8ce00b8fea374bbc06a4eb5254e911557e83
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 15:26:46 2004 +0000
-
- Fatal bug found. Sometimes BIRD did not originate router LSA. FIXED. :-)
-
-commit b90f9c526e553f1c30b9b177fc72c382ab333fc7
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 14:23:58 2004 +0000
-
- Initialize iterator on the right place.
-
-commit 18b40a40726bf6ec03e496a068faa8d173c27dd8
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 14:23:21 2004 +0000
-
- This can happen now.
-
-commit f9fdabe4f68685e6244e88524b2526958c56e44d
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 14:22:30 2004 +0000
-
- Small reversing of previous patch.
-
-commit 3df1e80464ce5e6cea1b9a9500d1adbfe59cd564
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 14:21:08 2004 +0000
-
- Don't repeat "Sheduling rt calc....."
-
-commit d6c28f3ada7d2da8e762a1ed8e4fb70dfce2ca6f
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 14:03:30 2004 +0000
-
- Code and comments cleanup.
-
-commit 39e517d47c6070dd81bb7d6f57358ea98e462f03
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 4 12:53:10 2004 +0000
-
- hello.c and hello.h cleaned up. No design changes.
-
-commit 591656cdd5b13a4626dfb26e45dd02690cdb450c
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 3 08:18:49 2004 +0000
-
- Added source addr for multicast socket.
-
-commit 7d72aadb8acfac16e9b637e6ebb5ce288ebf1d77
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 3 08:18:14 2004 +0000
-
- CONFIG_SKIP_MC_BIND added.
- BSD hates it, Linux needs it.
-
-commit cb4dd4e2f78f806438bfb8163b783ac7b2f43b2d
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 2 15:14:49 2004 +0000
-
- Deleted useless rfree. (Socked was freed by cli_free())
-
-commit 9b133458891724da2fd22f2a16ae19376e225ca0
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 2 09:14:03 2004 +0000
-
- Hotfix for router's parent without nexthop.
- It will probably work perfect, but I need to eliminate such situation.
-
-commit f9625e9acabbdc5834f528e6fe1b87b8f4ce4968
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 14:06:25 2004 +0000
-
- Bugfix in external routes calculation.
-
-commit 7048461df113b335b9cfc56c517bc5802ef7b6c8
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 13:58:39 2004 +0000
-
- Code clean up.
-
-commit e8bf6c0766dba95c4b7ebb8b29dad31392f212b7
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 13:44:53 2004 +0000
-
- Easier cleanup of an interface.
-
-commit c9f6cf8a05aba6a79bfb57120ca48adcf8e3949d
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 13:29:08 2004 +0000
-
- Don't free socket's resources.
-
-commit 035f6acbfec1e06a207217ae81153b67ced995f3
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 13:12:10 2004 +0000
-
- Patch from Andreas Steinmetz <ast@domdv.de>
-
-commit 8281ff201e1eebe35cb8e7716565361bed77a6cd
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 12:57:13 2004 +0000
-
- Reverting last patch.
-
-commit 77772dbc6555dfb9aa76c812bcd1792ab503cbe1
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 10:55:10 2004 +0000
-
- Caching loopback interface.
-
-commit a8bb459a3f8769501726ef25e696ea127014383f
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 10:53:30 2004 +0000
-
- log->DBG
-
-commit 1554cc02826794007c113bc336ed574bb771343f
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 10:45:28 2004 +0000
-
- Minor changes caused by MJ's comment.
-
-commit b613b9928bdb1df3bd541d318d7f9c1bf492dfbc
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 10:32:02 2004 +0000
-
- #ifdef CONFIG_UNIX_DONTROUTE added.
-
-commit 7fdd338c3600aa4e7a0ae3d5ce270b5a1f8ccc0c
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 10:28:25 2004 +0000
-
- ALIGN -> BIRD_ALIGN
-
-commit 22122d4d4c43c2c64a37aae597b4d439a6bfa268
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 10:10:09 2004 +0000
-
- Now, only one AC_OUTPUT is used.
-
-commit 402a9fa78a9849dbbefcbea81cd9cf7c8ab87c22
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 09:10:11 2004 +0000
-
- Useles log()s deleted.
-
-commit e85bd57a0e106c7ae3fc44dccf9bac89e2f9939e
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 09:07:16 2004 +0000
-
- bzero has 2 arguments.
-
-commit b88a1d4040df6bcd49eefe1c2c1ba8fa66ad0d43
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 08:59:47 2004 +0000
-
- memset -> bzero
-
-commit fa643be1cc6973923a46ac52a20ccec2ec5e3f18
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 22:24:42 2004 +0000
-
- Updated the distribution script.
-
-commit bb68ad2fd34dc6ab8723ae1c9c37f9dc19ed85ea
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 22:22:21 2004 +0000
-
- Documented the pxlen parameter.
-
-commit 3810eccf6bc5af413d883fd298d59e0d7bdb96ea
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 22:16:54 2004 +0000
-
- Added a simple utility for converting CVS log messages to a reasonable
- changelog format.
-
-commit ea0ac8f69aec4eff8109eb3d74cc0ca5a330fa58
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 22:00:18 2004 +0000
-
- Move CLI socket to the newly created CLI's pool.
-
- (thanks to Andreas for the original idea)
-
-commit 38a608c55af7654f23c9a16129ab6211aac3b7ab
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 21:48:19 2004 +0000
-
- Rewritten the I/O loop. All socket operations are now safe, meaning that
- you can delete the socket from anywhere in the hooks and nothing should break.
- Also, the receive/transmit buffers are now regular xmalloc()'ed buffers,
- not separate resources which would need shuffling around between pools.
-
- sk_close() is gone, use rfree() instead.
-
-commit 206f59dfa8e59e32f4aef12dacb0804581b9f602
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 21:02:09 2004 +0000
-
- Added UNUSED.
-
-commit 6a57bb311018570b6ee7beccafd2075108e346cb
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 20:57:38 2004 +0000
-
- Killed a couple of unused variables.
-
- We really should compile with warnings enabled.
-
-commit d83faf8dc441259183d87c6669e76e4addc61b21
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 20:53:22 2004 +0000
-
- static declarations don't belong to includes. (And most of them were
- redundant anyway.)
-
-commit 7deffd845a0f2bfe4cebbb01e0505314af32693a
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 20:51:45 2004 +0000
-
- Need <termios.h> for tcdrain().
-
-commit 9f387e11a319ea55104c6e8362f9820bf1b00097
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 20:49:11 2004 +0000
-
- Make the check for <linux/rtnetlink.h> work with recent libc's.
-
-commit 0757bcb728c8bd56fa03ea296862d62e05f6ba09
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 20:35:19 2004 +0000
-
- One space more.
-
-commit 2cc37815ae1f194c5a0c51e5761377caea9cc164
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 18:47:19 2004 +0000
-
- Added rmove() (by Andreas, tweaked by me).
-
-commit 0077aab4f9041e4d05d2d6916edfb0e15738cb37
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 18:16:42 2004 +0000
-
- The code was broken for external /29 to /32 routes. Assuming that you
- have one machine publishing a route to 10.1.1.3/32 and another one
- publishing a route to 10.1.1.4/32. If the first machine went down the
- route to 10.1.1.4/32 was wrongly killed by the old code, leading either
- to missing routes or worse to bug()s like "Router parent does not have
- next hop" or just segfaults. The patch fixes this but in the long term a
- redesign is required here. Note that the patch doesn't worse the
- situation, instead it prevents the problems stated. The redesign is
- required to handle multiple routes to small subnets properly.
-
- (by Andreas)
-
- Feela, I think that this is at least a good temporary fix, but it's
- of course up to you to decide.
-
-commit 4ef3dccfa112faddf79fed76a539353b705702b5
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 18:13:14 2004 +0000
-
- The OSPF authentication type was sent in host byte order instead of of
- network byte order thus breaking interoperability with other routing
- daemons on litte endian machines. The patch fixes this but note that
- this breaks compatability with older bird installations using OSPF and
- password authentication
-
- (Andreas)
-
-commit 3cb96cd343196baabf847f5d670711162e66e298
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 18:11:16 2004 +0000
-
- The initial sequence number for RIP md5 authentication was always zero.
- Bad as when bird e.g. was running for two weeks and then restarted it
- would take another two weeks until the peers of this router would accept
- data again from this router, as the sequence number would be too low.
- Changed to use the the current system time as the starting sequence
- number which is a more sane start value.
-
- (by Andreas, cleaned up by me)
-
-commit 277a34eff195fe39a63db59731f5f2c8d54abdb2
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 18:08:50 2004 +0000
-
- Small correction to va_start/va_end in cli_printf (va_end was missing).
-
- (Andreas)
-
-commit 5f2a6a9ff324d846c86ffafb60ae5a4c01d06313
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 17:55:30 2004 +0000
-
- Fix handling on full pipe to client in bird. Prevent packet overflows
- for even only medium sized route table output. Fix a strange garbled
- output problem in the client. The latter seems to be caused by some
- library doing tcflush while there is still command output pending. So
- the best fix here is to do fflush and then tcdrain. Note that this
- problem occurs only under certain load situations and is not too easy to
- reproduce.
-
- (by Andreas)
-
-commit a4ffe2739d1a3efb45f209b63b2b6faa558e43a9
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 17:53:02 2004 +0000
-
- Bird's control socket should be in /var/run and the convention for
- --localstatedir is /var. The control socket pathname creation is thus
- corrected here.
-
- (Andreas)
-
-commit 03e3d184b2d8fac4c82408b1ac1738cb7af5680e
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 17:44:39 2004 +0000
-
- Fix bison input for current build tools, otherwise bison or the compiler
- will abort the build.
-
- (by Andreas)
-
-commit 4a02013767ab05b9cf7567c09e5fad59c9bd1c10
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 17:42:38 2004 +0000
-
- Make RIP nolisten mode actually work. The socket is required for
- sending, the received data has to be discarded instead.
-
- (patch by Andreas Steinmetz modified by me)
-
-commit 1bd897dd33a49bd03f661e84687f8bba25af2983
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 17:27:21 2004 +0000
-
- Changed of comments.
-
-commit 10af3676ea4268452776acd7b06a95c72d71f2e0
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 17:16:47 2004 +0000
-
- Grrr, committing too fast.
- #include "alloca.h" -> #include "lib/alloca.h"
-
-commit 7dbd4fd332bb614db858944da86b29c86d9b1d81
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 17:13:58 2004 +0000
-
- alloca.h added
-
-commit 0e6eef620d4b838fc558711cd2d5572ec7a576c2
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 17:07:05 2004 +0000
-
- Use #include "alloca.h"
-
-commit c222500d8e098f0504405724b56676a2efc0861f
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 17:00:22 2004 +0000
-
- Previous change was mistake.
-
-commit 6f18235aad187ed9e2afbb166b34c5cc3765b430
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 16:42:12 2004 +0000
-
- Useless include deleted.
-
-commit f54fa9e15dce42b8c80b7ea95ab2653cc5be4e4e
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 16:10:01 2004 +0000
-
- Updated copyright notices.
-
- Also testing whether syncmail works.
-
-commit 73219ecfecbf2851e1a3b6c4a1084b2eaa6d159c
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 15:13:56 2004 +0000
-
- Delete autom4te.cache in 'make distclean'.
-
-commit 6de62923120c1dba8461aed8aed95eff433fcf4a
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 15:08:29 2004 +0000
-
- Better readline checking.
-
-commit 012279f395a7cb87a3085b6c4674777da7ee9661
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 13:59:03 2004 +0000
-
- Some include added.
-
-commit d93fb7e6b9a1d2964bc926ca9ed7ab11f5003c1d
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 13:58:38 2004 +0000
-
- #ifndef ALIGN - it is defined on *BSD
-
-commit a60277b9997a891fdc5d62e07ac96885c009f531
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 13:35:06 2004 +0000
-
- Added RTD_NONE /* Just for internal use */
-
-commit 0c745adc8003ac816be15e2246fa4685e127d120
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 13:34:20 2004 +0000
-
- #ifdef ALLOCA_H
-
-commit bd62eeca27aba7da34a65a8f039d1b011115ddca
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 13:32:58 2004 +0000
-
- Small change to compile client on FreeBSD.
-
-commit b1a1fabac70201e9b05aeb9fd6af703f0fbffdb4
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 13:25:00 2004 +0000
-
- *BSD port added. (Tested on FreeBSD and NetBSD)
-
-commit 781aa475aaa7503d4a86f0d4b8771cd027d30c04
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 13:22:49 2004 +0000
-
- Minor bug fix in neighbor state machine.
-
-commit de259a41e3175d4080d5a33a39f0279308a25b56
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 10:38:44 2004 +0000
-
- Minor bug in configuration.
-
-commit 7cb37e6fd2d9fb5723d6f680d0e064e4ba9c6091
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 10:26:18 2004 +0000
-
- Added some more test (alloca.h, sa_len) etc.
- Add AC_OUTPUT before AC_OUTPUT_COMMANDS
-
-commit caeb02ea19b8b3b04bc9705d5270954bfc21cab6
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 19 12:30:58 2004 +0000
-
- Bug in DBDES receiving fixed.
-
-commit 502ded521508a402910b2bf8f23f2e34f79f91cb
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Dec 6 16:41:11 2003 +0000
-
- Fix reporting of RIP socket errors. Thanks to Eric Leblond for the patch.
-
-commit 37299f1e442f5ca23fd9124d9645096c5a6f7536
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Sep 30 17:05:55 2003 +0000
-
- OSPF was not able to be built stand-alone.
-
-commit 00bd27a1cc8eee6df626a7441cc548e82bf42c4c
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Sep 14 13:41:24 2003 +0000
-
- Endianity problem fixed. Thanx to Sörös József
-
-commit 35a86ceb4082d8d31e6949f8d454eaa28c498a86
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Sep 3 17:31:23 2003 +0000
-
- This prevents infinite loop when bird has more that 60 neighbors. Thanks to Rani Assaf
-
-commit bf135bcb1feca7b9ee35342c239ed3a66415d854
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Sep 1 08:46:07 2003 +0000
-
- Prepared for release 1.0.8.
-
-commit c11007bc423188872d37e277fe4637094a40d90f
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Aug 26 10:41:02 2003 +0000
-
- Endian-related bug fixes sent by Krzysztof Szuster <kszuster@polbox.com>
-
-commit 1d1a3c1c2a72ef91b785f5ed08ca5ab3f001b14e
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Aug 23 10:47:46 2003 +0000
-
- Minor OSPF changes for faster startup.
-
-commit baa5dd6ccc14eb6bc43fad37a2bfe88ad190c0fa
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Aug 23 10:42:41 2003 +0000
-
- Many spelling mistakes fixed.
-
- Thanks you Harry Moyes.
-
-commit c197d44e1790ab1738cf9e438c2c91bd74e9b94e
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Aug 13 22:07:55 2003 +0000
-
- This probably IS the memory leak we're looking for. Alien routes weren't
- correctly disposed of.
-
-commit 13b75bacf7221eb655dcbed54e3c3605bea5169e
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Aug 13 20:04:39 2003 +0000
-
- protocol->import_control() could potentially call rte_cow() as well.
- AFAIK it doesn't happen in any of our protocol, but better be sure.
-
-commit 2adab6ae9cc586871a8854e51452839cb1dd1db0
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Aug 13 19:31:22 2003 +0000
-
- This was a potential memory leak, but not the one Feela observed.
-
- This one could happen when an import filter of some protocol modified
- the rte (so that it would be rte_cow()ed) and later rejected it.
-
-commit b77834b3f41e551adc045d23f387533d428349ae
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Apr 6 21:36:35 2003 +0000
-
- Slept for a year :-)
-
-commit c153ee91373438095ae6ec18e2dfb9f334d2dfe6
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Apr 6 19:52:22 2003 +0000
-
- Nobody is perfect. Me twice :)
-
-commit 8edd56bded8ffc7fabbce690133892de6dcd5f62
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Apr 6 19:49:17 2003 +0000
-
- Oops, forgot to change some paths.
-
-commit d02b7a738eb94d031b106319f3af259717c80fe0
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Apr 6 19:49:02 2003 +0000
-
- More news.
-
-commit f2c642e0e5c266f8b955cfa5aec785c3f96c5ed5
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Apr 6 19:46:42 2003 +0000
-
- We're 1.0.6 now.
-
-commit 0e41e34a231198498289e367b93b3e9b99d5eb2e
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Apr 6 19:45:55 2003 +0000
-
- Avoid problems with copying a directory to itself.
-
-commit f240a133b32db88c98ad5a7f9d72fdb909311af6
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Apr 6 19:42:28 2003 +0000
-
- Releasing version 1.0.6.
-
-commit 9c7631235ac174ebd33a3e04e07211b3ae8501f6
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Apr 6 19:35:50 2003 +0000
-
- Updated the documentation building tools to work with a recent linuxdoc-tools package.
-
- Note that this is (and always was) a terrible hack and we really should
- replace it with something reasonable which wouldn't need changing every
- time linuxdoc-tools evolve.
-
- I also needed to include a patched version of LinuxDocTools.pm, because the
- original one explicitly refused to work with a non-linuxdoc DTD. The authors
- of linuxdoc recommend to use sgmltools-lite in such cases, but it would mean
- rewritting our formatting rules to the DSSSL language which I don't dare to
- speak about here :)
-
-commit a9aa5887f3b9b43d9a3a5617ef9176da936ce35f
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Apr 6 18:55:37 2003 +0000
-
- Added release history.
-
-commit 8cf76fa8536e52a5c90d500ac1d74f49d87e905d
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Apr 6 18:38:01 2003 +0000
-
- Bug fixes to authentication code by Eric Leblond <eleblond@init-sys.com>.
-
-commit d85e1f0e2f389d273ff14e89faced390b76d842b
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Feb 27 10:48:30 2003 +0000
-
- Prefix comparison bug (hopefully) fixed.
-
-commit 6ea8ca1469a9c9150a4e0be9f8e6ab025eee990a
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Feb 23 10:22:04 2003 +0000
-
- Updated a comment.
-
-commit abf06173a3d84559dd26d2a78a1e5df9656a4d80
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 22 23:06:32 2003 +0000
-
- Current Linux kernels don't remember rtm_protocol for IPv6 routes and supply RTPROT_BOOT instead.
- Work around that.
-
-commit 11d4474c17e76e9811dcb32f555fa1c6f3684fab
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 22 22:47:45 2003 +0000
-
- Better selection of link-local NLRI addresses, at least for our own
- address. Need to do it better for the other neighbors -- the current
- solution works only if they use the standard 64+64 global addresses
- and the interface identifier in lower 64 bits is the same as for the
- link-scope addresses.
-
-commit 7b7a7b43a6915efbe9180f07cd1284a39efacf02
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 22 22:39:06 2003 +0000
-
- There can be multiple primary addresses with different scopes
- and only the highest scope one has IA_PRIMARY set, so report
- the remaining ones as "Unselected".
-
-commit 8001948b43c9367e86473630f58527249d7da04f
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 22 22:38:15 2003 +0000
-
- Report link-scope addresses as well.
-
-commit 8c92bf6a0ddc21f2fa19c195a73d43837f60fc23
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 22 10:40:35 2003 +0000
-
- Temporary fix for BGP protocol capability announcement for IPv6 mode.
-
-commit 60a72ed49b36aea732d3584527040a7b3b0e72e0
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 22 10:25:22 2003 +0000
-
- Fixed length check miscalculation in IPv6 receive path.
-
-commit 47f18ac39a313cf213b43320557239c5d0855a11
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Nov 13 08:47:19 2002 +0000
-
- ABS should be a macro.
-
-commit 7d875e094bbbb9d4b234e31fe08f31510ac1d7d0
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Nov 13 08:47:06 2002 +0000
-
- Added missing includes.
-
-commit de10a974f2e2e8a11b6a6852cd770c1096e1c25d
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Nov 13 08:46:12 2002 +0000
-
- Added missing semicolons.
-
-commit 59b96d7b4d8a055aa77917099b358cfc7b5e0731
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Nov 13 08:45:24 2002 +0000
-
- Don't use obsolete functions which are no longer declared in the header.
-
-commit a19cd811000902facceff5a30facf7dba9cb2095
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Nov 13 08:30:56 2002 +0000
-
- Added missing #include and wondering how could it ever compile.
-
-commit 19bd5c8e2c0fd47ff27668b8c45acc79f4d703b4
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Sat Sep 21 13:57:48 2002 +0000
-
- Password does not need to be null-terminated, do not print garbage in
- such case. Thanks to silvio@big.net.
-
-commit 4ca0d0847e015bbecf6db3cec8f3ce57c2d8035c
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Apr 3 15:41:05 2002 +0000
-
- Small typo fixed.
-
-commit 53a50af50427e2fedc4bbfeca7a5934a798a3827
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 10 12:32:12 2002 +0000
-
- Applied Pavel's fix for broadcast/multicast mode.
-
-commit e59e310e6435c6c72b585c6f4b5e6c9bbd006553
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Mar 4 15:54:39 2002 +0000
-
- Age LSA DB after LSA origination and before routing table calculation.
-
-commit 025b0e856a85dcae755e97922febc190145ba89c
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Mar 4 15:52:40 2002 +0000
-
- New trace added.
-
-commit b78696282de32a202a9bed304f8edf044833f36f
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Dec 7 17:34:09 2001 +0000
-
- Bugfix in router importation.
-
-commit 30c34a10797c2773a0b99e71b22f111ee2a7f980
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Dec 7 17:10:49 2001 +0000
-
- Small bugfix in RIP documentation.
-
-commit 8e32493c56a49f10a6949985d5b0bb4dbcbe204d
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Aug 21 17:00:15 2001 +0000
-
- Removed some useless (hope!) code in next hop calculation.
-
-commit 68db89a2ce35a96aef827f4e86c5dfd82842f9d7
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Aug 21 16:44:57 2001 +0000
-
- Finally, next hop problem fixed.
-
-commit 37da55168cdb0f562266eff4b821f6e576d93931
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Aug 21 15:03:42 2001 +0000
-
- Useless trace.
-
-commit e8ab16803065894497dd306c941b0815fac5b25a
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Aug 21 15:00:29 2001 +0000
-
- Hope, bug in next hop calculation for stub routes fixed.
-
-commit e43ae6330eaf349eafe6820465c85266eef80e07
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Aug 19 11:15:24 2001 +0000
-
- Fix %<something>I format strings.
-
-commit 30b773041c37d10649a16d5f28af00a25871aac7
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Aug 19 11:11:44 2001 +0000
-
- IP address formatting now uses the same rules as formatting of strings
- with two exceptions:
-
- o Any non-zero field width is automatically replaced by standard
- IP address width. This hides dependences on IPv4/IPv6.
- o %#I generates hexadecimal form of the address.
-
- Therefore |%I| generates unpadded format, |%1I| full size flush-right,
- and |%-1I| full size flush-left format.
-
-commit 16319aebd30da5161bed95d72094250228a7f61c
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Aug 12 00:09:47 2001 +0000
-
- Dokumented switch network.
-
-commit c926eee72471d8127ff833548b0ce1f8cb6de276
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Aug 12 00:04:42 2001 +0000
-
- Area networks added into configuration.
-
-commit b2bdb4065667f466575b831f4a3166bd309d9d14
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Aug 11 16:22:29 2001 +0000
-
- Changed definition of stub area.
-
-commit 85062e8a600cc7896b8bcaf3960bb782aa9f2ff0
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Aug 11 14:40:51 2001 +0000
-
- Bugfix in B-bit setting in router LSA.
-
-commit 78e2c6ccf16b41bc19a4cd69f959c8ae47e68b9d
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Aug 11 14:01:54 2001 +0000
-
- I will not originate the same lsa before MINLSINTERVAL.
-
-commit 5fc7c5c51344a8cc1fae2cc9077c2c331c1e419a
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Aug 3 08:44:51 2001 +0000
-
- Don't loop forever when trying to skip an out-sequence netlink reply.
-
-commit 24c00cb11915edb8c13dbc21f245a73fc34689ed
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 12 21:10:30 2001 +0000
-
- Install route into main routing table just if it's necessary.
-
-commit c48b33292b6d39cdacd642565907c0d5b90adc68
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Jun 9 15:13:38 2001 +0000
-
- Yes, 1.0.5 released.
-
-commit 87c450dffcbcc76270c95b4c923838445cd6816b
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Jun 9 14:56:01 2001 +0000
-
- Added comments.
-
-commit e9d3c3aaea24724c285027154bd9f5ddef8394e0
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Jun 9 14:55:10 2001 +0000
-
- Bug in next-hop calculation fixed. (For dual connected neighbors.)
-
-commit ea31425a6191f0b3e181f8a1c7368fc4dfca24b4
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Apr 9 19:15:03 2001 +0000
-
- Patch from David Rohleder <davro@ics.muni.cz> thanx.
-
-commit 01b776e117d21ccfef996fd91c014c6e14a458a7
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Mar 6 13:40:39 2001 +0000
-
- Fixed <time.h> vs. <sys/time.h> problems.
-
-commit 27e993fb4ecc310a83da3a74b21b15c32c207a09
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Feb 20 09:49:19 2001 +0000
-
- Fixed duplicity in log category numbering.
-
- Thanks to Zheng Yuan for spotting this.
-
-commit 4d04187465fdeb3fb755b4d01ec640bbe0e36eb9
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jan 19 20:30:08 2001 +0000
-
- Added paper for my talk about BIRD at SLT 2001.
-
-commit 0766e962e9a9539ceccd23090e5bb8e1301fce8c
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jan 17 08:32:28 2001 +0000
-
- Bug fix from Zheng Yuan <zyuan1@cig.mot.com>.
-
-commit a2d01907c5b24bab78cc055fa23354597bd44a03
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jan 15 09:24:16 2001 +0000
-
- Added an explanatory comment.
-
-commit 8c6ce98b9d9b5c4970e902cf667c1ffb64f04a62
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jan 8 11:13:01 2001 +0000
-
- Fixed infinite recursion in password_same.
-
- Pavel, please check.
-
-commit 32749f493fdaea31f70d8586597febacd2c511d9
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Dec 14 01:04:51 2000 +0000
-
- Hmm, nasty bug, LSUPD was not well flooded via PTP interfaces. :-(
-
-commit 501c5bb03fabd3d5721cfd8c82298f729d79e7a3
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Nov 21 23:47:51 2000 +0000
-
- Small bugfix in ext routes calculation.
-
-commit a5096a1bdebe217eb0d04a95489562ac132f4552
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Nov 8 22:46:54 2000 +0000
-
- Yet another nasty bugfix of iface_patts_equal().
-
-commit 0639f7263a9a73cce6948cad23cd2d4858d36c5b
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Nov 8 17:06:35 2000 +0000
-
- Bugfix in iface_patts_equal.
- When both patterns were NULL strcmp it sigfaulted.
-
-commit 482bbc7396268fce66e8ecb59f248bc51229cdc9
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Sep 9 19:21:01 2000 +0000
-
- Minor rpm changes to make RedHat happy.
-
-commit 52fa3e386948b13b928ff9be778a7de62a00ceb3
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Sep 4 21:21:34 2000 +0000
-
- Fixed many bugs in rt calculation and interface adding. Now it seems to be
- OK, I'm going to advertise 1.0.4.
-
-commit b02e40111ea8d97bf1c3bfa25970ee0d828cd7bc
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Sep 4 19:42:17 2000 +0000
-
- I allocate struct ifa before unlocking. So route exported to OSPF are correct.
- I work also with interfaces that have some problems with socket opening.
- I declare them as stub.
-
-commit fdb19982020abeddf2d9eb73efae92ae2cc58d93
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Sep 3 22:18:40 2000 +0000
-
- Serious bug in ext lsa origination found. Going for 1.0.4.
-
-commit f02e4258b9bb7f823ddfbfb88284c868502b1433
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Sep 3 18:27:21 2000 +0000
-
- Some misspells.
-
-commit 43dff480efcc85bf32327b07c3c53c9c68cb3941
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Sep 3 18:13:00 2000 +0000
-
- Version 1.0.3.
-
-commit 19e930a9bbcc2dfdb87c8ada1a54ac4563a0cad6
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Sep 3 17:53:12 2000 +0000
-
- Version 1.0.3 released.
-
-commit f82e9bc3744f9ff5aa05d08a18fd03e46fb08b6f
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Sep 3 16:21:14 2000 +0000
-
- Another atrey->atrey.karlin.mff.cuni.cz
-
-commit 1e972b5524ff1ad28f4013632253a851c3559fc9
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Sep 3 16:16:33 2000 +0000
-
- Log some unusual situation.
-
-commit 76460860ece8ce43a42da7cb2342e57f553b646c
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Sep 3 06:54:35 2000 +0000
-
- Small bugfix. (Use atrey.karlin.... instead of atrey.)
-
-commit e3bc10fdc49266db827af4e4062e639862037eb6
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Sep 2 08:54:40 2000 +0000
-
- Added stub interface. (Interface which is propagated to OSPF but
- it does not sends nor listens packets.)
-
- I added some new options, please look at it and look into doc if it's OK.
-
-commit 5ddec4e6cfef8e5867d7440693894517f955e96f
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Sep 2 07:58:05 2000 +0000
-
- Reconfigure poll interval.
-
-commit 7cedbf217e8ce8a8669f31b1ee38e5f9ccb4eefd
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Sep 2 00:15:07 2000 +0000
-
- Reconfiguration for new options.
-
-commit e7e2878b744f415df9fcef291da67975da4dfc29
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Sep 2 00:14:46 2000 +0000
-
- More examples.
-
-commit a190e7200bf37ba834c776a28583bf897b4377f5
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Sep 2 00:03:36 2000 +0000
-
- Added hellos on NBMA networks. (I don't violate RFC now.)
-
-commit 94e2bbcc72f69edbcb3ce66ffa52998f374243c5
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Aug 28 14:32:11 2000 +0000
-
- Better ospf metric explanation.
-
-commit 5a063efeea11a80e865e9fa4b5e13c4ca8514b51
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Aug 28 13:51:13 2000 +0000
-
- Bugfix in ext lsa importing.
-
-commit 8b6b49239f409571486ae9589bcd57f706421517
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Aug 25 12:26:03 2000 +0000
-
- Minor bug. It does not work on non RH systems. Thanx to
- Craig Bourne <cbourne@cbourne.com>
-
-commit 6cf7e97abe05ee8943f8a2d300e1c46038b95df1
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Aug 24 20:08:00 2000 +0000
-
- Added files for RPM building.
-
-commit a24e3157628ade4c0c0c380094bec898b630b2ee
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Aug 23 06:51:26 2000 +0000
-
- Released as version 1.0.2.
-
-commit 9e2920824e13739a9169153f0164e6a4fe4adc1d
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Aug 18 16:47:27 2000 +0000
-
- Typo.
-
-commit f321a61f77262d33dd43d50136c8116ebf8139c6
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Aug 18 16:44:37 2000 +0000
-
- Fixed bug in nex hop calculation of external routes.
-
-commit 88aa2af7effa3752d033ccab5e18fb1303603585
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Aug 18 16:36:54 2000 +0000
-
- Just formatting.
-
-commit 28a6e1aa0ee17cee6aaad67d7433cb8038062582
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Aug 17 19:42:52 2000 +0000
-
- Stupid bug in next hop calculation of external routes.
-
-commit 1eec76077814fbe06879026809759dd5f5b8655f
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Aug 16 20:18:19 2000 +0000
-
- Typo in rte_better.
-
-commit 059fc1e94abcd658e9340313ffd080c5829ba8ef
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Aug 16 19:37:04 2000 +0000
-
- My calculation of external routes violated rfc. :-(
-
-commit d6a7e2fb8590660c00e984ff41d2e668d2ead69b
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Aug 16 19:03:06 2000 +0000
-
- Bug in rte_better.
-
-commit e7894eceded6ea1f757829a8845863c57660c9dd
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 26 20:02:30 2000 +0000
-
- Added slides for our presentation, but don't export them to the
- distribution tarball -- they are in Czech and therefore of no use
- to almost anybody :(
-
-commit 2084109a3734227f0dcc21f3c8915a983ad9d586
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 21 22:11:29 2000 +0000
-
- Include CVS ChangeLog in the distribution
-
-commit fc12a680b1102ae1b620180417ef8b0272b11bed
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 21 22:08:46 2000 +0000
-
- Released as version 1.0.1.
-
-commit ad3907559c196ee39906d527ea4f3372beb6e6c5
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Jun 21 19:40:46 2000 +0000
-
- RIP bugfix
-
-commit 2836ce3951bbdda62c3dddd509669127f46e776d
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 21 09:58:09 2000 +0000
-
- Check broadcast address sanity before believing it.
-
-commit bcbdcbb6ae7256e01165220bb3b2d5b72850f665
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Jun 20 07:49:08 2000 +0000
-
- Don't accept incoming connections when the neighbor is not up.
-
-commit f9eb8f7e066970d56a814128fd49170348a7fbd8
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 19 23:50:02 2000 +0000
-
- If compiled with --enable-debug, don't even try to log to syslog unless
- the user forces it in the config file.
-
-commit 972fdb45323b75af254cfe6c912c52d3596a230a
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 19 15:12:50 2000 +0000
-
- Routing table calculation clean up.
-
-commit ca00d4a13a7207da1ea3acf1f0e38ddc27669a4d
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jun 18 19:49:32 2000 +0000
-
- Fix numbering of routing tables in IPv6 version.
-
-commit 4daf03e5138dea8e5c409ab20a07f35667caa89e
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 16 23:12:47 2000 +0000
-
- Use our own SUN_LEN if libc doesn't provide it.
-
-commit 365211d5886ec59a543e9fbc2151d6218561c18c
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 13 19:03:41 2000 +0000
-
- Bugfix in logging.
-
-commit dd44b2ce90950033c5c5419db67a1d53fb177f71
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 9 07:52:57 2000 +0000
-
- bird-1.0.0 has been released.
-
-commit 5ddf4a58f9c4173acefa1df92ccd3da90230a863
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 9 07:32:57 2000 +0000
-
- During initialization, log to both syslog and stderr. When a configuration
- file has been read and it doesn't specify any logging, log to syslog only
- (if syslog is not available, then stderr).
-
-commit 0b3bf4b1d898b4e438fe4959a63fc16211baff12
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 9 07:30:22 2000 +0000
-
- Use SUN_LEN() for length of UNIX domain addresses. This should fix problems
- with connection to clients on libc5 machines.
-
-commit 0e376168c570507c8cb64b143eff0049442e201e
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 9 06:54:01 2000 +0000
-
- Shut up an uninitialized variable warning.
-
-commit 1aa2a9c8351d6121124831f503306ff6869bbf39
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 9 06:49:43 2000 +0000
-
- Added a `What is missing' section.
-
-commit 4386360bd9f71b159497ac3b671b4e3d117a6b73
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 9 06:46:58 2000 +0000
-
- Before building distribution tarballs, make distclean first.
-
-commit 2d176ac5d22b08c25ac277821e3daef3a6f2ae23
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 9 06:45:48 2000 +0000
-
- Released as 1.0.0, but marked it as a BETA version.
-
-commit 99955b54be850fad280a556ca80dc21374d2c5b7
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 9 06:31:43 2000 +0000
-
- Proper building and installation of documentation in the Makefiles.
-
-commit a012cbb16f3d73ca7ffafe6f7933de7369e2ee48
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 8 19:16:21 2000 +0000
-
- Nasty bug in LSA refreshing. I didn't refesh my own copy! :-(
-
-commit 135857e5777a4f1762fa6d948bb9d6b72e101c91
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 8 19:14:08 2000 +0000
-
- Acknoledge your own premature aged LSA.
-
-commit 054a352475437d924e473c95b5d3ad01ae4ab161
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 8 19:02:31 2000 +0000
-
- Don't send dbdes before rtlsa origination.
-
-commit 4bb18dd2daa1e13ab4f9aaff2ddc4875c4776559
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jun 8 16:57:41 2000 +0000
-
- Fix i_same for 'c' instruction.
-
-commit 89e7de98e455071c5ff3796765fb6fd6860a63c6
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 8 15:44:52 2000 +0000
-
- Updated distribution README.
-
-commit d4f72db31a512eafbb8aff4e5c1226fa59879382
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 8 15:22:06 2000 +0000
-
- When distcleaning, clean up doc as well.
-
-commit 96264d4d2f22c652f6cef84ff6226352e1457cce
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jun 8 14:06:20 2000 +0000
-
- Final version of documentation (famous last words)
-
-commit 66701947c43d34f89be59fe9845efd7c65f64454
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 8 12:56:59 2000 +0000
-
- Fixes.
-
-commit 6567e6cf5081542dfeb2c1f2493873c4fabb012f
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 8 12:42:34 2000 +0000
-
- Missing parameters...
-
-commit 1632f1fe32b9f13bf7746586bcbad70ffafe4697
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jun 8 12:38:16 2000 +0000
-
- More spellchecking and typographic changes.
-
-commit 725270cb1da0672128675924844531e56c6ea64e
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 8 12:37:21 2000 +0000
-
- Fixes for the programmer's manual.
-
-commit 8d56febe64769c19a06c2c0f3ff121d25eceaa5b
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 8 12:04:57 2000 +0000
-
- HASH_DEF_ORDER back to 6.
-
-commit 2a56bb3bd66a9b52dd6c2e2626630b4eaa79d04b
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 8 11:05:19 2000 +0000
-
- Set margins.
-
-commit 5a64ac70361e9dacfe155492cd52ae88eedcd75c
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 8 11:00:15 2000 +0000
-
- Introduction to configuration of OSPF.
-
-commit c62d1c19a924668ccf5315ca8882ea041581e3bf
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 8 10:48:51 2000 +0000
-
- ... as well there.
-
-commit 49569a8b53b7494b19344f5fc9cd659f68477ba4
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 8 10:48:35 2000 +0000
-
- Oops! Configuration compiles now.
-
-commit a460184532f36f75bc9727886faf07c2bde2d7f5
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jun 8 10:30:55 2000 +0000
-
- Tiny fixes.
-
-commit 86598d87be6b572d3ca9731a72bc820889f5265c
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 8 10:27:01 2000 +0000
-
- Updated.
-
-commit a5a947d4d8f86dd1180d76f0803402383df0dcab
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jun 8 10:26:19 2000 +0000
-
- Fixing error messages.
-
-commit ca77641d0787be514cae6a622e26e6a58af11d12
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jun 8 10:25:56 2000 +0000
-
- Use `switch' for `disabled'.
-
-commit ec423cc725d4b097e596dbadd84f3dea40deb0b8
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 8 10:25:02 2000 +0000
-
- Updated CLI helps.
-
-commit 5a203dac615369806dc6eee0418ea39c597bea41
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jun 8 10:24:42 2000 +0000
-
- Docs updates.
-
-commit b178d92a0ba1dc198f05dc8252c826e9bd62c5cf
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jun 8 08:24:32 2000 +0000
-
- Better messages
-
-commit 099c017fca667bbb59cff65be2ac58c82f8fb3a8
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 8 02:28:04 2000 +0000
-
- Still some endianity bugs.
-
-commit 59ba3342968fdd2a016b192559a64439281e25bf
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 8 02:04:45 2000 +0000
-
- I forgot some endianity operations.
-
-commit 423230f2f1080c6a4f6d05b6d7705cfaee500f48
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 8 01:49:19 2000 +0000
-
- Ehm, my (B)DR election was based on router id, but RFC says ip!
-
-commit 17e29574bcf0e03e3243a48e784b0248925cc5b4
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 23:48:33 2000 +0000
-
- Better algoritmus of LSA aging.
-
-commit 25a3f3da7a2312e5ae21ada2aeccc412e2d1d867
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 23:34:43 2000 +0000
-
- I mark all LSA as in distance INFINITY in process of aging.
- I don't have to WALK twice through it.
-
-commit 1186369bbd45ab901eccc313708cc20f9dbf0f42
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 23:23:37 2000 +0000
-
- Doc.
-
-commit 37c3e558ab31a5e6088cef063dcd1e267238be74
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 23:05:32 2000 +0000
-
- Simple explanation, how LSA are kept in database.
-
-commit 87f0d22ef84826f6dc6d0a1ae7ba8020b6e52573
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 22:57:59 2000 +0000
-
- Minor change.
-
-commit c2553b1b3e1ff61e24b9435b897ef942abcec006
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 22:56:52 2000 +0000
-
- Minor changes.
-
-commit eee9cefd8c13184e45878ce8e2ef12fcdece3ded
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 22:53:51 2000 +0000
-
- Doc
-
-commit e9ab0b4212dc0939d782c991c86c362e09eb279f
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 22:31:47 2000 +0000
-
- Doc in lsalib.c + related minor changes.
-
-commit d5e4b51865c9532a9b886e942d30bb64dc87a675
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 22:10:46 2000 +0000
-
- Doc
-
-commit 351feeb51472602c83ec847f1feba10d68a5d57b
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 21:56:32 2000 +0000
-
- Doc.
-
-commit b4af36e0d8eeb6a032b2ce2464aae76a04117827
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 21:50:16 2000 +0000
-
- Removed some FIXMEs simply deleting them.
-
-commit 7ab3ff6a287d6adc8f1d371d9da1504de502c8a6
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 21:46:22 2000 +0000
-
- Doc in neighbor.c and some tiny changes related to.
-
-commit cadbb827f99fc24da9227dce545aa1185bab7916
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 21:12:00 2000 +0000
-
- A copyright change.
-
-commit 6f58dc64c9084aca66850b88d907cecf9b00c88d
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 20:50:08 2000 +0000
-
- Doc
-
-commit 89755a86237c786878a2d0c5e527559c8a4c0b6d
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 20:30:27 2000 +0000
-
- Introdution into OSPF.
-
-commit 64722c9852a8ea4bdc7db0304351850a8106300e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Jun 7 15:27:16 2000 +0000
-
- Added brief description of client features. Grammar really is not good place to write help from, so please check this.
-
-commit 3e82b32d3637a3a3d2eb935dc7036b32bc3fecd4
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Jun 7 14:45:55 2000 +0000
-
- Progdocs updates
-
-commit 074a166d9441a2b03931751dbc181e0d462a9d7c
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Jun 7 14:39:34 2000 +0000
-
- Better explanation for if/case, and RFC pointers for rip. Still searching for
- RIPv2 rfc number!
-
-commit 8dcf2544996af34f3c3d71116844352427787324
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Jun 7 14:16:11 2000 +0000
-
- Even better documentation of filters.
-
-commit 7aa99d22bcabb48cfc737055942715d8efd47f6b
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 7 14:12:44 2000 +0000
-
- Updated.
-
-commit f06a219a2445bc9ff86071fdbb9b97e51b412c31
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 14:12:13 2000 +0000
-
- Better explanation of OSPF attributes. But it's still not perfect.
-
-commit 4e8ec66698e0e644f56c18b3f58393d9f5ae49a7
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 7 14:08:14 2000 +0000
-
- Spelling.
-
-commit 07f29765a58ee72fc79d74b28dbfead24e0b5baf
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Jun 7 14:06:37 2000 +0000
-
- RIPv6 now works.
-
-commit 76c7efec63ffd2431ce5f6bd2299763f741ac37c
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 14:01:18 2000 +0000
-
- Better example for OSPF configuration.
-
-commit 907503adb6d0b0763ff92266e2fbc522d77f5476
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Jun 7 14:00:17 2000 +0000
-
- Comment fix.
-
-commit 18b4d6bf278485f86ae5b636f3155fb36735ff1e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Jun 7 13:58:49 2000 +0000
-
- rip ipv6 bugfix
-
-commit 3ca3e999ecf00cc6ab8a52a73a7ead26e83a75b7
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 7 13:54:24 2000 +0000
-
- Spelling and style corrections to the OSPF section.
-
-commit 771ae456a5ff0e12379047b737da31b0be4059ea
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Jun 7 13:54:06 2000 +0000
-
- Better progdocs for filters
-
-commit fa6c2405e2bab551245e1af7ed19b550b8bbef79
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 13:46:13 2000 +0000
-
- Now I can change cost of interface without OSPF restart.
-
-commit 6316555eea2b9b232a622fdb9aceaa4de1e23f59
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 7 13:32:10 2000 +0000
-
- Minor tagging fixes in OSPF docs.
-
-commit 25696edb03e08f562d1993ae38ec9ae43942347d
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Jun 7 13:30:02 2000 +0000
-
- Full list of possible values in attributes, better operators description.
-
-commit 088bc8add198b27456269ca7e536d6bc77ca285b
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 13:28:54 2000 +0000
-
- Bugfix in <>.
-
-commit 58f7d004fddd2cccdb019be59b6cc7a8abe50510
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 7 13:25:53 2000 +0000
-
- Fixes to the progdoc.
-
-commit 38203d789a872077ec174a63a448568725e4715f
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 13:19:48 2000 +0000
-
- Originate rt lsa before sending first dbdes.
-
-commit 0c69604c8d0c9618e6cc94c98da993439d90dde6
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Jun 7 13:15:48 2000 +0000
-
- SGML syntax fix.
-
-commit 8fd12e6b27e713b0b7b24f3f7d9efd57038b1be6
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 12:35:43 2000 +0000
-
- OSPF user documentation added.
-
-commit 2e9b24211a523c754b9437d6b742d6df304d8aeb
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 7 12:29:08 2000 +0000
-
- Spelling fixes to progdoc.
-
-commit e403aa89e50471eb6f2838117887b1207627ae3a
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 7 12:27:30 2000 +0000
-
- Updated TODO file.
-
-commit cf0fca30353a9966c793647f7c9d10b0b56678a9
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 7 12:27:18 2000 +0000
-
- Added `progspell' target which runs ispell on the progdoc SGML file with
- all function, variable and structure names removed.
-
-commit 1ae494a7e1fb7dde3ffc4e5dd7df31a1bf8dd6bf
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 7 11:55:36 2000 +0000
-
- Avoid SEGV's in tracing.
-
-commit 8cd5c52fcb7d429f41601f7be114168cb2371072
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 01:19:16 2000 +0000
-
- Removed useless trace.
-
-commit 3df89cefc19d08f621afac0ff485dba3591a39a0
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 01:18:36 2000 +0000
-
- #define SIZE_OF_IP_HEADER
-
-commit bd457b8d2162034e03ac2bb62484d8b238fd556f
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 01:03:53 2000 +0000
-
- Some minor changes:
- Typo: transit delay!=transmit delay
- Zero checks etc.
-
-commit edc34dc9121c188f7794d404fb112c8b162e968a
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 7 00:56:11 2000 +0000
-
- Reconfiguration hook.
- It will survive many timer and constat changes.
-
-commit 1532a244da43b25fb78b7b3a67a344fa4ac542d4
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Jun 6 20:54:05 2000 +0000
-
- mj's fixes to rip documentation.
-
-commit a7c9f7c065907e310ce1954821f2a8fc61c0261b
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Jun 6 20:35:59 2000 +0000
-
- Batch of mj's corrections (config + filters)
-
-commit a63a9ce609864e6ba3e76a1c47fd6423b532dec1
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 12:50:02 2000 +0000
-
- Better dumping neighbors' states on PTP interface.
-
-commit a00c7a18f561bf46533dac46ee56227ebdf1be08
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Jun 6 11:58:25 2000 +0000
-
- Typos in Static section.
-
-commit 02357f960e6a2946add25652c009fa8dfe847f68
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Jun 6 11:53:22 2000 +0000
-
- Merged mj's changes, up-to "import filter".
-
-commit 41ad16e2d5dc03f6620b94f8e531373788e11db9
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 11:50:48 2000 +0000
-
- Added IP protocols.
-
-commit a852c139dc90febae40be055050ed30490d823b8
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Jun 6 11:05:12 2000 +0000
-
- Don't let example overflow, and new chapter for "about routing tables".
-
-commit ee4880c82fcefe61cccb8ec729905a2b19706d33
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 02:54:41 2000 +0000
-
- Some '\n' deleted.
-
-commit 064b1d893243bc187980f53292414583ff3b4630
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 02:50:49 2000 +0000
-
- Tracing.
-
-commit bd37f45c10be697403e59c957273d172b3d3ed8e
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 02:43:32 2000 +0000
-
- Deleted some debug()
-
-commit abcbfd0400eeb514c63376b50d3948581c20ca4c
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 02:34:57 2000 +0000
-
- Tracing.
-
-commit 531a48d8c5c168329640ccb21cd062dbb7b6f5a2
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 02:32:14 2000 +0000
-
- Tracing in LS ack.
-
-commit 992705f65a9feb04ed0e918d06ad283928aca13a
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 02:27:08 2000 +0000
-
- Tracing in topology
-
-commit d3995c498d92d7ce54fb2fcb6904e4e41f7588dc
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 02:16:39 2000 +0000
-
- Tracing in LSUPD.
-
-commit f14032efdd87bca5c2839be01ffe66797976c7bc
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 02:09:58 2000 +0000
-
- First part of tracing.
-
-commit 51cff78b2571e24963d3a81694f854605eb75eac
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 01:46:32 2000 +0000
-
- Allocate OSPF areas before interfaces.
-
-commit c1824c4d4c7753246ba26d27c7a3b7be3006d46b
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 01:23:03 2000 +0000
-
- Simple autentication added.
-
-commit fef1badfcfb0519cca10f3561e5cb79ef9f9e969
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 01:00:34 2000 +0000
-
- All die() renamed to bug().
-
-commit 80787d418bd028f59e34ffb08c1c221992fe3b41
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 00:52:35 2000 +0000
-
- Dummy reconfigure added.
-
-commit f8f1e1f110c3ff1aec03a9fa918257cf4d29e916
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 00:46:00 2000 +0000
-
- Interface locks added.
-
-commit 7d68e18b414bbdef9a5472006e8674a3d74e5a00
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 00:21:06 2000 +0000
-
- Added NBMA into examples.
-
-commit b131e163c292aac09dc7f73924de0fad6547743d
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 00:16:31 2000 +0000
-
- Some useles variable deleted.
-
-commit 3301b9d1c57b4e76d32f1244e3da33012e70d20d
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 00:16:03 2000 +0000
-
- Some useless variable deleted.
-
-commit eb436e16fd85340d3403a033ee86f973428a2f08
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 6 00:08:27 2000 +0000
-
- NBMA networks seems to work, but this should be better. :-)
-
-commit e5b5d18c1c8b33e76e954c0696e056fc11701631
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 23:44:26 2000 +0000
-
- NBMA networks should work now.
-
-commit 5c18880e35f668d33a993be5b2854547a08d9199
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 5 21:26:11 2000 +0000
-
- Avoid sentence containing a colon to start new doc subsection.
-
-commit ab698fc57c9898790964df7f9f59329e1f8930ba
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 21:09:03 2000 +0000
-
- Added example of OSPF configuration.
-
-commit a13eaf219acf5b90af09b914a2182e23d5812aee
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 5 21:02:57 2000 +0000
-
- Define element <progdoc> which initializes different formatting for the
- programmer's guide (\raggedbottom etc.).
-
- Also, omit "\usepackage{t1enc}", so that bullets work now.
-
-commit 854128a5ed540f230933cdc2c787e94d2658647b
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 5 21:01:58 2000 +0000
-
- Don't print empty synopses of functions.
-
-commit 3b580a23ad32e8445c419932d6f7715cdc2a0687
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 20:57:53 2000 +0000
-
- Bugfix in NET LSA flushing.
- Configuration now works! :-)
- Better "show ospf"
- Some minor bugfixes.
-
-commit f1aa23d4b3949ccd7c86f9a4e87eda63149b5f6d
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 5 20:24:42 2000 +0000
-
- Minor tweaks of spacing.
-
-commit 4bb9ce56bbf42ac09fc8293d8419835b6f178e83
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 19:45:06 2000 +0000
-
- Reset inactim timer if you receive any packet from neighbor.
-
-commit 496c819f26f67593797f0b861e153399c1d63a86
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 19:35:48 2000 +0000
-
- Removed some FIXMEs by deleting them.
-
-commit 3585d400e03a4e43def868b492df440ae52a29bb
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 19:31:55 2000 +0000
-
- Don't info about DR and BDR on non-MA networks.
-
-commit 2debcb9eb0d76362003726ca8b0f5f43ee275dee
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 5 19:17:37 2000 +0000
-
- Move TeX trickery for typesetting of function descriptions to where
- it belongs.
-
-commit fdb0c540a82d9732d4d1d36c83e186f36d756d08
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 19:12:22 2000 +0000
-
- PTP link in RTLSA was not announced correctly.
-
-commit 1605f043aa65b2434eb29d994f622bd79d0f2be7
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 5 19:08:27 2000 +0000
-
- Avoid using style combinations such as italic typewriter font.
-
-commit 8441f179253777b3e4bf3461ac847b33ddb098a4
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 5 18:40:25 2000 +0000
-
- Unless a filter specifies otherwise, all external routes have type 2
- metric 10000.
-
-commit f8032bbdb150221e84f0bd7de825cf3e9f15aa66
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 5 18:32:51 2000 +0000
-
- Simplified the grammar and fixed several minor bugs (e.g., `INTERFACE "eth0" };'
- was a valid entry).
-
-commit 44fc1888cf284d863c897b861942612acf36f52f
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 18:09:49 2000 +0000
-
- First calculate checksum and then send refreshed LSA!
-
-commit aba5e89f9310bb33c7362b02108e640983ad0819
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 18:09:15 2000 +0000
-
- Better checksum checking.
-
-commit 4c5f93d76bd0636407a185c175fe73411ae79a32
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Jun 5 17:13:36 2000 +0000
-
- Better documentation. There are functions whose description is good when
- reading source but whose documentation does not belong to progdocs.
-
-commit 22080a8640f268247a4cf74c9e76f958a05c4b69
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Jun 5 16:42:54 2000 +0000
-
- Make rip example fit on page.
-
-commit 8798c811762f463b662108643d7c4c869deb7f98
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Jun 5 16:36:16 2000 +0000
-
- Docs updates:
-
- make prog.dvi
-
- do not overflow in .dvi
-
- include filter documentation in the system
-
-commit eb2c99a132c87c5560edc77909edfab2df44f0a2
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 16:32:29 2000 +0000
-
- Yet another change, now flushing of net lsa seems to be perfect. :-)
-
-commit b458ce83d7cdc507aa18e5fed2ab206847bc317e
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 5 16:19:27 2000 +0000
-
- Print out function synopsis as a part of the declaration.
-
- Also, reverted my previous hack for `&' and replaced it by just disabling
- the `& -> &amp;' conversions.
-
-commit 2a5d7caa951d37c50d52ebef8ef269fa587dec5e
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 16:13:50 2000 +0000
-
- I calculated next hop of parent instead of actual LSA. :-(
-
-commit 07b7100292fb87169ad5f18285927c39697f6998
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 15:44:11 2000 +0000
-
- Don;t send packet over downed interface.
-
-commit 8b79c4ccd597b90222f57eb3dfadeb24f39db7bd
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Jun 5 15:41:44 2000 +0000
-
- Add safety check.
-
-commit 98da26a0a0ee9dd8f7030dcaf6f733adf8b8ad2c
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Jun 5 15:41:29 2000 +0000
-
- Better error messages
-
-commit 49222deffff154ad7c287efd4a6847cc545cda6b
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 15:06:26 2000 +0000
-
- Bug in comment. It didn't compile.
-
-commit b093c328f5b352e3d059cb14cceed1e4daa1b9dc
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Jun 5 12:52:57 2000 +0000
-
- Updates to both programmers and users doc
-
-commit 73275d855dcc8a184bc19f3750c8775a59111260
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 5 12:49:04 2000 +0000
-
- Documented all the sysdeps (only briefly, I admit).
-
- Except for Filters, RIP and OSPF, the progdocs are complete.
-
-commit 525fa2c1f0e955455bed3fdb397aceb1e6e69a57
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 5 12:19:12 2000 +0000
-
- Documented sockets, events and timers.
-
-commit 10304bed435034cf8432b1c6262f7e7f0d84d49c
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 5 11:46:40 2000 +0000
-
- Split random number functions off io.c, so that they can be documented
- separately.
-
-commit 5cc1e1f805934952f38ceb2ca6947c6d2e704937
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 5 11:41:41 2000 +0000
-
- Documented memory resources.
-
-commit 9238b06a2c6faac8b16e990821c91affde4072c4
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 5 10:01:09 2000 +0000
-
- Spelling.
-
-commit 42b3daa09cda8a4b80661177d3bf74b9258b0b88
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 5 09:51:24 2000 +0000
-
- Description of protocol module moved to where it belongs. If documentation
- of standard modules is stored in their source, such auxilliary files
- should be as well.
-
-commit ac272c0067cc7f04e74f0418bc0c9ce63a657175
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 05:06:53 2000 +0000
-
- Bug in LSA origination.
-
-commit dc2548d2ccc45722f0dcaa861dd3b45a397d2cac
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 05:06:22 2000 +0000
-
- Premature age LSA if you're NOT dr.
-
-commit 88048fb3c970842a16c65b1566ba817871a04eb5
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 03:46:19 2000 +0000
-
- Small patch to better hash type=2 LSAs.
-
-commit 273fd2c16475d3d1275a4fe17443c3ba2b93fbc4
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Jun 5 02:23:20 2000 +0000
-
- Many bugfixes (I don't remember all of them):
- Added link ID calculation for external routes with same prefix but
- different mask.
- Bugfix in NET lsa origination.
- Bugfix in NET hashing.
- Bugfix in LSA installing.
-
-commit 2d37d36c676e16b92ac38a60d3c269efeeaf07ac
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jun 4 20:06:42 2000 +0000
-
- Updated the TODO list with our last-minute stuff.
-
- Moved the rest to "Various ideas".
-
-commit e24ddd9bef7e3d3490a8ee7667cd25069b40fe81
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jun 4 20:00:35 2000 +0000
-
- Don't set precedence and TTL for the dummy socket.
-
-commit 13e9bac33fc99e71efddf1790ce1e7dfdc09dfa8
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jun 4 19:57:04 2000 +0000
-
- One more newline less... :)
-
-commit df49d4e14b7c24f8ca958870fd1e9ddc84df1f1b
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jun 4 19:56:06 2000 +0000
-
- Removed lots of trailing newlines in log messages.
-
- Please note that the only calls which don't add newlines automatically
- (i.e., don't print a full line of output) are debug() and DBG().
-
-commit 201187c55837587d8f88775cd957d9c8e423c254
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jun 4 19:55:11 2000 +0000
-
- debug -> DBG
-
-commit bf3eb98eb829adc8bee4a210cfcefe29ba0524a1
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jun 4 19:30:55 2000 +0000
-
- Use nested scopes properly. Updated according to cf_define_symbol() changes.
-
- The rest of code doesn't need changing since it doesn't use nesting.
-
-commit 04dc62a0116941d2f1510216539ae8c11c5f1cb3
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jun 4 19:30:13 2000 +0000
-
- Nested scopes could never have worked. My fault I wrote such a buggy code,
- Pavel's fault that he's never tested shadowing of declarations in the filters.
-
- cf_define_symbol() has been modified to check the scope of the symbol it's
- given and it if it's an already defined symbol, but in a different scope,
- a copy is created in the current scope and redefined to the new meaning,
- the consequence being that it cf_define_symbol() now returns the new symbol
- you need to use when assigning aux and aux2.
-
-commit dab66519160042f1fb62a285e3a947233ce74e70
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 4 19:21:23 2000 +0000
-
- Install newer lsa even if nothing in its body change.
-
-commit 67cc9135bfd515149ecca62f32026cd6e2a390b0
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 4 19:20:28 2000 +0000
-
- Many bugs in ext lsa origination.
-
-commit ce8f0c083a5f46e001dff759e924910c415cfb48
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 4 19:19:36 2000 +0000
-
- Schedule RT calcualtion if you delete LSA by premature aging.
-
-commit f7667ba1c4c7a35266ae5018b059a14a01f7f907
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jun 4 18:46:30 2000 +0000
-
- When cloning a rte and replacing its rta, remember to free the old one
- so that we don't leak memory. Thanks go to the resource tracking system
- for quickly discovering the source of leakages.
-
-commit 7722938d63d206ebc0e1da732009e1e9f2cd9d72
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jun 4 18:34:39 2000 +0000
-
- Added library progdocs.
-
-commit 102e3e0e0277e7b123c7c1ae3635c4a8fb55c900
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 4 17:51:52 2000 +0000
-
- Just to be sure, that rt calculation cannot start beforeorigination of rt LSA.
-
-commit 83e50ffc472c8869d58a7d1da27846bd727a8cfd
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 4 17:33:15 2000 +0000
-
- Bug in debugging.
-
-commit 71f7d043a6f03b5d5cd0701bb679b914b1bf47d1
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 4 17:10:52 2000 +0000
-
- :-) No bison does not have any comment to my code. :-)
-
-commit 54e55169da71a6e6e2d8f9fbc0123297301217d7
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jun 4 17:06:18 2000 +0000
-
- BGP documented.
-
-commit 3560cf8e0b68ce0cac5a9af2aadbc09d4f529e7c
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 4 16:36:57 2000 +0000
-
- Clean up.
-
-commit e7811248685520ceff362b8bc7f090067ca42114
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 4 16:17:39 2000 +0000
-
- Another clean up.
-
-commit 47f8e0c2169bba2dd209f1c7ed89f1d605d36b3e
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jun 4 16:16:08 2000 +0000
-
- Document.
-
-commit 3b31c538333156770ddb74a7a27f271784745144
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jun 4 16:15:37 2000 +0000
-
- Documented all the trivial protocols.
-
-commit 2a863dd6e18a43fe3de5b1f3651e816f6fc27bb1
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Jun 4 16:12:01 2000 +0000
-
- Small change to make bison happy.
-
-commit 58f9453776dff92b4ee4c81f6ca3601b6ee9f041
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jun 4 15:22:20 2000 +0000
-
- Moved parser docs to cf-lex.l, so that the parser compiles.
-
-commit cdb898cfd40fe866a1835689814113075b7b5a67
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 3 18:23:27 2000 +0000
-
- Minor changes to the progdocs.
-
-commit 06607335ef73bc0ffeb377a420e6438b531a4ea7
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 3 18:23:00 2000 +0000
-
- Documentation.
-
-commit 899fc0abfe8400425860d0e9e4d6cc7fd338978c
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 3 18:22:43 2000 +0000
-
- `|' now works as it should.
-
-commit 2e130b5cadb970b7f4f743e69cd459b5b42cf208
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 3 17:02:30 2000 +0000
-
- Recognize `|xxxx|' as verbatim text and typeset it using <tt>.
-
-commit c0b2f6463fd7464ce6fe4d9dc67f37e61bface11
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 3 16:56:00 2000 +0000
-
- cf_symbol_class_name now recognizes SYM_IPA.
-
-commit 3d675cdbe7287d3024d041ce4e28dacf7ca527cc
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jun 3 14:40:39 2000 +0000
-
- More documentation.
-
-commit aaaff77605879ffd80f8980f06ea66329e9aaea8
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Jun 3 09:50:31 2000 +0000
-
- More conf. items defined.
-
-commit a789d814ddd8473fdb85bedb02014f6cb6435373
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Jun 3 08:42:04 2000 +0000
-
- Multiple items in area {} :-)
-
-commit 89d6782dd1a7775a292db3b2b622c8a48dbd757c
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Jun 3 01:29:00 2000 +0000
-
- interface {} added.
-
-commit b36a0a799c751864f65bc3384df301448b54f3bf
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 2 19:55:55 2000 +0000
-
- area {} added to config.
-
-commit 7e602d5ea74206236373230a4620736370b3cc9c
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 2 17:42:21 2000 +0000
-
- Killed several bugs in kernel-doc. The most painful one was that it
- was unable to recognize structure markers `&'.
-
-commit a7ed3e557fd1f8c4e56fef9a5238091181c01186
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 2 17:41:43 2000 +0000
-
- New TODO list.
-
-commit ddbcb927f255ef4720e87b7f14339add37e705ce
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 2 17:24:11 2000 +0000
-
- Documented protocol hooks.
-
-commit 371adba6deb0add48fd4d03d40d4e098590689fc
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 2 17:23:53 2000 +0000
-
- Use <chapt> for chapters, <sect> for sections and <sect1> for subsections.
-
-commit 6cba2d5eeb522cbf6f1cc28c38fc2c445f41d1e6
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 2 17:22:43 2000 +0000
-
- Typographical enhancements. Now, the documentation is typeset using a modified
- book style.
-
- Please look at this version and tell me your opinion. Especially I don't feel
- happy about the spacing and (not) indenting of paragraphs.
-
- Also, I've removed things like "fax" and "letter" from the LaTeX mapping file.
-
-commit 3fa5722defc340571a6518d5556b1e354f05ce18
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 2 15:05:41 2000 +0000
-
- First option into config added. :-)
-
-commit 62924172aef9cf5308fd21d3ad5f6572b977c268
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 2 13:52:50 2000 +0000
-
- Flush LSA when receive aged one.
-
-commit 3c6269b8fec71fa22d5b087cae0e9ef86ff2b351
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 2 13:42:36 2000 +0000
-
- Added documentation on protocols.
-
- Protocol hooks deserve an extra chapter (to come soon).
-
-commit e4ba0ec1977e9925ec67f9442067e5ff7cb36111
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 2 13:27:34 2000 +0000
-
- Bugfix in receiving of aged LSA.
-
-commit 9a8f20fc0fda1cf910fe8ca21e850ab1524c4355
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 2 12:41:25 2000 +0000
-
- Better description of the route distribution process.
-
-commit 2eac33f774a2075cff3d28f7fdb36e0482e48f35
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 2 12:34:28 2000 +0000
-
- Better LSA Aging.
-
-commit 3ce8c61000da58261750af2b6e60dbf2fca2abcf
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 2 12:29:55 2000 +0000
-
- Documentation on routing tables and route attributes.
-
-commit 566a0eede7094519df07418116beeb7f3f976c7a
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 2 12:29:24 2000 +0000
-
- Removed rta_find() since nobody uses it and it's more convenient
- to use ea_find() directly.
-
-commit ece612e12808325b1b7eb24d060a42343549238f
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 2 11:24:38 2000 +0000
-
- sh interface "iface" dumpped all.
-
-commit 7a5582ac0045b80274de3183eca9b71eb52f2e6b
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 2 11:00:14 2000 +0000
-
- Better dumping, if I get strange lsack.
-
-commit 3488634cba08aeda19a733f7c76aef7a54a4e0ec
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 2 10:21:02 2000 +0000
-
- Handle "show ospf *" even if protocol is down.
-
-commit a489f0ce8ba44df0894a2bd102660fed1bed5ac6
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 2 09:57:22 2000 +0000
-
- Silly bug in sh interface. Now I test ALL interfaces. :-)
-
-commit 489f800b45d6d2d1a1fc9b371a015563cea9722d
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 2 09:53:26 2000 +0000
-
- Speedup loading process.
-
-commit 75317ab8e522b5dceb87b204e09d8ad919ac8558
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 2 09:51:26 2000 +0000
-
- Spelling fixes.
-
-commit f8e2d916b6cbe42131bfefbc5a2cd0ddfaf8131b
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 2 09:46:35 2000 +0000
-
- Minor fixes.
-
-commit 92e8be8c898932bf959e722acfbb33d154b8fcc4
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Jun 2 09:42:24 2000 +0000
-
- Bugfix in lsreq receiving.
-
-commit cd4fecb66affe468928abd87cadef4ff9a991d0b
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jun 2 09:35:17 2000 +0000
-
- Made it *compile* !!!
-
-commit 64ba9f7bcc4bb3b53c0cab303c230855a1443a42
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Jun 2 08:01:12 2000 +0000
-
- Do not try to divide by zero.
-
-commit 326e33f521f7796cbdde4a36a67bb4c7ffd25c1b
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Jun 2 07:59:26 2000 +0000
-
- Results of complete reading of documentation.
-
-commit c4f0f0140863c743b1d63c3bc94cb8e85417a4ad
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 1 17:52:21 2000 +0000
-
- Added show ospf interface.
- show ospf neighbors now knows "<interface>".
-
-commit 58740ed4c587a230bf1406eca52cbc84bcb1c5c3
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 1 17:12:19 2000 +0000
-
- Documentation.
-
-commit 658d272bb635b5efeeed883dec5af9dddf12397f
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 1 17:11:10 2000 +0000
-
- Better handling of parameterless functions.
-
-commit 725774926676352d2a065cbeb95a81b95bfcfa3e
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 1 16:45:10 2000 +0000
-
- Some other reply codes allocated.
-
-commit 4ab4e9778f35f8a123ee6bbc2387b9870859b707
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 1 16:26:59 2000 +0000
-
- show ospf implemented.
-
-commit cf318e3cd3206ad6a459a01e29e8494a100a67eb
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 1 16:17:29 2000 +0000
-
- Removed comments about workings of the old neighbor cache which are
- (1) obsolete and (2) replaced by the progdoc.
-
-commit 1f495723c355b66383ab391fdba84aae7e9226eb
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 1 16:16:49 2000 +0000
-
- Documented.
-
-commit ce4aca093a267da3dcd07b25f4390d393fd3c259
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 1 16:16:18 2000 +0000
-
- FIB documentation.
-
- I've changed the init callback type to a typedef to work around a bug
- in kernel-doc I'm too lazy to hunt now.
-
-commit a783e259d8d710208280126177487cc790418515
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 1 15:53:06 2000 +0000
-
- Cisco-like "show ospf neighbors" implemented.
-
-commit b594ad238692738352cd8827d71038a356b0d5a5
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 1 15:13:23 2000 +0000
-
- tm_format_reltime() works with both past and future timestamps.
-
-commit c23f40b1458e448ec9e7c974a2c486f2eccff871
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 1 15:04:25 2000 +0000
-
- Use <funcsect> instead of <sect3>.
-
-commit a9aa4c1ebb5ccdb2c6c7672267ad32670261a10b
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 1 13:13:49 2000 +0000
-
- Inactive sticky neighbors have no scope.
-
-commit 23df5e4cf3b0ff10e7484fc5ca40cb5ea638078b
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 1 13:00:39 2000 +0000
-
- Print route tag in hexadecimal and omit it if it's zero.
-
-commit bc00185e5a2d51d965465f117722fd4189437d24
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 1 13:00:19 2000 +0000
-
- Updated to new neighbor cache.
-
-commit 491cd43b777e46a301ae2a8f5400acaeb28b8ca5
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 1 12:59:50 2000 +0000
-
- Updated RIP to new neighbor cache semantics. When presented with next hop
- equal to a local address, just ignore the route (as it is usually just an
- external route exported by us echoed by some RIP peer), when given an
- invalid next hop, moan to the log.
-
-commit 4a91150175268d49a1c17131838e5afad925788b
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 1 12:58:41 2000 +0000
-
- Updated for new scope handling.
-
- Also, provide proper address scopes in struct ifa.
-
-commit 0f32f2a65a086561fdfd31d4efdea839ec9ce573
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 1 12:58:04 2000 +0000
-
- Modified the neighbor cache to remember local addresses as well.
-
- neighbor->scope now contains proper address scope which is zero (SCOPE_HOST)
- for local addresses, higher (SCOPE_LINK, ..., SCOPE_UNIVERSE) for remote ones.
-
-commit 56ca7acd3afd0df7928b3adfe4a8db8b29b89fb2
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 1 12:55:26 2000 +0000
-
- BGP: RFC 2842 has replaced the cap-draft.
-
-commit df968040f6b0f9eb83aa9c9eb4b4d6dcee6a384a
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 1 12:17:08 2000 +0000
-
- Print tag unsigned rather then signed.
-
-commit c52c7e764576fed027defa0c06a056f89912787a
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 1 12:08:14 2000 +0000
-
- Calculate checksum when reflooding (after min ls_refresh).
-
-commit 5f4aee76a2e26a6947f47273d510edc524716a45
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jun 1 08:43:29 2000 +0000
-
- Added && and ||.
-
-commit 1877dab21715eb23addb3391afbd8dbf571f833d
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jun 1 08:34:30 2000 +0000
-
- Allow
- case net {
- 62.0.0.0/8+:
- 10.0.0.0/8+:
- else: reject;
- }
-
-commit 1895e81e0532f732f501036402bbdd1825885cfd
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jun 1 08:32:49 2000 +0000
-
- Allow matching on enums:
-
- if !(scope ~ [ SCOPE_HOST, SCOPE_SITE ]) then {
- print "Failed in test";
- quitbird;
- }
-
-commit 42542c56c23174bfaefb1b949b90ed72afbea8fd
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 1 00:32:08 2000 +0000
-
- Cleanup.
-
-commit d27d0efe17a197ae41e25bc56526d5fc4ac4a93e
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Jun 1 00:22:48 2000 +0000
-
- Very stuping bug. (I took me 4 hours to find it!)
- I just wrote "=!" instead of "!=". :-(((((((
-
-commit 2983460bc0adabe357ba839972ea8d09c97c32a4
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 22:39:06 2000 +0000
-
- Both `help' command and the `unknown command' error message now tell
- the user to press `?' if he wants help.
-
-commit 2f5e5ff9d6e91e7a3e478b316d6b2d23003ad80e
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 22:28:36 2000 +0000
-
- Before configuration file is read, log to _both_ syslog and stderr.
-
-commit c184d9d0bdded559fb9d19accd17b88963e46669
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 31 21:51:04 2000 +0000
-
- Documentation update
-
-commit 0b1cad81623e85f1f1b9ef3652cdc389641496e5
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 31 21:50:13 2000 +0000
-
- Complain when filter does not end in accept nor reject.
-
-commit b5958826cc5fc75b5f99c51559d1ffedea5884b4
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 18:55:57 2000 +0000
-
- Ehm, some other "down" steps.
-
-commit 3f6953a103b9a846625a0d51e30b6dc59eedc7f0
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 18:45:16 2000 +0000
-
- Some bugs in cleanup after iface down.
-
-commit 489b21555e59d39d1c26dd3051f077c6f0a07c85
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 18:36:51 2000 +0000
-
- Why does not work "sk_close(sk);rfree(sk);"?
-
-commit 46962be628c1bd1d9c2badeea181ff6f87f0cb29
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 18:31:53 2000 +0000
-
- Better debugging.
- Safe neigh_list deleting.
-
-commit 3728267827e83bc095956b16256feae9e28adce7
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 18:21:42 2000 +0000
-
- And finally, Premature aging works. :-)
-
-commit 31ee3d5f214666a4b2da328dc894a5a9089acc87
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 15:51:39 2000 +0000
-
- Another step to make premature aging better.
-
-commit a9eeefd63ab7886bc2a5b8f0f7a2d1ec69a9c831
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 15:28:13 2000 +0000
-
- Warning destroyed. :-)
-
-commit 82364f4db8fff969932989bfcc5be89c73b15174
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 15:24:29 2000 +0000
-
- Flood my LSA (if exists) after old one is flushed.
-
-commit 0822995cb31b596d1fe9e8bb67f7e9d1c184694e
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 15:04:45 2000 +0000
-
- Set E2 metric for internal routes to LSINFINITY.
-
-commit 9a04d0307e85913554122a2dd0397486b5ef702c
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 14:52:22 2000 +0000
-
- Delete _all_ ext routes from unreachable neighbor.
-
-commit 528932368ac5c5ffe6ee3412fc8e9e1cb9cbd7db
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 14:43:42 2000 +0000
-
- Stuping bug in net LSA origination. Now, I should survive
- loss of my only neighbor.
-
-commit 1c1f1b6c0a9012aaf0d3b94275895cb87b5ff695
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 14:27:49 2000 +0000
-
- This should be enough from the SGMLtools distribution to make the
- SGMLtools happy.
-
- The only symlink you need now is dist/birddoc -> dist/sgmltool. I'm
- convinced it could be avoided by renaming the directory instead, but I'd
- rather avoid it due to CVS pecularities.
-
-commit 1885aa8ce33e6617d45dbc2f5ee2852bf5f72e88
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 14:25:27 2000 +0000
-
- Clean LaTeX .aux and .toc files as well.
-
-commit fcdddff5f3f5c9f2a15377a9dd08f105a3b696a0
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 14:24:21 2000 +0000
-
- Formatting of progdoc works in both HTML and LaTeX. The LaTeX output
- still has somewhat weird spacing, but it will be hopefully easy
- to fix.
-
-commit d1660fd3f38c29739ff36c86c6010d65fb90c608
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 14:21:56 2000 +0000
-
- Sort cleanup in aging.
-
-commit 70a383198ae08bed395f2a083c1bea5b37447705
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 14:06:33 2000 +0000
-
- LSArt origination and routing table calculation is now not doing so
- often. Instead of calculation I just schedule it latter.
-
-commit aa185265f1cb310c053edb1a3bde28b4dab94964
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 13:54:00 2000 +0000
-
- Updated headings and copyrights.
-
-commit 38cf78a97a1541cf80a5b10c08ab25d564654516
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 13:30:58 2000 +0000
-
- Added the introduction chapter of progdoc.
-
-commit 3caca73fd9c05121b9748793df5f1378af3a8ce5
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 13:30:29 2000 +0000
-
- Spelling check and update of LocalWords.
-
-commit fc741dab27913b9c5f9a97642158b5011a9c4700
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 13:20:25 2000 +0000
-
- Handle better next hop in external LSA.
-
-commit e0bbb7b7ef1aabbf037190225ebac11f7812ae84
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 12:52:12 2000 +0000
-
- Very ancient bug in (B)DR election, I didn't fill correctly my own IP.
-
-commit a7a3a0a383a9dadcd93d876e7d9b43f870f20941
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 31 12:07:09 2000 +0000
-
- Added tagging of external LSA.
-
-commit fec5bec0b5f0e114a635c99a731e922ce735ff81
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 11:36:21 2000 +0000
-
- Make documentation targets available from the top-level makefile as well,
- but not with separate object tree yet.
-
-commit 46527a939e97a8a0d6d023ad7853e5e9a2df1ea9
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 11:35:47 2000 +0000
-
- Modified the Makefile to work in the source tree.
-
- From now, you can just `make userdocs' in doc, no need to use ugly scripts.
-
- Also, `make progdocs' builds the programmer's documentation in HTML,
- LaTeX version to come later.
-
-commit fcb5f4a725c9edecca7d4646c633e42f66ab53b6
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 11:30:18 2000 +0000
-
- Updated all the Doc files to new format.
-
-commit 6be13de762cebc9fc5f977e0e3423a9e2ae23a95
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 11:29:56 2000 +0000
-
- New progdoc script generating SGML output.
-
-commit c9c3611734cfb8265586ad8447483cbba9727617
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 11:29:22 2000 +0000
-
- Added new output format `bird' which creates birddoc SGML.
-
-commit 3fc259549595c952befbe589764ae0bc1ae82728
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 11:28:52 2000 +0000
-
- Added tags for markup of programmer's documentation.
-
-commit c92795e934758a32472ebc5766ff0f61b1c1409c
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 11:28:07 2000 +0000
-
- Moved old TeX documents to old/ to make them not interfere with doc building.
-
-commit a2a3ced83eea3919639adafbdacb7ec11011f9cb
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 31 10:07:27 2000 +0000
-
- Added Pipe documentation.
-
-commit 0884f492232bb81366c04982bf4935307d273c26
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 23:29:23 2000 +0000
-
- Ehm, in had this in code: "break; i--;" :-(
-
-commit 3b0b2cb61f4e9c3bfbb4770b941c5aba56d9e70e
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 30 22:48:14 2000 +0000
-
- IPv6: Absolutize link-scope addresses of incoming packets.
-
- IPv6 socket interface is hopefully right now.
-
-commit cfa6ab0593a02c3d4d0d959c771f72430f1adf67
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 30 22:47:33 2000 +0000
-
- Added ipa_absolutize() which converts link-scope addresses to global scope
- ones according to prefix assigned to the corresponding interface.
-
-commit 69a20d2effb651e475b8ab8b04ee1a04a76db07f
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 30 21:46:21 2000 +0000
-
- Recognize `!'.
-
-commit 5919c66e8fdd87ee7e5c5a1e0ce01893e0ce103d
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 30 21:25:32 2000 +0000
-
- Route attributes for OSPF.
-
-commit 2cec475b8fbaa6cb0865ceacd900ffb678818330
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 30 21:24:53 2000 +0000
-
- Removed several unused local variables.
-
-commit 2f71123158973d770eee1dea64b46a4774bcf9a5
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 30 21:24:15 2000 +0000
-
- Killed bug in merging of dynamic attributes.
-
-commit caab3bb374d2671982d068c0fb0aa6217691d5bd
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 30 21:23:49 2000 +0000
-
- Better formatting of protocol status.
-
-commit 36032dedc619a39d45d6abe79d27110a98751ba9
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 30 19:20:02 2000 +0000
-
- Added section about client.
-
-commit 3e8645560624ac70ccc6d5f96fabcdae0a87cf4d
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 18:21:51 2000 +0000
-
- Added \n in debug.
-
-commit 7e1c7efae2762752ef897bfa215b299127412b66
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 17:57:06 2000 +0000
-
- Stupig bug in debugging.
-
-commit 3dd8f983b649c83f50d44ca2093ab1f931eaba4d
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 17:51:22 2000 +0000
-
- You can decide if add LSA into lsrth during flood_lsa().
-
-commit 3d410fdfa1a6fc20952cf94b39ebff197a3c065a
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 17:49:25 2000 +0000
-
- Reflood your old lsa.
-
-commit 13b02be25a41d7a505f7a888f948220a15edcf8a
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 17:00:17 2000 +0000
-
- Don't run rt calculation twice.
-
-commit b477a9a855f75486c2e03bb7b68faba7923bc511
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 16:49:48 2000 +0000
-
- Don't send empty LS upd. (And better debugging.)
-
-commit e1e31816c4e6931465936afa39f5773cf4591b35
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 16:48:42 2000 +0000
-
- Aging delta changed. (Ehm, aging is very dirty I'll have to change it.)
-
-commit 1b128de364e5a1931c1cc61b04c1e44960007025
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 16:13:59 2000 +0000
-
- Better shutdown.
-
-commit 935ceabea43714e4abae7ecaac0f072e8a4ecb15
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 16:08:29 2000 +0000
-
- Don't send empty LS update.
-
-commit a548a7e167d50587aac4549d32924c95dc329e99
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 15:05:47 2000 +0000
-
- Bug in direct ack (via update).
-
-commit 4513280611d6c4e3409bf75139a9bd844843d462
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 15:04:52 2000 +0000
-
- Bug in socket closing.
-
-commit ef6f26b417060f9ac6c26224469b909a0c3aa933
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 15:01:51 2000 +0000
-
- Bug in lsa comparision.
-
-commit 2aa476a535c878a412bb732eae16d97848f07ff3
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 13:39:06 2000 +0000
-
- Yeah, the endianity bug found.
-
-commit 76e2514328a71abd1ed37b9b32421d2ab924b4c0
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 13:25:47 2000 +0000
-
- Better dumping.
-
-commit 7b099bf9a73b4a81f74d90fa8f413c9ebd85f384
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 30 11:50:17 2000 +0000
-
- Recovering after change linuxdoc->birddoc
-
-commit 068b41272e8fbb81882a187dcef6d5f3d4e43ed2
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 30 11:27:42 2000 +0000
-
- Don't say too bad things about our concurence.
-
-commit e9df1bb64786b24a230686310aeb4850b93fa5bb
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 30 11:23:47 2000 +0000
-
- Small change in working to make it obvious we are free software.
-
-commit 1cb10462c33731817f61ffbdd2e42c538baf0e0f
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 30 11:22:12 2000 +0000
-
- Date removed.
-
-commit f3b33928ce43794d499dc0e1fbbeb623572042d1
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 30 11:15:19 2000 +0000
-
- Tried to change garbagetime -> garbage time to be more consistent.
-
-commit 24e1e2005b0728bfc404f248efb7d17b34cb0910
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 30 11:09:09 2000 +0000
-
- Another testbed for filters.
-
-commit 04c3a83c60253d5c71500194a19160538c0da034
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 11:07:31 2000 +0000
-
- Better inicialisation.
-
-commit 0dc4431cde1eeb06d9b4d7dbf18242919ce2811a
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 30 11:07:22 2000 +0000
-
- Access to all attributes we should be able to access seems to work.
-
-commit 5970fcda8c4eb2cfe69c04d50429855c7c57bb6d
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 10:53:48 2000 +0000
-
- Some exchange between init() and start().
-
-commit 26c09e1d25abff7fb88959dc6fbaa7ae5eb295ad
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 30 10:42:39 2000 +0000
-
- Added read-only access to all required fields in rta.
-
-commit 2d6627a7a5e52f8314520f9aefd82040e24849cb
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 30 10:42:00 2000 +0000
-
- Fixed bug in RIP docs.
-
-commit 73232f6b18222d73b38eae58e2c4c90062202709
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 10:36:57 2000 +0000
-
- Better rt dumping.
-
-commit 2bdb5e0083b6f24d29d74bb5e62cd13d724ba54f
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 30 10:23:04 2000 +0000
-
- Cleaning static attributes
-
-commit 05dbc97b13534eb886945d1f291aaba34238c99c
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 30 10:20:14 2000 +0000
-
- Bug in rt_notify.
-
-commit fe613ecded2fca875a146e1c07713f131e85f7ff
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 30 10:13:32 2000 +0000
-
- Access to few more attributes is needed.
-
-commit f7876c36602015dbf6d7aa3d73fda5ad1c2f6c5a
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 30 10:13:15 2000 +0000
-
- More todo in documentation.
-
-commit 298f2530ec05ee86c52f2fbce306ac186a3f6dd8
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 30 10:13:02 2000 +0000
-
- Moved description of filters to programmers docs.
-
-commit 9e85a5e6f26866a255577ff10786c12a64cba624
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 29 22:16:04 2000 +0000
-
- Delay user input whereever appropriate.
-
-commit 4761efdb43aa128fa0326963d88debe8fb942c84
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 29 22:10:18 2000 +0000
-
- Tracing of CLI connections/commands can be now controlled
- by `debug commands <level>' in the configuration. Level 0 means
- no tracing, 1 means connections only, 2 includes all commands.
-
-commit 26eee1c33ac90ccbc5753afac06d34980fade2b8
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 29 22:09:29 2000 +0000
-
- Updated TODO.
-
-commit 7294f68b3b3474183434ae05b43a344f1bfce6db
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 29 22:08:04 2000 +0000
-
- `path metric' and `disable after error' are switches, not numeric clauses.
-
-commit e67af42805c16093bb720a1bd04ad8932e86e49e
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 29 21:58:35 2000 +0000
-
- Support --version and --help.
-
-commit 5459fac61f3a645c636bdf32c140f4d7083034d2
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 29 21:03:27 2000 +0000
-
- Added BGP documentation.
-
-commit 56ab03c71f35c6c360b58b88f9e524c97714fdf6
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 29 13:47:18 2000 +0000
-
- Added introduction to BGP.
-
-commit 0e4789c2c3a8f217f01a4e472c8dd45db609c34b
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 29 13:13:58 2000 +0000
-
- Added Kernel protocol documentation.
-
-commit d9d41c60426ab1896bc689cd2a26c51f49e27e3a
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 29 12:46:27 2000 +0000
-
- Capitalize properly in Install section.
-
- BTW, what about configure options and similar things?
-
-commit 4f88ac47c671af2221061b793fa495a78994e44a
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 29 12:23:49 2000 +0000
-
- Reduce number of chapters -- having subchapter for 2 lines of code looks ugly in output.
-
-commit 0e694e041a99860454fe0a74eb83133d89896d62
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 29 12:18:30 2000 +0000
-
- Minor fixes as requested by Pavel.
-
-commit 440439e3cc2ce7a9e6b36e6801f37c42cce1a729
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 29 12:05:56 2000 +0000
-
- Really short installation section added.
-
-commit 04a22949d7f63d6979642e41ded0f61d7a477980
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 29 12:05:21 2000 +0000
-
- Renamed the DTD from linuxdoc to birddoc.
-
- Pavel, please check whether it builds in your environment as well.
-
-commit 897cd7aa559033aae99281e569a5153a22a952f9
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 29 12:03:28 2000 +0000
-
- Tried to write a better introduction.
-
-commit 9d8934891405348ad925d8421b673ea979f256eb
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 29 11:53:24 2000 +0000
-
- Docs updates.
-
-commit 79a2b697e3c94a787d72db4ed85b78928d3240c2
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 29 11:30:25 2000 +0000
-
- Added description of Static, Device and Direct protocols.
-
-commit 98627595fb4223991d60f809bbeac98cf34aabfb
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 29 11:22:43 2000 +0000
-
- Better description of how route is selected.
-
-commit d247d261e55bec7fadfef89c39ca3257816af771
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 29 11:22:30 2000 +0000
-
- Info about client. (Mj, if you tell me that's trivial, what about you
- writing it?)
-
-commit 2f647f3f9f51effbb63aee5bb2c45d054b7922e4
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 29 11:13:51 2000 +0000
-
- Added "what is router" to introduction.
-
-commit 1b55b1a3640da3ec2b032dcea3f4f7cbdff82303
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 29 10:32:37 2000 +0000
-
- Spelling fixes.
-
- Added skeleton for subchapters on all the protocols. Each subchapter should
- contain:
-
- Introduction (brief intro to the protocol, where should it be used,
- references to the relevant standards)
- Configuration
- Attributes
- Example
-
- Added a more detailed description of RIP attributes.
-
-commit e9d6b1d19fc35e611aa5a6020c0b531dee96d77d
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun May 28 20:11:56 2000 +0000
-
- Kosmetic change in debugging.
-
-commit f7c0525edcffc6c85d0e526c4c9741b06fc521d2
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun May 28 19:16:04 2000 +0000
-
- get_route_info() added.
-
-commit d150c6379c03a9df98ff5dd53a6442a10713b571
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Sun May 28 19:11:08 2000 +0000
-
- Documentation update.
-
-commit cdc25e8db7bfb38a9aca71abc5c202c25f4b0732
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun May 28 19:07:39 2000 +0000
-
- To find out a type of route (external, inter/intra area)
-
-commit 4414d9a57a0dae3da0e0e0d924bf8cab89070716
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun May 28 18:49:33 2000 +0000
-
- get_status() implemented.
-
-commit d5f029df482e596ccdbac341f605f6f809229db1
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun May 28 18:34:20 2000 +0000
-
- Just added some debug().
-
-commit 4bd28fb68e6e691aee87cec41f219224e2dd69dc
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat May 27 15:36:02 2000 +0000
-
- Better shutdown. (Flush my own router LSA and send 1WAY to every neighbor.)
- Ext LSA originating and flushing added.
-
-commit e8085abaa76c32bb325e378dfe2851bc98602c1e
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat May 27 14:17:35 2000 +0000
-
- Originating of external LSA.
-
-commit 2d5b999236c20d293006af0b4d94af7ae04dd2a7
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri May 26 19:04:18 2000 +0000
-
- Import control implemented.
-
-commit 216fd83c4b213ea3774d2c536ae089ea1e81b443
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 25 16:28:08 2000 +0000
-
- Spell checking.
-
-commit 9b24a6fb94049691075dfcdc00e2a0ae244c2325
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 25 16:17:54 2000 +0000
-
- Text version generated from lynx looks as ugly as hell, sgml is much better
- at generating nice output. Unfortunately, sgml output contains a^ha highlight
- some printers do not like.
-
-commit d26524fa0c06f6716d5e226b18d7d4770924c6d4
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 25 15:28:24 2000 +0000
-
- Add section about routing tables.
-
-commit ad9074e9ba2f2c1fa7e681b5f79f9049e5c640f8
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 25 15:20:40 2000 +0000
-
- Cleaned up warnings.
-
-commit 69477cad708235f2ab79796dc62c06d3c879111c
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 25 15:11:13 2000 +0000
-
- Add section about utility functions in filters
-
-commit 4a5bb2bf1bbbb7d2bba7776af481a13a58ec39ae
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 25 15:01:08 2000 +0000
-
- Description of types needed for BGP.
-
-commit 9a09a64bb4160a5bb79cdf91bd95b7f77966f62e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 25 14:58:38 2000 +0000
-
- Use ? in path matching to avoid /* trap.
-
-commit ba1dda495ad29cd86260533828ce38c7d327f045
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 25 14:50:46 2000 +0000
-
- SGML correctness fix.
-
-commit 0e5373fd823d174d0cdd7820fc94cdbe4b0db5a3
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 25 12:33:42 2000 +0000
-
- Some more documentation, plus minor fixes.
-
-commit 72282e2a1b52552eadd61a86659119db8478427d
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 25 12:33:15 2000 +0000
-
- Fixed comment not to be misleading.
-
-commit 416e3ee4b07d9ed30ada45eee736d877efe139db
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat May 20 11:00:14 2000 +0000
-
- Get Linux version from <linux/version.h>, not `uname -r`.
-
-commit 2eca3b3a9ce8ea405f81cb1dbf55b79d3b2d3c18
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 19 19:49:33 2000 +0000
-
- Routing table garbage collector gets really called.
-
-commit 0ba8a6147d2a6ca4611c9e87e6b9d640d94966b4
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 19 19:40:12 2000 +0000
-
- Fixed a very nasty bug in FIB iterators.
-
-commit d2a7c0e9b2b51287cca6bf9f9ef513cbe29d4dbd
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 19 18:05:19 2000 +0000
-
- Don't print trace messages about null updates.
-
-commit 3ced9b349daeb64357136311e436401c246d7777
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 19 18:05:01 2000 +0000
-
- Fixed freeing of non-embedded extended attributes.
-
-commit 075898dea7ee73b49462af3d3ab0269fd46afcc4
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 19 18:03:53 2000 +0000
-
- No more problems when protocols gets disabled during feeding.
-
-commit dc6405d27e1ecedf6289039c7b3ed94c50683b2d
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 19 17:21:42 2000 +0000
-
- Latest changes by Pavel have removed the error messages printed after
- unsuccessful socket open, but replaced them by segmentatio fault!
-
- Grrrrrrrrr.
-
-commit e66e6c2119e9de2f8012e587eafe752723706265
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri May 19 16:57:40 2000 +0000
-
- If community list is not defined, act as it is empty.
-
-commit 9511a483b1b735d8bf9f671d494b363da5719ecc
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri May 19 16:44:25 2000 +0000
-
- Less error messages in case sk_open fails.
-
-commit eb4097e4e47db23403c4050b43ea5136ffbe4b41
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri May 19 16:22:53 2000 +0000
-
- Added name of protocol to messages being logged.
-
-commit af0b25d20d1476d81696fb0241a815fb45168f53
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri May 19 15:59:21 2000 +0000
-
- More updates.
-
-commit 242352b7a7f1b181b6e42dc77b998005d3f07c78
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri May 19 14:13:49 2000 +0000
-
- Improve docs of log statment, improve markup.
-
-commit 8af8a87375f3a609583866a5f50487baebe38e2e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri May 19 14:05:55 2000 +0000
-
- Descriptive lists rendered better in TeX.
-
-commit a0dd1c74334fa22588f9d1c8cb73013f1940b974
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri May 19 13:58:39 2000 +0000
-
- Some spellchecking, and use right tags for right things.
-
-commit 5e88d7302599b7ac521624c77adf0b3c72601670
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 19 11:01:41 2000 +0000
-
- BGP now reports originating AS and origin type in get_route_info().
-
-commit f49528a3dfa034415527824cbbd0762f3829f0cd
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 19 11:01:06 2000 +0000
-
- Added as_path_get_first().
-
-commit f7ad556f2017075abaef659bf018a0ce215b13b3
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 19 11:00:47 2000 +0000
-
- Commented out the `inserting entry which is already there' message since
- it's pretty normal: during feeding of the protocol, a new route can appear
- which will be announced normally and then repeated by the feeding process.
-
-commit 76dfda9e74580b6c07206b7afbbdafeea36ad08f
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 19 10:59:47 2000 +0000
-
- Fixed a buglet in asynchronous feeding and increased maximum number
- of routes allowed per feeding phase.
-
-commit ac5d801217b4b85a5f716ace25f7f9ac48dfee0f
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 19 10:46:26 2000 +0000
-
- Asynchronous feeding of protocols.
-
-commit 0850ce22d76c80c4f6a10fd0139d4cc903716bfa
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 17 21:20:47 2000 +0000
-
- Smal debug bugfix.
-
-commit 6d5e703dc9ac387d72005f3b5da82e80275d5fc6
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 17 20:23:05 2000 +0000
-
- Minor cleaning
-
-commit 00c1f79a79281c16beec132d945db480daca958d
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 17 20:01:25 2000 +0000
-
- rte_same implemented.
-
-commit bbd76b421a1975560084e50669db9cacd61d2b58
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 17 19:27:51 2000 +0000
-
- rte_better implemented.
-
-commit 9f0d45d634ac38d54ed92c5726fbaed65850e15f
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 17 12:14:05 2000 +0000
-
- Finished cleanng up mess: multiplication reinstalled.
-
-commit 4ee2178935b1f4cdd465e290c13f6580901cec8d
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 17 00:28:45 2000 +0000
-
- Don't die, if you receive strange LSA.
-
-commit 7f6b3cf247c0df8d10e9ed29a5ff6a6af5e1cf8f
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 17 00:28:11 2000 +0000
-
- Typo in comment.
-
-commit 18a0c0bb763d918f3a06bfeb2be2b1051a7f4629
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 16 23:59:38 2000 +0000
-
- Downing of interface should work.
-
-commit 8fb0c2c298fbfa133cf783a1547bc3b1c84fe466
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 16 23:24:50 2000 +0000
-
- Calculation of external routes finally works.
-
-commit 31834faaf3ab055242e3a9998a37029b56f54d8a
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 16 22:43:30 2000 +0000
-
- Ehmm, removed 'if(1 || ...' so I can test the second part .
-
-commit b1c9d871614874092e397ae505799be82284713d
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 16 22:37:53 2000 +0000
-
- Fixed the horrible mess Pavel has created with his last commit.
-
-commit 508c36ab7981a8e50d1235c2c443491e4b04aa01
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 16 22:34:49 2000 +0000
-
- Routing table calculation for ext LSAs having next-hop=!0.0.0.0
-
-commit a96a979d5b2b3a7ef02d878e9598d3268cb4c8a7
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 16 18:50:51 2000 +0000
-
- Line numbers for runtime errors (what's wrong with cvs? I could not
- commit this from home)
-
-commit 7581b81bd7a77b5baebbd43833c00574d543c62e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 16 18:47:06 2000 +0000
-
- More additions to documentation and spellchecking.
-
-commit e5a47266d0d6b8614c5199ea513de029b35552b0
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 16 15:08:52 2000 +0000
-
- Turned off LOCAL_DEBUG.
-
-commit e79671a72ccd392debcce1cdc05e46747eaf37e2
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 16 15:08:43 2000 +0000
-
- Fixed incorrect error message about router ID syntax.
-
-commit 5b846de6a6361b3c8aac84438e7b332c972f2a08
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 16 15:05:05 2000 +0000
-
- Interface dummy is too strange for me... but psst, that's secret.
-
-commit be77b6890c5f6b956553c0432554e5912a30528f
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 16 15:02:33 2000 +0000
-
- Poisoning: take there...
-
-commit d6796e7b546bd0a28b85666a95eda039eabc5c5f
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 16 15:02:27 2000 +0000
-
- Don't segfault when someone adds passwords.
-
-commit 2f2663bdb735ca155c32b0e12da814e62bbf9e9d
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 16 15:00:15 2000 +0000
-
- Password same now actually works
-
-commit 898fdd85dc4568816ac0436c1b012f2fb35ef3e4
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 16 14:58:06 2000 +0000
-
- Rip should now reconfigure itself only if needed.
-
-commit 60de3356ab9b1996a84e3ba2865176a078b6d0ca
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 16 14:24:33 2000 +0000
-
- Resolved shift/reduce conflict
-
-commit e2f4f275646d21de363c32ff3c8fb4f492f07c04
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 16 13:53:44 2000 +0000
-
- Oops, the poison was too deadly...
-
-commit b8e60d3562277762ec372424482b22c024e657d6
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 16 13:51:31 2000 +0000
-
- Added poisoning of free'd objects when we're debugging.
-
-commit df9f0fb30a7046872eff21624a315d5fd56e938f
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 16 13:43:26 2000 +0000
-
- Don't log state changes if nothing user-visible has changed.
-
-commit f990fc61e0dd13ae90c9bbff811736dfd52988b0
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 16 13:36:38 2000 +0000
-
- When in persist mode, don't delete routes from kernel tables even if
- they cease to exist in our routing tables due to protocols having shut down.
-
-commit c5a06f65ee20328b8d0f2276287e223e4fd4a595
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 15 12:27:45 2000 +0000
-
- Allow other operations than +.
-
-commit f4ab23174688920e44bb4cae6e8b4f280a066e28
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 15 12:19:28 2000 +0000
-
- bgp_get_status: If protocol is down, don't print BGP state.
-
-commit cbfd671f114a96095f021662ad1cf0eaa6d089c1
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 15 12:19:26 2000 +0000
-
- Allow accessing defined symbols.
-
-commit cc590a11a7a285463dff89d0bd677d0762dd8e45
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 15 12:15:18 2000 +0000
-
- Changed syntax of expressions. Each `expr' can be now either a numeric literal
- or a symbol or parenthesised filter expression.
-
-commit 6be662d917822e9a23b0abd613e170c1d42bfdbe
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 15 12:07:09 2000 +0000
-
- Use new eval mechanism for testing filters.
-
-commit e3f2d5fce3e339bb34f14d7b2569c1bd43b741ba
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 15 11:48:23 2000 +0000
-
- Cleanup of configuration.
-
- o Use `expr' instead of `NUM' and `ipa' instead of `IPA',
- so that defined symbols work everywhere.
- o `define' now accepts both numbers and IP addresses.
- o Renamed `ipa' in filters to `fipa'.
-
- Pavel, please update filters to accept define'd symbols as well.
-
-commit 3b1c523d79763b22e0fe06862ff349fd94e816b1
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 15 10:53:56 2000 +0000
-
- Got rid of startup functions and filters_postconfig().
-
- By the way, how do you expect pointers to fit in an int?
-
-commit 1c20608e02109ef0839e0168d100c75f0cc65fd9
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 15 10:49:38 2000 +0000
-
- Added f_eval_int() and EVAL configuration command.
-
-commit 9449c91ab2eb962b17989125c712f805f82a092b
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat May 13 11:42:42 2000 +0000
-
- Added `show route for <prefix-or-ipa>' which looks up route leading to
- given network.
-
-commit 56d6c530eba46dde7280d6743fea7e750f2d5635
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat May 13 11:42:06 2000 +0000
-
- Added fib_route() which does (although very slow) lookup of longest-match
- routing in a FIB.
-
-commit d3abfbc68d7f921b2547b39a6baa9bee6c89b78d
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat May 13 11:41:26 2000 +0000
-
- Added prefix_or_ipa.
-
-commit 758458be054ebdf4cd77620faf214f2b491a49dc
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat May 13 11:17:49 2000 +0000
-
- Unified parsing of prefixes.
-
- Had to rename `prefix' in filters to `fprefix'.
-
-commit 02bd064ab76f163313261dad5c273cb376be2a75
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat May 13 11:02:02 2000 +0000
-
- Adapted to new rt_notify semantics.
-
-commit e4bfafa1008918cf904ede023feb18fa4cb7d524
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat May 13 11:01:41 2000 +0000
-
- Manual enable/disable works right.
-
-commit 08f0290a1ebf94624c4eb4cbcb10e2b35a846432
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat May 13 11:00:37 2000 +0000
-
- Changed semantics of the rt_update hook. The attribute list we pass now
- contains all attributes, not just the temporary ones. This avoids having
- to merge the lists inside protocols or doing searches on both of them.
-
- Also, do filtering of routes properly. (I'd like to avoid it, but it's
- needed at least in the krt protocol.)
-
-commit bfd7117846271a5e54271ee5248addd7e10ad021
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri May 12 10:57:36 2000 +0000
-
- Documentation fixes suggested by mj
-
-commit 7e681ef3603862829c3bbf6b5c81c69c34faeb81
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri May 12 00:22:43 2000 +0000
-
- Calculation of external routes works. :-)
-
-commit be2bb403414b2d8cd608b710a29992b2c8a4c8b0
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu May 11 22:02:53 2000 +0000
-
- Minor changes.
-
-commit 5da1f935374b2e0435b67cc4d867369d522e62ff
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu May 11 22:00:55 2000 +0000
-
- Bugfix in flooding. (bad size)
- Better debugging.
- More robust in receiving.
-
-commit c8d1f3feb2e2ca12aee76b1ce907dfff31c1012b
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu May 11 22:00:16 2000 +0000
-
- Better debugging.
- More robust.
-
-commit 7a42e6ce899ceec7329212b9ceca4f15387fc280
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu May 11 17:14:57 2000 +0000
-
- Bugfix in network LSA originating.
-
-commit 67edcf392f74e1c79ea521d583df7ca365caea0b
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 11 16:55:26 2000 +0000
-
- Updated README, generating the first alpha release.
-
-commit 0e5aa966cca94152363b2d8e9c1b316c04d90adb
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 11 16:30:56 2000 +0000
-
- Multicast problems should be gone, although the fix is Linux only and we'll
- need to figure out something better when working on new ports.
-
-commit 28323d9ddbdcfa35c6dec139da4eefca584b143e
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 11 15:05:13 2000 +0000
-
- Several minor RIP changes (Pavel, please check as usually):
-
- o Use FIB_ITERATE_INIT instead of calling the function fit_init()
- which is explictly marked as private in route.h.
- o When printing trace messages, don't spit out protocol name twice.
- o Some messages are a bit more verbose.
- o Added a bunch of FIXME's.
- o When running in broadcast mode, don't forget to bind the local
- end of the socket to the same broadcast address, so that we don't
- get the broadcasts looped back via different interface. I'm just
- going to look up the same problem for multicasts.
-
-commit 109c2f6cf350069c12abb7d182da6458ff56c1c7
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 11 12:30:06 2000 +0000
-
- If a broadcast address is missing, go fake one.
-
-commit 2138d3b4d84058338ad4010eff8da62afa6531ab
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 11 12:20:07 2000 +0000
-
- Use correct flags for the LOCAL_PREF attribute.
-
- When an invalid attribute is found, copy the entire attribute to the data
- section of the NOTIFICATION message.
-
-commit 6e06e6eef098859da95ff56a8ee9b4c75467901a
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 11 12:00:35 2000 +0000
-
- Critical files from linuxdoc1 distribution checked in.
-
-commit 0e7a720a1c8119912c00edf893702857c0d39d04
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 11 11:54:03 2000 +0000
-
- Use <m> instead of <i> in bird.sgml, fix url references.
-
-commit 7692aad10c22a58a6f83d82fc0b11db94cc777f9
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 11 10:47:33 2000 +0000
-
- Don't include Rules: they are not needed and break stand-alone make of documentation.
-
-commit ec21aecfddde3be2b061850a050108265dfbf194
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 11 10:33:18 2000 +0000
-
- Fixed nasty segfault in rip.
-
-commit 10f5c47d2e3d9fdeb2dd4ade1d09a1e06b53a7f6
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 11 09:41:16 2000 +0000
-
- Some more paranoia into rip_insert and rip_delete
-
-commit 94d1a6c9dc9ac578cb88428462ab41f113ca4e23
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 11 09:36:55 2000 +0000
-
- Unused variable killed.
-
-commit 394920a09c6163d2b98896802526c79c82f52d20
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 10 23:42:37 2000 +0000
-
- Test better lsa size.
-
-commit 31dca4353460b7a8bfb272e63ceac46deb3a6944
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 10 23:42:13 2000 +0000
-
- Be more verbose.
-
-commit 74ac7cdb1afe1e23a130b290f4a366268073f62c
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 10 23:41:52 2000 +0000
-
- Bugfix in (B)DR election.
-
-commit ff73f1d63d2d1e49737ea2471dc5cb92e9591847
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 10 23:41:18 2000 +0000
-
- More robust tests in packet receiving.
-
-commit 13741548a6a75479577ea991bad1e38a4fba6320
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 10 15:04:21 2000 +0000
-
- Some better lsa checking added.
-
-commit a9c41c854802d1a8d44e666548423589022111c8
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 10 14:29:00 2000 +0000
-
- Out dump deleted.
-
-commit 2a41c8d9fcd2907a531c7306e174f51218486d57
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 10 13:42:50 2000 +0000
-
- use password_same utility function
-
-commit 45a48e2de21cbf1a48c6f478ed068e48f20f918b
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 10 13:42:46 2000 +0000
-
- password_same utility function
-
-commit a3f657ac764ff38a5829f27a0dccbf6220043a1a
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 10 13:35:49 2000 +0000
-
- Ever test possibility of forming of adjacency.
-
-commit 3e474192745e7e92d27cad7ffa16a8395e884cf2
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 10 13:23:21 2000 +0000
-
- Inlined metric and mode into struct rip_interface to make reconfig
- work.
-
- reconfigure is conservative but should work.
-
-commit 30aa02d70df2275d2289d9b736d879b9951bcaee
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 10 13:05:39 2000 +0000
-
- rip_reconfigure done right
-
-commit b8524e9be4f1d15f4cd2cd365d7842eff8d5a499
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 10 12:48:06 2000 +0000
-
- ipa_same does not exist.
-
-commit 0bff946c0a29469b669939813e5a2861c1f010fb
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 10 12:46:47 2000 +0000
-
- Nicer messages from rip.
-
-commit 6f3849774ffe35e445e33ba03f041c1a84ba35f1
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 10 12:38:05 2000 +0000
-
- Use ea_get_int instead of ea_find.
-
-commit c7e46aae66861ce282e9b1a0140fa422763094ce
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 10 12:37:43 2000 +0000
-
- Destroying of neighbor moved from 'hello' to 'neighbor' and
- improved.
-
-commit 7f5f44bb9248f05f397617f3874feef26bbb0b0b
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 10 12:32:45 2000 +0000
-
- Reconfigure hook copied from bgp.
-
-commit 84a1305437ddd893771c43d1a9bff32260a56789
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 10 12:26:09 2000 +0000
-
- Send first udpate sooner.
-
-commit 14758d87c48e9d829f58ace0736b0c5b3c7dc6ae
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 10 12:23:06 2000 +0000
-
- Only announce change to main routing table if it is better than current.
-
-commit 353f3261385267fd07b634284989a760fc37b79d
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 10 12:22:00 2000 +0000
-
- Better dumping.
-
-commit 5e50f0a0289517e64e026cb27e886d49e6044aca
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 10 11:57:56 2000 +0000
-
- Don't touch used memory.
-
-commit e8bd039da8de22de85bd135617b4a8ce9c979585
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 10 11:52:39 2000 +0000
-
- Bugfix in ip_addr endianity.
-
-commit be3b6dc574c26ab3292fb2ceb94809242bea3d79
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 10 11:48:34 2000 +0000
-
- Killed unused variable.
-
-commit 28950169e7ac82ceb9a6d72fe2789714b4073eb2
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 10 11:48:21 2000 +0000
-
- Bug in (B)DR election fixed.
-
-commit d9f89e011498ec54006a026d9e0dd963db663ab0
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 10 11:40:30 2000 +0000
-
- You can now say "mode multicast".
-
-commit 65a9c57175b60048d5501b2c951d5e46b3909fcb
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 10 11:22:08 2000 +0000
-
- Change u32 to ip_addr in ext lsa.
-
-commit aa1e082c6779505e9ca24ba9f9d6cdfd4c647b06
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 10 10:47:17 2000 +0000
-
- Calculation of external routes.
-
-commit 4bfe4e8551722533cc99c776b3b70818ef59bf24
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 10 06:56:42 2000 +0000
-
- Fix segfaults by using new ea_get_int.
-
-commit c0100454cf37833d23fdb9d24412de659f683c12
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 10 06:54:40 2000 +0000
-
- Added more convient interface for ea_find.
-
- What is special about int default;? Compiler chokes on that!
-
-commit fe95ab68164f0c9f18e65f7965ac4d93b24bef97
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 21:52:58 2000 +0000
-
- FIXME's removed by deleting them. :-)
-
-commit 32fa4a5a461eb1af4146d9985663d90fcddd9697
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 21:06:48 2000 +0000
-
- Premature aging of self-originated LSA received in flooding.
-
-commit 3b8b1bd03709d2fa2eab8ec81321717e3b58dcaf
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 19:38:34 2000 +0000
-
- Better dumping.
-
-commit a3ae6246c29ecceefc1e867c7b5f73a5b3c857c9
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 19:38:16 2000 +0000
-
- Bugfix in lsrt slist adding.
-
-commit b224ca32cfb5268db4984b5a640ab8a73852059b
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 19:36:32 2000 +0000
-
- Flushing of old LSAs added.
-
-commit 850fda2518d6e91ca8e126ff91adad62fd507276
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 18:35:57 2000 +0000
-
- Backup seen is not called so often.
-
-commit cd22a62b3ce3aa4cf8985337657ec9750176aa49
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 18:20:39 2000 +0000
-
- Don't send flushed LSAs.
-
-commit 9669362f0577dbda0d7b9495d0c2fec11fa866f1
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 18:17:34 2000 +0000
-
- Many bugfixes. (I added one entry twice to slist.)
- Debug cleanup.
- Retransmiting of unacknolegded LSAs
-
-commit 5f743d969739d6dca12b51561baac3131e160429
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 13:56:47 2000 +0000
-
- Many bugfixes. Actually, how could this ever work? :-)
-
-commit 5d608eba1636e307624300fdd47b9024be92d39a
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 12:31:38 2000 +0000
-
- Bug fix in sending updates.
-
-commit 0e1b949be7f71d038e871dac159b424e76978bff
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 12:18:41 2000 +0000
-
- Bugfix in testing of possibility of adjacency.
-
-commit 432996f40fceb58cd5ee5026eb4f7018ef6af1ef
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 12:03:57 2000 +0000
-
- Better dumping.
-
-commit 54ac9d2e03c6ae44b4e183c9bcf963196218c477
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 12:02:48 2000 +0000
-
- Bugfix in hello.
-
-commit 4057093fa40248c5b607039481576a6c5e4e902b
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 11:52:44 2000 +0000
-
- Small cleanup.
-
-commit 551d44438275e9ebc9e7590814f413ac7d0cccd6
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 11:29:52 2000 +0000
-
- Sorry, it didn't compile. :-(
-
-commit b29c620f90d429b868038984a5427470f00aebac
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 11:27:31 2000 +0000
-
- Another bugfix in neighbor state machine.
-
-commit 279a3b76d193944431a992a1ac43543fe15ab903
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 10:47:10 2000 +0000
-
- Small bug in neighbor state machine.
-
-commit fafe44b651f68d0a588cac94ddada8a1270adb97
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 9 00:03:08 2000 +0000
-
- Just added declaration of AS Ext routes calculation.
-
-commit 43e75f38e7b8716efb3729ee56fd4a879e03c1dc
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 8 23:46:31 2000 +0000
-
- Do not stop lsrr_timer in FULL state. Use it for retransmition.
-
-commit ed4a53c6a5685d04fe2b0cceda83860324f4892c
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 8 22:50:37 2000 +0000
-
- Some changes in debugging.
-
-commit 9bacea42112216e604bd55e3027e019e131304dd
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 8 22:49:58 2000 +0000
-
- Fixed some FIXME's by deleting them. :-)
-
-commit 8a3049f6f139622c6976502d931c746449a1fe48
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 8 22:42:56 2000 +0000
-
- Useless '\n' in log()
-
-commit eae4fcf2539703d0dbd47e29ab24be29e0ddc2ff
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 8 22:40:55 2000 +0000
-
- Stopping RXMT timer when going to lower state than EXSTART.
-
-commit d8033f2238922f3c63c247e924f1e31659d821ef
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 22:37:16 2000 +0000
-
- Generated first public alpha release.
-
- Unless you object, I'll announce it today (9.5.) at noon.
-
-commit 8aecbf160adb15eef3f66d750745928f66f8a310
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 22:33:50 2000 +0000
-
- New example config.
-
-commit c976342828d5de3d16b59d623f4f7fb03f52acc9
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 22:33:38 2000 +0000
-
- Implemented debugging function rlookup() which you can call from gdb
- to see what resource does the address given as a parameter belong to.
-
-commit 0521e4f68490d5ef5cc6ba6b2b4e4edf7cf6aa1a
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 22:33:02 2000 +0000
-
- rt_prune: Don't kill routes from protocols in FS_FEEDING state. If debugging,
- call fib_check() on the table's fib.
-
-commit c09d1e8df2d5d1ebfb4ce3dfbe93347a83acd99d
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 22:32:17 2000 +0000
-
- KEEPALIVE TIME ought to set keepalive time, not connect retry time :)
-
-commit 5ff0a270cb411d423a78ed13604a5f2b25d4b289
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 22:31:58 2000 +0000
-
- In non-debug mode, set default logging to syslog only, not stderr.
-
-commit 4524331a3d758106f4ffa6a54a60aeae45341789
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 22:31:34 2000 +0000
-
- Fixed type in daemonization code.
-
-commit fc0ca2d8e1ab6a71a81f5f12c04f02d670d22348
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 8 22:28:42 2000 +0000
-
- Typo in debug.
-
-commit a6fdf9c6ac58e2d95d84c58102af8d5f3a70958a
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 8 22:27:25 2000 +0000
-
- Grrr, useless debug.
-
-commit 5ee479aac9e488e15245905c598e778eb787dfe1
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 8 22:26:11 2000 +0000
-
- Small typo.
-
-commit 0ebb8b64f384d57889271389abe9b8926dde7af8
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 8 22:24:22 2000 +0000
-
- Bugfix in new neighbor allocation.
-
-commit 77fbd315dfa2dd6b8252cf13386d8b8480234bcc
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 8 22:10:10 2000 +0000
-
- Better debug output.
-
-commit b57a45b81a74c091bbc71966a7c6aacebaf34e57
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 8 22:03:29 2000 +0000
-
- Next hop calculation improved. (I ignored stub networks advertised by my
- neighbors.
-
-commit 158b99c912ef5c5cef22fd3e343341cbb52eb105
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 8 22:02:45 2000 +0000
-
- Better logging. (%d->%I)
-
-commit 8abbde02d46830168b79a1df6c18c3ffaea49b9e
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 19:11:49 2000 +0000
-
- Several simplifications of the fib iterators.
-
-commit 0bcba21e893efb9853a68b04674e4bde9da5a1b8
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 19:10:36 2000 +0000
-
- When not debugging, daemonize automatically.
-
-commit 33a368ad594822239bfbaa2eab50c76171e09b9e
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 14:58:00 2000 +0000
-
- Implemented `show route count' which is `show route stats' with
- exception that it doesn't print the routes themselves.
-
-commit 0c3588bf5e43936ea0f1e630dea500912b598c60
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 14:53:22 2000 +0000
-
- Don't crash when the socket gets closed between updates.
-
- Also, this time not only update `remains', but update it right :)
-
-commit 6b5ab87581ba496ad0a9c12ef66f1372e1459685
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 14:51:57 2000 +0000
-
- Added `--disable-memcheck' switch which avoids linking of efence/dmalloc,
- so that we can run in debugging mode with large routing tables.
-
-commit e48dae3ed70daf52ad93c4fdc73270ab1510661f
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 14:51:26 2000 +0000
-
- Stop feeding the protocol if it suddenly shuts down.
-
-commit 9ff8f334edec974b16497e1e74172977e0fff221
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 14:32:19 2000 +0000
-
- Update `remains' counter correctly.
-
-commit d69e5ff2ad8b552c22770e4c85bd7c5afafe2816
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 14:29:30 2000 +0000
-
- Use PATH_CONTROL_SOCKET instead of tacking on "bird.ctl" manually.
-
-commit cd44b466515578583d46dcb1a0abdae6e658a166
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 14:24:19 2000 +0000
-
- Forgot to add a spiky comment :)
-
-commit f9254d2349c7e2e3c110f7850e402d1c11624940
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 14:19:47 2000 +0000
-
- Autoconf is *evil*. The sysconfdir and similar variables are unusable in
- C includes as they contain substitutions specific to make.
-
- Worked around by creating sysconf/paths.h which is created from
- the Makefile instead of by the configure script.
-
-commit 0bf7386b33fecac40be43f8db5b0ba0356123fd2
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 14:18:33 2000 +0000
-
- Updated TODO.
-
-commit c0760ab0fc880778f23c71a7874aa38f90e28925
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 13:56:11 2000 +0000
-
- Debugging compilation is no longer default. This means that the configuration
- file is expected in $prefix/etc etc.
-
- Use --enable-debug to request debugging.
-
-commit d8508f70b0325cd283bc1551c455cdc3aab011fe
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 13:54:59 2000 +0000
-
- `make install' now works.
-
-commit 93d6bf38a6c07b8281e11280d5cdbb721d19f7c8
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 13:26:30 2000 +0000
-
- The bgp_list is gone. Incomming connections are now handled in a much
- more straightforward manner by scanning the active configuration for
- matching protocols.
-
-commit 5d86aefb6c4a8e298ee79dc9cbf7c07196d56b5b
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 13:12:14 2000 +0000
-
- Really free attributes.
-
-commit 818ff1e2b7b8eb8e707608e76ead94e5c6bd442c
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 12:38:00 2000 +0000
-
- When reporting a bug(), call abort() instead of exit(), so that we
- can analyse the core.
-
-commit c304392e65a3d6554e97bce00146fe5f2bcb64b1
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 12:37:39 2000 +0000
-
- Some less socket error messages.
-
-commit 507eea4c8b4c52a5ddf232bc180a7a42cf29f074
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 12:37:24 2000 +0000
-
- Don't generate corrupted packets when sending only route deletes.
-
-commit 9cbf43eb8a7e0186144e95d7b244e0c69b0e9189
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 12:09:10 2000 +0000
-
- Don't report refused connections.
-
-commit b6c9d8eb2e255b65f29efd1acfd35a4277b3bf14
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 12:05:55 2000 +0000
-
- Removed the `async' switch which was used for debugging only anyway.
-
- Don't moan when netlink reports lost packets.
-
-commit d0126f0bf0098104cd99fedd61a4bdbe7f7b3f1f
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 11:40:30 2000 +0000
-
- bugs_in_attr_cache_hashing--;
-
-commit 79681f4a19d0eca6e40d919a387099f5646f29bc
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 11:04:22 2000 +0000
-
- Link the instance to the global BGP list as soon as possible.
-
-commit 94e935d8a2e02f18e3731624720e8f84be5e9f15
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 11:02:53 2000 +0000
-
- Incoming buffer must be at least 8KB long.
-
-commit 916c8c0abacfd5ba93353fec9dba84a81845c95e
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 10:40:00 2000 +0000
-
- Use preferences properly.
-
-commit 1151401e2b8b4434bbd1419ff33a48f2848d600d
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 10:38:51 2000 +0000
-
- Don't crash when reporting deleted routes.
-
- Set preferences correctly.
-
-commit 92ef4fa719058af80a9dbb39e3d2fbd9314e8a1a
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 10:38:25 2000 +0000
-
- Preference is a configurable parameter.
-
-commit 0117d004945afdfb6cc9a62db4561cd4eddee24a
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 10:37:45 2000 +0000
-
- Fixed `show route primary'.
-
-commit 18c031fae8945409b0ff1139d88092ba19ec2780
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 8 10:13:59 2000 +0000
-
- Debugged printing and pruning of neighbor cache entries.
-
-commit 0d3070824da904bd0f3f576b353b738bfa15a53a
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 7 11:32:34 2000 +0000
-
- Don't count networks with no routes (they are not displayed at all and
- will be removed during the next garbage collection pass).
-
-commit 23693958aa95edf5baaeaa5baa55725dc4895681
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 7 11:28:59 2000 +0000
-
- Implemented `show route <...> stats'.
-
-commit 6998bb9ee345a0e8b558fc87133f1c2a442b7096
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 7 11:28:34 2000 +0000
-
- Squashed one bug in fib_rehash(). No more routes disappearing as if struct
- by a lightning :)
-
-commit 891cec854f84674317fa152b71254fc52d893826
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 7 11:27:23 2000 +0000
-
- Killed one more reference to RTS_RIP_EXT.
-
-commit acfce55c8637988954543c60597cd2f1525ba6ec
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 7 10:41:45 2000 +0000
-
- Setup of incoming connection is now a separate function.
-
-commit ce1da96ee7efc9310f138e4234495557cdef59e2
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat May 6 22:57:39 2000 +0000
-
- Added commands `show route protocol <p>' and `show route import <p>' which
- show the routing table as exported to the protocol given resp. as returned
- from its import control hook.
-
- To get handling of filtered extended attributes right (even in the old
- `show route where <filter>' command), the get_route_info hook gets an
- attribute list and all protocol specific rte attributes are contained
- there as temporary ones. Updated RIP to do that.
-
- Added ea_append() which joins two ea_list's.
-
-commit 84f070020500de40e69e6d00df9d41ecc90a3b23
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat May 6 21:46:09 2000 +0000
-
- IPv6 support compiles on both glibc 2.0 and 2.1.
-
-commit 498c33395f99743206088770c441222c76493378
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat May 6 21:42:19 2000 +0000
-
- Cosmetic fixes.
-
-commit 0b7610985cd44435ab40dd2e78646f400db908c5
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat May 6 21:31:41 2000 +0000
-
- Fixed silly bug in previous commit.
-
-commit 67be5b23cd80646c2aa5a9c6a3d373ceecb275b6
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat May 6 21:21:19 2000 +0000
-
- When rte_update is called for an identical route, don't announce anything.
-
- Please implement the rte_same hook in your protocols. It should just
- compare your metrics stored directly in rte, the rest is done by the core.
-
-commit ab1129c1bdea41ff06fd21390cde5667d07f6e65
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 5 17:17:42 2000 +0000
-
- Added skeleton Doc files for the whole developer's documentation.
-
-commit b177724896b75159dbc8e203ac0e5a134229ae90
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 5 17:15:56 2000 +0000
-
- Connected the `doc' subtree to global makefiles.
-
- All documentation is built in obj/doc (resp. doc/ if you do a stand-alone build).
-
- Use `make docs' to make the whole documentation or `make userdocs' resp.
- `make progdocs' for user manual resp. developer's guide.
-
-commit c7d7794bb9a71be58d06c6c9ea67943d3e33a566
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 5 17:14:44 2000 +0000
-
- Added a tool for processing of developer documentation.
-
- Everything is controlled by Doc files in source directories (see the
- corresponding programmer's manual entry for the format and look
- at Doc and lib/Doc for an example).
-
- Currently it generates HTML indices and calls kernel-doc to generate
- per-section HTML files.
-
-commit 249d238c14cafa812db02ea3090b34c58b183cf6
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri May 5 09:39:08 2000 +0000
-
- First attempt at documenting configuration.
-
-commit beaf86e13c6b9595bc979b5ed9669e3e43f793cd
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 4 21:23:10 2000 +0000
-
- Removed RTS_RIP_EXT.
-
-commit 9a220cabbc28a4e54f814aa5d596696a15e6544d
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 4 20:52:28 2000 +0000
-
- #ifdef out lots of debugging information.
-
- The long resource/routing table dump printed upon startup is gone now
- and if you wish to see it, just send bird SIGUSR1 or use the `debug'
- commands.
-
-commit b3acb10632ce9fa492a92ced1e533f0bf5edee21
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 4 20:49:45 2000 +0000
-
- Updated.
-
-commit 2a149b18cca3b20063be398e8098dfa8e1e2705d
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 4 20:38:44 2000 +0000
-
- Unused variables in IPv6 code.
-
-commit 93a786cb034fdd18b8131a16a6ea3d1cd9bd00de
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 4 20:30:36 2000 +0000
-
- Removed a lot of unused variables.
-
- Please try compiling your code with --enable-warnings to see them. (The
- unused parameter warnings are usually bogus, the unused variable ones
- are very useful, but gcc is unable to control them separately.)
-
-commit c817b9916f1134f687ba53220d607e6e193cf651
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 4 20:18:46 2000 +0000
-
- Added --enable-ipv6 which tells configure to select the right configuration
- for IPv6 automatically.
-
- Added --enable-warnings which turns off some more warnings.
-
- Default protocol list now depends on --enable-ipv6.
-
-commit 9b63e3a58afe17b98eb7722e352984574846c22c
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 4 20:08:34 2000 +0000
-
- Spelling fixes.
-
-commit cf3d6470d7c8d401b162516ed7446c1d3866d5d3
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 4 20:02:56 2000 +0000
-
- IPv6 BGP support finished. Also simplified the BGP stuff a bit.
-
-commit 6db8c5a63b341d0913afa44457a93a8e83529fb2
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 4 20:02:19 2000 +0000
-
- pxlen works even in IPv6 mode.
-
-commit 5dc4b0aae20ef7e6b862af29a3135e018147ce97
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu May 4 10:03:53 2000 +0000
-
- Display examples more nicely
-
-commit 1d9622e10ddc3baf2cd4f81bc2fa95593b4d3e85
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 4 09:08:28 2000 +0000
-
- Switched off LOCAL_DEBUG.
-
-commit 1c1da87b271ee3db0045f31612d99894531ada54
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 4 09:03:31 2000 +0000
-
- Receive-only IPv6 BGP.
-
-commit d345cda5a1cea03a09e5a37c999e88c5177c8a9e
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu May 4 01:23:03 2000 +0000
-
- Bugfix in Network lsa originating
- Bugfix in ntohlsab() and htonlsab()
- For calculating of rt I use my own fib. I delete routes! ;-)
-
-commit 9e48d717cf681dcc3cfaaee4358b5c6fa3aa409e
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 3 22:36:12 2000 +0000
-
- Test for "flushing" added.
-
-commit a02c6c184b513fe1886c86533e696045e960515b
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 3 22:23:41 2000 +0000
-
- Cleanup of code. Some arguments of functions were useless.
-
-commit ad5453b540b3c9d7430dcff9a3674d9db8ab999c
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 3 22:12:33 2000 +0000
-
- Testing if I can flush LSA from database.
-
-commit 9bc1808a27b35499d2438d731ade6d2cba8aa355
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed May 3 00:08:48 2000 +0000
-
- Better rt and net originating.
-
-commit 0bf2f2039e1fc95fe0fa3ee231711212f1f2b128
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 2 23:09:44 2000 +0000
-
- Originating of network LSA.
-
-commit 92bbd812e332c9948d737e95526c571ff371d394
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 2 22:34:35 2000 +0000
-
- OSPF added to default protocols.
-
-commit 249fdef7a10ce507bd224ad9be48a86f09d8f21c
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 2 22:31:48 2000 +0000
-
- Adding InfTransDelay for outgoing lsa.
-
-commit c45f48fba5a0904f9c3512c3b42c38183fef348b
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 2 22:19:41 2000 +0000
-
- Aging of lsa database added.
-
-commit a92847e78fabd637938f324c78d5eb41538a5692
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 2 19:27:57 2000 +0000
-
- Route calculation for stub networks.
-
-commit 53943a002265d8e2b6a887eaa497a01840675693
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 2 16:10:04 2000 +0000
-
- Defined format specifier `%M' which behaves as `%m', but takes the
- error code as an argument.
-
- Use it in socket hooks where we really shouldn't rely on errno containing
- the right value or even existing.
-
-commit 85368cd4b7244535f6ce56a27f6d22ddfa2bf4e6
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 2 16:07:41 2000 +0000
-
- Full protocol tracing.
-
-commit 85a291ff3055f0b10ffc199138c67305f5b3fc98
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 2 15:21:51 2000 +0000
-
- IPv6 address classification fixes.
-
-commit d1a74339d4edb717fbe98d412bd5e4ad03bb20a2
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 2 12:51:39 2000 +0000
-
- Handle redistribution of unknown attributes correctly.
-
-commit 85195f1a53eb350cd32ecba69c208dbece6fb776
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Apr 30 22:14:31 2000 +0000
-
- Many small changes and bug fixes. Routing table calculation works.
- I'm waiting for rt lookup to add stub networks.
-
-commit 2337ade7546254eb48a22a1e195cc7999e684d21
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Sun Apr 30 18:47:48 2000 +0000
-
- Moved documentation to top of file, where it belongs.
-
-commit c6c56264361e102691fe42134ab585f631f83898
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Apr 30 11:31:05 2000 +0000
-
- Sync with nest's rt table and some minor improvements.
-
-commit e80e9d0da5d737b7f6e65358067f62a6ac85f4fe
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Apr 30 09:32:41 2000 +0000
-
- RT calculation strongly simplified. Now, I don't need any
- memory allocation. :-)
-
-commit 8c62d6e3b631d58f46d87c36826cb29f8dadeb15
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Sat Apr 29 17:48:38 2000 +0000
-
- Minor documentation update.
-
-commit 468f2347fc0ea3e0eb6513ccd0433d0b48f2c739
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Apr 29 15:57:14 2000 +0000
-
- Calculating of nexts hop(s) added.
-
-commit 9c1a55deeeb5aa5cd2f18b109fabb50947c308ab
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Sat Apr 29 15:45:30 2000 +0000
-
- IpV6 now actually compiles.
-
- Mj, could you provide example of static config for ipv6 that is _not_
- rejected by checks? I tried this and got rejected.
-
- route 62:168::/32 via 62:169::;
- route 1:2::/32 via 1:3::;
-
-commit 46cdc7e20faaf922431a157bcb0f82a45b7aa2d2
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Apr 28 15:15:36 2000 +0000
-
- Updated TODO.
-
-commit cea636640005c9ee9b628ce07a2d467c132941fe
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Apr 28 15:13:29 2000 +0000
-
- The `bgp_origin' attribute is now an enum.
-
-commit a412f01ea84709b9af0113acc5aa2ce3dad1d292
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Apr 28 15:12:03 2000 +0000
-
- Include CF_HDR section in keywords.h as well, so that protocol symbols
- can be used in definition of ENUM's.
-
-commit 2edb31b097018be00f29cb7647432c4c2c8b99ba
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Apr 28 15:11:10 2000 +0000
-
- Split CF_HDR section to CF_HDR (only includes) and CF_DEFINES (defines,
- C declarations etc.).
-
-commit decc99fbbdba3394a5c611e2914b4d74aa6742a9
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Apr 28 10:15:57 2000 +0000
-
- Killed fixme: I already fixed it.
-
-commit a769a180d77b88fbfc77cae3e895a320007f6e30
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Apr 28 10:14:59 2000 +0000
-
- Provide rip_get_attr, how do I test it?
-
-commit 6c0a7174af459d62a52e97d15da29528169a68f9
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Apr 28 09:55:52 2000 +0000
-
- Add sample documentation to rip.
-
-commit e83b42deb4405729d9f53448bdbcea05e7d15e8f
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Apr 28 09:55:36 2000 +0000
-
- Include proto/rip/rip.c in documentation system.
-
-commit ff95080f9272c4a0123ab05dff608a43cf3c15b7
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Apr 28 09:48:28 2000 +0000
-
- Cleanup of dead code + example documentation for two functions.
-
-commit 602b1445e3bfa24b1ce9cd1d148e4aa5cb742cf4
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Apr 28 09:48:01 2000 +0000
-
- Documentation-generating tool taken from linux-2.3.99-pre6, and
- makefile to actually use it.
-
-commit f94557dec5714f8415aa9e74615b5c821f45808f
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Apr 27 22:40:19 2000 +0000
-
- Some more fixes for attributeless UPDATEs.
-
-commit f75e3bbc01f2b711d1a2479eddd9ea35f8cfff47
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Apr 27 22:35:08 2000 +0000
-
- Fixed a couple of nasty CLI bugs which were triggered on long or multi-part
- outputs. It took a whole evening to hunt them down, but now the CLI seems
- to work fine.
-
- Now I run three BGP connections with several thousand routes!
-
-commit 54896cbdba42a2ccd83c7f23c8ba14bed37a8b73
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Apr 27 22:31:11 2000 +0000
-
- Path attribute can be missing if we process a packet with empty NLRI section.
-
-commit 8f6accb5bb26d534576e086894c107387f67906a
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Apr 27 22:28:49 2000 +0000
-
- Event handlers no longer return re-queue flag. Instead of using it, just
- call ev_schedule() on the same handler which should work perfectly now.
-
-commit 987de54578ce4053d737c64ea924a32f46a441a7
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Apr 27 19:44:27 2000 +0000
-
- Fixed stupid bug in as_path_format().
-
-commit 9165888ad24bdefed6a705219c767558d5091cec
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Apr 27 19:41:10 2000 +0000
-
- Handle connect errors correctly.
-
-commit 2add26dfa9c1da1e7fd6248de593c60cf0eba9ca
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Apr 26 20:16:36 2000 +0000
-
- Stub networks done.
-
-commit 5904a51266d82482392bad5d6d17a3be54c65596
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Apr 26 14:03:56 2000 +0000
-
- Nets are used before routers.
-
-commit 5db9bae28676d743f53636d74997c85039d09278
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 26 13:26:31 2000 +0000
-
- IBGP fixes.
-
-commit e1ddd9937759bc22b7241e48400d17840a101d9d
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 26 13:26:11 2000 +0000
-
- Changed handling of incoming connections, so that we can send data
- from the send hook without worrying about existence of socket buffers.
-
- Also, don't forget to copy peer addresses.
-
-commit dfa9a53a66e5747ddbeedfa0a47fa2ca9fc93b99
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Apr 26 12:54:23 2000 +0000
-
- Routing table calculation. Dijkstra done.
-
-commit 0cadd5f531a82578ea6323f730cf8204b755895f
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 26 12:33:37 2000 +0000
-
- Removed several FIXME's.
-
-commit dbf3939a53192c093f9f367edb15bf613126e347
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 26 12:32:07 2000 +0000
-
- Better formatting of router ID's.
-
-commit ebd3720f8335cecd671382c23fe61f03b7e2acaa
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 26 12:30:41 2000 +0000
-
- Fixed several bugs in protocol state machine. Reconfigurations and
- restarts of BGP seem to work now.
-
-commit c010f4cb3771536fc62e534549e22c725285bbd2
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 26 11:33:03 2000 +0000
-
- Use right address for ripv6.
-
-commit 7f704c06d86c58985e964e05df57d14b92e0cd05
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 26 11:07:57 2000 +0000
-
- Cleanup in preparation for ipv6.
-
-commit b0c9c21c2926921843bbbade72e65831280906a8
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 26 09:38:07 2000 +0000
-
- Small cleanup.
-
-commit 98347659463cb68cbd751148e19c62cfb109a32b
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 26 09:37:07 2000 +0000
-
- Whitespace changes.
-
-commit 2e5a8735f4be2c2514ae3a67960ea4ac3f06e364
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 26 09:36:47 2000 +0000
-
- filter_same should now work with path masks.
-
-commit f71bded6e97a3eeb4dc58458d042cbe1af631380
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 26 09:30:12 2000 +0000
-
- Bugfix in i_same (comparing of paths still does not work).
-
-commit 7a86a8b08db03f002a672d1e8a6481ad52114d1e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 26 08:03:50 2000 +0000
-
- Added code for testing filters.
-
-commit 471bd6c30bb0d172699ea7af8f8b9356c8fe48b3
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 26 07:47:47 2000 +0000
-
- Marked place where new enums belong.
-
-commit 94d9dfa47a14609e7057f26614b4094dddc8439d
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 26 07:31:45 2000 +0000
-
- Startup renamed to __startup: it is internal function and mj already
- uses word startup in other context.
-
-commit 6fd766c17eedf4897e2dff712f0e06bb84dd3d8a
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Apr 25 23:08:31 2000 +0000
-
- Implemented automatic restart after error with all the timers needed.
-
-commit 8573314326a36cc8c9aa1755e7ad6c51617015c8
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Apr 25 23:08:03 2000 +0000
-
- Avoid printing of error messages on Cease notifications.
-
-commit 00c0c18aea40dd39efc275e24ad9d5e12a873a32
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Apr 25 23:07:47 2000 +0000
-
- Allow sk_close(NULL).
-
-commit b3155b3399d84bb2dae8441171aa73236d790048
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Apr 25 22:01:19 2000 +0000
-
- Randomize timers properly.
-
-commit 42532f084640645cfde9af7c0aa69a36b1de91ad
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Apr 25 21:58:17 2000 +0000
-
- Support dynamic reconfiguration.
-
-commit 41b26cfb552a4a441490779344326ff85819252b
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Apr 25 21:56:46 2000 +0000
-
- Don't forget to set filter pointers in struct proto when reconfiguring.
-
-commit 99f70c78e11f99f73a142ffcb8b65bd142c0a36c
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Apr 25 21:31:15 2000 +0000
-
- Use the same attribute names as in filters.
-
-commit 684c25d98fbfd7cc9275f401d8d451135615af8d
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Apr 25 21:21:52 2000 +0000
-
- When sending BGP attributes, re-create the flags, so that attributes
- added by filters which get the flags wrong are fixed automagically.
-
-commit efcece2da3054d9a0e5b5d2233549b3323428023
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Apr 25 21:13:25 2000 +0000
-
- Better reporting of both local and remote errors.
-
-commit a47a01083b6ff9196f39136d68ed32ac70b31d15
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Apr 25 13:32:17 2000 +0000
-
- Real parsing of BGP OPEN options including capability
- negotiation.
-
-commit 8b258e4e659cd8bacf0f7e3997d30b43561ac3e6
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Apr 21 13:01:28 2000 +0000
-
- LOCAL_PREF is now always present and exported over all ibgp connections [draft]
-
- Allow setting of address of the local end of the TCP connection.
-
- Several bug fixes.
-
-commit 2a9e064d7b41ae6e944dd9fbcb18b89e8fda0dba
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Apr 21 12:25:35 2000 +0000
-
- If no NLRI's are present in an UPDATE message, parse the attributes, but
- don't check presence of mandatory attributes. [draft-09]
-
-commit f380aa60faa41872b78155f899518b25933d18b9
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Apr 20 23:05:41 2000 +0000
-
- IPv6 compiles with glibc 2.1.
-
-commit f33c6c66020da3b10b27fba5585d20702b173c6f
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Apr 20 22:55:32 2000 +0000
-
- Use xmalloc() instead of malloc().
-
-commit 7787ace61ae41060e599ce52e8f0017750d350da
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Apr 20 22:54:22 2000 +0000
-
- Synced to draft-ietf-idr-bgp4-09.
-
-commit 9bc6ab404190db53c9c9dbc183f6fc6fa3e704fb
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Apr 20 22:34:50 2000 +0000
-
- Fixed reporting of unknown options.
-
-commit 7d6eebae3b87cac2d09fd5201b603d4fd969fe06
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Apr 20 10:25:51 2000 +0000
-
- Create syntax sugar for add/delete/prepend, so xyzzy.prepend(123) is
- possible. That means that milestone 3 was reached.
-
-commit 77f37ae0994774f6402499e0a79287d85afa6edf
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Apr 20 10:24:41 2000 +0000
-
- Test new syntax of add() and delete().
-
-commit 5f532adde20300ecab63d3e521fb0dfbfb33df2b
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 19 13:54:35 2000 +0000
-
- Temporarily ignore unknown options.
-
-commit f381cdce5225c0652bf9182ac40a1a54436c9692
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 19 13:54:17 2000 +0000
-
- The ATOMIC_AGGREGATE parameter is optional transitive.
-
-commit e0d6a7bda446d96dc3d56f65afed1872f20407cb
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 19 13:28:56 2000 +0000
-
- Delay fetching of router ID.
-
-commit 035044b1d946c50efd4b59a8869198a0300c8151
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 19 12:51:14 2000 +0000
-
- Select the right source address and don't check port numbers.
-
-commit 85c92555efcd67d2671a8aef1bf7c3f4acc2b21d
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 22:11:05 2000 +0000
-
- Grr, another patch to make it compile.
-
-commit 740d16d972d8e2accdb7a2f92048de302c9e966c
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 22:07:58 2000 +0000
-
- Another ack bugfix. (Bad test for MIN_LS_ARRIVAL.)
-
-commit 84228eee273e2a689f4479d9a91f6b0a32c19b44
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 21:40:11 2000 +0000
-
- LS ack bugfix. (I didn't remove LSA from LSret hash.)
-
-commit 19fc4c763e745d56c8d80d04d6813766c1cfa04a
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 21:13:56 2000 +0000
-
- LS ack.
-
-commit 26116eac93b51c503f5448d9f583847a51bef68d
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 20:34:19 2000 +0000
-
- Better LS Ack dumping.
-
-commit 48f5a61f694faceb7cdc41e291f0da9411000c45
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 19:56:43 2000 +0000
-
- Bugfix in neighbor dumping.
-
-commit 9eada7ca03c6c4111e759b0910a1a654a7f3216e
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 19:44:16 2000 +0000
-
- Fixed the serious bug in LSack.
- Oh, I'm an idiot. I sent LSACK, but in header was LSUPD. :-(
-
-commit 9eea604769662479891020b5a0fb282faa6dc36f
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 19:31:42 2000 +0000
-
- Multicast open socket for (B)DR bugfix.
-
-commit 79f036ef6e9b2204528a41079c59a3a9ae9d50f5
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 19:22:49 2000 +0000
-
- Dump changes.
-
-commit 4472402551a1cc8d760a4e980fdcd7a417e0796a
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 18:29:50 2000 +0000
-
- Many %u changer into %I.
-
-commit 89929e9daad0df36a289e7ae7d70dbc648c3b6b3
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 18:21:10 2000 +0000
-
- Many %u changed into %I and dump cleanup.
-
-commit 1508ee8b537aceba98d3af619ba0cded4d2fce9d
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 18:01:26 2000 +0000
-
- Iface chstate run only if something really change.
-
-commit dd100e40c60811324b450ef7c078f0e992b2ded6
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 17:58:16 2000 +0000
-
- Better dumping in neighbor chstate.
-
-commit 8914e37dc028c89488d07556a511d8b49d38856f
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 17:54:06 2000 +0000
-
- Better chstate dumping.
-
-commit 284c43ff66e8b5879945d2c4e1a285354bd38ddf
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 17:36:46 2000 +0000
-
- Sending of ACK disabled, since I'll find bug.
-
-commit 023f5e86eba76a79dd90d5a4546ae8b200ccf023
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 17:00:56 2000 +0000
-
- Another LSack update. It's still NOT correct and it surely
- kills gated or Cyclades OSPF implementation. :-)
-
-commit 67315ef64e3655c65cfab032d637fe29d3cf91b2
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 18 01:06:16 2000 +0000
-
- Some lsack work. There is something very worng. :-( It locked my network.
-
-commit 2a0925948de20bd391d2c27a08ffdf2b4350e5c3
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Apr 17 21:10:40 2000 +0000
-
- Listening on AllDRouters for DR and BACKUP added.
-
-commit 38130b863ffcab6b45484e4e5f1eca1dd933bb1a
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Apr 17 20:42:42 2000 +0000
-
- Small change in LSA originating.
-
-commit 52276996063bc4a0fbcb642f5075df1cde7ce684
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 16:51:28 2000 +0000
-
- Few bugs removed from sgml, makefile added.
-
-commit f9b8bcca4eb1fdd8067a66a845b585af61335e3c
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 16:49:05 2000 +0000
-
- Bird.html will now be autogenerated.
-
-commit d37f899ba4e88b56a824fd44e7d81455c099bcba
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 16:48:22 2000 +0000
-
- First version of sgml documentation
-
-commit 0150e5211adabcbde55a76506f0f1a5901214b52
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 14:12:02 2000 +0000
-
- Cleaned up mess with types in e,a and e,S. Dynamic attributes should
- now work.
-
-commit 74a7da482b1a537aaa97b4b5d6f6815887150f26
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 17 13:41:50 2000 +0000
-
- Adding of dynamic attributes is hopefully correct now.
-
-commit 8f10985e1ef77c7d44c8912cf92f99e5c4502cbd
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 17 13:14:48 2000 +0000
-
- Added BGP to the default list of protocols we build.
-
-commit bd2d8190dd79645174beeef1a306c8df53db3b60
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 17 13:13:08 2000 +0000
-
- Honor standard communities (no_export, no_advertise, no_export_subconfed)
- when exporting routes.
-
-commit 56a2bed46bf7713cd773b0fd0c097bcfc6345cc1
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 17 12:46:07 2000 +0000
-
- Don't import/export MED and LOCAL_PREF on external links.
- Added real comparison of BGP routes (inspired by the Cisco one).
- Default local preference and default MED are now settable.
- Defined filter keywords for all BGP attributes we know.
-
-commit 3bbc4ad6ad63d55b1d7845b53865963db79c2e16
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 12:40:38 2000 +0000
-
- Special hack for atomic_aggr.
-
-commit 708711c37306d6bc3a83935a4d4065814d9c4215
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 12:38:24 2000 +0000
-
- Community lists can be now accessed as dynamical attributes. Mj:
- please create such dynamic atribute for bgp.
-
-commit 913ce95b083b2d61e498c63fce3e8f2d5b974cfb
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 11:52:32 2000 +0000
-
- EAF_ORIGINATED done right.
-
-commit 700bbe60fb941534937ad11ca71968224889fa87
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 17 11:49:41 2000 +0000
-
- The previous fix for spacing was (a) totally out of context, (b) wrong.
- Please *read* the code when trying to change it.
-
- Also killed a couple of type clashes.
-
-commit 2bd2de0188f6a0c1c9482cfc15e35c2b1b81c81a
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 11:49:21 2000 +0000
-
- pair ~ community list matching works.
-
-commit 5a2455886db55ae2d1eb8934c7686b4f6586f83c
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 11:42:34 2000 +0000
-
- Put space between entries so they are separated.
-
- FIXME: should use format as in filters.
-
-commit 4444ed2b26ae07dabbcc3e511798e2d7df3a2846
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 11:42:08 2000 +0000
-
- It is good idea to separate entries in list _somehow_. Adding/deleting
- to community lists from filters now works.
-
-commit 991c36b509ad5bb96b4a28d0ec53813628e393a4
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 11:37:05 2000 +0000
-
- Use EAF_ORIGINATED as mj wanted. mj: check this!
-
-commit 9c400ec9dd0ee74f1f350ead87dcd7366dbab7b1
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 11:34:38 2000 +0000
-
- Int sets moved to core. It is now possible to have variable of type clist.
-
-commit e3558ab14ee60c8c9792bc3ed54d9f0c3eaa8ea8
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 17 11:25:15 2000 +0000
-
- Normalize community sets when exporting.
-
- Set PARTIAL bits correctly.
-
-commit 51a183af78a330cca46f12dcbff79bb045c4c854
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 17 11:23:05 2000 +0000
-
- Define EAF_ORIGINATED and propagate it properly when merging attribute lists.
-
-commit 4b03f64b341db7b73eedc00bc5321fedf349a236
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 17 11:22:24 2000 +0000
-
- Aesthetical tweaks (asterisk spells `asterisk' etc.)
-
-commit 159fa4cea9fb8f36db8335755248e0fac81fb050
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 11:20:00 2000 +0000
-
- Finish moving of path matching. Use int_set_print from core for
- printing community lists.
-
-commit 2a40efa5e6252eb5a5dbe5e82dcd9c67ad7838a9
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 11:11:33 2000 +0000
-
- as_path_match moved to a-path.c
-
-commit 684c6f5a0e134426159be7dbd514271aea9f4d3d
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 11:06:39 2000 +0000
-
- Path_getlen moved to nest and length was made callable from filters.
-
-commit ecd25633bdc3e491a0eca44c63c158eeff388f13
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 10:54:01 2000 +0000
-
- Use printing routine from nest/ instead of our own.
-
-commit 4b641bab521c4fbabf931c3eac7704e8e2cab298
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 10:50:03 2000 +0000
-
- Path matching now actually works, including / * 1 2 3 * /.
-
-commit e399b6f6ad91e6f94081dfe694740451100c7a7f
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 10:42:28 2000 +0000
-
- Path and path matching seem to work, now.
-
-commit 1ed2fe960929081065e75a7fb4322f28a76c508b
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 17 10:19:15 2000 +0000
-
- Send and receive communities.
-
-commit c6add07fa6ca8366fbdcfcd9bc2872c129378366
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 17 10:18:55 2000 +0000
-
- Printing of AS paths and community sets.
-
-commit afc54517db6946e9cfb62bbdc855954316152c62
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 17 10:16:47 2000 +0000
-
- Prepend and creation of empty path should work, but it has strange
- syntax for now.
-
-commit f421cfdd80cfce7d1ec4759c603e47071eb028f8
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 17 09:37:31 2000 +0000
-
- Sending of update messages works!
-
-commit c0668f36967ce651e452a476b786b7604038a556
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 17 07:53:29 2000 +0000
-
- Created nest/a-path.c and a-set.c which should contain general operations
- on AS paths and community sets.
-
- Moved as_path_prepend() there.
-
- Pavel, please move the other functions as well.
-
-commit ebff007f08965d83dba5840ee02171d09ac2598d
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Apr 12 15:37:52 2000 +0000
-
- LSack receiving bugfix.
-
-commit 4bf41ac8b1d7edb4754c579b714d1c71dc421b4e
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Apr 12 15:20:13 2000 +0000
-
- LS Ack receiving done.
-
-commit 58313b24c8e31f02f242b7d090b54aab8295ce04
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Apr 12 14:49:20 2000 +0000
-
- Stupid "+1"-bug fixed.
-
-commit c8f685cb9d88e447d6057f92bcbb1e0df441ca35
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 12 14:14:47 2000 +0000
-
- Made last Pavel's changes compile.
-
-commit 0a40e97328180576577da26a5ce8933f616d84f1
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 12 14:12:37 2000 +0000
-
- as_path_prepend is usable outside bgp.
-
-commit c2b28c99103a643dd29ad48152999d6dac7722fe
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 12 14:09:26 2000 +0000
-
- Real bucket lists.
-
-commit a2d157463accf02e2db9fd3dd174b7e46dae8938
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 12 14:05:37 2000 +0000
-
- One less shift/reduce conflict.
-
-commit ac7a2145ccd5cfc54788b0218cc253e3b1721b76
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 12 14:02:04 2000 +0000
-
- f_new_dynamic_attr gets third argument, type as filters know it.
-
-commit 12d5677aa3e6217edc7d5508ac3dbbf87edc8624
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 12 13:56:04 2000 +0000
-
- Define BGP_PATH.
-
-commit 2803c9ddbeca3ece264e618b3a63669e25f4dd85
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 12 13:55:53 2000 +0000
-
- Minor updates by Pavel.
-
-commit 66d573d4903801c45011de36b6b593f1cde9ea73
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 12 13:55:30 2000 +0000
-
- Attribute type hack.
-
-commit 10a53608860724c47596948f2fd426d4eca8224d
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 12 13:31:39 2000 +0000
-
- Filters now know type path. It is possible to declare variable of type
- path, but it is not possible to write constant of type path.
-
- It should be possible to print paths and match them.
-
-commit 775063494694d247b340bb1145e509e31af27802
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 12 13:21:23 2000 +0000
-
- Introduced `ARRAY_SIZE' macro to replace all the sizeof(a)/sizeof(*a) constructs.
-
-commit dcab78904794156483878b4b8cd924e30a71bcdd
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 12 13:07:53 2000 +0000
-
- Renamed f_path to f_path_mask -- which is what it really is. Use
- linklist instead of array of signed integers for path mask.
-
-commit c3edb89ec141355de58fbade353d4b2182c62c1e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 12 12:49:53 2000 +0000
-
- Path masks are needed for filters.
-
-commit 77de68825caae7a9cb1275b0020e49fa9cb27e29
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 12 12:10:37 2000 +0000
-
- BGP_PATH masks now actually work as data type.
-
-commit 78c6217c1e9f8a46026cecf6a6369b72d5d883b0
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 12 10:34:45 2000 +0000
-
- Path printing is now much nicer: not having to put it backward
- simplifies it. (Sorry for previous commit, cvs is naughty).
-
-commit f7d534cf2e8932869b049bd64677bb0a67e362c1
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 12 10:34:02 2000 +0000
-
- Path printing is now much nicer.
-
-commit b475c543b420b65bac90992df99a0fe6c9da7c88
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 10 22:08:32 2000 +0000
-
- Fix comments.
-
-commit 9196e9f8f951f7cbd372b9243dd10fc761f2fbe6
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 10 16:36:40 2000 +0000
-
- Commit fixes.
-
-commit 7f77e2500218c197ba56a473d587dedda7309029
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 10 15:07:43 2000 +0000
-
- Functions for matching paths added, tested lightly.
-
- Functions for working with community lists added, they compile.
-
- This should not be definitive place for this stuff.
-
-commit 73e03bce66e3e8d167f00813d942ef35bfd105e2
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 10 14:45:00 2000 +0000
-
- As usuall, most important info was missing.
-
-commit ae8f5584990ce3bfb5b0bec2f7a1c052e45860df
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 10 12:39:51 2000 +0000
-
- Implemented outgoing attribute cache.
-
-commit 6f57dcc07cdf54133bd57aeaec7446f59f2c91cd
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 10 12:39:29 2000 +0000
-
- Export ea_same() and ea_hash().
-
-commit f2cb1d708dc5de4167a3dc12b50001391d01f5f0
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 10 12:38:15 2000 +0000
-
- Dropped CPU_NEEDS_ALIGN_* as unaligned.h no longer uses them.
-
-commit 48e842cc98b1436da57c8682c6c8414ba379ed7c
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 10 11:21:40 2000 +0000
-
- Use neighbor cache to track direct route to the peer or multihop destination.
-
- Calculate next_hop properly based on the local address we get from the
- neighbor entry.
-
-commit 287111fed1c8e9eb135df1108ea747e02b30e9e9
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 10 10:40:00 2000 +0000
-
- Fix stupid bug in neighbor cache.
-
-commit ef2c708dfac4c8b4b5ab0ed8b71842da5c7ab3d7
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Apr 9 22:05:02 2000 +0000
-
- More BGP progress...
-
- For Pavel: You can use bgp_path_prepend() for prepending AS numbers to AS paths.
-
-commit d3feceff105fbcee7a9976812156aea7517c44e6
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Apr 9 22:04:12 2000 +0000
-
- BGP doesn't need any inline attributes.
-
-commit 3d0ea3a7c3e3b14bd0b9602d6b14518c907d8789
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Apr 7 09:02:17 2000 +0000
-
- Fix of comment.
-
-commit 2c971094ebf73c2a2cfc5927095a0c6fd3c15836
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Apr 5 00:51:25 2000 +0000
-
- LSA flooding done.
-
-commit 10000b96a89d1ab4425e29164c3694aa26622b1c
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 4 22:27:19 2000 +0000
-
- Small clean up. (Duplicate #defines.)
-
-commit f1f7faceb445fdfa2b2a013b791882afd68ae421
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 4 22:22:08 2000 +0000
-
- "Bug in hashing" fixed. Ehm it was bug in lsrql node removing.
-
-commit d8852b362c015db38abf180888e77900f35089de
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 4 15:55:55 2000 +0000
-
- LSupdate processing improved. Now there is some bug in hashing. :-(
-
-commit 921a93f2176723d235989efe882050c0265bea84
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 4 00:32:17 2000 +0000
-
- Flooding work continues.
-
-commit 8496b2e41a81f8281da0e0c3e4bbb72a57d3bf21
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Apr 3 22:31:07 2000 +0000
-
- Minor change in area list. Now I use MJ's lists.
-
-commit 394acced118df7360e480920c65ca260c5b8c44f
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Apr 2 20:41:33 2000 +0000
-
- Work on lsupdates continues. Some checksum cleanup.
-
-commit db9fb727699a6244afcff28dcc2320a3e66ee269
-Author: Ondrej Filip <feela@network.cz>
-Date: Sun Apr 2 19:04:23 2000 +0000
-
- lsa_cmp moved into lsalib.c
-
-commit 10be74da202b20a7d502724ef8e7a9787b7eba0a
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Apr 1 10:21:11 2000 +0000
-
- Formatting of dynamic attributes (except for paths and communities which
- will be added soon).
-
-commit dad177d7e045ed07181da02ccd619f8f943a5c80
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Apr 1 10:20:12 2000 +0000
-
- RIP: Set attribute class.
-
-commit 3991d84e8fa9118a43149d4d3304726eb786bd46
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Apr 1 10:19:47 2000 +0000
-
- Changed initialization of protocol list -- now we call proto_build() instead
- of calling the protocols manually.
-
- Implemented printing of dynamic attributes in `show route all'.
-
- Each protocol can now register its own attribute class (protocol->attr_class,
- set to EAP_xxx) and also a callback for naming and formatting of attributes.
- The callback can return one of the following results:
-
- GA_UNKNOWN Attribute not recognized.
- GA_NAME Attribute name recognized and put to the buffer,
- generic code should format the value.
- GA_FULL Both attribute name and value put to the buffer.
-
- Please update protocols generating dynamic attributes to provide
- the attr_class and formatting hook.
-
-commit f8809249906811683e7e8d2a7b8cdcccde86742a
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Apr 1 09:17:33 2000 +0000
-
- BGP now handles incoming routes (IPv4 only).
-
-commit 85810613993913831822b84ab7a9792a88fc7a8f
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Apr 1 09:16:42 2000 +0000
-
- When tracing, always print incoming part of the trace before the outgoing one.
-
- Avoid buffer overflows in `show routes' command.
-
-commit 798df5b1ab6b497d8d9d6d51764f5aef4eb2d567
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Apr 1 09:15:55 2000 +0000
-
- When processing ACCEPT/REJECT carrying no message, don't print
- trailing newline.
-
- I hope the fix is correct, but please check.
-
-commit b157361533412de2123787a412e6e463c0b2f13a
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Apr 1 09:15:10 2000 +0000
-
- SOURCE should really refer to rta->source, not rta->gw.
-
- Please check that all rta attributes are available, I guess that at
- least rta->dest is missing.
-
-commit 499cb346f6fb29f9157e12942484c8b4362597c3
-Author: Ondrej Filip <feela@network.cz>
-Date: Sat Apr 1 02:45:49 2000 +0000
-
- LSA checksum works. But it's very uneficient on little endian systems.
-
-commit ac4b4683aee8e5aa566b0b5f99bd940bc10d9b71
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Mar 31 23:40:00 2000 +0000
-
- Removal of useless includes continues...
-
-commit 3cf4a2e2b03d00adce703cd1dc961eea77b7a57b
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Mar 31 23:35:59 2000 +0000
-
- Removed lots of superfluous includes.
-
- Use debug() instead of printf().
-
-commit a37410cbddfadca651c795e9817f66c54374a943
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Mar 31 23:33:03 2000 +0000
-
- Use bsprintf() instead of sprintf().
-
-commit 221135d6bf256c85b4aeb08881d6262f6eaadff4
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Mar 31 23:30:21 2000 +0000
-
- Include "lib/string.h" instead of <string.h>. It should give us bzero()
- and other non-portable functions on all systems.
-
-commit c00d31befab5a7e932231f7a8050547c72c94631
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Mar 31 23:21:37 2000 +0000
-
- Parsing of BGP attributes.
-
-commit 08732b71784b640aebbea88d4452f4c5987d0a09
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Mar 31 23:21:19 2000 +0000
-
- Fixed bug in processing of dynamic attributes.
-
-commit 65e55e9cca38828980123ea64fe203d799a20810
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Mar 31 01:40:12 2000 +0000
-
- Checksum changes. Bug is still NOT fixed. :-(
-
-commit 9f940976d10e6295f78adf4afb1868a7ed6cac73
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Mar 31 01:14:41 2000 +0000
-
- Some bug fixes. LSA checksum is still bad. I'll fix it later.
-
-commit f45fd3164bf2f9342e12e867f8d68c7fc77d3177
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Mar 31 00:21:41 2000 +0000
-
- Sending of lspd as responce to lsreq done.
-
-commit 14a7921c83f0ecfc8793b3a38e4ac16ae9bd75d3
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Mar 30 20:18:51 2000 +0000
-
- LSA structure changes. (Len added.)
-
-commit de769e24c01ff0c4aa573d9b4cec833dcae182d2
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Mar 30 20:00:42 2000 +0000
-
- Skeleton structures and files added.
-
-commit 95eb1dba3ffe810bd876546ca4580af3bccdf181
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Mar 30 19:37:26 2000 +0000
-
- Add hashing to link state request list.
-
-commit 76915ec9798a2c067ef05c6fb94cea58af12128e
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Mar 30 19:21:17 2000 +0000
-
- Minor changes.
-
-commit 973399ae2c21b41983a35fe71657fb41351d99e6
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Mar 30 18:44:23 2000 +0000
-
- Basic analysis of UPDATE packets.
-
-commit b552ecc4d7ddb1b960aa26b96ebea95a3af72043
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Mar 30 17:39:48 2000 +0000
-
- Connection state machine works.
-
-commit ce0603a6eda81b97d6db021c91b86cb4c920eb04
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Mar 30 16:22:58 2000 +0000
-
- Better list manipulation.
-
-commit 3fdbafb6f49946f15d0c10d311dd35479bf6c0f1
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Mar 30 10:44:20 2000 +0000
-
- More BGP. This time it connects, but the state machine still isn't complete.
-
-commit 320f41735795b51c51a9f5c976a2335a9ec96e32
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Mar 30 10:43:37 2000 +0000
-
- Defined sk_close() which closes the socket safely even if called from
- socket hook. Replaces the SK_DELETED hack.
-
- Squashed a couple of bugs in handling of TCP sockets.
-
-commit 3a6337ecb2f6e5c8454a8416214c60432611aaa6
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Mar 30 08:50:46 2000 +0000
-
- Use FF_FORCE_TMPATTR where appropriate.
-
-commit 3076b5aedc1d348413276b361806053e80dca7c6
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Mar 30 08:50:30 2000 +0000
-
- Renamed FF_OUTGOING to FF_FORCE_TMPATTR which much better fits the semantics.
-
- Call rte_cow() instead of rte_do_cow(), so that COW works properly.
-
- Stripped "\n" off several (de)bug messages.
-
-commit 6d2b32114feadb283cb988daa7ed80142aa8c4d1
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Mar 30 00:18:59 2000 +0000
-
- LSreq initial work.
-
-commit 3ee2310c5dccebe2b63098ab478b5b1d61e4fcb2
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 29 22:57:46 2000 +0000
-
- Avoid conflicts with libraries defining their own xmalloc by defining
- xmalloc to bird_xmalloc internally.
-
-commit 2560c8860eeed2e352c394aec920a4f696563e6c
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Mar 29 17:51:40 2000 +0000
-
- Slave bug fix.
-
-commit 910e557b47f52bf38aa923a69249670d71befc02
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Mar 29 17:18:06 2000 +0000
-
- Many changes in dbdes sending & receiving. EXDONE caused.
-
-commit 315648af8ed75c91e0dd82748a933963b9e0c4ec
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Mar 29 13:02:58 2000 +0000
-
- RXMT timer handling bug fix.
-
-commit 3fba20968816a9dbd4565fd6806f29d72d73f638
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Mar 29 12:47:07 2000 +0000
-
- Some FIXME added.
-
-commit 96501dfe5f6fd7a2837aee910c78f147e54e4f0b
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Mar 29 12:45:37 2000 +0000
-
- Sending of DBdes bug fixed.
-
-commit 04c6319a630e9e18bc45da5e5b1c1f11d726c261
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Mar 29 12:32:25 2000 +0000
-
- IMMS reverted to bits. Outgoing packets dumping added.
- Cisco does not set inteface MTU. Hmm....
-
-commit 0a06a9b8b3dbd59c850303c49eea97c12e1ac0ff
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Mar 29 09:02:00 2000 +0000
-
- f_run gets one more parameter to distinguish between in and out modes.
-
-commit 8d2e3eba92e339f0635e0cb2fbfb49482b26295a
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Mar 29 08:58:06 2000 +0000
-
- Cross-protocol issues solved better
-
-commit 963ea03d872db30e1a0d0216e488b1960590af2d
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Mar 29 00:34:28 2000 +0000
-
- DBdes sending/receiving changes.
-
-commit d0031c5ee94b29b7a5419a0504c160e424d970b0
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Mar 27 12:21:11 2000 +0000
-
- Use neigh_connected_to in rip, and behave more correctly
- w.r.t. whotoldme and nexthop.
-
-commit 200accf396b869267fd707b56afddb27d8479acc
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 27 12:16:37 2000 +0000
-
- if_connected() is again private.
-
- Introduced neigh_connected_to() to serve the same purpose efficiently.
-
-commit 6480dd08803bc46bcd19b466ac6c499699d17448
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Sun Mar 26 21:31:57 2000 +0000
-
- I broke compilation. Sorry.
-
-commit 8c86f96fa6f783326455f8a8d88a242cd8dd9f1b
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Sun Mar 26 18:01:27 2000 +0000
-
- Split horizont done right.
-
- Locks done better.
-
-commit 697711be2cf6b5da140b8c12c301affa53488021
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Sun Mar 26 18:00:45 2000 +0000
-
- if_connected is usefull outside of neighbour cache.
-
-commit 9ee07ca53fd94ad72b7cb2776cc15f13a026a910
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Mar 24 10:08:20 2000 +0000
-
- FIXME was actually already resolved
-
-commit 772f489932cf24d7a408835ac67f7b4f4d85a1eb
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Mar 23 12:08:40 2000 +0000
-
- Minor change to make code more readable.
-
-commit ff8ed6328595c77e8b0ed3ed4cea3fb4d9bb141d
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Mar 22 14:26:03 2000 +0000
-
- Rip now tries to lock interface.
-
- Fixed fatal errors which caused segfault at startup.
-
- Fixed fatal errors in rip which caused it not to send more than first
- update.
-
-commit ba4466701aed032f947272dead47b3abc7bb7a3f
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Mar 22 14:23:40 2000 +0000
-
- Format of dates changed, so rip authentication is now commented out.
-
-commit 72a6ef11fe6589d0f4d5158c207ff8a0669becc3
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Mar 21 15:53:50 2000 +0000
-
- Construction of BGP packets.
-
-commit a8f944cb6e6c75c1aac2500ccf1f3905c4c3fd7a
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Mar 21 15:51:30 2000 +0000
-
- Wrote real version of unaligned data access functions (needed for BGP).
-
-commit c01e37416d09a92bf838250a15fe99fdc48bc010
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 20 21:50:17 2000 +0000
-
- Started work on BGP. Wrote main part of the connection handling code.
-
-commit 1cf716f0751ce1d146d6d5114cb36686844d4817
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 20 21:49:21 2000 +0000
-
- Handle EINPROGRESS properly.
-
- Set IP_DONTROUTE sockopt only if sk->ttl == 1.
-
-commit 267a2c0ebd980c16c1cf01044b0ee44095f34b9e
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 20 20:52:18 2000 +0000
-
- Added missing newline in debug output.
-
-commit ca97b489de8cca61d1affa49983b7cdc1c81cf96
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 20 18:45:03 2000 +0000
-
- Define new data types for BGP.
-
-commit 2638249d34cc7f600fba25edd29538c00a3aca31
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 19 22:09:07 2000 +0000
-
- Bare skeleton of the BGP.
-
-commit 349e21bb0bb7584fb18c19859d876893c3130947
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 19 21:59:24 2000 +0000
-
- Protocol tracing: Don't dump core on filtered out routes.
-
-commit 856b87d1e4c44608df5debd8e4246a3c4026bbcb
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Mar 13 13:31:00 2000 +0000
-
- Cleanup, mostly debugging messages.
-
-commit abf2be7d0cabc3c8c021b6f6784cf63610571715
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 12 23:04:04 2000 +0000
-
- Add internal commands of the client to the command list.
-
-commit 971b2310ae4d367d608e34e9465ad5d2c65e505d
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 12 22:55:09 2000 +0000
-
- Commands which failed expansions are to be stored to history, too.
-
-commit f098e072bec8d5858afbf713635217ea84c7e45d
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 12 22:53:05 2000 +0000
-
- Fixed a bunch of FIXME's by removing them :)
-
-commit 432709027680d7791b325b2c2116c658eba21c8d
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 12 22:44:54 2000 +0000
-
- Made `show status' show uptime and time of last reconfiguration.
-
-commit 7a88832e78cbc18db109c091d74f6d27284cff44
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 12 22:43:13 2000 +0000
-
- Added tm_format_datetime().
-
-commit 81ce667b7b7c38e109984602cf4e5ecbec80f7f1
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 12 22:40:07 2000 +0000
-
- Don't crash when filter_same() gets called on FILTER_ACCEPT or FILTER_REJECT.
-
-commit a92bebe0ec3545b1f99909d20224977aa6da1827
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 12 21:58:51 2000 +0000
-
- Yet another LOCAL_DEBUG turned off.
-
-commit 832fa033b7ecacf3225d7aa8c86e30484a07d946
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 12 21:54:39 2000 +0000
-
- Cleaned up debugging in kernel syncer. Netlink has still LOCAL_DEBUG
- turned on, but after some testing I'll gag it.
-
-commit e68dd11c43ebec527da69da7b093ae90ef6d6ea9
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 12 21:47:25 2000 +0000
-
- Use do { } while(0) instead of empty DBG if not debugging.
-
-commit 6b9fa320806ce8a734d865ebcb8052ba0e50c527
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 12 21:01:38 2000 +0000
-
- Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,
- several debug() calls converted to DBG().
-
-commit 6a9f28b0b9254ba21c36126d6f10388815840001
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 12 20:50:35 2000 +0000
-
- Added tracing of interface events.
-
-commit b0a47440e33e7a270205130b01d59faadb6b6726
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 12 20:49:08 2000 +0000
-
- Oops, got `<' and `>' markers in trace output reversed.
-
-commit cfd46ee4c5b0d3689f8f9d094a68bc4b732cd0af
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 12 20:30:53 2000 +0000
-
- Added debugging of communication between protocols and routing tables.
- Just ask for "debug routes" if you want to see the routes and "debug filters"
- if you want even the rejected ones.
-
-commit c8d5ffafb7c7e644048691221ca9d56ec68925a0
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Mar 10 20:21:12 2000 +0000
-
- Fix <=, >=, !=
-
-commit ce17d4c165cadb09d391e34cda1b796a125ef012
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Mar 9 22:38:05 2000 +0000
-
- LSA DB is completely redesigned. Now it should be faster and it needs
- less memory.
-
-commit af834f8630eb0078c723fb9b0af053dba6725d5e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Mar 9 16:38:51 2000 +0000
-
- Categorized TRACE() messages in rip
-
-commit cb822c0777657703e546bc99a7e5b646abe83d3f
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Mar 9 15:12:41 2000 +0000
-
- Rip tracing: still need config hunk to set p->debug.
-
-commit 38466dbdacc706d7a6abcf348c448bd9f8fb01d4
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Mar 9 14:59:10 2000 +0000
-
- log() classes done right
-
-commit 995e5894cd9872603bc7c0ffd79fef96e4839006
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Mar 9 14:47:43 2000 +0000
-
- 1 less shift/reduce conflict
-
- print now takes arguments separated by ,
-
- [ 1.2.3.0/24 .. 3.4.5.0/8 ] is now forbidden
-
- [ 1.2.3.0/8 ] now actually works
-
-commit e4a73dbfcbb24a6a01ca960b641ce29d5045b3ba
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Mar 9 13:21:40 2000 +0000
-
- CONST() is now gone
-
-commit 30147b89ff3a389ad40096505f3d1a5ba1705736
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Mar 8 12:50:28 2000 +0000
-
- Sending of DBDes. (Checksum and length calculation NOT done.)
-
-commit 839380d7ecd133531ead2403c6dbc74950dad13c
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Mar 7 21:50:21 2000 +0000
-
- Added debugging of protocol state transitions.
-
-commit f30b86f9d5004a3e159c385269e76efc71b1566a
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Mar 7 21:50:03 2000 +0000
-
- Added configuration of default protocol debugging flags.
-
-commit 3eb0b586ca93b1d0d34f935cac8524e02f708126
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Mar 7 21:04:36 2000 +0000
-
- No longer echoes commands before sending them.
-
-commit 3cbfcafecdf4f3dd1b201e0adf849f9959284c87
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Mar 7 21:04:14 2000 +0000
-
- DBG calls debug() if defined(LOCAL_DEBUG) || defined(GLOBAL_DEBUG).
-
-commit 96d8e3bff242d5c9d0eb75fa04a21f6c09d8dbcf
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Mar 7 20:49:48 2000 +0000
-
- Added protocol debugging flags (protocol.h: D_xxx), parsing of them
- in configuration files and commands for manipulating them.
-
- Current debug message policy:
-
- o D_STATES, D_ROUTES and D_FILTERS are handled in generic code.
- o Other debug flags should be handled in the protocols and whenever
- the flag is set, the corresponding messages should be printed
- using calls to log(L_TRACE, ...), each message prefixed with
- the name of the protocol instance. These messages should cover
- the whole normal operation of the protocol and should be useful
- for an administrator trying to understand what does the protocol
- behave on his network or who is attempting to diagnose network
- problems. If your messages don't fit to the categories I've defined,
- feel free to add your own ones (by adding them to protocol.h
- and on two places in nest/config.Y), but please try to keep the
- categories as general as possible (i.e., not tied to your protocol).
- o Internal debug messages not interesting even to an experienced
- user should be printed by calling DBG() which is either void or
- a call to debug() depending on setting of the LOCAL_DEBUG symbol
- at the top of your source.
- o Dump functions (proto->dump etc.) should call debug() to print
- their messages.
- o If you are doing any internal consistency checks, use ASSERT
- or bug().
- o Nobody shall ever call printf() or any other stdio functions.
-
- Also please try to log any protocol errors you encounter and tag them
- with the appropriate message category (usually L_REMOTE or L_AUTH). Always
- carefully check contents of any message field you receive and verify all
- IP addresses you work with (by calling ipa_classify() or by using the
- neighbour cache if you want to check direct connectedness as well).
-
-commit c801e1fbabee49838287a9e96814d3d0bf84ffa2
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Mar 7 20:09:35 2000 +0000
-
- Renamed command `shutdown' to `down', so that `s' can be used as an
- abbreviation for `show'.
-
-commit 3549667925d04fa6a46ea35f56a9d3c741634d6a
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Mar 5 22:48:30 2000 +0000
-
- Implemented real slab allocator. If you suspect it from being buggy,
- just #define FAKE_SLAB at the top of lib/slab.c to bypass it.
-
-commit 9f4929e749d945c727f245ed7ef30c557124c352
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Mar 4 22:30:44 2000 +0000
-
- Renamed EAF_INLINE to EAF_TEMP to make the name reflect the real meaning.
-
-commit b9626ec6eaf299b889f52d017d025f356b43371a
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Mar 4 22:21:06 2000 +0000
-
- Garbage collector events and counters are now per table and one day
- they can be made configurable if it turns out to be useful.
-
-commit 16c07e3d519b87a2166a513dd4edd8dab3bc3d19
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Mar 4 21:27:57 2000 +0000
-
- Removed bogus comment.
-
-commit 54fb7701a21693eb7a51342eb98d663dd7324e8a
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Mar 4 21:26:35 2000 +0000
-
- Fixed display of short continued messages in verbose mode.
-
-commit c7814f01fc5fb51ae4054833ea8074ab9bcc86de
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Mar 4 21:26:19 2000 +0000
-
- Enabled short continuations.
-
-commit a58dad62383855ad1a60d4ec5406c38d24874506
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Mar 4 21:19:10 2000 +0000
-
- Please *think* when defining operator priorities.
-
- (-: num_of_parser_conflicts -= 42 :-)
-
-commit ee76a92a80a0241421f57fe332c251255d2af4f8
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Mar 4 21:09:14 2000 +0000
-
- Implemented real attribute cache.
-
-commit d4d7562806b7306d6e5ed9b759906e264b743dc5
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Mar 2 22:23:18 2000 +0000
-
- Avoid being exponential, do not allow ! =
-
-commit c8518ae136d94dc9576531a311947ba13213aea0
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 1 15:05:43 2000 +0000
-
- Removed RTF_EXTERIOR and RTF_TAGGED (unused).
-
-commit 85053fce04a2cba09332a6eb667f09f9c4182392
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 1 14:51:47 2000 +0000
-
- Reimplemented neighbor cache. Now uses real hashing.
-
-commit 7293c5dd8175aac4650cb48c68c7dd278a74371e
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 1 14:49:07 2000 +0000
-
- Added proto->hash_key which contains randomly generated hash key used
- for calculation of hash functions depending on proto.
-
-commit 62ab789de5f5ace97a93fce551469f0229ba8c92
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Mar 1 14:42:59 2000 +0000
-
- Added type parameter to f_new_dynamic_attr.
-
-commit 31e79264a21df1acdbfbb66af40e05073b115a2c
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Mar 1 14:31:31 2000 +0000
-
- tmp_attrs fixed.
-
- I do not know if it is right since mj ingores talk once started :-(.
-
-commit 4ebbbd4079cbf6295367b9c7a555c1b668fa0d8c
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 1 12:15:20 2000 +0000
-
- Changed comments regarding hash function.
-
-commit 14a6c2a705fce9143e721b8da167dcbaa053c936
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 1 12:03:43 2000 +0000
-
- IP_PREC_INTERNET_CONTROL for IPv6 (see the comment).
-
-commit 4c1b4e1a582ea8d13943c46ad87588d5743439cb
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 1 11:48:11 2000 +0000
-
- If the user has specified identical preferences for instances of different
- protocols, break the tie by comparing addresses, so we keep the ordering
- unambiguous.
-
-commit aee539f241dd233eb9e716e11ee2c449ab482a75
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 1 11:42:13 2000 +0000
-
- Made `datetime' more user friendly. Now it should be a quoted string
- of type "dd-mm-yyyy".
-
-commit db1326aa5e39711d88d305ac08a0afa137ab77f0
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 1 11:32:23 2000 +0000
-
- Dynamic attributes are now declared in per-protocol grammar files instead
- of filter/config.Y. Bird now compiles even if you disable RIP.
-
- Removed RTA and IMPOSSIBLE tokens (unused).
-
- Removed superfluous comment in filter.h.
-
- I've tried to do my best, but Pavel, please check these changes.
-
-commit 2ca3d9a8fc25be6f7d41d8a6ff50a70612c11c93
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 1 11:30:16 2000 +0000
-
- Defined INVALID_TOKEN which is a token guaranteed to be never generated.
-
-commit d07bab399735ee80205637f8e180e7595e0c0a67
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 1 11:29:30 2000 +0000
-
- ipa_opposite hack is not applicable in IPv6.
-
-commit ef0883a12fc699fbcef61f56fe8445f5e2ac1bb7
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Feb 29 23:20:55 2000 +0000
-
- Adapted RIP to new interface flags. Pavel, please verify it's right.
-
-commit 6a636392d33627944df9d5a9573932cdc0bf6da5
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Feb 29 23:19:52 2000 +0000
-
- Rewrote interface type detection logic. The `unnumbered' flag is now per
- 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.
-
-commit e69e4ed9349ee28262fe74f70e7e52c181d5d098
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Feb 27 22:00:19 2000 +0000
-
- Support expansion of command abbreviations.
-
- Client considered finished (modulo bugs).
-
-commit de30342f97490e3a3626c4a5fbf3352d1d0aa9c8
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Feb 25 19:19:41 2000 +0000
-
- Router LSA & area adding.
-
-commit b786df7035f43bb5eb4f7bca980e3bf684e527b7
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri Feb 25 14:26:54 2000 +0000
-
- Memory allocation in ospf_area changed.
-
-commit 2d496d2028e1283384f1c9d243f96eb59c42297e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Feb 25 11:15:26 2000 +0000
-
- Get rid of 'ab'-s, added return to functions.
-
-commit df0cf75dc849f5182d75328f4d4189a2d6048b57
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Feb 24 18:46:24 2000 +0000
-
- Hmmm, libreadline 2.1 seems to be the oldest version we work with.
-
-commit 1d4ba6583afa5e6d4118aca0d0a645342d575b68
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Feb 24 18:43:23 2000 +0000
-
- Moan loudly if libreadline is an old version which doesn't support
- callbacks.
-
-commit ab56f6b16fd9401565a066122be3231dccd24fb6
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Feb 24 00:26:10 2000 +0000
-
- Area work and router LSA starts when interface goes up.
-
-commit ea28da044af9a35407724ba091d9a823c1cfe7e7
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Feb 23 23:23:19 2000 +0000
-
- Small change for debugging.
-
-commit 91808fffc22e37b6d558f22db911ad0a3277d694
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Feb 23 23:14:18 2000 +0000
-
- Structures for router LSA added.
-
-commit 6fa948d6c5abd0620836f66c654354ce38936f3a
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Feb 23 23:13:27 2000 +0000
-
- Better debugging.
-
-commit e6fcf113eca687d4dd888ef41033114ec8be82b9
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Feb 23 23:13:10 2000 +0000
-
- Better debuging.
-
-commit fae0396ea4fd9d2530086eef77b8a11b6640d640
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Feb 17 23:37:16 2000 +0000
-
- Completion works. Unfortunately, we have to access a couple of internal
- symbols of libreadline :-(
-
-commit 0223d4fff11badc03470b4320fa9dfe28afd1bed
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Feb 17 22:00:13 2000 +0000
-
- Client: Online help works (Cisco style: just press `?' at the end of a line).
-
-commit c51f132d582632037b4ef064fbd32d785af245fc
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Feb 15 12:18:37 2000 +0000
-
- First usable version of the client. No command completion and similar nifty
- features yet, but it works.
-
-commit 973304bc2b274ffaa6e27612256f6cea4a3a40c1
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Feb 14 17:32:50 2000 +0000
-
- Don't make dependencies in client directory if the client is not
- configured in.
-
-commit 4bf6de87379a3458b59275373b9e88611baabb88
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Feb 8 22:43:10 2000 +0000
-
- Hash table structure redesigned.
-
-commit 316d7bd7d16ea7ea26831bb7100dd0ac3c63084e
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Feb 8 22:13:12 2000 +0000
-
- Other LS struct added.
-
-commit d3cb698053e14b3d35750d92389c34b71503bfc6
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Feb 8 19:24:22 2000 +0000
-
- LSA type changed from u16 to u8.
-
-commit c7b915d68c9475ba3a23c99ec7f796ec0a53978b
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Feb 8 19:12:42 2000 +0000
-
- Malloc() changed to cfg_alloc().
-
-commit 9a4037d40891321a2f091cb1f1003bb1ee725136
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Jan 31 17:44:22 2000 +0000
-
- filter_same() implemented. Don't bet on it, yet.
-
-commit 70844a6a46305080d7ada79936fb272beb411cf4
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Jan 26 21:28:53 2000 +0000
-
- Updated docs about filters, and added fixme.
-
-commit bd215f8bab7e0d94fa482b47ff8d5971cd5ab799
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Jan 26 14:12:18 2000 +0000
-
- Do not send empty packets in rip.
-
-commit 8660913ba83d66491caf407a7e6eb16a4eeda2d0
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Jan 26 12:07:18 2000 +0000
-
- Output made prettier.
-
-commit 7211be1cffdee84fd15e8b6b2a07a644948f1455
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jan 20 13:13:30 2000 +0000
-
- Configure, link and use the readline library.
-
-commit 9fac310d1a4e46f4bcc70177e59cbf93763ef479
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jan 19 15:07:00 2000 +0000
-
- Put client on a stony ground. The whole client is going to be system-specific
- (the current version UNIX-specific) anyway, so it's useless to try splitting it
- to sysdep and generic part. Instead of this, configure script decides (based on
- system type and user's wish) what (if any) client should be built and what
- autoconfiguration it requires. Also, the client provides its own die/bug/...
- functions.
-
-commit f50b9e48b93e3f69423a0e6e5fef273ba2022958
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jan 19 14:37:56 2000 +0000
-
- Generate a list of all commands and their help texts for the client to use.
-
-commit 4b87e256eba51a8711c24fbae501ac7975b4ecd3
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jan 19 12:30:19 2000 +0000
-
- Split off general commands to cmds.c.
-
- Added `show symbols' command which dumps whole symbol table together
- with symbol types etc.
-
-commit f5ad9f87a389c1167a8468d0190bcf6d3cc33cf6
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jan 19 11:52:32 2000 +0000
-
- Killed a couple of bugs in the neighbor cache.
-
- Manual disable/enable/restart/shutdown/reconfiguration of protocols
- no longer hangs on loops in neighbor lists :)
-
-commit 3ea1ba632b3cdb5005a9339fd5e74d5f93631a48
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Jan 18 11:01:03 2000 +0000
-
- Killed protocol->priority. Protocol startup should be clean and hack-free now.
- It seems everything still works (except for disable/enable/restart which hangs
- sometimes, but it's another story).
-
-commit 54aaa89ada2d048c64a5afd58844bc395b1a3cfe
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Jan 18 10:42:45 2000 +0000
-
- protocol->startup_counter no longer exists.
-
-commit aa8761de9471dbe28149d990bdbc851c744f4e2b
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Jan 18 10:39:30 2000 +0000
-
- Kernel route syncer now supports dynamic reconfiguration. Also it doesn't
- depend on the startup counter hack now and uses a zero-time timer instead
- to make itself scheduled after normal protocol startup.
-
-commit fb89b1a4ced5f3d847ecbc1d4b86a0cb47564ef7
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jan 17 12:40:00 2000 +0000
-
- Removed point-to-point tunnel hack as it breaks ordinary PtP interfaces.
- I'll find a better solution soon.
-
-commit 295ae16d4ddf4b714e716a0a1537f40c54f1119c
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jan 17 12:38:50 2000 +0000
-
- Static protocol supports full dynamic reconfiguration.
-
-commit 471cc0be651a8db7068a65963ecfd4cc45f97ab1
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jan 17 12:38:07 2000 +0000
-
- Moved initlialization of protocol lists to global init. Argh.
-
-commit d272fe22dddcb5c293d6aac18d36e3e3e66406a5
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jan 17 11:52:50 2000 +0000
-
- Separated `official protocol names' used in status dumps from name templates
- used for automatic generation of instance names.
-
- protocol->name is the official name
- protocol->template is the name template (usually "name%d"),
- should be all lowercase.
-
- Updated all protocols to define the templates, checked that their configuration
- grammar includes proto_name which generates the name and interns it in the
- symbol table.
-
-commit f7fcb752520759ab3aed274ca608e8e6f96665c8
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jan 17 11:17:33 2000 +0000
-
- Reconfiguration for device protocol.
-
-commit 0ec90e9fc6f6bec2d0b64f6b9711a6d3edb4bd52
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jan 17 00:20:45 2000 +0000
-
- Pipe protocol supports reconfiguration.
-
-commit 88dc89f9918f524d9ca143d409c261a4a8230555
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jan 17 00:20:17 2000 +0000
-
- Device protocol supports reconfiguration.
-
-commit 26368f656c2398acc4d3ed55879d2f371cecf75b
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jan 17 00:19:58 2000 +0000
-
- Don't forget changing proto->name to point to name in new configuration
- (to avoid the name being freed with the old config).
-
- Also remember to add proto_pipe to protocol_list.
-
-commit ca0edc53956ecd493055ba1625754ee75d58a9c7
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jan 16 23:36:53 2000 +0000
-
- When a quoted string is encountered, don't forget to copy it to the
- config pool before passing it to the parser.
-
-commit 99278e10421a2e6703e77f91e6ef436eaf660405
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jan 16 23:36:19 2000 +0000
-
- Wording changes.
-
-commit f14a4becbe77cfb3c2e4243d6fc383b0acd8956f
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jan 16 23:30:06 2000 +0000
-
- Reworked proto lists -- each proto is now in two lists: the global one
- (proto_list) and per-type one (original lists). A lot of things simplified.
-
- Implemented `disable', `enable' and `restart' CLI commands.
-
-commit 30a6108cccac93048440113211df2eed1fb541b1
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jan 16 17:49:32 2000 +0000
-
- Added filter_same() for comparision of two filters.
-
- Pavel, please implement this as soon as possible.
-
-commit bf8558bc9cab35f31bccd6a55e51f121370765c4
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jan 16 17:40:26 2000 +0000
-
- Converted shutdown to a kind of reconfiguration, it's no more handled
- as a exception in protocol state machines. Introduced a `shutdown'
- CLI command. Killed few reconfiguration bugs.
-
-commit ebc793a5f552bb676014f771d81c074b7dd4345d
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jan 16 17:39:16 2000 +0000
-
- No more problems when events get scheduled during event processing.
-
-commit 50fe90edf3deab409ea7887c131bfe6ce89fa556
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jan 16 16:44:50 2000 +0000
-
- First attempt on dynamic reconfiguration. There are still lots of bugs
- and problems to solve, but the hardest part works.
-
-commit 394aec8fdd112a81da1e2f6f0e09ee74256dc24e
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jan 16 16:40:57 2000 +0000
-
- Don't forget to set proto->min_scope = SCOPE_HOST.
-
-commit 150875747813977ddf12474fa10a771090586402
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jan 5 00:03:47 2000 +0000
-
- Preparing for building LS databaze. Huh, why is it so complicated? :-(
-
- Adding definition of some constants.
-
-commit 7a7c1d9f34b95263d3bc100dec6cf3b94f1a9802
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Dec 20 19:14:06 1999 +0000
-
- Few more entries for bird documentation
-
-commit c8c0f62444a048e9d0986463ee1bfcdfc06df7c8
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Sat Dec 18 20:41:19 1999 +0000
-
- This is first version of documentation. Be sure to take a close look
- at it, and it would be very nice if you wrote at least introductions
- to your chapters...
-
-commit 60d7d10e6f19483545760f2241312758dd72a2ad
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Sat Dec 18 20:39:53 1999 +0000
-
- Added fixme.
-
-commit 476e10842503b51331a7994b6e25c91b20eb8e71
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Dec 16 13:51:43 1999 +0000
-
- Minor cleanups.
-
-commit e693ddff874890a9e5c990f6ca75d2e2358d065a
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Dec 16 13:23:32 1999 +0000
-
- Handle cases when SIOCGIFINDEX is defined, but doesn't work (new glibc
- with 2.0 kernels).
-
-commit 3f996d46df3cf1bdbefe0b0b0f5245c76b12756b
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Dec 16 13:14:32 1999 +0000
-
- Added missing semicolon.
-
- rip.h compiles in IPv6 mode, rip.c still doesn't.
-
-commit a2867cd957c9282d47440a1f42a6b823f5c9e4b2
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Dec 16 13:14:02 1999 +0000
-
- Better order of includes.
-
- set_inaddr() moved to sysio.h.
-
-commit 12a9d139eecea7e7fb5e73e82a2531c70894d4c8
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Dec 16 13:13:22 1999 +0000
-
- ipv6_compare() accepts non-lvalue arguments as well. This makes filters
- compile with IPv6.
-
-commit 67ece6df42b20ecc524cf3e5c14e8b541afec860
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Dec 16 13:06:13 1999 +0000
-
- Tried to clean up multicast handling. Now we don't try to guess
- multicast abilities depending on definedness of symbols and use hard-wired
- system-dependent configuration defines instead.
-
- Please test whereever you can.
-
-commit ccdc33975648647270bf33511ec5bbab4d634634
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Dec 16 12:59:09 1999 +0000
-
- Avoid touching F_MODIFY, it no longer exists.
-
-commit 6aea8905c4f0c2b0da6061b445894496e473145d
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Dec 16 12:18:33 1999 +0000
-
- TODO entries and FIXME's.
-
-commit d46ffc97ffc9ae753f999614bb69033b1f44df6d
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Dec 16 12:18:19 1999 +0000
-
- Kicked off F_MODIFY (not generated nor used)
-
-commit f545d38707bf01aa9db3915d782a547f89f92c1d
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Dec 9 18:54:20 1999 +0000
-
- Added universal locking mechanism which will solve problems
- with protocols wanting to use the same port on the same interface
- during reconfiguration time.
-
- How to use locks: In the if_notify hook, just order locks for the
- interfaces you want to work with and do the real socket opening after the
- lock hook function gets called. When you stop using the socket, close
- it and rfree() the lock.
-
- Please update your protocols to use the new locking mechanism.
-
-commit 30bc402ebb324749f9468f8ff196545bb0a58442
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Dec 8 15:12:54 1999 +0000
-
- Temporary work-arounds for multicast problems. Needs further investigation.
-
-commit 0da472d7e867e31c49fccc4ee45df3ef47c29c9b
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Dec 8 14:16:13 1999 +0000
-
- Except for special protocols (nowadays only the kernel syncer), don't
- export host and link scope routes.
-
-commit dff1f5791794102e4e6880516545145c5036873f
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Dec 8 13:33:44 1999 +0000
-
- Added hooks for show route.
- Fixed passing metrics around routing tables.
-
-commit dc82daaa9b0d88dca8684a7a766b253853ee7023
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Dec 8 13:20:19 1999 +0000
-
- - Path to control socket is selectable via command-line option.
- - die() when control socket open failed.
-
-commit 4d4de35f002e3d7a780462b834f01eeb0f70239a
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Dec 8 12:51:45 1999 +0000
-
- Fix timing and fix endianity in metrics.
-
-commit 2e18b87dcf5d4029d11bc46b37d601aae4f97174
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Dec 8 12:51:26 1999 +0000
-
- Disallow rta.net syntax.
-
-commit 3df563fa4c3c0acca181ce09dbb05452720e90e8
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Dec 8 12:51:15 1999 +0000
-
- Put rip options into config file.
-
-commit 9b47eb8530263b5ebd4a41f9ef3dab982775fc44
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Dec 8 12:50:57 1999 +0000
-
- Make bird.conf that does not crash machine when you run bird as root.
-
-commit 6c14255dd666c362f19f193a41a31f66310a34ea
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Dec 8 10:15:51 1999 +0000
-
- Make rta. syntax optional.
-
-commit febe526303996d48a667cd077f5703ca91f43219
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Dec 8 10:15:40 1999 +0000
-
- Separated bird.conf and bird.conf for testing filters.
-
-commit f78056fb2cf4554d5dcc50b5e0e79bc09ae825cf
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Dec 6 13:51:04 1999 +0000
-
- Allow logging to stderr as well.
-
-commit 4ab5331c6370ba83dc7b228f9a94ccc1c64a973e
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Dec 6 13:50:50 1999 +0000
-
- Added type `g' for void (general) pointer.
-
-commit a0c37b45e59f024fc24b65ffbaf2c9e0f1996938
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Dec 6 13:45:56 1999 +0000
-
- Logging is now configurable. You can define multiple log outputs (to both
- files and syslog) and assign lists of message categories to each of them.
-
-commit 7c0cc76ed76100ef8492f13eeec1e061d52b9be0
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Dec 6 13:44:45 1999 +0000
-
- Moved initialization of protocol list to proto.c.
-
- Added sysdep configuration hooks.
-
-commit a9c986f98116fef5c35d956e7a867be0735f3268
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Dec 6 13:43:47 1999 +0000
-
- Added tracked_fopen() which is a fopen registered in resource database.
- Will be used for log files.
-
-commit 34350a52700955d50895058d01b5407aea970e9b
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Dec 6 12:34:45 1999 +0000
-
- Implemented echoing of log messages to CLI connections. Just try `echo all'.
-
-commit f3792601dfe85c3017c984a6de5722d0e9da8a16
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Dec 4 23:28:56 1999 +0000
-
- Don't forget to send an OK reply after dumping debug information.
-
-commit 305a01f57bd97906000c36bb154d63bc90012ef7
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Dec 4 23:17:29 1999 +0000
-
- Added DEBUG commands.
-
- Removed CLI tests, real commands now serve as much better examples.
-
-commit feed82267663c6826da896309de180417bd0b39f
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Dec 3 11:41:23 1999 +0000
-
- Implemented `show static'. It's a relatively good example of how to write
- show commands for other protocols.
-
-commit 02c1fbddd462fecc6887a44ef67202870bcae7be
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Dec 3 11:40:45 1999 +0000
-
- Added proto_get_named() to be used in CLI commands to get protocol instance
- of a given protocol with optionally given name. See `show static' for an
- example.
-
-commit 28e01f85c65c536837227829f645818dfa6a2652
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Dec 3 11:10:50 1999 +0000
-
- Renamed SHOW PROTOCOLS VERBOSE to SHOW PROTOCOLS ALL to be consistent
- with the other commands.
-
-commit 430da60fa29196cf8715e09e1d81c7ea0b672f05
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Dec 2 14:04:44 1999 +0000
-
- Implemented `show route where <condition>' command.
-
- Pavel, please check my addition to filter/config.Y.
-
-commit f2c6c80a2422b87a2947b7324ad14309198d64a4
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Dec 2 14:03:25 1999 +0000
-
- I tried to turn on the YYERROR_VERBOSE switch, but bison is buggy as hell,
- so it doesn't even compile. Turned it again off and added a comment on it.
-
-commit efe51e38632dd7875af6789536be9ccfefd758c9
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Dec 2 12:04:39 1999 +0000
-
- Avoid `default rule can be matched' warning in CLI state.
-
-commit 9c3726afd2edabf42f11f21cf787061db6c5a33a
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Dec 1 15:17:24 1999 +0000
-
- Updated TODO file.
-
-commit 730f2e2c8c29b3461caa096fa514cbf71f84e51b
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Dec 1 15:10:21 1999 +0000
-
- Added dumping of routing tables (`show route'). This includes filtering.
-
-commit 04a60c689aeb10fafa9919bcff5f8391e0f3a158
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Dec 1 15:08:32 1999 +0000
-
- Added get_route_info and show_route_data hooks to struct protocol.
- Please implement them.
-
-commit f611f0ee824a6b363dc675e8f6ac963f20e7d007
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Dec 1 15:07:56 1999 +0000
-
- Reset temporary parser data before parsing, not afterwards. This enables
- deferred CLI command handlers to store their temporary data in the CLI
- parsing pool.
-
-commit 2ad6dcdb2c949904643eabbbf6d0029045e8ea45
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Dec 1 15:07:06 1999 +0000
-
- Make ACCEPT/REJECT actually return the result...
-
-commit e7f76bae8ccfe405ce3032aaa3a5e9228e5feb98
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Dec 1 13:44:42 1999 +0000
-
- Stupid bug (essentially while(1) loop) occuring sometimes during start
- of bird fixed.
-
-commit 7e1f99719e01af86006bc5c9b9a472516ec85a2c
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Dec 1 12:54:23 1999 +0000
-
- accept should behave as return, not running any commands after it.
-
-commit 639e62855495fcf461c177373d8f5eb0d5d87332
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Dec 1 12:52:57 1999 +0000
-
- Actually check sequence numbers.
-
-commit 3daf783f95790682025ef03ac5b2f486943e6214
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Dec 1 12:01:41 1999 +0000
-
- Implemented get_status for the pipe protocol (reports name of the other
- side of the pipe).
-
- Please do so for your protocols as well.
-
-commit 9685deb910c9e7400915209c1924e100b1feb5d5
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Dec 1 12:00:15 1999 +0000
-
- `show protocols' now shows time of last state change and protocol-dependent
- status information (obtained via newly introduced hook protocol->get_status).
-
-commit 5954dcfab74c8d8a2774f259c9940c1d87e76518
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Dec 1 11:59:24 1999 +0000
-
- Introduced new protocol-dependent integer field `aux' to struct neighbor.
-
-commit afa8937ac8433a7cb430a14f7613e8d0555f1149
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Dec 1 11:59:00 1999 +0000
-
- Added tm_format_reltime() for formatting of relative time quantities.
-
-commit 6781e5213b3c910317a68aaee7ee53e81ee93948
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Dec 1 11:39:58 1999 +0000
-
- FIXME's cleaned up: I have actually fixed things without killing
- comments.
-
- There are no urgent FIXME's in filters. Perhaps we should start with
- documentation?
-
-commit f2ed663aea02ac38621ecfe91cd1f37f4a56dc4d
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Dec 1 10:28:39 1999 +0000
-
- Use linux-22 configuration with all 2.2.x and 2.3.x kernels. This means
- you need to have your kernel compiled with netlink routing messages enabled.
- If it doesn't work for you, use --with-sysconfig=linux-21 and let me know
- what's going wrong.
-
-commit 1d2664a4d4455470e0b6c7fc50d232283e39e1e0
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Nov 30 14:04:09 1999 +0000
-
- Remember protocol instance in proto_config and use that for
- `show protocols <name>'.
-
-commit c9aae7f47fd7ad71b80cbc86c01a26c504ba08d0
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Nov 30 14:03:36 1999 +0000
-
- Lexer supports fallback symbol tables and uses them to recognize
- symbols from global config when parsing CLI commands.
-
- cf_lex_init_tables() is now called automatically inside the lexer.
-
-commit f0474f207061151183bb85d59f09422e7bb7e2ee
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Nov 30 14:02:27 1999 +0000
-
- Use TIME_INFINITY for initialization of password entries instead
- of 2000000000 (BTW who wrote that???)
-
-commit 487d1afa523706d8b0caec63492f4a2b6cef3bce
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Nov 30 14:01:39 1999 +0000
-
- Moved TIME_INFINITY to timer.h, so that it's publicly available.
-
-commit 0d3e6bceeeec4ebf007e02374f799cd1fb21f20c
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Nov 30 12:57:14 1999 +0000
-
- `show interfaces' and `show protocols' works.
-
-commit 10b5baaef32076369b06b4318cc61e6fa11e5493
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Nov 30 12:56:52 1999 +0000
-
- Don't use continuation shortcuts until real client is written.
-
-commit 163b2073465b1d2f90d23832456e79463fdec308
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Nov 30 10:35:26 1999 +0000
-
- Inicialisation of Topology Graph (TG).
-
-commit ae97b946e99bef043613d210489a926fe4807ec1
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Nov 25 15:35:30 1999 +0000
-
- Added few basic commands: show status, show interfaces [summary],
- show protocols (incomplete).
-
-commit 35793769273f7286aafa0455547d1d7cfeef3931
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Nov 25 15:34:51 1999 +0000
-
- cli_msg() moved to cli.h, so that it can be used outside the parser.
-
-commit ea32afb765381e642a525409a8f6cdff99aa0225
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Nov 25 15:34:20 1999 +0000
-
- Added ip_scope_text() for translating of scopes to strings.
-
-commit 1a509a6310cb2a5211bf3ac9fd963f06d9109cb1
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 25 15:03:12 1999 +0000
-
- md5 authentication seems to work.
-
-commit d3702d57fd5357e9a11ada6c46769a79da8e547a
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 25 14:54:08 1999 +0000
-
- Bugfixes: select right password for password authentication, do not
- try to process authentication blocks as datablocks, make it possible
- to add data at end of packet. Password authentication should actually work.
-
-commit 4aa885a53c479c774aab5befe55a1714b89cdc9e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 25 13:42:49 1999 +0000
-
- Filters: fix rta access to use ->aux field.
-
-commit 7e61cac325aae2628d668673f60853608e072e66
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 25 13:38:25 1999 +0000
-
- Triggered updates should now actually work. Fixed metric=16 -> time it
- out logic.
-
-commit 774f149959030b66faca7a97dfb4d1703a84e0d7
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 25 12:01:45 1999 +0000
-
- Fix timeouts. Triggered updates are not done, yet.
-
-commit 455ca441d99184e1514415bd7acb25f82d01366e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Nov 24 12:16:31 1999 +0000
-
- Check that prefixes are really prefixes + fix config file to
- comply. (:-( 1.2.3.4/8 looks nicer than 1.0.0.0/8).
-
-commit 8f013d9ca443d4ff39af7560039f108efa9ef474
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Nov 24 12:09:58 1999 +0000
-
- Sorry, previous commit did not even compile.
-
-commit 48f9e0195488db0a515e4e5140d402fe4fe7d927
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Nov 24 12:04:32 1999 +0000
-
- Filters: write access to dynamic attributes should actually work. It
- would be nice to find method of testing such beasts.
-
-commit 99bbd23b229419403f673c626001eb0f35cc3a4e
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Nov 18 14:41:43 1999 +0000
-
- More CLI plans...
-
-commit 8d24b6899d0aba52fef8c48921ce4d1481ee212c
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Nov 18 14:41:29 1999 +0000
-
- Allow EA type to be set to 'undefined' which overrides all further definitons
- of that EA in the same list and causes ea_find() to fail unless you add
- EA_ALLOW_UNDEF to the second argument.
-
- ea_sort (resp. ea_do_prune()) removes all undef'd attributes from the list.
-
- I hope this works :)
-
-commit f31156ca217226ad110cc46e6365d70e64c527e0
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 18 14:29:10 1999 +0000
-
- Filters: first parts of extended attributes being read-write. It can
- not actually work since I do not do rta/rte cow, yet.
-
-commit c7b43f33ae8d583ead531d76ed81f1b5deb507f3
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 18 14:01:36 1999 +0000
-
- Split inst->code into inst->code and inst->aux. Both are only 16 bit,
- so aux is suitable for storing type but not much more.
-
-commit da40b6f753f4dd48dbcaebbe6174decb28705ab8
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Nov 18 13:42:51 1999 +0000
-
- DEF_PREF_UKR and DEF_PREF_SINK removed.
-
-commit 346a12c2109b99d907e7ebeb3560992e92a6c26b
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 18 13:21:52 1999 +0000
-
- You can now print enum.
-
-commit 4364b47e48ddedb841e8ec8db25c8b4fa878a911
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Nov 17 15:50:41 1999 +0000
-
- ospf.c and ospc.h splitted into various files.
-
-commit bff1db76292b194bbbf0c476d960f40aa0ea47ce
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Nov 17 14:58:21 1999 +0000
-
- Added skeleton of command tree. Please inspect.
-
-commit 2af2636a691da37c73ba032ece29dee1dd20fff7
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Nov 17 13:28:51 1999 +0000
-
- Another bugfix. (In EXCHANGE state.)
-
-commit e17baa31088766f7f278be6754d0acc6e8380e4e
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Nov 17 13:15:01 1999 +0000
-
- Fixed bug receiving dbdes packets in EXSTART state.
-
-commit 62a463954815748d0d82da0e30651e6eea7bc9cf
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Nov 17 12:14:44 1999 +0000
-
- Added some temporary examples of how to define CLI commands (search for CF_CLI).
-
- To define a new command, just add a new rule to the gramar:
- CF_CLI(COMMAND NAME, arguments, help-args, help-text) {
- what-should-the-command-do
- } ;
- where <arguments> are appended to the RHS of the rule, <help-args> is the
- argument list as shown in the help and <help-text> is description of the
- command for the help.
-
- <what-should-the-command-do> is a C code snippet to be executed. It should
- not take too much time to execute. If you want to print out a lot of
- information, you can schedule a routine to be called after the current
- buffer is flushed by making cli->cont point to the routine (see the
- TEST LONG command definition for an example); if the connection is closed
- in the meantime, cli->cleanup gets called.
-
- You can access `struct cli' belonging to the connection you're currently
- servicing as this_cli, but only during parse time, not from routines scheduled
- for deferred execution.
-
- Functions to call inside command handlers:
- cli_printf(cli, code, printf-args) -- print text to CLI connection,
- <code> is message code as assigned in doc/reply_codes or a negative
- one if it's a continuation line.
- cli_msg(code, printf-args) -- the same for this_cli.
-
- Use 'sock -x bird.ctl' for connecting to the CLI until a client is written.
-
-commit 30770df2ab33ffbfd75a9478265ac5e1a1db98d9
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Nov 17 12:04:24 1999 +0000
-
- If the main event queue is not empty, call select() with zero timeout, so
- that the events are ran again after the FD's are checked. This allows us
- to schedule I/O checks between processing of user commands.
-
-commit 84a7d7f77c05578d9ebfff90672e73f021999d25
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Nov 17 12:01:11 1999 +0000
-
- ev_run() now returns whether the event has been requeued or not.
- ev_run_list() now returns number of events which remain in the list.
-
-commit ffb59d243a350ed525850e864b38af0ecb0ffea5
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Nov 17 12:00:21 1999 +0000
-
- Command line interface now works.
-
-commit ea9bb932a31e5df14e3a1a5f580e62b6aedc0247
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Nov 17 11:16:15 1999 +0000
-
- Commented out nexthop selection, see the comment.
-
-commit 7d509304b58d7ebf1d53e36a8e656830b409e1e8
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Nov 15 11:36:22 1999 +0000
-
- An example of how to define enums.
-
-commit fd54b602665f71879087faeb0b733fefa9c964bb
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Nov 15 11:36:09 1999 +0000
-
- ENUM's are now recognized as constants.
-
-commit 944f008af7a46144e38f963097e8e4cce493e2a7
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Nov 15 11:35:41 1999 +0000
-
- Defined CF_ENUM.
-
-commit cbc31830079fb5e49c14c3de446b10ed8da99ce0
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Nov 15 11:34:51 1999 +0000
-
- SYM_STAT is gone.
-
-commit 4515bdba4f56b298e62150ffe24608ba1a42e7da
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 11 13:55:39 1999 +0000
-
- Fixed order of arguments for function call.
-
- Enumeration types should work once CF_ENUM() is ready.
-
- Created test.conf for testing of filters. (I'm currently thinking
- about ./tests in root directory which will just fire all available
- tests...)
-
-commit 4ed8718a19747bba95ff86fb8d3c6ea357b50101
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 11 13:27:59 1999 +0000
-
- Shift/reduce conflict goes away _and_ if/then/else works.
-
-commit 986e34131dbd2bca668c2b0a6ebb25de6848fc0a
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Nov 10 16:06:12 1999 +0000
-
- Sending DBDES packet in EXSTART done.
-
-commit 1183b6b2297f03113d31dc73ef0edc8fc7ef0b7e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Nov 10 13:59:13 1999 +0000
-
- Enums do not work, this is testcase.
-
-commit cb8034f42cfaa2753152fa1d776cc618d07fedda
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Nov 10 13:44:29 1999 +0000
-
- First try on enumerational types.
-
- Mj's noassoc removed: this brings back shift/reduce conflict but
- it makes parser actually work. Mj please check it. IF/THEN/ELSE still
- will not work.
-
-commit 2f702671b46fa2ea01021170f685f554e4012782
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Nov 10 13:07:18 1999 +0000
-
- No more shift/reduce conflicts.
-
-commit 4995564570f9779686f767ec98034ce58d836203
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Nov 10 13:05:57 1999 +0000
-
- Shift/reduce conflicts in IF/THEN/ELSE rules solved.
-
-commit f453665704cc8d946f86057e67151ef27419e280
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Nov 10 12:44:07 1999 +0000
-
- Enumerational types, defined keyword added.
-
-commit 6ba36f06ae10ea7efd60c30f8ef40d6143c69ef6
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Nov 10 12:27:01 1999 +0000
-
- Added LSA hashing table (parts of code stolen from rt-fib.c, but
- heavily simplified since we don't need asynchronous walking).
-
-commit 3918b1b050701dee217fa9bc8c4c44d47cb84124
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Nov 10 11:52:36 1999 +0000
-
- Added timeout for routes (which means proper expiring of routes) added
- few fixmes.
-
-commit 024dcaaea253e1f69f4325edebec4a9b5618caea
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Nov 10 10:48:19 1999 +0000
-
- Added project status report for KSVI.
-
-commit a5b583f20abfbf8181b46c08947df7043c213113
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 4 14:39:51 1999 +0000
-
- FIXME's updated. One fixme is remaining for correct RIPv4. Wow.
-
-commit 7bf19253d0c33e6accd5b36a5b221f6d1d9cadcc
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 4 14:26:18 1999 +0000
-
- Reject packets which are not authenticated.
-
- Set correct nexthop on outgoing packets.
-
-commit 3c989eb4a784c34870e9d66d5be3c976d8f03797
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 4 14:05:40 1999 +0000
-
- Fixed comments about shift/reduce conflicts.
-
-commit ae3e1af2a86c428f473ef0270151cead16cc0e8e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 4 14:03:45 1999 +0000
-
- Add possibility of local variables.
-
-commit f30b25f9625d5542ace217bb6b3610d0a09f228a
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 4 14:03:36 1999 +0000
-
- Use local variables to test that functionality.
-
-commit df8b85e33f6df0567127efdd80acf98ba6f3ffea
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Nov 4 13:53:47 1999 +0000
-
- Silly bug.
-
-commit c8f61a01ea1862d0c0a3ec4cc15c5d49e1366725
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Nov 4 13:51:52 1999 +0000
-
- Symbols are not scoped.
-
-commit 91447965fed2728a1f877e21f7f58aab4c0022c7
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Nov 4 13:33:30 1999 +0000
-
- Possibility to access first extended attributes.
-
-commit 2727bb7c5bbdac54661a5097f86d979799095db8
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Nov 4 13:29:43 1999 +0000
-
- Renamed attr->attrs to attr->eattrs.
-
-commit 6dc7a0cb39d712c7670a113d5a66e9e868eb9872
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Nov 3 22:23:01 1999 +0000
-
- Filters now do not allow function (int arg; int arg2; ).
-
-commit e5005be2b415ebd9bdea28a3515961f4eb904501
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Nov 3 22:21:26 1999 +0000
-
- You should not follow next two times.
-
-commit ecc3cf6f50768284b9660b5717190107e742404f
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Nov 3 12:59:38 1999 +0000
-
- Working on db des receiving.
- Preparing for building LDA database.
-
-commit 03b7bd14de501891ea8ae1d914e1da0b1f4147d5
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Oct 31 17:48:21 1999 +0000
-
- Started a list of CLI reply codes.
-
-commit bc2fb68098faaf09393437a7743285d2af71d102
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Oct 31 17:47:47 1999 +0000
-
- Parse CLI commands. We use the same parser as for configuration files (because
- we want to allow filter and similar complex constructs to be used in commands
- and we should avoid code duplication), only with CLI_MARKER token prepended
- before the whole input.
-
- Defined macro CF_CLI(cmd, args, help) for defining CLI commands in .Y files.
- The first argument specifies the command itself, the remaining two arguments
- are copied to the help file (er, will be copied after the help file starts
- to exist). This macro automatically creates a skeleton rule for the command,
- you only need to append arguments as in:
-
- CF_CLI(STEAL MONEY, <$>, [[Steal <$> US dollars or equivalent in any other currency]]): NUM {
- cli_msg(0, "%d$ stolen", $3);
- } ;
-
- Also don't forget to reset lexer state between inputs.
-
-commit b9672a845f7ff7d2441e21746566eacc51f274b7
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Oct 31 15:43:44 1999 +0000
-
- The CLI I/O functions work as desired.
-
-commit 7d3aab1c1643e8b2bcff7f856e0d4455fa0ba4b4
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Oct 29 12:10:10 1999 +0000
-
- First steps of the Command Line Interface: I/O routines.
-
-commit b93abffae4ad5767625b35c9a09513e9d27a5256
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Oct 29 12:09:29 1999 +0000
-
- Implemented unix-domain sockets.
-
-commit 0d70292d88276a9883ab8bc15b00e6a2e2fe4487
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Oct 29 12:08:49 1999 +0000
-
- Events now return a value. If it's non-zero, the event is re-queued
- for processing in next event cycle. This can be used to prevent background
- actions (hint: user commands) from hogging the CPU for too long time.
-
-commit 92af6f309b9283482384bd9bbd0351cd71e3cf1d
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Oct 29 10:08:27 1999 +0000
-
- Simplify handling of free chunks.
-
-commit 54165b1315dd09b0ea97705367b73086131c1ed8
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Oct 29 10:08:09 1999 +0000
-
- Configure PATH_CONTROL_SOCKET.
- autoconf.h is now written to obj/sysdep, the source tree is hopefully
- completely read-only now.
-
-commit ed6081502ad814289b9b7b5537658c3b1ad435e5
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Oct 29 09:44:44 1999 +0000
-
- Added skeleton of the client. Does nothing, but at least compiles.
-
-commit 41be4444f2f548c5cc135593b2c820180a22ff99
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Oct 28 21:03:36 1999 +0000
-
- switch() { } done right.
-
-commit c2250f91c749f563229ad624bbd03053c1d671d0
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Oct 19 16:13:06 1999 +0000
-
- Minor changes and bug fixes. Preparing for Exchange and higher states.
-
-commit 96f1b8ba10f7787fc7cf0e0430a85766200707a5
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Oct 18 21:48:51 1999 +0000
-
- Huge changes. Neighbor and interface state machines rewritten.
- It should be cleaner now, I'm preparing for file splitting.
- Maybe I added some minor bugs. :-(
-
-commit f942a589ef627f5b2604955cbfdbe91fa706f29d
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Oct 12 13:04:50 1999 +0000
-
- FIXME's for rip added.
-
- Will we ever able to generate packets saying "route 1.2.3.4 using someone else"?
-
-commit 89dc383a8ce26bfe49250e5063bcadec22ff42c6
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Oct 12 07:46:08 1999 +0000
-
- Changed syntax of ip_class_mask, the old one was stupid.
-
-commit d3dd620b96c5960207b9321b416423b8130a4df7
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Oct 12 06:27:42 1999 +0000
-
- Filters: permit variables of prefix types, cleanup around
- variables. TODO list added, hopefully complete. Use new features of
- filters in bird.conf
-
-commit c79ec2ec1962394f1550afa10a8b396f0e4dfc52
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Oct 11 14:19:29 1999 +0000
-
- Untested IPv6 support added. I do not know if it compiles in IPV6 mode.
-
-commit 720d911d777f64872df923e102ebc509113885f0
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Oct 7 14:10:08 1999 +0000
-
- Added constants of type prefix and pair, added their printing
-
-commit 4872cef4dfcadab405d0393a21f9136852d7b9c4
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Oct 7 14:09:50 1999 +0000
-
- Added examples of pairs and prefixes
-
-commit c9f8c1a855cfdde2095cd792289dbce2b7a06371
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Oct 7 13:38:26 1999 +0000
-
- FIXME's added. Hopefully fixme list is now complete for filters.
-
-commit f782b72c538b5728f6c3f531a25f669f0bf99b2c
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Oct 2 11:06:44 1999 +0000
-
- Failure to set socket TOS is not a fatal error.
-
-commit 507cb9e58b947ad8c6ad1c73706a08010d90f4cc
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Oct 2 10:55:19 1999 +0000
-
- Don't forget to free large blocks.
-
-commit ac40c888c21c72ae7f6c3d329dd2ba5417eec009
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Sat Oct 2 10:44:48 1999 +0000
-
- Obvious bugs in authentication fixed.
-
-commit 7db7b7db603a2d852066c313da76c72673a204fa
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Sep 29 14:24:58 1999 +0000
-
- Case arg { 1: printf "one"; } works. You can not use two commands
- after one label, yet.
-
-commit 4caa2231fc75ed351b9a9f20a97a81ce5d4421d0
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Sep 29 14:23:11 1999 +0000
-
- Make configuration use new case statement.
-
-commit 2c1d1cc765238aef0e8bfdbc1d8bc954fa0fc222
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Aug 25 18:44:50 1999 +0000
-
- DD packet receiving in ExStart.
-
-commit 1af664158d20e9887ca11b63fc062a63f333297a
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Aug 24 18:32:26 1999 +0000
-
- A structure for receiving DD seq packets added.
-
-commit e3121112ab8cda4b4e413a801e5626f9ffb02ca8
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Aug 24 14:42:51 1999 +0000
-
- Preparing to send DD packets.
-
-commit 2981814066543b72e292b7b36ca41bfa1cc2554c
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Aug 20 09:59:39 1999 +0000
-
- Few FIXME's removed from auth, few FIXME's added to filter.
-
-commit bce8a34b128f1c0495f3f7a28d832d9c2b4a9543
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Aug 18 13:19:33 1999 +0000
-
- Few fixme's fixed in rip (will not crash any more on request for
- sending routing table - hopefully).
-
- Next few steps in md5 authentication (not yet complete).
-
-commit f651941402079052fbdabf64092e7dd4a6a8cafe
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 17 20:47:40 1999 +0000
-
- Added a function for generating 32-bit random numbers.
-
-commit b332fcdfc8f0b1ac7111a63c55f72ba4b00b8035
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Aug 16 10:32:05 1999 +0000
-
- Better dumping.
-
-commit 032df28048c1c3d64716d3876ea759660d9d3cf0
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Aug 10 12:06:45 1999 +0000
-
- Small bux fixes. A neigh_chstate added.
-
-commit a7d388d23e26bdc94aefc3788b6be6c278f6dc5b
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Aug 9 18:59:37 1999 +0000
-
- Multiple "hton problems" fixed. Now we're in EXSTART state.
-
-commit 2be22ddb4cf4c7a88a0c424f0de7c968e5c326a1
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Aug 9 18:49:50 1999 +0000
-
- "My own IP problem" fixed.
-
-commit a4c2ee717cf42bb53688c18840bd7294b6bf61dd
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Aug 9 18:34:08 1999 +0000
-
- Bug fix in checksum calculation.
-
-commit b1693b8f749ccc683a2a78dc3129e56e500bc73f
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Aug 9 18:11:51 1999 +0000
-
- Bug in election fixed.
-
-commit e83dc0d7e78fd31b435b36424beb790bf55881a8
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Aug 9 17:58:01 1999 +0000
-
- (Backup) Designated Router election added.
-
-commit 8c51f96acff1cfb05d1cf05f4355fce655c32599
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Aug 9 13:03:28 1999 +0000
-
- Some interface state machine changes. I found some problem in RFC,
- trying to conntact authors.
-
-commit 55e06729b173b24ce0c243db7e96094f10071eaf
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:57:43 1999 +0000
-
- Forgot to do a `cvs add', grr.
-
-commit d7975d261f8a30efcdbd9fad6ba47419a6ac6c39
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:38:48 1999 +0000
-
- Ouch, how could I write this?
-
-commit 4532a89e31734a457d4debe56df713d66e31cdd6
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:37:37 1999 +0000
-
- Taught Netlink how to behave in IPv6 world.
-
-commit 4f22c9818554087d8f5ab51b8666a7a48d1f4329
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:36:51 1999 +0000
-
- Support for IPv6 sockets. How nice one doesn't have to ifdef around
- ten years of API evolution :-)
-
-commit dce267832a0468ed5e596f0b0733b926af7ead3a
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:36:06 1999 +0000
-
- Basic support for IPv6. The system-dependent part doesn't work yet,
- but the core routines are there and seem to be working.
-
- o lib/ipv6.[ch] written
- o Lexical analyser recognizes IPv6 addresses and when in IPv6
- mode, treats pure IPv4 addresses as router IDs.
- o Router ID must be configured manually on IPv6 systems.
- o Added SCOPE_ORGANIZATION for org-scoped IPv6 multicasts.
- o Fixed few places where ipa_(hton|ntoh) was called as a function
- returning converted address.
-
-commit 707ef833783ef731c56baae1c0dc7b7a9e7321ff
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:35:01 1999 +0000
-
- Pruned the TODO list.
-
-commit 9c11ec9efca2fc75495cf8dcb28a959ba22b01fa
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:34:26 1999 +0000
-
- Implemented a Table-to-Table protocol a.k.a The Pipe.
-
-commit 8c943173ced1fb85c627a8ba1c3d7360eab7d22b
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:33:45 1999 +0000
-
- Allow announces of rte's to protocols in FS_FEEDING state.
- Else, we would get chicken-egg problems in the table-to-table protocol.
-
-commit 7de45ba4a01bfdc986a4b597c04ad39d9b97a58a
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:33:22 1999 +0000
-
- Kernel route syncer supports multiple tables.
-
- The changes are just too extensive for lazy me to list them
- there, but see the comment at the top of sysdep/unix/krt.c.
- The code got a bit more ifdeffy than I'd like, though.
-
- Also fixed a bunch of FIXME's and added a couple of others. :)
-
-commit 9d8856897f92ad74be140adafaac41f9df6edf31
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:31:54 1999 +0000
-
- Protocol engine bug fixes:
-
- o Make proto_config->table always point to the right
- table even if it should be the default one.
- o When shutting down, kill protocol in reverse order
- of their priority.
- o When stopping a protocol down, disconnect it from
- routing tables immediately instead of waiting
- for the delayed protocol flush event.
-
- Also added a protocol instance counter (used by KRT code
- in very magic ways).
-
-commit b6628a8c98fa53c1b293221ad0f7e0611cb0b76d
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:31:30 1999 +0000
-
- Added macros for walking lists backwards.
-
-commit 9a706f32afe703a44e605e92cc50cc77d4e91088
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:31:11 1999 +0000
-
- Added missing structure declarations.
-
-commit 8edf2361f9c4bd745a1249db3f66dfc079dd2ca1
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:30:49 1999 +0000
-
- Cleaned up handling of interface patterns:
-
- 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.
-
-commit 9273035403ace754e5b405b2c5efba7d55c28e78
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:30:20 1999 +0000
-
- Changes to interface handling on traditional Unices:
-
- o Aliases are interpreted as secondary addresses.
- o When the system doesn't supply interface indices, generate
- our ones.
-
-commit 5e13ffe6f4e229974238bb2ea96ea2ce8282b7ed
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:29:57 1999 +0000
-
- Faster checksum function.
-
-commit 913f7dc9f2dca8bebf8daebcce006b96f55ae6db
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Aug 3 19:29:27 1999 +0000
-
- Added functions for parsing and formatting of dates.
-
-commit 6542ece91a783e999f61cc51cbe18c8b4c96a36c
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jul 1 09:11:21 1999 +0000
-
- Function calling in filters works - somehow. Calling syntax is
- currently very ugly, beware. Variables are not really local - that
- needs to be fixed.
-
-commit 39369d6fbe4b3f73c8110b14623f367c8ffded50
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Jun 2 16:31:13 1999 +0000
-
- Fixed stupid bug with hello vs inactim timers.
-
-commit bae0f7dbb111e2c8fbb8a94b59de6e241020ad66
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 17:29:56 1999 +0000
-
- Neigbor deleting done. (I have some problems with timers, so it does not
- send hello.)
-
-commit cd70d93470498c0b68a084be5aeab5dd45a0df60
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Jun 1 16:35:18 1999 +0000
-
- Detecting of new neighbor added. It starts inactivity timer.
-
-commit bd7f1081f24aa6ca4cdba004478742b730644a91
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Jun 1 15:31:43 1999 +0000
-
- Grrr, the "obvious fix" to multicasting code from yesterday was
- fundamentally wrong. Reversed.
-
-commit 3e1f30610e109b3eff7e3d8b420c4b7988bd3152
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Jun 1 13:57:24 1999 +0000
-
- Defined IP_PREC_INTERNET_CONTROL and made all (well, both :)) protocols
- use it when creating sockets.
-
-commit 9de840bdbd59669a129f68f1ff3595b34439ec09
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 31 20:34:48 1999 +0000
-
- Set corectly destination address for RIP multicast. Broadcasting &
- multicasting rip actually works [broadcasting is kind of hard to turn
- it on, through].
-
-commit b94bbe00278b0c6e84f34875367d85d34d08621b
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 31 20:30:16 1999 +0000
-
- Added FIXME: mode broadcast randombly corrupts memory.
-
- Small cleaning and bugfixes.
-
-commit c7208da0b72dc7e4ff512edbecc62a99b0392c5a
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 20:28:46 1999 +0000
-
- Fix potential multicasting bug.
-
-commit 9607536dbf7c50f9c2fc7a670eab51e5c313d10f
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 31 19:43:08 1999 +0000
-
- Kill duplicity between rif and rif_patt.
-
-commit 72efa4b6f82222f91b63b9f61bbc88e458096ea7
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 31 19:37:16 1999 +0000
-
- Small fixes to rip.
-
-commit bf97bd28276af42aa59ea29b926b4848ae14e149
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 31 19:22:40 1999 +0000
-
- Cleanup of warnings
-
-commit 91c7c7416b4a18ac2b9e872c2a1a6391cf8b3dc8
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 31 19:16:22 1999 +0000
-
- Incoming side of authentication done but untested. Right handling of
- filters in rip.
-
-commit 2e6197d634a14533899915477032f082e675e35f
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 31 19:15:52 1999 +0000
-
- Added password_strncpy() which pads destination with zeros.
-
-commit 9c9e49ac392dfdbff97be579842028a4eb1d0dec
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 31 19:15:32 1999 +0000
-
- Added extended attributes for rip.
-
-commit c72b09c8508d71b9a0a998c2dabe475d54b4d014
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 19:07:31 1999 +0000
-
- IP socket priority (sock->tos) added. Constant taken from tcpdump of CISCO
- and gated.
-
-commit 35ff423d54ebabffc5ab9dd757dfa2a1a70e9676
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 18:56:20 1999 +0000
-
- Some RX_Hello checks added.
-
-commit bb027be1e232ca2207a03a8e001441965cc07801
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 18:55:35 1999 +0000
-
- Added extra argument to rt_update hook which contains a pointer to the
- temporary attribute list.
-
-commit 75b84c34e3434209517f2ebc8160f39d33e3735e
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 31 18:24:54 1999 +0000
-
- Sending and receving of hello pkts works. No I will start building neighbor
- database.
-
-commit 4a4911a36a865525f5de86ea8b575164ea9a855a
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 17:39:44 1999 +0000
-
- Added missing quotes.
-
-commit 10915c9650d4b63b12140effc68718e2aecd01d3
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 31 17:12:38 1999 +0000
-
- Modified rip to new password handling in nest. Now it at least compiles.
-
-commit 900d5470ae2cada4d37ed62f8bf2ce64c84349cd
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon May 31 17:12:00 1999 +0000
-
- Added PASSIVE option to paswwords.
-
-commit 139ca21d05df71b59a72af126d063170421cf9f7
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 31 13:21:07 1999 +0000
-
- Added sk_send_buffer_empty().
-
-commit fd5f8704bb7c2e9845a7c4785ace83a2b77d2c57
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 26 14:37:47 1999 +0000
-
- Make rip use newly defined password lists.
-
-commit 858a717796d7aa48fe9b22a6b035fec9edbb5a2a
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 26 14:37:07 1999 +0000
-
- Change format of passwords (less ;'s) and fix password.h to allow
- multiple inclusions.
-
-commit 7eb01479c92cd2f615993f2112aa5986f3e2b0ad
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 26 14:36:34 1999 +0000
-
- Example of password list usage.
-
-commit 1a2ded450ecfbb8ccb7f459d7265fc5333d13420
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 26 14:24:57 1999 +0000
-
- Skeleton for password handling, currently I only build structures and
- do nothing more advanced for them
-
-commit 9d79fec8dc7c5a3b7e590c00df7eadcef9e80144
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 26 14:24:32 1999 +0000
-
- Added notion of datetime
-
-commit 6bd08d017b5cb2608a81c0c7c9fe8fb5da73ba60
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed May 26 14:22:41 1999 +0000
-
- Better date/time input methods need to be done
-
-commit 903a3f3928a5d7c223ff4c0087343cf214f8478d
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 24 21:49:22 1999 +0000
-
- struct ospf_neigbor corrected.
-
-commit c76674f0e98d356ea235ea76fd55d71a3673b123
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 24 21:17:16 1999 +0000
-
- struct ospf_neigbor added. Neigbor state machine implementation can start.
-
-commit 65112dd270dbfa598c1f8a5074bf7224b9e1469c
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 24 18:22:00 1999 +0000
-
- ifa->time split into wait_timer and hello_timer. I will send hello in WAITING state.
-
-commit daeb60393d011f8ee1326e212b310983276b6ba1
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 24 17:37:45 1999 +0000
-
- Small bug in ipv4_skip_header.
-
-commit b9f8590025fd5d6dd360f759c5a219d69b975123
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon May 24 17:29:05 1999 +0000
-
- IP header test added.
-
-commit 4b0d57e53120e404e00f7d252119e45288ceeb71
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 21 14:29:44 1999 +0000
-
- Added CONFIG_MULTIPLE_TABLES whereever appropriate.
-
-commit 1c3c9dceb385198199c6c0190f3011d106142b67
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 21 14:29:23 1999 +0000
-
- Removed one unused structure field.
-
-commit a70693ca9bc935513d1bfa9b3a49459d27927657
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 21 14:28:44 1999 +0000
-
- Don't forget to export CPPFLAGS to GCC. :)
-
-commit a07e9d82352d0060ff4f00aa8d0a2575cafc781a
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 21 14:09:06 1999 +0000
-
- Added --with-sysinclude to allow explicitly setting where kernel includes
- reside, so that you can easily switch between 2.0 and 2.2 ones.
-
- Check existence of <linux/rtnetlink.h> for linux-22 configs to make sure
- we're using the correct set of includes.
-
-commit 4f1a6d27b9a44f61329bc7b6779a0c645362e181
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 17 20:16:53 1999 +0000
-
- Kill remaining master_table relics in KRT code.
-
- Make all protocols pass routing table to rte_update and rte_discard.
-
-commit 0e02abfd5770062768eeb4c75061b7d2f656489d
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 17 20:14:52 1999 +0000
-
- From now we support multiple tables. The master_table variable is
- definitely gone. Both rte_update() and rte_discard() have an additional
- argument telling which table should they modify.
-
- Also, rte_update() no longer walks the whole protocol list -- each table
- has a list of all protocols connected to this table and having the
- rt_notify hook set. Each protocol can also freely decide (by calling
- proto_add_announce_hook) to connect to any other table, but it will
- be probably used only by the table-to-table protocol.
-
- The default debugging dumps now include all routing tables and also
- all their connections.
-
-commit 4107df1d1b7454a16e6f45ea55aae13b01c9f566
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 17 20:06:19 1999 +0000
-
- Implemented two new symbol handling functions:
-
- o cf_define_symbol() -- it assigns a meaning to a symbol, bailing
- out if it already has one.
- o cf_find_symbol() -- finds symbol by name and creates it if not found.
-
- Also modified filter/config.Y to make use of the first function.
-
-commit b23c5e0ff4e9071b2568bf2f7d437bc13273d17d
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 14 18:03:09 1999 +0000
-
- Added ip_skip_header() and modified OSPF to use it.
-
-commit 11ce4490fac7d0446802738f5fb8fd68c36bd30b
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri May 14 08:50:25 1999 +0000
-
- *** empty log message ***
-
-commit 67ff91302f21f6a40201bcc8a01c9c76eaaf1ed1
-Author: Ondrej Filip <feela@network.cz>
-Date: Fri May 14 08:46:06 1999 +0000
-
- Netmask checking for hello packets added.
-
-commit 7426ee3d49fab13428f198c78c8b7f3da131382e
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu May 13 09:18:36 1999 +0000
-
- Checksum control added.
-
-commit 296ecb56eb4d1951d23d74d502d2c48a42eb6eee
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 11 15:34:33 1999 +0000
-
- OSPF RX implementation starts....
-
-commit 1b16029c12a501752388523ebfe2981e7d7d7ed3
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue May 11 09:53:45 1999 +0000
-
- Mensi updaty do ripu. Pridana passwd autentikace (netestovano).
-
-commit f7103dfcfe174d39c8aa10eb100550e3ec213981
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue May 11 09:50:02 1999 +0000
-
- Better logging output. Added 'struct proto *' info 'struct ospf iface'.
-
-commit 1a54d44a23de7b0bf0dfe62dd3d09d8167e5a597
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon May 10 21:37:39 1999 +0000
-
- Added packet checksumming code. Watch the comments for an explanation.
-
-commit a2697f02ac5109e749bff4d07bee6cedd0ab650b
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 7 13:46:16 1999 +0000
-
- Netlink support for secondary interface addresses.
-
-commit 9a158361da249e0eab1e0f7bd2c7dbe9f32eddfa
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu May 6 21:38:11 1999 +0000
-
- I rewrote the interface handling code, so that it supports multiple
- 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.
-
-commit ec8b579e9c9703601bf745745b620103fe2e2477
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Apr 27 16:03:17 1999 +0000
-
- Recognize site scope for IPv4 addresses (prefixes reserved for private
- networks).
-
- Removed old #ifndef logic which was used to avoid IPv4/IPv6 clashes
- before conditionals in Modules lists were introduced.
-
-commit 59e2188cb7020e43e25c9d5bdcd011f341ddfc1d
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 27 13:04:33 1999 +0000
-
- Just changes of comments.
-
-commit 6376a961332552e2bc178d647f1e5cfa01a1ac32
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 27 12:56:52 1999 +0000
-
- Hello timer implemented.
-
-commit 93bde8dce23ae10476263a84cc40bbe186263fdc
-Author: Ondrej Filip <feela@network.cz>
-Date: Thu Apr 22 13:12:28 1999 +0000
-
- Work on hello continues.
-
-commit 36bbfc704c7d2153537751e24413db9b9c97bc58
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 19 18:41:56 1999 +0000
-
- Updated filters: they now actually see IP/pxlen of net being filtered,
- gateway, and who told us, so they can do usefull jobs from now on.
-
-commit afbc41ab3d4f07f7dc4dbc6c769fe7fa1567f357
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 14 21:11:24 1999 +0000
-
- SImplify code a tiny bit.
-
-commit b11d8a4f59b3559779938b0a37914a7bc8c07a6b
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Apr 14 15:13:44 1999 +0000
-
- Redesigned struct ospf_iface & new struct ospf_sock.
-
-commit b31568a516142e905712bad498914fb6a82dc25b
-Author: Ondrej Filip <feela@network.cz>
-Date: Wed Apr 14 12:47:18 1999 +0000
-
- Small bug fix in memcpy.
-
-commit 4c5e5e3a1c438cb2e92535e3fabc458aa0d6deb3
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 14 12:29:47 1999 +0000
-
- Multicasts once again: When using SO_BINDTODEVICE, don't specify IP address
- of the interface.
-
-commit 1b50a1e4be2b54bd4ccadfaeaf558aea15255de4
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 14 11:39:07 1999 +0000
-
- Next attempt to get SO_BINDTODEVICE work :)
-
-commit 36154beb705cdaf03f9ee050798d9e653ded6ca5
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 14 11:21:02 1999 +0000
-
- Use SO_BINDTODEVICE if we're using old multicast API (i.e., struct ip_mreq
- and not ip_mreqn). This should get multicasts on unnumbered PtP links work.
-
-commit 9da4d143402efd16bec286e3723b42386b20968b
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 14 11:09:55 1999 +0000
-
- A couple of OSPF fixes:
-
- o ((flags & IF_CHANGE_UP) == IF_CHANGE_UP) -> (flags & IF_CHANGE_UP)
- o bcopy -> memcpy (bcopy is unportable)
- o Ifdeffed out add_tail(&(ifa->sk_list),NODE mcsk) -- the node in socket
- structure is for internal use by the resource manager only. (Now, the
- debugging dump of open sockets looks sane :-)).
-
-commit 1ab4dee0288e4ad6c8fbefae3aa64ca873cf4500
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 14 10:49:31 1999 +0000
-
- Removed redeclaration of `idval', so that it compiles :)
-
-commit 4c630a6dd7e02cbbe1cca2c626feb86801ee4d03
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 13 21:46:20 1999 +0000
-
- Added wait timer for eligible BCAST & NBMA interface.
-
-commit 55e7732a5a5fe47752eafe6024ba473bd7959e45
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 13 19:27:44 1999 +0000
-
- Change in ospf_iface. (My bad understanding of lists manipulation.)
-
-commit aec76c6e8e5702144522f0061bc102d26e10b97c
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 13 18:21:53 1999 +0000
-
- IPv6 changes.
-
-commit 43fc099b98594fb3ac6a56a90fd00f42fc98f742
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Apr 13 11:40:04 1999 +0000
-
- Sets of IP addresses should work, now. (From now on it is also
- possible to write if 1.2.3.4 < 1.2.3.5, but I'm not sure if it is good
- for anything.)
-
-commit 24eaae9e5d0b154ec47d9d4e13649fb066814ef1
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 13 00:46:34 1999 +0000
-
- Small change to stop using loopback.
-
-commit cb2e8c49706c14ea662df44cd3911c1f9db4b4a8
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Apr 13 00:24:05 1999 +0000
-
- A small init change to avoid core dump.
-
-commit 5b1a92e6d4350bcecff4f78b9cfabfb98ca7ce2a
-Author: Ondrej Filip <feela@network.cz>
-Date: Mon Apr 12 23:54:21 1999 +0000
-
- Not all I mean serious. Almost everything will change.
- Changes: struct ospf_iface draft, various constants added...
-
-commit 2f5d154466e8d76f4054561a361bb45f157c29a6
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 12 20:26:06 1999 +0000
-
- Added ipa_compare as requested.
-
-commit 38506f71b0bea5580987e999a7b1a69f58aec7ec
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 12 19:58:18 1999 +0000
-
- Sets of integers now actually work. Sets of IP will work as soon as
- compare function is ready.
-
-commit 01bd7759b260b379089acf28cc47bd49572ebd22
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 12 18:07:05 1999 +0000
-
- Ignore alias interfaces (some day, we will treat them as pure secondary
- interface addresses).
-
-commit 08e2d6259a71c5e43ac0083ea6d81357678f99eb
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 12 18:01:07 1999 +0000
-
- Removed TOS support. This simplifies many things a lot.
-
-commit 170c984a9ef1bde00711f405b03d24a2e151501c
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 12 17:27:21 1999 +0000
-
- Cosmetic message fix.
-
-commit 113694892e9669a1ae3dd44274f27c862c6c293a
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 12 17:21:11 1999 +0000
-
- Use $(CC) instead of gcc even when generating dependencies.
-
-commit 620c4f90c9437362bf17180e6dbbf14c4e480e40
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 12 17:20:50 1999 +0000
-
- Oops, a typo in previous struct ip_mreqn changes...
-
-commit 61fb537c6273c50deb7d33f8af246993eab4bc4d
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 12 15:27:56 1999 +0000
-
- Use `struct ip_mreqn' instead of `struct ip_mreq' for multicast
- operations on 2.1/2.2 kernels. This allows passing of real interface
- indexes instead of referencing interfaces by their IP addresses which
- fails badly in presence of unnumbered interfaces.
-
- Unfortunately, this structure is not visible with glibc 2.0 as it provides
- its own networking headers :-( Both libc5 and glibc 2.1 should be OK.
-
-commit 5a99ade413b97a780758f5c8f927604ad6c8e57b
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 12 14:57:46 1999 +0000
-
- Fixed a couple of bugs in handling of multicast sockets.
-
- See comments in lib/socket.h for a detailed guide on how to use them.
-
-commit bad631e04806287e99e2464c0fdc884f9efa1e71
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 12 12:07:15 1999 +0000
-
- Oops, typo.
-
-commit 8ba2cc064b823274e8af043bf0676bfc252e810a
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Apr 12 12:01:59 1999 +0000
-
- In case no startup function is defined, don't try to launch it.
-
-commit ed9a82369ffc660ec20d9b7fa64188a450267672
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Apr 11 19:28:16 1999 +0000
-
- Added new target "tags" to generate a tag table for Emacs.
-
- Also made "depend" work before the tree is compiled first time.
-
-commit 2db3b2887ea93c9946956a9a5ce5a06f0ef783c3
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Sat Apr 10 09:45:08 1999 +0000
-
- Decrease number of warnings.
-
-commit 49ed70b48e3b66c4dd71315e842733d69204698e
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 7 14:25:56 1999 +0000
-
- Portability fixes.
-
-commit 23b1539bf90bfb6b35d9a2be0a2b6b1e311c1460
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Apr 7 12:11:08 1999 +0000
-
- Filters upgraded - a bit. Moved code to filter.c because it is where
- it belongs. (f-util.c stays there for auxiliary and non-important things.)
-
-commit 7976a574b692f747d833d899caf0fbbf702714c1
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Apr 6 21:31:03 1999 +0000
-
- ip_pton: Avoid modification of the string we're converting.
-
-commit e2dc2f30efd65cf3da4db150fae695978388e247
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 5 20:25:03 1999 +0000
-
- Routing table core changes to support full route filtering:
-
- o Introduced rte_cow() which should be used for copying on write the
- rte's in filters. Each rte now carries a flag saying whether it's
- a real route (possessing table linkage and other insignia) or a local
- copy. This function can be expected to be fast since its fast-path
- is inlined.
- o Introduced rte_update_pool which is a linear memory pool used for
- all temporary data during rte_update. You should not reference it directly
- -- instead use a pool pointer passed to all related functions.
- o Split rte_update to three functions:
-
- rte_update The front end: handles all checking, inbound
- filtering and calls rte_recalculate() for the
- final version of the route.
- rte_recalculate Update the table according to already filtered route.
- rte_announce Announce routing table changes to all protocols,
- passing them through export filters and so on.
-
- The interface has _not_ changed -- still call rte_update() and it will
- do the rest for you automagically.
- o Use new filtering semantics to be explained in a separate mail.
-
-commit 9e0e485e50ea74c4f1c5cb65bdfe6ce819c2cee2
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 5 20:17:59 1999 +0000
-
- Added some new protocol hooks (look at the comments for better explanation):
-
- make_tmp_attrs Convert inline attributes to ea_list
- store_tmp_attrs Convert ea_list to inline attributes
- import_control Pre-import decisions
-
-commit 5056c559c4eb253a4eee10cf35b694faec5265eb
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 5 20:15:31 1999 +0000
-
- Changed syntax of attaching filters to protocols to hopefully the final
- version:
-
- EXPORT <filter-spec> for outbound routes (i.e., those announced
- by BIRD to the rest of the world).
- IMPORT <filter-spec> for inbound routes (i.e., those imported
- by BIRD from the rest of the world).
-
- where <filter-spec> is one of:
-
- ALL pass all routes
- NONE drop all routes
- FILTER <name> use named filter
- FILTER { <filter> } use explicitly defined filter
-
- For all protocols, the default is IMPORT ALL, EXPORT NONE. This includes
- the kernel protocol, so that you need to add EXPORT ALL to get the previous
- configuration of kernel syncer (as usually, see doc/bird.conf.example for
- a bird.conf example :)).
-
-commit 63a381dbf5e37c2740982d07988cea983c699816
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 5 20:10:31 1999 +0000
-
- Several filter changes. (Pavel, please check if they are OK.)
-
- o Changed parameters of f_run. Changed rtein+rteout pair to rte pointer
- passed by reference, added ea_list of temporary attrs again passed
- by reference and finally added a pointer to memory pool for storing
- temporary data (new ea_lists's, temporary rta's etc.).
- o Re-ordered result codes, so that all accepts come before all rejects.
- o Introduced FILTER_ACCEPT and FILTER_REJECT dummy values (will be
- used in protocol configurations).
- o Added filter_name() which returns name of a filter or ACCEPT/REJECT
- for the dummies.
-
-commit d4ff748224fc18e460e74ab14d70d01fd50e4b92
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Apr 5 20:06:02 1999 +0000
-
- Use a more reasonable pool chunk size: 4080 bytes seem to be a good
- approximation of a integral fraction of page size even if both malloc
- overhead and chunk header space is counted.
-
-commit c10421d3d4b5f23dc953c887332bdb6e80ae0540
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Apr 3 13:05:18 1999 +0000
-
- More changes to the kernel syncer.
-
- o Now compatible with filtering.
- o Learning of kernel routes supported only on CONFIG_SELF_CONSCIOUS
- systems (on the others it's impossible to get it semantically correct).
- o Learning now stores all of its routes in a separate fib and selects
- the ones the kernel really uses for forwarding packets.
- o Better treatment of CONFIG_AUTO_ROUTES ports.
- o Lots of internal changes.
-
-commit 69ec9087ad3fb631f46275220909a876deadb6b5
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Apr 3 13:01:58 1999 +0000
-
- Added new protocol hook for dumping of protocol-dependent route
- attributes.
-
- Please implement in all protocols.
-
-commit 73c7bed168890399981f70e1d0be35d8cde01fed
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Apr 3 13:00:52 1999 +0000
-
- Defined CONFIG_SELF_CONSCIOUS whenever the kernel scanner is able
- to distinguish between our own routes and alien ones.
-
-commit fe662dfd782619fd6505a1456b973b2525ab6ebf
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Apr 2 13:38:54 1999 +0000
-
- Fixed `too many interfaces' cases.
-
-commit 0498d92f955f011ceb70e1124f25ac567c359005
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Apr 2 11:45:55 1999 +0000
-
- Believe it or not, printf()'s does not work too much without this one.
-
-commit 8cda9cdbcf445ebe828b7bf89dcb4c7f83937756
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Apr 1 19:23:59 1999 +0000
-
- Argh, the fix was wrong.
-
-commit e4241f24f2ebc796a9cfb03db2a9502f5ebd9c0c
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Apr 1 15:35:15 1999 +0000
-
- Portability fixes.
-
-commit abae6e9cd3f041648eaa85fad2f861515b67c1ce
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Apr 1 15:33:52 1999 +0000
-
- First few FreeBSD portability fixes.
-
-commit 6accdf4f437ef2a3251df917f2b83fe985e64961
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 29 20:46:00 1999 +0000
-
- Updated the TODO list.
-
-commit fb71b23e6004d18480dcfdfbc2e7da7bbc4eb400
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 29 20:33:45 1999 +0000
-
- Remember that we can run device syncer without kernel syncer
- and vice versa now.
-
-commit 78d5ec15043ab67fdf31feabe4a83129488625fe
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 29 20:28:25 1999 +0000
-
- Please don't commit debugging code which makes BIRD exit before anything
- actually starts to happen. Grrr.
-
-commit e4912e3594c9211c8a147f1dcd4eeaf3b0095ed0
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 29 20:26:32 1999 +0000
-
- Prefer `gm4' over `m4' (due to BSD et al.).
-
-commit ba92164871f65bb9adcfa66b901d1a7b86697a86
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Mar 29 20:21:28 1999 +0000
-
- Update of filters towards new interface.
-
-commit 5bc512aa3a0d3e4ca378fff3316b75c131f17637
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 29 20:14:33 1999 +0000
-
- Clarify resource dumps and include them in the main debugging dump.
-
-commit 3f2a21fd348e49cf3ca98750b14e14dd04b3209b
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 29 20:14:00 1999 +0000
-
- Don't try to delete interface routes on CONFIG_AUTO_ROUTES systems.
-
-commit 6c02d83f4d225abc03f99fb80299f1ba10ac174a
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 29 19:56:32 1999 +0000
-
- Added FIXME: If a strange interface appears, ignore it instead of only
- writing an error message...
-
-commit f5c687f7911501ac1efd8163fade4862dc65456c
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 29 19:35:47 1999 +0000
-
- Added lp_flush() which flushes contents of a linear pool, leaving all the
- memory available for subsequent allocations from the same pool. Both flushing
- and re-using the memory costs just few instructions.
-
-commit f54801ffedf3d6342b37c1560502bfc24e7fe64a
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 29 19:14:43 1999 +0000
-
- Moved all system-dependent #include's containing endianity conversion
- functions to sysdep header endian.h.
-
-commit 6134024815adf2541293008f848dce4e8a21d061
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 29 19:13:36 1999 +0000
-
- #define NULL if not defined by system includes.
-
-commit 7f400d1c620e80461e61384c7d0b8893edb92695
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 29 19:04:14 1999 +0000
-
- After today's lengthy discussions about filter syntax, let's clean up
- whitespace/semicolon rules for whole config file:
-
- o All non-zero amounts of whitespace are equivalent to single space
- (aka `all the whitespace has been born equal' ;-)).
- o Comments count as whitespace.
- o Whitespace has no syntactic signifance (it can only separate lexical
- elements).
- o Consequence: line ends are no longer treated as `;'s.
- o Every declaration must be terminated by an explicit `;' unless
- or by a group enclosed in `{' and `}'.
-
-commit 1127ac6ec7eff52d4ccbc4d836a63fa6513f6d48
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Mar 27 22:51:05 1999 +0000
-
- Cleaned up system configuration files -- removed few obsolete parameters,
- documented the remaining ones (sysdep/cf/README).
-
- Available configurations:
-
- o linux-20: Old Linux interface via /proc/net/route (selected by default
- on pre-2.1 kernels).
- o linux-21: Old Linux interface, but device routes handled by the
- kernel (selected by default for 2.1 and newer kernels).
- o linux-22: Linux with Netlink (I play with it a lot yet, so it isn't
- a default).
- o linux-ipv6: Prototype config for IPv6 on Linux. Not functional yet.
-
-commit 7dc4827c968053e45bcb7f145e9986eeb20c993b
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Mar 26 21:50:43 1999 +0000
-
- Added everything protocols need to know about multiple routing tables,
- i.e. struct proto now contains field 'table' pointing to routing table
- the protocol is attached to. Use this instead of &master_table.
-
- Modified all protocols except the kernel syncer to use this field.
-
-commit 7e5f5ffdda7232048c4baf3fdec358afb494a29d
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Mar 26 21:44:38 1999 +0000
-
- Moved to a much more systematic way of configuring kernel protocols.
-
- o Nothing is configured automatically. You _need_ to specify
- the kernel syncer in config file in order to get it started.
- o Syncing has been split to route syncer (protocol "Kernel") and
- interface syncer (protocol "Device"), device routes are generated
- by protocol "Direct" (now can exist in multiple instances, so that
- it will be possible to feed different device routes to different
- routing tables once multiple tables get supported).
-
- See doc/bird.conf.example for a living example of these shiny features.
-
-commit 739ebd8e82b090ed91b3ebe77509ecd6784eca9a
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Mar 26 21:38:02 1999 +0000
-
- Allow different instances of the same protocol with identical preferences.
-
-commit 4ba84ebc8285c3a5c556fc769101cc29cb3d3708
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Mar 26 21:37:29 1999 +0000
-
- Slightly better generator of default protocol instance names.
-
-commit 241b7311ec5a091b7f3e1a1f2a776f3ef403c500
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Mar 26 21:35:28 1999 +0000
-
- Don't compile OSPF by default.
-
-commit b5239f223874b87dd7c9de4d624cdf1230022111
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Mar 26 21:33:36 1999 +0000
-
- Don't try to manipulate neighbor lists for copied interface structures.
- This avoids few nasty references to free memory.
-
-commit f79a749d0b9a5a7509db9ad6c547bbabc0457675
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 24 09:23:34 1999 +0000
-
- Removed our declaration of RTPROT_BIRD since Alexey has assigned
- us a real protocol number in 2.2.4 kernel.
-
-commit 421838ffef49338218dd85ff5efd1d5396ab7ccf
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 17 15:01:07 1999 +0000
-
- rte_update: Check sanity of incoming entries. Throw out (and log) all routes
- to bogus prefixes and non-local routes to host scope addresses.
-
-commit 529c414953c24c326d9063a8f06fa652f0dfbc30
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 17 14:31:26 1999 +0000
-
- Allow input and output filters (only accept/reject style as we didn't define
- modifying filters yet) to be attached to protocol instances.
-
-commit e0f2e42f4f420f7bbdda3d4656c9dda585f1297a
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 17 14:29:39 1999 +0000
-
- A couple of filter tweaks:
-
- o Introduced struct filter which serves as an external reference
- to filter. Using struct symbol for this is unwise since it doesn't
- allow extra information attached to the filter and it also forces
- all filters to be named.
- o Implemented config rule 'filter' which matches either named filter
- or an embedded unnamed filter (`{ <filter> }').
- o Fixed totally bogus comment at the top of filter.h.
- o Added a missing prototype for f_run() to filter.h.
-
-commit c612a3be310069b9fbbcfef931bb546d536a716f
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 17 13:13:18 1999 +0000
-
- Removed the `rta_same' hook since it's no longer needed (all protocols
- needing some local information should use extended attrs and cached
- rta's).
-
-commit b77ae37d11aa6e16dce31f50ca42ea30714a793e
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 17 13:09:09 1999 +0000
-
- Implemented extended route attributes and all related functions.
-
-commit 9a38757c6ab87bf64ebc22b25b1410a3a09e6b10
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Mar 17 13:05:25 1999 +0000
-
- Initialize pointers to functions so that code is actually alive.
-
-commit 3c7ad64c57de77763357684fab919b2fc082a759
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Mar 17 13:04:33 1999 +0000
-
- Compilation fix for mj.
-
-commit 29df5739c455a954598c809c2e930abc41c8488e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Mar 17 10:20:23 1999 +0000
-
- Don't segfault on unknown interface.
-
-commit d36d838df5f726e1f6845fe0e6e5c188426ac00d
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Mar 17 10:19:07 1999 +0000
-
- accept & reject should now work
-
-commit c1f8dc9149d3868e5a0f4e4ad97759fb3b177bec
-Author: Ondrej Filip <feela@network.cz>
-Date: Tue Mar 9 22:27:43 1999 +0000
-
- Yes, joining the crew. Sorry for being late. Added dummy functions for OSPF.
-
-commit 2575593e0fa9fb84a4cc481928c32519b3fea2cd
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Mar 9 14:45:27 1999 +0000
-
- Resolved conflicts, you no longer need to wrap constants in const()
-
-commit 1aa5cf1c6171393d4be4447eada173d4e1eb983a
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Mar 9 14:44:43 1999 +0000
-
- Added '=' to operator list
-
-commit b7005824453583d1459b49c5a424b50e2ea9a2c8
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Mar 8 20:30:06 1999 +0000
-
- Filters are now a tiny bit stronger (if is actually working ;-)
-
-commit 111213f0b66cff8f562f7d9117c9080a9882129e
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Mar 4 19:00:31 1999 +0000
-
- Fixed processing of !krt_capable() routes. Converted device route decisions
- to the krt_capable mechanism as well.
-
-commit e16155ae4aaee5d9ba7b6940f8312b36707718e4
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Mar 4 18:36:18 1999 +0000
-
- KRT: Implemented asynchronous route / interface state notifications
- (via Netlink). Tweaked kernel synchronization rules a bit. Discovered
- locking bug in kernel Netlink :-)
-
- Future plans: Hunt all the bugs and solve all the FIXME's.
-
-commit 2253c9e239253d2094b4b1cabd97d296af885afb
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Mar 4 14:23:32 1999 +0000
-
- Although there are still heaps of FIXME's, Netlink works.
-
- To build BIRD with Netlink support, just configure it with
-
- ./configure --with-sysconfig=linux-21
-
- After it will be tested well enough, I'll probably make it a default
- for 2.2 kernels (and rename it to linux-22 :)).
-
-commit f81dc8564ae6c17638d7e3970b9980d0d00fc78a
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Mar 4 11:40:05 1999 +0000
-
- Converted some mb_alloc/bzero pairs to mb_allocz.
-
-commit 8fe48f1377c8b501e9b090748b195c62f5b582d2
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Mar 4 11:39:24 1999 +0000
-
- Initialize allocated struct proto :-)
-
-commit 7a2105becdbadf20c1b4e4d2359e339c90610825
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Mar 4 11:36:26 1999 +0000
-
- Use dmalloc instead of EFence when available (dmalloc has lot of improvements
- over EFence and also hopefully smaller memory overhead, but sadly it's non-free
- for commercial use).
-
- If the DMALLOC_OPTIONS environment variable is not set, switch on `reasonable'
- checks by default.
-
- Also introduced mb_allocz() for cleared mb_alloc().
-
-commit aa64578641c15b137172acc927d9d7af5914576b
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 3 20:57:29 1999 +0000
-
- Netlink scans routes...
-
-commit 51ad41f2fc0c95179cb4ba65e568d2b84de32a28
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 3 20:56:33 1999 +0000
-
- EFence helped to find using of already free rte's in rt_prune().
-
-commit 53b7a2982adf5d09a1cfddbc12cf172e0700fc55
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 3 20:55:35 1999 +0000
-
- Fix several things I broke today.
-
-commit 0e889c52542508dd49433bed1785072cb7799009
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 3 20:40:51 1999 +0000
-
- Added a hack forcing protocols with priority>0 to be started up
- immediately. Grrr, need to find a real solution some day.
-
-commit 2d14045224f2233aed386eddf155d10a81892c3f
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 3 19:49:56 1999 +0000
-
- Rewrote the kernel syncer. The old layering was horrible.
-
- The new kernel syncer is cleanly split between generic UNIX module
- and OS dependent submodules:
-
- - krt.c (the generic part)
- - krt-iface (low-level functions for interface handling)
- - krt-scan (low-level functions for routing table scanning)
- - krt-set (low-level functions for setting of kernel routes)
-
- krt-set and krt-iface are common for all BSD-like Unices, krt-scan is heavily
- system dependent (most Unices require /dev/kmem parsing, Linux uses /proc),
- Netlink substitues all three modules.
-
- We expect each UNIX port supports kernel routing table scanning, kernel
- interface table scanning, kernel route manipulation and possibly also
- asynchronous event notifications (new route, interface state change;
- not implemented yet) and build the KRT protocol on the top of these
- primitive operations.
-
-commit b2280748ad5087b5dab54dd4e423053ffe1f2387
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Mar 3 19:33:54 1999 +0000
-
- Introduced protocol priority (all 'normal' protocols should use the
- default zero priority). No more "kernel syncer initialized before
- device routes" problems.
-
-commit 84c7e1943f0dbf896b1dd8d02a21120aa00463f4
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Mar 2 19:49:28 1999 +0000
-
- Add interface for running filters (please comment!), avoid bison warnings
-
-commit 05a845ed8e623c51025058037d0ca25db712ae68
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Mar 2 19:49:22 1999 +0000
-
- Avoid segfault
-
-commit 7972248d5d7f404a65fd630b2af712703aca0746
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Mar 2 18:37:02 1999 +0000
-
- Netlink module supports interface scan on startup. Working on more.
-
-commit e35ef181a41384446aca614522a7cbb10606dd5b
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Mar 2 18:36:09 1999 +0000
-
- o The if_change_too_big_p change was too high-spirited. Fixed.
- 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).
-
-commit bcbd8cc3be670a96e1405b896cff4be0912ba379
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Mar 2 17:28:06 1999 +0000
-
- Interface logic changes:
-
- o Introduced IF_LINK_UP flag corresponding to real link state.
- o Allowed addressless interfaces.
- o IF_UP is now automatically calculated and set iff the interface
- is administratively up, has link up and has an IP address assigned.
- It may be IF_IGNORED, though (as in case of the loopback).
- o Any changes which include up/down transition are considered small
- enough to not provoke artificial upping and downing of the interface.
- o When an interface disappears (i.e., it wasn't seen in the last scan),
- we announce this change only once.
- o IF_LOOPBACK implies IF_IGNORE.
-
-commit 25287d6f7e687c77704816e565529960c65e3250
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Mar 2 17:20:07 1999 +0000
-
- Don't try to install static routes to disconnected neighbors.
-
-commit eab0d1e5e5e89d82e435d224f5faf1a16524c69c
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Mar 2 16:39:41 1999 +0000
-
- Latest changes broke out-of-tree compilation.
-
-commit 3d8ef0c9ef7878292ef314a0f5f34390d74f4e9f
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Mar 2 13:15:35 1999 +0000
-
- I just don't like files enclosed in <>.
-
-commit e834074dd43cabd10ca9811191a212f86b8f6ed7
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 1 22:42:47 1999 +0000
-
- If we are compiling with debugging enabled and libefence is available,
- link it to get debugging malloc.
-
-commit b982b6db2bc9df396d4cd329e23c5b3199a409a2
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 1 22:31:27 1999 +0000
-
- Implemented netlink protocol parsing functions. More to come tomorrow.
-
-commit b4b3b39e20a669ab3f33f71474e937b5e9ce6d26
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 1 22:30:33 1999 +0000
-
- Added SK_MAGIC type sockets for internal use by system dependent code,
- especially for netlink communication.
-
-commit c748cdb9ec8b7de5daaf759825bc428cd0bcd400
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Mar 1 21:18:01 1999 +0000
-
- Hopefully ended translating to new interface
-
-commit bdb95a21a45bce1754bf54de3e7423cf8eebf9ee
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 1 20:17:46 1999 +0000
-
- Added skeletal version of Linux netlink interface. It doesn't work yet,
- but the framework is there and I'll try finish it soon.
-
-commit ea3582a6f66223dfd2c0dd6c597dc40b48033fd5
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 1 20:15:14 1999 +0000
-
- Include "config.h" instead of "autoconf.h" in all Modules lists to make defines
- in the static portion of configuration includes available as well.
-
-commit 1b769b08c195f7d95525131f65e5794c3c09a335
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 1 20:13:54 1999 +0000
-
- Renamed struct rtattr to struct rta to make things more consistent and
- avoid namespace clashes with <linux/rtnetlink.h>. Other files should
- not be affected since they use 'rta' directly.
-
-commit 025d14cd5a0909b534762e5a50bfef97c2b4c9ee
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 1 19:05:58 1999 +0000
-
- Use traditional Unix route/iface interface only when CONFIG_NETLINK
- is not defined. Also moved declarations of Unix iface logic to krt.h.
-
-commit 12be9b8c1870ab8813d29350a2e2743f8e144642
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Mar 1 17:51:29 1999 +0000
-
- Pruned the TODO list.
-
-commit 293e313ec91d4d23d6333e8cd852d425079cee68
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Feb 15 13:34:43 1999 +0000
-
- More rip fixes (config data moved to struct rip_proto_config), still
- not tested.
-
-commit b5fe3dc21c930e1d9864e342a75785efe862bd24
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 22:13:04 1999 +0000
-
- Cleaned up TODO file.
-
- That's all for today, midnight gets closer.
-
-commit 45090fecd97c97cceb677257c6e8c26044065d13
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 22:02:21 1999 +0000
-
- Synced example config with new options.
-
-commit d88e99a92ae688cc7f6534af4c2555fe6f6709f6
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 21:59:48 1999 +0000
-
- Implemented static device routes.
-
- Expect for reconfiguration issues, the static protocol is complete now.
-
-commit d1f7eab6b5f1bd86a47402cb8fdb5cbcedc8947f
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 21:58:53 1999 +0000
-
- Parameter order for the proto->if_notify hook was different in the include
- file and different in reality. Decided to use the same order as we do
- for proto->rt_notify (i.e., first new value and second the old one).
-
-commit 726141746b7f86b02a902bd6b316792e4be0380c
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 21:34:33 1999 +0000
-
- '#' comments in config files are equivalent to end of line, therefore
- also to implicit ';'.
-
-commit 5996da6a1d2eb11ac45d9d578618b9350e58593d
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 21:29:01 1999 +0000
-
- Implemented garbage collection of routing tables to delete orphaned network
- nodes having no routes attached. Such cleanup must be done from event handler
- since most functions manipulating the routing tables expect network entries
- won't disappear from under their hands and it's also probably faster when
- done asynchronously.
-
-commit f4a0a64e02c13b2b467f9c1a29222f817b54ce2d
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 21:00:25 1999 +0000
-
- Static protocol doesn't need any shutdown function. Everything gets
- disposed by the core: neighbors, rte's, etc's...
-
-commit 3fb4ca2ce2b5750d38a5e31023d2873c9942cc78
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 20:57:47 1999 +0000
-
- Don't send any neighbor notifications to protocols being flushed.
-
-commit 783f8b689a29aaffbe75e964fdd09a3c219ea81c
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 20:55:08 1999 +0000
-
- When protocols go down, prune the neighbor list.
-
-commit 013a9b91fe495371cbf9a5690613de45b634e3af
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 20:46:03 1999 +0000
-
- When shutting down, remove all routes (except for RTS_INHERIT and RTS_DEVICE
- routes) from kernel routing tables unless the "persist" switch is set.
-
-commit 0a2e9d9f5685fb4ca63e02fd3645194bb6de79d7
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 20:19:24 1999 +0000
-
- Moved sanity check of protocol state during annoucements to rte_announce.
-
-commit f4aabcee62890b7c3e999e188ab72752fbb20b79
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 20:15:36 1999 +0000
-
- Perform gracious shutdown upon receipt of SIGTERM. Finally we can
- test the whole protocol shutdown code... :)
-
-commit 7f3d1a0850ff7f240b2f240db6d44b3a5dee6d48
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 19:57:19 1999 +0000
-
- Squashed one bug in timing of route scans.
-
-commit 4c9dd1e4b95e273eacc900abb63db4b8bafaf34b
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 19:43:21 1999 +0000
-
- Synchronize signals to the main select/event/timer loop.
-
- Parse command line options.
-
-commit 1a54b1c6ac5177a1ef21f799f6cf28f355c5bbe9
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 19:15:28 1999 +0000
-
- Implemented real cleanup and pruning of routing table on protocol shutdown.
-
-commit ab749558a2a4356c38ed760649ef7d62daa48223
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 19:14:16 1999 +0000
-
- Pass new argument to FIB_ITERATE_END.
-
-commit 2569bc40731081ac70ee328a7df37109399b53c6
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 19:13:51 1999 +0000
-
- Fixed bug in FIB_ITERATE_END: it assumed the control variable is named
- "z". I've added an argument specifying name of the variable.
-
- Renamed "again" label in FIB_ITERATE_* to "fis_again" to avoid name
- clashes.
-
-commit 4e9498cbb171d52e2f3015d3e9d6c7b1b7205e27
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Feb 13 18:42:00 1999 +0000
-
- config->router_id works again.
-
-commit 67bd949a520151a5ab50090d02617adc4960868c
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Feb 11 22:59:06 1999 +0000
-
- Real implementation of protocol state machines. Delayed startup/shutdown
- should work now. Initial feeding of protocols by interfaces/routes is
- done from the event queue to prevent unwanted recursion.
-
-commit 14dea0ed25cd0385ce35cf66ff309a78960b18ca
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Feb 11 22:51:15 1999 +0000
-
- Run the event queue before writing SIGUSR dumps.
-
-commit 64011f898c1bc99183a57f21d6e099c8f4496a09
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Feb 11 22:45:54 1999 +0000
-
- struct proto again contains instance name (a copy of proto->cf->name).
-
-commit 3b15402fd4055cb5bd66cd9ac1106ceecff9f760
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Feb 11 22:18:36 1999 +0000
-
- Grrr, forgot to commit the event routines themselves :|
-
-commit e8f73195fa68b027fdcb89f239107c2d4902bd9a
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Feb 11 21:18:26 1999 +0000
-
- Added simple event scheduling system to avoid recursive calling
- of various callbacks.
-
- Events are just another resource type objects (thus automatically freed
- and unlinked when the protocol using them shuts down). Each event can
- be linked in at most one event list. For most purposes, just use the
- global event list handled by the following functions:
-
- ev_schedule Schedule event to be called at the next event
- scheduling point. If the event was already
- scheduled, it's just re-linked to the end of the list.
- ev_postpone Postpone an already scheduled event, so that it
- won't get called. Postponed events can be scheduled
- again by ev_schedule().
-
- You can also create custom event lists to build your own synchronization
- primitives. Just use:
-
- ev_init_list to initialize an event list
- ev_enqueue to schedule event on specified event list
- ev_postpone works as well for custom lists
- ev_run_list to run all events on your custom list
- ev_run to run a specific event and dequeue it
-
-commit edf62ba13fa6a74447d7ad44b23acbee964731bc
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Feb 8 22:50:32 1999 +0000
-
- Propagate depend into all subdirectories; make rip compile after
- latest mj's changes.
-
-commit ed245f967f76d29d6a4ce971ba4287ba6a7031f7
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Feb 5 21:39:21 1999 +0000
-
- Synced Linux sysdeps to new interface.
-
-commit 10d807d000155a6257f6fbad88eb72a8bf9045da
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Feb 5 21:38:50 1999 +0000
-
- Synced kernel interface to new interface.
-
-commit e9e3dc265971fbf985c5df09cb1d98494c386581
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Feb 5 21:38:22 1999 +0000
-
- Modified static router to use new interface.
-
-commit 31b3e1bbf5bc823ec5cf6d88931132f00e6c52b9
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Feb 5 21:37:34 1999 +0000
-
- Implemented new configuration/reconfiguration interface and defined protocol
- state machines. Full explanation will follow soon.
-
-commit c4c63eecc37a744c53c23da89b1ba09b9640cb6e
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Feb 5 21:29:19 1999 +0000
-
- Added several parentheses to MIN/MAX macros.
-
-commit 292099d55f1131d75efec647d3780e7a1a665fdf
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Feb 3 12:28:16 1999 +0000
-
- Few fixes in parsing of filters
-
-commit 294c182eb1dd02d0ae8658acb4a21db5d2977f3c
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jan 23 21:08:59 1999 +0000
-
- Replaced the old ugly ipv6 compilation hack by a conditional in Modules.
-
-commit 2c2f67bd83c267c1dbee68c6ed7d67f9be77e566
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jan 23 21:08:36 1999 +0000
-
- Filter all `Modules' files through C preprocessor, so that they can
- reference BIRD configuration.
-
- By the way: Do you know GCC by default does `#define unix 1'?
-
-commit ca3d562b24d5a3e303ab00d276496fb38b7382ee
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Jan 15 18:13:55 1999 +0000
-
- filters_init() renamed to filters_postconfig().
-
-commit c9b6670608577521c883db4bccd75b871568b7f7
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jan 15 18:04:28 1999 +0000
-
- Original `expr' is back, filter expressions renamed to `term'.
-
- In the future, we'll allow any filter term in place of `expr' and we'll
- just evaluate it immediately, but not now as we have no evaluation
- routines.
-
-commit 3169cf699175a2489712eee955a9ee9890ef00c9
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jan 15 17:18:41 1999 +0000
-
- Added bird.conf to .cvsignore and created an example configuration file.
-
- If you want to run bird now, just copy doc/bird.conf.example as bird.conf
- and edit it to suit your needs.
-
-commit e3a39a9ee70bf7060f9de38268885b637bc1a65a
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jan 15 16:59:26 1999 +0000
-
- Killed duplicate %type for expr.
-
-commit ca6dfded2c22c74298ff595e59afe4672151889b
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Jan 15 16:52:14 1999 +0000
-
- Make filters actually compiled.
-
-commit b9d70dc84e488212328103438bdf4e369c7d27a1
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Jan 15 16:49:17 1999 +0000
-
- Filters, second try. This time they have their own directory.
-
-commit b79f9215b99c7a54dbb2639c972dda497d141133
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jan 15 16:40:14 1999 +0000
-
- Propagate "depend" target to real top-level Makefile.
-
-commit 489b6b5e003f4a8a7856688ab0372b2ca59c84d9
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Jan 15 16:13:51 1999 +0000
-
- #if 1 that creeped into cvs killed.
-
-commit eeb05158acd0cb8def7aa155c2c718f608e6a5ae
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Jan 15 14:42:55 1999 +0000
-
- Be a tiny bit more verbose.
-
-commit 72380a3447d2c54730a4a32495e5dd964c34f57e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Jan 15 14:41:51 1999 +0000
-
- Filters added. They are unable to do anything interesting for now
- (with exception of printing integers to screen), but they exist.
-
-commit 41183888ee8addbd7887936e3b41974f5824d8ae
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Jan 15 14:40:50 1999 +0000
-
- Properly initialize filters. Also bumped version to 0.0.0 as it
- actually does something.
-
-commit cceb3e7d2fafcf3acee1db1d762ed697863b6f3b
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Jan 12 20:36:18 1999 +0000
-
- Fixed trivial bug in naming of `depend' file. Argh.
-
-commit 663683a575cb170c656db06770b490037ecf3db7
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Jan 12 16:50:38 1999 +0000
-
- Make it compile again (stupid makefiles!), make quiet option work
- (multicast/broadcast options are currently unimplemented).
-
-commit 77cedad1f6de8fcd0e59f280d08437ab3216428e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Jan 12 16:41:34 1999 +0000
-
- Keep protocol data out of iface_patt.
-
-commit 50e89a6ea26caba59c7d4dd512fdc12c09cee64c
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Jan 12 16:40:55 1999 +0000
-
- Patterns expanded in the right way
-
-commit 18fff6a1979725c1ed839d9a10285e22dc0b8214
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jan 10 00:26:11 1999 +0000
-
- Initialize only protocols which are compiled in :)
-
-commit b296730cb6b72ff84ba04fa58a6c7198f3a831e0
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jan 10 00:25:50 1999 +0000
-
- Few last-minute bug fixes.
-
-commit 49e7e5ee0b2848f5bf120a962e2e7eb11b86566a
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Jan 10 00:18:32 1999 +0000
-
- New makefiles. Includes support for out-of-source-tree builds.
-
-commit 2f9bcf9713523f6fefecd143cc2aa2a8dda7f27f
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Jan 9 15:02:11 1999 +0000
-
- First step of "autoconfization". Created a configure script which
- guesses most system-dependent parameters and determines name of system
- configuration file (sysdep/cf/...) with the remaining ones.
-
- To compile BIRD, you now need to do:
-
- autoconf # Create configure from configure.in
- ./configure # Run configure script
- make # Compile everything
-
- Configuration files:
-
- sysdep/config.h Master config file
- sysdep/autoconf.h Parameters determined by configure script
- sysdep/cf/*.h Fixed system configuration we're unable
- to guess.
-
- Makefiles are still the original ones, but this will change soon.
-
-commit 6996f459c6d8e6205bbacd83e3656b47635f7d6d
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Dec 22 19:41:04 1998 +0000
-
- Bird now uses fib structure instead of linklist.
-
-commit 1d7c44b7119d30874563c9f8bbac25273ecabb57
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Dec 22 19:20:43 1998 +0000
-
- Oops, previous modification for passing NULL to fib_init() did not
- compile :-(.
-
-commit ce45fc128783ea7b93bd7ebd5ac4eec763adbb40
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Dec 22 18:55:49 1998 +0000
-
- Allow NULL to init_fib().
-
-commit 852fc0af31ed885e355bb1d14ce0e4468830c359
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 20 14:29:06 1998 +0000
-
- log(), die() and bug() messages shound NOT contain trailing newlines.
-
-commit 08c69a7720af32a82b8e2b4b9ea3742074b3b8ee
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 20 14:27:37 1998 +0000
-
- die() -> bug() where appropriate.
-
-commit ee969ea7f4c4f40020e4209b167da04d04aba52c
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 20 14:26:57 1998 +0000
-
- Added #if 0 to rip_postconfig(), so that it doesn't crash whole daemon
- when RIP is unconfigured.
-
- die() -> bug()
-
-commit 98e87c8628f9b0a0a96bc46879b65a78b756a718
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 20 14:24:35 1998 +0000
-
- Finer grained logging levels:
-
- #define L_DEBUG "\001" /* Debugging messages */
- #define L_INFO "\002" /* Informational messages */
- #define L_WARN "\003" /* Warnings */
- #define L_ERR "\004" /* Errors */
- #define L_AUTH "\005" /* Authorization failed etc. */
- #define L_FATAL "\006" /* Fatal errors */
- #define L_TRACE "\002" /* Protocol tracing */
- #define L_INFO "\003" /* Informational messages */
- #define L_REMOTE "\004" /* Remote protocol errors */
- #define L_WARN "\004" /* Local warnings */
- #define L_ERR "\005" /* Local errors */
- #define L_AUTH "\006" /* Authorization failed etc. */
- #define L_FATAL "\007" /* Fatal errors */
- #define L_BUG "\010" /* BIRD bugs */
-
- Introduced bug() which is like die(), but with level L_BUG. Protocols
- should _never_ call die() as it should be used only during initialization
- and on irrecoverable catastrophic events like out of memory.
-
- Also introduced ASSERT() which behaves like normal assert(), but it calls
- bug() when assertion fails. When !defined(DEBUGGING), it gets ignored.
-
-commit e440395d7d3c503692321e2f6ec4e42bf758acb1
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 20 14:01:37 1998 +0000
-
- When printing a routing table, fib_check() it.
-
-commit 3ab001b97402bc01a4777cf1cb60ce940d50ffe3
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 20 14:01:20 1998 +0000
-
- Rewrote fib functions to make them insert/delete/asynchronous-walk safe.
- This is implemented in a way similar to lib/slists.h, but it took some
- more effort to make rehashing not disturb the readers. We do it by just
- taking _highest_ k bits of ipa_hash as our hash value and sorting each
- box by whole ipa_hash().
-
- Consult FIB_ITERATE_* macros in nest/route.h.
-
- Implemented fib_check() debugging function and also rewrote the rehashing
- algorithm to use better thresholds and not to waste time by rehashing
- forth and back.
-
-commit a6f250f5c6d079badc4a1274b19a21a52de6acec
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 20 13:57:49 1998 +0000
-
- New hash functions according to benchmarks posted yesterday. (The IPv6
- version has not been benchmarked yet due to insufficient test data.)
- Now ipa_hash() returns a uniformely distributed 16-bit value.
-
-commit a05406e69c699c8b6f43bf58f47b8b0385113083
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 20 13:56:27 1998 +0000
-
- Implemented deletion/insertion/asynchronous-walk lists.
- For example of their use, look at comments in lib/slists.h.
-
-commit 29ad2c9ee11df80c780c4e3f0fd217783af1d727
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Dec 19 21:53:28 1998 +0000
-
- Variance estimation fixed.
-
-commit 87b60bf7e8ad12b3efd3d6f37df0d029f50d2d91
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Dec 19 11:51:47 1998 +0000
-
- Added several tools for fib hashing function analysis. It turned out
- we can use very simple function which is monotonic with respect
- to re-hashing:
-
- n ^= n >> 16;
- n ^= n << 10;
- h = (n >> (16 - o)) & ((1 << o) - 1);
-
- where o is table order. Statistical analysis for both backbone routing
- table and local OSPF routing tables gives values near theoretical
- optimum for uniform distribution (see ips.c for formulae).
-
- The trick is very simple: We always calculate a 16-bit hash value n and
- use o most significant bits (this gives us monotonity wrt. rehashing
- if we sort the chains by the value of n). The first shift/xor pair
- reduces the IP address to a 16-bit one, the second pair makes higher
- bits of the 16-bit value uniformly distributed even for tables containing
- lots of long prefixes (typical interior routing case with 24-bit or even
- longer prefixes).
-
-commit 02933ddbbec94f1bb01c0b9e5198fe272c1f5025
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Dec 9 20:08:57 1998 +0000
-
- debug() -> DBG() in rip.
-
-commit 06fa1453cdc419acd0c037ac82f49b4d8e77cfbd
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Dec 9 15:22:40 1998 +0000
-
- Initial multicast support (can not work, but skeleton is there)
-
-commit 8e66a0ebb927f40c9fcb48bbf5f2d811d7b7c7f3
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Dec 8 18:37:58 1998 +0000
-
- Hopefully finished kernel syncer (krt) rewrite:
-
- o Interface syncing is now a part of krt and it can have configurable
- parameters. Actually, the only one is scan rate now :)
- o Kernel routing table syncing is now synchronized with interface
- syncing (we need the most recent version of the interface list
- to prevent lots of routes to non-existent destinations from
- appearing). Instead of its own timer, we just check if it's
- route scan time after each iface list scan.
- o Syncing of device routes implemented.
- o CONFIG_AUTO_ROUTES should control syncing of automatic device routes.
- o Rewrote krt_remove_route() to really remove routes :)
- o Better diagnostics.
- o Fixed a couple of bugs.
-
-commit 980297d2899a5aec6609d1f7b44626e52e6e4417
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Dec 8 18:31:31 1998 +0000
-
- Fixed a couple of bugs in static protocol. All static routes except device
- ones seem to work well.
-
-commit 618533af91051b7b26ac19816e89cd81352b0f13
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Dec 8 18:30:35 1998 +0000
-
- Added source RTS_DUMMY for temporary routes. They should never appear
- in the main table.
-
-commit f39e4713c270752d7bbfcc8115a7ea7f589c3997
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Dec 8 16:20:13 1998 +0000
-
- Rewritten kernel syncer. Now uses the rta trickery I've introduced yesterday
- and does things "the right way". Few things are still missing (device
- routes etc.), I'll add them later in the evening.
-
-commit 04925e9040330afc92f8001e6a19ae2146e36782
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Dec 7 21:59:15 1998 +0000
-
- Minor rte/rta interface changes:
-
- o rte can now contain a pointer to both cached and uncached rta. Protocols
- which don't need their own attribute caching can now just fill-in a rta,
- link it to rte without any calls to attribute cache and call rte_update()
- which will replace rte->attrs by a cached copy.
-
- o In order to support this, one of previously pad bytes in struct rta
- now holds new attribute flags (RTAF_CACHED). If you call rte_update()
- with uncached rta, you _must_ clear these flags. In other cases rta_lookup()
- sets it appropriately.
-
- o Added rte_free() which is useful when you construct a rte and then the
- circumstances change and you decide not to use it for an update. (Needed
- for temporary rte's in kernel syncer...)
-
-commit cdc6bfa70f730c3741537cc21cdd0a5d13ed2af9
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Dec 7 10:16:15 1998 +0000
-
- Comparison of kernel reject routes fixed.
-
-commit 12df4d909bdfa9e99dd0dd1b9fd690ce85b87dc5
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Dec 7 10:15:42 1998 +0000
-
- KRF_* flags moved to krt.h as they are internal to kernel syncer,
- fib->pad0,pad1 renamed to x0,x1 and in case of struct net x0 is reserved
- for kernel syncing as well.
-
-commit f6bd206607d9fcad3572841813d7376bd2df4952
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 6 23:13:31 1998 +0000
-
- All static routes except for device ones should work and appear/disappear
- when their destination comes on/off link. Deserves better testing :)
-
- See example in bird.conf.
-
-commit 78d06cf2bc8ec8b9850802fc9d34afe4d1782c6c
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 6 23:11:47 1998 +0000
-
- Removed protocol-specific data in rte for protocol static since no
- such data ever existed.
-
-commit 436965d25e840ef5f9614ed55181f5bf8c765d3b
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 6 23:11:18 1998 +0000
-
- Aesthetic fix for neighbor cache debug dump.
-
-commit 89d2355d3d16ac51ad5861d91b17eaa65713f80b
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 6 23:10:45 1998 +0000
-
- Added new rule for prefix length / netmask.
-
-commit cc12cf05c789ef85d72cf19e9b52f0c4982542f7
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 6 23:10:28 1998 +0000
-
- cf_error() now accepts any format strings instead of just an error
- message. Also added extra kludge to get rid of collisions of REJECT
- symbols.
-
-commit a1bf6440b5c27f7fb829eb25f6ac1c2629eb72eb
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 6 18:21:23 1998 +0000
-
- Added skeleton of static route protocol.
-
-commit 980ffedbb04bf3beedf147fc7dfed40cdbf968aa
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 6 17:40:42 1998 +0000
-
- Kernel syncer is now configurable. It will probably need some more
- options, but at least basic tuning is possible now.
-
-commit 0846203e896d8ab009217968e391b5e13ea3c4c6
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 6 17:39:08 1998 +0000
-
- Fixed bug in CF_ADDTO. How it's possible it has ever worked?
-
-commit 166b9c4912f1a52d7910c630280cf5a076eb1990
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 6 17:38:42 1998 +0000
-
- Added rule "bool" for boolean switches.
-
-commit b35d72ac668c52ef0755cedba89bdca54bd995ac
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Dec 6 11:59:18 1998 +0000
-
- Name cleanups as suggested by Pavel:
-
- - cfg_strcpy() -> cfg_strdup()
- - mempool -> linpool, mp_* -> lp_* [to avoid confusion with memblock, mb_*]
-
- Anyway, it might be better to stop ranting about names and do some *real* work.
-
-commit 2d9290e973b9cfc909057a0409152e020d1c29db
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Fri Dec 4 11:45:51 1998 +0000
-
- Rip now has configurable per-interface metric (please rewiev), and few
- more configurable parameters. To do that, union was added into iface_patt.
-
-commit 9b999c393c6f89a73d5fe0f4e152b77ca0afb1b2
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Dec 1 16:17:10 1998 +0000
-
- Infinity is now configurable ammount.
-
-commit 50d8424ad1f40f9979214c1d6cbf8e290ba9a5cb
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Nov 29 22:03:58 1998 +0000
-
- Added configuration of the device internal protocol. This is primarily
- intended to serve as an example of interface pattern list use. As a side
- effect, you can disable generating of device routes by disabling
- this protocol.
-
-commit 66efdf962a343c7cf5aef475f35f9e3864cb4fdd
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Nov 29 22:01:33 1998 +0000
-
- Handle disabled protocol instances.
-
-commit ed45f2e126680c7197be2058f9c162f1d5019eeb
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Nov 29 22:01:03 1998 +0000
-
- Added functions for manipulating interface name pattern lists:
-
- o iface_patt_match(list, iface) -- match interface against list
- o iface_patts_equal(a, b, c) -- compare whether two pattern lists are
- equal or not. c(x,y) is called for comparison of protocol-dependent
- data.
-
-commit 49e4a4d1fd64da045182f6ccd38753feb364f9c5
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Nov 29 21:59:37 1998 +0000
-
- Created new functions for allocating configuration data:
-
- o cfg_alloc(size) -- generic memory allocation
- o cfg_allocu(size) -- unaligned memory allocation
- o cfg_allocz(size) -- zeroed memory allocation
- o cfg_strcpy(str) -- allocate a copy of a string
-
- Also fixed a bug in lexing of string literals.
-
-commit 5cd462f291b45a6a33168cdfbc4ba55ee068af65
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Nov 29 14:51:47 1998 +0000
-
- `wc -l TODO` decreased.
-
-commit dee929d86844b1956b1c0f1d2c0289a787ab9226
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Nov 29 14:47:24 1998 +0000
-
- Added function for shell-like pattern matching. Will be used for
- matching interface names in protocol-to-iface bindings.
-
-commit bd5d0d62f10c65d56e1900014be5989a3feb8380
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Nov 29 14:40:39 1998 +0000
-
- Allow setting debug value and `disabled' flag in protocol definition.
-
-commit 0cf86f0fc34c7daf020a9189279644af89e273a1
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Nov 29 14:38:34 1998 +0000
-
- Renamed `DEBUG' symbol to `DEBUGGING' to prevent collisions with token
- names and include files.
-
-commit 7af99789c78894fa2c7ffce3d7172d6a46c1c0e3
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 21:34:03 1998 +0000
-
- Oops, forgot to remove a debugging kludge.
-
-commit 0b62c3a7c7548cd447b4f18e0346cc9e74862ab3
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 21:32:45 1998 +0000
-
- Trivial 15-line bison excercise: Implemented expressions including
- user-defined numeric symbols. Whenever possible, use `expr' instead
- of `NUM' to get full express ion power :-)
-
-commit c74c0e3cdf008988a8873d3f76c0d71b29ab8673
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 21:09:57 1998 +0000
-
- First attempt at protocol configuration (now done only for RIP).
-
-commit 93fb60d54ca7ce3efec1cc0b39fb0840d055ccd1
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 21:08:37 1998 +0000
-
- Fixed few misspellings and exported instance init as rip_init_instance().
-
-commit 8450be97d6ffb052fce95292d39c3f67afbcdc1c
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 21:07:02 1998 +0000
-
- Added generator of default names.
-
-commit 906b0170a41cc0d8ea11c7bae0a9fea3d18fe6d1
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 19:39:16 1998 +0000
-
- Experimental config file.
-
-commit b4712244a0fb49b32dc58d28523f122d8ed2cae8
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 19:38:30 1998 +0000
-
- Dummy grammar for RIP configuration. Now empty, but must be here since
- it's referenced in the makefiles.
-
-commit da87782278cdb38a90f5236fbbc4928c9ca2ee15
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 19:37:57 1998 +0000
-
- Parser fragment for the core. Now handles only router ID setting.
-
-commit 70591fa06481e7935dcf66ec79812c470c71f4c8
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 19:37:07 1998 +0000
-
- Compile and use the new configuration code by default.
-
-commit f142750d3420d482d7e9344c71777fdd37754114
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 19:36:06 1998 +0000
-
- Base of the parser.
-
-commit 82fc7be7bbb9af40d0abf8477f7af25e1423da1a
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 19:35:50 1998 +0000
-
- Lexical analyser.
-
-commit fe7cec12e8589b7d6af6033cb80804fbcbe7c0b8
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 19:35:10 1998 +0000
-
- Replaced nest/confile.h by conf/conf.h, added a lot of new definitions.
-
-commit ce6ca80926c0ce87c9a08ea4f4236b1a95846086
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 19:33:53 1998 +0000
-
- This script takes configuration fragments and generates full Bison grammar
- from them.
-
-commit 882c588a4060739a4820941cd1c6014bd10ab0db
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 19:33:26 1998 +0000
-
- This script takes configuration fragments and extracts keyword list
- from them.
-
-commit d2ed2579fa365fa36b7882ef847b9e640290c05e
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 19:31:41 1998 +0000
-
- Now merges configuration fragments (*.Y) as well.
-
-commit dfeef5d8bb9fe19cb44d4121fd8324179a38b7a0
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 19:29:27 1998 +0000
-
- Implemented ip_pton()
-
-commit a3afae585af9a544f919a95509107aae33fbe53c
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 19:29:00 1998 +0000
-
- Removed prototype of rp_free() since this function has never existed.
-
-commit 3cef8c706ccfbc17d8af6aed7820c9231d908214
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Nov 27 19:28:29 1998 +0000
-
- Added path to config file.
-
-commit 4254dc45e77b4c2d45178c7a5ce1e9bff19b8bf7
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Nov 21 10:25:34 1998 +0000
-
- Killed bug in processing of 'h' prefix. Patch taken from linux-2.1.129.
-
-commit 9158ca99f740d5b1b50d233e0f64e61504dc6fdf
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Nov 16 21:41:21 1998 +0000
-
- Complain loudly if the logging buffer would overflow.
-
-commit 53a416d376a16b2091dce898a16600b0cd27c348
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Nov 16 21:40:35 1998 +0000
-
- Implemented snprintf and similar functions. It took a lot of thinking,
- but the modifications were relatively simple and straightforward.
-
-commit c3e9b2ab2448bce4a6fe6a5be9c8de8beecc8e17
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Oct 26 15:35:19 1998 +0000
-
- RIP now includes notion of interface, and is correctly talking to
- itself on second host. Split horizont is broken.
-
-commit dafd580ed94f38c95a84d8d00d3a57c7c194d6db
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Oct 26 15:24:32 1998 +0000
-
- Previous fix was wrong.
-
-commit db6984c43c47bfb549394f6571f024df301b19ee
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Oct 26 15:01:04 1998 +0000
-
- rte_update: Doesn't loop forever when multiple routes point to the same
- destination.
-
-commit dc7c7494e372febc44ae7d1f4ed618a6fe8bf45e
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Oct 20 16:45:53 1998 +0000
-
- RIP _NOW_ actually talks to itself (workaround core bug: send data
- from other port than we receive at), few FIXME's added.
-
-commit 756b86dea31f2b94b1fbc1d95098f1a177b2817e
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Oct 20 16:39:04 1998 +0000
-
- Learn static device routes from the kernel (temporary until we can make
- such things configurable).
-
-commit feb6abe009aa13b3cd0ce22e6333163fb7561c16
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Oct 20 16:12:43 1998 +0000
-
- RIP now actually talks to itself.
-
-commit 8ca8683c705c76dc155521204ef098e6fe547696
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Oct 20 15:47:02 1998 +0000
-
- Beware the NULL route, my son... The bugs that bite, the BIRDs that crash :-)
-
-commit acc62f5e1d4a100ec0be5c73e928a041aa9a4f9d
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Oct 20 15:17:38 1998 +0000
-
- Insert/remove hooks return void, not int.
-
-commit a0762910a62085d875b5bf5e1494c4fdde6f603f
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Oct 20 15:13:18 1998 +0000
-
- Added pointer to network to RTE. The complications with passing NET separately
- aren't worth 4 bytes per RTE.
-
- rte_discard and rte_dump don't need net * as parameter.
-
-commit b6903c948b2325f11cfb07f2df0590708920b987
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Oct 19 18:18:12 1998 +0000
-
- Updated TODO.
-
-commit 7d8329078066b5682a0330b20dbdf74c7a01cbac
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Oct 19 18:13:36 1998 +0000
-
- Generate router_id automatically if possible (standard "smallest of local
- regular interface addresses" rule).
-
- Protocols should NOT rely on router_id existence -- when router ID is not
- available, the router_id variable is set to zero and protocols requiring
- valid router ID should just refuse to start, reporting such error to the log.
-
-commit 08045252553478457f923a9f941675df9992f507
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Oct 19 17:52:29 1998 +0000
-
- Basic kernel routing table syncing implemented. Learning of routes installed
- by other programs or the kernel itself is not supported yet, but it's not
- needed for development of other protocols.
-
-commit 567e6c62208d3bb05b58b8ed08c2be29d6542f2b
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Oct 19 17:48:45 1998 +0000
-
- Use (SOCK_DGRAM,IPPROTO_IP) socket instead of (SOCK_STREAM,IPPROTO_TCP).
- This is exactly what Linux ifconfig does and seems to be the preferred way.
-
-commit 4cf45766bac4b1e3f5196f7e36d012cb7c010dc1
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Oct 19 17:47:50 1998 +0000
-
- Exporting fill_in_sockaddr() for use by other unix-dependent code.
-
-commit 36f2caf147fb80e2b3db59d367e07f5d143f3710
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Oct 19 17:46:45 1998 +0000
-
- Fixed generation of device routes for unnumbered point-to-point links.
-
-commit f184ea6f7e1233403d06fa4615cb9f27f9d9a839
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Oct 19 17:45:29 1998 +0000
-
- Proto struct now contain (down | starting | up) state.
-
-commit 16a8ba30a97d82f8e43385d1a9b116fdb16746a8
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Oct 18 22:25:56 1998 +0000
-
- We parse /proc/net/route and flag RT entries according to it. More to come
- today in the morning...
-
-commit 4c45595e3bb9f0b605e3102742831dad8915b309
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Oct 18 22:24:41 1998 +0000
-
- o FIB flags now available for FIB users.
- o struct network: FIB flags used for kernel syncing.
- o struct network: `next' field deleted (historical relic).
-
-commit ab3a76a382745e0195b213c6d87ddc0e3cabd690
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Oct 18 22:22:28 1998 +0000
-
- Added ipa_from_u32 and ipa_from_u32 for use in the kernel sync code (IPv4 only).
- Don't ever think of using it in routing protocols.
-
-commit 7e7790c61f14dff300d7c5464fdd47e4c15a0731
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Oct 18 12:50:43 1998 +0000
-
- Since almost every UNIX system requires different techniques for reading
- the kernel routing table as opposed to modifying it which is approximately
- the same on non-netlink systems, I've split the kernel routing table
- routines to read and write parts. To be implemented later ;-)
-
-commit 8b1688177b2b3c6a3740f792997f3057b9bff0da
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Oct 18 12:48:15 1998 +0000
-
- * Please distinguish between DGB() and debug().
-
-commit 3629bcf0c7ff8ccc56baabc4769f90635d1a7864
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Oct 18 12:26:02 1998 +0000
-
- Preconfig, postconfig and init hooks can be NULL.
-
-commit 0432c0173bb4d234e8ba8e4afea0a8e708e119d8
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Oct 18 11:53:21 1998 +0000
-
- Split protocol init to building of protocol list and real protocol init.
- Added kernel route table syncer skeleton.
-
-commit 05e56feb57b8e313a2328dbe82e2c2a70ff5115a
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Oct 18 11:50:36 1998 +0000
-
- Removed global pointer to proto_dev.
-
-commit 5b22683d2f27fcc5954cc9d4d58e55e539414d53
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Oct 18 11:13:16 1998 +0000
-
- After contemplating about RIP route timeouts for a long time, I've implemented
- protocol callbacks for route insertion and deletion from the central table.
- RIP should maintain its own per-protocol queue of existing routes, scan it
- periodically and call rte_discard() for routes that have timed out.
-
-commit 570ce189d77fc40841e8e9f8f86ea3c3840aa450
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun Oct 18 10:49:46 1998 +0000
-
- Implemented `route last modified' time.
-
-commit 2a900b1b1565d778f19c10b087aea558f067bba7
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Oct 17 11:26:28 1998 +0000
-
- Fixed misleading comment.
-
-commit 7f3d198df118dc218bb2049f1cc0597ec62864bc
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Oct 17 11:24:13 1998 +0000
-
- Each protocol now hears even its own routes and needs to make its own
- loop detection. This is needed since both RIP and OSPF handle multiple
- neighbors and they need to redistribute routes learned from each neighbor
- to the remaining ones.
-
-commit 47b793064c25c8adcab48cacc018be1675f2448a
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Oct 17 11:05:18 1998 +0000
-
- Solve chicken-and-egg problems with protocol startup. We now queue all inactive
- protocols and don't send route/interface updates to them and when they come up,
- we resend the whole route/interface tables privately.
-
- Removed the "scan interface list after protocol start" work-around.
-
-commit d92882be9b1bfcc1a8e8a7bd552bdec4831694aa
-Author: Martin Mares <mj@ucw.cz>
-Date: Sat Oct 17 11:02:39 1998 +0000
-
- WALK_LIST_DELSAFE now actually works (it really couldn't since it didn't
- reference list head at all).
-
-commit c05ea56f8eb15dfe3c9d18496deaa926e0cf8aac
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Sat Oct 17 10:25:22 1998 +0000
-
- rip should now correctly listen, but entries will not time out.
-
-commit 8333431c4d0d7dcf065938e21440b4ce20cb8f8f
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Oct 15 15:12:24 1998 +0000
-
- Rip: rip_rta_same added.
-
-commit 93f1c532e99cddb5575075313c0707bcd4758f07
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Oct 14 13:38:17 1998 +0000
-
- Moved scanning of interfaces, so that they get initialized after all
- routing protocol instances.
-
-commit cf3934c5691ec4a00d54b863576916f9a1dd1f1a
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Oct 14 13:27:53 1998 +0000
-
- Lists: unneccessary test killed, make code friendly to non-gcc.
-
-commit c93214d442644c9667d69f904d57aef6b4ddd47e
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Oct 13 19:57:33 1998 +0000
-
- o There are cases when SIOCGIFINDEX is defined, but it doesn't work. When
- this happens, don't reject the whole interface, just mark it as index 0.
- o Removed Pavel's comment about EFAULT and SIGSEGV. EFAULT is a valid return
- code for cases where the buffer is too small.
- o Commented out the smart interface list size logic temporarily as it seems
- Linux 2.0 SIOCGIFCONF doesn't react to ifc_req==NULL sanely. Replaced it
- by exponential stepping.
-
-commit fdf33cde1cd14a2a0215d6d459489e258fe20789
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Oct 13 14:59:46 1998 +0000
-
- Strange, on atrey ioctl() does not fill structure, and bird segfaults
- on it. Now we "only" die().
-
-commit 21580e304f612b276a90d2a90f4fb86569609255
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Oct 13 14:32:18 1998 +0000
-
- I prefer to have broken drivers than completely stupid ones...
-
- Linus Torvalds
-
- Rip now uses main routing table properly: entries are stored directly
- into main routing table and we are relying on core to call our's
- compare. That unfortunately broke garbage collecting (and probably
- many more things). It compiles.
-
-commit 1d941de47a90fb9ca39d7acf6aa396447d1fc7df
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Wed Oct 7 19:33:50 1998 +0000
-
- RIP now somehow listens to main routing table (dont expect it to work)
-
-commit 8c43696da0c0680820aa949da35e823e68162788
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Aug 31 21:13:42 1998 +0000
-
- Route update hook now gets network prefix as well as updated
- route attributes.
-
-commit bf65d27deaa0bacd801ec06a3257dda03a53fee2
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jul 30 07:43:45 1998 +0000
-
- Bird's info are now understood by ripquery.
-
-commit 279f4c7b7b2ebe13793649f191040042a8c4c014
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Jul 28 21:44:11 1998 +0000
-
- Rip now includes code to reply, but it is currently broken.
-
-commit 48b41d58112737f87f1217414291e61f5430f611
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Tue Jul 28 21:42:08 1998 +0000
-
- Do not segfault on iface == NULL.
-
-commit a872b0f7dae38cfef574d0d3b30609e968cdf95b
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Mon Jul 20 20:05:40 1998 +0000
-
- Reversed buggy patch.
-
-commit c25e90efed6bc76d05370403839640ed05017506
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jul 15 19:42:23 1998 +0000
-
- Added comment explaining `now'.
-
-commit 1be52eea5777f082b02e0f484620e692017b16a2
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jul 10 08:39:34 1998 +0000
-
- Removed format specification attributes for log() and debug() until
- GCC is fixed to handle custom formats.
-
-commit 786d0bb9e7c5db5104e3fd0ff7fdfbd1e19844ea
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jul 10 08:38:29 1998 +0000
-
- Added ipa_class_mask() which guesses netmask for classful addressing.
- For pure A/B/C class addresses it just returns the class netmask, for
- subnets it tries to guess subnet mask. Please make sure the address
- you pass to this function is really a valid host address (i.e., call
- ipa_validate() first).
-
-commit 28a9a189d71ef3b05daa21d60277149edb8e98ad
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Jul 10 08:32:18 1998 +0000
-
- Replaced remaining references of clock_t by bird_clock_t.
-
-commit a103373f6147f27e4ac71e5903563e57ce52902c
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jul 9 19:39:04 1998 +0000
-
- Commiting RIP. RIP should somehow listen, will not reply. I needed to
- commit it so that whole thing compiles.
-
-commit 86b0023033a25cdc6ab5480e03893f516184a2a5
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jul 9 19:37:39 1998 +0000
-
- Making SIGUSR1 dump also all protocols.
-
-commit 87d2be86e5f8af0e2f01e7fb711bd282e29e376b
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jul 9 19:36:52 1998 +0000
-
- Adding proto_dump_all() function
-
-commit cf3527e2f4f1f4009fa332e6284b8904c24d0d43
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jul 9 19:36:05 1998 +0000
-
- Adding MIN()/MAX() macros
-
-commit aea2dcabdc4ed80172ac8d4f5c4d31bc8607d1e7
-Author: Pavel Machek <pavel@ucw.cz>
-Date: Thu Jul 9 19:35:23 1998 +0000
-
- Adding walk list which permits you to delete entries.
-
-commit 962ba482fd7bba97cf13a96105503efff4dcb88a
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 17 14:36:02 1998 +0000
-
- Use '%I' instead of dirty address printing hacks.
-
-commit d997534f65903e8078efe2f8ceb19941692598f7
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 17 14:34:13 1998 +0000
-
- Oops, forgot '%m'...
-
-commit 9556f225853748d5fee9a21e179b8fd5da2d3c42
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 17 14:33:29 1998 +0000
-
- debug() and log() use the new printf. Feel free to use new formatting
- sequences for all output.
-
-commit ecacdfa434acf8af38ed8c1c0c8e71dab400b0f4
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 17 14:31:36 1998 +0000
-
- Added local version of sprintf (bsprintf and bvsprintf) offering few new
- format strings:
-
- %I IP address
- %#I IP address in hexadecimal
- %1I IP address padded to full length
- %m strerror(errno)
-
-commit 97d858c590998786d4d8a16b5c1f657800d74736
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 17 14:28:46 1998 +0000
-
- ip_ntop() and ip_ntox() for IPv4.
-
-commit 6b5e06abb57528a091fd171dff379634fa7c4dad
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 17 14:26:30 1998 +0000
-
- Added function for converting of IP addresses to printable form.
-
-commit 620a355a15d65a8a2980f98b2de3e7d04c3dab62
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 4 20:30:11 1998 +0000
-
- Now sending IF_CHANGE_CREATE when a new interface appears and IF_CHANGE_UP
- only if it's really up.
-
-commit 236d4eb8ce5dc894e97bcf1f561186d41c361cea
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 4 20:29:44 1998 +0000
-
- FIB_WALK and friends are now slightly more friendly.
-
-commit 66e53309acceb0fd7e56faf54e1cc733a5477c67
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 4 20:29:05 1998 +0000
-
- Dumping of _static_ attributes implemented.
-
-commit b1e4f81485c15bacfff6040a1295bee31479a875
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 4 20:28:43 1998 +0000
-
- We have full interface routes now.
-
-commit 0cdbd3975a1ebc5e6705d23ed90388269c24b42e
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 4 20:28:19 1998 +0000
-
- Handle route deletion without segfaults. A bit more debug dumps.
-
-commit 5331da6a4d0c77e70d134fa40b5061b00ab593b0
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Jun 4 20:27:49 1998 +0000
-
- Fixed processing of timers.
-
-commit fd50083df499dd7aa4dd3eec97171003da300250
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 3 08:43:44 1998 +0000
-
- Killed socket debug code. Initialize config pool and protocols.
- More to come later...
-
-commit c5ffa447598bc24cf1b674553bc4d3cc80a831d1
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 3 08:42:16 1998 +0000
-
- Skeleton of device route protocol. As it's tightly coupled with our kernel,
- it sits here instead of `proto/dev'.
-
-commit d9f330c5ffe03c05b7e6541a06adac657f24407b
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 3 08:40:10 1998 +0000
-
- Protocol hooks. All of them may be NULL.
-
-commit 7f4a39886c128bfc2e39987180eb1482ee04d553
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 3 08:38:53 1998 +0000
-
- Basic protocol operations.
-
-commit a5f1a60e0254871c3285aabde372f5a6790c19c3
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 3 08:38:06 1998 +0000
-
- Changed protocol declarations a bit.
-
-commit 33beab4f6c7904204a5116b4eb4cbed5f859f24a
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 3 08:36:34 1998 +0000
-
- Added configuration pool.
-
-commit c5fd704e48333fb8e690d78a3be1303f6c2638c7
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Jun 3 08:35:40 1998 +0000
-
- Protocols will reside in directory `proto'.
-
-commit 869c695998f0bc3b80d8500d88a53fb169c21bc1
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 1 21:41:32 1998 +0000
-
- Synced to new interface code.
-
-commit 4cc78c5082344f0d237a5cdfb05e53dfd04ffd8b
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 1 21:41:11 1998 +0000
-
- - Rewrote whole interface logic. Removed support for multiple addresses per
- interface since it makes much trouble everywhere. Instead, we understand
- secondary addresses as subinterfaces.
-
- - In case interface addresses or basic flags change, we simply convert it
- to a down/up sequence.
-
- - Implemented the universal neighbour cache. (Just forget what did previous
- includes say of neighbour caching, this one is brand new.)
-
-commit 0fe3b28b68f10a32f3fe43e8221559a72be5ca28
-Author: Martin Mares <mj@ucw.cz>
-Date: Mon Jun 1 21:36:58 1998 +0000
-
- Added ipa_xor() and ipa_in_net().
-
-commit af847acc27978cf48721aafbacab70e48f42ede7
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 26 21:46:38 1998 +0000
-
- Whee, multicast sockets work!
-
- Implemented recurrent timers.
-
-commit 140f03410500420a4b44e62a98896a29c99a2b00
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 26 21:44:54 1998 +0000
-
- Added CONFIG_AUTO_ROUTES (automatic device route creation) and
- CONFIG_ALL_MULTICAST (all interfaces capable of multicasting, not depending
- on IFF_MULTICAST flag).
-
-commit fe82105e5dc2077c16da802f721160443e0c6fc2
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 26 21:43:45 1998 +0000
-
- Debug messages.
-
-commit 8a48ecb8b15e827f779d4b9fb080dff280b99872
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 26 21:42:05 1998 +0000
-
- Implemented scanning of network interfaces. Mostly very ugly code due to
- terrible kernel interface (SIOGIFCONF and friends).
-
-commit b1487ee909ebd4cfc59f30d3678cb6667d4a72c8
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 26 21:38:06 1998 +0000
-
- Added generic functions for unaligned data access.
-
-commit ed68a5c6a4da7050995934adb07612dea1cf6644
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 26 21:37:37 1998 +0000
-
- Resource pools are now named.
-
-commit d5417b379f05541418fb4f1ac87100ba8106b0c6
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 26 21:36:48 1998 +0000
-
- Added ipa_opposite().
-
-commit 5222c46ceb8035f2292c3a91f6ee85fbbed82c5e
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue May 26 21:36:17 1998 +0000
-
- DBG now calls debug() instead of sending it to log().
-
-commit d804db0dabf944495071fe6b62a9d836f78997af
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 24 15:00:48 1998 +0000
-
- Added few socket declarations.
-
-commit b5d9ee5c878b41ffbc138be171d700992e9d78c7
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 24 14:50:18 1998 +0000
-
- Added UNIX implementation of both timers and sockets. Timers should work,
- sockets were tested only in TCP mode. main.c now contains some test
- cases for socket code.
-
-commit 6d45cf21be3f979ba4e8a1a5f557663618fadfb3
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 24 14:49:14 1998 +0000
-
- Added debug dump function, but it's still empty :(
-
-commit ded3ee6dddae06c1cabc3a2d34e3139eb0eb338f
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 24 14:48:52 1998 +0000
-
- protos_init, not proto_init.
-
-commit b53499cdaa21994f5d92afed23fdf85c2b7fe134
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 24 14:48:09 1998 +0000
-
- Added interface index (used only by OS-dependent code since ifindexes itself
- are OS-dependent).
-
-commit d4bc8dc00037e868771fb259a1e7b9ae5e92ed5a
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 24 14:46:20 1998 +0000
-
- Staticized some variables and functions.
-
-commit 315aba32b3c5744a040331d653218d15a55455a5
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 24 14:44:25 1998 +0000
-
- Fixed path to includes.
-
-commit a2ccbb0b97c1eac3a68f01b7786822a66aaaefa2
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 24 14:40:29 1998 +0000
-
- Implemented timers. Using bird_clock_t for absolute time from now...
-
-commit 235562ca5ac1db2e2ea026bff42c8c2a898b44db
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 24 09:20:59 1998 +0000
-
- Point-to-point links: added address of the opposite end.
-
-commit 480effedac0ae45a4f01ce32bac962db08ba5a3d
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 24 09:19:26 1998 +0000
-
- Added declarations of all our socket functions.
-
-commit 2326b001d6f28e69b88c3c19795d8c0999f07db1
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed May 20 11:54:33 1998 +0000
-
- Added routing table and routing attribute code.
-
-commit 3994080eb1a86f085498bee1f36cbdb52b30191d
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 15 13:43:59 1998 +0000
-
- Fixed path to includes.
-
-commit 25697773b529d80278679978b7416ca9c87e15e9
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 15 07:56:13 1998 +0000
-
- The library is now glued together from generic and OS-dependent parts
- by the `mergedirs' script. Few more IP address manipulation functions
- and some fixes.
-
-commit 62aa008abd627c6862310daf65ffd337a920bdbb
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri May 15 07:54:32 1998 +0000
-
- Parts of routing table code. Data structure declarations should be
- complete now.
-
-commit 18c8241a91bd9208879666f1a1a13f454e66d75b
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 3 16:43:39 1998 +0000
-
- BIRD library: The story continues.
-
- Complete resource manages and IP address handling.
-
-commit a8b6038225d18155883e330c96b2bc2e44153e1e
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 3 16:42:45 1998 +0000
-
- Next attempt on data structures...
-
-commit 6032aa6ade49545d7c8b6025cf6e6373eb7c910c
-Author: Martin Mares <mj@ucw.cz>
-Date: Sun May 3 16:42:08 1998 +0000
-
- Added new subdir for UNIX-dependent files.
-
- Now contains only functions for logging, but it will change soon.
-
-commit 1feea03e7463d8eaeb00d5df6c2cd3e8e20f2bcd
-Author: Martin Mares <mj@ucw.cz>
-Date: Tue Apr 28 14:39:34 1998 +0000
-
- Changed #include <x/y> to #include "x/y" for our local includes, so that
- gcc -MM can be used to separate them from the system ones.
-
- Added automatic generation of dependencies.
-
-commit c40e05a0dffa33a8724e56121a2b6dcdfa9183e0
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Apr 23 14:01:15 1998 +0000
-
- Added IP address manipulation macros, interface declarations and logging.
-
-commit 481f69854a788bd2bea5c6938e038ec6e21c491b
-Author: Martin Mares <mj@ucw.cz>
-Date: Thu Apr 23 08:09:39 1998 +0000
-
- Added few route attributes.
-
-commit 58ef912c6babf1866193ab04674a5866dd761f13
-Author: Martin Mares <mj@ucw.cz>
-Date: Wed Apr 22 12:58:34 1998 +0000
-
- First look at data structures. More to come tomorrow...
-
-commit b60f7489148d021cb541414b8788f795ec4378fa
-Author: Martin Mares <mj@ucw.cz>
-Date: Fri Mar 20 18:30:55 1998 +0000
-
- Added banner presented to KSVI.
diff --git a/bird.conf b/bird.conf
new file mode 100644
index 00000000..e383c934
--- /dev/null
+++ b/bird.conf
@@ -0,0 +1,58 @@
+/*
+ * This is a simple example configuration file with no aim for completeness.
+ * See documentation for full description.
+ */
+
+# Router ID in IPv4 format
+router id 62.168.0.1;
+
+# Load device information from kernel.
+protocol device {}
+
+# Generate direct routes for interfaces. Useful on BSD.
+protocol direct {
+ ipv4;
+ disabled;
+}
+
+protocol direct {
+ ipv6;
+ disabled;
+}
+
+# Feed routes to kernel FIB
+protocol kernel {
+ ipv4 { export all; import all; };
+ learn; # Learn all routes from the kernel
+# scan time 10; # Scan kernel tables every 10 seconds
+}
+
+protocol kernel {
+ ipv6 { import all; };
+ learn;
+}
+
+# Static route feed
+protocol static {
+ ipv4 { export all; };
+ route 10.0.0.0/24 via 55.55.55.44;
+ route 10.10.0.0/16 blackhole;
+ route 10.20.0.0/20 unreachable;
+ route 10.30.50.0/28 prohibit;
+}
+
+protocol static {
+ ipv6 { export all; };
+ route 2001:db8:1::/48 via 5555::6666;
+ route 2001:db8:2::/48 blackhole;
+ route 2001:db8:3::/48 prohibit;
+ route 2001:db8:4::/48 unreachable;
+}
+
+protocol rip {
+ ipv4;
+}
+
+protocol rip ng {
+ ipv6;
+}
diff --git a/conf/confbase.Y b/conf/confbase.Y
index 2c37bd4d..87bb65d0 100644
--- a/conf/confbase.Y
+++ b/conf/confbase.Y
@@ -292,7 +292,7 @@ net_roa6_: net_ip6_ MAX NUM AS NUM
cf_error("Invalid max prefix length %u", $3);
};
-net_mpls_: MPLS NUM
+net_mpls_: MPLS expr
{
$$ = cfg_alloc(sizeof(net_addr_roa6));
net_fill_mpls($$, $2);
@@ -365,7 +365,7 @@ net_or_ipa:
}
;
-label_stack_start: NUM
+label_stack_start: expr
{
$$ = cfg_allocz(sizeof(mpls_label_stack));
$$->len = 1;
@@ -374,7 +374,7 @@ label_stack_start: NUM
label_stack:
label_stack_start
- | label_stack '/' NUM {
+ | label_stack '/' expr {
if ($1->len >= MPLS_MAX_LABEL_STACK)
cf_error("Too many labels in stack");
$1->stack[$1->len++] = $3;
diff --git a/configure b/configure
deleted file mode 100755
index 52ac40b1..00000000
--- a/configure
+++ /dev/null
@@ -1,7924 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71.
-#
-#
-# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
-# Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-as_nop=:
-if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
-then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else $as_nop
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-
-# Reset variables that may have inherited troublesome values from
-# the environment.
-
-# IFS needs to be set, to space, tab, and newline, in precisely that order.
-# (If _AS_PATH_WALK were called with IFS unset, it would have the
-# side effect of setting IFS to empty, thus disabling word splitting.)
-# Quoting is to prevent editors from complaining about space-tab.
-as_nl='
-'
-export as_nl
-IFS=" "" $as_nl"
-
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# Ensure predictable behavior from utilities with locale-dependent output.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# We cannot yet rely on "unset" to work, but we need these variables
-# to be unset--not just set to an empty or harmless value--now, to
-# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
-# also avoids known problems related to "unset" and subshell syntax
-# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
-for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
-do eval test \${$as_var+y} \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-
-# Ensure that fds 0, 1, and 2 are open.
-if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
-if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
-if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
-
-# The user is always right.
-if ${PATH_SEPARATOR+false} :; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- test -r "$as_dir$0" && as_myself=$as_dir$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="as_nop=:
-if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
-then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else \$as_nop
- case \`(set -o) 2>/dev/null\` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-"
- as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" )
-then :
-
-else \$as_nop
- exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-blah=\$(echo \$(echo blah))
-test x\"\$blah\" = xblah || exit 1
-test -x / || exit 1"
- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
- if (eval "$as_required") 2>/dev/null
-then :
- as_have_required=yes
-else $as_nop
- as_have_required=no
-fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
-then :
-
-else $as_nop
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- as_found=:
- case $as_dir in #(
- /*)
- for as_base in sh bash ksh sh5; do
- # Try only shells that exist, to save several forks.
- as_shell=$as_dir$as_base
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
-then :
- CONFIG_SHELL=$as_shell as_have_required=yes
- if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
-then :
- break 2
-fi
-fi
- done;;
- esac
- as_found=false
-done
-IFS=$as_save_IFS
-if $as_found
-then :
-
-else $as_nop
- if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
-then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi
-fi
-
-
- if test "x$CONFIG_SHELL" != x
-then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
- if test x$as_have_required = xno
-then :
- printf "%s\n" "$0: This script requires a shell more modern than all"
- printf "%s\n" "$0: the shells that I found on your system."
- if test ${ZSH_VERSION+y} ; then
- printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
- else
- printf "%s\n" "$0: Please tell bug-autoconf@gnu.org about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
- fi
- exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-# as_fn_nop
-# ---------
-# Do nothing but, unlike ":", preserve the value of $?.
-as_fn_nop ()
-{
- return $?
-}
-as_nop=as_fn_nop
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
-then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else $as_nop
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
-then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else $as_nop
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-# as_fn_nop
-# ---------
-# Do nothing but, unlike ":", preserve the value of $?.
-as_fn_nop ()
-{
- return $?
-}
-as_nop=as_fn_nop
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- printf "%s\n" "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
- as_lineno_1=$LINENO as_lineno_1a=$LINENO
- as_lineno_2=$LINENO as_lineno_2a=$LINENO
- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-
-# Determine whether it's possible to make 'echo' print without a newline.
-# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
-# for compatibility with existing Makefiles.
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-# For backward compatibility with old third-party macros, we provide
-# the shell variables $as_echo and $as_echo_n. New code should use
-# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
-as_echo='printf %s\n'
-as_echo_n='printf %s'
-
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME=''
-PACKAGE_TARNAME=''
-PACKAGE_VERSION=''
-PACKAGE_STRING=''
-PACKAGE_BUGREPORT=''
-PACKAGE_URL=''
-
-ac_unique_file="conf/confbase.Y"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stddef.h>
-#ifdef HAVE_STDIO_H
-# include <stdio.h>
-#endif
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-# include <string.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_header_c_list=
-ac_subst_vars='LTLIBOBJS
-LIBOBJS
-CLIENT_LIBS
-CLIENT
-protocols
-DAEMON_LIBS
-iproutedir
-sysdep_dirs
-BISONFLAGS
-M4FLAGS
-RANLIB
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-CPP
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-CONTROL_SOCKET
-CONFIG_FILE
-srcdir
-exedir
-objdir
-M4
-BISON
-FLEX
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-runstatedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_client
-enable_debug
-enable_debug_generated
-enable_debug_expensive
-enable_memcheck
-enable_compact_tries
-enable_pthreads
-enable_libssh
-enable_mpls_kernel
-with_protocols
-with_sysconfig
-with_runtimedir
-with_iproutedir
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias
-FLEX
-BISON
-M4
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *=) ac_optarg= ;;
- *) ac_optarg=yes ;;
- esac
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: \`$ac_useropt'"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: \`$ac_useropt'"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: \`$ac_useropt'"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: \`$ac_useropt'"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- case $ac_envvar in #(
- '' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
- esac
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
- : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
-do
- eval ac_val=\$$ac_var
- # Remove trailing slashes.
- case $ac_val in
- */ )
- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
- eval $ac_var=\$ac_val;;
- esac
- # Be sure to have absolute directory names.
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_myself" : 'X\(//\)[^/]' \| \
- X"$as_myself" : 'X\(//\)$' \| \
- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$as_myself" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
- cat <<\_ACEOF
-
-Optional Features:
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-client enable building of BIRD client [yes]
- --enable-debug enable internal debugging routines [no]
- --enable-debug-generated
- enable this to abstain from generating #line [no]
- --enable-debug-expensive
- enable expensive consistency checks (implies
- --enable-debug) [no]
- --enable-memcheck check memory allocations when debugging [yes]
- --enable-compact-tries use 4-way tries instead of 16-way ones [no]
- --enable-pthreads enable POSIX threads support [try]
- --enable-libssh enable LibSSH support in RPKI [try]
- --enable-mpls-kernel enable MPLS support in kernel protocol [try]
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-protocols=LIST include specified routing protocols [all]
- --with-sysconfig=FILE use specified BIRD system configuration file
-
- --with-runtimedir=PATH run-state data, obsolete variant of --runstatedir
- --with-iproutedir=PATH path to iproute2 config files [/etc/iproute2]
-
-Some influential environment variables:
- FLEX location of the Flex program
- BISON location of the Bison program
- M4 location of the M4 program
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
- you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to the package provider.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" ||
- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
- continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for configure.gnu first; this name is used for a wrapper for
- # Metaconfig's "Configure" on case-insensitive file systems.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-configure
-generated by GNU Autoconf 2.71
-
-Copyright (C) 2021 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest.beam
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext
-then :
- ac_retval=0
-else $as_nop
- printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
- }
-then :
- ac_retval=0
-else $as_nop
- printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
- # interfere with the next link command; also delete a directory that is
- # left behind by Apple's compiler. We do this before executing the actions.
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }
-then :
- ac_retval=0
-else $as_nop
- printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-printf %s "checking for $2... " >&6; }
-if eval test \${$3+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$3=yes"
-else $as_nop
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
-# ----------------------------------------------------
-# Tries to find if the field MEMBER exists in type AGGR, after including
-# INCLUDES, setting cache variable VAR accordingly.
-ac_fn_c_check_member ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
-printf %s "checking for $2.$3... " >&6; }
-if eval test \${$4+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$5
-int
-main (void)
-{
-static $2 ac_aggr;
-if (ac_aggr.$3)
-return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$4=yes"
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$5
-int
-main (void)
-{
-static $2 ac_aggr;
-if (sizeof ac_aggr.$3)
-return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$4=yes"
-else $as_nop
- eval "$4=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-eval ac_res=\$$4
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_member
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
-# executables *can* be run.
-ac_fn_c_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }
-then :
- ac_retval=0
-else $as_nop
- printf "%s\n" "$as_me: program exited with status $ac_status" >&5
- printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-printf %s "checking for $2... " >&6; }
-if eval test \${$3+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below. */
-
-#include <limits.h>
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main (void)
-{
-return $2 ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- eval "$3=yes"
-else $as_nop
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_func
-ac_configure_args_raw=
-for ac_arg
-do
- case $ac_arg in
- *\'*)
- ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append ac_configure_args_raw " '$ac_arg'"
-done
-
-case $ac_configure_args_raw in
- *$as_nl*)
- ac_safe_unquote= ;;
- *)
- ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab.
- ac_unsafe_a="$ac_unsafe_z#~"
- ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
- ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
-esac
-
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.71. Invocation command line was
-
- $ $0$ac_configure_args_raw
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- printf "%s\n" "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Sanitize IFS.
- IFS=" "" $as_nl"
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- printf "%s\n" "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- printf "%s\n" "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- printf "%s\n" "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- printf "%s\n" "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- printf "%s\n" "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- printf "%s\n" "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- printf "%s\n" "$as_me: caught signal $ac_signal"
- printf "%s\n" "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-printf "%s\n" "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
-
-printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
-
-printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
-
-printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
-
-printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
-
-printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-if test -n "$CONFIG_SITE"; then
- ac_site_files="$CONFIG_SITE"
-elif test "x$prefix" != xNONE; then
- ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
-else
- ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-fi
-
-for ac_site_file in $ac_site_files
-do
- case $ac_site_file in #(
- */*) :
- ;; #(
- *) :
- ac_site_file=./$ac_site_file ;;
-esac
- if test -f "$ac_site_file" && test -r "$ac_site_file"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Test code for whether the C compiler supports C89 (global declarations)
-ac_c_conftest_c89_globals='
-/* Does the compiler advertise C89 conformance?
- Do not test the value of __STDC__, because some compilers set it to 0
- while being otherwise adequately conformant. */
-#if !defined __STDC__
-# error "Compiler does not advertise C89 conformance"
-#endif
-
-#include <stddef.h>
-#include <stdarg.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */
-struct buf { int x; };
-struct buf * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not \xHH hex character constants.
- These do not provoke an error unfortunately, instead are silently treated
- as an "x". The following induces an error, until -std is added to get
- proper ANSI mode. Curiously \x00 != x always comes out true, for an
- array size at least. It is necessary to write \x00 == 0 to get something
- that is true only with -std. */
-int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) '\''x'\''
-int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
- int, int);'
-
-# Test code for whether the C compiler supports C89 (body of main).
-ac_c_conftest_c89_main='
-ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
-'
-
-# Test code for whether the C compiler supports C99 (global declarations)
-ac_c_conftest_c99_globals='
-// Does the compiler advertise C99 conformance?
-#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
-# error "Compiler does not advertise C99 conformance"
-#endif
-
-#include <stdbool.h>
-extern int puts (const char *);
-extern int printf (const char *, ...);
-extern int dprintf (int, const char *, ...);
-extern void *malloc (size_t);
-
-// Check varargs macros. These examples are taken from C99 6.10.3.5.
-// dprintf is used instead of fprintf to avoid needing to declare
-// FILE and stderr.
-#define debug(...) dprintf (2, __VA_ARGS__)
-#define showlist(...) puts (#__VA_ARGS__)
-#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
-static void
-test_varargs_macros (void)
-{
- int x = 1234;
- int y = 5678;
- debug ("Flag");
- debug ("X = %d\n", x);
- showlist (The first, second, and third items.);
- report (x>y, "x is %d but y is %d", x, y);
-}
-
-// Check long long types.
-#define BIG64 18446744073709551615ull
-#define BIG32 4294967295ul
-#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
-#if !BIG_OK
- #error "your preprocessor is broken"
-#endif
-#if BIG_OK
-#else
- #error "your preprocessor is broken"
-#endif
-static long long int bignum = -9223372036854775807LL;
-static unsigned long long int ubignum = BIG64;
-
-struct incomplete_array
-{
- int datasize;
- double data[];
-};
-
-struct named_init {
- int number;
- const wchar_t *name;
- double average;
-};
-
-typedef const char *ccp;
-
-static inline int
-test_restrict (ccp restrict text)
-{
- // See if C++-style comments work.
- // Iterate through items via the restricted pointer.
- // Also check for declarations in for loops.
- for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
- continue;
- return 0;
-}
-
-// Check varargs and va_copy.
-static bool
-test_varargs (const char *format, ...)
-{
- va_list args;
- va_start (args, format);
- va_list args_copy;
- va_copy (args_copy, args);
-
- const char *str = "";
- int number = 0;
- float fnumber = 0;
-
- while (*format)
- {
- switch (*format++)
- {
- case '\''s'\'': // string
- str = va_arg (args_copy, const char *);
- break;
- case '\''d'\'': // int
- number = va_arg (args_copy, int);
- break;
- case '\''f'\'': // float
- fnumber = va_arg (args_copy, double);
- break;
- default:
- break;
- }
- }
- va_end (args_copy);
- va_end (args);
-
- return *str && number && fnumber;
-}
-'
-
-# Test code for whether the C compiler supports C99 (body of main).
-ac_c_conftest_c99_main='
- // Check bool.
- _Bool success = false;
- success |= (argc != 0);
-
- // Check restrict.
- if (test_restrict ("String literal") == 0)
- success = true;
- char *restrict newvar = "Another string";
-
- // Check varargs.
- success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
- test_varargs_macros ();
-
- // Check flexible array members.
- struct incomplete_array *ia =
- malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
- ia->datasize = 10;
- for (int i = 0; i < ia->datasize; ++i)
- ia->data[i] = i * 1.234;
-
- // Check named initializers.
- struct named_init ni = {
- .number = 34,
- .name = L"Test wide string",
- .average = 543.34343,
- };
-
- ni.number = 58;
-
- int dynamic_array[ni.number];
- dynamic_array[0] = argv[0][0];
- dynamic_array[ni.number - 1] = 543;
-
- // work around unused variable warnings
- ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
- || dynamic_array[ni.number - 1] != 543);
-'
-
-# Test code for whether the C compiler supports C11 (global declarations)
-ac_c_conftest_c11_globals='
-// Does the compiler advertise C11 conformance?
-#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
-# error "Compiler does not advertise C11 conformance"
-#endif
-
-// Check _Alignas.
-char _Alignas (double) aligned_as_double;
-char _Alignas (0) no_special_alignment;
-extern char aligned_as_int;
-char _Alignas (0) _Alignas (int) aligned_as_int;
-
-// Check _Alignof.
-enum
-{
- int_alignment = _Alignof (int),
- int_array_alignment = _Alignof (int[100]),
- char_alignment = _Alignof (char)
-};
-_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
-
-// Check _Noreturn.
-int _Noreturn does_not_return (void) { for (;;) continue; }
-
-// Check _Static_assert.
-struct test_static_assert
-{
- int x;
- _Static_assert (sizeof (int) <= sizeof (long int),
- "_Static_assert does not work in struct");
- long int y;
-};
-
-// Check UTF-8 literals.
-#define u8 syntax error!
-char const utf8_literal[] = u8"happens to be ASCII" "another string";
-
-// Check duplicate typedefs.
-typedef long *long_ptr;
-typedef long int *long_ptr;
-typedef long_ptr long_ptr;
-
-// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
-struct anonymous
-{
- union {
- struct { int i; int j; };
- struct { int k; long int l; } w;
- };
- int m;
-} v1;
-'
-
-# Test code for whether the C compiler supports C11 (body of main).
-ac_c_conftest_c11_main='
- _Static_assert ((offsetof (struct anonymous, i)
- == offsetof (struct anonymous, w.k)),
- "Anonymous union alignment botch");
- v1.i = 2;
- v1.w.k = 5;
- ok |= v1.i != 5;
-'
-
-# Test code for whether the C compiler supports C11 (complete).
-ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
-${ac_c_conftest_c99_globals}
-${ac_c_conftest_c11_globals}
-
-int
-main (int argc, char **argv)
-{
- int ok = 0;
- ${ac_c_conftest_c89_main}
- ${ac_c_conftest_c99_main}
- ${ac_c_conftest_c11_main}
- return ok;
-}
-"
-
-# Test code for whether the C compiler supports C99 (complete).
-ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
-${ac_c_conftest_c99_globals}
-
-int
-main (int argc, char **argv)
-{
- int ok = 0;
- ${ac_c_conftest_c89_main}
- ${ac_c_conftest_c99_main}
- return ok;
-}
-"
-
-# Test code for whether the C compiler supports C89 (complete).
-ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
-
-int
-main (int argc, char **argv)
-{
- int ok = 0;
- ${ac_c_conftest_c89_main}
- return ok;
-}
-"
-
-as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"
-as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H"
-as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H"
-as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H"
-as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H"
-as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H"
-as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"
-as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"
-as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
-as_fn_append ac_header_c_list " alloca.h alloca_h HAVE_ALLOCA_H"
-as_fn_append ac_header_c_list " syslog.h syslog_h HAVE_SYSLOG_H"
-
-# Auxiliary files required by this configure script.
-ac_aux_files="install-sh config.guess config.sub"
-
-# Locations in which to look for auxiliary files.
-ac_aux_dir_candidates="${srcdir}/tools"
-
-# Search for a directory containing all of the required auxiliary files,
-# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
-# If we don't find one directory that contains all the files we need,
-# we report the set of missing files from the *first* directory in
-# $ac_aux_dir_candidates and give up.
-ac_missing_aux_files=""
-ac_first_candidate=:
-printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in $ac_aux_dir_candidates
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- as_found=:
-
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5
- ac_aux_dir_found=yes
- ac_install_sh=
- for ac_aux in $ac_aux_files
- do
- # As a special case, if "install-sh" is required, that requirement
- # can be satisfied by any of "install-sh", "install.sh", or "shtool",
- # and $ac_install_sh is set appropriately for whichever one is found.
- if test x"$ac_aux" = x"install-sh"
- then
- if test -f "${as_dir}install-sh"; then
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5
- ac_install_sh="${as_dir}install-sh -c"
- elif test -f "${as_dir}install.sh"; then
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5
- ac_install_sh="${as_dir}install.sh -c"
- elif test -f "${as_dir}shtool"; then
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5
- ac_install_sh="${as_dir}shtool install -c"
- else
- ac_aux_dir_found=no
- if $ac_first_candidate; then
- ac_missing_aux_files="${ac_missing_aux_files} install-sh"
- else
- break
- fi
- fi
- else
- if test -f "${as_dir}${ac_aux}"; then
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5
- else
- ac_aux_dir_found=no
- if $ac_first_candidate; then
- ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
- else
- break
- fi
- fi
- fi
- done
- if test "$ac_aux_dir_found" = yes; then
- ac_aux_dir="$as_dir"
- break
- fi
- ac_first_candidate=false
-
- as_found=false
-done
-IFS=$as_save_IFS
-if $as_found
-then :
-
-else $as_nop
- as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
-fi
-
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-if test -f "${ac_aux_dir}config.guess"; then
- ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
-fi
-if test -f "${ac_aux_dir}config.sub"; then
- ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
-fi
-if test -f "$ac_aux_dir/configure"; then
- ac_configure="$SHELL ${ac_aux_dir}configure"
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;}
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
- and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-# Check whether --enable-client was given.
-if test ${enable_client+y}
-then :
- enableval=$enable_client;
-else $as_nop
- enable_client=yes
-
-fi
-
-
-# Check whether --enable-debug was given.
-if test ${enable_debug+y}
-then :
- enableval=$enable_debug;
-else $as_nop
- enable_debug=no
-
-fi
-
-
-# Check whether --enable-debug-generated was given.
-if test ${enable_debug_generated+y}
-then :
- enableval=$enable_debug_generated;
-else $as_nop
- enable_debug_generated=no
-
-fi
-
-
-# Check whether --enable-debug-expensive was given.
-if test ${enable_debug_expensive+y}
-then :
- enableval=$enable_debug_expensive;
-else $as_nop
- enable_debug_expensive=no
-
-fi
-
-
-# Check whether --enable-memcheck was given.
-if test ${enable_memcheck+y}
-then :
- enableval=$enable_memcheck;
-else $as_nop
- enable_memcheck=yes
-
-fi
-
-
-# Check whether --enable-compact-tries was given.
-if test ${enable_compact_tries+y}
-then :
- enableval=$enable_compact_tries;
-else $as_nop
- enable_compact_tries=no
-
-fi
-
-
-# Check whether --enable-pthreads was given.
-if test ${enable_pthreads+y}
-then :
- enableval=$enable_pthreads;
-else $as_nop
- enable_pthreads=try
-
-fi
-
-
-# Check whether --enable-libssh was given.
-if test ${enable_libssh+y}
-then :
- enableval=$enable_libssh;
-else $as_nop
- enable_libssh=try
-
-fi
-
-
-# Check whether --enable-mpls-kernel was given.
-if test ${enable_mpls_kernel+y}
-then :
- enableval=$enable_mpls_kernel;
-else $as_nop
- enable_mpls_kernel=try
-
-fi
-
-
-
-# Check whether --with-protocols was given.
-if test ${with_protocols+y}
-then :
- withval=$with_protocols;
-else $as_nop
- with_protocols="all"
-
-fi
-
-
-
-# Check whether --with-sysconfig was given.
-if test ${with_sysconfig+y}
-then :
- withval=$with_sysconfig;
-fi
-
-
-
-# Check whether --with-runtimedir was given.
-if test ${with_runtimedir+y}
-then :
- withval=$with_runtimedir; runstatedir="$with_runtimedir"
-
-fi
-
-
-
-# Check whether --with-iproutedir was given.
-if test ${with_iproutedir+y}
-then :
- withval=$with_iproutedir; given_iproutedir="yes"
-
-fi
-
-
-
-
-
-
-if test "$enable_debug_expensive" = yes; then
- enable_debug=yes
-fi
-
-if test "$srcdir" = . ; then
- # Building in current directory => create obj directory holding all objects
- objdir=obj
-else
- # Building in separate directory
- objdir=.
-fi
-
-exedir=.
-
-
-
-
-
-# Workaround for older Autoconfs that do not define runstatedir
-if test -z "${runstatedir}"
-then :
- runstatedir='${localstatedir}/run'
-fi
-
-
-CONFIG_FILE="\$(sysconfdir)/bird.conf"
-
-
-CONTROL_SOCKET="\$(runstatedir)/bird.ctl"
-
-
-
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
-set dummy ${ac_tool_prefix}clang; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}clang"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "clang", so it can be a program name with args.
-set dummy clang; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="clang"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-fi
-
-
-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion -version; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-printf %s "checking whether the C compiler works... " >&6; }
-ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-then :
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else $as_nop
- ac_file=''
-fi
-if test -z "$ac_file"
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-printf %s "checking for C compiler default output file name... " >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-printf "%s\n" "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-printf %s "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-then :
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else $as_nop
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-printf "%s\n" "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main (void)
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-printf %s "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
- { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if { ac_try='./conftest$ac_cv_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-printf "%s\n" "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-printf %s "checking for suffix of object files... " >&6; }
-if test ${ac_cv_objext+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-then :
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else $as_nop
- printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-printf "%s\n" "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
-printf %s "checking whether the compiler supports GNU C... " >&6; }
-if test ${ac_cv_c_compiler_gnu+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_compiler_gnu=yes
-else $as_nop
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+y}
-ac_save_CFLAGS=$CFLAGS
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-printf %s "checking whether $CC accepts -g... " >&6; }
-if test ${ac_cv_prog_cc_g+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_g=yes
-else $as_nop
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-
-else $as_nop
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
-if test $ac_test_CFLAGS; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-ac_prog_cc_stdc=no
-if test x$ac_prog_cc_stdc = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
-printf %s "checking for $CC option to enable C11 features... " >&6; }
-if test ${ac_cv_prog_cc_c11+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_prog_cc_c11=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_c_conftest_c11_program
-_ACEOF
-for ac_arg in '' -std=gnu11
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_c11=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cc_c11" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-fi
-
-if test "x$ac_cv_prog_cc_c11" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
- if test "x$ac_cv_prog_cc_c11" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
-printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
- CC="$CC $ac_cv_prog_cc_c11"
-fi
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
- ac_prog_cc_stdc=c11
-fi
-fi
-if test x$ac_prog_cc_stdc = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
-printf %s "checking for $CC option to enable C99 features... " >&6; }
-if test ${ac_cv_prog_cc_c99+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_prog_cc_c99=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_c_conftest_c99_program
-_ACEOF
-for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_c99=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cc_c99" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-fi
-
-if test "x$ac_cv_prog_cc_c99" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
- if test "x$ac_cv_prog_cc_c99" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
-printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
- CC="$CC $ac_cv_prog_cc_c99"
-fi
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
- ac_prog_cc_stdc=c99
-fi
-fi
-if test x$ac_prog_cc_stdc = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
-printf %s "checking for $CC option to enable C89 features... " >&6; }
-if test ${ac_cv_prog_cc_c89+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_c_conftest_c89_program
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-fi
-
-if test "x$ac_cv_prog_cc_c89" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
- if test "x$ac_cv_prog_cc_c89" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
- CC="$CC $ac_cv_prog_cc_c89"
-fi
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
- ac_prog_cc_stdc=c89
-fi
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
-printf %s "checking for library containing clock_gettime... " >&6; }
-if test ${ac_cv_search_clock_gettime+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char clock_gettime ();
-int
-main (void)
-{
-return clock_gettime ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' rt posix4
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_clock_gettime=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_clock_gettime+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_clock_gettime+y}
-then :
-
-else $as_nop
- ac_cv_search_clock_gettime=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
-printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
-ac_res=$ac_cv_search_clock_gettime
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-else $as_nop
- as_fn_error $? "Function clock_gettime not available." "$LINENO" 5
-
-fi
-
-
-
-
-
- # Make sure we can run config.sub.
-$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-printf %s "checking build system type... " >&6; }
-if test ${ac_cv_build+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
-test "x$ac_build_alias" = x &&
- as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
- as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-printf "%s\n" "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-printf %s "checking host system type... " >&6; }
-if test ${ac_cv_host+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test "x$host_alias" = x; then
- ac_cv_host=$ac_cv_build
-else
- ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
- as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-printf "%s\n" "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-
-# Store this value because ac_test_CFLAGS is overwritten by AC_PROG_CC
-if test "$ac_test_CFLAGS" != set ; then
- bird_cflags_default=yes
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
-set dummy ${ac_tool_prefix}clang; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}clang"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "clang", so it can be a program name with args.
-set dummy clang; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="clang"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-fi
-
-
-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion -version; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
-printf %s "checking whether the compiler supports GNU C... " >&6; }
-if test ${ac_cv_c_compiler_gnu+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_compiler_gnu=yes
-else $as_nop
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+y}
-ac_save_CFLAGS=$CFLAGS
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-printf %s "checking whether $CC accepts -g... " >&6; }
-if test ${ac_cv_prog_cc_g+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_g=yes
-else $as_nop
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-
-else $as_nop
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
-if test $ac_test_CFLAGS; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-ac_prog_cc_stdc=no
-if test x$ac_prog_cc_stdc = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
-printf %s "checking for $CC option to enable C11 features... " >&6; }
-if test ${ac_cv_prog_cc_c11+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_prog_cc_c11=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_c_conftest_c11_program
-_ACEOF
-for ac_arg in '' -std=gnu11
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_c11=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cc_c11" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-fi
-
-if test "x$ac_cv_prog_cc_c11" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
- if test "x$ac_cv_prog_cc_c11" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
-printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
- CC="$CC $ac_cv_prog_cc_c11"
-fi
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
- ac_prog_cc_stdc=c11
-fi
-fi
-if test x$ac_prog_cc_stdc = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
-printf %s "checking for $CC option to enable C99 features... " >&6; }
-if test ${ac_cv_prog_cc_c99+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_prog_cc_c99=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_c_conftest_c99_program
-_ACEOF
-for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_c99=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cc_c99" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-fi
-
-if test "x$ac_cv_prog_cc_c99" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
- if test "x$ac_cv_prog_cc_c99" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
-printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
- CC="$CC $ac_cv_prog_cc_c99"
-fi
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
- ac_prog_cc_stdc=c99
-fi
-fi
-if test x$ac_prog_cc_stdc = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
-printf %s "checking for $CC option to enable C89 features... " >&6; }
-if test ${ac_cv_prog_cc_c89+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_c_conftest_c89_program
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-fi
-
-if test "x$ac_cv_prog_cc_c89" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
- if test "x$ac_cv_prog_cc_c89" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
- CC="$CC $ac_cv_prog_cc_c89"
-fi
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
- ac_prog_cc_stdc=c89
-fi
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-if test -z "$GCC" ; then
- as_fn_error $? "This program requires the GNU C Compiler." "$LINENO" 5
-fi
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _Thread_local is known" >&5
-printf %s "checking whether _Thread_local is known... " >&6; }
-if test ${bird_cv_thread_local+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-
- _Thread_local static int x = 42;
-
-int
-main (void)
-{
-
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- bird_cv_thread_local=yes
-else $as_nop
- bird_cv_thread_local=no
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bird_cv_thread_local" >&5
-printf "%s\n" "$bird_cv_thread_local" >&6; }
-
-if test "$bird_cv_thread_local" = yes ; then
-
-printf "%s\n" "#define HAVE_THREAD_LOCAL 1" >>confdefs.h
-
-fi
-
-if test "$enable_pthreads" != no ; then
-
- bird_tmp_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -pthread"
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads are available" >&5
-printf %s "checking whether POSIX threads are available... " >&6; }
-if test ${bird_cv_lib_pthreads+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
- #include <pthread.h>
-int
-main (void)
-{
-
- pthread_t pt;
- pthread_create(&pt, NULL, NULL, NULL);
- pthread_spinlock_t lock;
- pthread_spin_lock(&lock);
-
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- bird_cv_lib_pthreads=yes
-else $as_nop
- bird_cv_lib_pthreads=no
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bird_cv_lib_pthreads" >&5
-printf "%s\n" "$bird_cv_lib_pthreads" >&6; }
-
- CFLAGS="$bird_tmp_cflags"
-
-
- if test "$bird_cv_lib_pthreads" = yes ; then
-
-printf "%s\n" "#define USE_PTHREADS 1" >>confdefs.h
-
- CFLAGS="$CFLAGS -pthread"
- LDFLAGS="$LDFLAGS -pthread"
- proto_bfd=bfd
- elif test "$enable_pthreads" = yes ; then
- as_fn_error $? "POSIX threads not available." "$LINENO" 5
- fi
-
- if test "$enable_pthreads" = try ; then
- enable_pthreads="$bird_cv_lib_pthreads"
- fi
-fi
-
-# This is assumed to be necessary for proper BIRD build
-CFLAGS="$CFLAGS -fno-strict-aliasing -fno-strict-overflow"
-
-if test "$bird_cflags_default" = yes ; then
-
- bird_tmp_cflags="$CFLAGS"
- CFLAGS="-Wall -Wno-pointer-sign"
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether CC supports -Wno-pointer-sign" >&5
-printf %s "checking whether CC supports -Wno-pointer-sign... " >&6; }
-if test ${bird_cv_c_option_wno_pointer_sign+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- bird_cv_c_option_wno_pointer_sign=yes
-else $as_nop
- bird_cv_c_option_wno_pointer_sign=no
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bird_cv_c_option_wno_pointer_sign" >&5
-printf "%s\n" "$bird_cv_c_option_wno_pointer_sign" >&6; }
-
- CFLAGS="$bird_tmp_cflags"
-
-
- bird_tmp_cflags="$CFLAGS"
- CFLAGS="-Wall -Wextra -Wno-missing-field-initializers"
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether CC supports -Wno-missing-field-initializers" >&5
-printf %s "checking whether CC supports -Wno-missing-field-initializers... " >&6; }
-if test ${bird_cv_c_option_wno_missing_init+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- bird_cv_c_option_wno_missing_init=yes
-else $as_nop
- bird_cv_c_option_wno_missing_init=no
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bird_cv_c_option_wno_missing_init" >&5
-printf "%s\n" "$bird_cv_c_option_wno_missing_init" >&6; }
-
- CFLAGS="$bird_tmp_cflags"
-
-
- if test "$enable_debug" = no; then
-
- bird_tmp_cflags="$CFLAGS"
- bird_tmp_ldflags="$LDFLAGS"
- CFLAGS="-flto"
- LDFLAGS="-flto=4"
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether link time optimizer is available" >&5
-printf %s "checking whether link time optimizer is available... " >&6; }
-if test ${bird_cv_c_lto+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- bird_cv_c_lto=yes
-else $as_nop
- bird_cv_c_lto=no
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bird_cv_c_lto" >&5
-printf "%s\n" "$bird_cv_c_lto" >&6; }
-
- CFLAGS="$bird_tmp_cflags"
- LDFLAGS="$bird_tmp_ldflags"
-
- fi
-
- if test "$bird_cv_c_lto" = yes; then
- CFLAGS="$CFLAGS -flto"
- LDFLAGS="$LDFLAGS -flto=4 -g"
- else
- LDFLAGS="$LDFLAGS -g"
- fi
-
- CFLAGS="$CFLAGS -Wall -Wextra -Wstrict-prototypes -Wno-parentheses"
-
- if test "$bird_cv_c_option_wno_pointer_sign" = yes ; then
- CFLAGS="$CFLAGS -Wno-pointer-sign"
- fi
-
-
- if test "$bird_cv_c_option_wno_missing_init" = yes ; then
- CFLAGS="$CFLAGS -Wno-missing-field-initializers"
- fi
-
-fi
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CFLAGS" >&5
-printf %s "checking CFLAGS... " >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CFLAGS" >&5
-printf "%s\n" "$CFLAGS" >&6; }
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking LDFLAGS" >&5
-printf %s "checking LDFLAGS... " >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LDFLAGS" >&5
-printf "%s\n" "$LDFLAGS" >&6; }
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-printf %s "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if test ${ac_cv_prog_CPP+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- # Double quotes because $CC needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <limits.h>
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
-
-else $as_nop
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
- # Broken: success on invalid input.
-continue
-else $as_nop
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok
-then :
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-printf "%s\n" "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <limits.h>
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
-
-else $as_nop
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
- # Broken: success on invalid input.
-continue
-else $as_nop
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok
-then :
-
-else $as_nop
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- # Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-printf %s "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if test ${ac_cv_path_install+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- # Account for fact that we put trailing slashes in our PATH walk.
-case $as_dir in #((
- ./ | /[cC]/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- rm -rf conftest.one conftest.two conftest.dir
- echo one > conftest.one
- echo two > conftest.two
- mkdir conftest.dir
- if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" &&
- test -s conftest.one && test -s conftest.two &&
- test -s conftest.dir/conftest.one &&
- test -s conftest.dir/conftest.two
- then
- ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- fi
- done
- done
- ;;
-esac
-
- done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
- if test ${ac_cv_path_install+y}; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-printf "%s\n" "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_RANLIB+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-printf "%s\n" "$RANLIB" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_RANLIB+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-printf "%s\n" "$ac_ct_RANLIB" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-# Extract the first word of "flex", so it can be a program name with args.
-set dummy flex; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_FLEX+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$FLEX"; then
- ac_cv_prog_FLEX="$FLEX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_FLEX="flex"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-FLEX=$ac_cv_prog_FLEX
-if test -n "$FLEX"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FLEX" >&5
-printf "%s\n" "$FLEX" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-# Extract the first word of "bison", so it can be a program name with args.
-set dummy bison; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_BISON+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$BISON"; then
- ac_cv_prog_BISON="$BISON" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_BISON="bison"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-BISON=$ac_cv_prog_BISON
-if test -n "$BISON"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $BISON" >&5
-printf "%s\n" "$BISON" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-for ac_prog in gm4 m4
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_M4+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$M4"; then
- ac_cv_prog_M4="$M4" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_M4="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-M4=$ac_cv_prog_M4
-if test -n "$M4"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $M4" >&5
-printf "%s\n" "$M4" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$M4" && break
-done
-
-
-test -z "$FLEX" && as_fn_error $? "Flex is missing." "$LINENO" 5
-test -z "$BISON" && as_fn_error $? "Bison is missing." "$LINENO" 5
-test -z "$M4" && as_fn_error $? "M4 is missing." "$LINENO" 5
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking bison version" >&5
-printf %s "checking bison version... " >&6; }
-
- BISON_VERSION=`bison --version | ( read line; echo ${line##* } )`
- case "$BISON_VERSION" in
- 1.* | 2.0* | 2.1* | 2.2* | 2.3*)
- as_fn_error $? "Provided Bison version $BISON_VERSION is too old, need at least 2.4" "$LINENO" 5
- ;;
- 2.*)
- bird_bison_synclines=no
- bird_bison_enhanced_error=no
- ;;
- 3.* | 4.* | 5.* | 6.* | 7.* | 8.* | 9.*)
- bird_bison_synclines=yes
- bird_bison_enhanced_error=yes
- ;;
- *)
- as_fn_error $? "Couldn't parse Bison version $BISON_VERSION. Call the developers for help." "$LINENO" 5
- ;;
- esac
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $BISON_VERSION" >&5
-printf "%s\n" "$BISON_VERSION" >&6; }
-if test "$bird_bison_synclines" = yes && test "$enable_debug_generated" = no; then
- M4FLAGS="$M4FLAGS -s"
-fi
-
-if test "$bird_bison_enhanced_error" = yes; then
- BISONFLAGS="$BISONFLAGS -Dparse.lac=full -Dparse.error=verbose"
-fi
-
-
-
-
-
- # Check for GNU $M4
- case `"$M4" --version 2>&1` in
- *GNU*)
-
- ;;
- *)
- as_fn_error $? "Provided M4 is not GNU M4." "$LINENO" 5
-
- ;;
-
-
- esac
-
-
-if test -n "$with_sysconfig" -a "$with_sysconfig" != no ; then
- if test -f $with_sysconfig ; then
- sysdesc=$with_sysconfig
- else
- sysdesc=$srcdir/sysdep/cf/$with_sysconfig
- if ! test -f $sysdesc ; then
- sysdesc=$sysdesc.h
- fi
- fi
-elif test -f sysconfig.h ; then
- sysdesc=sysconfig
-else
- case "$host_os" in
- linux*)
- sysdesc=linux
- default_iproutedir="/etc/iproute2"
- ;;
- freebsd*)
- sysdesc=bsd
- CPPFLAGS="$CPPFLAGS -I/usr/local/include"
- LDFLAGS="$LDFLAGS -L/usr/local/lib"
- ;;
- kfreebsd*)
- sysdesc=bsd
- ;;
- netbsd*)
- sysdesc=bsd
- CPPFLAGS="$CPPFLAGS -I/usr/pkg/include"
- LDFLAGS="$LDFLAGS -L/usr/pkg/lib -R/usr/pkg/lib"
- ;;
- openbsd*)
- sysdesc=bsd
- CPPFLAGS="$CPPFLAGS -I/usr/local/include"
- LDFLAGS="$LDFLAGS -L/usr/local/lib"
- ;;
- dragonfly*)
- sysdesc=bsd
- ;;
- *)
- as_fn_error $? "Cannot determine correct system configuration. Please use --with-sysconfig to set it manually." "$LINENO" 5
- ;;
- esac
- sysdesc=$srcdir/sysdep/cf/$sysdesc.h
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which OS configuration should we use" >&5
-printf %s "checking which OS configuration should we use... " >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sysdesc" >&5
-printf "%s\n" "$sysdesc" >&6; }
-if ! test -f $sysdesc ; then
- as_fn_error $? "The system configuration file is missing." "$LINENO" 5
-fi
-sysname=`echo $sysdesc | sed 's/\.h$//'`
-
-printf "%s\n" "#define SYSCONF_INCLUDE \"$sysdesc\"" >>confdefs.h
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking system-dependent directories" >&5
-printf %s "checking system-dependent directories... " >&6; }
-sysdep_dirs="`sed <$sysdesc '/^Link: /!d;s/^Link: \(.*\)$/\1/' | tr '\012' ' '`"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sysdep_dirs" >&5
-printf "%s\n" "$sysdep_dirs" >&6; }
-
-
-if test "$with_iproutedir" = no ; then with_iproutedir= ; fi
-
-if test -n "$given_iproutedir"
-then iproutedir=$with_iproutedir
-else iproutedir=$default_iproutedir
-fi
-
-
-
-DAEMON_LIBS=
-
-
-if test "$enable_libssh" != no ; then
- ac_fn_c_check_header_compile "$LINENO" "libssh/libssh.h" "ac_cv_header_libssh_libssh_h" "
-"
-if test "x$ac_cv_header_libssh_libssh_h" = xyes
-then :
- true
-else $as_nop
- fail=yes
-fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ssh_connect in -lssh" >&5
-printf %s "checking for ssh_connect in -lssh... " >&6; }
-if test ${ac_cv_lib_ssh_ssh_connect+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lssh $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char ssh_connect ();
-int
-main (void)
-{
-return ssh_connect ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_lib_ssh_ssh_connect=yes
-else $as_nop
- ac_cv_lib_ssh_ssh_connect=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssh_ssh_connect" >&5
-printf "%s\n" "$ac_cv_lib_ssh_ssh_connect" >&6; }
-if test "x$ac_cv_lib_ssh_ssh_connect" = xyes
-then :
- true
-else $as_nop
- fail=yes
-fi
-
-
- if test "$fail" != yes ; then
-
-printf "%s\n" "#define HAVE_LIBSSH 1" >>confdefs.h
-
- DAEMON_LIBS="-lssh $DAEMON_LIBS"
- enable_libssh=yes
- else
- if test "$enable_libssh" = yes ; then
- as_fn_error $? "LibSSH not available." "$LINENO" 5
- else
- enable_libssh=no
- fi
- fi
-fi
-
-if test "$enable_mpls_kernel" != no ; then
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Linux MPLS headers" >&5
-printf %s "checking for Linux MPLS headers... " >&6; }
-if test ${bird_cv_mpls_kernel+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-
- #include <linux/lwtunnel.h>
- #include <linux/netlink.h>
- #include <linux/rtnetlink.h>
- #include <sys/socket.h>
- void t(int arg);
-
-int
-main (void)
-{
-
- t(AF_MPLS);
- t(RTA_VIA);
- t(RTA_NEWDST);
- t(RTA_ENCAP_TYPE);
- t(RTA_ENCAP);
- struct rtvia rtvia;
- t(LWTUNNEL_ENCAP_MPLS);
-
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- bird_cv_mpls_kernel=yes
-else $as_nop
- bird_cv_mpls_kernel=no
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bird_cv_mpls_kernel" >&5
-printf "%s\n" "$bird_cv_mpls_kernel" >&6; }
-
-
- if test "$bird_cv_mpls_kernel" = yes ; then
-
-printf "%s\n" "#define HAVE_MPLS_KERNEL 1" >>confdefs.h
-
- elif test "$enable_mpls_kernel" = yes ; then
- as_fn_error $? "Kernel MPLS support not found." "$LINENO" 5
- fi
-
- if test "$enable_mpls_kernel" = try ; then
- enable_mpls_kernel="$bird_cv_mpls_kernel"
- fi
-fi
-
-all_protocols="aggregator $proto_bfd babel bgp l3vpn mrt ospf perf pipe radv rip rpki static"
-
-all_protocols=`echo $all_protocols | sed 's/ /,/g'`
-
-if test "$with_protocols" = all ; then
- with_protocols="$all_protocols"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking protocols" >&5
-printf %s "checking protocols... " >&6; }
-protocols=`echo "$with_protocols" | sed 's/,/ /g'`
-if test "$protocols" = no ; then protocols= ; fi
-for a in $protocols ; do
- if ! test -f $srcdir/proto/$a/Makefile ; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
- as_fn_error $? "Requested protocol $a not found" "$LINENO" 5
- fi
- cat >>confdefs.h <<_ACEOF
-#define CONFIG_`echo $a | tr 'a-z' 'A-Z'` 1
-_ACEOF
-
-done
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-printf "%s\n" "ok" >&6; }
-
-
-case $sysdesc in
- */linux*)
- ac_fn_c_check_header_compile "$LINENO" "linux/rtnetlink.h" "ac_cv_header_linux_rtnetlink_h" "
- #include <asm/types.h>
- #include <sys/socket.h>
-
-
-"
-if test "x$ac_cv_header_linux_rtnetlink_h" = xyes
-then :
-
-else $as_nop
- as_fn_error $? "Appropriate version of Linux kernel headers not found." "$LINENO" 5
-fi
-
- ;;
-esac
-
-ac_header= ac_cache=
-for ac_item in $ac_header_c_list
-do
- if test $ac_cache; then
- ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
- if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
- printf "%s\n" "#define $ac_item 1" >> confdefs.h
- fi
- ac_header= ac_cache=
- elif test $ac_header; then
- ac_cache=$ac_item
- else
- ac_header=$ac_item
- fi
-done
-
-
-
-
-
-
-
-
-if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
-then :
-
-printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-
-
-ac_fn_c_check_header_compile "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_mman_h" = xyes
-then :
-
-printf "%s\n" "#define HAVE_MMAP 1" >>confdefs.h
-
-fi
-
-ac_fn_c_check_member "$LINENO" "struct sockaddr" "sa_len" "ac_cv_member_struct_sockaddr_sa_len" "#include <sys/socket.h>
-"
-if test "x$ac_cv_member_struct_sockaddr_sa_len" = xyes
-then :
-
-printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_SA_LEN 1" >>confdefs.h
-
-
-fi
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
-printf %s "checking whether byte ordering is bigendian... " >&6; }
-if test ${ac_cv_c_bigendian+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_c_bigendian=unknown
- # See if we're dealing with a universal compiler.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __APPLE_CC__
- not a universal capable compiler
- #endif
- typedef int dummy;
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-
- # Check for potential -arch flags. It is not universal unless
- # there are at least two -arch flags with different values.
- ac_arch=
- ac_prev=
- for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
- if test -n "$ac_prev"; then
- case $ac_word in
- i?86 | x86_64 | ppc | ppc64)
- if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
- ac_arch=$ac_word
- else
- ac_cv_c_bigendian=universal
- break
- fi
- ;;
- esac
- ac_prev=
- elif test "x$ac_word" = "x-arch"; then
- ac_prev=arch
- fi
- done
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- if test $ac_cv_c_bigendian = unknown; then
- # See if sys/param.h defines the BYTE_ORDER macro.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
- #include <sys/param.h>
-
-int
-main (void)
-{
-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
- && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
- && LITTLE_ENDIAN)
- bogus endian macros
- #endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- # It does; now see whether it defined to BIG_ENDIAN or not.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
- #include <sys/param.h>
-
-int
-main (void)
-{
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
- #endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_c_bigendian=yes
-else $as_nop
- ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- fi
- if test $ac_cv_c_bigendian = unknown; then
- # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <limits.h>
-
-int
-main (void)
-{
-#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
- bogus endian macros
- #endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- # It does; now see whether it defined to _BIG_ENDIAN or not.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <limits.h>
-
-int
-main (void)
-{
-#ifndef _BIG_ENDIAN
- not big endian
- #endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_c_bigendian=yes
-else $as_nop
- ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- fi
- if test $ac_cv_c_bigendian = unknown; then
- # Compile a test program.
- if test "$cross_compiling" = yes
-then :
- # Try to guess by grepping values from an object file.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-unsigned short int ascii_mm[] =
- { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
- unsigned short int ascii_ii[] =
- { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
- int use_ascii (int i) {
- return ascii_mm[i] + ascii_ii[i];
- }
- unsigned short int ebcdic_ii[] =
- { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
- unsigned short int ebcdic_mm[] =
- { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
- int use_ebcdic (int i) {
- return ebcdic_mm[i] + ebcdic_ii[i];
- }
- extern int foo;
-
-int
-main (void)
-{
-return use_ascii (foo) == use_ebcdic (foo);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
- ac_cv_c_bigendian=yes
- fi
- if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
- if test "$ac_cv_c_bigendian" = unknown; then
- ac_cv_c_bigendian=no
- else
- # finding both strings is unlikely to happen, but who knows?
- ac_cv_c_bigendian=unknown
- fi
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-int
-main (void)
-{
-
- /* Are we little or big endian? From Harbison&Steele. */
- union
- {
- long int l;
- char c[sizeof (long int)];
- } u;
- u.l = 1;
- return u.c[sizeof (long int) - 1] == 1;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
- ac_cv_c_bigendian=no
-else $as_nop
- ac_cv_c_bigendian=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
- fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
-printf "%s\n" "$ac_cv_c_bigendian" >&6; }
- case $ac_cv_c_bigendian in #(
- yes)
-
-printf "%s\n" "#define CPU_BIG_ENDIAN 1" >>confdefs.h
-;; #(
- no)
-
-printf "%s\n" "#define CPU_LITTLE_ENDIAN 1" >>confdefs.h
- ;; #(
- universal)
-
-printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
-
- ;; #(
- *)
- as_fn_error $? "Cannot determine CPU endianity." "$LINENO" 5
- ;;
- esac
-
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for glob.h" >&5
-printf %s "checking for glob.h... " >&6; }
-if test ${bird_cv_lib_glob+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-
- #include <glob.h>
- #include <stdlib.h>
-
-int
-main (void)
-{
- glob(NULL, 0, NULL, NULL);
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- bird_cv_lib_glob=yes
-else $as_nop
-
- bird_tmp_libs="$LIBS"
- LIBS="$LIBS -landroid-glob"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-
- #include <glob.h>
- #include <stdlib.h>
-
-int
-main (void)
-{
- glob(NULL, 0, NULL, NULL);
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- bird_cv_lib_glob=-landroid-glob
-else $as_nop
- bird_cv_lib_glob=no
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- LIBS="$bird_tmp_libs"
-
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bird_cv_lib_glob" >&5
-printf "%s\n" "$bird_cv_lib_glob" >&6; }
-
-if test "$bird_cv_lib_glob" = no ; then
- as_fn_error $? "glob.h not found." "$LINENO" 5
-elif test "$bird_cv_lib_glob" != yes ; then
- LIBS="$LIBS $bird_cv_lib_glob"
-fi
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for syslog lib flags" >&5
-printf %s "checking for syslog lib flags... " >&6; }
-if test ${bird_cv_lib_log+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
- #include <sys/syslog.h>
-int
-main (void)
-{
- syslog(0, "");
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- bird_cv_lib_log=yes
-else $as_nop
-
- bird_tmp_libs="$LIBS"
- LIBS="$LIBS -llog"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
- #include <sys/syslog.h>
-int
-main (void)
-{
- syslog(0, "");
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- bird_cv_lib_log=-llog
-else $as_nop
- bird_cv_lib_log=no
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- LIBS="$bird_tmp_libs"
-
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bird_cv_lib_log" >&5
-printf "%s\n" "$bird_cv_lib_log" >&6; }
-
-if test "$bird_cv_lib_log" = no ; then
- as_fn_error $? "don't know how to link syslog." "$LINENO" 5
-elif test "$bird_cv_lib_log" != yes ; then
- LIBS="$LIBS $bird_cv_lib_log"
-fi
-
-ac_fn_c_check_func "$LINENO" "getrandom" "ac_cv_func_getrandom"
-if test "x$ac_cv_func_getrandom" = xyes
-then :
- printf "%s\n" "#define HAVE_GETRANDOM 1" >>confdefs.h
-
-fi
-
-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy"
-if test "x$ac_cv_func_getentropy" = xyes
-then :
- printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h
-
-fi
-
-
-if test "$enable_debug" = yes ; then
-
-printf "%s\n" "#define DEBUGGING 1" >>confdefs.h
-
- LDFLAGS="$LDFLAGS -rdynamic"
- CFLAGS="$CFLAGS -O0 -ggdb -g3"
-
-
- bird_tmp_cflags="$CFLAGS"
- CFLAGS=" -gdwarf-4"
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether CC supports -gdwarf-4" >&5
-printf %s "checking whether CC supports -gdwarf-4... " >&6; }
-if test ${bird_cv_c_option_dwarf4+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- bird_cv_c_option_dwarf4=yes
-else $as_nop
- bird_cv_c_option_dwarf4=no
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bird_cv_c_option_dwarf4" >&5
-printf "%s\n" "$bird_cv_c_option_dwarf4" >&6; }
-
- CFLAGS="$bird_tmp_cflags"
-
-
- if test "$bird_cv_c_option_dwarf4" = yes ; then
- CFLAGS="$CFLAGS -gdwarf-4"
- fi
-
-
- ac_fn_c_check_header_compile "$LINENO" "execinfo.h" "ac_cv_header_execinfo_h" "$ac_includes_default"
-if test "x$ac_cv_header_execinfo_h" = xyes
-then :
-
-
-printf "%s\n" "#define HAVE_EXECINFO_H 1" >>confdefs.h
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing backtrace" >&5
-printf %s "checking for library containing backtrace... " >&6; }
-if test ${ac_cv_search_backtrace+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char backtrace ();
-int
-main (void)
-{
-return backtrace ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' execinfo
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_backtrace=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_backtrace+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_backtrace+y}
-then :
-
-else $as_nop
- ac_cv_search_backtrace=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_backtrace" >&5
-printf "%s\n" "$ac_cv_search_backtrace" >&6; }
-ac_res=$ac_cv_search_backtrace
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-else $as_nop
- as_fn_error $? "Function backtrace not available." "$LINENO" 5
-
-fi
-
-
-
-fi
-
-
- if test "$enable_memcheck" = yes ; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dmalloc_debug in -ldmalloc" >&5
-printf %s "checking for dmalloc_debug in -ldmalloc... " >&6; }
-if test ${ac_cv_lib_dmalloc_dmalloc_debug+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldmalloc $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char dmalloc_debug ();
-int
-main (void)
-{
-return dmalloc_debug ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_lib_dmalloc_dmalloc_debug=yes
-else $as_nop
- ac_cv_lib_dmalloc_dmalloc_debug=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
-printf "%s\n" "$ac_cv_lib_dmalloc_dmalloc_debug" >&6; }
-if test "x$ac_cv_lib_dmalloc_dmalloc_debug" = xyes
-then :
- printf "%s\n" "#define HAVE_LIBDMALLOC 1" >>confdefs.h
-
- LIBS="-ldmalloc $LIBS"
-
-fi
-
- if test $ac_cv_lib_dmalloc_dmalloc_debug != yes ; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for malloc in -lefence" >&5
-printf %s "checking for malloc in -lefence... " >&6; }
-if test ${ac_cv_lib_efence_malloc+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lefence $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char malloc ();
-int
-main (void)
-{
-return malloc ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_lib_efence_malloc=yes
-else $as_nop
- ac_cv_lib_efence_malloc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_efence_malloc" >&5
-printf "%s\n" "$ac_cv_lib_efence_malloc" >&6; }
-if test "x$ac_cv_lib_efence_malloc" = xyes
-then :
- printf "%s\n" "#define HAVE_LIBEFENCE 1" >>confdefs.h
-
- LIBS="-lefence $LIBS"
-
-fi
-
- fi
- fi
-
- if test "$enable_debug_expensive" = yes ; then
-
-printf "%s\n" "#define ENABLE_EXPENSIVE_CHECKS 1" >>confdefs.h
-
- fi
-fi
-
-if test "$enable_compact_tries" = yes ; then
-
-printf "%s\n" "#define ENABLE_COMPACT_TRIES 1" >>confdefs.h
-
-fi
-
-CLIENT=birdcl
-CLIENT_LIBS=
-if test "$enable_client" = yes ; then
- CLIENT="$CLIENT birdc"
- BASE_LIBS="$LIBS"
- LIBS=""
-
- for ac_header in curses.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "curses.h" "ac_cv_header_curses_h" "$ac_includes_default
-
-"
-if test "x$ac_cv_header_curses_h" = xyes
-then :
- printf "%s\n" "#define HAVE_CURSES_H 1" >>confdefs.h
-
-else $as_nop
- as_fn_error $? "The client requires ncurses library. Either install the library or use --disable-client to compile without the client." "$LINENO" 5
-fi
-
-done
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing tgetent" >&5
-printf %s "checking for library containing tgetent... " >&6; }
-if test ${ac_cv_search_tgetent+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char tgetent ();
-int
-main (void)
-{
-return tgetent ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' tinfo tinfow ncurses curses termcap
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_tgetent=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_tgetent+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_tgetent+y}
-then :
-
-else $as_nop
- ac_cv_search_tgetent=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tgetent" >&5
-printf "%s\n" "$ac_cv_search_tgetent" >&6; }
-ac_res=$ac_cv_search_tgetent
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
- TINFO_LIBS="$LIBS"; LIBS=""
-else $as_nop
- as_fn_error $? "The client requires ncurses library. Either install the library or use --disable-client to compile without the client." "$LINENO" 5
-fi
-
-
- for ac_header in readline/readline.h readline/history.h
-do :
- as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-else $as_nop
- as_fn_error $? "The client requires GNU Readline library. Either install the library or use --disable-client to compile without the client." "$LINENO" 5
-fi
-
-done
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing rl_callback_read_char" >&5
-printf %s "checking for library containing rl_callback_read_char... " >&6; }
-if test ${ac_cv_search_rl_callback_read_char+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char rl_callback_read_char ();
-int
-main (void)
-{
-return rl_callback_read_char ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' readline
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $TINFO_LIBS
- $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_rl_callback_read_char=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_rl_callback_read_char+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_rl_callback_read_char+y}
-then :
-
-else $as_nop
- ac_cv_search_rl_callback_read_char=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_rl_callback_read_char" >&5
-printf "%s\n" "$ac_cv_search_rl_callback_read_char" >&6; }
-ac_res=$ac_cv_search_rl_callback_read_char
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
- READLINE_LIBS="$LIBS"; LIBS=""
-else $as_nop
- as_fn_error $? "The client requires GNU Readline library. Either install the library or use --disable-client to compile without the client." "$LINENO" 5
-fi
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_crlf in -lreadline" >&5
-printf %s "checking for rl_crlf in -lreadline... " >&6; }
-if test ${ac_cv_lib_readline_rl_crlf+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lreadline $TINFO_LIBS
- $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char rl_crlf ();
-int
-main (void)
-{
-return rl_crlf ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_lib_readline_rl_crlf=yes
-else $as_nop
- ac_cv_lib_readline_rl_crlf=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_crlf" >&5
-printf "%s\n" "$ac_cv_lib_readline_rl_crlf" >&6; }
-if test "x$ac_cv_lib_readline_rl_crlf" = xyes
-then :
-
-printf "%s\n" "#define HAVE_RL_CRLF 1" >>confdefs.h
-
-fi
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_ding in -lreadline" >&5
-printf %s "checking for rl_ding in -lreadline... " >&6; }
-if test ${ac_cv_lib_readline_rl_ding+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lreadline $TINFO_LIBS
- $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char rl_ding ();
-int
-main (void)
-{
-return rl_ding ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_lib_readline_rl_ding=yes
-else $as_nop
- ac_cv_lib_readline_rl_ding=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_ding" >&5
-printf "%s\n" "$ac_cv_lib_readline_rl_ding" >&6; }
-if test "x$ac_cv_lib_readline_rl_ding" = xyes
-then :
-
-printf "%s\n" "#define HAVE_RL_DING 1" >>confdefs.h
-
-fi
-
-
- LIBS="$BASE_LIBS"
- CLIENT_LIBS="$READLINE_LIBS $TINFO_LIBS"
-fi
-
-
-
-mkdir -p $objdir/sysdep
-ac_config_headers="$ac_config_headers $objdir/sysdep/autoconf.h:sysdep/autoconf.h.in"
-
-ac_config_files="$ac_config_files Makefile:Makefile.in"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes: double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \.
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
- sed '
- /^ac_cv_env_/b end
- t clear
- :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
- t end
- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
- if test -w "$cache_file"; then
- if test "x$cache_file" != "x/dev/null"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
- if test ! -f "$cache_file" || test -h "$cache_file"; then
- cat confcache >"$cache_file"
- else
- case $cache_file in #(
- */* | ?:*)
- mv -f confcache "$cache_file"$$ &&
- mv -f "$cache_file"$$ "$cache_file" ;; #(
- *)
- mv -f confcache "$cache_file" ;;
- esac
- fi
- fi
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-as_nop=:
-if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
-then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else $as_nop
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-
-# Reset variables that may have inherited troublesome values from
-# the environment.
-
-# IFS needs to be set, to space, tab, and newline, in precisely that order.
-# (If _AS_PATH_WALK were called with IFS unset, it would have the
-# side effect of setting IFS to empty, thus disabling word splitting.)
-# Quoting is to prevent editors from complaining about space-tab.
-as_nl='
-'
-export as_nl
-IFS=" "" $as_nl"
-
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# Ensure predictable behavior from utilities with locale-dependent output.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# We cannot yet rely on "unset" to work, but we need these variables
-# to be unset--not just set to an empty or harmless value--now, to
-# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
-# also avoids known problems related to "unset" and subshell syntax
-# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
-for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
-do eval test \${$as_var+y} \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-
-# Ensure that fds 0, 1, and 2 are open.
-if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
-if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
-if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
-
-# The user is always right.
-if ${PATH_SEPARATOR+false} :; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- test -r "$as_dir$0" && as_myself=$as_dir$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- printf "%s\n" "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
-then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else $as_nop
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
-then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else $as_nop
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
-# Determine whether it's possible to make 'echo' print without a newline.
-# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
-# for compatibility with existing Makefiles.
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-# For backward compatibility with old third-party macros, we provide
-# the shell variables $as_echo and $as_echo_n. New code should use
-# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
-as_echo='printf %s\n'
-as_echo_n='printf %s'
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.71. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration. Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- --config print configuration, then exit
- -q, --quiet, --silent
- do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Report bugs to the package provider."
-
-_ACEOF
-ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
-ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config='$ac_cs_config_escaped'
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.71,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2021 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=?*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- --*=)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- printf "%s\n" "$ac_cs_version"; exit ;;
- --config | --confi | --conf | --con | --co | --c )
- printf "%s\n" "$ac_cs_config"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- '') as_fn_error $? "missing file argument" ;;
- esac
- as_fn_append CONFIG_FILES " '$ac_optarg'"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append CONFIG_HEADERS " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
- --help | --hel | -h )
- printf "%s\n" "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
- *) as_fn_append ac_config_targets " $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- shift
- \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
- CONFIG_SHELL='$SHELL'
- export CONFIG_SHELL
- exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- printf "%s\n" "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "$objdir/sysdep/autoconf.h") CONFIG_HEADERS="$CONFIG_HEADERS $objdir/sysdep/autoconf.h:sysdep/autoconf.h.in" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile:Makefile.in" ;;
-
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
- test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp= ac_tmp=
- trap 'exit_status=$?
- : "${ac_tmp:=$tmp}"
- { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
- trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
- eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\\r'
-else
- ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
- echo "cat >conf$$subs.awk <<_ACEOF" &&
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
-} >conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
- N
- s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
- for (key in S) S_is_set[key] = 1
- FS = ""
-
-}
-{
- line = $ 0
- nfields = split(line, field, "@")
- substed = 0
- len = length(field[1])
- for (i = 2; i < nfields; i++) {
- key = field[i]
- keylen = length(key)
- if (S_is_set[key]) {
- value = S[key]
- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
- len += length(value) + length(field[++i])
- substed = 1
- } else
- len += 1 + keylen
- }
-
- print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
- cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
-h
-s///
-s/^/:/
-s/[ ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[ ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
- ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_tt"; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any. Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[ ]*#[ ]*define[ ][ ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- for (key in D) D_is_set[key] = 1
- FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
- line = \$ 0
- split(line, arg, " ")
- if (arg[1] == "#") {
- defundef = arg[2]
- mac1 = arg[3]
- } else {
- defundef = substr(arg[1], 2)
- mac1 = arg[2]
- }
- split(mac1, mac2, "(") #)
- macro = mac2[1]
- prefix = substr(line, 1, index(line, defundef) - 1)
- if (D_is_set[macro]) {
- # Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
- next
- } else {
- # Replace #undef with comments. This is necessary, for example,
- # in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
- if (defundef == "undef") {
- print "/*", prefix defundef, macro, "*/"
- next
- }
- }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS "
-shift
-for ac_tag
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$ac_tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
- esac
- case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- as_fn_append ac_file_inputs " '$ac_f'"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input='Generated from '`
- printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
- `' by configure.'
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-printf "%s\n" "$as_me: creating $ac_file" >&6;}
- fi
- # Neutralize special characters interpreted by sed in replacement strings.
- case $configure_input in #(
- *\&* | *\|* | *\\* )
- ac_sed_conf_input=`printf "%s\n" "$configure_input" |
- sed 's/[\\\\&|]/\\\\&/g'`;; #(
- *) ac_sed_conf_input=$configure_input;;
- esac
-
- case $ac_tag in
- *:-:* | *:-) cat >"$ac_tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir="$ac_dir"; as_fn_mkdir_p
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
- >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
- "$ac_tmp/out"`; test -z "$ac_out"; } &&
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&5
-printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&2;}
-
- rm -f "$ac_tmp/stdin"
- case $ac_file in
- -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
- *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
- esac \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
- if test x"$ac_file" != x-; then
- {
- printf "%s\n" "/* $configure_input */" >&1 \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
- } >"$ac_tmp/config.h" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$ac_tmp/config.h" "$ac_file" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- fi
- else
- printf "%s\n" "/* $configure_input */" >&1 \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error $? "could not create -" "$LINENO" 5
- fi
- ;;
-
-
- esac
-
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
-printf "%s\n" "" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: BIRD was configured with the following options:" >&5
-printf "%s\n" "BIRD was configured with the following options:" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Source directory: $srcdir" >&5
-printf "%s\n" " Source directory: $srcdir" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Object directory: $objdir" >&5
-printf "%s\n" " Object directory: $objdir" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Iproute2 directory: $iproutedir" >&5
-printf "%s\n" " Iproute2 directory: $iproutedir" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: System configuration: $sysdesc" >&5
-printf "%s\n" " System configuration: $sysdesc" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Debugging: $enable_debug" >&5
-printf "%s\n" " Debugging: $enable_debug" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Compact tries: $enable_compact_tries" >&5
-printf "%s\n" " Compact tries: $enable_compact_tries" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: POSIX threads: $enable_pthreads" >&5
-printf "%s\n" " POSIX threads: $enable_pthreads" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Routing protocols: $protocols" >&5
-printf "%s\n" " Routing protocols: $protocols" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: LibSSH support in RPKI: $enable_libssh" >&5
-printf "%s\n" " LibSSH support in RPKI: $enable_libssh" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Kernel MPLS support: $enable_mpls_kernel" >&5
-printf "%s\n" " Kernel MPLS support: $enable_mpls_kernel" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Client: $enable_client" >&5
-printf "%s\n" " Client: $enable_client" >&6; }
-
-rm -f $objdir/.*-stamp
-
diff --git a/doc/old/banner.tex b/doc/old/banner.tex
new file mode 100644
index 00000000..e1170562
--- /dev/null
+++ b/doc/old/banner.tex
@@ -0,0 +1,44 @@
+\input mjmac
+
+\language=\czech
+\chyph
+\nopagenumbers
+
+\centerline{\Big Projekt BIRD}
+\bigskip
+\centerline{\Big\ss (Basic Internet Routing Daemon)}
+
+\vskip 1in
+
+\large\fixfont
+
+\parindent=0pt
+
+\halign{\quad \hfil # & \quad # \hfil \cr
+Vedoucí projektu: & RNDr. Libor Forst \cr
+\noalign{\medskip}
+Účastníci: & Leoą Bitto \cr
+ & Ondřej Filip \cr
+ & Pavel Machek \cr
+ & Martin Mareą \cr
+ & {\I (tímto je projekt obsazen)} \cr
+\noalign{\medskip}
+Cíl projektu: & \vtop{\hsize=0.6\hsize
+ Cílem projektu je vyvinout kompletní podporu dynamického routingu
+Internetovských protokolů (IP a IPv6) pro operační systémy kompatibilní
+s~UNIXem, zejména pak pro Linux. Základní rysy programu:
+\itemize\ibull
+\:Podpora pouľití obou verzí IP současně na~téľe síti.
+\:Komunikace s~okolními routery prostřednictvím protokolů RIPv2, OSPFv2 a BGP4.
+\:Filtrace routovacích tabulek.
+\:Moľnost re-exportu informací získaných jedním protokolem do~protokolů
+ jiných.
+\:Vyuľití vymoľeností Linuxového jádra (vícenásobné routovací tabulky,
+ netlink apod.).
+\:Dynamická rekonfigurovatelnost za běhu.
+\:TOS-based routing.
+\endlist
+}\cr
+}
+
+\bye
diff --git a/doc/old/status.tex b/doc/old/status.tex
new file mode 100644
index 00000000..cd7ce897
--- /dev/null
+++ b/doc/old/status.tex
@@ -0,0 +1,90 @@
+\input mjmac
+
+\hsize=7truein
+\vsize=9.5truein
+\language=\czech
+\chyph
+
+\centerline{\Big Projekt BIRD}
+\bigskip
+\centerline{\Big\ss (Basic Internet Routing Daemon)}
+\bigskip
+\centerline{\large\it zpráva o~stavu projektu ke~dni 10. 11. 1999}
+
+\vskip 0.5in
+
+\leftline{\Large Obsazení}
+
+\noindent\halign{\quad \hfil # & \quad # \hfil \cr
+Vedoucí projektu: & RNDr. Libor Forst \cr
+\noalign{\medskip}
+Účastníci: & Ondřej Filip \cr
+ & Pavel Machek \cr
+ & Martin Mareą \cr
+}
+
+\bigskip
+\leftline{\Large Specifikace}
+
+ Cílem projektu je vyvinout program umoľňující dynamický routing
+internetovských protokolů (IPv4 a IPv6) pro operační systémy kompatibilní
+s~UNIXem (zejména pak pro Linux). Tento program komunikuje s~ostatními
+routery v~síti (respektive její části, na níľ se dynamický routing vztahuje)
+prostřednictvím standardních protokolů (RIPv2, OSPFv2, BGP4), vyměňuje si
+s~nimi informace o~topologii sítě a jejích dynamických změnách a podle takto
+zjiątěné topologie nastavuje routovací tabulky jádra OS.
+
+ Program dále zajią»uje distribuci routovacích informací mezi jednotlivými
+(jinak na sobě nazávislými) protokoly, přičemľ tyto informace umoľňuje
+filtrovat podle pravidel specifikovaných v~jednoduchém programovacím
+jazyku, čímľ lze mimo jiné realizovat policy-based routing, který
+je jinak dostupný pouze v~drahých komerčních routerech.
+
+ Projekt si rovněľ klade za cíl vyuľít nejnovějąích vymoľeností
+moderních UNIXových OS, jako jsou vícenásobné routovací tabulky, netlink
+apod.
+
+ Router bude moľno za běhu ovládat prostřednictvím řídících příkazů
+předávaných po lokálním socketu. To zahrnuje výpis stavových informací
+celého systému (routovacích tabulek, topologických map protokolu OSPF,
+atributových tabulek BGP a jiných údajů nezbytných pro správce sítě)
+a zejména změnu konfigurace bez nutnosti restartu protokolů změnami
+nedotčených.
+
+\medskip
+
+\leftline{\Large Stav projektu}
+
+ Po ztrátě jednoho z~členů týmu pokračuje vývoj poněkud pomalejąím
+tempem neľ se původně očekávalo, nicméně zadání projektu hodláme splnit
+v~celém rozsahu a projekt během tohoto ąkolního roku dokončit. V~současné
+době chybí zejména dokumentace (její nynějąí podoba se omezuje výhradně
+na~bohaté komentáře ve~zdrojových textech) a podpora protokolu BGP.
+
+\medskip
+
+\noindent Stav jednotlivých částí projektu:
+
+\medskip
+
+\halign{# \hfil & \qquad \hfil#\cr
+Building system & 100\% \cr
+Jádro routeru & 90\% \cr
+Správa datových struktur & 80\% \cr
+Podpora IPv4 & 100\% \cr
+Podpora IPv6 & 70\% \cr
+Interface na Linux 2.0 & 100\% \cr
+Interface na Linux 2.2 & 100\% \cr
+Interface na FreeBSD & 20\% \cr
+Protokol RIP & 90\% \cr
+Protokol OSPF pro IPv4 & 40\% \cr
+Protokol OSPF pro IPv6 & 10\% \cr
+Protokol BGP & 0\% \cr
+Interpreter filtrů & 70\% \cr
+Parser konfigurace & 70\% \cr
+Dálkové ovládání & 20\% \cr
+Dokumentace & 0\% \cr
+Online help & 0\% \cr
+}
+
+\bye
diff --git a/doc/slides/Makefile b/doc/slides/Makefile
new file mode 100644
index 00000000..52bb360c
--- /dev/null
+++ b/doc/slides/Makefile
@@ -0,0 +1,19 @@
+all: slides.dvi
+
+slides.dvi: slides.tex
+ csplain slides.tex
+
+slides.ps: slides.dvi
+ dvips -o slides.ps -D600 -ta4 slides.dvi
+
+view: slides.dvi
+ xdvi -expert -geometry 1100x700 -l -s 4 -paper a4 -margins 1in slides.dvi
+
+viewlarge: slides.dvi
+ xdvi -expert -geometry 1024x700 -l -s 1 -paper a4 -margins 1in slides.dvi
+
+viewreal: slides.dvi
+ xdvi -expert -geometry 1024x700 -l -s 6 -paper a4 -margins 1in slides.dvi
+
+clean:
+ rm -f *~ *.log *.tfm *.*pk *.*gf *.ps *.dvi
diff --git a/doc/slides/logo.eps b/doc/slides/logo.eps
new file mode 100644
index 00000000..587a4145
--- /dev/null
+++ b/doc/slides/logo.eps
@@ -0,0 +1,454 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 16 477 580 811
+%%Creator: CorelDRAW 8
+%%Title: C:\Dokumenty\bird\333333.eps
+%%CreationDate: Sun Jun 25 11:14:25 2000
+%%DocumentProcessColors: Black
+%%DocumentSuppliedResources: (atend)
+%%EndComments
+%%BeginProlog
+/AutoFlatness false def
+/AutoSteps 0 def
+/CMYKMarks true def
+/UseLevel 1 def
+%Color profile: PROFILES.CCM - Obecný profil tiskárny CMYK
+%%BeginResource: procset wCorel8Dict 8.0 0
+/wCorel8Dict 300 dict def wCorel8Dict begin
+% Copyright (c)1992-97 Corel Corporation
+% All rights reserved. v8.0 r0.7
+/bd{bind def}bind def/ld{load def}bd/xd{exch def}bd/_ null def/rp{{pop}repeat}
+bd/@cp/closepath ld/@gs/gsave ld/@gr/grestore ld/@np/newpath ld/Tl/translate ld
+/$sv 0 def/@sv{/$sv save def}bd/@rs{$sv restore}bd/spg/showpage ld/showpage{}
+bd currentscreen/@dsp xd/$dsp/@dsp def/$dsa xd/$dsf xd/$sdf false def/$SDF
+false def/$Scra 0 def/SetScr/setscreen ld/setscreen{pop pop pop}bd/@ss{2 index
+0 eq{$dsf 3 1 roll 4 -1 roll pop}if exch $Scra add exch load SetScr}bd
+/SepMode_5 where{pop}{/SepMode_5 0 def}ifelse/CurrentInkName_5 where{pop}
+{/CurrentInkName_5(Composite)def}ifelse/$ink_5 where{pop}{/$ink_5 -1 def}
+ifelse/$c 0 def/$m 0 def/$y 0 def/$k 0 def/$t 1 def/$n _ def/$o 0 def/$fil 0
+def/$C 0 def/$M 0 def/$Y 0 def/$K 0 def/$T 1 def/$N _ def/$O 0 def/$PF false
+def/s1c 0 def/s1m 0 def/s1y 0 def/s1k 0 def/s1t 0 def/s1n _ def/$bkg false def
+/SK 0 def/SM 0 def/SY 0 def/SC 0 def/$op false def matrix currentmatrix/$ctm xd
+/$ptm matrix def/$ttm matrix def/$stm matrix def/$ffpnt true def
+/CorelDrawReencodeVect[16#0/grave 16#5/breve 16#6/dotaccent 16#8/ring
+16#A/hungarumlaut 16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle
+16#60/grave 16#7C/bar
+16#82/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl
+16#88/circumflex/perthousand/Scaron/guilsinglleft/OE
+16#91/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash
+16#98/tilde/trademark/scaron/guilsinglright/oe 16#9F/Ydieresis
+16#A1/exclamdown/cent/sterling/currency/yen/brokenbar/section
+16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/minus/registered/macron
+16#b0/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
+16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
+16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
+16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
+16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
+16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
+16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/L2?/languagelevel where{pop languagelevel 2 ge}{false}ifelse def
+/@BeginSysCorelDict{systemdict/Corel30Dict known{systemdict/Corel30Dict get
+exec}if systemdict/CorelLexDict known{1 systemdict/CorelLexDict get exec}if}bd
+/@EndSysCorelDict{systemdict/Corel30Dict known{end}if/EndCorelLexDict where
+{pop EndCorelLexDict}if}bd AutoFlatness{/@ifl{dup currentflat exch sub 10 gt{
+([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator]\n)print flush
+@np exit}{currentflat 2 add setflat}ifelse}bd/@fill/fill ld/fill{currentflat{
+{@fill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@eofill/eofill ld/eofill
+{currentflat{{@eofill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@clip
+/clip ld/clip{currentflat{{@clip}stopped{@ifl}{exit}ifelse}bind loop setflat}
+bd/@eoclip/eoclip ld/eoclip{currentflat{{@eoclip}stopped{@ifl}{exit}ifelse}
+bind loop setflat}bd/@stroke/stroke ld/stroke{currentflat{{@stroke}stopped
+{@ifl}{exit}ifelse}bind loop setflat}bd}if L2?{/@ssa{true setstrokeadjust}bd}{
+/@ssa{}bd}ifelse/d/setdash ld/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit
+ld/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd/W/eoclip ld/c/curveto ld/C/c ld/l
+/lineto ld/L/l ld/rl/rlineto ld/m/moveto ld/n/newpath ld/N/newpath ld/P{11 rp}
+bd/u{}bd/U{}bd/A{pop}bd/q/@gs ld/Q/@gr ld/&{}bd/@j{@sv @np}bd/@J{@rs}bd/g{1
+exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def}bd/G{1
+sub neg/$K xd _ 1 0 0 0/$C xd/$M xd/$Y xd/$T xd/$N xd}bd/k{1 index type
+/stringtype eq{/$t xd/$n xd}{/$t 0 def/$n _ def}ifelse/$k xd/$y xd/$m xd/$c xd
+/$fil 0 def}bd/K{1 index type/stringtype eq{/$T xd/$N xd}{/$T 0 def/$N _ def}
+ifelse/$K xd/$Y xd/$M xd/$C xd}bd/x/k ld/X/K ld/sf{1 index type/stringtype eq{
+/s1t xd/s1n xd}{/s1t 0 def/s1n _ def}ifelse/s1k xd/s1y xd/s1m xd/s1c xd}bd/i{
+dup 0 ne{setflat}{pop}ifelse}bd/v{4 -2 roll 2 copy 6 -2 roll c}bd/V/v ld/y{2
+copy c}bd/Y/y ld/@w{matrix rotate/$ptm xd matrix scale $ptm dup concatmatrix
+/$ptm xd 1 eq{$ptm exch dup concatmatrix/$ptm xd}if 1 w}bd/@g{1 eq dup/$sdf xd
+{/$scp xd/$sca xd/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd/$SCA xd/$SCF xd}
+if}bd/@D{2 index 0 eq{$dsf 3 1 roll 4 -1 roll pop}if 3 copy exch $Scra add exch
+load SetScr/$dsp xd/$dsa xd/$dsf xd}bd/$ngx{$SDF{$SCF SepMode_5 0 eq{$SCA}
+{$dsa}ifelse $SCP @ss}if}bd/p{/$pm xd 7 rp/$pyf xd/$pxf xd/$pn xd/$fil 1 def}
+bd/@MN{2 copy le{pop}{exch pop}ifelse}bd/@MX{2 copy ge{pop}{exch pop}ifelse}bd
+/InRange{3 -1 roll @MN @MX}bd/@sqr{dup 0 rl dup 0 exch rl neg 0 rl @cp}bd
+/currentscale{1 0 dtransform matrix defaultmatrix idtransform dup mul exch dup
+mul add sqrt 0 1 dtransform matrix defaultmatrix idtransform dup mul exch dup
+mul add sqrt}bd/@unscale{}bd/wDstChck{2 1 roll dup 3 -1 roll eq{1 add}if}bd
+/@dot{dup mul exch dup mul add 1 exch sub}bd/@lin{exch pop abs 1 exch sub}bd
+/cmyk2rgb{3{dup 5 -1 roll add 1 exch sub dup 0 lt{pop 0}if exch}repeat pop}bd
+/rgb2cmyk{3{1 exch sub 3 1 roll}repeat 3 copy @MN @MN 3{dup 5 -1 roll sub neg
+exch}repeat}bd/rgb2g{2 index .299 mul 2 index .587 mul add 1 index .114 mul add
+4 1 roll pop pop pop}bd/WaldoColor_5 where{pop}{/SetRgb/setrgbcolor ld/GetRgb
+/currentrgbcolor ld/SetGry/setgray ld/GetGry/currentgray ld/SetRgb2 systemdict
+/setrgbcolor get def/GetRgb2 systemdict/currentrgbcolor get def/SetHsb
+systemdict/sethsbcolor get def/GetHsb systemdict/currenthsbcolor get def
+/rgb2hsb{SetRgb2 GetHsb}bd/hsb2rgb{3 -1 roll dup floor sub 3 1 roll SetHsb
+GetRgb2}bd/setcmykcolor where{pop/SetCmyk_5/setcmykcolor ld}{/SetCmyk_5{
+cmyk2rgb SetRgb}bd}ifelse/currentcmykcolor where{pop/GetCmyk/currentcmykcolor
+ld}{/GetCmyk{GetRgb rgb2cmyk}bd}ifelse/setoverprint where{pop}{/setoverprint{
+/$op xd}bd}ifelse/currentoverprint where{pop}{/currentoverprint{$op}bd}ifelse
+/@tc_5{5 -1 roll dup 1 ge{pop}{4{dup 6 -1 roll mul exch}repeat pop}ifelse}bd
+/@trp{exch pop 5 1 roll @tc_5}bd/setprocesscolor_5{SepMode_5 0 eq{SetCmyk_5}{0
+4 $ink_5 sub index exch pop 5 1 roll pop pop pop pop SepsColor true eq{$ink_5 3
+gt{1 sub neg SetGry}{0 0 0 4 $ink_5 roll SetCmyk_5}ifelse}{1 sub neg SetGry}
+ifelse}ifelse}bd/findcmykcustomcolor where{pop}{/findcmykcustomcolor{5 array
+astore}bd}ifelse/setcustomcolor where{pop}{/setcustomcolor{exch aload pop
+SepMode_5 0 eq{pop @tc_5 setprocesscolor_5}{CurrentInkName_5 eq{4 index}{0}
+ifelse 6 1 roll 5 rp 1 sub neg SetGry}ifelse}bd}ifelse/@scc_5{dup type
+/booleantype eq{setoverprint}{1 eq setoverprint}ifelse dup _ eq{pop
+setprocesscolor_5 pop}{findcmykcustomcolor exch setcustomcolor}ifelse SepMode_5
+0 eq{true}{GetGry 1 eq currentoverprint and not}ifelse}bd/colorimage where{pop
+/ColorImage{colorimage}def}{/ColorImage{/ncolors xd pop/dataaq xd{dataaq
+ncolors dup 3 eq{/$dat xd 0 1 $dat length 3 div 1 sub{dup 3 mul $dat 1 index
+get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div rgb2g
+255 mul cvi exch pop $dat 3 1 roll put}for $dat 0 $dat length 3 idiv
+getinterval pop}{4 eq{/$dat xd 0 1 $dat length 4 div 1 sub{dup 4 mul $dat 1
+index get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div
+$dat 4 index 3 add get 255 div cmyk2rgb rgb2g 255 mul cvi exch pop $dat 3 1
+roll put}for $dat 0 $dat length ncolors idiv getinterval}if}ifelse}image}bd
+}ifelse/setcmykcolor{1 5 1 roll _ currentoverprint @scc_5/$ffpnt xd}bd
+/currentcmykcolor{0 0 0 0}bd/setrgbcolor{rgb2cmyk setcmykcolor}bd
+/currentrgbcolor{currentcmykcolor cmyk2rgb}bd/sethsbcolor{hsb2rgb setrgbcolor}
+bd/currenthsbcolor{currentrgbcolor rgb2hsb}bd/setgray{dup dup setrgbcolor}bd
+/currentgray{currentrgbcolor rgb2g}bd/InsideDCS false def/IMAGE systemdict
+/image get def/image{InsideDCS{IMAGE}{/EPSDict where{pop SepMode_5 0 eq{IMAGE}
+{dup type/dicttype eq{dup/ImageType get 1 ne{IMAGE}{dup dup/BitsPerComponent
+get 8 eq exch/BitsPerComponent get 1 eq or currentcolorspace 0 get/DeviceGray
+eq and{CurrentInkName_5(Black)eq{IMAGE}{dup/DataSource get/TCC xd/Height get
+abs{TCC pop}repeat}ifelse}{IMAGE}ifelse}ifelse}{2 index 1 ne{CurrentInkName_5
+(Black)eq{IMAGE}{/TCC xd pop pop exch pop abs{TCC pop}repeat}ifelse}{IMAGE}
+ifelse}ifelse}ifelse}{IMAGE}ifelse}ifelse}bd}ifelse/WaldoColor_5 true def/@sft
+{$tllx $pxf add dup $tllx gt{$pwid sub}if/$tx xd $tury $pyf sub dup $tury lt
+{$phei add}if/$ty xd}bd/@stb{pathbbox/$ury xd/$urx xd/$lly xd/$llx xd}bd/@ep{{
+cvx exec}forall}bd/@tp{@sv/$in true def 2 copy dup $lly le{/$in false def}if
+$phei sub $ury ge{/$in false def}if dup $urx ge{/$in false def}if $pwid add
+$llx le{/$in false def}if $in{@np 2 copy m $pwid 0 rl 0 $phei neg rl $pwid neg
+0 rl 0 $phei rl clip @np $pn cvlit load aload pop 7 -1 roll 5 index sub 7 -1
+roll 3 index sub Tl matrix currentmatrix/$ctm xd @ep pop pop pop pop}{pop pop
+}ifelse @rs}bd/@th{@sft 0 1 $tly 1 sub{dup $psx mul $tx add{dup $llx gt{$pwid
+sub}{exit}ifelse}loop exch $phei mul $ty exch sub 0 1 $tlx 1 sub{$pwid mul 3
+copy 3 -1 roll add exch @tp pop}for pop pop}for}bd/@tv{@sft 0 1 $tlx 1 sub{dup
+$pwid mul $tx add exch $psy mul $ty exch sub{dup $ury lt{$phei add}{exit}
+ifelse}loop 0 1 $tly 1 sub{$phei mul 3 copy sub @tp pop}for pop pop}for}bd/$fm
+0 def/wfill{1 $fm eq{fill}{eofill}ifelse}bd/wclip{1 $fm eq{clip}{eoclip}ifelse
+}bd/@pf{@gs $ctm setmatrix $pm concat @stb wclip @sv Bburx Bbury $pm itransform
+/$tury xd/$turx xd Bbllx Bblly $pm itransform/$tlly xd/$tllx xd newpath $tllx
+$tlly m $tllx $tury l $turx $tury l $turx $tlly l $tllx $tlly m @cp pathbbox
+@rs/$tury xd/$turx xd/$tlly xd/$tllx xd/$wid $turx $tllx sub def/$hei $tury
+$tlly sub def @gs $vectpat{1 0 0 0 0 _ $o @scc_5{wfill}if}{$t $c $m $y $k $n $o
+@scc_5{SepMode_5 0 eq $pfrg or{$tllx $tlly Tl $wid $hei scale <00> 8 1 false[8
+0 0 1 0 0]{}imagemask}{/$bkg true def}ifelse}if}ifelse @gr $wid 0 gt $hei 0 gt
+and{$pn cvlit load aload pop/$pd xd 3 -1 roll sub/$phei xd exch sub/$pwid xd
+$wid $pwid div ceiling 1 add/$tlx xd $hei $phei div ceiling 1 add/$tly xd $psx
+0 eq{@tv}{@th}ifelse}if @gr @np/$bkg false def}bd/@Pf{@sv SepMode_5 0 eq $Psc 0
+ne or $ink_5 3 eq or{0 J 0 j[]0 d $t $c $m $y $k $n $o @scc_5 pop $ctm
+setmatrix 72 1000 div dup matrix scale dup concat dup Bburx exch Bbury exch
+itransform ceiling cvi/Bbury xd ceiling cvi/Bburx xd Bbllx exch Bblly exch
+itransform floor cvi/Bblly xd floor cvi/Bbllx xd $Prm aload pop $Psn load exec
+}{1 SetGry wfill}ifelse @rs @np}bd/F{matrix currentmatrix $sdf{$scf $sca $scp
+@ss}if $fil 1 eq{@pf}{$fil 2 eq{@ff}{$fil 3 eq{@Pf}{$t $c $m $y $k $n $o @scc_5
+{wfill}{@np}ifelse}ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp @ss}if setmatrix}
+bd/f{@cp F}bd/S{matrix currentmatrix $ctm setmatrix $SDF{$SCF $SCA $SCP @ss}if
+$T $C $M $Y $K $N $O @scc_5{matrix currentmatrix $ptm concat stroke setmatrix}
+{@np}ifelse $SDF{$dsf $dsa $dsp @ss}if setmatrix}bd/s{@cp S}bd/B{@gs F @gr S}
+bd/b{@cp B}bd/_E{5 array astore exch cvlit xd}bd/@cc{currentfile $dat
+readhexstring pop}bd/@sm{/$ctm $ctm currentmatrix def}bd/@E{/Bbury xd/Bburx xd
+/Bblly xd/Bbllx xd}bd/@c{@cp}bd/@p{/$fil 1 def 1 eq dup/$vectpat xd{/$pfrg true
+def}{@gs $t $c $m $y $k $n $o @scc_5/$pfrg xd @gr}ifelse/$pm xd/$psy xd/$psx xd
+/$pyf xd/$pxf xd/$pn xd}bd/@P{/$fil 3 def/$Psn xd/$Psc xd array astore/$Prm xd
+}bd/@ii{concat 3 index 3 index m 3 index 1 index l 2 copy l 1 index 3 index l 3
+index 3 index l clip pop pop pop pop}bd/tcc{@cc}def/@i{@sm @gs @ii 6 index 1 ne
+{/$frg true def pop pop}{1 eq{s1t s1c s1m s1y s1k s1n $O @scc_5/$frg xd}{/$frg
+false def}ifelse 1 eq{@gs $ctm setmatrix F @gr}if}ifelse @np/$ury xd/$urx xd
+/$lly xd/$llx xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul 8 div ceiling cvi
+string def $bkg $frg or{$SDF{$SCF $SCA $SCP @ss}if $llx $lly Tl $urx $llx sub
+$ury $lly sub scale $bkg{$t $c $m $y $k $n $o @scc_5 pop}if $wid $hei abs $bts
+1 eq{$bkg}{$bts}ifelse[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]/tcc load
+$bts 1 eq{imagemask}{image}ifelse $SDF{$dsf $dsa $dsp @ss}if}{$hei abs{tcc pop}
+repeat}ifelse @gr $ctm setmatrix}bd/@I{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd
+/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div
+ceiling cvi string def $ngx $llx $lly Tl $urx $llx sub $ury $lly sub scale $wid
+$hei abs $bts[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]/@cc load false $ncl
+ColorImage $SDF{$dsf $dsa $dsp @ss}if @gr $ctm setmatrix}bd/COMP 0 def
+/MaskedImage false def L2?{/@I_2{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd/$llx
+xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling
+cvi string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq{/DeviceRGB}{/DeviceCMYK}
+ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub $ury $lly sub scale 8
+dict begin/ImageType 1 def/Width $wid def/Height $hei abs def/BitsPerComponent
+$bts def/Decode $ncl 1 eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]}
+ifelse}ifelse def/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def
+/DataSource currentfile/ASCII85Decode filter COMP 1 eq{/DCTDecode filter}{COMP
+2 eq{/RunLengthDecode filter}if}ifelse def currentdict end image $SDF{$dsf $dsa
+$dsp @ss}if @gr $ctm setmatrix}bd}{/@I_2{}bd}ifelse/@I_3{@sm @gs @ii @np/$ury
+xd/$urx xd/$lly xd/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul
+$ncl mul 8 div ceiling cvi string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq
+{/DeviceRGB}{/DeviceCMYK}ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub
+$ury $lly sub scale/ImageDataDict 8 dict def ImageDataDict begin/ImageType 1
+def/Width $wid def/Height $hei abs def/BitsPerComponent $bts def/Decode $ncl 1
+eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]}ifelse}ifelse def
+/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def/DataSource
+currentfile/ASCII85Decode filter COMP 1 eq{/DCTDecode filter}{COMP 2 eq{
+/RunLengthDecode filter}if}ifelse def end/MaskedImageDict 7 dict def
+MaskedImageDict begin/ImageType 3 def/InterleaveType 3 def/MaskDict
+ImageMaskDict def/DataDict ImageDataDict def end MaskedImageDict image $SDF
+{$dsf $dsa $dsp @ss}if @gr $ctm setmatrix}bd/@SetMask{/$mbts xd/$mhei xd/$mwid
+xd/ImageMaskDict 8 dict def ImageMaskDict begin/ImageType 1 def/Width $mwid def
+/Height $mhei abs def/BitsPerComponent $mbts def/DataSource maskstream def
+/ImageMatrix[$mwid 0 0 $mhei neg 0 $mhei 0 gt{$mhei}{0}ifelse]def/Decode[1 0]
+def end}bd/@B{@gs S @gr F}bd/@b{@cp @B}bd/@sep{CurrentInkName_5(Composite)eq
+{/$ink_5 -1 def}{CurrentInkName_5(Cyan)eq{/$ink_5 0 def}{CurrentInkName_5
+(Magenta)eq{/$ink_5 1 def}{CurrentInkName_5(Yellow)eq{/$ink_5 2 def}{
+CurrentInkName_5(Black)eq{/$ink_5 3 def}{/$ink_5 4 def}ifelse}ifelse}ifelse}
+ifelse}ifelse}bd/@whi{@gs -72000 dup m -72000 72000 l 72000 dup l 72000 -72000
+l @cp 1 SetGry fill @gr}bd/@neg{[{1 exch sub}/exec cvx currenttransfer/exec
+cvx]cvx settransfer @whi}bd/deflevel 0 def/@sax{/deflevel deflevel 1 add def}
+bd/@eax{/deflevel deflevel dup 0 gt{1 sub}if def deflevel 0 gt{/eax load}{eax}
+ifelse}bd/eax{{exec}forall}bd/@rax{deflevel 0 eq{@rs @sv}if}bd/@daq{dup type
+/arraytype eq{{}forall}if}bd/@BMP{/@cc xd UseLevel 3 eq MaskedImage true eq and
+{7 -2 roll pop pop @I_3}{12 index 1 gt UseLevel 2 eq UseLevel 3 eq or and{7 -2
+roll pop pop @I_2}{11 index 1 eq{12 -1 roll pop @i}{7 -2 roll pop pop @I}
+ifelse}ifelse}ifelse}bd systemdict/pdfmark known not{/pdfmark/cleartomark ld}
+if
+/z{exch findfont exch scalefont setfont}bd/ZB{9 dict dup begin 4 1 roll
+/FontType 3 def/FontMatrix xd/FontBBox xd/Encoding 256 array def 0 1 255{
+Encoding exch/.notdef put}for/CharStrings 256 dict def CharStrings/.notdef{}
+put/Metrics 256 dict def Metrics/.notdef 3 -1 roll put/BuildChar{exch dup
+/$char exch/Encoding get 3 index get def dup/Metrics get $char get aload pop
+setcachedevice begin Encoding exch get CharStrings exch get end exec}def end
+definefont pop}bd/ZBAddChar{findfont begin dup 4 1 roll dup 6 1 roll Encoding 3
+1 roll put CharStrings 3 1 roll put Metrics 3 1 roll put end}bd/Z{findfont dup
+maxlength 2 add dict exch dup{1 index/FID ne{3 index 3 1 roll put}{pop pop}
+ifelse}forall pop dup dup/Encoding get 256 array copy dup/$fe xd/Encoding exch
+put dup/Fontname 3 index put 3 -1 roll dup length 0 ne{0 exch{dup type 0 type
+eq{exch pop}{$fe exch 2 index exch put 1 add}ifelse}forall pop}if dup 256 dict
+dup/$met xd/Metrics exch put dup/FontMatrix get 0 get 1000 mul 1 exch div 3
+index length 256 eq{0 1 255{dup $fe exch get dup/.notdef eq{pop pop}{5 index 3
+-1 roll get 2 index mul $met 3 1 roll put}ifelse}for}if pop definefont pop pop
+}bd/@ftx{{currentpoint 3 -1 roll(0)dup 3 -1 roll 0 exch put dup @gs true
+charpath $ctm setmatrix @@txt @gr @np stringwidth pop 3 -1 roll add exch m}
+forall}bd/@ft{matrix currentmatrix exch $sdf{$scf $sca $scp @ss}if $fil 1 eq
+{/@@txt/@pf ld @ftx}{$fil 2 eq{/@@txt/@ff ld @ftx}{$fil 3 eq{/@@txt/@Pf ld
+@ftx}{$t $c $m $y $k $n $o @scc_5{show}{pop}ifelse}ifelse}ifelse}ifelse $sdf
+{$dsf $dsa $dsp @ss}if setmatrix}bd/@st{matrix currentmatrix exch $SDF{$SCF
+$SCA $SCP @ss}if $T $C $M $Y $K $N $O @scc_5{{currentpoint 3 -1 roll(0)dup 3 -1
+roll 0 exch put dup @gs true charpath $ctm setmatrix $ptm concat stroke @gr @np
+stringwidth pop 3 -1 roll add exch m}forall}{pop}ifelse $SDF{$dsf $dsa $dsp
+@ss}if setmatrix}bd/@te{@ft}bd/@tr{@st}bd/@ta{dup @gs @ft @gr @st}bd/@t@a{dup
+@gs @st @gr @ft}bd/@tm{@sm concat}bd/e{/t{@te}def}bd/r{/t{@tr}def}bd/o{/t{pop}
+def}bd/a{/t{@ta}def}bd/@a{/t{@t@a}def}bd/t{@te}def/T{@np $ctm setmatrix/$ttm
+matrix def}bd/ddt{t}def/@t{/$stm $stm currentmatrix def 3 1 roll m $ttm concat
+ddt $stm setmatrix}bd/@n{/$ttm exch matrix rotate def}bd/@s{}bd/@l{}bd
+end
+%%EndResource
+%%EndProlog
+%%BeginSetup
+wCorel8Dict begin
+@BeginSysCorelDict
+2.6131 setmiterlimit
+1.00 setflat
+/$fst 256 def
+%%EndSetup
+
+%%Page: 1 1
+%LogicalPage: 1
+%%BeginPageSetup
+@sv
+@sm
+@sv
+%%EndPageSetup
+@rax %Note: Object
+29.85335 518.65002 561.80353 728.45660 @E
+ 0 O 0 @g
+0.00 0.00 0.00 0.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 5.66929 5.66929 0.00000 @w
+/$fm 0 def
+295.82872 728.45660 m
+442.32265 728.45660 561.80353 681.33146 561.80353 623.55345 c
+561.80353 565.77458 442.32265 518.65002 295.82872 518.65002 c
+149.33424 518.65002 29.85335 565.77458 29.85335 623.55345 c
+29.85335 681.33146 149.33424 728.45660 295.82872 728.45660 c
+@c
+B
+
+@rax 82.51002 578.66967 509.14658 668.43666 @E
+[0.00028346 0.00000000 0.00000000 0.00028346 82.51001273 578.66964812] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Swis721BlkExBT 437905.00000 z
+%CHAR: 0 0 (B) @t
+157208 78896 m
+243986 78896 l
+263911 78896 276829 80720 282741 84443 c
+288652 88165 291645 94879 291645 104586 c
+291645 114512 288579 121446 282449 125168 c
+276318 128963 263473 130861 243986 130861 c
+157208 130861 L
+157208 78896 L
+@c
+157208 242234 m
+157208 197568 L
+239461 197568 l
+257269 197568 268801 199174 274129 202385 c
+279383 205596 282011 211362 282011 219828 c
+282011 228367 279602 234206 274712 237417 c
+269895 240629 258145 242234 239461 242234 c
+157208 242234 L
+@c
+289090 316240 m
+333246 316240 364556 310183 382875 297994 c
+401194 285806 410317 265589 410317 237345 c
+410317 221799 406741 208224 399661 196473 c
+392509 184796 381999 175308 368205 168083 C
+386451 162244 400172 152683 409441 139546 c
+418710 126336 423381 109914 423381 90208 c
+423381 60139 413528 37587 393896 22552 c
+374190 7517 344631 0 305147 0 c
+34667 0 L
+34667 316240 L
+289090 316240 l
+@c
+F
+%CHAR: 440970 0 (I) @t
+475637 0 m
+475637 316240 L
+598178 316240 L
+598178 0 L
+475637 0 L
+@c
+F
+%CHAR: 632334 0 (R) @t
+907703 316240 m
+935218 316240 957260 314927 973827 312299 c
+990321 309672 1003240 305585 1012509 299965 c
+1024332 293031 1033382 283616 1039586 271866 c
+1045789 260116 1048855 246541 1048855 231141 c
+1048855 212457 1044257 196035 1034988 181877 c
+1025719 167645 1012946 157427 996671 151150 C
+1010611 145311 1020464 138086 1026084 129474 c
+1031703 120862 1034988 105608 1036009 83786 c
+1036155 81377 1036301 78020 1036447 73787 c
+1038418 32405 1043965 9488 1053161 4890 C
+1053161 0 L
+916972 0 L
+912812 6715 910550 19633 910112 38901 c
+909820 50140 909309 58825 908579 64956 c
+907265 76560 903397 84662 896902 89333 c
+890479 94077 879604 96412 864351 96412 c
+791221 96412 L
+791221 0 L
+667001 0 L
+667001 316240 L
+907703 316240 l
+@c
+791221 179614 m
+862599 179614 l
+881283 179614 894493 181804 902083 186256 c
+909747 190635 913542 198079 913542 208443 c
+913542 218734 909966 225886 902740 229973 c
+895515 233987 881137 236031 859607 236031 c
+791221 236031 L
+791221 179614 L
+@c
+F
+%CHAR: 1066298 0 (D) @t
+1223506 238220 m
+1223506 84005 L
+1284448 84005 l
+1316196 84005 1338967 90062 1352688 102105 c
+1366482 114147 1373342 133853 1373342 161222 c
+1373342 188445 1366409 208078 1352469 220120 c
+1338602 232163 1315904 238220 1284448 238220 c
+1223506 238220 L
+@c
+1100965 316678 m
+1303643 316678 l
+1369255 316678 1419176 303176 1453552 276172 c
+1487928 249168 1505079 209756 1505079 158011 c
+1505079 106411 1488001 67145 1453771 40287 c
+1419541 13429 1369547 0 1303643 0 c
+1100965 0 L
+1100965 316678 L
+@c
+F
+T
+@rax %Note: Object
+202.57002 663.60898 462.94894 788.24381 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.21543 0.21543 0.00000 @w
+/$fm 0 def
+260.91354 727.66403 m
+284.90258 722.60872 308.89162 717.55398 332.88066 712.49783 C
+372.47783 785.04321 371.74762 810.24123 462.94894 768.46677 C
+412.01121 767.74422 394.34910 800.57197 337.90961 694.42894 c
+336.72728 692.20375 216.16299 742.15219 202.57002 663.60898 C
+200.58690 726.36633 231.68494 734.82888 260.91354 727.66403 C
+@c
+B
+
+@rax %Note: Object
+17.18787 478.84422 579.89707 569.31194 @E
+ 0 O 0 @g
+0.00 0.00 0.00 0.00 k
+/$fm 0 def
+17.18787 569.31194 m
+579.89707 569.31194 L
+579.89707 478.84422 L
+17.18787 478.84422 L
+17.18787 569.31194 L
+@c
+F
+
+@rax %Note: Object
+86.84816 567.50202 504.80901 567.50315 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 5.66929 5.66929 0.00000 @w
+/$fm 0 def
+86.84816 567.50258 m
+504.80901 567.50258 L
+S
+
+@rax %Note: Object
+86.84816 554.44139 504.80901 554.44252 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 5.66929 5.66929 0.00000 @w
+/$fm 0 def
+86.84816 554.44195 m
+504.80901 554.44195 L
+S
+
+@rax %Note: Object
+86.84816 541.70674 504.80901 541.70787 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 5.66929 5.66929 0.00000 @w
+/$fm 0 def
+86.84816 541.70731 m
+504.80901 541.70731 L
+S
+
+%%PageTrailer
+@rs
+@rs
+%%Trailer
+@EndSysCorelDict
+end
+%%DocumentSuppliedResources: procset wCorel8Dict
+%%EOF
diff --git a/doc/slides/obr1.eps b/doc/slides/obr1.eps
new file mode 100644
index 00000000..eb467cda
--- /dev/null
+++ b/doc/slides/obr1.eps
@@ -0,0 +1,2539 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 16 42 558 453
+%%Creator: CorelDRAW
+%%Title:
+%%CreationDate: Mon Jun 26 13:55:02 2000
+%%DocumentProcessColors: Black
+%%DocumentSuppliedResources: (atend)
+%%EndComments
+%%BeginProlog
+/AutoFlatness true def
+/AutoSteps 0 def
+/CMYKMarks true def
+/UseLevel2 false def
+%Color profile: Disabled
+%%BeginResource: procset wCorel6Dict 6.0 0
+% Copyright (c)1992-96 Corel Corporation
+% All rights reserved. v6.0 r1.1
+/wCorel6Dict 300 dict def wCorel6Dict begin/bd{bind def}bind def/ld{load def}
+bd/xd{exch def}bd/_ null def/rp{{pop}repeat}bd/@cp/closepath ld/@gs/gsave ld
+/@gr/grestore ld/@np/newpath ld/Tl/translate ld/$sv 0 def/@sv{/$sv save def}bd
+/@rs{$sv restore}bd/spg/showpage ld/showpage{}bd currentscreen/@dsp xd/$dsp
+/@dsp def/$dsa xd/$dsf xd/$sdf false def/$SDF false def/$Scra 0 def/SetScr
+/setscreen ld/setscreen{pop pop pop}bd/@ss{2 index 0 eq{$dsf 3 1 roll 4 -1 roll
+pop}if exch $Scra add exch load SetScr}bd/SepMode_5 where{pop}{/SepMode_5 0
+def}ifelse/CurrentInkName_5 where{pop}{/CurrentInkName_5(Composite)def}ifelse
+/$ink_5 where{pop}{/$ink_5 -1 def}ifelse/$c 0 def/$m 0 def/$y 0 def/$k 0 def
+/$t 1 def/$n _ def/$o 0 def/$fil 0 def/$C 0 def/$M 0 def/$Y 0 def/$K 0 def/$T 1
+def/$N _ def/$O 0 def/$PF false def/s1c 0 def/s1m 0 def/s1y 0 def/s1k 0 def
+/s1t 0 def/s1n _ def/$bkg false def/SK 0 def/SM 0 def/SY 0 def/SC 0 def/$op
+false def matrix currentmatrix/$ctm xd/$ptm matrix def/$ttm matrix def/$stm
+matrix def/$fst 128 def/$pad 0 def/$rox 0 def/$roy 0 def/$fmp 50 def/$ffpnt
+true def/CorelDrawReencodeVect[16#0/grave 16#5/breve 16#6/dotaccent 16#8/ring
+16#A/hungarumlaut 16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle
+16#60/grave 16#7C/bar
+16#82/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl
+16#88/circumflex/perthousand/Scaron/guilsinglleft/OE
+16#91/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash
+16#98/tilde/trademark/scaron/guilsinglright/oe 16#9F/Ydieresis
+16#A1/exclamdown/cent/sterling/currency/yen/brokenbar/section
+16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/minus/registered/macron
+16#b0/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
+16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
+16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
+16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
+16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
+16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
+16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/L2?/languagelevel where{pop languagelevel 2 ge}{false}ifelse def
+/@BeginSysCorelDict{systemdict/Corel30Dict known{systemdict/Corel30Dict get
+exec}if}bd/@EndSysCorelDict{systemdict/Corel30Dict known{end}if}bd AutoFlatness
+{/@ifl{dup currentflat exch sub 10 gt{
+([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator]\n)print flush
+@np exit}{currentflat 2 add setflat}ifelse}bd/@fill/fill ld/fill{currentflat{
+{@fill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@eofill/eofill ld/eofill
+{currentflat{{@eofill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@clip
+/clip ld/clip{currentflat{{@clip}stopped{@ifl}{exit}ifelse}bind loop setflat}
+bd/@eoclip/eoclip ld/eoclip{currentflat{{@eoclip}stopped{@ifl}{exit}ifelse}
+bind loop setflat}bd/@stroke/stroke ld/stroke{currentflat{{@stroke}stopped
+{@ifl}{exit}ifelse}bind loop setflat}bd}if L2?{/@ssa{true setstrokeadjust}bd}{
+/@ssa{}bd}ifelse/d/setdash ld/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit
+ld/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd/W/eoclip ld/c/curveto ld/C/c ld/l
+/lineto ld/L/l ld/rl/rlineto ld/m/moveto ld/n/newpath ld/N/newpath ld/P{11 rp}
+bd/u{}bd/U{}bd/A{pop}bd/q/@gs ld/Q/@gr ld/&{}bd/@j{@sv @np}bd/@J{@rs}bd/g{1
+exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def}bd/G{1
+sub neg/$K xd _ 1 0 0 0/$C xd/$M xd/$Y xd/$T xd/$N xd}bd/k{1 index type
+/stringtype eq{/$t xd/$n xd}{/$t 0 def/$n _ def}ifelse/$k xd/$y xd/$m xd/$c xd
+/$fil 0 def}bd/K{1 index type/stringtype eq{/$T xd/$N xd}{/$T 0 def/$N _ def}
+ifelse/$K xd/$Y xd/$M xd/$C xd}bd/x/k ld/X/K ld/sf{1 index type/stringtype eq{
+/s1t xd/s1n xd}{/s1t 0 def/s1n _ def}ifelse/s1k xd/s1y xd/s1m xd/s1c xd}bd/i{
+dup 0 ne{setflat}{pop}ifelse}bd/v{4 -2 roll 2 copy 6 -2 roll c}bd/V/v ld/y{2
+copy c}bd/Y/y ld/@w{matrix rotate/$ptm xd matrix scale $ptm dup concatmatrix
+/$ptm xd 1 eq{$ptm exch dup concatmatrix/$ptm xd}if 1 w}bd/@g{1 eq dup/$sdf xd
+{/$scp xd/$sca xd/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd/$SCA xd/$SCF xd}
+if}bd/@D{2 index 0 eq{$dsf 3 1 roll 4 -1 roll pop}if 3 copy exch $Scra add exch
+load SetScr/$dsp xd/$dsa xd/$dsf xd}bd/$ngx{$SDF{$SCF SepMode_5 0 eq{$SCA}
+{$dsa}ifelse $SCP @ss}if}bd/p{/$pm xd 7 rp/$pyf xd/$pxf xd/$pn xd/$fil 1 def}
+bd/@MN{2 copy le{pop}{exch pop}ifelse}bd/@MX{2 copy ge{pop}{exch pop}ifelse}bd
+/InRange{3 -1 roll @MN @MX}bd/wDstChck{2 1 roll dup 3 -1 roll eq{1 add}if}bd
+/@dot{dup mul exch dup mul add 1 exch sub}bd/@lin{exch pop abs 1 exch sub}bd
+/cmyk2rgb{3{dup 5 -1 roll add 1 exch sub dup 0 lt{pop 0}if exch}repeat pop}bd
+/rgb2cmyk{3{1 exch sub 3 1 roll}repeat 3 copy @MN @MN 3{dup 5 -1 roll sub neg
+exch}repeat}bd/rgb2g{2 index .299 mul 2 index .587 mul add 1 index .114 mul add
+4 1 roll pop pop pop}bd/WaldoColor_5 where{pop}{/SetRgb/setrgbcolor ld/GetRgb
+/currentrgbcolor ld/SetGry/setgray ld/GetGry/currentgray ld/SetRgb2 systemdict
+/setrgbcolor get def/GetRgb2 systemdict/currentrgbcolor get def/SetHsb
+systemdict/sethsbcolor get def/GetHsb systemdict/currenthsbcolor get def
+/rgb2hsb{SetRgb2 GetHsb}bd/hsb2rgb{3 -1 roll dup floor sub 3 1 roll SetHsb
+GetRgb2}bd/setcmykcolor where{pop/SetCmyk_5/setcmykcolor ld}{/SetCmyk_5{
+cmyk2rgb SetRgb}bd}ifelse/currentcmykcolor where{pop/GetCmyk/currentcmykcolor
+ld}{/GetCmyk{GetRgb rgb2cmyk}bd}ifelse/setoverprint where{pop}{/setoverprint{
+/$op xd}bd}ifelse/currentoverprint where{pop}{/currentoverprint{$op}bd}ifelse
+/@tc_5{5 -1 roll dup 1 ge{pop}{4{dup 6 -1 roll mul exch}repeat pop}ifelse}bd
+/@trp{exch pop 5 1 roll @tc_5}bd/setprocesscolor_5{SepMode_5 0 eq{SetCmyk_5}{0
+4 $ink_5 sub index exch pop 5 1 roll pop pop pop pop SepsColor true eq{$ink_5 3
+gt{1 sub neg SetGry}{0 0 0 4 $ink_5 roll SetCmyk_5}ifelse}{1 sub neg SetGry}
+ifelse}ifelse}bd/findcmykcustomcolor where{pop}{/findcmykcustomcolor{5 array
+astore}bd}ifelse/setcustomcolor where{pop}{/setcustomcolor{exch aload pop
+SepMode_5 0 eq{pop @tc_5 setprocesscolor_5}{CurrentInkName_5 eq{4 index}{0}
+ifelse 6 1 roll 5 rp 1 sub neg SetGry}ifelse}bd}ifelse/@scc_5{dup type
+/booleantype eq{setoverprint}{1 eq setoverprint}ifelse dup _ eq{pop
+setprocesscolor_5 pop}{findcmykcustomcolor exch setcustomcolor}ifelse SepMode_5
+0 eq{true}{GetGry 1 eq currentoverprint and not}ifelse}bd/colorimage where{pop
+/ColorImage{colorimage}def}{/ColorImage{/ncolors xd pop/dataaq xd{dataaq
+ncolors dup 3 eq{/$dat xd 0 1 $dat length 3 div 1 sub{dup 3 mul $dat 1 index
+get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div rgb2g
+255 mul cvi exch pop $dat 3 1 roll put}for $dat 0 $dat length 3 idiv
+getinterval pop}{4 eq{/$dat xd 0 1 $dat length 4 div 1 sub{dup 4 mul $dat 1
+index get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div
+$dat 4 index 3 add get 255 div cmyk2rgb rgb2g 255 mul cvi exch pop $dat 3 1
+roll put}for $dat 0 $dat length ncolors idiv getinterval}if}ifelse}image}bd
+}ifelse/setcmykcolor{1 5 1 roll _ currentoverprint @scc_5/$ffpnt xd}bd
+/currentcmykcolor{0 0 0 0}bd/setrgbcolor{rgb2cmyk setcmykcolor}bd
+/currentrgbcolor{currentcmykcolor cmyk2rgb}bd/sethsbcolor{hsb2rgb setrgbcolor}
+bd/currenthsbcolor{currentrgbcolor rgb2hsb}bd/setgray{dup dup setrgbcolor}bd
+/currentgray{currentrgbcolor rgb2g}bd}ifelse/WaldoColor_5 true def/@sft{$tllx
+$pxf add dup $tllx gt{$pwid sub}if/$tx xd $tury $pyf sub dup $tury lt{$phei
+add}if/$ty xd}bd/@stb{pathbbox/$ury xd/$urx xd/$lly xd/$llx xd}bd/@ep{{cvx exec
+}forall}bd/@tp{@sv/$in true def 2 copy dup $lly le{/$in false def}if $phei sub
+$ury ge{/$in false def}if dup $urx ge{/$in false def}if $pwid add $llx le{/$in
+false def}if $in{@np 2 copy m $pwid 0 rl 0 $phei neg rl $pwid neg 0 rl 0 $phei
+rl clip @np $pn cvlit load aload pop 7 -1 roll 5 index sub 7 -1 roll 3 index
+sub Tl matrix currentmatrix/$ctm xd @ep pop pop pop pop}{pop pop}ifelse @rs}bd
+/@th{@sft 0 1 $tly 1 sub{dup $psx mul $tx add{dup $llx gt{$pwid sub}{exit}
+ifelse}loop exch $phei mul $ty exch sub 0 1 $tlx 1 sub{$pwid mul 3 copy 3 -1
+roll add exch @tp pop}for pop pop}for}bd/@tv{@sft 0 1 $tlx 1 sub{dup $pwid mul
+$tx add exch $psy mul $ty exch sub{dup $ury lt{$phei add}{exit}ifelse}loop 0 1
+$tly 1 sub{$phei mul 3 copy sub @tp pop}for pop pop}for}bd/@pf{@gs $ctm
+setmatrix $pm concat @stb eoclip Bburx Bbury $pm itransform/$tury xd/$turx xd
+Bbllx Bblly $pm itransform/$tlly xd/$tllx xd/$wid $turx $tllx sub def/$hei
+$tury $tlly sub def @gs $vectpat{1 0 0 0 0 _ $o @scc_5{eofill}if}{$t $c $m $y
+$k $n $o @scc_5{SepMode_5 0 eq $pfrg or{$tllx $tlly Tl $wid $hei scale <00> 8 1
+false[8 0 0 1 0 0]{}imagemask}{/$bkg true def}ifelse}if}ifelse @gr $wid 0 gt
+$hei 0 gt and{$pn cvlit load aload pop/$pd xd 3 -1 roll sub/$phei xd exch sub
+/$pwid xd $wid $pwid div ceiling 1 add/$tlx xd $hei $phei div ceiling 1 add
+/$tly xd $psx 0 eq{@tv}{@th}ifelse}if @gr @np/$bkg false def}bd/@dlt_hsb{$fco
+nff ge{/$fco nff 1 sub def}if sub neg 2 div dup $fco div/kdb xd nff $fco sub
+div/kdb2 xd sub neg 2 div dup $fco div/kds xd nff $fco sub div/kds2 xd sub neg
+dup 0 eq{pop $frb 2 eq{.99}{-.99}ifelse}if dup $frb 2 eq exch 0 lt and{1 add}
+if dup $frb 1 eq exch 0 gt and{1 sub}if 2 div dup $fco div/kdh xd nff $fco sub
+div/kdh2 xd}bd/@dlt_cmyk{$fmp 50 eq{sub neg nff dup 1 gt{1 sub}if div/$dk xd
+sub neg nff dup 1 gt{1 sub}if div/$dy xd sub neg nff dup 1 gt{1 sub}if div/$dm
+xd sub neg nff dup 1 gt{1 sub}if div/$dc xd sub neg nff dup 1 gt{1 sub}if div
+/$dt xd}{$fco nff ge{/$fco nff 1 sub def}if sub neg 2 div dup $fco div/$dk xd
+nff $fco sub div/$dk2 xd sub neg 2 div dup $fco div/$dy xd nff $fco sub div
+/$dy2 xd sub neg 2 div dup $fco div/$dm xd nff $fco sub div/$dm2 xd sub neg 2
+div dup $fco div/$dc xd nff $fco sub div/$dc2 xd sub neg 2 div dup $fco div
+/$dt xd nff $fco sub div/$dt2 xd}ifelse}bd/@dlt{$fse $fss sub dup/nff xd $fmp
+mul $fmp add 100 div round cvi dup 0 le{pop 1}if/$fco xd/$fi 0 def $frb dup 1
+eq exch 2 eq or{$frt dup $frc $frm $fry $frk @tc_5 4 copy cmyk2rgb rgb2hsb 3
+copy/myb xd/mys xd/myh xd $tot $toc $tom $toy $tok @tc_5 cmyk2rgb rgb2hsb 3 1
+roll 4 1 roll 5 1 roll @dlt_hsb}{$frt dup $frc $frm $fry $frk @tc_5 5 copy $tot
+dup $toc $tom $toy $tok @tc_5 5 1 roll 6 1 roll 7 1 roll 8 1 roll 9 1 roll
+@dlt_cmyk}ifelse}bd/@ffnxt{/$fi $fi 1 add def $frb dup 1 eq exch 2 eq or{pop
+pop pop pop myh mys myb $fi $fco lt{kdb add 3 1 roll kds add 3 1 roll kdh add 3
+1 roll}{kdb2 add 3 1 roll kds2 add 3 1 roll kdh2 add 3 1 roll}ifelse 3 copy
+/myb xd/mys xd/myh xd hsb2rgb rgb2cmyk}{$fi $fco lt $fmp 50 eq or{$dk add 5 1
+roll $dy add 5 1 roll $dm add 5 1 roll $dc add 5 1 roll $dt add 5 1 roll}{$dk2
+add 5 1 roll $dy2 add 5 1 roll $dm2 add 5 1 roll $dc2 add 5 1 roll $dt2 add 5 1
+roll}ifelse}ifelse}bd/ffcol{5 copy $fsit 0 eq{setcmykcolor pop}{SepMode_5 0 ne
+{$frn findcmykcustomcolor exch setcustomcolor}{pop pop pop pop $frc $frm $fry
+$frk $frn findcmykcustomcolor exch setcustomcolor}ifelse}ifelse}bd/@ftl{1 index
+4 index sub dup $pad mul dup/$pdw xd 2 mul sub $fst div/$wid xd 2 index sub
+/$hei xd pop Tl @dlt $fss 0 eq{ffcol n 0 0 m 0 $hei l $pdw $hei l $pdw 0 l @cp
+$ffpnt{fill}{@np}ifelse}if $fss $wid mul $pdw add 0 Tl nff{ffcol n 0 0 m 0 $hei
+l $wid $hei l $wid 0 l @cp $ffpnt{fill}{@np}ifelse $wid 0 Tl @ffnxt}repeat 5 rp
+$tot dup $toc $tom $toy $tok @tc_5 ffcol n 0 0 m 0 $hei l $pdw $hei l $pdw 0 l
+@cp $ffpnt{fill}{@np}ifelse 5 rp}bd/@ftrs{1 index 4 index sub dup $rox mul
+/$row xd 2 div 1 index 4 index sub dup $roy mul/$roh xd 2 div 2 copy dup mul
+exch dup mul add sqrt $row dup mul $roh dup mul add sqrt add dup/$hei xd $fst
+div/$wid xd 4 index add $roh add exch 5 index add $row add exch Tl $fan rotate
+pop pop pop pop @dlt $fss 0 eq{ffcol $fty 3 eq{$hei dup neg dup m 2 mul @sqr}{
+0 0 m 0 0 $hei 0 360 arc}ifelse $ffpnt{fill}{@np}ifelse}if 1.0 $pad 2 mul sub
+dup scale $hei $fss $wid mul sub/$hei xd nff{ffcol $fty 3 eq{n $hei dup neg dup
+m 2 mul @sqr}{n 0 0 m 0 0 $hei 0 360 arc}ifelse $ffpnt{fill}{@np}ifelse/$hei
+$hei $wid sub def @ffnxt}repeat 5 rp}bd/@ftc{1 index 4 index sub dup $rox mul
+/$row xd 2 div 1 index 4 index sub dup $roy mul/$roh xd 2 div 2 copy dup mul
+exch dup mul add sqrt $row dup mul $roh dup mul add sqrt add dup/$hei xd $fst
+div/$wid xd 4 index add $roh add exch 5 index add $row add exch Tl pop pop pop
+pop @dlt $fss 0 eq{ffcol $ffpnt{fill}{@np}ifelse}{n}ifelse/$dang 180 $fst 1 sub
+div def/$sang $dang -2 div 180 add def/$eang $dang 2 div 180 add def/$sang
+$sang $dang $fss mul add def/$eang $eang $dang $fss mul add def/$sang $eang
+$dang sub def nff{ffcol n 0 0 m 0 0 $hei $sang $fan add $eang $fan add arc
+$ffpnt{fill}{@np}ifelse 0 0 m 0 0 $hei $eang neg $fan add $sang neg $fan add
+arc $ffpnt{fill}{@np}ifelse/$sang $eang def/$eang $eang $dang add def @ffnxt}
+repeat 5 rp}bd/@fstAdjust{72 0 matrix defaultmatrix dtransform exch dup mul
+exch dup mul add sqrt currentscreen pop pop div dup mul 1 add cvi 2 256 InRange
+$fsc 1 sub dup 0 le{pop 1}if mul/opt$fst xd AutoSteps dup 1 eq exch 3 eq or{
+opt$fst dup dup $fst dup 3 1 roll div exch 3 -1 roll gt{/$adj xd/$fst xd}{pop
+pop}ifelse}if AutoSteps dup 2 eq exch 3 eq or{opt$fst dup dup $fst dup 3 1 roll
+div exch 3 -1 roll lt{/$adj xd/$fst xd}{pop pop}ifelse}if}bd/@ff{/old$fst $fst
+def/$adj 1 def/$fss 0 def $o 1 eq setoverprint AutoSteps 0 gt{@fstAdjust}if 1 1
+$fsc 1 sub{dup 1 sub $fsit 0 eq{$fsa exch 5 mul 5 getinterval aload pop pop
+/$frk xd/$fry xd/$frm xd/$frc xd/$frn _ def/$frt 1 def $fsa exch 5 mul 5
+getinterval aload pop $adj mul cvi $fss add/$fse xd/$tok xd/$toy xd/$tom xd
+/$toc xd/$ton _ def/$tot 1 def}{$fsa exch 7 mul 7 getinterval aload pop pop
+/$frt xd/$frn xd/$frk xd/$fry xd/$frm xd/$frc xd $fsa exch 7 mul 7 getinterval
+aload pop $adj mul cvi $fss add/$fse xd/$tot xd/$ton xd/$tok xd/$toy xd/$tom xd
+/$toc xd}ifelse $fsit 0 eq SepMode_5 0 eq or dup not CurrentInkName_5 $frn eq
+and or{@sv $ctm setmatrix eoclip Bbllx Bblly Bburx Bbury $fty 2 eq{@ftc}{1
+index 3 index m 2 copy l 3 index 1 index l 3 index 3 index l @cp $fty dup 1 eq
+exch 3 eq or{@ftrs}{pop pop pop pop $fan rotate pathbbox @ftl}ifelse}ifelse @rs
+/$fss $fse def}{1 0 0 0 0 _ $o @scc_5{fill}if}ifelse}for @np/$fst old$fst def}
+bd/@Pf{@sv SepMode_5 0 eq $Psc 0 ne or $ink_5 3 eq or{0 J 0 j[]0 d $t $c $m $y
+$k $n $o @scc_5 pop $ctm setmatrix 72 1000 div dup matrix scale dup concat dup
+Bburx exch Bbury exch itransform ceiling cvi/Bbury xd ceiling cvi/Bburx xd
+Bbllx exch Bblly exch itransform floor cvi/Bblly xd floor cvi/Bbllx xd $Prm
+aload pop $Psn load exec}{1 SetGry eofill}ifelse @rs @np}bd/F{matrix
+currentmatrix $sdf{$scf $sca $scp @ss}if $fil 1 eq{@pf}{$fil 2 eq{@ff}{$fil 3
+eq{@Pf}{$t $c $m $y $k $n $o @scc_5{eofill}{@np}ifelse}ifelse}ifelse}ifelse
+$sdf{$dsf $dsa $dsp @ss}if setmatrix}bd/f{@cp F}bd/S{matrix currentmatrix $ctm
+setmatrix $SDF{$SCF $SCA $SCP @ss}if $T $C $M $Y $K $N $O @scc_5{matrix
+currentmatrix $ptm concat stroke setmatrix}{@np}ifelse $SDF{$dsf $dsa $dsp
+@ss}if setmatrix}bd/s{@cp S}bd/B{@gs F @gr S}bd/b{@cp B}bd/_E{5 array astore
+exch cvlit xd}bd/@cc{currentfile $dat readhexstring pop}bd/@sm{/$ctm $ctm
+currentmatrix def}bd/@E{/Bbury xd/Bburx xd/Bblly xd/Bbllx xd}bd/@c{@cp}bd/@p{
+/$fil 1 def 1 eq dup/$vectpat xd{/$pfrg true def}{@gs $t $c $m $y $k $n $o
+@scc_5/$pfrg xd @gr}ifelse/$pm xd/$psy xd/$psx xd/$pyf xd/$pxf xd/$pn xd}bd/@P
+{/$fil 3 def/$Psn xd/$Psc xd array astore/$Prm xd}bd/@k{/$fil 2 def/$fmp xd
+/$roy xd/$rox xd/$pad xd/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$frb xd/$fst
+xd/$fsc xd/$fsa xd/$fsit 0 def}bd/@x{/$fil 2 def/$fmp xd/$roy xd/$rox xd/$pad
+xd/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$frb xd/$fst xd/$fsc xd/$fsa xd
+/$fsit 1 def}bd/@ii{concat 3 index 3 index m 3 index 1 index l 2 copy l 1 index
+3 index l 3 index 3 index l clip pop pop pop pop}bd/tcc{@cc}def/@i{@sm @gs @ii
+6 index 1 ne{/$frg true def pop pop}{1 eq{s1t s1c s1m s1y s1k s1n $O @scc_5
+/$frg xd}{/$frg false def}ifelse 1 eq{@gs $ctm setmatrix F @gr}if}ifelse @np
+/$ury xd/$urx xd/$lly xd/$llx xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul 8
+div ceiling cvi string def $bkg $frg or{$SDF{$SCF $SCA $SCP @ss}if $llx $lly Tl
+$urx $llx sub $ury $lly sub scale $bkg{$t $c $m $y $k $n $o @scc_5 pop}if $wid
+$hei abs $bts 1 eq{$bkg}{$bts}ifelse[$wid 0 0 $hei neg 0 $hei 0
+gt{$hei}{0}ifelse]/tcc load $bts 1 eq{imagemask}{image}ifelse $SDF{$dsf $dsa
+$dsp @ss}if}{$hei abs{tcc pop}repeat}ifelse @gr $ctm setmatrix}bd/@I{@sm @gs
+@ii @np/$ury xd/$urx xd/$lly xd/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat
+$wid $bts mul $ncl mul 8 div ceiling cvi string def $ngx $llx $lly Tl $urx $llx
+sub $ury $lly sub scale $wid $hei abs $bts[$wid 0 0 $hei neg 0 $hei 0
+gt{$hei}{0}ifelse]/@cc load false $ncl ColorImage $SDF{$dsf $dsa $dsp @ss}if
+@gr $ctm setmatrix}bd L2?{/@I_2{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd/$llx xd
+/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling cvi
+string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq{/DeviceRGB}{/DeviceCMYK}
+ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub $ury $lly sub scale 8
+dict begin/ImageType 1 def/Width $wid def/Height $hei abs def/BitsPerComponent
+$bts def/Decode $ncl 1 eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]}
+ifelse}ifelse def/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def
+/DataSource currentfile/ASCII85Decode filter def currentdict end image $SDF
+{$dsf $dsa $dsp @ss}if @gr $ctm setmatrix}bd}{/@I_2{}bd}ifelse/z{exch findfont
+exch scalefont setfont}bd/ZB{9 dict dup begin 4 1 roll/FontType 3 def
+/FontMatrix xd/FontBBox xd/Encoding 256 array def 0 1 255{Encoding exch
+/.notdef put}for/CharStrings 256 dict def CharStrings/.notdef{}put/Metrics 256
+dict def Metrics/.notdef 3 -1 roll put/BuildChar{exch dup/$char exch/Encoding
+get 3 index get def dup/Metrics get $char get aload pop setcachedevice begin
+Encoding exch get CharStrings exch get end exec}def end definefont pop}bd
+/ZBAddChar{findfont begin dup 4 1 roll dup 6 1 roll Encoding 3 1 roll put
+CharStrings 3 1 roll put Metrics 3 1 roll put end}bd/Z{findfont dup maxlength 2
+add dict exch dup{1 index/FID ne{3 index 3 1 roll put}{pop pop}ifelse}forall
+pop dup dup/Encoding get 256 array copy dup/$fe xd/Encoding exch put dup
+/Fontname 3 index put 3 -1 roll dup length 0 ne{0 exch{dup type 0 type eq{exch
+pop}{$fe exch 2 index exch put 1 add}ifelse}forall pop}if dup 256 dict dup
+/$met xd/Metrics exch put dup/FontMatrix get 0 get 1000 mul 1 exch div 3 index
+length 256 eq{0 1 255{dup $fe exch get dup/.notdef eq{pop pop}{5 index 3 -1
+roll get 2 index mul $met 3 1 roll put}ifelse}for}if pop definefont pop pop}bd
+/@ftx{{currentpoint 3 -1 roll(0)dup 3 -1 roll 0 exch put dup @gs true charpath
+$ctm setmatrix @@txt @gr @np stringwidth pop 3 -1 roll add exch m}forall}bd
+/@ft{matrix currentmatrix exch $sdf{$scf $sca $scp @ss}if $fil 1 eq{/@@txt/@pf
+ld @ftx}{$fil 2 eq{/@@txt/@ff ld @ftx}{$fil 3 eq{/@@txt/@Pf ld @ftx}{$t $c $m
+$y $k $n $o @scc_5{show}{pop}ifelse}ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp
+@ss}if setmatrix}bd/@st{matrix currentmatrix exch $SDF{$SCF $SCA $SCP @ss}if $T
+$C $M $Y $K $N $O @scc_5{{currentpoint 3 -1 roll(0)dup 3 -1 roll 0 exch put dup
+@gs true charpath $ctm setmatrix $ptm concat stroke @gr @np stringwidth pop 3
+-1 roll add exch m}forall}{pop}ifelse $SDF{$dsf $dsa $dsp @ss}if setmatrix}bd
+/@te{@ft}bd/@tr{@st}bd/@ta{dup @gs @ft @gr @st}bd/@t@a{dup @gs @st @gr @ft}bd
+/@tm{@sm concat}bd/e{/t{@te}def}bd/r{/t{@tr}def}bd/o{/t{pop}def}bd/a{/t{@ta}
+def}bd/@a{/t{@t@a}def}bd/t{@te}def/T{@np $ctm setmatrix/$ttm matrix def}bd/ddt
+{t}def/@t{/$stm $stm currentmatrix def 3 1 roll m $ttm concat ddt $stm
+setmatrix}bd/@n{/$ttm exch matrix rotate def}bd/@s{}bd/@l{}bd/@B{@gs S @gr F}
+bd/@b{@cp @B}bd/@sep{CurrentInkName_5(Composite)eq{/$ink_5 -1 def}{
+CurrentInkName_5(Cyan)eq{/$ink_5 0 def}{CurrentInkName_5(Magenta)eq{/$ink_5 1
+def}{CurrentInkName_5(Yellow)eq{/$ink_5 2 def}{CurrentInkName_5(Black)eq
+{/$ink_5 3 def}{/$ink_5 4 def}ifelse}ifelse}ifelse}ifelse}ifelse}bd/@whi{@gs
+-72000 dup m -72000 72000 l 72000 dup l 72000 -72000 l @cp 1 SetGry fill @gr}
+bd/@neg{[{1 exch sub}/exec cvx currenttransfer/exec cvx]cvx settransfer @whi}
+bd/currentscale{1 0 dtransform matrix defaultmatrix idtransform dup mul exch
+dup mul add sqrt 0 1 dtransform matrix defaultmatrix idtransform dup mul exch
+dup mul add sqrt}bd/@unscale{}bd/@smc{CMYKMarks{0 exch eq{1 1 1 1 1 _ 0 @scc_5
+pop}{1 0 0 0 0 _ 0 @scc_5 pop}ifelse}{SetGry}ifelse}bd/@gmc{CMYKMarks{GetCmyk
+pop pop pop 1 eq{0}{1}ifelse}{GetGry}ifelse}bd/@sqr{dup 0 rl dup 0 exch rl neg
+0 rl @cp}bd/corelsym{@gs @np Tl -90 rotate 7{45 rotate -.75 2 m 1.5 @sqr fill}
+repeat @gr}bd/@reg_cor{@gs @np Tl -6 -6 m 12 @sqr @gs 1 @gmc sub @smc fill @gr
+4{90 rotate 0 4 m 0 4 rl}repeat stroke 0 0 corelsym @gr}bd/@reg_std{@gs @np Tl
+.3 w 0 0 5 0 360 arc @cp @gs 1 @gmc sub @smc fill @gr 4{90 rotate 0 0 m 0 8 rl
+}repeat stroke @gr}bd/@reg_inv{@gs @np Tl .3 w 0 0 5 0 360 arc @cp @gs 1 @gmc
+sub @smc fill @gr 4{90 rotate 0 0 m 0 8 rl}repeat stroke 0 0 m 0 0 5 90 180 arc
+@cp 0 0 5 270 360 arc @cp fill @gr}bd/@reg_sqr{@gs @np Tl .3 w -7 -7 m 14 @sqr
+fill @gs 1 @gmc sub @smc 0 0 5 0 360 arc @cp save fill restore 4{90 rotate 0 0
+m 0 8 rl}repeat stroke @gr 4{90 rotate 0 0 m 0 5 rl}repeat stroke @gr}bd
+/@reg_lng{@gs @np 0 eq{/$Xlen 16 def/$Ylen 8 def}{/$Xlen 8 def/$Ylen 16 def}
+ifelse Tl .3 w 0 0 5 0 360 arc @cp @gs 1 @gmc sub @smc fill @gr 90 rotate 0 0 m
+0 $Xlen rl 90 rotate 0 0 m 0 $Ylen rl 90 rotate 0 0 m 0 $Xlen rl 90 rotate 0 0
+m 0 $Ylen rl stroke @gr}bd/@setdcol{0 $dcol eq{0 exch 1 exch sub 0 0 0 _ 0
+@scc_5 pop}{1 $dcol eq{0 exch 0 exch 1 exch sub 0 0 _ 0 @scc_5 pop}{2 $dcol eq
+{0 exch 0 exch 0 exch 1 exch sub 0 _ 0 @scc_5 pop}{SetGry}ifelse}ifelse}ifelse
+}bd/$corelmeter[1 .95 .75 .50 .25 .05 0]def/@colormeter{@gs @np 0 @setdcol 0.3
+w/Courier findfont 5 scalefont setfont/yy xd/xx xd 0 1 6{dup xx 20 sub yy m 20
+@sqr @gs $corelmeter exch get dup @setdcol fill @gr stroke xx 18 sub yy 2 add m
+exch dup 3 ge{1 SetGry}{0 @setdcol}ifelse 3 eq{pop}{100 mul 100 exch sub cvi 20
+string cvs show}ifelse/yy yy 20 add def}for @gr}bd/@calbar{@gs Tl @gs @np 0 0 m
+@gs 20 @sqr 1 1 0 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1 0 1
+0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 0 0 1 0 _ 0 @scc_5 pop
+fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 0 1 1 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0
+0 m @gs 20 @sqr 1 0 1 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1
+1 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1 1 1 0 _ 0 @scc_5
+pop fill @gr @gr @np -84 0 Tl @gs 0 0 m 20 @sqr clip 1 1 0 0 0 _ 0 @scc_5 pop
+@gain @gr 20 0 Tl @gs 0 0 m 20 @sqr clip 1 0 1 0 0 _ 0 @scc_5 pop @gain @gr 20
+0 Tl @gs 0 0 m 20 @sqr clip 1 0 0 1 0 _ 0 @scc_5 pop @gain @gr 20 0 Tl @gs 0 0
+m 20 @sqr clip 1 0 0 0 1 _ 0 @scc_5 pop @gain @gr @gr}bd/@gain{10 10 Tl @np 0 0
+m 0 10 360{0 0 15 4 -1 roll dup 5 add arc @cp}for fill}bd/@crop{@gs 10 div
+/$croplen xd .3 w 0 @smc Tl rotate 0 0 m 0 $croplen neg rl stroke @gr}bd
+/deflevel 0 def/@sax{/deflevel deflevel 1 add def}bd/@eax{/deflevel deflevel
+dup 0 gt{1 sub}if def deflevel 0 gt{/eax load}{eax}ifelse}bd/eax{{exec}forall}
+bd/@rax{deflevel 0 eq{@rs @sv}if}bd/@daq{dup type/arraytype eq{{}forall}if}bd
+/@BMP{/@cc xd 12 index 1 gt UseLevel2 true eq and{7 -2 roll pop pop @I_2}{11
+index 1 eq{12 -1 roll pop @i}{7 -2 roll pop pop @I}ifelse}ifelse}bd systemdict
+/pdfmark known not{/pdfmark/cleartomark ld}if/@BeginEPS{$ngx 0 SetGry 0 J 0 j 1
+w[]0 d 10 M false setoverprint @np/EPSDict 200 dict def EPSDict begin @sv
+SepMode_5 0 ne{/colorimage{@gs/sepdict 50 dict def sepdict begin[{1 exch sub}
+/exec cvx currenttransfer/exec cvx]cvx settransfer 3 eq/$rgb xd{$rgb{/daq0 xd
+/daq1 xd/daq2 xd/daq_rgb load}{/daq0 xd/daq1 xd/daq2 xd/daq3 xd/daq_cmyk load}
+ifelse}{/daq0 xd/daq_one load}ifelse 2 index 8 eq/8bit xd $ink_5 dup 0 lt exch
+3 gt or{}{image}ifelse end @gr}bd/2cmyk{3{255 exch sub 3 1 roll}repeat 3 copy
+@MN @MN 3{dup 5 -1 roll sub neg exch}repeat}bd/daq_rgb{/i 0 def/daq2 load exec
+/daq1 load exec/daq0 load exec dup dup length 0 exch getinterval/$data xd{8bit
+{1 index i get 3 index i get 2cmyk 4 $ink_5 neg roll pop pop pop}{pop 0}ifelse
+$data i 3 -1 roll put/i i 1 add def}forall pop pop $data}bd/daq_cmyk{/daq3 load
+exec/daq2 load exec/daq1 load exec/daq0 load exec 4 $ink_5 neg roll pop pop pop
+}bd/daq_one{/$in 0 def/$out 0 def/daq0 load exec dup dup length $rgb{3}{4}
+ifelse idiv 0 exch getinterval/$data xd $data{pop 8bit{$rgb{0 index $in 2 add
+get 1 index $in 1 add get 2 index $in get 2cmyk}{0 index $in get 1 index $in 1
+add get 2 index $in 2 add get 3 index $in 3 add get}ifelse 4 $ink_5 neg roll
+pop pop pop}{0}ifelse $data $out 3 -1 roll put/$in $in $rgb{3}{4}ifelse add def
+/$out $out 1 add def}forall pop $data}bd}if}bd/@EndEPS{@rs end}bd end
+%%EndResource
+%%EndProlog
+%%BeginSetup
+wCorel6Dict begin
+@BeginSysCorelDict
+2.6131 setmiterlimit
+1.00 setflat
+/$fst 128 def
+%%EndSetup
+
+%%Page: 1 1
+%LogicalPage: 1
+%%BeginPageSetup
+@sv
+@sm
+@sv
+%%EndPageSetup
+@rax %Note: Object
+83.97014 259.95969 114.68438 290.67392 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+99.32712 290.67392 m
+107.78542 290.67392 114.68438 283.77496 114.68438 275.31666 c
+114.68438 266.85836 107.78542 259.95969 99.32712 259.95969 c
+90.86882 259.95969 83.97014 266.85836 83.97014 275.31666 c
+83.97014 283.77496 90.86882 290.67392 99.32712 290.67392 c
+@c
+S
+
+@rax %Note: Object
+279.32825 232.53874 310.04277 263.25326 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+294.68551 263.25326 m
+303.14381 263.25326 310.04277 256.35430 310.04277 247.89600 c
+310.04277 239.43770 303.14381 232.53874 294.68551 232.53874 c
+286.22721 232.53874 279.32825 239.43770 279.32825 247.89600 c
+279.32825 256.35430 286.22721 263.25326 294.68551 263.25326 c
+@c
+S
+
+@rax %Note: Object
+230.18513 281.09282 260.89937 311.80706 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+245.54239 311.80706 m
+254.00069 311.80706 260.89937 304.90838 260.89937 296.45008 c
+260.89937 287.99178 254.00069 281.09282 245.54239 281.09282 c
+237.08409 281.09282 230.18513 287.99178 230.18513 296.45008 c
+230.18513 304.90838 237.08409 311.80706 245.54239 311.80706 c
+@c
+S
+
+@rax %Note: Object
+65.86441 334.92841 196.39956 420.47603 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+131.13213 420.47603 m
+167.07997 420.47603 196.39956 401.26110 196.39956 377.70208 c
+196.39956 354.14334 167.07997 334.92841 131.13213 334.92841 c
+95.18372 334.92841 65.86441 354.14334 65.86441 377.70208 c
+65.86441 401.26110 95.18372 420.47603 131.13213 420.47603 c
+@c
+S
+
+@rax %Note: Object
+18.25739 132.23424 148.79254 217.78186 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+83.52510 217.78186 m
+119.47323 217.78186 148.79254 198.56693 148.79254 175.00791 c
+148.79254 151.44917 119.47323 132.23424 83.52510 132.23424 c
+47.57698 132.23424 18.25739 151.44917 18.25739 175.00791 c
+18.25739 198.56693 47.57698 217.78186 83.52510 217.78186 c
+@c
+S
+
+@rax %Note: Object
+358.41742 313.34910 488.95257 398.89672 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+423.68513 398.89672 m
+459.63298 398.89672 488.95257 379.68180 488.95257 356.12277 c
+488.95257 332.56375 459.63298 313.34910 423.68513 313.34910 c
+387.73672 313.34910 358.41742 332.56375 358.41742 356.12277 c
+358.41742 379.68180 387.73672 398.89672 423.68513 398.89672 c
+@c
+S
+
+@rax %Note: Object
+42.92561 103.02831 63.38098 123.48369 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+46.98283 123.48369 m
+63.38098 119.42646 L
+59.32375 103.02831 L
+42.92561 107.08554 L
+46.98283 123.48369 L
+@c
+S
+
+@rax %Note: Object
+54.59528 121.55641 58.20066 136.12791 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+54.59528 121.55641 m
+58.20066 136.12791 L
+S
+
+@rax %Note: Object
+62.18079 416.13307 85.60488 439.55717 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+85.60488 425.49761 m
+71.54532 416.13307 L
+62.18079 430.19263 L
+76.24035 439.55717 L
+85.60488 425.49761 L
+@c
+S
+
+@rax %Note: Object
+79.04551 408.68646 87.36690 421.17987 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+79.04551 421.17987 m
+87.36690 408.68646 L
+S
+
+@rax %Note: Object
+111.04526 103.96715 132.91540 125.83729 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+111.04526 119.70907 m
+126.78718 125.83729 L
+132.91540 110.09537 L
+117.17348 103.96715 L
+111.04526 119.70907 L
+@c
+S
+
+@rax %Note: Object
+112.93285 122.51820 118.37849 136.50661 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+118.37849 122.51820 m
+112.93285 136.50661 L
+S
+
+@rax %Note: Object
+77.10151 100.53014 93.99402 117.42293 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+77.10151 117.42293 m
+93.99402 117.42293 L
+93.99402 100.53014 L
+77.10151 100.53014 L
+77.10151 117.42293 L
+@c
+S
+
+@rax %Note: Object
+84.95348 117.38041 84.95461 132.39128 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+84.95405 117.38041 m
+84.95405 132.39128 L
+S
+
+@rax %Note: Object
+100.99531 431.86224 121.27776 452.14441 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+121.27776 435.69156 m
+104.82463 431.86224 L
+100.99531 448.31509 L
+117.44844 452.14441 L
+121.27776 435.69156 L
+@c
+S
+
+@rax %Note: Object
+113.61997 419.33254 117.02268 433.95307 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+113.61997 433.95307 m
+117.02268 419.33254 L
+S
+
+@rax %Note: Object
+144.97342 431.85288 165.03959 451.91906 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+161.48863 431.85288 m
+144.97342 435.40384 L
+148.52438 451.91906 L
+165.03959 448.36809 L
+161.48863 431.85288 L
+@c
+S
+
+@rax %Note: Object
+150.66510 418.86964 153.82063 433.54517 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+153.82063 433.54517 m
+150.66510 418.86964 L
+S
+
+@rax %Note: Object
+180.05528 414.07427 203.45272 437.47172 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+194.16699 414.07427 m
+180.05528 423.36028 L
+189.34101 437.47172 L
+203.45272 428.18598 L
+194.16699 414.07427 L
+@c
+S
+
+@rax %Note: Object
+179.37921 405.88668 187.63058 418.42658 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+187.63058 418.42658 m
+179.37921 405.88668 L
+S
+
+@rax %Note: Object
+459.08447 400.93455 481.57483 423.42491 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+474.35811 400.93455 m
+459.08447 408.15156 L
+466.30148 423.42491 L
+481.57483 416.20791 L
+474.35811 400.93455 L
+@c
+S
+
+@rax %Note: Object
+460.86321 390.75562 467.27631 404.32791 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+467.27631 404.32791 m
+460.86321 390.75562 L
+S
+
+@rax %Note: Object
+407.76208 412.44350 426.30180 430.98293 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+426.30180 414.17972 m
+409.49830 412.44350 L
+407.76208 429.24671 L
+424.56557 430.98293 L
+426.30180 414.17972 L
+@c
+S
+
+@rax %Note: Object
+418.48639 398.48343 420.02901 413.41493 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+418.48639 413.41493 m
+420.02901 398.48343 L
+S
+
+@rax %Note: Object
+499.01301 362.19969 520.42876 383.61543 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+504.42718 362.19969 m
+499.01301 378.20098 L
+515.01430 383.61543 L
+520.42876 367.61386 L
+504.42718 362.19969 L
+@c
+S
+
+@rax %Note: Object
+487.73169 364.84044 501.95083 369.65169 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+501.95083 369.65169 m
+487.73169 364.84044 L
+S
+
+@rax %Note: Object
+184.11392 307.48762 233.84268 353.20224 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+184.11392 353.20224 m
+233.84268 307.48762 L
+S
+
+@rax %Note: Object
+255.22157 256.54649 281.77880 284.62989 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+255.22157 284.62989 m
+281.77880 256.54649 L
+S
+
+@rax %Note: Object
+259.40409 303.75553 363.04441 339.20787 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+259.40409 303.75553 m
+363.04441 339.20787 L
+S
+
+@rax %Note: Object
+304.48517 259.90696 373.26898 328.01244 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+304.48517 259.90696 m
+373.26898 328.01244 L
+S
+
+@rax %Note: Object
+97.20510 216.99099 97.66998 260.37326 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+97.66998 260.37326 m
+97.20510 216.99099 L
+S
+
+@rax %Note: Object
+99.52894 291.16063 111.61247 336.87553 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+99.52894 291.16063 m
+111.61247 336.87553 L
+S
+
+@rax 298.00573 52.50643 381.29613 176.63839 @E
+[0.00028346 0.00000000 0.00000000 0.00028346 304.50528020 174.93193061] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 63499.00000 z
+%CHAR: 0 -57480 (1) @t
+23657 -57480 m
+18073 -57480 L
+18073 -21918 L
+16729 -23198 14961 -24486 12785 -25767 c
+10609 -27047 8640 -28007 6912 -28647 C
+6912 -23254 L
+10032 -21790 12761 -20006 15097 -17926 c
+17433 -15838 19089 -13806 20057 -11846 C
+23657 -11846 L
+23657 -57480 L
+@c
+F
+%CHAR: 133264 -57480 (c) @t
+158937 -45415 m
+164417 -46135 L
+163825 -49912 162281 -52880 159817 -55016 c
+157353 -57160 154313 -58232 150713 -58232 c
+146217 -58232 142592 -56760 139856 -53816 c
+137120 -50872 135744 -46639 135744 -41143 c
+135744 -37591 136336 -34479 137504 -31815 c
+138680 -29151 140480 -27143 142880 -25815 c
+145289 -24486 147913 -23814 150745 -23814 c
+154321 -23814 157249 -24718 159521 -26527 c
+161793 -28335 163249 -30903 163889 -34231 C
+158465 -35071 L
+157953 -32863 157033 -31191 155721 -30079 c
+154409 -28959 152817 -28399 150961 -28399 c
+148153 -28399 145865 -29407 144113 -31423 c
+142360 -33439 141480 -36631 141480 -40991 c
+141480 -45407 142328 -48632 144017 -50632 c
+145713 -52632 147929 -53640 150657 -53640 c
+152841 -53640 154673 -52968 156137 -51624 c
+157609 -50280 158545 -48208 158929 -45423 C
+158937 -45415 L
+@c
+F
+%CHAR: 0 -128552 (2) @t
+31970 -123192 m
+31962 -128552 L
+1920 -128552 L
+1880 -127216 2096 -125920 2568 -124680 c
+3336 -122632 4560 -120616 6240 -118632 c
+7920 -116647 10360 -114351 13545 -111751 c
+18481 -107703 21825 -104487 23553 -102127 c
+25289 -99759 26161 -97519 26161 -95414 c
+26161 -93206 25369 -91334 23793 -89814 c
+22209 -88294 20145 -87534 17609 -87534 c
+14921 -87534 12769 -88342 11161 -89950 c
+9544 -91566 8728 -93806 8712 -96654 C
+2976 -96062 L
+3360 -91790 4840 -88526 7400 -86286 c
+9960 -84046 13409 -82918 17729 -82918 c
+22089 -82918 25545 -84126 28081 -86542 c
+30625 -88958 31898 -91966 31898 -95534 c
+31898 -97351 31521 -99143 30785 -100895 c
+30041 -102655 28801 -104511 27081 -106447 c
+25353 -108391 22481 -111063 18473 -114447 c
+15129 -117255 12969 -119168 12025 -120168 c
+11081 -121168 10288 -122184 9672 -123192 C
+31970 -123192 L
+@c
+F
+%CHAR: 133264 -128552 (l) @t
+137328 -128552 m
+137320 -83102 L
+142904 -83102 L
+142904 -128552 L
+137328 -128552 L
+@c
+F
+%CHAR: 147368 -128552 (o) @t
+149480 -112087 m
+149480 -105991 151168 -101471 154560 -98543 c
+157392 -96110 160849 -94886 164913 -94886 c
+169441 -94886 173145 -96374 176009 -99335 c
+178881 -102295 180322 -106399 180322 -111623 c
+180322 -115863 179682 -119200 178417 -121624 c
+177145 -124056 175289 -125944 172865 -127288 c
+170441 -128632 167785 -129304 164913 -129304 c
+160305 -129304 156576 -127824 153736 -124872 c
+150896 -121912 149472 -117647 149472 -112095 C
+149480 -112087 L
+@c
+155208 -112087 m
+155208 -116303 156128 -119464 157969 -121560 c
+159809 -123656 162129 -124712 164913 -124712 c
+167681 -124712 169985 -123656 171825 -121552 c
+173665 -119440 174585 -116223 174585 -111903 c
+174585 -107839 173657 -104751 171809 -102655 c
+169961 -100559 167657 -99503 164913 -99503 c
+162129 -99503 159809 -100551 157969 -102631 c
+156128 -104719 155208 -107879 155208 -112095 C
+155208 -112087 L
+@c
+F
+%CHAR: 182680 -128552 (c) @t
+208353 -116487 m
+213833 -117207 L
+213241 -120984 211697 -123952 209233 -126088 c
+206769 -128232 203729 -129304 200129 -129304 c
+195633 -129304 192008 -127832 189272 -124888 c
+186536 -121944 185160 -117711 185160 -112215 c
+185160 -108663 185752 -105551 186920 -102887 c
+188096 -100223 189896 -98215 192296 -96887 c
+194705 -95558 197329 -94886 200161 -94886 c
+203737 -94886 206665 -95790 208937 -97599 c
+211209 -99407 212665 -101975 213305 -105303 C
+207881 -106143 L
+207369 -103935 206449 -102263 205137 -101151 c
+203825 -100031 202233 -99471 200377 -99471 c
+197569 -99471 195281 -100479 193529 -102495 c
+191776 -104511 190896 -107703 190896 -112063 c
+190896 -116479 191744 -119704 193433 -121704 c
+195129 -123704 197345 -124712 200073 -124712 c
+202257 -124712 204089 -124040 205553 -122696 c
+207025 -121352 207961 -119280 208345 -116495 C
+208353 -116487 L
+@c
+F
+%CHAR: 214432 -128552 (a) @t
+240105 -124488 m
+238041 -126248 236041 -127496 234137 -128216 c
+232225 -128936 230169 -129304 227977 -129304 c
+224360 -129304 221576 -128416 219640 -126656 c
+217696 -124888 216720 -122624 216720 -119872 c
+216720 -118264 217088 -116783 217816 -115455 c
+218552 -114127 219520 -113047 220704 -112247 c
+221888 -111447 223232 -110831 224720 -110415 c
+225817 -110127 227473 -109847 229681 -109583 c
+234185 -109047 237505 -108399 239633 -107655 C
+239649 -106895 239665 -106407 239665 -106199 c
+239665 -103927 239137 -102327 238089 -101399 c
+236665 -100135 234537 -99503 231729 -99503 c
+229105 -99503 227169 -99967 225921 -100879 c
+224672 -101799 223736 -103431 223144 -105767 C
+217680 -105023 L
+218176 -102687 218992 -100799 220128 -99367 c
+221264 -97927 222920 -96815 225065 -96046 c
+227209 -95278 229705 -94886 232537 -94886 c
+235345 -94886 237633 -95222 239385 -95878 c
+241145 -96534 242441 -97375 243265 -98375 c
+244089 -99375 244673 -100647 245001 -102167 c
+245185 -103119 245281 -104839 245281 -107319 c
+245281 -114759 l
+245281 -119944 245401 -123232 245633 -124600 c
+245873 -125976 246346 -127296 247050 -128552 C
+241217 -128552 L
+240641 -127400 240257 -126040 240097 -124496 C
+240105 -124488 L
+@c
+239641 -112023 m
+237609 -112855 234569 -113559 230521 -114135 c
+228233 -114463 226601 -114839 225657 -115247 c
+224704 -115663 223960 -116271 223448 -117063 c
+222936 -117863 222672 -118752 222672 -119720 c
+222672 -121208 223240 -122448 224360 -123440 c
+225489 -124432 227145 -124928 229313 -124928 c
+231457 -124928 233377 -124456 235049 -123520 c
+236721 -122576 237953 -121288 238737 -119656 c
+239329 -118400 239633 -116535 239633 -114079 c
+239641 -112023 L
+@c
+F
+%CHAR: 249744 -128552 (l) @t
+253808 -128552 m
+253800 -83102 L
+259384 -83102 L
+259384 -128552 L
+253808 -128552 L
+@c
+F
+%CHAR: 0 -199624 (3) @t
+2664 -187623 m
+8240 -186887 L
+8880 -190048 9976 -192328 11513 -193720 c
+13049 -195112 14937 -195816 17145 -195816 c
+19769 -195816 21985 -194904 23793 -193088 c
+25601 -191272 26505 -189015 26505 -186327 c
+26505 -183767 25665 -181647 23993 -179983 c
+22321 -178319 20185 -177487 17609 -177487 c
+16553 -177487 15241 -177695 13673 -178111 C
+14289 -173215 L
+14657 -173247 14961 -173271 15185 -173271 c
+17561 -173271 19705 -172647 21601 -171415 c
+23505 -170175 24457 -168255 24457 -165678 c
+24457 -163630 23761 -161934 22385 -160590 c
+21001 -159246 19209 -158574 17017 -158574 c
+14849 -158574 13033 -159262 11593 -160622 c
+10152 -161982 9216 -164038 8800 -166758 C
+3224 -165766 L
+3896 -162030 5448 -159126 7864 -157078 c
+10280 -155022 13297 -153990 16897 -153990 c
+19377 -153990 21665 -154526 23745 -155582 c
+25833 -156646 27433 -158102 28537 -159942 c
+29641 -161782 30193 -163734 30193 -165798 c
+30193 -167766 29665 -169559 28617 -171167 c
+27561 -172775 25993 -174063 23929 -175007 C
+26617 -175631 28705 -176919 30193 -178871 c
+31681 -180823 32426 -183271 32426 -186199 c
+32426 -190168 30977 -193536 28089 -196288 c
+25193 -199048 21529 -200432 17113 -200432 c
+13129 -200432 9808 -199240 7176 -196872 c
+4544 -194496 3032 -191408 2664 -187631 c
+2664 -187623 L
+@c
+F
+%CHAR: 133264 -199624 (b) @t
+142600 -199624 m
+137416 -199624 L
+137416 -154174 L
+142992 -154174 L
+142992 -170391 L
+145345 -167438 148361 -165958 152017 -165958 c
+154041 -165958 155961 -166366 157769 -167182 c
+159577 -167999 161065 -169151 162233 -170623 c
+163401 -172095 164321 -173887 164977 -175967 c
+165634 -178055 165970 -180295 165970 -182671 c
+165970 -188311 164569 -192680 161785 -195752 c
+159001 -198832 155641 -200376 151737 -200376 c
+147857 -200376 144801 -198752 142592 -195504 C
+142600 -199624 L
+@c
+142536 -182911 m
+142536 -186863 143072 -189720 144145 -191472 c
+145897 -194344 148281 -195784 151273 -195784 c
+153705 -195784 155817 -194720 157593 -192608 c
+159369 -190488 160265 -187327 160265 -183135 c
+160265 -178839 159409 -175663 157713 -173615 c
+156009 -171567 153937 -170543 151521 -170543 c
+149089 -170543 146977 -171607 145201 -173719 c
+143424 -175839 142528 -178911 142528 -182919 C
+142536 -182911 L
+@c
+F
+%CHAR: 0 -270696 (A) @t
+-104 -270696 m
+17361 -225246 L
+23841 -225246 L
+42442 -270696 L
+35594 -270696 L
+30289 -256935 L
+11281 -256935 L
+6288 -270696 L
+-104 -270696 L
+@c
+13025 -252031 m
+28425 -252031 L
+23681 -239447 l
+22241 -235622 21161 -232478 20457 -230022 C
+19881 -232934 19065 -235830 18009 -238702 c
+13025 -252031 L
+@c
+F
+%CHAR: 136800 -270696 (3) @t
+139464 -258695 m
+145040 -257959 L
+145680 -261120 146776 -263400 148313 -264792 c
+149849 -266184 151737 -266888 153945 -266888 c
+156569 -266888 158785 -265976 160593 -264160 c
+162401 -262344 163305 -260087 163305 -257399 c
+163305 -254839 162465 -252719 160793 -251055 c
+159121 -249391 156985 -248559 154409 -248559 c
+153353 -248559 152041 -248767 150473 -249183 C
+151089 -244287 L
+151457 -244319 151761 -244343 151985 -244343 c
+154361 -244343 156505 -243719 158401 -242487 c
+160305 -241247 161257 -239327 161257 -236750 c
+161257 -234702 160561 -233006 159185 -231662 c
+157801 -230318 156009 -229646 153817 -229646 c
+151649 -229646 149833 -230334 148393 -231694 c
+146952 -233054 146016 -235110 145600 -237830 C
+140024 -236838 L
+140696 -233102 142248 -230198 144664 -228150 c
+147080 -226094 150097 -225062 153697 -225062 c
+156177 -225062 158465 -225598 160545 -226654 c
+162633 -227718 164233 -229174 165337 -231014 c
+166441 -232854 166993 -234806 166993 -236870 c
+166993 -238838 166465 -240631 165417 -242239 c
+164361 -243847 162793 -245135 160729 -246079 C
+163417 -246703 165505 -247991 166993 -249943 c
+168481 -251895 169226 -254343 169226 -257271 c
+169226 -261240 167777 -264608 164889 -267360 c
+161993 -270120 158329 -271504 153913 -271504 c
+149929 -271504 146608 -270312 143976 -267944 c
+141344 -265568 139832 -262480 139464 -258703 c
+139464 -258695 L
+@c
+F
+%CHAR: 0 -341768 (B) @t
+4648 -341768 m
+4648 -296318 L
+21697 -296318 l
+25169 -296318 27953 -296782 30049 -297694 c
+32146 -298614 33802 -300038 34986 -301942 c
+36170 -303854 36770 -305862 36770 -307942 c
+36770 -309886 36242 -311719 35194 -313431 c
+34138 -315143 32538 -316535 30409 -317591 C
+33162 -318391 35282 -319775 36754 -321711 c
+38226 -323647 38970 -325951 38970 -328591 c
+38970 -330719 38522 -332712 37626 -334536 c
+36730 -336360 35610 -337776 34290 -338768 c
+32970 -339760 31305 -340512 29313 -341008 c
+27321 -341512 24873 -341768 21977 -341768 c
+4648 -341768 L
+@c
+10665 -315415 m
+20489 -315415 l
+23153 -315415 25073 -315239 26225 -314887 c
+27753 -314439 28913 -313679 29681 -312631 c
+30457 -311575 30849 -310247 30849 -308654 c
+30849 -307150 30481 -305822 29761 -304678 c
+29041 -303526 28001 -302734 26665 -302318 c
+25321 -301894 23009 -301678 19745 -301678 c
+10665 -301678 L
+10665 -315415 L
+@c
+10665 -336408 m
+21977 -336408 l
+23921 -336408 25289 -336336 26073 -336192 c
+27449 -335944 28609 -335528 29537 -334952 c
+30465 -334376 31241 -333528 31834 -332424 c
+32434 -331320 32738 -330039 32738 -328591 c
+32738 -326903 32298 -325431 31433 -324183 c
+30569 -322935 29361 -322047 27825 -321543 c
+26289 -321039 24065 -320783 21169 -320783 c
+10665 -320783 L
+10665 -336408 L
+@c
+F
+%CHAR: 140304 -341768 (a) @t
+165977 -337704 m
+163913 -339464 161913 -340712 160009 -341432 c
+158097 -342152 156041 -342520 153849 -342520 c
+150232 -342520 147448 -341632 145512 -339872 c
+143568 -338104 142592 -335840 142592 -333088 c
+142592 -331480 142960 -329999 143688 -328671 c
+144424 -327343 145392 -326263 146576 -325463 c
+147760 -324663 149104 -324047 150592 -323631 c
+151689 -323343 153345 -323063 155553 -322799 c
+160057 -322263 163377 -321615 165505 -320871 C
+165521 -320111 165537 -319623 165537 -319415 c
+165537 -317143 165009 -315543 163961 -314615 c
+162537 -313351 160409 -312719 157601 -312719 c
+154977 -312719 153041 -313183 151793 -314095 c
+150544 -315015 149608 -316647 149016 -318983 C
+143552 -318239 L
+144048 -315903 144864 -314015 146000 -312583 c
+147136 -311143 148792 -310031 150937 -309262 c
+153081 -308494 155577 -308102 158409 -308102 c
+161217 -308102 163505 -308438 165257 -309094 c
+167017 -309750 168313 -310591 169137 -311591 c
+169961 -312591 170545 -313863 170873 -315383 c
+171057 -316335 171153 -318055 171153 -320535 c
+171153 -327975 l
+171153 -333160 171273 -336448 171505 -337816 c
+171745 -339192 172218 -340512 172922 -341768 C
+167089 -341768 L
+166513 -340616 166129 -339256 165969 -337712 C
+165977 -337704 L
+@c
+165513 -325239 m
+163481 -326071 160441 -326775 156393 -327351 c
+154105 -327679 152473 -328055 151529 -328463 c
+150576 -328879 149832 -329487 149320 -330279 c
+148808 -331079 148544 -331968 148544 -332936 c
+148544 -334424 149112 -335664 150232 -336656 c
+151361 -337648 153017 -338144 155185 -338144 c
+157329 -338144 159249 -337672 160921 -336736 c
+162593 -335792 163825 -334504 164609 -332872 c
+165201 -331616 165505 -329751 165505 -327295 c
+165513 -325239 L
+@c
+F
+%CHAR: 0 -412840 (C) @t
+37330 -396903 m
+43338 -398423 L
+42082 -403368 39810 -407136 36538 -409728 c
+33266 -412320 29257 -413616 24521 -413616 c
+19625 -413616 15641 -412616 12577 -410624 c
+9504 -408632 7168 -405736 5568 -401959 c
+3968 -398183 3160 -394111 3160 -389775 c
+3160 -385047 4064 -380910 5872 -377390 c
+7680 -373870 10256 -371182 13593 -369358 c
+16929 -367534 20609 -366614 24617 -366614 c
+29161 -366614 32986 -367774 36082 -370086 c
+39186 -372398 41354 -375662 42570 -379854 C
+36642 -381247 L
+35594 -377942 34058 -375526 32058 -374022 c
+30057 -372518 27529 -371758 24489 -371758 c
+21001 -371758 18073 -372598 15729 -374270 c
+13385 -375942 11729 -378198 10785 -381014 c
+9840 -383831 9360 -386751 9360 -389743 c
+9360 -393607 9928 -396983 11049 -399863 c
+12169 -402744 13929 -404904 16305 -406328 c
+18681 -407752 21257 -408472 24025 -408472 c
+27393 -408472 30249 -407496 32586 -405560 c
+34922 -403616 36506 -400727 37330 -396903 C
+@c
+F
+%CHAR: 143808 -412840 (1) @t
+167465 -412840 m
+161881 -412840 L
+161881 -377278 L
+160537 -378558 158769 -379846 156593 -381127 c
+154417 -382407 152448 -383367 150720 -384007 C
+150720 -378614 L
+153840 -377150 156569 -375366 158905 -373286 c
+161241 -371198 162897 -369166 163865 -367206 C
+167465 -367206 L
+167465 -412840 L
+@c
+F
+T
+@rax 298.00573 52.50643 381.29613 176.63839 @E
+[0.00028346 0.00000000 0.00000000 0.00028346 304.50528020 174.93193061] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/MTExtra 63499.00000 z
+%CHAR: 52952 -57480 (a) @t
+57712 -43511 m
+57712 -57736 L
+54536 -57736 L
+54536 -25726 L
+57712 -25726 L
+57712 -39951 L
+106539 -39951 L
+105314 -38727 103586 -36783 101362 -34143 c
+99138 -31503 97242 -29199 95682 -27255 C
+97906 -25030 L
+102130 -30071 107451 -35639 113843 -41735 C
+107451 -47832 102130 -53400 97906 -58432 C
+95682 -56216 L
+100802 -49824 104426 -45583 106539 -43511 C
+57712 -43511 L
+@c
+F
+%CHAR: 52952 -128552 (a) @t
+57712 -114583 m
+57712 -128808 L
+54536 -128808 L
+54536 -96798 L
+57712 -96798 L
+57712 -111023 L
+106539 -111023 L
+105314 -109799 103586 -107855 101362 -105215 c
+99138 -102575 97242 -100271 95682 -98327 C
+97906 -96102 L
+102130 -101143 107451 -106711 113843 -112807 C
+107451 -118904 102130 -124472 97906 -129504 C
+95682 -127288 L
+100802 -120896 104426 -116655 106539 -114583 C
+57712 -114583 L
+@c
+F
+%CHAR: 52952 -199624 (a) @t
+57712 -185655 m
+57712 -199880 L
+54536 -199880 L
+54536 -167870 L
+57712 -167870 L
+57712 -182095 L
+106539 -182095 L
+105314 -180871 103586 -178927 101362 -176287 c
+99138 -173647 97242 -171343 95682 -169399 C
+97906 -167174 L
+102130 -172215 107451 -177783 113843 -183879 C
+107451 -189976 102130 -195544 97906 -200576 C
+95682 -198360 L
+100802 -191968 104426 -187727 106539 -185655 C
+57712 -185655 L
+@c
+F
+%CHAR: 56488 -270696 (a) @t
+61248 -256727 m
+61248 -270952 L
+58072 -270952 L
+58072 -238942 L
+61248 -238942 L
+61248 -253167 L
+110075 -253167 L
+108850 -251943 107122 -249999 104898 -247359 c
+102674 -244719 100778 -242415 99218 -240471 C
+101442 -238246 L
+105666 -243287 110987 -248855 117379 -254951 C
+110987 -261048 105666 -266616 101442 -271648 C
+99218 -269432 L
+104338 -263040 107962 -258799 110075 -256727 C
+61248 -256727 L
+@c
+F
+%CHAR: 59992 -341768 (a) @t
+64752 -327799 m
+64752 -342024 L
+61576 -342024 L
+61576 -310014 L
+64752 -310014 L
+64752 -324239 L
+113579 -324239 L
+112354 -323015 110626 -321071 108402 -318431 c
+106178 -315791 104282 -313487 102722 -311543 C
+104946 -309318 L
+109170 -314359 114491 -319927 120883 -326023 C
+114491 -332120 109170 -337688 104946 -342720 C
+102722 -340504 L
+107842 -334112 111466 -329871 113579 -327799 C
+64752 -327799 L
+@c
+F
+%CHAR: 63496 -412840 (a) @t
+68256 -398871 m
+68256 -413096 L
+65080 -413096 L
+65080 -381086 L
+68256 -381086 L
+68256 -395311 L
+117083 -395311 L
+115858 -394087 114130 -392143 111906 -389503 c
+109682 -386863 107786 -384559 106226 -382615 C
+108450 -380390 L
+112674 -385431 117995 -390999 124387 -397095 C
+117995 -403192 112674 -408760 108450 -413792 C
+106226 -411576 L
+111346 -405184 114970 -400943 117083 -398871 C
+68256 -398871 L
+@c
+F
+T
+@rax 413.35115 55.92019 553.73272 208.51654 @E
+[0.00028346 0.00000000 0.00000000 0.00028346 419.85069330 205.98632317] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_LucidaConsole 42333.00000 z
+%CHAR: 0 -33408 (P) @t
+4716 -33408 m
+4716 -6890 L
+13331 -6890 l
+16403 -6890 18599 -7166 19907 -7718 c
+22582 -8876 23920 -11114 23920 -14413 c
+23920 -17197 22840 -19381 20687 -20965 c
+18527 -22549 15551 -23341 11765 -23341 c
+8789 -23341 L
+8789 -33408 L
+4716 -33408 L
+@c
+8789 -20281 m
+11327 -20281 l
+16841 -20281 19601 -18349 19601 -14497 c
+19601 -12877 19079 -11708 18041 -11006 c
+16997 -10304 15263 -9950 12839 -9950 c
+8789 -9950 L
+8789 -20281 L
+@c
+F
+%CHAR: 25530 -33408 (o) @t
+38285 -33930 m
+34991 -33930 32400 -32880 30522 -30798 c
+28644 -28710 27702 -25837 27702 -22189 c
+27702 -18553 28650 -15685 30534 -13597 c
+32418 -11510 35009 -10466 38285 -10466 c
+41573 -10466 44165 -11510 46043 -13597 c
+47926 -15685 48868 -18553 48868 -22189 c
+48868 -25837 47926 -28710 46049 -30792 c
+44165 -32880 41573 -33924 38285 -33924 C
+38285 -33930 L
+@c
+38285 -30864 m
+40241 -30864 41771 -30096 42869 -28572 c
+43973 -27048 44525 -24913 44525 -22189 c
+44525 -19477 43973 -17347 42875 -15823 c
+41771 -14293 40241 -13525 38285 -13525 c
+36329 -13525 34799 -14293 33701 -15817 c
+32597 -17347 32046 -19477 32046 -22189 c
+32046 -24913 32597 -27048 33695 -28572 c
+34799 -30096 36329 -30864 38285 -30864 c
+@c
+F
+%CHAR: 51060 -33408 (k) @t
+55464 -33408 m
+55464 -770 L
+59537 -770 L
+59537 -21667 L
+68957 -10958 L
+73366 -10958 L
+64481 -21055 L
+75616 -33408 L
+70115 -33408 L
+59537 -21667 L
+59537 -33408 L
+55464 -33408 L
+@c
+F
+%CHAR: 76590 -33408 (u) @t
+98332 -10958 m
+98332 -33408 L
+94259 -33408 L
+94259 -29196 L
+92387 -32346 89825 -33924 86585 -33924 c
+82350 -33924 80226 -31386 80226 -26323 c
+80226 -10958 L
+84299 -10958 L
+84299 -25207 l
+84299 -26970 84569 -28224 85103 -28956 c
+85637 -29688 86555 -30060 87851 -30060 c
+89891 -30060 92027 -28584 94259 -25639 C
+94259 -10958 L
+98332 -10958 L
+@c
+F
+%CHAR: 102120 -33408 (d) @t
+120311 -33408 m
+120311 -29196 L
+118325 -32346 115865 -33924 112949 -33924 c
+110417 -33924 108414 -32940 106950 -30972 c
+105486 -29004 104748 -26317 104748 -22933 c
+104748 -19213 105618 -16201 107352 -13909 c
+109086 -11618 111359 -10466 114167 -10466 c
+116579 -10466 118631 -11486 120311 -13525 C
+120311 -770 L
+124384 -770 L
+124384 -33408 L
+120311 -33408 L
+@c
+120311 -16585 m
+118409 -14545 116543 -13525 114731 -13525 c
+112943 -13525 111551 -14311 110567 -15883 c
+109583 -17455 109092 -19669 109092 -22519 c
+109092 -27792 110669 -30432 113819 -30432 c
+116117 -30432 118283 -28998 120311 -26137 C
+120311 -16585 L
+@c
+F
+%CHAR: 153180 -33408 (c) @t
+175984 -32682 m
+173573 -33510 171167 -33924 168767 -33924 c
+164855 -33924 161837 -32904 159726 -30870 c
+157614 -28830 156552 -25933 156552 -22189 c
+156552 -18511 157596 -15631 159684 -13567 c
+161771 -11504 164675 -10466 168395 -10466 c
+170765 -10466 173159 -10826 175570 -11546 C
+175570 -14953 L
+172913 -14005 170639 -13525 168767 -13525 c
+166319 -13525 164387 -14299 162995 -15841 c
+161597 -17383 160895 -19501 160895 -22189 c
+160895 -24901 161645 -27024 163133 -28560 c
+164627 -30096 166697 -30864 169325 -30864 c
+171293 -30864 173519 -30402 175984 -29484 C
+175984 -32682 L
+@c
+F
+%CHAR: 204240 -33408 (n) @t
+208002 -33408 m
+208002 -10958 L
+212075 -10958 L
+212075 -15181 L
+213947 -12038 216497 -10466 219725 -10466 c
+223985 -10466 226114 -12997 226114 -18055 c
+226114 -33408 L
+222041 -33408 L
+222041 -19171 l
+222041 -17419 221765 -16171 221225 -15439 c
+220679 -14701 219761 -14329 218483 -14329 c
+216443 -14329 214307 -15799 212075 -18739 C
+212075 -33408 L
+208002 -33408 L
+@c
+F
+%CHAR: 229770 -33408 (e) @t
+252472 -32520 m
+249647 -33456 247049 -33924 244697 -33924 c
+240839 -33924 237869 -32928 235800 -30948 c
+233724 -28968 232686 -26125 232686 -22435 c
+232686 -18955 233682 -16081 235668 -13837 c
+237659 -11594 240197 -10466 243269 -10466 c
+246365 -10466 248657 -11396 250121 -13255 c
+251590 -15115 252328 -18013 252328 -21937 c
+252328 -23239 L
+237029 -23239 L
+237329 -28320 240071 -30864 245255 -30864 c
+247445 -30864 249857 -30342 252472 -29298 C
+252472 -32520 L
+@c
+237155 -20179 m
+247985 -20179 L
+247985 -19603 l
+247985 -15553 246293 -13525 242915 -13525 c
+241295 -13525 239969 -14113 238961 -15283 c
+237947 -16453 237341 -18091 237149 -20179 C
+237155 -20179 L
+@c
+F
+%CHAR: 255300 -33408 (f) @t
+264479 -33408 m
+264479 -14539 L
+258360 -14539 L
+258360 -11480 L
+264479 -11480 L
+264479 -9104 l
+264479 -5966 265211 -3704 266669 -2324 c
+268127 -944 270527 -254 273863 -254 c
+276065 -254 278158 -554 280126 -1148 C
+280126 -4370 L
+278116 -3668 276125 -3314 274169 -3314 c
+272093 -3314 270629 -3710 269801 -4502 c
+268973 -5294 268553 -6692 268553 -8672 c
+268553 -11480 L
+279280 -11480 L
+279280 -14539 L
+268553 -14539 L
+268553 -33408 L
+264479 -33408 L
+@c
+F
+%CHAR: 280830 -33408 (u) @t
+302572 -10958 m
+302572 -33408 L
+298499 -33408 L
+298499 -29196 L
+296627 -32346 294065 -33924 290825 -33924 c
+286590 -33924 284466 -31386 284466 -26323 c
+284466 -10958 L
+288539 -10958 L
+288539 -25207 l
+288539 -26970 288809 -28224 289343 -28956 c
+289877 -29688 290795 -30060 292091 -30060 c
+294131 -30060 296267 -28584 298499 -25639 C
+298499 -10958 L
+302572 -10958 L
+@c
+F
+%CHAR: 306360 -33408 (n) @t
+310122 -33408 m
+310122 -10958 L
+314195 -10958 L
+314195 -15181 L
+316067 -12038 318617 -10466 321845 -10466 c
+326105 -10466 328234 -12997 328234 -18055 c
+328234 -33408 L
+324161 -33408 L
+324161 -19171 l
+324161 -17419 323885 -16171 323345 -15439 c
+322799 -14701 321881 -14329 320603 -14329 c
+318563 -14329 316427 -15799 314195 -18739 C
+314195 -33408 L
+310122 -33408 L
+@c
+F
+%CHAR: 331890 -33408 (g) @t
+336276 -40919 m
+336708 -37482 L
+339143 -38514 341417 -39030 343505 -39030 c
+347861 -39030 350039 -36954 350039 -32814 c
+350231 -28758 L
+348521 -31854 346043 -33408 342803 -33408 c
+340241 -33408 338202 -32430 336696 -30486 c
+335190 -28536 334434 -25903 334434 -22597 c
+334434 -19003 335310 -16075 337056 -13825 c
+338808 -11570 341081 -10442 343877 -10442 c
+346067 -10442 348227 -11474 350351 -13525 C
+350351 -10958 L
+354178 -10958 L
+354178 -28926 l
+354178 -31830 353986 -34026 353602 -35490 c
+353218 -36954 352487 -38256 351425 -39384 c
+349733 -41183 347075 -42089 343469 -42089 c
+341345 -42089 338946 -41693 336276 -40913 C
+336276 -40919 L
+@c
+350105 -25447 m
+350105 -16621 L
+348269 -14557 346373 -13519 344417 -13519 c
+342641 -13519 341255 -14293 340265 -15835 c
+339275 -17377 338778 -19543 338778 -22327 c
+338778 -24679 339215 -26526 340079 -27852 c
+340943 -29184 342161 -29850 343715 -29850 c
+346127 -29850 348257 -28380 350105 -25453 C
+350105 -25447 L
+@c
+F
+%CHAR: 357420 -33408 (u) @t
+379162 -10958 m
+379162 -33408 L
+375089 -33408 L
+375089 -29196 L
+373217 -32346 370655 -33924 367415 -33924 c
+363180 -33924 361056 -31386 361056 -26323 c
+361056 -10958 L
+365129 -10958 L
+365129 -25207 l
+365129 -26970 365399 -28224 365933 -28956 c
+366467 -29688 367385 -30060 368681 -30060 c
+370721 -30060 372857 -28584 375089 -25639 C
+375089 -10958 L
+379162 -10958 L
+@c
+F
+%CHAR: 382950 -33408 (j) @t
+386010 -41003 m
+386010 -37590 L
+388128 -38550 390233 -39036 392309 -39036 c
+394043 -39036 395237 -38598 395873 -37728 c
+396515 -36852 396839 -35226 396839 -32856 c
+396839 -14017 L
+387660 -14017 L
+387660 -10958 L
+400913 -10958 L
+400913 -32028 l
+400913 -35514 400223 -38064 398855 -39666 c
+397487 -41267 395297 -42071 392309 -42071 c
+390353 -42071 388254 -41711 386010 -40997 C
+386010 -41003 L
+@c
+396323 -5876 m
+396323 -770 L
+401429 -770 L
+401429 -5876 L
+396323 -5876 L
+@c
+F
+%CHAR: 408480 -33408 (e) @t
+431182 -32520 m
+428357 -33456 425759 -33924 423407 -33924 c
+419549 -33924 416579 -32928 414510 -30948 c
+412434 -28968 411396 -26125 411396 -22435 c
+411396 -18955 412392 -16081 414378 -13837 c
+416369 -11594 418907 -10466 421979 -10466 c
+425075 -10466 427367 -11396 428831 -13255 c
+430300 -15115 431038 -18013 431038 -21937 c
+431038 -23239 L
+415739 -23239 L
+416039 -28320 418781 -30864 423965 -30864 c
+426155 -30864 428567 -30342 431182 -29298 C
+431182 -32520 L
+@c
+415865 -20179 m
+426695 -20179 L
+426695 -19603 l
+426695 -15553 425003 -13525 421625 -13525 c
+420005 -13525 418679 -14113 417671 -15283 c
+416657 -16453 416051 -18091 415859 -20179 C
+415865 -20179 L
+@c
+F
+%CHAR: 434010 -33408 (:) @t
+443705 -17077 m
+443705 -10958 L
+449825 -10958 L
+449825 -17077 L
+443705 -17077 L
+@c
+443705 -33408 m
+443705 -27288 L
+449825 -27288 L
+449825 -33408 L
+443705 -33408 L
+@c
+F
+T
+@rax 413.35115 55.92019 553.73272 208.51654 @E
+[0.00028346 0.00000000 0.00000000 0.00028346 419.85069330 205.98632317] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 63499.00000 z
+%CHAR: 0 -154990 (1) @t
+23657 -154990 m
+18073 -154990 L
+18073 -119428 L
+16729 -120708 14961 -121996 12785 -123277 c
+10609 -124557 8640 -125517 6912 -126157 C
+6912 -120764 L
+10032 -119300 12761 -117516 15097 -115436 c
+17433 -113348 19089 -111316 20057 -109356 C
+23657 -109356 L
+23657 -154990 L
+@c
+F
+%CHAR: 133264 -154990 (3) @t
+135928 -142989 m
+141504 -142253 L
+142144 -145414 143240 -147694 144777 -149086 c
+146313 -150478 148201 -151182 150409 -151182 c
+153033 -151182 155249 -150270 157057 -148454 c
+158865 -146638 159769 -144381 159769 -141693 c
+159769 -139133 158929 -137013 157257 -135349 c
+155585 -133685 153449 -132853 150873 -132853 c
+149817 -132853 148505 -133061 146937 -133477 C
+147553 -128581 L
+147921 -128613 148225 -128637 148449 -128637 c
+150825 -128637 152969 -128013 154865 -126781 c
+156769 -125541 157721 -123621 157721 -121044 c
+157721 -118996 157025 -117300 155649 -115956 c
+154265 -114612 152473 -113940 150281 -113940 c
+148113 -113940 146297 -114628 144857 -115988 c
+143416 -117348 142480 -119404 142064 -122124 C
+136488 -121132 L
+137160 -117396 138712 -114492 141128 -112444 c
+143544 -110388 146561 -109356 150161 -109356 c
+152641 -109356 154929 -109892 157009 -110948 c
+159097 -112012 160697 -113468 161801 -115308 c
+162905 -117148 163457 -119100 163457 -121164 c
+163457 -123132 162929 -124925 161881 -126533 c
+160825 -128141 159257 -129429 157193 -130373 C
+159881 -130997 161969 -132285 163457 -134237 c
+164945 -136189 165690 -138637 165690 -141565 c
+165690 -145534 164241 -148902 161353 -151654 c
+158457 -154414 154793 -155798 150377 -155798 c
+146393 -155798 143072 -154606 140440 -152238 c
+137808 -149862 136296 -146774 135928 -142997 c
+135928 -142989 L
+@c
+F
+%CHAR: 0 -226062 (2) @t
+31970 -220702 m
+31962 -226062 L
+1920 -226062 L
+1880 -224726 2096 -223430 2568 -222190 c
+3336 -220142 4560 -218126 6240 -216142 c
+7920 -214157 10360 -211861 13545 -209261 c
+18481 -205213 21825 -201997 23553 -199637 c
+25289 -197269 26161 -195029 26161 -192924 c
+26161 -190716 25369 -188844 23793 -187324 c
+22209 -185804 20145 -185044 17609 -185044 c
+14921 -185044 12769 -185852 11161 -187460 c
+9544 -189076 8728 -191316 8712 -194164 C
+2976 -193572 L
+3360 -189300 4840 -186036 7400 -183796 c
+9960 -181556 13409 -180428 17729 -180428 c
+22089 -180428 25545 -181636 28081 -184052 c
+30625 -186468 31898 -189476 31898 -193044 c
+31898 -194861 31521 -196653 30785 -198405 c
+30041 -200165 28801 -202021 27081 -203957 c
+25353 -205901 22481 -208573 18473 -211957 c
+15129 -214765 12969 -216678 12025 -217678 c
+11081 -218678 10288 -219694 9672 -220702 C
+31970 -220702 L
+@c
+F
+%CHAR: 133264 -226062 (l) @t
+137328 -226062 m
+137320 -180612 L
+142904 -180612 L
+142904 -226062 L
+137328 -226062 L
+@c
+F
+%CHAR: 147368 -226062 (o) @t
+149480 -209597 m
+149480 -203501 151168 -198981 154560 -196053 c
+157392 -193620 160849 -192396 164913 -192396 c
+169441 -192396 173145 -193884 176009 -196845 c
+178881 -199805 180322 -203909 180322 -209133 c
+180322 -213373 179682 -216710 178417 -219134 c
+177145 -221566 175289 -223454 172865 -224798 c
+170441 -226142 167785 -226814 164913 -226814 c
+160305 -226814 156576 -225334 153736 -222382 c
+150896 -219422 149472 -215157 149472 -209605 C
+149480 -209597 L
+@c
+155208 -209597 m
+155208 -213813 156128 -216974 157969 -219070 c
+159809 -221166 162129 -222222 164913 -222222 c
+167681 -222222 169985 -221166 171825 -219062 c
+173665 -216950 174585 -213733 174585 -209413 c
+174585 -205349 173657 -202261 171809 -200165 c
+169961 -198069 167657 -197013 164913 -197013 c
+162129 -197013 159809 -198061 157969 -200141 c
+156128 -202229 155208 -205389 155208 -209605 C
+155208 -209597 L
+@c
+F
+%CHAR: 182680 -226062 (c) @t
+208353 -213997 m
+213833 -214717 L
+213241 -218494 211697 -221462 209233 -223598 c
+206769 -225742 203729 -226814 200129 -226814 c
+195633 -226814 192008 -225342 189272 -222398 c
+186536 -219454 185160 -215221 185160 -209725 c
+185160 -206173 185752 -203061 186920 -200397 c
+188096 -197733 189896 -195725 192296 -194397 c
+194705 -193068 197329 -192396 200161 -192396 c
+203737 -192396 206665 -193300 208937 -195109 c
+211209 -196917 212665 -199485 213305 -202813 C
+207881 -203653 L
+207369 -201445 206449 -199773 205137 -198661 c
+203825 -197541 202233 -196981 200377 -196981 c
+197569 -196981 195281 -197989 193529 -200005 c
+191776 -202021 190896 -205213 190896 -209573 c
+190896 -213989 191744 -217214 193433 -219214 c
+195129 -221214 197345 -222222 200073 -222222 c
+202257 -222222 204089 -221550 205553 -220206 c
+207025 -218862 207961 -216790 208345 -214005 C
+208353 -213997 L
+@c
+F
+%CHAR: 214432 -226062 (a) @t
+240105 -221998 m
+238041 -223758 236041 -225006 234137 -225726 c
+232225 -226446 230169 -226814 227977 -226814 c
+224360 -226814 221576 -225926 219640 -224166 c
+217696 -222398 216720 -220134 216720 -217382 c
+216720 -215774 217088 -214293 217816 -212965 c
+218552 -211637 219520 -210557 220704 -209757 c
+221888 -208957 223232 -208341 224720 -207925 c
+225817 -207637 227473 -207357 229681 -207093 c
+234185 -206557 237505 -205909 239633 -205165 C
+239649 -204405 239665 -203917 239665 -203709 c
+239665 -201437 239137 -199837 238089 -198909 c
+236665 -197645 234537 -197013 231729 -197013 c
+229105 -197013 227169 -197477 225921 -198389 c
+224672 -199309 223736 -200941 223144 -203277 C
+217680 -202533 L
+218176 -200197 218992 -198309 220128 -196877 c
+221264 -195437 222920 -194325 225065 -193556 c
+227209 -192788 229705 -192396 232537 -192396 c
+235345 -192396 237633 -192732 239385 -193388 c
+241145 -194044 242441 -194885 243265 -195885 c
+244089 -196885 244673 -198157 245001 -199677 c
+245185 -200629 245281 -202349 245281 -204829 c
+245281 -212269 l
+245281 -217454 245401 -220742 245633 -222110 c
+245873 -223486 246346 -224806 247050 -226062 C
+241217 -226062 L
+240641 -224910 240257 -223550 240097 -222006 C
+240105 -221998 L
+@c
+239641 -209533 m
+237609 -210365 234569 -211069 230521 -211645 c
+228233 -211973 226601 -212349 225657 -212757 c
+224704 -213173 223960 -213781 223448 -214573 c
+222936 -215373 222672 -216262 222672 -217230 c
+222672 -218718 223240 -219958 224360 -220950 c
+225489 -221942 227145 -222438 229313 -222438 c
+231457 -222438 233377 -221966 235049 -221030 c
+236721 -220086 237953 -218798 238737 -217166 c
+239329 -215910 239633 -214045 239633 -211589 c
+239641 -209533 L
+@c
+F
+%CHAR: 249744 -226062 (l) @t
+253808 -226062 m
+253800 -180612 L
+259384 -180612 L
+259384 -226062 L
+253808 -226062 L
+@c
+F
+%CHAR: 0 -297134 (3) @t
+2664 -285133 m
+8240 -284397 L
+8880 -287558 9976 -289838 11513 -291230 c
+13049 -292622 14937 -293326 17145 -293326 c
+19769 -293326 21985 -292414 23793 -290598 c
+25601 -288782 26505 -286525 26505 -283837 c
+26505 -281277 25665 -279157 23993 -277493 c
+22321 -275829 20185 -274997 17609 -274997 c
+16553 -274997 15241 -275205 13673 -275621 C
+14289 -270725 L
+14657 -270757 14961 -270781 15185 -270781 c
+17561 -270781 19705 -270157 21601 -268925 c
+23505 -267685 24457 -265765 24457 -263188 c
+24457 -261140 23761 -259444 22385 -258100 c
+21001 -256756 19209 -256084 17017 -256084 c
+14849 -256084 13033 -256772 11593 -258132 c
+10152 -259492 9216 -261548 8800 -264268 C
+3224 -263276 L
+3896 -259540 5448 -256636 7864 -254588 c
+10280 -252532 13297 -251500 16897 -251500 c
+19377 -251500 21665 -252036 23745 -253092 c
+25833 -254156 27433 -255612 28537 -257452 c
+29641 -259292 30193 -261244 30193 -263308 c
+30193 -265276 29665 -267069 28617 -268677 c
+27561 -270285 25993 -271573 23929 -272517 C
+26617 -273141 28705 -274429 30193 -276381 c
+31681 -278333 32426 -280781 32426 -283709 c
+32426 -287678 30977 -291046 28089 -293798 c
+25193 -296558 21529 -297942 17113 -297942 c
+13129 -297942 9808 -296750 7176 -294382 c
+4544 -292006 3032 -288918 2664 -285141 c
+2664 -285133 L
+@c
+F
+%CHAR: 133264 -297134 (b) @t
+142600 -297134 m
+137416 -297134 L
+137416 -251684 L
+142992 -251684 L
+142992 -267901 L
+145345 -264948 148361 -263468 152017 -263468 c
+154041 -263468 155961 -263876 157769 -264692 c
+159577 -265509 161065 -266661 162233 -268133 c
+163401 -269605 164321 -271397 164977 -273477 c
+165634 -275565 165970 -277805 165970 -280181 c
+165970 -285821 164569 -290190 161785 -293262 c
+159001 -296342 155641 -297886 151737 -297886 c
+147857 -297886 144801 -296262 142592 -293014 C
+142600 -297134 L
+@c
+142536 -280421 m
+142536 -284373 143072 -287230 144145 -288982 c
+145897 -291854 148281 -293294 151273 -293294 c
+153705 -293294 155817 -292230 157593 -290118 c
+159369 -287998 160265 -284837 160265 -280645 c
+160265 -276349 159409 -273173 157713 -271125 c
+156009 -269077 153937 -268053 151521 -268053 c
+149089 -268053 146977 -269117 145201 -271229 c
+143424 -273349 142528 -276421 142528 -280429 C
+142536 -280421 L
+@c
+F
+%CHAR: 0 -368206 (A) @t
+-104 -368206 m
+17361 -322756 L
+23841 -322756 L
+42442 -368206 L
+35594 -368206 L
+30289 -354445 L
+11281 -354445 L
+6288 -368206 L
+-104 -368206 L
+@c
+13025 -349541 m
+28425 -349541 L
+23681 -336957 l
+22241 -333132 21161 -329988 20457 -327532 C
+19881 -330444 19065 -333340 18009 -336212 c
+13025 -349541 L
+@c
+F
+%CHAR: 136800 -368206 (3) @t
+139464 -356205 m
+145040 -355469 L
+145680 -358630 146776 -360910 148313 -362302 c
+149849 -363694 151737 -364398 153945 -364398 c
+156569 -364398 158785 -363486 160593 -361670 c
+162401 -359854 163305 -357597 163305 -354909 c
+163305 -352349 162465 -350229 160793 -348565 c
+159121 -346901 156985 -346069 154409 -346069 c
+153353 -346069 152041 -346277 150473 -346693 C
+151089 -341797 L
+151457 -341829 151761 -341853 151985 -341853 c
+154361 -341853 156505 -341229 158401 -339997 c
+160305 -338757 161257 -336837 161257 -334260 c
+161257 -332212 160561 -330516 159185 -329172 c
+157801 -327828 156009 -327156 153817 -327156 c
+151649 -327156 149833 -327844 148393 -329204 c
+146952 -330564 146016 -332620 145600 -335340 C
+140024 -334348 L
+140696 -330612 142248 -327708 144664 -325660 c
+147080 -323604 150097 -322572 153697 -322572 c
+156177 -322572 158465 -323108 160545 -324164 c
+162633 -325228 164233 -326684 165337 -328524 c
+166441 -330364 166993 -332316 166993 -334380 c
+166993 -336348 166465 -338141 165417 -339749 c
+164361 -341357 162793 -342645 160729 -343589 C
+163417 -344213 165505 -345501 166993 -347453 c
+168481 -349405 169226 -351853 169226 -354781 c
+169226 -358750 167777 -362118 164889 -364870 c
+161993 -367630 158329 -369014 153913 -369014 c
+149929 -369014 146608 -367822 143976 -365454 c
+141344 -363078 139832 -359990 139464 -356213 c
+139464 -356205 L
+@c
+F
+%CHAR: 0 -439278 (B) @t
+4648 -439278 m
+4648 -393828 L
+21697 -393828 l
+25169 -393828 27953 -394292 30049 -395204 c
+32146 -396124 33802 -397548 34986 -399452 c
+36170 -401364 36770 -403372 36770 -405452 c
+36770 -407396 36242 -409229 35194 -410941 c
+34138 -412653 32538 -414045 30409 -415101 C
+33162 -415901 35282 -417285 36754 -419221 c
+38226 -421157 38970 -423461 38970 -426101 c
+38970 -428229 38522 -430222 37626 -432046 c
+36730 -433870 35610 -435286 34290 -436278 c
+32970 -437270 31305 -438022 29313 -438518 c
+27321 -439022 24873 -439278 21977 -439278 c
+4648 -439278 L
+@c
+10665 -412925 m
+20489 -412925 l
+23153 -412925 25073 -412749 26225 -412397 c
+27753 -411949 28913 -411189 29681 -410141 c
+30457 -409085 30849 -407757 30849 -406164 c
+30849 -404660 30481 -403332 29761 -402188 c
+29041 -401036 28001 -400244 26665 -399828 c
+25321 -399404 23009 -399188 19745 -399188 c
+10665 -399188 L
+10665 -412925 L
+@c
+10665 -433918 m
+21977 -433918 l
+23921 -433918 25289 -433846 26073 -433702 c
+27449 -433454 28609 -433038 29537 -432462 c
+30465 -431886 31241 -431038 31834 -429934 c
+32434 -428830 32738 -427549 32738 -426101 c
+32738 -424413 32298 -422941 31433 -421693 c
+30569 -420445 29361 -419557 27825 -419053 c
+26289 -418549 24065 -418293 21169 -418293 c
+10665 -418293 L
+10665 -433918 L
+@c
+F
+%CHAR: 140304 -439278 (a) @t
+165977 -435214 m
+163913 -436974 161913 -438222 160009 -438942 c
+158097 -439662 156041 -440030 153849 -440030 c
+150232 -440030 147448 -439142 145512 -437382 c
+143568 -435614 142592 -433350 142592 -430598 c
+142592 -428990 142960 -427509 143688 -426181 c
+144424 -424853 145392 -423773 146576 -422973 c
+147760 -422173 149104 -421557 150592 -421141 c
+151689 -420853 153345 -420573 155553 -420309 c
+160057 -419773 163377 -419125 165505 -418381 C
+165521 -417621 165537 -417133 165537 -416925 c
+165537 -414653 165009 -413053 163961 -412125 c
+162537 -410861 160409 -410229 157601 -410229 c
+154977 -410229 153041 -410693 151793 -411605 c
+150544 -412525 149608 -414157 149016 -416493 C
+143552 -415749 L
+144048 -413413 144864 -411525 146000 -410093 c
+147136 -408653 148792 -407541 150937 -406772 c
+153081 -406004 155577 -405612 158409 -405612 c
+161217 -405612 163505 -405948 165257 -406604 c
+167017 -407260 168313 -408101 169137 -409101 c
+169961 -410101 170545 -411373 170873 -412893 c
+171057 -413845 171153 -415565 171153 -418045 c
+171153 -425485 l
+171153 -430670 171273 -433958 171505 -435326 c
+171745 -436702 172218 -438022 172922 -439278 C
+167089 -439278 L
+166513 -438126 166129 -436766 165969 -435222 C
+165977 -435214 L
+@c
+165513 -422749 m
+163481 -423581 160441 -424285 156393 -424861 c
+154105 -425189 152473 -425565 151529 -425973 c
+150576 -426389 149832 -426997 149320 -427789 c
+148808 -428589 148544 -429478 148544 -430446 c
+148544 -431934 149112 -433174 150232 -434166 c
+151361 -435158 153017 -435654 155185 -435654 c
+157329 -435654 159249 -435182 160921 -434246 c
+162593 -433302 163825 -432014 164609 -430382 c
+165201 -429126 165505 -427261 165505 -424805 c
+165513 -422749 L
+@c
+F
+%CHAR: 0 -510350 (C) @t
+37330 -494413 m
+43338 -495933 L
+42082 -500878 39810 -504646 36538 -507238 c
+33266 -509830 29257 -511126 24521 -511126 c
+19625 -511126 15641 -510126 12577 -508134 c
+9504 -506142 7168 -503246 5568 -499469 c
+3968 -495693 3160 -491621 3160 -487285 c
+3160 -482557 4064 -478420 5872 -474900 c
+7680 -471380 10256 -468692 13593 -466868 c
+16929 -465044 20609 -464124 24617 -464124 c
+29161 -464124 32986 -465284 36082 -467596 c
+39186 -469908 41354 -473172 42570 -477364 C
+36642 -478757 L
+35594 -475452 34058 -473036 32058 -471532 c
+30057 -470028 27529 -469268 24489 -469268 c
+21001 -469268 18073 -470108 15729 -471780 c
+13385 -473452 11729 -475708 10785 -478524 c
+9840 -481341 9360 -484261 9360 -487253 c
+9360 -491117 9928 -494493 11049 -497373 c
+12169 -500254 13929 -502414 16305 -503838 c
+18681 -505262 21257 -505982 24025 -505982 c
+27393 -505982 30249 -505006 32586 -503070 c
+34922 -501126 36506 -498237 37330 -494413 C
+@c
+F
+%CHAR: 143808 -510350 (3) @t
+146472 -498349 m
+152048 -497613 L
+152688 -500774 153784 -503054 155321 -504446 c
+156857 -505838 158745 -506542 160953 -506542 c
+163577 -506542 165793 -505630 167601 -503814 c
+169409 -501998 170313 -499741 170313 -497053 c
+170313 -494493 169473 -492373 167801 -490709 c
+166129 -489045 163993 -488213 161417 -488213 c
+160361 -488213 159049 -488421 157481 -488837 C
+158097 -483941 L
+158465 -483973 158769 -483997 158993 -483997 c
+161369 -483997 163513 -483373 165409 -482141 c
+167313 -480901 168265 -478981 168265 -476404 c
+168265 -474356 167569 -472660 166193 -471316 c
+164809 -469972 163017 -469300 160825 -469300 c
+158657 -469300 156841 -469988 155401 -471348 c
+153960 -472708 153024 -474764 152608 -477484 C
+147032 -476492 L
+147704 -472756 149256 -469852 151672 -467804 c
+154088 -465748 157105 -464716 160705 -464716 c
+163185 -464716 165473 -465252 167553 -466308 c
+169641 -467372 171241 -468828 172345 -470668 c
+173449 -472508 174001 -474460 174001 -476524 c
+174001 -478492 173473 -480285 172425 -481893 c
+171369 -483501 169801 -484789 167737 -485733 C
+170425 -486357 172513 -487645 174001 -489597 c
+175489 -491549 176234 -493997 176234 -496925 c
+176234 -500894 174785 -504262 171897 -507014 c
+169001 -509774 165337 -511158 160921 -511158 c
+156937 -511158 153616 -509966 150984 -507598 c
+148352 -505222 146840 -502134 146472 -498357 c
+146472 -498349 L
+@c
+F
+T
+@rax 413.35115 55.92019 553.73272 208.51654 @E
+[0.00028346 0.00000000 0.00000000 0.00028346 419.85069330 205.98632317] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/MTExtra 63499.00000 z
+%CHAR: 52952 -154990 (a) @t
+57712 -141021 m
+57712 -155246 L
+54536 -155246 L
+54536 -123236 L
+57712 -123236 L
+57712 -137461 L
+106539 -137461 L
+105314 -136237 103586 -134293 101362 -131653 c
+99138 -129013 97242 -126709 95682 -124765 C
+97906 -122540 L
+102130 -127581 107451 -133149 113843 -139245 C
+107451 -145342 102130 -150910 97906 -155942 C
+95682 -153726 L
+100802 -147334 104426 -143093 106539 -141021 C
+57712 -141021 L
+@c
+F
+%CHAR: 52952 -226062 (a) @t
+57712 -212093 m
+57712 -226318 L
+54536 -226318 L
+54536 -194308 L
+57712 -194308 L
+57712 -208533 L
+106539 -208533 L
+105314 -207309 103586 -205365 101362 -202725 c
+99138 -200085 97242 -197781 95682 -195837 C
+97906 -193612 L
+102130 -198653 107451 -204221 113843 -210317 C
+107451 -216414 102130 -221982 97906 -227014 C
+95682 -224798 L
+100802 -218406 104426 -214165 106539 -212093 C
+57712 -212093 L
+@c
+F
+%CHAR: 52952 -297134 (a) @t
+57712 -283165 m
+57712 -297390 L
+54536 -297390 L
+54536 -265380 L
+57712 -265380 L
+57712 -279605 L
+106539 -279605 L
+105314 -278381 103586 -276437 101362 -273797 c
+99138 -271157 97242 -268853 95682 -266909 C
+97906 -264684 L
+102130 -269725 107451 -275293 113843 -281389 C
+107451 -287486 102130 -293054 97906 -298086 C
+95682 -295870 L
+100802 -289478 104426 -285237 106539 -283165 C
+57712 -283165 L
+@c
+F
+%CHAR: 56488 -368206 (a) @t
+61248 -354237 m
+61248 -368462 L
+58072 -368462 L
+58072 -336452 L
+61248 -336452 L
+61248 -350677 L
+110075 -350677 L
+108850 -349453 107122 -347509 104898 -344869 c
+102674 -342229 100778 -339925 99218 -337981 C
+101442 -335756 L
+105666 -340797 110987 -346365 117379 -352461 C
+110987 -358558 105666 -364126 101442 -369158 C
+99218 -366942 L
+104338 -360550 107962 -356309 110075 -354237 C
+61248 -354237 L
+@c
+F
+%CHAR: 59992 -439278 (a) @t
+64752 -425309 m
+64752 -439534 L
+61576 -439534 L
+61576 -407524 L
+64752 -407524 L
+64752 -421749 L
+113579 -421749 L
+112354 -420525 110626 -418581 108402 -415941 c
+106178 -413301 104282 -410997 102722 -409053 C
+104946 -406828 L
+109170 -411869 114491 -417437 120883 -423533 C
+114491 -429630 109170 -435198 104946 -440230 C
+102722 -438014 L
+107842 -431622 111466 -427381 113579 -425309 C
+64752 -425309 L
+@c
+F
+%CHAR: 63496 -510350 (a) @t
+68256 -496381 m
+68256 -510606 L
+65080 -510606 L
+65080 -478596 L
+68256 -478596 L
+68256 -492821 L
+117083 -492821 L
+115858 -491597 114130 -489653 111906 -487013 c
+109682 -484373 107786 -482069 106226 -480125 C
+108450 -477900 L
+112674 -482941 117995 -488509 124387 -494605 C
+117995 -500702 112674 -506270 108450 -511302 C
+106226 -509086 L
+111346 -502694 114970 -498453 117083 -496381 C
+68256 -496381 L
+@c
+F
+T
+@rax %Note: Object
+289.47175 44.08809 557.67969 214.78422 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.21600 0.21600 0.00000 @w
+289.47175 214.78422 m
+557.67969 214.78422 L
+557.67969 44.08809 L
+289.47175 44.08809 L
+289.47175 214.78422 L
+@c
+S
+
+@rax %Note: Object
+394.90328 44.73156 394.90441 215.42258 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.21600 0.21600 0.00000 @w
+394.90384 215.42258 m
+394.90384 44.73156 L
+S
+
+@rax 289.96469 241.90838 299.24220 255.15298 @E
+[0.00021766 0.00000000 0.00000000 0.00021766 289.96477394 241.90829453] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 84666.00000 z
+%CHAR: 0 0 (2) @t
+42621 7150 m
+42621 0 L
+2555 0 L
+2508 1782 2790 3516 3423 5157 c
+4442 7888 6083 10584 8322 13221 c
+10573 15872 13819 18931 18064 22400 c
+24651 27792 29105 32082 31414 35235 c
+33723 38388 34884 41377 34884 44191 c
+34884 47133 33829 49630 31731 51646 c
+29621 53674 26866 54694 23479 54694 c
+19892 54694 17020 53615 14875 51470 c
+12729 49314 11639 46336 11616 42539 C
+3962 43324 L
+4477 49021 6458 53381 9869 56358 c
+13292 59347 17888 60847 23643 60847 c
+29457 60847 34063 59230 37450 56018 c
+40838 52795 42539 48786 42539 44027 c
+42539 41600 42033 39209 41049 36876 c
+40064 34532 38412 32059 36114 29480 c
+33817 26890 29984 23326 24639 18802 c
+20173 15063 17302 12518 16036 11182 c
+14770 9846 13714 8486 12893 7150 C
+42621 7150 L
+@c
+F
+T
+@rax 240.85474 290.96646 250.26605 304.44576 @E
+[0.00021766 0.00000000 0.00000000 0.00021766 240.85469059 291.20120864] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 84666.00000 z
+%CHAR: 0 0 (3) @t
+3552 16001 m
+10994 16985 L
+11838 12764 13304 9717 15344 7865 c
+17396 6013 19904 5075 22858 5075 c
+26351 5075 29316 6294 31719 8709 c
+34133 11135 35341 14149 35341 17735 c
+35341 21146 34227 23971 32000 26186 c
+29773 28402 26925 29515 23479 29515 c
+22072 29515 20314 29234 18228 28683 C
+19048 35212 L
+19541 35165 19951 35130 20255 35130 c
+23420 35130 26268 35962 28800 37615 c
+31332 39267 32610 41822 32610 45258 c
+32610 47989 31684 50263 29843 52045 c
+28003 53826 25612 54729 22694 54729 c
+19798 54729 17384 53815 15462 52009 c
+13538 50193 12284 47450 11733 43816 C
+4290 45141 L
+5204 50122 7279 53990 10490 56733 c
+13714 59476 17735 60847 22529 60847 c
+25835 60847 28882 60132 31660 58726 c
+34438 57307 36571 55362 38048 52912 c
+39525 50462 40264 47848 40264 45094 c
+40264 42480 39560 40088 38154 37943 c
+36747 35798 34661 34086 31906 32821 C
+35493 32000 38283 30277 40264 27675 c
+42244 25073 43242 21803 43242 17900 c
+43242 12600 41307 8111 37450 4442 c
+33594 762 28706 -1078 22811 -1078 c
+17501 -1078 13081 504 9564 3669 c
+6048 6833 4044 10948 3552 15989 c
+3552 16001 L
+@c
+F
+T
+@rax 94.27493 268.81852 101.14157 282.06283 @E
+[0.00021766 0.00000000 0.00000000 0.00021766 94.27491729 268.81837052] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 84666.00000 z
+%CHAR: 0 0 (1) @t
+31543 0 m
+24100 0 L
+24100 47415 L
+22307 45703 19951 43992 17044 42291 c
+14137 40580 11522 39291 9213 38435 C
+9213 45633 L
+13374 47591 17020 49970 20127 52748 c
+23244 55526 25448 58233 26737 60847 C
+31531 60847 L
+31543 0 L
+@c
+F
+T
+@rax 324.79313 264.82791 334.25717 274.81635 @E
+[0.00021766 0.00000000 0.00000000 0.00021766 324.79316307 265.04574485] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 84666.00000 z
+%CHAR: 0 0 (a) @t
+34227 5415 m
+31473 3071 28812 1418 26268 457 c
+23725 -504 20982 -996 18064 -996 c
+13245 -996 9529 188 6939 2532 c
+4349 4888 3048 7912 3048 11569 c
+3048 13714 3540 15684 4513 17454 c
+5497 19236 6787 20666 8357 21732 c
+9940 22811 11733 23631 13714 24182 c
+15169 24557 17384 24944 20338 25296 c
+26339 26011 30769 26878 33606 27863 C
+33629 28871 33641 29527 33641 29797 c
+33641 32821 32938 34966 31531 36208 c
+29632 37884 26808 38728 23057 38728 c
+19564 38728 16985 38107 15321 36888 c
+13655 35669 12413 33489 11616 30383 C
+4337 31367 L
+4993 34485 6083 37005 7595 38916 c
+9107 40826 11311 42303 14172 43336 c
+17032 44367 20361 44895 24135 44895 c
+27886 44895 30933 44449 33266 43570 c
+35610 42691 37333 41576 38435 40240 c
+39537 38904 40322 37216 40756 35177 c
+41002 33911 41131 31613 41131 28308 c
+41131 18392 l
+41131 11475 41295 7103 41600 5275 c
+41916 3446 42550 1676 43488 0 C
+35716 0 L
+34942 1535 34438 3352 34227 5415 C
+@c
+33606 22037 m
+30910 20935 26843 19986 21451 19212 c
+18392 18779 16223 18275 14958 17735 c
+13690 17185 12706 16364 12026 15309 c
+11346 14254 10994 13069 10994 11780 c
+10994 9799 11745 8134 13245 6822 c
+14747 5497 16950 4829 19834 4829 c
+22694 4829 25260 5462 27487 6705 c
+29714 7959 31367 9682 32410 11862 c
+33207 13538 33606 16024 33606 19306 c
+33606 22037 L
+@c
+F
+T
+@rax 270.42094 268.60054 279.91361 282.00784 @E
+[0.00021766 0.00000000 0.00000000 0.00021766 270.42081867 268.81837052] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 84666.00000 z
+%CHAR: 0 0 (b) @t
+12448 0 m
+5532 0 L
+5532 60601 L
+12975 60601 L
+12975 38974 L
+16118 42914 20127 44895 25003 44895 c
+27698 44895 30265 44344 32668 43265 c
+35083 42174 37075 40639 38623 38669 c
+40182 36700 41412 34321 42280 31543 c
+43160 28753 43605 25776 43605 22611 c
+43605 15086 41740 9271 38025 5169 c
+34309 1067 29843 -996 24639 -996 c
+19458 -996 15379 1172 12436 5497 C
+12448 0 L
+@c
+12366 22283 m
+12366 17020 13069 13210 14500 10866 c
+16845 7044 20021 5122 24018 5122 c
+27265 5122 30078 6540 32446 9354 c
+34813 12178 35997 16399 35997 21990 c
+35997 27710 34860 31953 32586 34673 c
+30312 37404 27558 38775 24346 38775 c
+21099 38775 18286 37357 15919 34544 c
+13550 31719 12354 27616 12354 22272 C
+12366 22283 L
+@c
+F
+T
+@rax 243.29140 233.52123 252.33420 243.50967 @E
+[0.00021766 0.00000000 0.00000000 0.00021766 243.29134578 233.73902440] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 84666.00000 z
+%CHAR: 0 0 (c) @t
+34227 16083 m
+41541 15122 L
+40744 10080 38693 6130 35411 3282 c
+32117 434 28062 -996 23268 -996 c
+17267 -996 12424 973 8779 4888 c
+5134 8814 3305 14454 3305 21779 c
+3305 26515 4091 30676 5661 34227 c
+7232 37779 9623 40451 12823 42221 c
+16036 44004 19541 44895 23315 44895 c
+28074 44895 31988 43687 35012 41272 c
+38037 38857 39994 35434 40838 31004 C
+33606 29879 L
+32926 32832 31695 35059 29949 36536 c
+28202 38025 26081 38775 23596 38775 c
+19857 38775 16809 37427 14465 34743 c
+12120 32059 10948 27804 10948 21990 c
+10948 16094 12085 11803 14336 9131 c
+16598 6458 19552 5122 23186 5122 c
+26104 5122 28554 6025 30500 7806 c
+32457 9588 33711 12354 34227 16071 c
+34227 16083 L
+@c
+F
+T
+@rax 77.74583 165.48973 90.32485 179.12920 @E
+[0.00021766 0.00000000 0.00000000 0.00021766 77.74592832 165.71466363] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 84666.00000 z
+%CHAR: 0 0 (C) @t
+49771 21252 m
+57788 19212 L
+56112 12635 53076 7607 48716 4149 c
+44356 692 38998 -1043 32692 -1043 c
+26163 -1043 20842 293 16763 2942 c
+12671 5603 9553 9459 7420 14500 c
+5286 19541 4208 24967 4208 30746 c
+4208 37052 5415 42574 7818 47262 c
+10233 51963 13667 55538 18122 57976 c
+22576 60414 27476 61633 32821 61633 c
+38880 61633 43992 60085 48118 57003 c
+52244 53920 55139 49571 56757 43980 C
+48856 42115 L
+47450 46524 45410 49747 42738 51752 c
+40064 53768 36700 54776 32657 54776 c
+28003 54776 24100 53650 20982 51423 c
+17853 49196 15649 46184 14383 42433 c
+13116 38669 12483 34778 12483 30793 c
+12483 25636 13233 21135 14735 17302 c
+16235 13456 18568 10584 21732 8685 c
+24897 6787 28343 5825 32035 5825 c
+36524 5825 40334 7126 43441 9705 c
+46559 12296 48669 16153 49771 21240 c
+49771 21252 L
+@c
+F
+T
+@rax 121.59014 368.92828 133.93672 382.11761 @E
+[0.00021766 0.00000000 0.00000000 0.00021766 121.61878102 368.92822371] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 84666.00000 z
+%CHAR: 0 0 (A) @t
+-141 0 m
+23151 60601 L
+31789 60601 L
+56592 0 L
+47450 0 L
+40381 18345 L
+15040 18345 L
+8381 0 L
+-141 0 L
+@c
+17360 24885 m
+37908 24885 L
+31578 41670 l
+29656 46758 28214 50955 27276 54236 C
+26503 50345 25413 46477 24018 42656 c
+17360 24885 L
+@c
+F
+T
+@rax 419.27187 344.77682 430.58183 357.96643 @E
+[0.00021766 0.00000000 0.00000000 0.00021766 419.27182886 344.77693330] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 84666.00000 z
+%CHAR: 0 0 (B) @t
+6201 0 m
+6201 60601 L
+28929 60601 l
+33559 60601 37286 59980 40076 58761 c
+42867 57542 45071 55643 46641 53100 c
+48224 50556 49021 47884 49021 45094 c
+49021 42515 48317 40064 46922 37779 c
+45516 35493 43383 33641 40545 32235 C
+44203 31168 47028 29328 48997 26749 c
+50966 24159 51963 21088 51963 17560 c
+51963 14723 51365 12085 50169 9647 c
+48974 7209 47473 5321 45715 4009 c
+43957 2684 41729 1676 39080 1008 c
+36431 340 33161 0 29304 0 c
+6201 0 L
+@c
+14219 35141 m
+27323 35130 l
+30875 35130 33430 35364 34966 35833 c
+37005 36442 38541 37450 39572 38857 c
+40603 40264 41131 42033 41131 44145 c
+41131 46161 40650 47931 39689 49454 c
+38728 50978 37333 52033 35552 52596 c
+33758 53158 30676 53451 26327 53451 c
+14219 53451 L
+14219 35141 L
+@c
+14219 7150 m
+29304 7150 l
+31895 7150 33723 7244 34766 7431 c
+36607 7759 38154 8322 39384 9084 c
+40627 9858 41647 10983 42445 12460 c
+43242 13936 43652 15637 43652 17560 c
+43652 19822 43066 21791 41916 23455 c
+40768 25120 39150 26292 37099 26960 c
+35048 27640 32082 27980 28226 27980 c
+14219 27980 L
+14219 7150 L
+@c
+F
+T
+@rax %Note: Object
+261.56608 194.14970 300.50872 234.18142 @E
+0 J 0 j [2 5 ] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.21600 0.21600 0.00000 @w
+300.50872 234.18142 m
+276.19228 224.62866 261.56608 197.55694 287.02261 194.14970 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+290.53729 193.67943 m
+283.94476 197.61279 L
+284.67638 195.48085 284.40907 193.48271 283.14255 191.61836 C
+290.53729 193.67943 L
+f
+@J
+
+@rax %Note: Object
+114.16252 248.54570 280.20444 271.78214 @E
+0 J 0 j [2 5 ] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+114.16252 271.78214 m
+280.20444 248.54570 L
+S
+
+%%PageTrailer
+@rs
+@rs
+%%Trailer
+@EndSysCorelDict
+end
+%%DocumentSuppliedResources: procset wCorel6Dict
+%%EOF
diff --git a/doc/slides/obr2.eps b/doc/slides/obr2.eps
new file mode 100644
index 00000000..62ae8517
--- /dev/null
+++ b/doc/slides/obr2.eps
@@ -0,0 +1,1134 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 38 83 565 445
+%%Creator: CorelDRAW
+%%Title:
+%%CreationDate: Mon Jun 26 02:36:57 2000
+%%DocumentProcessColors: Black
+%%DocumentSuppliedResources: (atend)
+%%EndComments
+%%BeginProlog
+/AutoFlatness true def
+/AutoSteps 0 def
+/CMYKMarks true def
+/UseLevel2 false def
+%Color profile: _DEFAULT.CCM - Generic CMYK
+%%BeginResource: procset wCorel6Dict 6.0 0
+% Copyright (c)1992-96 Corel Corporation
+% All rights reserved. v6.0 r1.1
+/wCorel6Dict 300 dict def wCorel6Dict begin/bd{bind def}bind def/ld{load def}
+bd/xd{exch def}bd/_ null def/rp{{pop}repeat}bd/@cp/closepath ld/@gs/gsave ld
+/@gr/grestore ld/@np/newpath ld/Tl/translate ld/$sv 0 def/@sv{/$sv save def}bd
+/@rs{$sv restore}bd/spg/showpage ld/showpage{}bd currentscreen/@dsp xd/$dsp
+/@dsp def/$dsa xd/$dsf xd/$sdf false def/$SDF false def/$Scra 0 def/SetScr
+/setscreen ld/setscreen{pop pop pop}bd/@ss{2 index 0 eq{$dsf 3 1 roll 4 -1 roll
+pop}if exch $Scra add exch load SetScr}bd/SepMode_5 where{pop}{/SepMode_5 0
+def}ifelse/CurrentInkName_5 where{pop}{/CurrentInkName_5(Composite)def}ifelse
+/$ink_5 where{pop}{/$ink_5 -1 def}ifelse/$c 0 def/$m 0 def/$y 0 def/$k 0 def
+/$t 1 def/$n _ def/$o 0 def/$fil 0 def/$C 0 def/$M 0 def/$Y 0 def/$K 0 def/$T 1
+def/$N _ def/$O 0 def/$PF false def/s1c 0 def/s1m 0 def/s1y 0 def/s1k 0 def
+/s1t 0 def/s1n _ def/$bkg false def/SK 0 def/SM 0 def/SY 0 def/SC 0 def/$op
+false def matrix currentmatrix/$ctm xd/$ptm matrix def/$ttm matrix def/$stm
+matrix def/$fst 128 def/$pad 0 def/$rox 0 def/$roy 0 def/$fmp 50 def/$ffpnt
+true def/CorelDrawReencodeVect[16#0/grave 16#5/breve 16#6/dotaccent 16#8/ring
+16#A/hungarumlaut 16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle
+16#60/grave 16#7C/bar
+16#82/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl
+16#88/circumflex/perthousand/Scaron/guilsinglleft/OE
+16#91/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash
+16#98/tilde/trademark/scaron/guilsinglright/oe 16#9F/Ydieresis
+16#A1/exclamdown/cent/sterling/currency/yen/brokenbar/section
+16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/minus/registered/macron
+16#b0/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
+16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
+16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
+16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
+16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
+16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
+16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/L2?/languagelevel where{pop languagelevel 2 ge}{false}ifelse def
+/@BeginSysCorelDict{systemdict/Corel30Dict known{systemdict/Corel30Dict get
+exec}if}bd/@EndSysCorelDict{systemdict/Corel30Dict known{end}if}bd AutoFlatness
+{/@ifl{dup currentflat exch sub 10 gt{
+([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator]\n)print flush
+@np exit}{currentflat 2 add setflat}ifelse}bd/@fill/fill ld/fill{currentflat{
+{@fill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@eofill/eofill ld/eofill
+{currentflat{{@eofill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@clip
+/clip ld/clip{currentflat{{@clip}stopped{@ifl}{exit}ifelse}bind loop setflat}
+bd/@eoclip/eoclip ld/eoclip{currentflat{{@eoclip}stopped{@ifl}{exit}ifelse}
+bind loop setflat}bd/@stroke/stroke ld/stroke{currentflat{{@stroke}stopped
+{@ifl}{exit}ifelse}bind loop setflat}bd}if L2?{/@ssa{true setstrokeadjust}bd}{
+/@ssa{}bd}ifelse/d/setdash ld/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit
+ld/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd/W/eoclip ld/c/curveto ld/C/c ld/l
+/lineto ld/L/l ld/rl/rlineto ld/m/moveto ld/n/newpath ld/N/newpath ld/P{11 rp}
+bd/u{}bd/U{}bd/A{pop}bd/q/@gs ld/Q/@gr ld/&{}bd/@j{@sv @np}bd/@J{@rs}bd/g{1
+exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def}bd/G{1
+sub neg/$K xd _ 1 0 0 0/$C xd/$M xd/$Y xd/$T xd/$N xd}bd/k{1 index type
+/stringtype eq{/$t xd/$n xd}{/$t 0 def/$n _ def}ifelse/$k xd/$y xd/$m xd/$c xd
+/$fil 0 def}bd/K{1 index type/stringtype eq{/$T xd/$N xd}{/$T 0 def/$N _ def}
+ifelse/$K xd/$Y xd/$M xd/$C xd}bd/x/k ld/X/K ld/sf{1 index type/stringtype eq{
+/s1t xd/s1n xd}{/s1t 0 def/s1n _ def}ifelse/s1k xd/s1y xd/s1m xd/s1c xd}bd/i{
+dup 0 ne{setflat}{pop}ifelse}bd/v{4 -2 roll 2 copy 6 -2 roll c}bd/V/v ld/y{2
+copy c}bd/Y/y ld/@w{matrix rotate/$ptm xd matrix scale $ptm dup concatmatrix
+/$ptm xd 1 eq{$ptm exch dup concatmatrix/$ptm xd}if 1 w}bd/@g{1 eq dup/$sdf xd
+{/$scp xd/$sca xd/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd/$SCA xd/$SCF xd}
+if}bd/@D{2 index 0 eq{$dsf 3 1 roll 4 -1 roll pop}if 3 copy exch $Scra add exch
+load SetScr/$dsp xd/$dsa xd/$dsf xd}bd/$ngx{$SDF{$SCF SepMode_5 0 eq{$SCA}
+{$dsa}ifelse $SCP @ss}if}bd/p{/$pm xd 7 rp/$pyf xd/$pxf xd/$pn xd/$fil 1 def}
+bd/@MN{2 copy le{pop}{exch pop}ifelse}bd/@MX{2 copy ge{pop}{exch pop}ifelse}bd
+/InRange{3 -1 roll @MN @MX}bd/wDstChck{2 1 roll dup 3 -1 roll eq{1 add}if}bd
+/@dot{dup mul exch dup mul add 1 exch sub}bd/@lin{exch pop abs 1 exch sub}bd
+/cmyk2rgb{3{dup 5 -1 roll add 1 exch sub dup 0 lt{pop 0}if exch}repeat pop}bd
+/rgb2cmyk{3{1 exch sub 3 1 roll}repeat 3 copy @MN @MN 3{dup 5 -1 roll sub neg
+exch}repeat}bd/rgb2g{2 index .299 mul 2 index .587 mul add 1 index .114 mul add
+4 1 roll pop pop pop}bd/WaldoColor_5 where{pop}{/SetRgb/setrgbcolor ld/GetRgb
+/currentrgbcolor ld/SetGry/setgray ld/GetGry/currentgray ld/SetRgb2 systemdict
+/setrgbcolor get def/GetRgb2 systemdict/currentrgbcolor get def/SetHsb
+systemdict/sethsbcolor get def/GetHsb systemdict/currenthsbcolor get def
+/rgb2hsb{SetRgb2 GetHsb}bd/hsb2rgb{3 -1 roll dup floor sub 3 1 roll SetHsb
+GetRgb2}bd/setcmykcolor where{pop/SetCmyk_5/setcmykcolor ld}{/SetCmyk_5{
+cmyk2rgb SetRgb}bd}ifelse/currentcmykcolor where{pop/GetCmyk/currentcmykcolor
+ld}{/GetCmyk{GetRgb rgb2cmyk}bd}ifelse/setoverprint where{pop}{/setoverprint{
+/$op xd}bd}ifelse/currentoverprint where{pop}{/currentoverprint{$op}bd}ifelse
+/@tc_5{5 -1 roll dup 1 ge{pop}{4{dup 6 -1 roll mul exch}repeat pop}ifelse}bd
+/@trp{exch pop 5 1 roll @tc_5}bd/setprocesscolor_5{SepMode_5 0 eq{SetCmyk_5}{0
+4 $ink_5 sub index exch pop 5 1 roll pop pop pop pop SepsColor true eq{$ink_5 3
+gt{1 sub neg SetGry}{0 0 0 4 $ink_5 roll SetCmyk_5}ifelse}{1 sub neg SetGry}
+ifelse}ifelse}bd/findcmykcustomcolor where{pop}{/findcmykcustomcolor{5 array
+astore}bd}ifelse/setcustomcolor where{pop}{/setcustomcolor{exch aload pop
+SepMode_5 0 eq{pop @tc_5 setprocesscolor_5}{CurrentInkName_5 eq{4 index}{0}
+ifelse 6 1 roll 5 rp 1 sub neg SetGry}ifelse}bd}ifelse/@scc_5{dup type
+/booleantype eq{setoverprint}{1 eq setoverprint}ifelse dup _ eq{pop
+setprocesscolor_5 pop}{findcmykcustomcolor exch setcustomcolor}ifelse SepMode_5
+0 eq{true}{GetGry 1 eq currentoverprint and not}ifelse}bd/colorimage where{pop
+/ColorImage{colorimage}def}{/ColorImage{/ncolors xd pop/dataaq xd{dataaq
+ncolors dup 3 eq{/$dat xd 0 1 $dat length 3 div 1 sub{dup 3 mul $dat 1 index
+get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div rgb2g
+255 mul cvi exch pop $dat 3 1 roll put}for $dat 0 $dat length 3 idiv
+getinterval pop}{4 eq{/$dat xd 0 1 $dat length 4 div 1 sub{dup 4 mul $dat 1
+index get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div
+$dat 4 index 3 add get 255 div cmyk2rgb rgb2g 255 mul cvi exch pop $dat 3 1
+roll put}for $dat 0 $dat length ncolors idiv getinterval}if}ifelse}image}bd
+}ifelse/setcmykcolor{1 5 1 roll _ currentoverprint @scc_5/$ffpnt xd}bd
+/currentcmykcolor{0 0 0 0}bd/setrgbcolor{rgb2cmyk setcmykcolor}bd
+/currentrgbcolor{currentcmykcolor cmyk2rgb}bd/sethsbcolor{hsb2rgb setrgbcolor}
+bd/currenthsbcolor{currentrgbcolor rgb2hsb}bd/setgray{dup dup setrgbcolor}bd
+/currentgray{currentrgbcolor rgb2g}bd}ifelse/WaldoColor_5 true def/@sft{$tllx
+$pxf add dup $tllx gt{$pwid sub}if/$tx xd $tury $pyf sub dup $tury lt{$phei
+add}if/$ty xd}bd/@stb{pathbbox/$ury xd/$urx xd/$lly xd/$llx xd}bd/@ep{{cvx exec
+}forall}bd/@tp{@sv/$in true def 2 copy dup $lly le{/$in false def}if $phei sub
+$ury ge{/$in false def}if dup $urx ge{/$in false def}if $pwid add $llx le{/$in
+false def}if $in{@np 2 copy m $pwid 0 rl 0 $phei neg rl $pwid neg 0 rl 0 $phei
+rl clip @np $pn cvlit load aload pop 7 -1 roll 5 index sub 7 -1 roll 3 index
+sub Tl matrix currentmatrix/$ctm xd @ep pop pop pop pop}{pop pop}ifelse @rs}bd
+/@th{@sft 0 1 $tly 1 sub{dup $psx mul $tx add{dup $llx gt{$pwid sub}{exit}
+ifelse}loop exch $phei mul $ty exch sub 0 1 $tlx 1 sub{$pwid mul 3 copy 3 -1
+roll add exch @tp pop}for pop pop}for}bd/@tv{@sft 0 1 $tlx 1 sub{dup $pwid mul
+$tx add exch $psy mul $ty exch sub{dup $ury lt{$phei add}{exit}ifelse}loop 0 1
+$tly 1 sub{$phei mul 3 copy sub @tp pop}for pop pop}for}bd/@pf{@gs $ctm
+setmatrix $pm concat @stb eoclip Bburx Bbury $pm itransform/$tury xd/$turx xd
+Bbllx Bblly $pm itransform/$tlly xd/$tllx xd/$wid $turx $tllx sub def/$hei
+$tury $tlly sub def @gs $vectpat{1 0 0 0 0 _ $o @scc_5{eofill}if}{$t $c $m $y
+$k $n $o @scc_5{SepMode_5 0 eq $pfrg or{$tllx $tlly Tl $wid $hei scale <00> 8 1
+false[8 0 0 1 0 0]{}imagemask}{/$bkg true def}ifelse}if}ifelse @gr $wid 0 gt
+$hei 0 gt and{$pn cvlit load aload pop/$pd xd 3 -1 roll sub/$phei xd exch sub
+/$pwid xd $wid $pwid div ceiling 1 add/$tlx xd $hei $phei div ceiling 1 add
+/$tly xd $psx 0 eq{@tv}{@th}ifelse}if @gr @np/$bkg false def}bd/@dlt_hsb{$fco
+nff ge{/$fco nff 1 sub def}if sub neg 2 div dup $fco div/kdb xd nff $fco sub
+div/kdb2 xd sub neg 2 div dup $fco div/kds xd nff $fco sub div/kds2 xd sub neg
+dup 0 eq{pop $frb 2 eq{.99}{-.99}ifelse}if dup $frb 2 eq exch 0 lt and{1 add}
+if dup $frb 1 eq exch 0 gt and{1 sub}if 2 div dup $fco div/kdh xd nff $fco sub
+div/kdh2 xd}bd/@dlt_cmyk{$fmp 50 eq{sub neg nff dup 1 gt{1 sub}if div/$dk xd
+sub neg nff dup 1 gt{1 sub}if div/$dy xd sub neg nff dup 1 gt{1 sub}if div/$dm
+xd sub neg nff dup 1 gt{1 sub}if div/$dc xd sub neg nff dup 1 gt{1 sub}if div
+/$dt xd}{$fco nff ge{/$fco nff 1 sub def}if sub neg 2 div dup $fco div/$dk xd
+nff $fco sub div/$dk2 xd sub neg 2 div dup $fco div/$dy xd nff $fco sub div
+/$dy2 xd sub neg 2 div dup $fco div/$dm xd nff $fco sub div/$dm2 xd sub neg 2
+div dup $fco div/$dc xd nff $fco sub div/$dc2 xd sub neg 2 div dup $fco div
+/$dt xd nff $fco sub div/$dt2 xd}ifelse}bd/@dlt{$fse $fss sub dup/nff xd $fmp
+mul $fmp add 100 div round cvi dup 0 le{pop 1}if/$fco xd/$fi 0 def $frb dup 1
+eq exch 2 eq or{$frt dup $frc $frm $fry $frk @tc_5 4 copy cmyk2rgb rgb2hsb 3
+copy/myb xd/mys xd/myh xd $tot $toc $tom $toy $tok @tc_5 cmyk2rgb rgb2hsb 3 1
+roll 4 1 roll 5 1 roll @dlt_hsb}{$frt dup $frc $frm $fry $frk @tc_5 5 copy $tot
+dup $toc $tom $toy $tok @tc_5 5 1 roll 6 1 roll 7 1 roll 8 1 roll 9 1 roll
+@dlt_cmyk}ifelse}bd/@ffnxt{/$fi $fi 1 add def $frb dup 1 eq exch 2 eq or{pop
+pop pop pop myh mys myb $fi $fco lt{kdb add 3 1 roll kds add 3 1 roll kdh add 3
+1 roll}{kdb2 add 3 1 roll kds2 add 3 1 roll kdh2 add 3 1 roll}ifelse 3 copy
+/myb xd/mys xd/myh xd hsb2rgb rgb2cmyk}{$fi $fco lt $fmp 50 eq or{$dk add 5 1
+roll $dy add 5 1 roll $dm add 5 1 roll $dc add 5 1 roll $dt add 5 1 roll}{$dk2
+add 5 1 roll $dy2 add 5 1 roll $dm2 add 5 1 roll $dc2 add 5 1 roll $dt2 add 5 1
+roll}ifelse}ifelse}bd/ffcol{5 copy $fsit 0 eq{setcmykcolor pop}{SepMode_5 0 ne
+{$frn findcmykcustomcolor exch setcustomcolor}{pop pop pop pop $frc $frm $fry
+$frk $frn findcmykcustomcolor exch setcustomcolor}ifelse}ifelse}bd/@ftl{1 index
+4 index sub dup $pad mul dup/$pdw xd 2 mul sub $fst div/$wid xd 2 index sub
+/$hei xd pop Tl @dlt $fss 0 eq{ffcol n 0 0 m 0 $hei l $pdw $hei l $pdw 0 l @cp
+$ffpnt{fill}{@np}ifelse}if $fss $wid mul $pdw add 0 Tl nff{ffcol n 0 0 m 0 $hei
+l $wid $hei l $wid 0 l @cp $ffpnt{fill}{@np}ifelse $wid 0 Tl @ffnxt}repeat 5 rp
+$tot dup $toc $tom $toy $tok @tc_5 ffcol n 0 0 m 0 $hei l $pdw $hei l $pdw 0 l
+@cp $ffpnt{fill}{@np}ifelse 5 rp}bd/@ftrs{1 index 4 index sub dup $rox mul
+/$row xd 2 div 1 index 4 index sub dup $roy mul/$roh xd 2 div 2 copy dup mul
+exch dup mul add sqrt $row dup mul $roh dup mul add sqrt add dup/$hei xd $fst
+div/$wid xd 4 index add $roh add exch 5 index add $row add exch Tl $fan rotate
+pop pop pop pop @dlt $fss 0 eq{ffcol $fty 3 eq{$hei dup neg dup m 2 mul @sqr}{
+0 0 m 0 0 $hei 0 360 arc}ifelse $ffpnt{fill}{@np}ifelse}if 1.0 $pad 2 mul sub
+dup scale $hei $fss $wid mul sub/$hei xd nff{ffcol $fty 3 eq{n $hei dup neg dup
+m 2 mul @sqr}{n 0 0 m 0 0 $hei 0 360 arc}ifelse $ffpnt{fill}{@np}ifelse/$hei
+$hei $wid sub def @ffnxt}repeat 5 rp}bd/@ftc{1 index 4 index sub dup $rox mul
+/$row xd 2 div 1 index 4 index sub dup $roy mul/$roh xd 2 div 2 copy dup mul
+exch dup mul add sqrt $row dup mul $roh dup mul add sqrt add dup/$hei xd $fst
+div/$wid xd 4 index add $roh add exch 5 index add $row add exch Tl pop pop pop
+pop @dlt $fss 0 eq{ffcol $ffpnt{fill}{@np}ifelse}{n}ifelse/$dang 180 $fst 1 sub
+div def/$sang $dang -2 div 180 add def/$eang $dang 2 div 180 add def/$sang
+$sang $dang $fss mul add def/$eang $eang $dang $fss mul add def/$sang $eang
+$dang sub def nff{ffcol n 0 0 m 0 0 $hei $sang $fan add $eang $fan add arc
+$ffpnt{fill}{@np}ifelse 0 0 m 0 0 $hei $eang neg $fan add $sang neg $fan add
+arc $ffpnt{fill}{@np}ifelse/$sang $eang def/$eang $eang $dang add def @ffnxt}
+repeat 5 rp}bd/@fstAdjust{72 0 matrix defaultmatrix dtransform exch dup mul
+exch dup mul add sqrt currentscreen pop pop div dup mul 1 add cvi 2 256 InRange
+$fsc 1 sub dup 0 le{pop 1}if mul/opt$fst xd AutoSteps dup 1 eq exch 3 eq or{
+opt$fst dup dup $fst dup 3 1 roll div exch 3 -1 roll gt{/$adj xd/$fst xd}{pop
+pop}ifelse}if AutoSteps dup 2 eq exch 3 eq or{opt$fst dup dup $fst dup 3 1 roll
+div exch 3 -1 roll lt{/$adj xd/$fst xd}{pop pop}ifelse}if}bd/@ff{/old$fst $fst
+def/$adj 1 def/$fss 0 def $o 1 eq setoverprint AutoSteps 0 gt{@fstAdjust}if 1 1
+$fsc 1 sub{dup 1 sub $fsit 0 eq{$fsa exch 5 mul 5 getinterval aload pop pop
+/$frk xd/$fry xd/$frm xd/$frc xd/$frn _ def/$frt 1 def $fsa exch 5 mul 5
+getinterval aload pop $adj mul cvi $fss add/$fse xd/$tok xd/$toy xd/$tom xd
+/$toc xd/$ton _ def/$tot 1 def}{$fsa exch 7 mul 7 getinterval aload pop pop
+/$frt xd/$frn xd/$frk xd/$fry xd/$frm xd/$frc xd $fsa exch 7 mul 7 getinterval
+aload pop $adj mul cvi $fss add/$fse xd/$tot xd/$ton xd/$tok xd/$toy xd/$tom xd
+/$toc xd}ifelse $fsit 0 eq SepMode_5 0 eq or dup not CurrentInkName_5 $frn eq
+and or{@sv $ctm setmatrix eoclip Bbllx Bblly Bburx Bbury $fty 2 eq{@ftc}{1
+index 3 index m 2 copy l 3 index 1 index l 3 index 3 index l @cp $fty dup 1 eq
+exch 3 eq or{@ftrs}{pop pop pop pop $fan rotate pathbbox @ftl}ifelse}ifelse @rs
+/$fss $fse def}{1 0 0 0 0 _ $o @scc_5{fill}if}ifelse}for @np/$fst old$fst def}
+bd/@Pf{@sv SepMode_5 0 eq $Psc 0 ne or $ink_5 3 eq or{0 J 0 j[]0 d $t $c $m $y
+$k $n $o @scc_5 pop $ctm setmatrix 72 1000 div dup matrix scale dup concat dup
+Bburx exch Bbury exch itransform ceiling cvi/Bbury xd ceiling cvi/Bburx xd
+Bbllx exch Bblly exch itransform floor cvi/Bblly xd floor cvi/Bbllx xd $Prm
+aload pop $Psn load exec}{1 SetGry eofill}ifelse @rs @np}bd/F{matrix
+currentmatrix $sdf{$scf $sca $scp @ss}if $fil 1 eq{@pf}{$fil 2 eq{@ff}{$fil 3
+eq{@Pf}{$t $c $m $y $k $n $o @scc_5{eofill}{@np}ifelse}ifelse}ifelse}ifelse
+$sdf{$dsf $dsa $dsp @ss}if setmatrix}bd/f{@cp F}bd/S{matrix currentmatrix $ctm
+setmatrix $SDF{$SCF $SCA $SCP @ss}if $T $C $M $Y $K $N $O @scc_5{matrix
+currentmatrix $ptm concat stroke setmatrix}{@np}ifelse $SDF{$dsf $dsa $dsp
+@ss}if setmatrix}bd/s{@cp S}bd/B{@gs F @gr S}bd/b{@cp B}bd/_E{5 array astore
+exch cvlit xd}bd/@cc{currentfile $dat readhexstring pop}bd/@sm{/$ctm $ctm
+currentmatrix def}bd/@E{/Bbury xd/Bburx xd/Bblly xd/Bbllx xd}bd/@c{@cp}bd/@p{
+/$fil 1 def 1 eq dup/$vectpat xd{/$pfrg true def}{@gs $t $c $m $y $k $n $o
+@scc_5/$pfrg xd @gr}ifelse/$pm xd/$psy xd/$psx xd/$pyf xd/$pxf xd/$pn xd}bd/@P
+{/$fil 3 def/$Psn xd/$Psc xd array astore/$Prm xd}bd/@k{/$fil 2 def/$fmp xd
+/$roy xd/$rox xd/$pad xd/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$frb xd/$fst
+xd/$fsc xd/$fsa xd/$fsit 0 def}bd/@x{/$fil 2 def/$fmp xd/$roy xd/$rox xd/$pad
+xd/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$frb xd/$fst xd/$fsc xd/$fsa xd
+/$fsit 1 def}bd/@ii{concat 3 index 3 index m 3 index 1 index l 2 copy l 1 index
+3 index l 3 index 3 index l clip pop pop pop pop}bd/tcc{@cc}def/@i{@sm @gs @ii
+6 index 1 ne{/$frg true def pop pop}{1 eq{s1t s1c s1m s1y s1k s1n $O @scc_5
+/$frg xd}{/$frg false def}ifelse 1 eq{@gs $ctm setmatrix F @gr}if}ifelse @np
+/$ury xd/$urx xd/$lly xd/$llx xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul 8
+div ceiling cvi string def $bkg $frg or{$SDF{$SCF $SCA $SCP @ss}if $llx $lly Tl
+$urx $llx sub $ury $lly sub scale $bkg{$t $c $m $y $k $n $o @scc_5 pop}if $wid
+$hei abs $bts 1 eq{$bkg}{$bts}ifelse[$wid 0 0 $hei neg 0 $hei 0
+gt{$hei}{0}ifelse]/tcc load $bts 1 eq{imagemask}{image}ifelse $SDF{$dsf $dsa
+$dsp @ss}if}{$hei abs{tcc pop}repeat}ifelse @gr $ctm setmatrix}bd/@I{@sm @gs
+@ii @np/$ury xd/$urx xd/$lly xd/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat
+$wid $bts mul $ncl mul 8 div ceiling cvi string def $ngx $llx $lly Tl $urx $llx
+sub $ury $lly sub scale $wid $hei abs $bts[$wid 0 0 $hei neg 0 $hei 0
+gt{$hei}{0}ifelse]/@cc load false $ncl ColorImage $SDF{$dsf $dsa $dsp @ss}if
+@gr $ctm setmatrix}bd L2?{/@I_2{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd/$llx xd
+/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling cvi
+string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq{/DeviceRGB}{/DeviceCMYK}
+ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub $ury $lly sub scale 8
+dict begin/ImageType 1 def/Width $wid def/Height $hei abs def/BitsPerComponent
+$bts def/Decode $ncl 1 eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]}
+ifelse}ifelse def/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def
+/DataSource currentfile/ASCII85Decode filter def currentdict end image $SDF
+{$dsf $dsa $dsp @ss}if @gr $ctm setmatrix}bd}{/@I_2{}bd}ifelse/z{exch findfont
+exch scalefont setfont}bd/ZB{9 dict dup begin 4 1 roll/FontType 3 def
+/FontMatrix xd/FontBBox xd/Encoding 256 array def 0 1 255{Encoding exch
+/.notdef put}for/CharStrings 256 dict def CharStrings/.notdef{}put/Metrics 256
+dict def Metrics/.notdef 3 -1 roll put/BuildChar{exch dup/$char exch/Encoding
+get 3 index get def dup/Metrics get $char get aload pop setcachedevice begin
+Encoding exch get CharStrings exch get end exec}def end definefont pop}bd
+/ZBAddChar{findfont begin dup 4 1 roll dup 6 1 roll Encoding 3 1 roll put
+CharStrings 3 1 roll put Metrics 3 1 roll put end}bd/Z{findfont dup maxlength 2
+add dict exch dup{1 index/FID ne{3 index 3 1 roll put}{pop pop}ifelse}forall
+pop dup dup/Encoding get 256 array copy dup/$fe xd/Encoding exch put dup
+/Fontname 3 index put 3 -1 roll dup length 0 ne{0 exch{dup type 0 type eq{exch
+pop}{$fe exch 2 index exch put 1 add}ifelse}forall pop}if dup 256 dict dup
+/$met xd/Metrics exch put dup/FontMatrix get 0 get 1000 mul 1 exch div 3 index
+length 256 eq{0 1 255{dup $fe exch get dup/.notdef eq{pop pop}{5 index 3 -1
+roll get 2 index mul $met 3 1 roll put}ifelse}for}if pop definefont pop pop}bd
+/@ftx{{currentpoint 3 -1 roll(0)dup 3 -1 roll 0 exch put dup @gs true charpath
+$ctm setmatrix @@txt @gr @np stringwidth pop 3 -1 roll add exch m}forall}bd
+/@ft{matrix currentmatrix exch $sdf{$scf $sca $scp @ss}if $fil 1 eq{/@@txt/@pf
+ld @ftx}{$fil 2 eq{/@@txt/@ff ld @ftx}{$fil 3 eq{/@@txt/@Pf ld @ftx}{$t $c $m
+$y $k $n $o @scc_5{show}{pop}ifelse}ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp
+@ss}if setmatrix}bd/@st{matrix currentmatrix exch $SDF{$SCF $SCA $SCP @ss}if $T
+$C $M $Y $K $N $O @scc_5{{currentpoint 3 -1 roll(0)dup 3 -1 roll 0 exch put dup
+@gs true charpath $ctm setmatrix $ptm concat stroke @gr @np stringwidth pop 3
+-1 roll add exch m}forall}{pop}ifelse $SDF{$dsf $dsa $dsp @ss}if setmatrix}bd
+/@te{@ft}bd/@tr{@st}bd/@ta{dup @gs @ft @gr @st}bd/@t@a{dup @gs @st @gr @ft}bd
+/@tm{@sm concat}bd/e{/t{@te}def}bd/r{/t{@tr}def}bd/o{/t{pop}def}bd/a{/t{@ta}
+def}bd/@a{/t{@t@a}def}bd/t{@te}def/T{@np $ctm setmatrix/$ttm matrix def}bd/ddt
+{t}def/@t{/$stm $stm currentmatrix def 3 1 roll m $ttm concat ddt $stm
+setmatrix}bd/@n{/$ttm exch matrix rotate def}bd/@s{}bd/@l{}bd/@B{@gs S @gr F}
+bd/@b{@cp @B}bd/@sep{CurrentInkName_5(Composite)eq{/$ink_5 -1 def}{
+CurrentInkName_5(Cyan)eq{/$ink_5 0 def}{CurrentInkName_5(Magenta)eq{/$ink_5 1
+def}{CurrentInkName_5(Yellow)eq{/$ink_5 2 def}{CurrentInkName_5(Black)eq
+{/$ink_5 3 def}{/$ink_5 4 def}ifelse}ifelse}ifelse}ifelse}ifelse}bd/@whi{@gs
+-72000 dup m -72000 72000 l 72000 dup l 72000 -72000 l @cp 1 SetGry fill @gr}
+bd/@neg{[{1 exch sub}/exec cvx currenttransfer/exec cvx]cvx settransfer @whi}
+bd/currentscale{1 0 dtransform matrix defaultmatrix idtransform dup mul exch
+dup mul add sqrt 0 1 dtransform matrix defaultmatrix idtransform dup mul exch
+dup mul add sqrt}bd/@unscale{}bd/@smc{CMYKMarks{0 exch eq{1 1 1 1 1 _ 0 @scc_5
+pop}{1 0 0 0 0 _ 0 @scc_5 pop}ifelse}{SetGry}ifelse}bd/@gmc{CMYKMarks{GetCmyk
+pop pop pop 1 eq{0}{1}ifelse}{GetGry}ifelse}bd/@sqr{dup 0 rl dup 0 exch rl neg
+0 rl @cp}bd/corelsym{@gs @np Tl -90 rotate 7{45 rotate -.75 2 m 1.5 @sqr fill}
+repeat @gr}bd/@reg_cor{@gs @np Tl -6 -6 m 12 @sqr @gs 1 @gmc sub @smc fill @gr
+4{90 rotate 0 4 m 0 4 rl}repeat stroke 0 0 corelsym @gr}bd/@reg_std{@gs @np Tl
+.3 w 0 0 5 0 360 arc @cp @gs 1 @gmc sub @smc fill @gr 4{90 rotate 0 0 m 0 8 rl
+}repeat stroke @gr}bd/@reg_inv{@gs @np Tl .3 w 0 0 5 0 360 arc @cp @gs 1 @gmc
+sub @smc fill @gr 4{90 rotate 0 0 m 0 8 rl}repeat stroke 0 0 m 0 0 5 90 180 arc
+@cp 0 0 5 270 360 arc @cp fill @gr}bd/@reg_sqr{@gs @np Tl .3 w -7 -7 m 14 @sqr
+fill @gs 1 @gmc sub @smc 0 0 5 0 360 arc @cp save fill restore 4{90 rotate 0 0
+m 0 8 rl}repeat stroke @gr 4{90 rotate 0 0 m 0 5 rl}repeat stroke @gr}bd
+/@reg_lng{@gs @np 0 eq{/$Xlen 16 def/$Ylen 8 def}{/$Xlen 8 def/$Ylen 16 def}
+ifelse Tl .3 w 0 0 5 0 360 arc @cp @gs 1 @gmc sub @smc fill @gr 90 rotate 0 0 m
+0 $Xlen rl 90 rotate 0 0 m 0 $Ylen rl 90 rotate 0 0 m 0 $Xlen rl 90 rotate 0 0
+m 0 $Ylen rl stroke @gr}bd/@setdcol{0 $dcol eq{0 exch 1 exch sub 0 0 0 _ 0
+@scc_5 pop}{1 $dcol eq{0 exch 0 exch 1 exch sub 0 0 _ 0 @scc_5 pop}{2 $dcol eq
+{0 exch 0 exch 0 exch 1 exch sub 0 _ 0 @scc_5 pop}{SetGry}ifelse}ifelse}ifelse
+}bd/$corelmeter[1 .95 .75 .50 .25 .05 0]def/@colormeter{@gs @np 0 @setdcol 0.3
+w/Courier findfont 5 scalefont setfont/yy xd/xx xd 0 1 6{dup xx 20 sub yy m 20
+@sqr @gs $corelmeter exch get dup @setdcol fill @gr stroke xx 18 sub yy 2 add m
+exch dup 3 ge{1 SetGry}{0 @setdcol}ifelse 3 eq{pop}{100 mul 100 exch sub cvi 20
+string cvs show}ifelse/yy yy 20 add def}for @gr}bd/@calbar{@gs Tl @gs @np 0 0 m
+@gs 20 @sqr 1 1 0 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1 0 1
+0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 0 0 1 0 _ 0 @scc_5 pop
+fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 0 1 1 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0
+0 m @gs 20 @sqr 1 0 1 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1
+1 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1 1 1 0 _ 0 @scc_5
+pop fill @gr @gr @np -84 0 Tl @gs 0 0 m 20 @sqr clip 1 1 0 0 0 _ 0 @scc_5 pop
+@gain @gr 20 0 Tl @gs 0 0 m 20 @sqr clip 1 0 1 0 0 _ 0 @scc_5 pop @gain @gr 20
+0 Tl @gs 0 0 m 20 @sqr clip 1 0 0 1 0 _ 0 @scc_5 pop @gain @gr 20 0 Tl @gs 0 0
+m 20 @sqr clip 1 0 0 0 1 _ 0 @scc_5 pop @gain @gr @gr}bd/@gain{10 10 Tl @np 0 0
+m 0 10 360{0 0 15 4 -1 roll dup 5 add arc @cp}for fill}bd/@crop{@gs 10 div
+/$croplen xd .3 w 0 @smc Tl rotate 0 0 m 0 $croplen neg rl stroke @gr}bd
+/deflevel 0 def/@sax{/deflevel deflevel 1 add def}bd/@eax{/deflevel deflevel
+dup 0 gt{1 sub}if def deflevel 0 gt{/eax load}{eax}ifelse}bd/eax{{exec}forall}
+bd/@rax{deflevel 0 eq{@rs @sv}if}bd/@daq{dup type/arraytype eq{{}forall}if}bd
+/@BMP{/@cc xd 12 index 1 gt UseLevel2 true eq and{7 -2 roll pop pop @I_2}{11
+index 1 eq{12 -1 roll pop @i}{7 -2 roll pop pop @I}ifelse}ifelse}bd systemdict
+/pdfmark known not{/pdfmark/cleartomark ld}if/@BeginEPS{$ngx 0 SetGry 0 J 0 j 1
+w[]0 d 10 M false setoverprint @np/EPSDict 200 dict def EPSDict begin @sv
+SepMode_5 0 ne{/colorimage{@gs/sepdict 50 dict def sepdict begin[{1 exch sub}
+/exec cvx currenttransfer/exec cvx]cvx settransfer 3 eq/$rgb xd{$rgb{/daq0 xd
+/daq1 xd/daq2 xd/daq_rgb load}{/daq0 xd/daq1 xd/daq2 xd/daq3 xd/daq_cmyk load}
+ifelse}{/daq0 xd/daq_one load}ifelse 2 index 8 eq/8bit xd $ink_5 dup 0 lt exch
+3 gt or{}{image}ifelse end @gr}bd/2cmyk{3{255 exch sub 3 1 roll}repeat 3 copy
+@MN @MN 3{dup 5 -1 roll sub neg exch}repeat}bd/daq_rgb{/i 0 def/daq2 load exec
+/daq1 load exec/daq0 load exec dup dup length 0 exch getinterval/$data xd{8bit
+{1 index i get 3 index i get 2cmyk 4 $ink_5 neg roll pop pop pop}{pop 0}ifelse
+$data i 3 -1 roll put/i i 1 add def}forall pop pop $data}bd/daq_cmyk{/daq3 load
+exec/daq2 load exec/daq1 load exec/daq0 load exec 4 $ink_5 neg roll pop pop pop
+}bd/daq_one{/$in 0 def/$out 0 def/daq0 load exec dup dup length $rgb{3}{4}
+ifelse idiv 0 exch getinterval/$data xd $data{pop 8bit{$rgb{0 index $in 2 add
+get 1 index $in 1 add get 2 index $in get 2cmyk}{0 index $in get 1 index $in 1
+add get 2 index $in 2 add get 3 index $in 3 add get}ifelse 4 $ink_5 neg roll
+pop pop pop}{0}ifelse $data $out 3 -1 roll put/$in $in $rgb{3}{4}ifelse add def
+/$out $out 1 add def}forall pop $data}bd}if}bd/@EndEPS{@rs end}bd end
+%%EndResource
+%%EndProlog
+%%BeginSetup
+wCorel6Dict begin
+@BeginSysCorelDict
+2.6131 setmiterlimit
+1.00 setflat
+/$fst 128 def
+%%EndSetup
+
+%%Page: 1 1
+%LogicalPage: 1
+%%BeginPageSetup
+@sv
+@sm
+@sv
+%%EndPageSetup
+@rax %Note: Object
+376.90583 229.84243 512.32734 329.07657 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+394.94948 251.19383 m
+398.84967 256.36677 406.62539 257.12220 412.25896 252.87477 c
+417.89225 248.62706 419.30589 240.94403 415.40570 235.77080 c
+411.50580 230.59757 403.72951 229.84243 398.09594 234.08986 c
+392.46293 238.33701 391.04929 246.02060 394.94948 251.19383 c
+@c
+471.13569 236.30598 m
+466.84403 241.15918 467.65474 248.92951 472.93994 253.60271 c
+478.22542 258.27619 486.03657 258.12907 490.32765 253.27559 c
+494.61959 248.42211 493.80888 240.65206 488.52340 235.97858 c
+483.23792 231.30539 475.42706 231.45222 471.13569 236.30598 c
+@c
+501.95225 286.09342 m
+495.60406 284.79798 489.27657 289.37962 487.86605 296.29247 c
+486.45581 303.20532 490.48299 309.89934 496.83090 311.19506 c
+503.17852 312.49020 509.50630 307.90828 510.91682 300.99572 c
+512.32734 294.08258 508.30016 287.38857 501.95225 286.09342 c
+@c
+446.57121 300.99203 m
+452.66457 298.79121 455.67978 291.58384 453.28309 284.94822 c
+450.88583 278.31288 443.96135 274.69559 437.86800 276.89698 c
+431.77465 279.09751 428.75915 286.30488 431.15641 292.94050 c
+433.55310 299.57584 440.47786 303.19313 446.57121 300.99203 c
+@c
+396.46006 326.10983 m
+402.21978 323.14252 404.28142 315.60718 401.05020 309.33581 c
+397.81899 303.06387 390.48633 300.36841 384.72718 303.33572 c
+378.96746 306.30302 376.90583 313.83836 380.13704 320.11030 c
+383.36825 326.38167 390.70120 329.07657 396.46006 326.10983 c
+@c
+S
+
+@rax %Note: Object
+485.05805 257.45272 495.08362 286.43839 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+485.05805 257.45272 m
+495.08362 286.43839 L
+S
+
+@rax %Note: Object
+450.41386 253.97235 473.10066 279.63014 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+473.10066 253.97235 m
+450.41386 279.63014 L
+S
+
+@rax %Note: Object
+401.03461 293.24721 431.48098 308.93329 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+401.03461 308.93329 m
+431.48098 293.24721 L
+S
+
+@rax %Note: Object
+444.29074 301.80926 447.88762 335.86894 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+447.88762 335.86894 m
+444.29074 301.80926 L
+S
+
+@rax %Note: Object
+454.06828 289.76910 487.62624 296.61591 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+487.62624 296.61591 m
+454.06828 289.76910 L
+S
+
+@rax %Note: Object
+412.65269 252.79115 433.27106 280.13868 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+412.65269 252.79115 m
+433.27106 280.13868 L
+S
+
+@rax %Note: Object
+390.01663 255.03732 398.83918 302.13950 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+390.01663 302.13950 m
+398.83918 255.03732 L
+S
+
+@rax %Note: Object
+416.88510 240.94687 468.21515 242.55723 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+416.88510 240.94687 m
+468.21515 242.55723 L
+S
+
+@rax %Note: Object
+459.79398 310.19102 491.87537 340.78734 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+491.87537 310.19102 m
+459.79398 340.78734 L
+S
+
+@rax %Note: Object
+399.24028 323.47616 437.73789 341.99518 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+399.24028 323.47616 m
+437.73789 341.99518 L
+S
+
+@rax %Note: Object
+356.97061 91.75266 400.17175 193.59439 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+392.60494 168.00406 m
+386.91865 164.89928 379.52306 167.41757 376.14217 173.60986 c
+372.76129 179.80243 374.64180 187.38482 380.32809 190.48989 c
+386.01468 193.59439 393.40998 191.07581 396.79087 184.88409 c
+400.17175 178.69153 398.29124 171.10857 392.60494 168.00406 c
+@c
+361.14746 97.03644 m
+356.97061 101.98942 357.96387 109.73820 363.35764 114.28639 c
+368.75140 118.83430 376.55660 118.50378 380.73288 113.55052 c
+384.90945 108.59754 383.91619 100.84847 378.52243 96.30085 c
+373.12866 91.75266 365.32318 92.08318 361.14746 97.03644 c
+@c
+S
+
+@rax %Note: Object
+345.75704 157.43594 375.81789 173.84854 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+375.81789 173.84854 m
+345.75704 157.43594 L
+S
+
+@rax %Note: Object
+341.44894 114.65178 363.52658 140.83540 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+363.52658 114.65178 m
+341.44894 140.83540 L
+S
+
+@rax %Note: Object
+120.82932 137.80828 462.92258 372.19436 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.21600 0.21600 0.00000 @w
+146.89304 284.49354 m
+149.49524 278.56035 146.34822 271.40995 139.88693 268.57616 c
+133.42592 265.74265 126.03373 268.27058 123.43153 274.20378 c
+120.82932 280.13669 123.97663 287.28709 130.43764 290.12088 c
+136.89893 292.95468 144.29083 290.42674 146.89304 284.49354 c
+@c
+184.86085 321.68268 m
+187.46306 315.74948 184.31575 308.59909 177.85474 305.76529 c
+171.39373 302.93178 164.00154 305.45972 161.39934 311.39291 c
+158.79713 317.32583 161.94444 324.47622 168.40545 327.31002 c
+174.86674 330.14381 182.25865 327.61587 184.86085 321.68268 c
+@c
+347.25600 363.73323 m
+349.85820 357.80003 346.71090 350.64964 340.24961 347.81584 c
+333.78860 344.98205 326.39669 347.50998 323.79449 353.44318 c
+321.19200 359.37638 324.33959 366.52677 330.80060 369.36057 c
+337.26161 372.19436 344.65351 369.66643 347.25600 363.73323 c
+@c
+324.07569 158.43997 m
+327.57676 163.89128 335.27367 165.22838 341.21027 161.41578 c
+347.14658 157.60318 349.13310 150.04772 345.63203 144.59641 c
+342.13096 139.14482 334.43376 137.80828 328.49745 141.62060 c
+322.56113 145.43291 320.57461 152.98866 324.07569 158.43997 c
+@c
+462.24227 346.35260 m
+461.56195 339.90973 455.28463 335.25921 448.26831 336.00019 c
+441.25228 336.74088 436.08472 342.60038 436.76532 349.04324 c
+437.44564 355.48611 443.72296 360.13663 450.73899 359.39565 c
+457.75531 358.65468 462.92258 352.79546 462.24227 346.35260 c
+@c
+B
+
+@rax %Note: Object
+74.70142 309.85909 142.37150 375.25380 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+100.76542 328.61027 m
+103.36734 322.67679 100.22031 315.52639 93.75931 312.69288 c
+87.29830 309.85909 79.90583 312.38674 77.30391 318.31994 c
+74.70142 324.25313 77.84901 331.40353 84.31002 334.23732 c
+90.77102 337.07112 98.16321 334.54318 100.76542 328.61027 c
+@c
+139.76957 366.79238 m
+142.37150 360.85946 139.22447 353.70907 132.76318 350.87556 c
+126.30217 348.04148 118.90998 350.56942 116.30778 356.50261 c
+113.70557 362.43609 116.85288 369.58620 123.31389 372.42000 c
+129.77490 375.25380 137.16709 372.72614 139.76957 366.79238 c
+@c
+S
+
+@rax %Note: Object
+97.27398 333.21855 117.72567 353.34794 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+97.27398 333.21855 m
+117.72567 353.34794 L
+S
+
+@rax %Note: Object
+135.69902 322.64532 164.71729 353.44658 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+135.69902 353.44658 m
+164.71729 322.64532 L
+S
+
+@rax %Note: Object
+143.76217 287.34208 164.27339 307.12224 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+164.27339 307.12224 m
+143.76217 287.34208 L
+S
+
+@rax %Note: Object
+94.68567 282.22469 124.32416 313.83156 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 2.01600 2.01600 0.00000 @w
+124.32416 282.22469 m
+94.68567 313.83156 L
+S
+
+@rax %Note: Object
+225.42888 175.73641 254.09480 202.94844 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.21600 0.21600 0.00000 @w
+251.49260 194.48731 m
+254.09480 188.55411 250.94750 181.40372 244.48649 178.57020 c
+238.02548 175.73641 230.63329 178.26435 228.03109 184.19726 c
+225.42888 190.13046 228.57619 197.28085 235.03720 200.11465 c
+241.49849 202.94844 248.89039 200.42050 251.49260 194.48731 c
+@c
+B
+
+@rax %Note: Object
+145.13641 280.15824 168.97578 307.33483 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 7.20000 7.20000 0.00000 @w
+168.18094 307.33483 m
+168.97578 288.41811 161.29417 280.15824 145.13641 282.55635 C
+S
+
+@rax %Note: Object
+184.13433 320.73874 327.42255 355.52183 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 7.20000 7.20000 0.00000 @w
+184.13433 320.73874 m
+327.42255 355.52183 L
+S
+
+@rax %Note: Object
+142.54923 193.37839 229.16920 273.16261 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 7.20000 7.20000 0.00000 @w
+229.16920 193.37839 m
+142.54923 273.16261 L
+S
+
+@rax %Note: Object
+245.88935 193.72450 332.21083 349.59231 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 7.20000 7.20000 0.00000 @w
+332.21083 349.59231 m
+245.88935 193.72450 L
+S
+
+@rax %Note: Object
+248.37732 155.51858 327.31002 183.05546 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 7.20000 7.20000 0.00000 @w
+248.37732 183.05546 m
+327.31002 155.51858 L
+S
+
+@rax %Note: Object
+345.32419 348.85219 441.55786 358.37291 @E
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 7.20000 7.20000 0.00000 @w
+345.32419 358.37291 m
+441.55786 348.85219 L
+S
+
+@rax %Note: Object
+41.17096 247.83364 217.89666 389.56791 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 3.67200 3.67200 0.00000 @w
+129.53395 389.56791 m
+178.20227 389.56791 217.89666 357.73285 217.89666 318.70091 c
+217.89666 279.66869 178.20227 247.83364 129.53395 247.83364 c
+80.86535 247.83364 41.17096 279.66869 41.17096 318.70091 c
+41.17096 357.73285 80.86535 389.56791 129.53395 389.56791 c
+@c
+S
+
+@rax %Note: Object
+274.17231 204.22346 562.46202 416.32866 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 3.67200 3.67200 0.00000 @w
+418.31717 416.32866 m
+497.70964 416.32866 562.46202 368.68791 562.46202 310.27606 c
+562.46202 251.86422 497.70964 204.22346 418.31717 204.22346 c
+338.92498 204.22346 274.17231 251.86422 274.17231 310.27606 c
+274.17231 368.68791 338.92498 416.32866 418.31717 416.32866 c
+@c
+S
+
+@rax %Note: Object
+199.13783 144.75458 275.15962 232.96649 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 3.67200 3.67200 0.00000 @w
+237.14901 232.96649 m
+258.08457 232.96649 275.15962 213.15345 275.15962 188.86054 c
+275.15962 164.56791 258.08457 144.75458 237.14901 144.75458 c
+216.21317 144.75458 199.13783 164.56791 199.13783 188.86054 c
+199.13783 213.15345 216.21317 232.96649 237.14901 232.96649 c
+@c
+S
+
+@rax %Note: Object
+299.84202 86.27698 442.01225 203.23219 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 3.67200 3.67200 0.00000 @w
+370.92728 203.23219 m
+410.07940 203.23219 442.01225 176.96296 442.01225 144.75458 c
+442.01225 112.54620 410.07940 86.27698 370.92728 86.27698 c
+331.77487 86.27698 299.84202 112.54620 299.84202 144.75458 c
+299.84202 176.96296 331.77487 203.23219 370.92728 203.23219 c
+@c
+S
+
+@rax 163.36998 398.81480 204.38646 416.58746 @E
+[0.00010238 0.00000000 0.00000000 0.00010238 163.40693983 399.10958467] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 234532.00000 z
+%CHAR: 0 0 (A) @t
+-365 0 m
+64116 167857 L
+88056 167857 L
+156771 0 L
+131460 0 L
+111873 50836 L
+41669 50836 L
+23239 0 L
+-365 0 L
+@c
+48095 68928 m
+104990 68928 L
+87477 115407 l
+82147 129542 78157 141146 75568 150222 C
+73436 139471 70421 128780 66522 118181 c
+48095 68928 L
+@c
+F
+%CHAR: 156450 0 (S) @t
+166988 53943 m
+187913 55771 L
+188887 47364 191233 40450 194827 35087 c
+198454 29727 204119 25341 211733 22051 c
+219348 18731 227967 17056 237500 17056 c
+245968 17056 253491 18335 259948 20833 c
+266435 23330 271278 26803 274448 31189 c
+277616 35574 279200 40390 279200 45567 c
+279200 50806 277677 55436 274631 59365 c
+271582 63294 266496 66613 259491 69263 c
+254983 71030 245023 73771 229612 77456 c
+214200 81142 203388 84644 197205 87934 c
+189192 92137 183192 97345 179293 103559 c
+175364 109772 173384 116777 173384 124455 c
+173384 132922 175791 140872 180603 148212 c
+185415 155583 192451 161187 201682 164994 c
+210911 168801 221206 170720 232475 170720 c
+244902 170720 255897 168710 265399 164720 c
+274905 160730 282215 154821 287332 147055 c
+292449 139258 295220 130425 295586 120587 C
+274265 118973 L
+273136 129572 269237 137613 262658 143004 c
+256049 148425 246272 151136 233389 151136 c
+219957 151136 210149 148669 204027 143765 c
+197875 138831 194796 132892 194796 125948 c
+194796 119917 196992 114950 201317 111051 c
+205581 107183 216789 103193 234820 99112 c
+252851 95030 265278 91436 271978 88391 c
+281728 83883 288976 78157 293606 71273 c
+298266 64390 300611 56410 300611 47395 c
+300611 38468 298053 30031 292936 22143 c
+287819 14254 280479 8102 270912 3716 c
+261349 -670 250536 -2863 238536 -2863 c
+223368 -2863 210606 -640 200373 3777 c
+190106 8193 182034 14863 176187 23757 c
+170339 32651 167262 42704 166958 53913 C
+166988 53943 L
+@c
+F
+%CHAR: 312900 0 (1) @t
+400286 0 m
+379635 0 L
+379635 131339 L
+374701 126618 368183 121866 360142 117143 c
+352102 112422 344820 108858 338423 106482 C
+338423 126404 L
+349936 131826 360051 138405 368640 146111 c
+377260 153816 383382 161309 386976 168558 C
+400255 168558 L
+400286 0 L
+@c
+F
+T
+@rax 473.57546 426.65244 517.60828 444.37720 @E
+[0.00010238 0.00000000 0.00000000 0.00010238 473.61228790 426.94733572] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 233884.00000 z
+%CHAR: 0 0 (A) @t
+-365 0 m
+63930 167395 L
+87809 167395 L
+156339 0 L
+131089 0 L
+111566 50681 L
+41544 50681 L
+23178 0 L
+-365 0 L
+@c
+47971 68743 m
+104713 68743 L
+87230 115099 l
+81931 129171 77941 140775 75352 149821 C
+73220 139100 70205 128409 66337 117840 c
+47971 68743 L
+@c
+F
+%CHAR: 156000 0 (S) @t
+166508 53788 m
+187402 55616 L
+188376 47240 190691 40356 194285 34996 c
+197910 29635 203544 25249 211128 21960 c
+218743 18670 227332 16995 236834 16995 c
+245271 16995 252764 18275 259221 20772 c
+265678 23270 270520 26742 273658 31097 c
+276825 35483 278409 40265 278409 45443 c
+278409 50681 276886 55311 273840 59210 c
+270795 63108 265769 66428 258764 69078 c
+254287 70814 244327 73555 228976 77240 c
+213595 80926 202783 84428 196630 87687 c
+188651 91860 182681 97068 178782 103282 c
+174853 109495 172873 116439 172873 124115 c
+172873 132551 175280 140470 180061 147811 c
+184874 155151 191879 160755 201077 164532 c
+210275 168339 220540 170258 231809 170258 c
+244205 170258 255170 168248 264642 164258 c
+274114 160268 281424 154359 286511 146623 c
+291597 138856 294369 130054 294734 120246 C
+273505 118632 L
+272378 129201 268510 137211 261931 142602 c
+255353 148024 245576 150735 232723 150735 c
+219321 150735 209544 148267 203453 143364 c
+197331 138460 194255 132521 194255 125607 c
+194255 119607 196417 114642 200742 110774 c
+205006 106876 216154 102886 234154 98835 c
+252155 94754 264520 91190 271221 88144 c
+280967 83667 288155 77971 292785 71088 c
+297414 64205 299760 56225 299760 47270 c
+299760 38377 297201 29940 292115 22082 c
+287028 14224 279688 8071 270155 3716 c
+260591 -670 249809 -2863 237870 -2863 c
+222733 -2863 210032 -640 199798 3746 c
+189564 8163 181493 14833 175676 23666 c
+169858 32529 166782 42580 166477 53788 C
+166508 53788 L
+@c
+F
+%CHAR: 312000 0 (2) @t
+429749 19767 m
+429719 0 L
+319066 0 L
+318914 4934 319706 9686 321472 14254 c
+324274 21777 328782 29209 334995 36519 c
+341209 43828 350194 52296 361889 61890 c
+380073 76814 392378 88632 398774 97342 c
+405170 106053 408368 114307 408368 122074 c
+408368 130206 405444 137090 399626 142663 c
+393809 148267 386195 151070 376844 151070 c
+366976 151070 359026 148085 353118 142176 c
+347178 136237 344133 127983 344072 117505 C
+322934 119668 L
+324396 135414 329848 147445 339290 155699 c
+348732 163953 361402 168095 377301 168095 c
+393352 168095 406083 163618 415434 154724 c
+424815 145831 429505 134775 429505 121617 c
+429505 114916 428135 108307 425394 101850 c
+422652 95393 418084 88540 411749 81413 c
+405413 74256 394814 64418 380042 51961 c
+367737 41605 359788 34569 356316 30884 c
+352813 27199 349889 23452 347605 19737 C
+429749 19767 L
+@c
+F
+T
+@rax 152.16265 141.66057 196.49282 159.44570 @E
+[0.00010238 0.00000000 0.00000000 0.00010238 152.19946733 141.96769757] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 234532.00000 z
+%CHAR: 0 0 (A) @t
+-365 0 m
+64116 167857 L
+88056 167857 L
+156771 0 L
+131460 0 L
+111873 50836 L
+41669 50836 L
+23239 0 L
+-365 0 L
+@c
+48095 68928 m
+104990 68928 L
+87477 115407 l
+82147 129542 78157 141146 75568 150222 C
+73436 139471 70421 128780 66522 118181 c
+48095 68928 L
+@c
+F
+%CHAR: 156450 0 (S) @t
+166988 53943 m
+187913 55771 L
+188887 47364 191233 40450 194827 35087 c
+198454 29727 204119 25341 211733 22051 c
+219348 18731 227967 17056 237500 17056 c
+245968 17056 253491 18335 259948 20833 c
+266435 23330 271278 26803 274448 31189 c
+277616 35574 279200 40390 279200 45567 c
+279200 50806 277677 55436 274631 59365 c
+271582 63294 266496 66613 259491 69263 c
+254983 71030 245023 73771 229612 77456 c
+214200 81142 203388 84644 197205 87934 c
+189192 92137 183192 97345 179293 103559 c
+175364 109772 173384 116777 173384 124455 c
+173384 132922 175791 140872 180603 148212 c
+185415 155583 192451 161187 201682 164994 c
+210911 168801 221206 170720 232475 170720 c
+244902 170720 255897 168710 265399 164720 c
+274905 160730 282215 154821 287332 147055 c
+292449 139258 295220 130425 295586 120587 C
+274265 118973 L
+273136 129572 269237 137613 262658 143004 c
+256049 148425 246272 151136 233389 151136 c
+219957 151136 210149 148669 204027 143765 c
+197875 138831 194796 132892 194796 125948 c
+194796 119917 196992 114950 201317 111051 c
+205581 107183 216789 103193 234820 99112 c
+252851 95030 265278 91436 271978 88391 c
+281728 83883 288976 78157 293606 71273 c
+298266 64390 300611 56410 300611 47395 c
+300611 38468 298053 30031 292936 22143 c
+287819 14254 280479 8102 270912 3716 c
+261349 -670 250536 -2863 238536 -2863 c
+223368 -2863 210606 -640 200373 3777 c
+190106 8193 182034 14863 176187 23757 c
+170339 32651 167262 42704 166958 53913 C
+166988 53943 L
+@c
+F
+%CHAR: 312900 0 (3) @t
+322738 44319 m
+343358 47060 L
+345703 35392 349754 26955 355422 21808 c
+361087 16660 368061 14071 376224 14071 c
+385910 14071 394103 17452 400773 24153 c
+407443 30854 410793 39202 410793 49100 c
+410793 58573 407687 66400 401534 72522 c
+395351 78675 387463 81751 377930 81751 c
+374031 81751 369188 80989 363401 79467 C
+365686 97558 L
+367026 97406 368153 97315 369006 97315 c
+377777 97315 385696 99599 392702 104168 c
+399707 108736 403240 115833 403240 125369 c
+403240 132922 400681 139227 395565 144161 c
+390448 149095 383838 151593 375767 151593 c
+367757 151593 361056 149065 355726 144039 c
+350363 139014 346921 131430 345398 121379 C
+324809 125034 L
+327306 138862 333063 149583 341957 157167 c
+350881 164751 362031 168558 375310 168558 c
+384448 168558 392915 166578 400590 162679 c
+408296 158750 414205 153359 418286 146567 c
+422367 139775 424438 132526 424438 124912 c
+424438 117663 422489 111051 418591 105112 c
+414692 99173 408905 94421 401291 90919 C
+411220 88634 418926 83852 424408 76664 c
+429890 69446 432665 60400 432665 49557 c
+432665 34935 427301 22478 416641 12305 c
+405951 2132 392427 -2985 376102 -2985 c
+361361 -2985 349114 1401 339398 10173 c
+329682 18945 324108 30366 322738 44319 C
+@c
+F
+T
+@rax 452.24504 153.16923 496.50775 170.94217 @E
+[0.00010238 0.00000000 0.00000000 0.00010238 452.28183306 153.46419486] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 234532.00000 z
+%CHAR: 0 0 (A) @t
+-365 0 m
+64116 167857 L
+88056 167857 L
+156771 0 L
+131460 0 L
+111873 50836 L
+41669 50836 L
+23239 0 L
+-365 0 L
+@c
+48095 68928 m
+104990 68928 L
+87477 115407 l
+82147 129542 78157 141146 75568 150222 C
+73436 139471 70421 128780 66522 118181 c
+48095 68928 L
+@c
+F
+%CHAR: 156450 0 (S) @t
+166988 53943 m
+187913 55771 L
+188887 47364 191233 40450 194827 35087 c
+198454 29727 204119 25341 211733 22051 c
+219348 18731 227967 17056 237500 17056 c
+245968 17056 253491 18335 259948 20833 c
+266435 23330 271278 26803 274448 31189 c
+277616 35574 279200 40390 279200 45567 c
+279200 50806 277677 55436 274631 59365 c
+271582 63294 266496 66613 259491 69263 c
+254983 71030 245023 73771 229612 77456 c
+214200 81142 203388 84644 197205 87934 c
+189192 92137 183192 97345 179293 103559 c
+175364 109772 173384 116777 173384 124455 c
+173384 132922 175791 140872 180603 148212 c
+185415 155583 192451 161187 201682 164994 c
+210911 168801 221206 170720 232475 170720 c
+244902 170720 255897 168710 265399 164720 c
+274905 160730 282215 154821 287332 147055 c
+292449 139258 295220 130425 295586 120587 C
+274265 118973 L
+273136 129572 269237 137613 262658 143004 c
+256049 148425 246272 151136 233389 151136 c
+219957 151136 210149 148669 204027 143765 c
+197875 138831 194796 132892 194796 125948 c
+194796 119917 196992 114950 201317 111051 c
+205581 107183 216789 103193 234820 99112 c
+252851 95030 265278 91436 271978 88391 c
+281728 83883 288976 78157 293606 71273 c
+298266 64390 300611 56410 300611 47395 c
+300611 38468 298053 30031 292936 22143 c
+287819 14254 280479 8102 270912 3716 c
+261349 -670 250536 -2863 238536 -2863 c
+223368 -2863 210606 -640 200373 3777 c
+190106 8193 182034 14863 176187 23757 c
+170339 32651 167262 42704 166958 53913 C
+166988 53943 L
+@c
+F
+%CHAR: 312900 0 (4) @t
+388712 0 m
+388681 40176 L
+315854 40176 L
+315854 59090 L
+392488 167857 L
+409301 167857 L
+409301 59090 L
+431995 59090 L
+431995 40176 L
+409301 40176 L
+409301 0 L
+388712 0 L
+@c
+388712 59090 m
+388681 134780 L
+336139 59090 L
+388712 59090 L
+@c
+F
+T
+%%PageTrailer
+@rs
+@rs
+%%Trailer
+@EndSysCorelDict
+end
+%%DocumentSuppliedResources: procset wCorel6Dict
+%%EOF
diff --git a/doc/slides/obr5.eps b/doc/slides/obr5.eps
new file mode 100644
index 00000000..e0e7ca69
--- /dev/null
+++ b/doc/slides/obr5.eps
@@ -0,0 +1,3072 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 12 86 583 414
+%%Creator: CorelDRAW
+%%Title:
+%%CreationDate: Mon Jun 26 15:00:02 2000
+%%DocumentProcessColors: Black
+%%DocumentSuppliedResources: (atend)
+%%EndComments
+%%BeginProlog
+/AutoFlatness true def
+/AutoSteps 0 def
+/CMYKMarks true def
+/UseLevel2 false def
+%Color profile: Disabled
+%%BeginResource: procset wCorel6Dict 6.0 0
+% Copyright (c)1992-96 Corel Corporation
+% All rights reserved. v6.0 r1.1
+/wCorel6Dict 300 dict def wCorel6Dict begin/bd{bind def}bind def/ld{load def}
+bd/xd{exch def}bd/_ null def/rp{{pop}repeat}bd/@cp/closepath ld/@gs/gsave ld
+/@gr/grestore ld/@np/newpath ld/Tl/translate ld/$sv 0 def/@sv{/$sv save def}bd
+/@rs{$sv restore}bd/spg/showpage ld/showpage{}bd currentscreen/@dsp xd/$dsp
+/@dsp def/$dsa xd/$dsf xd/$sdf false def/$SDF false def/$Scra 0 def/SetScr
+/setscreen ld/setscreen{pop pop pop}bd/@ss{2 index 0 eq{$dsf 3 1 roll 4 -1 roll
+pop}if exch $Scra add exch load SetScr}bd/SepMode_5 where{pop}{/SepMode_5 0
+def}ifelse/CurrentInkName_5 where{pop}{/CurrentInkName_5(Composite)def}ifelse
+/$ink_5 where{pop}{/$ink_5 -1 def}ifelse/$c 0 def/$m 0 def/$y 0 def/$k 0 def
+/$t 1 def/$n _ def/$o 0 def/$fil 0 def/$C 0 def/$M 0 def/$Y 0 def/$K 0 def/$T 1
+def/$N _ def/$O 0 def/$PF false def/s1c 0 def/s1m 0 def/s1y 0 def/s1k 0 def
+/s1t 0 def/s1n _ def/$bkg false def/SK 0 def/SM 0 def/SY 0 def/SC 0 def/$op
+false def matrix currentmatrix/$ctm xd/$ptm matrix def/$ttm matrix def/$stm
+matrix def/$fst 128 def/$pad 0 def/$rox 0 def/$roy 0 def/$fmp 50 def/$ffpnt
+true def/CorelDrawReencodeVect[16#0/grave 16#5/breve 16#6/dotaccent 16#8/ring
+16#A/hungarumlaut 16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle
+16#60/grave 16#7C/bar
+16#82/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl
+16#88/circumflex/perthousand/Scaron/guilsinglleft/OE
+16#91/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash
+16#98/tilde/trademark/scaron/guilsinglright/oe 16#9F/Ydieresis
+16#A1/exclamdown/cent/sterling/currency/yen/brokenbar/section
+16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/minus/registered/macron
+16#b0/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
+16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
+16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
+16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
+16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
+16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
+16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/L2?/languagelevel where{pop languagelevel 2 ge}{false}ifelse def
+/@BeginSysCorelDict{systemdict/Corel30Dict known{systemdict/Corel30Dict get
+exec}if}bd/@EndSysCorelDict{systemdict/Corel30Dict known{end}if}bd AutoFlatness
+{/@ifl{dup currentflat exch sub 10 gt{
+([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator]\n)print flush
+@np exit}{currentflat 2 add setflat}ifelse}bd/@fill/fill ld/fill{currentflat{
+{@fill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@eofill/eofill ld/eofill
+{currentflat{{@eofill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@clip
+/clip ld/clip{currentflat{{@clip}stopped{@ifl}{exit}ifelse}bind loop setflat}
+bd/@eoclip/eoclip ld/eoclip{currentflat{{@eoclip}stopped{@ifl}{exit}ifelse}
+bind loop setflat}bd/@stroke/stroke ld/stroke{currentflat{{@stroke}stopped
+{@ifl}{exit}ifelse}bind loop setflat}bd}if L2?{/@ssa{true setstrokeadjust}bd}{
+/@ssa{}bd}ifelse/d/setdash ld/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit
+ld/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd/W/eoclip ld/c/curveto ld/C/c ld/l
+/lineto ld/L/l ld/rl/rlineto ld/m/moveto ld/n/newpath ld/N/newpath ld/P{11 rp}
+bd/u{}bd/U{}bd/A{pop}bd/q/@gs ld/Q/@gr ld/&{}bd/@j{@sv @np}bd/@J{@rs}bd/g{1
+exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def}bd/G{1
+sub neg/$K xd _ 1 0 0 0/$C xd/$M xd/$Y xd/$T xd/$N xd}bd/k{1 index type
+/stringtype eq{/$t xd/$n xd}{/$t 0 def/$n _ def}ifelse/$k xd/$y xd/$m xd/$c xd
+/$fil 0 def}bd/K{1 index type/stringtype eq{/$T xd/$N xd}{/$T 0 def/$N _ def}
+ifelse/$K xd/$Y xd/$M xd/$C xd}bd/x/k ld/X/K ld/sf{1 index type/stringtype eq{
+/s1t xd/s1n xd}{/s1t 0 def/s1n _ def}ifelse/s1k xd/s1y xd/s1m xd/s1c xd}bd/i{
+dup 0 ne{setflat}{pop}ifelse}bd/v{4 -2 roll 2 copy 6 -2 roll c}bd/V/v ld/y{2
+copy c}bd/Y/y ld/@w{matrix rotate/$ptm xd matrix scale $ptm dup concatmatrix
+/$ptm xd 1 eq{$ptm exch dup concatmatrix/$ptm xd}if 1 w}bd/@g{1 eq dup/$sdf xd
+{/$scp xd/$sca xd/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd/$SCA xd/$SCF xd}
+if}bd/@D{2 index 0 eq{$dsf 3 1 roll 4 -1 roll pop}if 3 copy exch $Scra add exch
+load SetScr/$dsp xd/$dsa xd/$dsf xd}bd/$ngx{$SDF{$SCF SepMode_5 0 eq{$SCA}
+{$dsa}ifelse $SCP @ss}if}bd/p{/$pm xd 7 rp/$pyf xd/$pxf xd/$pn xd/$fil 1 def}
+bd/@MN{2 copy le{pop}{exch pop}ifelse}bd/@MX{2 copy ge{pop}{exch pop}ifelse}bd
+/InRange{3 -1 roll @MN @MX}bd/wDstChck{2 1 roll dup 3 -1 roll eq{1 add}if}bd
+/@dot{dup mul exch dup mul add 1 exch sub}bd/@lin{exch pop abs 1 exch sub}bd
+/cmyk2rgb{3{dup 5 -1 roll add 1 exch sub dup 0 lt{pop 0}if exch}repeat pop}bd
+/rgb2cmyk{3{1 exch sub 3 1 roll}repeat 3 copy @MN @MN 3{dup 5 -1 roll sub neg
+exch}repeat}bd/rgb2g{2 index .299 mul 2 index .587 mul add 1 index .114 mul add
+4 1 roll pop pop pop}bd/WaldoColor_5 where{pop}{/SetRgb/setrgbcolor ld/GetRgb
+/currentrgbcolor ld/SetGry/setgray ld/GetGry/currentgray ld/SetRgb2 systemdict
+/setrgbcolor get def/GetRgb2 systemdict/currentrgbcolor get def/SetHsb
+systemdict/sethsbcolor get def/GetHsb systemdict/currenthsbcolor get def
+/rgb2hsb{SetRgb2 GetHsb}bd/hsb2rgb{3 -1 roll dup floor sub 3 1 roll SetHsb
+GetRgb2}bd/setcmykcolor where{pop/SetCmyk_5/setcmykcolor ld}{/SetCmyk_5{
+cmyk2rgb SetRgb}bd}ifelse/currentcmykcolor where{pop/GetCmyk/currentcmykcolor
+ld}{/GetCmyk{GetRgb rgb2cmyk}bd}ifelse/setoverprint where{pop}{/setoverprint{
+/$op xd}bd}ifelse/currentoverprint where{pop}{/currentoverprint{$op}bd}ifelse
+/@tc_5{5 -1 roll dup 1 ge{pop}{4{dup 6 -1 roll mul exch}repeat pop}ifelse}bd
+/@trp{exch pop 5 1 roll @tc_5}bd/setprocesscolor_5{SepMode_5 0 eq{SetCmyk_5}{0
+4 $ink_5 sub index exch pop 5 1 roll pop pop pop pop SepsColor true eq{$ink_5 3
+gt{1 sub neg SetGry}{0 0 0 4 $ink_5 roll SetCmyk_5}ifelse}{1 sub neg SetGry}
+ifelse}ifelse}bd/findcmykcustomcolor where{pop}{/findcmykcustomcolor{5 array
+astore}bd}ifelse/setcustomcolor where{pop}{/setcustomcolor{exch aload pop
+SepMode_5 0 eq{pop @tc_5 setprocesscolor_5}{CurrentInkName_5 eq{4 index}{0}
+ifelse 6 1 roll 5 rp 1 sub neg SetGry}ifelse}bd}ifelse/@scc_5{dup type
+/booleantype eq{setoverprint}{1 eq setoverprint}ifelse dup _ eq{pop
+setprocesscolor_5 pop}{findcmykcustomcolor exch setcustomcolor}ifelse SepMode_5
+0 eq{true}{GetGry 1 eq currentoverprint and not}ifelse}bd/colorimage where{pop
+/ColorImage{colorimage}def}{/ColorImage{/ncolors xd pop/dataaq xd{dataaq
+ncolors dup 3 eq{/$dat xd 0 1 $dat length 3 div 1 sub{dup 3 mul $dat 1 index
+get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div rgb2g
+255 mul cvi exch pop $dat 3 1 roll put}for $dat 0 $dat length 3 idiv
+getinterval pop}{4 eq{/$dat xd 0 1 $dat length 4 div 1 sub{dup 4 mul $dat 1
+index get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div
+$dat 4 index 3 add get 255 div cmyk2rgb rgb2g 255 mul cvi exch pop $dat 3 1
+roll put}for $dat 0 $dat length ncolors idiv getinterval}if}ifelse}image}bd
+}ifelse/setcmykcolor{1 5 1 roll _ currentoverprint @scc_5/$ffpnt xd}bd
+/currentcmykcolor{0 0 0 0}bd/setrgbcolor{rgb2cmyk setcmykcolor}bd
+/currentrgbcolor{currentcmykcolor cmyk2rgb}bd/sethsbcolor{hsb2rgb setrgbcolor}
+bd/currenthsbcolor{currentrgbcolor rgb2hsb}bd/setgray{dup dup setrgbcolor}bd
+/currentgray{currentrgbcolor rgb2g}bd}ifelse/WaldoColor_5 true def/@sft{$tllx
+$pxf add dup $tllx gt{$pwid sub}if/$tx xd $tury $pyf sub dup $tury lt{$phei
+add}if/$ty xd}bd/@stb{pathbbox/$ury xd/$urx xd/$lly xd/$llx xd}bd/@ep{{cvx exec
+}forall}bd/@tp{@sv/$in true def 2 copy dup $lly le{/$in false def}if $phei sub
+$ury ge{/$in false def}if dup $urx ge{/$in false def}if $pwid add $llx le{/$in
+false def}if $in{@np 2 copy m $pwid 0 rl 0 $phei neg rl $pwid neg 0 rl 0 $phei
+rl clip @np $pn cvlit load aload pop 7 -1 roll 5 index sub 7 -1 roll 3 index
+sub Tl matrix currentmatrix/$ctm xd @ep pop pop pop pop}{pop pop}ifelse @rs}bd
+/@th{@sft 0 1 $tly 1 sub{dup $psx mul $tx add{dup $llx gt{$pwid sub}{exit}
+ifelse}loop exch $phei mul $ty exch sub 0 1 $tlx 1 sub{$pwid mul 3 copy 3 -1
+roll add exch @tp pop}for pop pop}for}bd/@tv{@sft 0 1 $tlx 1 sub{dup $pwid mul
+$tx add exch $psy mul $ty exch sub{dup $ury lt{$phei add}{exit}ifelse}loop 0 1
+$tly 1 sub{$phei mul 3 copy sub @tp pop}for pop pop}for}bd/@pf{@gs $ctm
+setmatrix $pm concat @stb eoclip Bburx Bbury $pm itransform/$tury xd/$turx xd
+Bbllx Bblly $pm itransform/$tlly xd/$tllx xd/$wid $turx $tllx sub def/$hei
+$tury $tlly sub def @gs $vectpat{1 0 0 0 0 _ $o @scc_5{eofill}if}{$t $c $m $y
+$k $n $o @scc_5{SepMode_5 0 eq $pfrg or{$tllx $tlly Tl $wid $hei scale <00> 8 1
+false[8 0 0 1 0 0]{}imagemask}{/$bkg true def}ifelse}if}ifelse @gr $wid 0 gt
+$hei 0 gt and{$pn cvlit load aload pop/$pd xd 3 -1 roll sub/$phei xd exch sub
+/$pwid xd $wid $pwid div ceiling 1 add/$tlx xd $hei $phei div ceiling 1 add
+/$tly xd $psx 0 eq{@tv}{@th}ifelse}if @gr @np/$bkg false def}bd/@dlt_hsb{$fco
+nff ge{/$fco nff 1 sub def}if sub neg 2 div dup $fco div/kdb xd nff $fco sub
+div/kdb2 xd sub neg 2 div dup $fco div/kds xd nff $fco sub div/kds2 xd sub neg
+dup 0 eq{pop $frb 2 eq{.99}{-.99}ifelse}if dup $frb 2 eq exch 0 lt and{1 add}
+if dup $frb 1 eq exch 0 gt and{1 sub}if 2 div dup $fco div/kdh xd nff $fco sub
+div/kdh2 xd}bd/@dlt_cmyk{$fmp 50 eq{sub neg nff dup 1 gt{1 sub}if div/$dk xd
+sub neg nff dup 1 gt{1 sub}if div/$dy xd sub neg nff dup 1 gt{1 sub}if div/$dm
+xd sub neg nff dup 1 gt{1 sub}if div/$dc xd sub neg nff dup 1 gt{1 sub}if div
+/$dt xd}{$fco nff ge{/$fco nff 1 sub def}if sub neg 2 div dup $fco div/$dk xd
+nff $fco sub div/$dk2 xd sub neg 2 div dup $fco div/$dy xd nff $fco sub div
+/$dy2 xd sub neg 2 div dup $fco div/$dm xd nff $fco sub div/$dm2 xd sub neg 2
+div dup $fco div/$dc xd nff $fco sub div/$dc2 xd sub neg 2 div dup $fco div
+/$dt xd nff $fco sub div/$dt2 xd}ifelse}bd/@dlt{$fse $fss sub dup/nff xd $fmp
+mul $fmp add 100 div round cvi dup 0 le{pop 1}if/$fco xd/$fi 0 def $frb dup 1
+eq exch 2 eq or{$frt dup $frc $frm $fry $frk @tc_5 4 copy cmyk2rgb rgb2hsb 3
+copy/myb xd/mys xd/myh xd $tot $toc $tom $toy $tok @tc_5 cmyk2rgb rgb2hsb 3 1
+roll 4 1 roll 5 1 roll @dlt_hsb}{$frt dup $frc $frm $fry $frk @tc_5 5 copy $tot
+dup $toc $tom $toy $tok @tc_5 5 1 roll 6 1 roll 7 1 roll 8 1 roll 9 1 roll
+@dlt_cmyk}ifelse}bd/@ffnxt{/$fi $fi 1 add def $frb dup 1 eq exch 2 eq or{pop
+pop pop pop myh mys myb $fi $fco lt{kdb add 3 1 roll kds add 3 1 roll kdh add 3
+1 roll}{kdb2 add 3 1 roll kds2 add 3 1 roll kdh2 add 3 1 roll}ifelse 3 copy
+/myb xd/mys xd/myh xd hsb2rgb rgb2cmyk}{$fi $fco lt $fmp 50 eq or{$dk add 5 1
+roll $dy add 5 1 roll $dm add 5 1 roll $dc add 5 1 roll $dt add 5 1 roll}{$dk2
+add 5 1 roll $dy2 add 5 1 roll $dm2 add 5 1 roll $dc2 add 5 1 roll $dt2 add 5 1
+roll}ifelse}ifelse}bd/ffcol{5 copy $fsit 0 eq{setcmykcolor pop}{SepMode_5 0 ne
+{$frn findcmykcustomcolor exch setcustomcolor}{pop pop pop pop $frc $frm $fry
+$frk $frn findcmykcustomcolor exch setcustomcolor}ifelse}ifelse}bd/@ftl{1 index
+4 index sub dup $pad mul dup/$pdw xd 2 mul sub $fst div/$wid xd 2 index sub
+/$hei xd pop Tl @dlt $fss 0 eq{ffcol n 0 0 m 0 $hei l $pdw $hei l $pdw 0 l @cp
+$ffpnt{fill}{@np}ifelse}if $fss $wid mul $pdw add 0 Tl nff{ffcol n 0 0 m 0 $hei
+l $wid $hei l $wid 0 l @cp $ffpnt{fill}{@np}ifelse $wid 0 Tl @ffnxt}repeat 5 rp
+$tot dup $toc $tom $toy $tok @tc_5 ffcol n 0 0 m 0 $hei l $pdw $hei l $pdw 0 l
+@cp $ffpnt{fill}{@np}ifelse 5 rp}bd/@ftrs{1 index 4 index sub dup $rox mul
+/$row xd 2 div 1 index 4 index sub dup $roy mul/$roh xd 2 div 2 copy dup mul
+exch dup mul add sqrt $row dup mul $roh dup mul add sqrt add dup/$hei xd $fst
+div/$wid xd 4 index add $roh add exch 5 index add $row add exch Tl $fan rotate
+pop pop pop pop @dlt $fss 0 eq{ffcol $fty 3 eq{$hei dup neg dup m 2 mul @sqr}{
+0 0 m 0 0 $hei 0 360 arc}ifelse $ffpnt{fill}{@np}ifelse}if 1.0 $pad 2 mul sub
+dup scale $hei $fss $wid mul sub/$hei xd nff{ffcol $fty 3 eq{n $hei dup neg dup
+m 2 mul @sqr}{n 0 0 m 0 0 $hei 0 360 arc}ifelse $ffpnt{fill}{@np}ifelse/$hei
+$hei $wid sub def @ffnxt}repeat 5 rp}bd/@ftc{1 index 4 index sub dup $rox mul
+/$row xd 2 div 1 index 4 index sub dup $roy mul/$roh xd 2 div 2 copy dup mul
+exch dup mul add sqrt $row dup mul $roh dup mul add sqrt add dup/$hei xd $fst
+div/$wid xd 4 index add $roh add exch 5 index add $row add exch Tl pop pop pop
+pop @dlt $fss 0 eq{ffcol $ffpnt{fill}{@np}ifelse}{n}ifelse/$dang 180 $fst 1 sub
+div def/$sang $dang -2 div 180 add def/$eang $dang 2 div 180 add def/$sang
+$sang $dang $fss mul add def/$eang $eang $dang $fss mul add def/$sang $eang
+$dang sub def nff{ffcol n 0 0 m 0 0 $hei $sang $fan add $eang $fan add arc
+$ffpnt{fill}{@np}ifelse 0 0 m 0 0 $hei $eang neg $fan add $sang neg $fan add
+arc $ffpnt{fill}{@np}ifelse/$sang $eang def/$eang $eang $dang add def @ffnxt}
+repeat 5 rp}bd/@fstAdjust{72 0 matrix defaultmatrix dtransform exch dup mul
+exch dup mul add sqrt currentscreen pop pop div dup mul 1 add cvi 2 256 InRange
+$fsc 1 sub dup 0 le{pop 1}if mul/opt$fst xd AutoSteps dup 1 eq exch 3 eq or{
+opt$fst dup dup $fst dup 3 1 roll div exch 3 -1 roll gt{/$adj xd/$fst xd}{pop
+pop}ifelse}if AutoSteps dup 2 eq exch 3 eq or{opt$fst dup dup $fst dup 3 1 roll
+div exch 3 -1 roll lt{/$adj xd/$fst xd}{pop pop}ifelse}if}bd/@ff{/old$fst $fst
+def/$adj 1 def/$fss 0 def $o 1 eq setoverprint AutoSteps 0 gt{@fstAdjust}if 1 1
+$fsc 1 sub{dup 1 sub $fsit 0 eq{$fsa exch 5 mul 5 getinterval aload pop pop
+/$frk xd/$fry xd/$frm xd/$frc xd/$frn _ def/$frt 1 def $fsa exch 5 mul 5
+getinterval aload pop $adj mul cvi $fss add/$fse xd/$tok xd/$toy xd/$tom xd
+/$toc xd/$ton _ def/$tot 1 def}{$fsa exch 7 mul 7 getinterval aload pop pop
+/$frt xd/$frn xd/$frk xd/$fry xd/$frm xd/$frc xd $fsa exch 7 mul 7 getinterval
+aload pop $adj mul cvi $fss add/$fse xd/$tot xd/$ton xd/$tok xd/$toy xd/$tom xd
+/$toc xd}ifelse $fsit 0 eq SepMode_5 0 eq or dup not CurrentInkName_5 $frn eq
+and or{@sv $ctm setmatrix eoclip Bbllx Bblly Bburx Bbury $fty 2 eq{@ftc}{1
+index 3 index m 2 copy l 3 index 1 index l 3 index 3 index l @cp $fty dup 1 eq
+exch 3 eq or{@ftrs}{pop pop pop pop $fan rotate pathbbox @ftl}ifelse}ifelse @rs
+/$fss $fse def}{1 0 0 0 0 _ $o @scc_5{fill}if}ifelse}for @np/$fst old$fst def}
+bd/@Pf{@sv SepMode_5 0 eq $Psc 0 ne or $ink_5 3 eq or{0 J 0 j[]0 d $t $c $m $y
+$k $n $o @scc_5 pop $ctm setmatrix 72 1000 div dup matrix scale dup concat dup
+Bburx exch Bbury exch itransform ceiling cvi/Bbury xd ceiling cvi/Bburx xd
+Bbllx exch Bblly exch itransform floor cvi/Bblly xd floor cvi/Bbllx xd $Prm
+aload pop $Psn load exec}{1 SetGry eofill}ifelse @rs @np}bd/F{matrix
+currentmatrix $sdf{$scf $sca $scp @ss}if $fil 1 eq{@pf}{$fil 2 eq{@ff}{$fil 3
+eq{@Pf}{$t $c $m $y $k $n $o @scc_5{eofill}{@np}ifelse}ifelse}ifelse}ifelse
+$sdf{$dsf $dsa $dsp @ss}if setmatrix}bd/f{@cp F}bd/S{matrix currentmatrix $ctm
+setmatrix $SDF{$SCF $SCA $SCP @ss}if $T $C $M $Y $K $N $O @scc_5{matrix
+currentmatrix $ptm concat stroke setmatrix}{@np}ifelse $SDF{$dsf $dsa $dsp
+@ss}if setmatrix}bd/s{@cp S}bd/B{@gs F @gr S}bd/b{@cp B}bd/_E{5 array astore
+exch cvlit xd}bd/@cc{currentfile $dat readhexstring pop}bd/@sm{/$ctm $ctm
+currentmatrix def}bd/@E{/Bbury xd/Bburx xd/Bblly xd/Bbllx xd}bd/@c{@cp}bd/@p{
+/$fil 1 def 1 eq dup/$vectpat xd{/$pfrg true def}{@gs $t $c $m $y $k $n $o
+@scc_5/$pfrg xd @gr}ifelse/$pm xd/$psy xd/$psx xd/$pyf xd/$pxf xd/$pn xd}bd/@P
+{/$fil 3 def/$Psn xd/$Psc xd array astore/$Prm xd}bd/@k{/$fil 2 def/$fmp xd
+/$roy xd/$rox xd/$pad xd/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$frb xd/$fst
+xd/$fsc xd/$fsa xd/$fsit 0 def}bd/@x{/$fil 2 def/$fmp xd/$roy xd/$rox xd/$pad
+xd/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$frb xd/$fst xd/$fsc xd/$fsa xd
+/$fsit 1 def}bd/@ii{concat 3 index 3 index m 3 index 1 index l 2 copy l 1 index
+3 index l 3 index 3 index l clip pop pop pop pop}bd/tcc{@cc}def/@i{@sm @gs @ii
+6 index 1 ne{/$frg true def pop pop}{1 eq{s1t s1c s1m s1y s1k s1n $O @scc_5
+/$frg xd}{/$frg false def}ifelse 1 eq{@gs $ctm setmatrix F @gr}if}ifelse @np
+/$ury xd/$urx xd/$lly xd/$llx xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul 8
+div ceiling cvi string def $bkg $frg or{$SDF{$SCF $SCA $SCP @ss}if $llx $lly Tl
+$urx $llx sub $ury $lly sub scale $bkg{$t $c $m $y $k $n $o @scc_5 pop}if $wid
+$hei abs $bts 1 eq{$bkg}{$bts}ifelse[$wid 0 0 $hei neg 0 $hei 0
+gt{$hei}{0}ifelse]/tcc load $bts 1 eq{imagemask}{image}ifelse $SDF{$dsf $dsa
+$dsp @ss}if}{$hei abs{tcc pop}repeat}ifelse @gr $ctm setmatrix}bd/@I{@sm @gs
+@ii @np/$ury xd/$urx xd/$lly xd/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat
+$wid $bts mul $ncl mul 8 div ceiling cvi string def $ngx $llx $lly Tl $urx $llx
+sub $ury $lly sub scale $wid $hei abs $bts[$wid 0 0 $hei neg 0 $hei 0
+gt{$hei}{0}ifelse]/@cc load false $ncl ColorImage $SDF{$dsf $dsa $dsp @ss}if
+@gr $ctm setmatrix}bd L2?{/@I_2{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd/$llx xd
+/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling cvi
+string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq{/DeviceRGB}{/DeviceCMYK}
+ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub $ury $lly sub scale 8
+dict begin/ImageType 1 def/Width $wid def/Height $hei abs def/BitsPerComponent
+$bts def/Decode $ncl 1 eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]}
+ifelse}ifelse def/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def
+/DataSource currentfile/ASCII85Decode filter def currentdict end image $SDF
+{$dsf $dsa $dsp @ss}if @gr $ctm setmatrix}bd}{/@I_2{}bd}ifelse/z{exch findfont
+exch scalefont setfont}bd/ZB{9 dict dup begin 4 1 roll/FontType 3 def
+/FontMatrix xd/FontBBox xd/Encoding 256 array def 0 1 255{Encoding exch
+/.notdef put}for/CharStrings 256 dict def CharStrings/.notdef{}put/Metrics 256
+dict def Metrics/.notdef 3 -1 roll put/BuildChar{exch dup/$char exch/Encoding
+get 3 index get def dup/Metrics get $char get aload pop setcachedevice begin
+Encoding exch get CharStrings exch get end exec}def end definefont pop}bd
+/ZBAddChar{findfont begin dup 4 1 roll dup 6 1 roll Encoding 3 1 roll put
+CharStrings 3 1 roll put Metrics 3 1 roll put end}bd/Z{findfont dup maxlength 2
+add dict exch dup{1 index/FID ne{3 index 3 1 roll put}{pop pop}ifelse}forall
+pop dup dup/Encoding get 256 array copy dup/$fe xd/Encoding exch put dup
+/Fontname 3 index put 3 -1 roll dup length 0 ne{0 exch{dup type 0 type eq{exch
+pop}{$fe exch 2 index exch put 1 add}ifelse}forall pop}if dup 256 dict dup
+/$met xd/Metrics exch put dup/FontMatrix get 0 get 1000 mul 1 exch div 3 index
+length 256 eq{0 1 255{dup $fe exch get dup/.notdef eq{pop pop}{5 index 3 -1
+roll get 2 index mul $met 3 1 roll put}ifelse}for}if pop definefont pop pop}bd
+/@ftx{{currentpoint 3 -1 roll(0)dup 3 -1 roll 0 exch put dup @gs true charpath
+$ctm setmatrix @@txt @gr @np stringwidth pop 3 -1 roll add exch m}forall}bd
+/@ft{matrix currentmatrix exch $sdf{$scf $sca $scp @ss}if $fil 1 eq{/@@txt/@pf
+ld @ftx}{$fil 2 eq{/@@txt/@ff ld @ftx}{$fil 3 eq{/@@txt/@Pf ld @ftx}{$t $c $m
+$y $k $n $o @scc_5{show}{pop}ifelse}ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp
+@ss}if setmatrix}bd/@st{matrix currentmatrix exch $SDF{$SCF $SCA $SCP @ss}if $T
+$C $M $Y $K $N $O @scc_5{{currentpoint 3 -1 roll(0)dup 3 -1 roll 0 exch put dup
+@gs true charpath $ctm setmatrix $ptm concat stroke @gr @np stringwidth pop 3
+-1 roll add exch m}forall}{pop}ifelse $SDF{$dsf $dsa $dsp @ss}if setmatrix}bd
+/@te{@ft}bd/@tr{@st}bd/@ta{dup @gs @ft @gr @st}bd/@t@a{dup @gs @st @gr @ft}bd
+/@tm{@sm concat}bd/e{/t{@te}def}bd/r{/t{@tr}def}bd/o{/t{pop}def}bd/a{/t{@ta}
+def}bd/@a{/t{@t@a}def}bd/t{@te}def/T{@np $ctm setmatrix/$ttm matrix def}bd/ddt
+{t}def/@t{/$stm $stm currentmatrix def 3 1 roll m $ttm concat ddt $stm
+setmatrix}bd/@n{/$ttm exch matrix rotate def}bd/@s{}bd/@l{}bd/@B{@gs S @gr F}
+bd/@b{@cp @B}bd/@sep{CurrentInkName_5(Composite)eq{/$ink_5 -1 def}{
+CurrentInkName_5(Cyan)eq{/$ink_5 0 def}{CurrentInkName_5(Magenta)eq{/$ink_5 1
+def}{CurrentInkName_5(Yellow)eq{/$ink_5 2 def}{CurrentInkName_5(Black)eq
+{/$ink_5 3 def}{/$ink_5 4 def}ifelse}ifelse}ifelse}ifelse}ifelse}bd/@whi{@gs
+-72000 dup m -72000 72000 l 72000 dup l 72000 -72000 l @cp 1 SetGry fill @gr}
+bd/@neg{[{1 exch sub}/exec cvx currenttransfer/exec cvx]cvx settransfer @whi}
+bd/currentscale{1 0 dtransform matrix defaultmatrix idtransform dup mul exch
+dup mul add sqrt 0 1 dtransform matrix defaultmatrix idtransform dup mul exch
+dup mul add sqrt}bd/@unscale{}bd/@smc{CMYKMarks{0 exch eq{1 1 1 1 1 _ 0 @scc_5
+pop}{1 0 0 0 0 _ 0 @scc_5 pop}ifelse}{SetGry}ifelse}bd/@gmc{CMYKMarks{GetCmyk
+pop pop pop 1 eq{0}{1}ifelse}{GetGry}ifelse}bd/@sqr{dup 0 rl dup 0 exch rl neg
+0 rl @cp}bd/corelsym{@gs @np Tl -90 rotate 7{45 rotate -.75 2 m 1.5 @sqr fill}
+repeat @gr}bd/@reg_cor{@gs @np Tl -6 -6 m 12 @sqr @gs 1 @gmc sub @smc fill @gr
+4{90 rotate 0 4 m 0 4 rl}repeat stroke 0 0 corelsym @gr}bd/@reg_std{@gs @np Tl
+.3 w 0 0 5 0 360 arc @cp @gs 1 @gmc sub @smc fill @gr 4{90 rotate 0 0 m 0 8 rl
+}repeat stroke @gr}bd/@reg_inv{@gs @np Tl .3 w 0 0 5 0 360 arc @cp @gs 1 @gmc
+sub @smc fill @gr 4{90 rotate 0 0 m 0 8 rl}repeat stroke 0 0 m 0 0 5 90 180 arc
+@cp 0 0 5 270 360 arc @cp fill @gr}bd/@reg_sqr{@gs @np Tl .3 w -7 -7 m 14 @sqr
+fill @gs 1 @gmc sub @smc 0 0 5 0 360 arc @cp save fill restore 4{90 rotate 0 0
+m 0 8 rl}repeat stroke @gr 4{90 rotate 0 0 m 0 5 rl}repeat stroke @gr}bd
+/@reg_lng{@gs @np 0 eq{/$Xlen 16 def/$Ylen 8 def}{/$Xlen 8 def/$Ylen 16 def}
+ifelse Tl .3 w 0 0 5 0 360 arc @cp @gs 1 @gmc sub @smc fill @gr 90 rotate 0 0 m
+0 $Xlen rl 90 rotate 0 0 m 0 $Ylen rl 90 rotate 0 0 m 0 $Xlen rl 90 rotate 0 0
+m 0 $Ylen rl stroke @gr}bd/@setdcol{0 $dcol eq{0 exch 1 exch sub 0 0 0 _ 0
+@scc_5 pop}{1 $dcol eq{0 exch 0 exch 1 exch sub 0 0 _ 0 @scc_5 pop}{2 $dcol eq
+{0 exch 0 exch 0 exch 1 exch sub 0 _ 0 @scc_5 pop}{SetGry}ifelse}ifelse}ifelse
+}bd/$corelmeter[1 .95 .75 .50 .25 .05 0]def/@colormeter{@gs @np 0 @setdcol 0.3
+w/Courier findfont 5 scalefont setfont/yy xd/xx xd 0 1 6{dup xx 20 sub yy m 20
+@sqr @gs $corelmeter exch get dup @setdcol fill @gr stroke xx 18 sub yy 2 add m
+exch dup 3 ge{1 SetGry}{0 @setdcol}ifelse 3 eq{pop}{100 mul 100 exch sub cvi 20
+string cvs show}ifelse/yy yy 20 add def}for @gr}bd/@calbar{@gs Tl @gs @np 0 0 m
+@gs 20 @sqr 1 1 0 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1 0 1
+0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 0 0 1 0 _ 0 @scc_5 pop
+fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 0 1 1 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0
+0 m @gs 20 @sqr 1 0 1 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1
+1 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1 1 1 0 _ 0 @scc_5
+pop fill @gr @gr @np -84 0 Tl @gs 0 0 m 20 @sqr clip 1 1 0 0 0 _ 0 @scc_5 pop
+@gain @gr 20 0 Tl @gs 0 0 m 20 @sqr clip 1 0 1 0 0 _ 0 @scc_5 pop @gain @gr 20
+0 Tl @gs 0 0 m 20 @sqr clip 1 0 0 1 0 _ 0 @scc_5 pop @gain @gr 20 0 Tl @gs 0 0
+m 20 @sqr clip 1 0 0 0 1 _ 0 @scc_5 pop @gain @gr @gr}bd/@gain{10 10 Tl @np 0 0
+m 0 10 360{0 0 15 4 -1 roll dup 5 add arc @cp}for fill}bd/@crop{@gs 10 div
+/$croplen xd .3 w 0 @smc Tl rotate 0 0 m 0 $croplen neg rl stroke @gr}bd
+/deflevel 0 def/@sax{/deflevel deflevel 1 add def}bd/@eax{/deflevel deflevel
+dup 0 gt{1 sub}if def deflevel 0 gt{/eax load}{eax}ifelse}bd/eax{{exec}forall}
+bd/@rax{deflevel 0 eq{@rs @sv}if}bd/@daq{dup type/arraytype eq{{}forall}if}bd
+/@BMP{/@cc xd 12 index 1 gt UseLevel2 true eq and{7 -2 roll pop pop @I_2}{11
+index 1 eq{12 -1 roll pop @i}{7 -2 roll pop pop @I}ifelse}ifelse}bd systemdict
+/pdfmark known not{/pdfmark/cleartomark ld}if/@BeginEPS{$ngx 0 SetGry 0 J 0 j 1
+w[]0 d 10 M false setoverprint @np/EPSDict 200 dict def EPSDict begin @sv
+SepMode_5 0 ne{/colorimage{@gs/sepdict 50 dict def sepdict begin[{1 exch sub}
+/exec cvx currenttransfer/exec cvx]cvx settransfer 3 eq/$rgb xd{$rgb{/daq0 xd
+/daq1 xd/daq2 xd/daq_rgb load}{/daq0 xd/daq1 xd/daq2 xd/daq3 xd/daq_cmyk load}
+ifelse}{/daq0 xd/daq_one load}ifelse 2 index 8 eq/8bit xd $ink_5 dup 0 lt exch
+3 gt or{}{image}ifelse end @gr}bd/2cmyk{3{255 exch sub 3 1 roll}repeat 3 copy
+@MN @MN 3{dup 5 -1 roll sub neg exch}repeat}bd/daq_rgb{/i 0 def/daq2 load exec
+/daq1 load exec/daq0 load exec dup dup length 0 exch getinterval/$data xd{8bit
+{1 index i get 3 index i get 2cmyk 4 $ink_5 neg roll pop pop pop}{pop 0}ifelse
+$data i 3 -1 roll put/i i 1 add def}forall pop pop $data}bd/daq_cmyk{/daq3 load
+exec/daq2 load exec/daq1 load exec/daq0 load exec 4 $ink_5 neg roll pop pop pop
+}bd/daq_one{/$in 0 def/$out 0 def/daq0 load exec dup dup length $rgb{3}{4}
+ifelse idiv 0 exch getinterval/$data xd $data{pop 8bit{$rgb{0 index $in 2 add
+get 1 index $in 1 add get 2 index $in get 2cmyk}{0 index $in get 1 index $in 1
+add get 2 index $in 2 add get 3 index $in 3 add get}ifelse 4 $ink_5 neg roll
+pop pop pop}{0}ifelse $data $out 3 -1 roll put/$in $in $rgb{3}{4}ifelse add def
+/$out $out 1 add def}forall pop $data}bd}if}bd/@EndEPS{@rs end}bd end
+%%EndResource
+%%EndProlog
+%%BeginSetup
+wCorel6Dict begin
+@BeginSysCorelDict
+2.6131 setmiterlimit
+1.00 setflat
+/$fst 128 def
+%%EndSetup
+
+%%Page: 1 1
+%LogicalPage: 1
+%%BeginPageSetup
+@sv
+@sm
+@sv
+%%EndPageSetup
+@rax %Note: Object
+148.15559 236.18041 202.52778 314.02828 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+148.15559 314.02828 m
+202.52778 314.02828 L
+202.52778 236.18041 L
+148.15559 236.18041 L
+148.15559 314.02828 L
+@c
+S
+
+@rax %Note: Object
+127.74643 87.86835 225.97002 110.77342 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+127.74643 110.77342 m
+225.97002 110.77342 L
+225.97002 87.86835 L
+127.74643 87.86835 L
+127.74643 110.77342 L
+@c
+S
+
+@rax %Note: Object
+404.84353 218.57187 449.83956 283.44501 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+404.84353 283.44501 m
+449.83956 283.44501 L
+449.83956 218.57187 L
+404.84353 218.57187 L
+404.84353 283.44501 L
+@c
+S
+
+@rax %Note: Object
+254.33943 339.97748 318.04980 378.90142 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+286.19461 378.90142 m
+303.73965 378.90142 318.04980 370.15852 318.04980 359.43931 c
+318.04980 348.72009 303.73965 339.97748 286.19461 339.97748 c
+268.64929 339.97748 254.33943 348.72009 254.33943 359.43931 c
+254.33943 370.15852 268.64929 378.90142 286.19461 378.90142 c
+@c
+S
+
+@rax %Note: Object
+283.88636 227.83946 347.59672 266.76340 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+315.74154 266.76340 m
+333.28658 266.76340 347.59672 258.02079 347.59672 247.30129 c
+347.59672 236.58208 333.28658 227.83946 315.74154 227.83946 c
+298.19622 227.83946 283.88636 236.58208 283.88636 247.30129 c
+283.88636 258.02079 298.19622 266.76340 315.74154 266.76340 c
+@c
+S
+
+@rax %Note: Object
+363.46677 264.98721 378.50910 280.74189 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+363.46677 280.74189 m
+378.50910 280.74189 L
+378.50910 264.98721 L
+363.46677 264.98721 L
+363.46677 280.74189 L
+@c
+S
+
+@rax 369.60293 270.39317 372.73408 277.68898 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 369.60280442 270.39307508] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 104680.00000 z
+%CHAR: 0 0 (f) @t
+9104 0 m
+9089 47122 L
+962 47122 L
+962 54272 L
+9089 54272 L
+9089 60045 l
+9089 63687 9415 66410 10066 68172 c
+10940 70555 12509 72495 14729 73975 c
+16965 75455 20103 76195 24115 76195 c
+26708 76195 29580 75885 32703 75278 C
+31327 67254 L
+29432 67595 27611 67772 25906 67772 c
+23123 67772 21139 67165 19984 65981 c
+18830 64797 18238 62547 18238 59290 c
+18238 54272 L
+28825 54272 L
+28825 47122 L
+18238 47122 L
+18238 0 L
+9104 0 L
+@c
+F
+T
+@rax %Note: Object
+233.27575 220.22504 248.31808 235.97943 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+233.27575 235.97943 m
+248.31808 235.97943 L
+248.31808 220.22504 L
+233.27575 220.22504 L
+233.27575 235.97943 L
+@c
+S
+
+@rax 239.41162 225.63071 242.53342 232.90526 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 239.41169297 225.63077961] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 104370.00000 z
+%CHAR: 0 0 (f) @t
+9074 0 m
+9060 46974 L
+962 46974 L
+962 54109 L
+9060 54109 L
+9060 59867 l
+9060 63509 9385 66218 10037 67980 c
+10910 70348 12464 72287 14685 73753 c
+16905 75233 20044 75973 24041 75973 c
+26619 75973 29491 75663 32615 75056 C
+31238 67062 L
+29343 67387 27522 67565 25832 67565 c
+23049 67565 21080 66973 19925 65789 c
+18771 64604 18178 62369 18178 59112 c
+18178 54109 L
+28736 54109 L
+28736 46974 L
+18178 46974 L
+18178 0 L
+9074 0 L
+@c
+F
+T
+@rax %Note: Object
+245.27934 310.39852 260.32195 326.15291 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+245.27934 326.15291 m
+260.32195 326.15291 L
+260.32195 310.39852 L
+245.27934 310.39852 L
+245.27934 326.15291 L
+@c
+S
+
+@rax 251.41550 315.80419 254.53729 323.07874 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 251.41547591 315.80427630] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 104370.00000 z
+%CHAR: 0 0 (f) @t
+9074 0 m
+9060 46974 L
+962 46974 L
+962 54109 L
+9060 54109 L
+9060 59867 l
+9060 63509 9385 66218 10037 67980 c
+10910 70348 12464 72287 14685 73753 c
+16905 75233 20044 75973 24041 75973 c
+26619 75973 29491 75663 32615 75056 C
+31238 67062 L
+29343 67387 27522 67565 25832 67565 c
+23049 67565 21080 66973 19925 65789 c
+18771 64604 18178 62369 18178 59112 c
+18178 54109 L
+28736 54109 L
+28736 46974 L
+18178 46974 L
+18178 0 L
+9074 0 L
+@c
+F
+T
+@rax %Note: Object
+219.42595 326.15320 234.46828 341.90787 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+219.42595 341.90787 m
+234.46828 341.90787 L
+234.46828 326.15320 L
+219.42595 326.15320 L
+219.42595 341.90787 L
+@c
+S
+
+@rax 225.56211 331.55915 228.68391 338.83370 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 225.56196189 331.55921021] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 104370.00000 z
+%CHAR: 0 0 (f) @t
+9074 0 m
+9060 46974 L
+962 46974 L
+962 54109 L
+9060 54109 L
+9060 59867 l
+9060 63509 9385 66218 10037 67980 c
+10910 70348 12464 72287 14685 73753 c
+16905 75233 20044 75973 24041 75973 c
+26619 75973 29491 75663 32615 75056 C
+31238 67062 L
+29343 67387 27522 67565 25832 67565 c
+23049 67565 21080 66973 19925 65789 c
+18771 64604 18178 62369 18178 59112 c
+18178 54109 L
+28736 54109 L
+28736 46974 L
+18178 46974 L
+18178 0 L
+9074 0 L
+@c
+F
+T
+@rax 265.98557 353.55515 307.54658 366.64101 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 265.98552164 353.76659884] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 187867.00000 z
+%CHAR: 0 0 (s) @t
+5779 29085 m
+22098 31643 L
+22998 25106 25580 20061 29749 16603 c
+33941 13122 39815 11369 47323 11369 c
+54902 11369 60539 12908 64187 15988 c
+67858 19067 69706 22714 69706 26859 c
+69706 30601 68071 33538 64850 35670 c
+62576 37138 56939 39010 47963 41260 c
+35859 44315 27451 46968 22785 49194 c
+18119 51421 14566 54523 12151 58455 c
+9735 62387 8527 66769 8527 71529 c
+8527 75864 9521 79890 11487 83585 c
+13477 87280 16201 90383 19611 92822 c
+22169 94714 25698 96325 30128 97628 c
+34557 98954 39318 99617 44386 99617 c
+52013 99617 58739 98504 64519 96325 c
+70298 94122 74561 91117 77309 87375 c
+80056 83609 81975 78564 83017 72264 C
+66863 70085 L
+66129 75082 63998 79014 60492 81809 c
+56987 84604 51989 86025 45570 86025 c
+37991 86025 32567 84770 29346 82283 c
+26125 79772 24491 76835 24491 73472 c
+24491 71340 25177 69398 26504 67692 c
+27830 65916 29962 64424 32828 63287 c
+34486 62671 39365 61250 47418 59071 c
+59095 55945 67266 53387 71861 51397 c
+76456 49407 80104 46518 82733 42728 c
+85362 38939 86688 34225 86688 28612 c
+86688 23117 85077 17906 81880 13074 c
+78659 8219 74016 4453 67977 1800 c
+61913 -853 55045 -2203 47418 -2203 c
+34770 -2203 25106 426 18474 5684 c
+11843 10943 7603 18735 5779 29062 c
+5779 29085 L
+@c
+F
+%CHAR: 93936 0 (t) @t
+142372 14780 m
+144741 166 L
+140099 -805 135930 -1303 132259 -1303 c
+126290 -1303 121624 -355 118332 1540 c
+115040 3434 112695 5945 111368 9024 c
+110018 12103 109331 18617 109331 28517 c
+109331 84556 L
+97228 84556 L
+97228 97414 L
+109331 97414 L
+109331 121526 L
+125745 131450 L
+125745 97414 L
+142349 97414 L
+142349 84556 L
+125745 84556 L
+125745 27593 l
+125745 22904 126053 19848 126622 18522 c
+127190 17195 128161 16106 129464 15324 c
+130790 14519 132685 14116 135125 14116 c
+136948 14116 139364 14330 142349 14756 C
+142372 14780 L
+@c
+F
+%CHAR: 143472 0 (a) @t
+219431 12008 m
+213320 6821 207398 3150 201761 1018 c
+196124 -1113 190037 -2203 183547 -2203 c
+172842 -2203 164599 426 158867 5637 c
+153136 10848 150246 17551 150246 25675 c
+150246 30436 151336 34817 153491 38749 c
+155670 42681 158536 45878 162041 48247 c
+165547 50615 169526 52439 173908 53647 c
+177152 54500 182055 55329 188592 56134 c
+201904 57721 211733 59639 218033 61819 C
+218081 64069 218128 65513 218128 66129 c
+218128 72856 216565 77593 213462 80340 c
+209246 84083 202946 85954 194656 85954 c
+186887 85954 181155 84580 177460 81880 c
+173765 79156 170994 74324 169242 67408 C
+153088 69611 L
+154557 76527 156973 82117 160336 86356 c
+163699 90596 168578 93888 174926 96159 c
+181274 98457 188663 99617 197024 99617 c
+205338 99617 212112 98622 217299 96680 c
+222510 94738 226347 92254 228763 89293 c
+231202 86333 232931 82567 233902 78043 c
+234447 75248 234731 70156 234731 62837 c
+234731 40810 l
+234731 25462 235087 15751 235773 11701 c
+236484 7627 237878 3719 239963 0 C
+222723 0 L
+221018 3411 219881 7413 219407 12008 C
+219431 12008 L
+@c
+218057 48886 m
+212064 46447 203064 44339 191079 42633 c
+184305 41686 179474 40573 176679 39365 c
+173860 38133 171681 36333 170165 33988 c
+168649 31620 167868 28991 167868 26125 c
+167868 21719 169549 18048 172865 15135 c
+176181 12198 181084 10729 187503 10729 c
+193851 10729 199511 12127 204462 14898 c
+209412 17669 213059 21483 215380 26314 c
+217133 30033 218033 35552 218033 42823 c
+218057 48886 L
+@c
+F
+%CHAR: 247968 0 (t) @t
+296404 14780 m
+298773 166 L
+294131 -805 289962 -1303 286291 -1303 c
+280322 -1303 275656 -355 272364 1540 c
+269072 3434 266727 5945 265400 9024 c
+264050 12103 263363 18617 263363 28517 c
+263363 84556 L
+251260 84556 L
+251260 97414 L
+263363 97414 L
+263363 121526 L
+279777 131450 L
+279777 97414 L
+296381 97414 L
+296381 84556 L
+279777 84556 L
+279777 27593 l
+279777 22904 280085 19848 280654 18522 c
+281222 17195 282193 16106 283496 15324 c
+284822 14519 286717 14116 289157 14116 c
+290980 14116 293396 14330 296381 14756 C
+296404 14780 L
+@c
+F
+%CHAR: 300168 0 (i) @t
+312650 115486 m
+312626 134458 L
+329135 134458 L
+329135 115486 L
+312650 115486 L
+@c
+312650 0 m
+312626 97414 L
+329135 97414 L
+329135 0 L
+312650 0 L
+@c
+F
+%CHAR: 341904 0 (c) @t
+417863 35694 m
+434087 33562 L
+432334 22383 427763 13595 420468 7295 c
+413173 971 404173 -2203 393538 -2203 c
+380227 -2203 369497 2155 361397 10848 c
+353297 19564 349223 32070 349223 48342 c
+349223 58858 350975 68071 354457 75935 c
+357939 83822 363268 89767 370374 93699 c
+377479 97628 385248 99617 393633 99617 c
+404196 99617 412865 96941 419592 91591 c
+426318 86238 430629 78635 432524 68782 C
+416465 66319 L
+414949 72856 412226 77782 408365 81075 c
+404480 84367 399767 86025 394272 86025 c
+385959 86025 379185 83040 373998 77095 c
+368810 71127 366205 61676 366205 48792 c
+366205 35717 368716 26196 373713 20275 c
+378735 14353 385295 11369 393348 11369 c
+399838 11369 405262 13358 409596 17314 c
+413931 21293 416702 27428 417839 35670 C
+417863 35694 L
+@c
+F
+T
+@rax 533.81083 244.73735 571.01499 258.05310 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 533.81074996 244.95794069] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 187867.00000 z
+%CHAR: 0 0 (B) @t
+13761 0 m
+13737 134458 L
+64211 134458 l
+74466 134458 82709 133084 88914 130384 c
+95117 127684 99996 123468 103502 117831 c
+107007 112170 108783 106225 108783 100067 c
+108783 94335 107220 88914 104117 83846 c
+100991 78777 96278 74656 89980 71529 C
+98101 69161 104378 65063 108736 59332 c
+113094 53600 115297 46802 115297 38986 c
+115297 32686 113970 26812 111318 21411 c
+108665 16011 105349 11819 101441 8882 c
+97533 5945 92609 3719 86735 2250 c
+80838 758 73590 0 65016 0 c
+13761 0 L
+@c
+31549 77972 m
+60634 77972 l
+68498 77972 74182 78493 77593 79511 c
+82117 80861 85551 83112 87825 86214 c
+90099 89341 91259 93273 91259 97959 c
+91259 102412 90193 106367 88062 109754 c
+85930 113141 82851 115486 78896 116718 c
+74916 117950 68095 118589 58432 118589 c
+31549 118589 L
+31549 77972 L
+@c
+31549 15869 m
+65016 15869 l
+70772 15869 74822 16082 77143 16509 c
+81217 17219 84651 18451 87399 20156 c
+90146 21861 92444 24372 94193 27641 c
+95946 30909 96846 34699 96846 38986 c
+96846 43984 95567 48342 93012 52036 c
+90454 55731 86877 58360 82330 59853 c
+77782 61345 71198 62103 62647 62103 c
+31549 62103 L
+31549 15869 L
+@c
+F
+%CHAR: 125304 0 (G) @t
+202731 52747 m
+202707 68521 L
+259691 68616 L
+259691 18711 L
+250951 11748 241904 6490 232619 2984 c
+223334 -521 213768 -2297 204010 -2297 c
+190794 -2297 178785 545 168009 6182 c
+157208 11819 149060 20014 143565 30720 c
+138070 41426 135299 53387 135299 66579 c
+135299 79653 138047 91899 143494 103217 c
+148966 114563 156853 122995 167108 128490 c
+177388 133984 189230 136756 202613 136756 c
+212324 136756 221132 135169 228995 132042 c
+236859 128892 243017 124487 247470 118873 c
+251922 113260 255333 105894 257654 96846 C
+241619 92467 L
+239606 99286 237072 104686 234087 108594 c
+231103 112502 226792 115652 221250 117997 c
+215687 120342 209481 121526 202707 121526 c
+194583 121526 187549 120294 181628 117831 c
+175706 115368 170898 112076 167274 108049 c
+163627 104023 160785 99570 158771 94738 c
+155361 86451 153632 77403 153632 67692 c
+153632 55708 155692 45665 159813 37612 c
+163935 29536 169974 23519 177838 19611 c
+185725 15703 194133 13737 202992 13737 c
+210689 13737 218221 15230 225561 18190 c
+232903 21151 238469 24325 242259 27688 C
+242259 52747 L
+202731 52747 L
+@c
+F
+%CHAR: 271440 0 (P) @t
+285935 0 m
+285912 134458 L
+336645 134458 l
+345575 134458 352420 134032 357110 133179 c
+363694 132090 369257 129982 373710 126903 c
+378163 123824 381787 119465 384487 113923 c
+387187 108357 388561 102223 388561 95567 c
+388561 84154 384913 74466 377665 66556 c
+370394 58645 357228 54666 338209 54666 c
+303723 54666 L
+303723 0 L
+285935 0 L
+@c
+303723 70535 m
+338493 70535 l
+349980 70535 358152 72690 362983 76953 c
+367812 81217 370228 87256 370228 95022 c
+370228 100636 368807 105467 365965 109470 c
+363126 113473 359360 116126 354717 117405 c
+351733 118186 346167 118589 338114 118589 c
+303723 118589 L
+303723 70535 L
+@c
+F
+T
+@rax 408.45628 264.29074 446.56838 277.41373 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 408.45620689 264.50210637] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 188424.00000 z
+%CHAR: 0 0 (t) @t
+48581 14803 m
+50950 166 L
+46308 -805 42115 -1303 38444 -1303 c
+32428 -1303 27759 -355 24467 1540 c
+21151 3434 18806 5969 17480 9048 c
+16130 12127 15443 18664 15443 28612 c
+15443 84820 L
+3292 84820 L
+3292 97708 L
+15443 97708 L
+15443 121890 L
+31907 131838 L
+31907 97708 L
+48558 97708 L
+48558 84820 L
+31907 84820 L
+31907 27688 l
+31907 22975 32215 19919 32783 18593 c
+33352 17243 34323 16153 35626 15372 c
+36952 14566 38847 14164 41310 14164 c
+43134 14164 45573 14377 48558 14803 c
+48581 14803 L
+@c
+F
+%CHAR: 49680 0 (a) @t
+125855 12056 m
+119720 6845 113799 3126 108138 995 c
+102477 -1137 96367 -2226 89877 -2226 c
+79144 -2226 70878 403 65123 5637 c
+59367 10872 56478 17598 56478 25746 c
+56478 30530 57567 34915 59746 38847 c
+61925 42802 64791 46000 68297 48368 c
+71802 50760 75805 52584 80210 53816 c
+83458 54669 88385 55498 94945 56303 c
+108304 57890 118157 59808 124457 62011 C
+124505 64261 124552 65706 124552 66322 c
+124552 73048 122989 77833 119862 80580 c
+115646 84322 109346 86194 101009 86194 c
+93240 86194 87461 84820 83766 82096 c
+80068 79372 77297 74517 75521 67601 C
+59320 69827 L
+60788 76743 63228 82357 66591 86620 c
+69955 90883 74857 94176 81232 96452 c
+87603 98750 95017 99910 103401 99910 c
+111738 99910 118512 98916 123723 96973 c
+128934 95007 132795 92518 135234 89557 c
+137674 86573 139403 82807 140374 78283 c
+140919 75464 141203 70348 141203 63006 c
+141203 40931 l
+141203 25533 141558 15798 142269 11724 c
+142979 7650 144380 3719 146464 0 C
+129171 0 L
+127465 3411 126328 7437 125855 12032 c
+125855 12056 L
+@c
+124481 49031 m
+118465 46568 109441 44484 97409 42779 c
+90611 41807 85779 40694 82984 39463 c
+80163 38231 77960 36431 76444 34086 c
+74928 31718 74147 29085 74147 26220 c
+74147 21814 75829 18119 79144 15182 c
+82487 12245 87390 10753 93832 10753 c
+100204 10753 105888 12151 110838 14922 c
+115812 17717 119483 21554 121805 26385 c
+123557 30128 124457 35649 124457 42944 c
+124481 49031 L
+@c
+F
+%CHAR: 154464 0 (b) @t
+182152 0 m
+166780 0 L
+166780 134870 L
+183336 134870 L
+183336 86738 L
+190326 95505 199256 99910 210104 99910 c
+216120 99910 221828 98702 227181 96286 c
+232534 93868 236963 90433 240421 86075 c
+243879 81693 246626 76388 248568 70206 c
+250514 64001 251508 57369 251508 50310 c
+251508 33589 247361 20630 239094 11487 c
+230828 2345 220880 -2226 209298 -2226 c
+197764 -2226 188692 2605 182152 12222 C
+182152 0 L
+@c
+181963 49600 m
+181963 37876 183573 29393 186750 24183 c
+191961 15656 199019 11393 207901 11393 c
+215149 11393 221425 14543 226683 20819 c
+231941 27096 234594 36478 234594 48937 c
+234594 61679 232060 71106 227015 77170 c
+221946 83233 215812 86288 208635 86288 c
+201411 86288 195135 83138 189876 76862 c
+184615 70585 181963 61466 181963 49576 C
+181963 49600 L
+@c
+F
+%CHAR: 259248 0 (l) @t
+271304 0 m
+271280 134870 L
+287860 134870 L
+287860 0 L
+271304 0 L
+@c
+F
+%CHAR: 301104 0 (e) @t
+380405 31457 m
+397509 29346 L
+394806 19351 389808 11558 382513 6063 c
+375218 545 365886 -2226 354541 -2226 c
+340259 -2226 328910 2179 320550 10966 c
+312189 19777 307996 32144 307996 48013 c
+307996 64451 312236 77217 320692 86288 c
+329147 95363 340140 99910 353617 99910 c
+366691 99910 377373 95457 385640 86573 c
+393929 77667 398077 65137 398077 49031 c
+398077 48060 398030 46568 397983 44602 C
+325097 44602 L
+325713 33897 328768 25651 334219 19967 c
+339667 14259 346488 11393 354636 11393 c
+360699 11393 365910 13003 370173 16177 c
+374460 19351 377895 24467 380405 31457 C
+@c
+326045 58245 m
+380595 58221 L
+379860 66440 377752 72622 374318 76719 c
+369060 83091 362191 86288 353807 86288 c
+346227 86288 339809 83730 334645 78662 c
+329455 73569 326566 66748 326021 58221 C
+326045 58245 L
+@c
+F
+T
+@rax 423.75231 241.71732 432.80759 254.64472 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 423.75216172 241.71732029] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 187867.00000 z
+%CHAR: 0 0 (2) @t
+94572 15869 m
+94572 0 L
+5684 0 L
+5566 3955 6206 7792 7603 11464 c
+9853 17503 13501 23472 18474 29346 c
+23448 35220 30672 42018 40075 49715 c
+54689 61700 64590 71198 69706 78185 c
+74822 85196 77403 91828 77403 98054 c
+77403 104591 75059 110110 70393 114610 c
+65727 119110 59616 121360 52084 121360 c
+44149 121360 37778 118968 33017 114207 c
+28257 109423 25817 102815 25770 94383 C
+8787 96112 L
+9948 108760 14330 118423 21909 125055 c
+29488 131687 39673 135027 52463 135027 c
+65348 135027 75580 131450 83088 124297 c
+90620 117144 94383 108239 94383 97675 c
+94383 92301 93273 86996 91093 81809 c
+88891 76622 85220 71127 80127 65395 c
+75011 59663 66508 51752 54666 41733 c
+44765 33420 38370 27759 35575 24798 c
+32780 21838 30436 18853 28612 15869 C
+94572 15869 L
+@c
+F
+T
+@rax 298.38246 239.60665 331.64362 256.05865 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 298.38255753 243.18428450] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 187867.00000 z
+%CHAR: 0 0 (p) @t
+12387 -37352 m
+12364 97414 L
+27428 97414 L
+27428 84746 L
+30957 89696 34983 93438 39436 95899 c
+43889 98362 49313 99617 55660 99617 c
+63974 99617 71340 97462 77688 93201 c
+84035 88914 88867 82851 92088 75082 c
+95306 67290 96941 58716 96941 49431 c
+96941 39483 95141 30483 91591 22525 c
+88014 14543 82804 8408 75982 4169 c
+69161 -71 61984 -2203 54476 -2203 c
+48981 -2203 44031 -1042 39673 1279 c
+35315 3600 31691 6537 28896 10090 C
+28896 -37352 L
+12387 -37352 L
+@c
+27333 48152 m
+27333 35623 29867 26338 34936 20369 c
+40004 14377 46186 11369 53387 11369 c
+60705 11369 67006 14472 72216 20677 c
+77451 26883 80080 36499 80080 49526 c
+80080 61937 77522 71245 72429 77403 c
+67313 83585 61203 86688 54121 86688 c
+47086 86688 40857 83396 35457 76835 c
+30057 70250 27333 60682 27333 48152 c
+@c
+F
+%CHAR: 104496 0 (i) @t
+116978 115486 m
+116954 134458 L
+133463 134458 L
+133463 115486 L
+116978 115486 L
+@c
+116978 0 m
+116954 97414 L
+133463 97414 L
+133463 0 L
+116978 0 L
+@c
+F
+%CHAR: 146232 0 (p) @t
+158619 -37352 m
+158596 97414 L
+173660 97414 L
+173660 84746 L
+177189 89696 181215 93438 185668 95899 c
+190121 98362 195545 99617 201892 99617 c
+210206 99617 217572 97462 223920 93201 c
+230267 88914 235099 82851 238320 75082 c
+241538 67290 243173 58716 243173 49431 c
+243173 39483 241373 30483 237823 22525 c
+234246 14543 229036 8408 222214 4169 c
+215393 -71 208216 -2203 200708 -2203 c
+195213 -2203 190263 -1042 185905 1279 c
+181547 3600 177923 6537 175128 10090 C
+175128 -37352 L
+158619 -37352 L
+@c
+173565 48152 m
+173565 35623 176099 26338 181168 20369 c
+186236 14377 192418 11369 199619 11369 c
+206937 11369 213238 14472 218448 20677 c
+223683 26883 226312 36499 226312 49526 c
+226312 61937 223754 71245 218661 77403 c
+213545 83585 207435 86688 200353 86688 c
+193318 86688 187089 83396 181689 76835 c
+176289 70250 173565 60682 173565 48152 c
+@c
+F
+%CHAR: 250728 0 (e) @t
+329813 31383 m
+346840 29251 L
+344166 19303 339169 11558 331897 6063 c
+324626 568 315318 -2203 304020 -2203 c
+289761 -2203 278463 2179 270126 10943 c
+261789 19706 257597 32046 257597 47868 c
+257597 64258 261813 76977 270245 86025 c
+278677 95070 289643 99617 303096 99617 c
+316123 99617 326781 95164 335024 86309 c
+343266 77451 347408 64945 347408 48886 c
+347408 47915 347361 46423 347313 44481 C
+274650 44481 L
+275266 33775 278298 25580 283745 19896 c
+289193 14211 295991 11369 304115 11369 c
+310154 11369 315341 12956 319605 16130 c
+323868 19303 327279 24396 329789 31359 C
+329813 31383 L
+@c
+275598 58076 m
+329979 58053 L
+329245 66248 327137 72406 323726 76503 c
+318468 82851 311646 86025 303286 86025 c
+295706 86025 289335 83491 284172 78422 c
+279008 73353 276119 66556 275574 58053 C
+275598 58076 L
+@c
+F
+T
+@rax 130.51502 92.83266 222.77140 105.95565 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 130.51500994 93.04400499] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 188424.00000 z
+%CHAR: 0 0 (k) @t
+12506 0 m
+12506 134870 L
+29062 134870 L
+29062 57961 L
+68264 97708 L
+89699 97708 L
+52347 61442 L
+93465 0 L
+73048 0 L
+40742 49955 L
+29062 38728 L
+29062 0 L
+12506 0 L
+@c
+F
+%CHAR: 94224 0 (e) @t
+173525 31457 m
+190629 29346 L
+187926 19351 182928 11558 175633 6063 c
+168338 545 159006 -2226 147661 -2226 c
+133379 -2226 122030 2179 113670 10966 c
+105309 19777 101116 32144 101116 48013 c
+101116 64451 105356 77217 113812 86288 c
+122267 95363 133260 99910 146737 99910 c
+159811 99910 170493 95457 178760 86573 c
+187049 77667 191197 65137 191197 49031 c
+191197 48060 191150 46568 191103 44602 C
+118217 44602 L
+118833 33897 121888 25651 127339 19967 c
+132787 14259 139608 11393 147756 11393 c
+153819 11393 159030 13003 163293 16177 c
+167580 19351 171015 24467 173525 31457 C
+@c
+119165 58245 m
+173715 58221 L
+172980 66440 170872 72622 167438 76719 c
+162180 83091 155311 86288 146927 86288 c
+139347 86288 132929 83730 127765 78662 c
+122575 73569 119686 66748 119141 58221 C
+119165 58245 L
+@c
+F
+%CHAR: 199008 0 (r) @t
+211253 0 m
+211230 97708 L
+226128 97708 L
+226128 82878 L
+229917 89794 233449 94392 236671 96594 c
+239892 98797 243444 99910 247305 99910 c
+252871 99910 258556 98134 264311 94581 C
+258627 79206 L
+254577 81575 250503 82783 246476 82783 c
+242876 82783 239607 81693 236742 79538 c
+233852 77359 231791 74327 230560 70467 c
+228709 64593 227786 58127 227786 51139 c
+227786 0 L
+211253 0 L
+@c
+F
+%CHAR: 261744 0 (n) @t
+274155 0 m
+274155 97708 L
+289053 97708 L
+289053 83801 L
+296233 94534 306607 99910 320155 99910 c
+326029 99910 331453 98844 336379 96736 c
+341306 94628 345024 91831 347464 88420 c
+349927 84986 351656 80888 352627 76175 c
+353243 73096 353551 67719 353551 60069 c
+353551 0 L
+336995 0 L
+336995 59429 l
+336995 66156 336355 71225 335076 74540 c
+333797 77880 331476 80556 328208 82546 c
+324939 84536 321055 85554 316649 85554 c
+309615 85554 303528 83304 298412 78851 c
+293296 74375 290711 65848 290711 53342 c
+290711 0 L
+274155 0 L
+@c
+F
+%CHAR: 366528 0 (e) @t
+445829 31457 m
+462933 29346 L
+460230 19351 455232 11558 447937 6063 c
+440642 545 431310 -2226 419965 -2226 c
+405683 -2226 394334 2179 385974 10966 c
+377613 19777 373420 32144 373420 48013 c
+373420 64451 377660 77217 386116 86288 c
+394571 95363 405564 99910 419041 99910 c
+432115 99910 442797 95457 451064 86573 c
+459353 77667 463501 65137 463501 49031 c
+463501 48060 463454 46568 463407 44602 C
+390521 44602 L
+391137 33897 394192 25651 399643 19967 c
+405091 14259 411912 11393 420060 11393 c
+426123 11393 431334 13003 435597 16177 c
+439884 19351 443319 24467 445829 31457 C
+@c
+391469 58245 m
+446019 58221 L
+445284 66440 443176 72622 439742 76719 c
+434484 83091 427615 86288 419231 86288 c
+411651 86288 405233 83730 400069 78662 c
+394879 73569 391990 66748 391445 58221 C
+391469 58245 L
+@c
+F
+%CHAR: 471312 0 (l) @t
+483368 0 m
+483344 134870 L
+499924 134870 L
+499924 0 L
+483368 0 L
+@c
+F
+%CHAR: 565512 0 (t) @t
+614093 14803 m
+616462 166 L
+611820 -805 607627 -1303 603956 -1303 c
+597940 -1303 593271 -355 589979 1540 c
+586663 3434 584318 5969 582992 9048 c
+581642 12127 580955 18664 580955 28612 c
+580955 84820 L
+568804 84820 L
+568804 97708 L
+580955 97708 L
+580955 121890 L
+597419 131838 L
+597419 97708 L
+614070 97708 L
+614070 84820 L
+597419 84820 L
+597419 27688 l
+597419 22975 597727 19919 598295 18593 c
+598864 17243 599835 16153 601138 15372 c
+602464 14566 604359 14164 606822 14164 c
+608646 14164 611085 14377 614070 14803 c
+614093 14803 L
+@c
+F
+%CHAR: 615192 0 (a) @t
+691367 12056 m
+685232 6845 679311 3126 673650 995 c
+667989 -1137 661879 -2226 655389 -2226 c
+644656 -2226 636390 403 630635 5637 c
+624879 10872 621990 17598 621990 25746 c
+621990 30530 623079 34915 625258 38847 c
+627437 42802 630303 46000 633809 48368 c
+637314 50760 641317 52584 645722 53816 c
+648970 54669 653897 55498 660457 56303 c
+673816 57890 683669 59808 689969 62011 C
+690017 64261 690064 65706 690064 66322 c
+690064 73048 688501 77833 685374 80580 c
+681158 84322 674858 86194 666521 86194 c
+658752 86194 652973 84820 649278 82096 c
+645580 79372 642809 74517 641033 67601 C
+624832 69827 L
+626300 76743 628740 82357 632103 86620 c
+635467 90883 640369 94176 646744 96452 c
+653115 98750 660529 99910 668913 99910 c
+677250 99910 684024 98916 689235 96973 c
+694446 95007 698307 92518 700746 89557 c
+703186 86573 704915 82807 705886 78283 c
+706431 75464 706715 70348 706715 63006 c
+706715 40931 l
+706715 25533 707070 15798 707781 11724 c
+708491 7650 709892 3719 711976 0 C
+694683 0 L
+692977 3411 691840 7437 691367 12032 c
+691367 12056 L
+@c
+689993 49031 m
+683977 46568 674953 44484 662921 42779 c
+656123 41807 651291 40694 648496 39463 c
+645675 38231 643472 36431 641956 34086 c
+640440 31718 639659 29085 639659 26220 c
+639659 21814 641341 18119 644656 15182 c
+647999 12245 652902 10753 659344 10753 c
+665716 10753 671400 12151 676350 14922 c
+681324 17717 684995 21554 687317 26385 c
+689069 30128 689969 35649 689969 42944 c
+689993 49031 L
+@c
+F
+%CHAR: 719976 0 (b) @t
+747664 0 m
+732292 0 L
+732292 134870 L
+748848 134870 L
+748848 86738 L
+755838 95505 764768 99910 775616 99910 c
+781632 99910 787340 98702 792693 96286 c
+798046 93868 802475 90433 805933 86075 c
+809391 81693 812138 76388 814080 70206 c
+816026 64001 817020 57369 817020 50310 c
+817020 33589 812873 20630 804606 11487 c
+796340 2345 786392 -2226 774810 -2226 c
+763276 -2226 754204 2605 747664 12222 C
+747664 0 L
+@c
+747475 49600 m
+747475 37876 749085 29393 752262 24183 c
+757473 15656 764531 11393 773413 11393 c
+780661 11393 786937 14543 792195 20819 c
+797453 27096 800106 36478 800106 48937 c
+800106 61679 797572 71106 792527 77170 c
+787458 83233 781324 86288 774147 86288 c
+766923 86288 760647 83138 755388 76862 c
+750127 70585 747475 61466 747475 49576 C
+747475 49600 L
+@c
+F
+%CHAR: 824760 0 (l) @t
+836816 0 m
+836792 134870 L
+853372 134870 L
+853372 0 L
+836816 0 L
+@c
+F
+%CHAR: 866616 0 (e) @t
+945917 31457 m
+963021 29346 L
+960318 19351 955320 11558 948025 6063 c
+940730 545 931398 -2226 920053 -2226 c
+905771 -2226 894422 2179 886062 10966 c
+877701 19777 873508 32144 873508 48013 c
+873508 64451 877748 77217 886204 86288 c
+894659 95363 905652 99910 919129 99910 c
+932203 99910 942885 95457 951152 86573 c
+959441 77667 963589 65137 963589 49031 c
+963589 48060 963542 46568 963495 44602 C
+890609 44602 L
+891225 33897 894280 25651 899731 19967 c
+905179 14259 912000 11393 920148 11393 c
+926211 11393 931422 13003 935685 16177 c
+939972 19351 943407 24467 945917 31457 C
+@c
+891557 58245 m
+946107 58221 L
+945372 66440 943264 72622 939830 76719 c
+934572 83091 927703 86288 919319 86288 c
+911739 86288 905321 83730 900157 78662 c
+894967 73569 892078 66748 891533 58221 C
+891557 58245 L
+@c
+F
+T
+@rax 157.43339 289.66932 195.43748 302.75518 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 157.43351915 289.88077355] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 187867.00000 z
+%CHAR: 0 0 (t) @t
+48436 14780 m
+50805 166 L
+46163 -805 41994 -1303 38323 -1303 c
+32354 -1303 27688 -355 24396 1540 c
+21104 3434 18759 5945 17432 9024 c
+16082 12103 15395 18617 15395 28517 c
+15395 84556 L
+3292 84556 L
+3292 97414 L
+15395 97414 L
+15395 121526 L
+31809 131450 L
+31809 97414 L
+48413 97414 L
+48413 84556 L
+31809 84556 L
+31809 27593 l
+31809 22904 32117 19848 32686 18522 c
+33254 17195 34225 16106 35528 15324 c
+36854 14519 38749 14116 41189 14116 c
+43012 14116 45428 14330 48413 14756 C
+48436 14780 L
+@c
+F
+%CHAR: 49536 0 (a) @t
+125495 12008 m
+119384 6821 113462 3150 107825 1018 c
+102188 -1113 96101 -2203 89611 -2203 c
+78906 -2203 70663 426 64931 5637 c
+59200 10848 56310 17551 56310 25675 c
+56310 30436 57400 34817 59555 38749 c
+61734 42681 64600 45878 68105 48247 c
+71611 50615 75590 52439 79972 53647 c
+83216 54500 88119 55329 94656 56134 c
+107968 57721 117797 59639 124097 61819 C
+124145 64069 124192 65513 124192 66129 c
+124192 72856 122629 77593 119526 80340 c
+115310 84083 109010 85954 100720 85954 c
+92951 85954 87219 84580 83524 81880 c
+79829 79156 77058 74324 75306 67408 C
+59152 69611 L
+60621 76527 63037 82117 66400 86356 c
+69763 90596 74642 93888 80990 96159 c
+87338 98457 94727 99617 103088 99617 c
+111402 99617 118176 98622 123363 96680 c
+128574 94738 132411 92254 134827 89293 c
+137266 86333 138995 82567 139966 78043 c
+140511 75248 140795 70156 140795 62837 c
+140795 40810 l
+140795 25462 141151 15751 141837 11701 c
+142548 7627 143942 3719 146027 0 C
+128787 0 L
+127082 3411 125945 7413 125471 12008 C
+125495 12008 L
+@c
+124121 48886 m
+118128 46447 109128 44339 97143 42633 c
+90369 41686 85538 40573 82743 39365 c
+79924 38133 77745 36333 76229 33988 c
+74713 31620 73932 28991 73932 26125 c
+73932 21719 75613 18048 78929 15135 c
+82245 12198 87148 10729 93567 10729 c
+99915 10729 105575 12127 110526 14898 c
+115476 17669 119123 21483 121444 26314 c
+123197 30033 124097 35552 124097 42823 c
+124121 48886 L
+@c
+F
+%CHAR: 154032 0 (b) @t
+181649 0 m
+166301 0 L
+166301 134458 L
+182833 134458 L
+182833 86499 L
+189797 95235 198702 99617 209527 99617 c
+215495 99617 221180 98409 226533 95993 c
+231885 93580 236291 90170 239749 85812 c
+243207 81454 245931 76148 247873 69990 c
+249812 63808 250807 57176 250807 50165 c
+250807 33491 246665 20559 238423 11464 c
+230180 2369 220256 -2203 208698 -2203 c
+197210 -2203 188162 2605 181625 12198 C
+181649 0 L
+@c
+181460 49455 m
+181460 37754 183046 29299 186220 24112 c
+191407 15632 198466 11369 207324 11369 c
+214524 11369 220777 14519 226035 20772 c
+231293 27025 233922 36381 233922 48792 c
+233922 61511 231388 70914 226367 76953 c
+221322 82993 215211 86025 208058 86025 c
+200858 86025 194605 82875 189347 76622 c
+184089 70369 181460 61274 181460 49431 C
+181460 49455 L
+@c
+F
+%CHAR: 258528 0 (l) @t
+270536 0 m
+270536 134458 L
+287045 134458 L
+287045 0 L
+270536 0 L
+@c
+F
+%CHAR: 300264 0 (e) @t
+379349 31383 m
+396376 29251 L
+393702 19303 388705 11558 381433 6063 c
+374162 568 364854 -2203 353556 -2203 c
+339297 -2203 327999 2179 319662 10943 c
+311325 19706 307133 32046 307133 47868 c
+307133 64258 311349 76977 319781 86025 c
+328213 95070 339179 99617 352632 99617 c
+365659 99617 376317 95164 384560 86309 c
+392802 77451 396944 64945 396944 48886 c
+396944 47915 396897 46423 396849 44481 C
+324186 44481 L
+324802 33775 327834 25580 333281 19896 c
+338729 14211 345527 11369 353651 11369 c
+359690 11369 364877 12956 369141 16130 c
+373404 19303 376815 24396 379325 31359 C
+379349 31383 L
+@c
+325134 58076 m
+379515 58053 L
+378781 66248 376673 72406 373262 76503 c
+368004 82851 361182 86025 352822 86025 c
+345242 86025 338871 83491 333708 78422 c
+328544 73353 325655 66556 325110 58053 C
+325134 58076 L
+@c
+F
+T
+@rax 171.73219 261.55389 178.43244 274.48129 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 171.73210693 261.55399179] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 187867.00000 z
+%CHAR: 0 0 (1) @t
+69990 0 m
+53458 0 L
+53458 105207 L
+49502 101417 44291 97628 37849 93841 c
+31407 90051 25580 87185 20440 85291 C
+20440 101251 L
+29678 105586 37754 110868 44647 117026 c
+51563 123208 56466 129224 59332 135027 C
+69990 135027 L
+69990 0 L
+@c
+F
+T
+@rax %Note: Object
+176.16189 109.68406 176.16302 135.58394 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+176.16246 135.58394 m
+176.16246 126.95074 176.16246 118.31754 176.16246 109.68406 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+176.16246 139.13008 m
+179.18646 132.07408 L
+177.17046 133.08208 175.15446 133.08208 173.13846 132.07408 C
+176.16246 139.13008 L
+f
+@J
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+176.16246 106.13792 m
+179.18646 113.19392 L
+177.17046 112.18592 175.15446 112.18592 173.13846 113.19392 C
+176.16246 106.13792 L
+f
+@J
+
+@rax %Note: Object
+14.27131 255.64224 77.98167 294.56617 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+46.12649 294.56617 m
+63.67181 294.56617 77.98167 285.82356 77.98167 275.10406 c
+77.98167 264.38485 63.67181 255.64224 46.12649 255.64224 c
+28.58117 255.64224 14.27131 264.38485 14.27131 275.10406 c
+14.27131 285.82356 28.58117 294.56617 46.12649 294.56617 c
+@c
+S
+
+@rax %Note: Object
+101.23852 287.22954 116.28085 302.98422 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+101.23852 302.98422 m
+116.28085 302.98422 L
+116.28085 287.22954 L
+101.23852 287.22954 L
+101.23852 302.98422 L
+@c
+S
+
+@rax 107.37468 292.63521 110.49647 299.90976 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 107.37463338 292.63532344] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 104370.00000 z
+%CHAR: 0 0 (f) @t
+9074 0 m
+9060 46974 L
+962 46974 L
+962 54109 L
+9060 54109 L
+9060 59867 l
+9060 63509 9385 66218 10037 67980 c
+10910 70348 12464 72287 14685 73753 c
+16905 75233 20044 75973 24041 75973 c
+26619 75973 29491 75663 32615 75056 C
+31238 67062 L
+29343 67387 27522 67565 25832 67565 c
+23049 67565 21080 66973 19925 65789 c
+18771 64604 18178 62369 18178 59112 c
+18178 54109 L
+28736 54109 L
+28736 46974 L
+18178 46974 L
+18178 0 L
+9074 0 L
+@c
+F
+T
+@rax 107.37468 292.63521 110.49647 299.90976 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 107.37463338 292.63532344] @tm
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.21600 0.21600 0.00000 @w
+r
+
+% FontChange:/_Arial 104370.00000 z
+%CHAR: 0 0 (f) @t
+9074 0 m
+9060 46974 L
+962 46974 L
+962 54109 L
+9060 54109 L
+9060 59867 l
+9060 63509 9385 66218 10037 67980 c
+10910 70348 12464 72287 14685 73753 c
+16905 75233 20044 75973 24041 75973 c
+26619 75973 29491 75663 32615 75056 C
+31238 67062 L
+29343 67387 27522 67565 25832 67565 c
+23049 67565 21080 66973 19925 65789 c
+18771 64604 18178 62369 18178 59112 c
+18178 54109 L
+28736 54109 L
+28736 46974 L
+18178 46974 L
+18178 0 L
+9074 0 L
+@c
+S
+T
+@rax %Note: Object
+101.23852 248.30561 116.28085 264.06028 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+101.23852 264.06028 m
+116.28085 264.06028 L
+116.28085 248.30561 L
+101.23852 248.30561 L
+101.23852 264.06028 L
+@c
+S
+
+@rax 107.66806 252.82857 110.79921 260.12438 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 107.66801920 252.82844459] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 104680.00000 z
+%CHAR: 0 0 (f) @t
+9104 0 m
+9089 47122 L
+962 47122 L
+962 54272 L
+9089 54272 L
+9089 60045 l
+9089 63687 9415 66410 10066 68172 c
+10940 70555 12509 72495 14729 73975 c
+16965 75455 20103 76195 24115 76195 c
+26708 76195 29580 75885 32703 75278 C
+31327 67254 L
+29432 67595 27611 67772 25906 67772 c
+23123 67772 21139 67165 19984 65981 c
+18830 64797 18238 62547 18238 59290 c
+18238 54272 L
+28825 54272 L
+28825 47122 L
+18238 47122 L
+18238 0 L
+9104 0 L
+@c
+F
+T
+@rax 23.04680 269.16321 71.19326 282.48576 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 23.04673119 269.38384725] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 187867.00000 z
+%CHAR: 0 0 (O) @t
+9071 65490 m
+9071 87801 15064 105302 27049 117902 c
+39033 130526 54523 136850 73472 136850 c
+85883 136850 97083 133890 107031 127968 c
+117002 122047 124629 113757 129840 103146 c
+135050 92538 137679 80506 137679 67053 c
+137679 53410 134932 41212 129437 30459 c
+123942 19706 116126 11535 106036 6016 c
+95946 474 85054 -2297 73377 -2297 c
+60729 -2297 49384 758 39436 6869 c
+29488 12980 21909 21340 16793 31904 c
+11653 42468 9071 53694 9071 65490 c
+@c
+27428 65229 m
+27428 49028 31786 36238 40478 26930 c
+49194 17598 60137 12932 73282 12932 c
+86664 12932 97699 17646 106344 27049 c
+114989 36475 119323 49857 119323 67148 c
+119323 78090 117476 87659 113781 95804 c
+110086 103952 104662 110299 97557 114776 c
+90430 119276 82425 121526 73566 121526 c
+60966 121526 50118 117192 41047 108547 c
+31975 99901 27428 85433 27428 65205 C
+27428 65229 L
+@c
+F
+%CHAR: 146136 0 (S) @t
+154568 43202 m
+171361 44670 L
+172142 37944 174014 32425 176903 28114 c
+179793 23804 184317 20322 190427 17669 c
+196538 15016 203431 13666 211081 13666 c
+217855 13666 223871 14685 229058 16674 c
+234245 18688 238130 21483 240637 24988 c
+243172 28493 244451 32354 244451 36499 c
+244451 40715 243219 44410 240803 47536 c
+238366 50686 234316 53363 228679 55495 c
+225079 56892 217097 59095 204757 62032 c
+192393 64992 183724 67811 178774 70440 c
+172379 73803 167571 77972 164445 82946 c
+161295 87920 159708 93533 159708 99712 c
+159708 106486 161650 112834 165487 118731 c
+169324 124629 174961 129129 182351 132161 c
+189741 135216 197983 136756 207031 136756 c
+217002 136756 225813 135145 233416 131948 c
+241016 128750 246890 124013 250964 117784 c
+255062 111531 257288 104449 257572 96585 C
+240519 95306 L
+239622 103786 236495 110228 231213 114563 c
+225932 118897 218092 121076 207765 121076 c
+197012 121076 189172 119086 184246 115155 c
+179319 111223 176856 106439 176856 100896 c
+176856 96064 178608 92088 182090 88962 c
+185501 85859 194478 82662 208926 79393 c
+223374 76124 233321 73235 238674 70819 c
+246487 67219 252290 62624 256009 57105 c
+259751 51563 261622 45168 261622 37967 c
+261622 30815 259562 24064 255488 17740 c
+251390 11416 245493 6490 237822 2984 c
+230148 -521 221502 -2297 211886 -2297 c
+199736 -2297 189527 -521 181309 3008 c
+173090 6561 166624 11914 161958 19019 c
+157268 26125 154805 34202 154568 43202 C
+@c
+F
+%CHAR: 271440 0 (P) @t
+285935 0 m
+285912 134458 L
+336645 134458 l
+345575 134458 352420 134032 357110 133179 c
+363694 132090 369257 129982 373710 126903 c
+378163 123824 381787 119465 384487 113923 c
+387187 108357 388561 102223 388561 95567 c
+388561 84154 384913 74466 377665 66556 c
+370394 58645 357228 54666 338209 54666 c
+303723 54666 L
+303723 0 L
+285935 0 L
+@c
+303723 70535 m
+338493 70535 l
+349980 70535 358152 72690 362983 76953 c
+367812 81217 370228 87256 370228 95022 c
+370228 100636 368807 105467 365965 109470 c
+363126 113473 359360 116126 354717 117405 c
+351733 118186 346167 118589 338114 118589 c
+303723 118589 L
+303723 70535 L
+@c
+F
+%CHAR: 396744 0 (F) @t
+412163 0 m
+412139 134458 L
+502875 134458 L
+502875 118589 L
+429951 118589 L
+429951 76953 L
+493045 76953 L
+493045 61084 L
+429951 61084 L
+429951 0 L
+412163 0 L
+@c
+F
+T
+@rax %Note: Object
+143.10198 137.01685 206.81235 175.94079 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+174.95717 175.94079 m
+192.50249 175.94079 206.81235 167.19817 206.81235 156.47896 c
+206.81235 145.75975 192.50249 137.01685 174.95717 137.01685 c
+157.41184 137.01685 143.10198 145.75975 143.10198 156.47896 c
+143.10198 167.19817 157.41184 175.94079 174.95717 175.94079 c
+@c
+S
+
+@rax %Note: Object
+149.25203 193.62671 164.29436 209.38139 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+149.25203 209.38139 m
+164.29436 209.38139 L
+164.29436 193.62671 L
+149.25203 193.62671 L
+149.25203 209.38139 L
+@c
+S
+
+@rax 155.38819 199.03266 158.50998 206.30693 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 155.38815181 199.03261601] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 104370.00000 z
+%CHAR: 0 0 (f) @t
+9074 0 m
+9060 46974 L
+962 46974 L
+962 54109 L
+9060 54109 L
+9060 59867 l
+9060 63509 9385 66218 10037 67980 c
+10910 70348 12464 72287 14685 73753 c
+16905 75233 20044 75973 24041 75973 c
+26619 75973 29491 75663 32615 75056 C
+31238 67062 L
+29343 67387 27522 67565 25832 67565 c
+23049 67565 21080 66973 19925 65789 c
+18771 64604 18178 62369 18178 59112 c
+18178 54109 L
+28736 54109 L
+28736 46974 L
+18178 46974 L
+18178 0 L
+9074 0 L
+@c
+F
+T
+@rax %Note: Object
+184.33899 192.70006 199.38132 208.45474 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+184.33899 208.45474 m
+199.38132 208.45474 L
+199.38132 192.70006 L
+184.33899 192.70006 L
+184.33899 208.45474 L
+@c
+S
+
+@rax 190.47515 198.10602 193.60630 205.40183 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 190.47510473 198.10591152] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 104680.00000 z
+%CHAR: 0 0 (f) @t
+9104 0 m
+9089 47122 L
+962 47122 L
+962 54272 L
+9089 54272 L
+9089 60045 l
+9089 63687 9415 66410 10066 68172 c
+10940 70555 12509 72495 14729 73975 c
+16965 75455 20103 76195 24115 76195 c
+26708 76195 29580 75885 32703 75278 C
+31327 67254 L
+29432 67595 27611 67772 25906 67772 c
+23123 67772 21139 67165 19984 65981 c
+18830 64797 18238 62547 18238 59290 c
+18238 54272 L
+28825 54272 L
+28825 47122 L
+18238 47122 L
+18238 0 L
+9104 0 L
+@c
+F
+T
+@rax 151.10872 150.36265 198.97285 163.48564 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 151.10863718 150.57399333] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 188424.00000 z
+%CHAR: 0 0 (k) @t
+12506 0 m
+12506 134870 L
+29062 134870 L
+29062 57961 L
+68264 97708 L
+89699 97708 L
+52347 61442 L
+93465 0 L
+73048 0 L
+40742 49955 L
+29062 38728 L
+29062 0 L
+12506 0 L
+@c
+F
+%CHAR: 94224 0 (e) @t
+173525 31457 m
+190629 29346 L
+187926 19351 182928 11558 175633 6063 c
+168338 545 159006 -2226 147661 -2226 c
+133379 -2226 122030 2179 113670 10966 c
+105309 19777 101116 32144 101116 48013 c
+101116 64451 105356 77217 113812 86288 c
+122267 95363 133260 99910 146737 99910 c
+159811 99910 170493 95457 178760 86573 c
+187049 77667 191197 65137 191197 49031 c
+191197 48060 191150 46568 191103 44602 C
+118217 44602 L
+118833 33897 121888 25651 127339 19967 c
+132787 14259 139608 11393 147756 11393 c
+153819 11393 159030 13003 163293 16177 c
+167580 19351 171015 24467 173525 31457 C
+@c
+119165 58245 m
+173715 58221 L
+172980 66440 170872 72622 167438 76719 c
+162180 83091 155311 86288 146927 86288 c
+139347 86288 132929 83730 127765 78662 c
+122575 73569 119686 66748 119141 58221 C
+119165 58245 L
+@c
+F
+%CHAR: 199008 0 (r) @t
+211253 0 m
+211230 97708 L
+226128 97708 L
+226128 82878 L
+229917 89794 233449 94392 236671 96594 c
+239892 98797 243444 99910 247305 99910 c
+252871 99910 258556 98134 264311 94581 C
+258627 79206 L
+254577 81575 250503 82783 246476 82783 c
+242876 82783 239607 81693 236742 79538 c
+233852 77359 231791 74327 230560 70467 c
+228709 64593 227786 58127 227786 51139 c
+227786 0 L
+211253 0 L
+@c
+F
+%CHAR: 261744 0 (n) @t
+274155 0 m
+274155 97708 L
+289053 97708 L
+289053 83801 L
+296233 94534 306607 99910 320155 99910 c
+326029 99910 331453 98844 336379 96736 c
+341306 94628 345024 91831 347464 88420 c
+349927 84986 351656 80888 352627 76175 c
+353243 73096 353551 67719 353551 60069 c
+353551 0 L
+336995 0 L
+336995 59429 l
+336995 66156 336355 71225 335076 74540 c
+333797 77880 331476 80556 328208 82546 c
+324939 84536 321055 85554 316649 85554 c
+309615 85554 303528 83304 298412 78851 c
+293296 74375 290711 65848 290711 53342 c
+290711 0 L
+274155 0 L
+@c
+F
+%CHAR: 366528 0 (e) @t
+445829 31457 m
+462933 29346 L
+460230 19351 455232 11558 447937 6063 c
+440642 545 431310 -2226 419965 -2226 c
+405683 -2226 394334 2179 385974 10966 c
+377613 19777 373420 32144 373420 48013 c
+373420 64451 377660 77217 386116 86288 c
+394571 95363 405564 99910 419041 99910 c
+432115 99910 442797 95457 451064 86573 c
+459353 77667 463501 65137 463501 49031 c
+463501 48060 463454 46568 463407 44602 C
+390521 44602 L
+391137 33897 394192 25651 399643 19967 c
+405091 14259 411912 11393 420060 11393 c
+426123 11393 431334 13003 435597 16177 c
+439884 19351 443319 24467 445829 31457 C
+@c
+391469 58245 m
+446019 58221 L
+445284 66440 443176 72622 439742 76719 c
+434484 83091 427615 86288 419231 86288 c
+411651 86288 405233 83730 400069 78662 c
+394879 73569 391990 66748 391445 58221 C
+391469 58245 L
+@c
+F
+%CHAR: 471312 0 (l) @t
+483368 0 m
+483344 134870 L
+499924 134870 L
+499924 0 L
+483368 0 L
+@c
+F
+T
+@rax %Note: Object
+156.33184 175.77836 160.21587 193.70778 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+160.21587 175.77836 m
+157.05383 181.43631 156.33184 187.48346 156.83357 193.70778 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+161.94586 172.68293 m
+155.86384 177.36718 L
+158.11540 177.47065 159.87515 178.45427 161.14337 180.31748 C
+161.94586 172.68293 L
+f
+@J
+
+@rax %Note: Object
+186.77820 174.80296 192.64479 192.07956 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+192.64479 192.07956 m
+192.61757 185.59814 190.27446 179.97676 186.77820 174.80296 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+192.65953 195.62570 m
+195.65376 188.55694 L
+193.64202 189.57345 191.62602 189.58195 189.60605 188.58246 C
+192.65953 195.62570 L
+f
+@J
+
+@rax %Note: Object
+186.16592 209.22151 192.40214 235.74387 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+192.40214 209.22151 m
+191.88510 218.80375 190.64098 227.74337 186.16592 235.74387 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+192.59320 205.68076 m
+189.19332 212.56356 L
+191.26091 211.66554 193.27380 211.77439 195.23254 212.88954 C
+192.59320 205.68076 L
+f
+@J
+
+@rax %Note: Object
+155.67080 209.51518 161.90702 236.03754 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+155.67080 209.51518 m
+156.18784 219.09742 157.43197 228.03704 161.90702 236.03754 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+155.47975 205.97443 m
+152.84041 213.18321 L
+154.79915 212.06806 156.81203 211.95921 158.87962 212.85723 C
+155.47975 205.97443 L
+f
+@J
+
+@rax %Note: Object
+144.15562 373.91301 207.86598 412.83694 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+176.01080 373.91301 m
+193.55613 373.91301 207.86598 382.65562 207.86598 393.37483 c
+207.86598 404.09405 193.55613 412.83694 176.01080 412.83694 c
+158.46548 412.83694 144.15562 404.09405 144.15562 393.37483 c
+144.15562 382.65562 158.46548 373.91301 176.01080 373.91301 c
+@c
+S
+
+@rax %Note: Object
+150.30567 340.47241 165.34800 356.22709 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+150.30567 340.47241 m
+165.34800 340.47241 L
+165.34800 356.22709 L
+150.30567 356.22709 L
+150.30567 340.47241 L
+@c
+S
+
+@rax 156.44183 343.54687 159.56362 350.82113 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 156.44178957 343.54681545] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 104370.00000 z
+%CHAR: 0 0 (f) @t
+9074 0 m
+9060 46974 L
+962 46974 L
+962 54109 L
+9060 54109 L
+9060 59867 l
+9060 63509 9385 66218 10037 67980 c
+10910 70348 12464 72287 14685 73753 c
+16905 75233 20044 75973 24041 75973 c
+26619 75973 29491 75663 32615 75056 C
+31238 67062 L
+29343 67387 27522 67565 25832 67565 c
+23049 67565 21080 66973 19925 65789 c
+18771 64604 18178 62369 18178 59112 c
+18178 54109 L
+28736 54109 L
+28736 46974 L
+18178 46974 L
+18178 0 L
+9074 0 L
+@c
+F
+T
+@rax %Note: Object
+185.39263 341.39906 200.43496 357.15373 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+185.39263 341.39906 m
+200.43496 341.39906 L
+200.43496 357.15373 L
+185.39263 357.15373 L
+185.39263 341.39906 L
+@c
+S
+
+@rax 191.52879 344.45197 194.65994 351.74778 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 191.52874248 344.45185892] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 104680.00000 z
+%CHAR: 0 0 (f) @t
+9104 0 m
+9089 47122 L
+962 47122 L
+962 54272 L
+9089 54272 L
+9089 60045 l
+9089 63687 9415 66410 10066 68172 c
+10940 70555 12509 72495 14729 73975 c
+16965 75455 20103 76195 24115 76195 c
+26708 76195 29580 75885 32703 75278 C
+31327 67254 L
+29432 67595 27611 67772 25906 67772 c
+23123 67772 21139 67165 19984 65981 c
+18830 64797 18238 62547 18238 59290 c
+18238 54272 L
+28825 54272 L
+28825 47122 L
+18238 47122 L
+18238 0 L
+9104 0 L
+@c
+F
+T
+@rax 158.32602 387.61228 195.64072 400.96517 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 158.32592826 387.83297677] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 188424.00000 z
+%CHAR: 0 0 (B) @t
+13809 0 m
+13785 134870 L
+64403 134870 l
+74683 134870 82972 133496 89178 130772 c
+95410 128048 100313 123832 103818 118172 c
+107324 112511 109100 106566 109100 100360 c
+109100 94605 107537 89154 104411 84086 c
+101284 78993 96547 74872 90244 71746 C
+98394 69377 104695 65280 109053 59524 c
+113435 53768 115637 46947 115637 39084 c
+115637 32783 114287 26883 111635 21483 c
+108982 16059 105666 11866 101758 8929 c
+97826 5992 92897 3742 86975 2250 c
+81054 758 73783 0 65208 0 c
+13809 0 L
+@c
+31646 78212 m
+60803 78188 l
+68714 78188 74398 78709 77833 79751 c
+82357 81101 85791 83351 88065 86478 c
+90362 89604 91523 93536 91523 98252 c
+91523 102705 90433 106661 88302 110071 c
+86170 113482 83091 115827 79112 117058 c
+75133 118314 68288 118953 58600 118953 c
+31646 118953 L
+31646 78212 L
+@c
+31646 15916 m
+65208 15893 l
+70988 15893 75038 16130 77359 16556 c
+81457 17267 84915 18522 87662 20227 c
+90410 21933 92707 24443 94463 27712 c
+96239 30980 97139 34797 97139 39084 c
+97139 44105 95836 48510 93275 52205 c
+90717 55900 87117 58529 82570 60021 c
+77998 61514 71390 62271 62816 62271 c
+31646 62271 L
+31646 15916 L
+@c
+F
+%CHAR: 125688 0 (G) @t
+203331 52892 m
+203331 68714 L
+260463 68809 L
+260463 18759 L
+251699 11772 242652 6490 233343 2984 c
+224011 -545 214416 -2321 204610 -2321 c
+191370 -2321 179314 521 168514 6182 c
+157690 11866 149492 20085 143997 30791 c
+138478 41523 135707 53532 135707 66772 c
+135707 79893 138454 92162 143926 103534 c
+149421 114903 157334 123382 167614 128877 c
+177917 134396 189807 137167 203236 137167 c
+212995 137167 221832 135580 229696 132430 c
+237559 129280 243765 124875 248218 119237 c
+252694 113600 256129 106211 258450 97139 C
+242344 92731 L
+240331 99602 237796 105003 234812 108911 c
+231804 112842 227493 115993 221927 118337 c
+216334 120706 210129 121890 203331 121890 c
+195183 121890 188102 120635 182180 118172 c
+176235 115708 171427 112416 167780 108390 c
+164132 104339 161266 99863 159253 95031 c
+155839 86691 154110 77643 154110 67885 c
+154110 55876 156195 45810 160319 37710 c
+164440 29607 170480 23591 178391 19682 c
+186302 15751 194710 13785 203592 13785 c
+211313 13785 218892 15277 226238 18238 c
+233580 21222 239194 24419 242983 27783 C
+242983 52892 L
+203331 52892 L
+@c
+F
+%CHAR: 272256 0 (P) @t
+286799 0 m
+286775 134870 L
+337654 134870 l
+346607 134870 353452 134420 358165 133567 c
+364797 132478 370366 130370 374819 127290 c
+379296 124188 382919 119830 385643 114264 c
+388367 108674 389741 102539 389741 95860 c
+389741 84394 386093 74683 378798 66748 c
+371503 58813 358284 54834 339217 54834 c
+304637 54834 L
+304637 0 L
+286799 0 L
+@c
+304637 70751 m
+339501 70751 l
+351012 70751 359231 72906 364063 77170 c
+368898 81457 371337 87520 371337 95315 c
+371337 100952 369916 105784 367074 109787 c
+364229 113814 360439 116466 355773 117745 c
+352789 118551 347223 118953 339122 118953 c
+304637 118953 L
+304637 70751 L
+@c
+F
+T
+@rax %Note: Object
+157.38548 356.14602 161.26951 374.07543 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+161.26951 374.07543 m
+158.10746 368.41748 157.38548 362.37033 157.88721 356.14602 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+162.99950 377.17087 m
+162.19701 369.53631 L
+160.92879 371.39953 159.16904 372.38315 156.91748 372.48661 C
+162.99950 377.17087 L
+f
+@J
+
+@rax %Note: Object
+187.83184 357.77424 193.69843 375.05083 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+193.69843 357.77424 m
+193.67121 364.25565 191.32809 369.87704 187.83184 375.05083 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+193.71317 354.22809 m
+190.65969 361.27134 L
+192.67965 360.27184 194.69565 360.28035 196.70740 361.29685 C
+193.71317 354.22809 L
+f
+@J
+
+@rax %Note: Object
+187.21956 314.10992 193.45578 340.63228 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+193.45578 340.63228 m
+192.93874 331.05005 191.69461 322.11043 187.21956 314.10992 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+193.64683 344.17304 m
+196.28617 336.96425 L
+194.32743 338.07940 192.31455 338.18825 190.24696 337.29024 C
+193.64683 344.17304 L
+f
+@J
+
+@rax %Note: Object
+156.72444 313.81625 162.96066 340.33861 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+156.72444 340.33861 m
+157.24148 330.75638 158.48561 321.81676 162.96066 313.81625 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+156.53339 343.87937 m
+159.93326 336.99657 L
+157.86567 337.89458 155.85279 337.78573 153.89405 336.67058 C
+156.53339 343.87937 L
+f
+@J
+
+@rax %Note: Object
+116.11531 294.66454 147.83074 294.66567 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+116.11531 294.66510 m
+126.68712 294.66510 137.25893 294.66510 147.83074 294.66510 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+112.56917 294.66510 m
+119.62517 297.68910 L
+118.61717 295.67310 118.61717 293.65710 119.62517 291.64110 C
+112.56917 294.66510 L
+f
+@J
+
+@rax %Note: Object
+116.11531 255.80353 147.97049 255.80466 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+116.11531 255.80409 m
+126.73389 255.80409 137.35219 255.80409 147.97049 255.80409 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+151.51663 255.80409 m
+144.46063 258.82809 L
+145.46863 256.81209 145.46863 254.79609 144.46063 252.78009 C
+151.51663 255.80409 L
+f
+@J
+
+@rax %Note: Object
+72.73020 255.29386 101.01288 264.48576 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+101.01288 255.66633 m
+90.53603 255.29386 81.64772 256.94901 72.73020 264.48576 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+104.55676 255.79219 m
+97.61272 252.51931 L
+98.54844 254.56989 98.47672 256.58476 97.39786 258.56362 C
+104.55676 255.79219 L
+f
+@J
+
+@rax %Note: Object
+72.83934 286.43357 101.03329 296.55014 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+72.83934 286.43357 m
+81.18510 292.77808 89.40161 296.55014 101.03329 295.53307 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+70.01631 284.28746 m
+73.80340 290.96504 L
+74.22094 288.75005 75.44098 287.14507 77.46350 286.15039 C
+70.01631 284.28746 L
+f
+@J
+
+@rax %Note: Object
+518.84844 231.84850 582.55880 270.77244 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+550.70362 270.77244 m
+533.15830 270.77244 518.84844 262.02983 518.84844 251.31033 c
+518.84844 240.59112 533.15830 231.84850 550.70362 231.84850 c
+568.24894 231.84850 582.55880 240.59112 582.55880 251.31033 c
+582.55880 262.02983 568.24894 270.77244 550.70362 270.77244 c
+@c
+S
+
+@rax %Note: Object
+480.54926 263.43581 495.59159 279.19049 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+495.59159 279.19049 m
+480.54926 279.19049 L
+480.54926 263.43581 L
+495.59159 263.43581 L
+495.59159 279.19049 L
+@c
+S
+
+@rax 486.33335 268.84148 489.45515 276.11603 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 486.33329669 268.84159203] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 104370.00000 z
+%CHAR: 0 0 (f) @t
+9074 0 m
+9060 46974 L
+962 46974 L
+962 54109 L
+9060 54109 L
+9060 59867 l
+9060 63509 9385 66218 10037 67980 c
+10910 70348 12464 72287 14685 73753 c
+16905 75233 20044 75973 24041 75973 c
+26619 75973 29491 75663 32615 75056 C
+31238 67062 L
+29343 67387 27522 67565 25832 67565 c
+23049 67565 21080 66973 19925 65789 c
+18771 64604 18178 62369 18178 59112 c
+18178 54109 L
+28736 54109 L
+28736 46974 L
+18178 46974 L
+18178 0 L
+9074 0 L
+@c
+F
+T
+@rax 486.33335 268.84148 489.45515 276.11603 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 486.33329669 268.84159203] @tm
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.21600 0.21600 0.00000 @w
+r
+
+% FontChange:/_Arial 104370.00000 z
+%CHAR: 0 0 (f) @t
+9074 0 m
+9060 46974 L
+962 46974 L
+962 54109 L
+9060 54109 L
+9060 59867 l
+9060 63509 9385 66218 10037 67980 c
+10910 70348 12464 72287 14685 73753 c
+16905 75233 20044 75973 24041 75973 c
+26619 75973 29491 75663 32615 75056 C
+31238 67062 L
+29343 67387 27522 67565 25832 67565 c
+23049 67565 21080 66973 19925 65789 c
+18771 64604 18178 62369 18178 59112 c
+18178 54109 L
+28736 54109 L
+28736 46974 L
+18178 46974 L
+18178 0 L
+9074 0 L
+@c
+S
+T
+@rax %Note: Object
+480.54926 224.51187 495.59159 240.26655 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+495.59159 240.26655 m
+480.54926 240.26655 L
+480.54926 224.51187 L
+495.59159 224.51187 L
+495.59159 240.26655 L
+@c
+S
+
+@rax 486.03090 229.03483 489.16205 236.33065 @E
+[-0.00009574 0.00000000 0.00000000 0.00009574 489.16206920 229.03471317] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 104680.00000 z
+%CHAR: 0 0 (f) @t
+9104 0 m
+9089 47122 L
+962 47122 L
+962 54272 L
+9089 54272 L
+9089 60045 l
+9089 63687 9415 66410 10066 68172 c
+10940 70555 12509 72495 14729 73975 c
+16965 75455 20103 76195 24115 76195 c
+26708 76195 29580 75885 32703 75278 C
+31327 67254 L
+29432 67595 27611 67772 25906 67772 c
+23123 67772 21139 67165 19984 65981 c
+18830 64797 18238 62547 18238 59290 c
+18238 54272 L
+28825 54272 L
+28825 47122 L
+18238 47122 L
+18238 0 L
+9104 0 L
+@c
+F
+T
+@rax 486.03090 229.03483 489.16205 236.33065 @E
+[0.00009574 0.00000000 0.00000000 0.00009574 486.03084000 229.03471317] @tm
+ 0 O 0 @g
+0.00 0.00 0.00 1.00 k
+e
+
+% FontChange:/_Arial 104680.00000 z
+%CHAR: 0 0 (f) @t
+9104 0 m
+9089 47122 L
+962 47122 L
+962 54272 L
+9089 54272 L
+9089 60045 l
+9089 63687 9415 66410 10066 68172 c
+10940 70555 12509 72495 14729 73975 c
+16965 75455 20103 76195 24115 76195 c
+26708 76195 29580 75885 32703 75278 C
+31327 67254 L
+29432 67595 27611 67772 25906 67772 c
+23123 67772 21139 67165 19984 65981 c
+18830 64797 18238 62547 18238 59290 c
+18238 54272 L
+28825 54272 L
+28825 47122 L
+18238 47122 L
+18238 0 L
+9104 0 L
+@c
+F
+T
+@rax %Note: Object
+450.37474 270.87080 480.71480 270.87194 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+480.71480 270.87137 m
+470.60135 270.87137 460.48819 270.87137 450.37474 270.87137 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+446.82860 270.87137 m
+453.88460 267.84737 L
+452.87660 269.86337 452.87660 271.87937 453.88460 273.89537 C
+446.82860 270.87137 L
+f
+@J
+
+@rax %Note: Object
+378.82743 272.41370 404.45915 272.41398 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+404.45915 272.41398 m
+395.91524 272.41370 387.37134 272.41370 378.82743 272.41370 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+375.28129 272.41370 m
+382.33729 269.38970 L
+381.32929 271.40570 381.32929 273.42170 382.33729 275.43770 C
+375.28129 272.41370 L
+f
+@J
+
+@rax %Note: Object
+202.21795 251.00362 284.23559 269.60060 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+284.23559 251.00362 m
+270.50513 269.60060 234.56976 264.83471 202.21795 265.88239 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+198.67380 265.99691 m
+205.62831 262.74614 L
+204.68608 264.79361 204.75128 266.80876 205.82391 268.79102 C
+198.67380 265.99691 L
+f
+@J
+
+@rax %Note: Object
+449.83956 232.00980 480.71480 232.01093 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+480.71480 232.01036 m
+470.42277 232.01036 460.13131 232.01036 449.83956 232.01036 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+484.26094 232.01036 m
+477.20494 228.98636 L
+478.21294 231.00236 478.21294 233.01836 477.20494 235.03436 C
+484.26094 232.01036 L
+f
+@J
+
+@rax %Note: Object
+495.81723 231.50013 524.09991 240.69203 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+495.81723 231.87260 m
+506.29408 231.50013 515.18239 233.15528 524.09991 240.69203 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+526.80813 242.98101 m
+519.46696 240.73597 L
+521.53824 239.84702 522.83962 238.30724 523.37112 236.11663 C
+526.80813 242.98101 L
+f
+@J
+
+@rax %Note: Object
+495.79682 262.63984 523.99077 272.75641 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+523.99077 262.63984 m
+515.64501 268.98435 507.42850 272.75641 495.79682 271.73934 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+492.26428 271.43065 m
+499.55698 269.03282 L
+498.37720 270.95329 498.20145 272.96164 499.03002 275.05786 C
+492.26428 271.43065 L
+f
+@J
+
+@rax %Note: Object
+202.30639 308.22151 221.73250 326.40208 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+202.30639 308.22151 m
+206.36674 313.24309 208.30932 321.67701 221.73250 326.40208 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+200.07694 305.46397 m
+202.16183 312.85219 L
+203.09584 310.80076 204.66340 309.53310 206.86479 309.04951 C
+200.07694 305.46397 L
+f
+@J
+
+@rax %Note: Object
+202.30639 283.71713 251.65899 310.32935 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+202.30639 283.71713 m
+223.93077 288.26050 239.49468 297.87307 251.65899 310.32935 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+254.13647 312.86636 m
+247.04306 309.93109 L
+249.18973 309.24369 250.63200 307.83515 251.37014 305.70548 C
+254.13647 312.86636 L
+f
+@J
+
+@rax %Note: Object
+234.59556 337.20520 256.90932 351.69704 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+234.59556 337.20520 m
+239.96381 345.49795 246.81005 351.31776 256.90932 351.69704 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+232.66857 334.22854 m
+233.96428 341.79506 L
+235.10891 339.85332 236.80148 338.75773 239.04142 338.50857 C
+232.66857 334.22854 L
+f
+@J
+
+@rax %Note: Object
+260.05946 317.97071 282.37323 340.63058 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+260.05946 317.97071 m
+269.71455 323.29843 277.44775 330.55512 282.37323 340.63058 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+283.93058 343.81644 m
+278.11502 338.80535 L
+280.36885 338.82576 282.17991 337.94022 283.54847 336.14929 C
+283.93058 343.81644 L
+f
+@J
+
+@rax %Note: Object
+248.68148 226.69200 287.32762 239.99924 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+287.32762 239.99924 m
+279.29424 232.91178 269.32167 228.01946 248.68148 226.69200 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+289.98680 242.34520 m
+286.69635 235.40939 L
+286.11836 237.58809 284.78466 239.09981 282.69496 239.94482 C
+289.98680 242.34520 L
+f
+@J
+
+@rax %Note: Object
+202.30639 226.69200 233.44753 244.72120 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+233.44753 226.69200 m
+221.54258 228.51865 210.95915 233.97080 202.30639 244.72120 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+236.95257 226.15427 m
+229.51956 224.23550 L
+230.82151 226.07518 231.12737 228.06794 230.43685 230.21348 C
+236.95257 226.15427 L
+f
+@J
+
+@rax %Note: Object
+340.91376 259.21304 363.22753 272.12372 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+340.91376 259.21304 m
+346.87361 266.48391 354.11471 271.18290 363.22753 272.12372 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+338.66589 256.47052 m
+340.80009 263.84457 L
+341.72022 261.78690 343.27956 260.50904 345.47754 260.01043 C
+338.66589 256.47052 L
+f
+@J
+
+@rax %Note: Object
+346.74633 225.84472 403.75928 242.78428 @E
+0 J 0 j [] 0 d 0 R 0 @G
+0.00 0.00 0.00 1.00 K
+0 0.72000 0.72000 0.00000 @w
+346.74633 242.78428 m
+360.65537 232.21843 381.47924 225.84472 403.75928 228.17792 C
+S
+@j
+0.00 0.00 0.00 1.00 K
+0.00 0.00 0.00 1.00 k
+0 @g
+0 @G
+[] 0 d 0 J 0 j
+0 R 0 O
+0 1.00800 1.00800 0 @w
+407.28614 228.54699 m
+399.95348 230.81953 L
+401.16614 228.91946 401.37591 226.91452 400.58334 224.80441 C
+407.28614 228.54699 L
+f
+@J
+
+%%PageTrailer
+@rs
+@rs
+%%Trailer
+@EndSysCorelDict
+end
+%%DocumentSuppliedResources: procset wCorel6Dict
+%%EOF
diff --git a/doc/slides/slides.tex b/doc/slides/slides.tex
new file mode 100644
index 00000000..9b9f212b
--- /dev/null
+++ b/doc/slides/slides.tex
@@ -0,0 +1,190 @@
+\input epsf.tex
+
+\language=\czech
+\chyph
+
+\hsize=170mm
+\vsize=250mm
+\nopagenumbers
+
+\font\srm=csss12 scaled \magstep3
+\font\stit=csb12 scaled \magstep3
+\font\sem=csssbx12 scaled \magstep3
+\font\sit=csssi12 scaled \magstep3
+\font\stt=cstt12 scaled \magstep3
+\font\stitle=cscsc12 scaled \magstep4
+
+\baselineskip=25pt
+\lineskip=2.1pt
+\parindent=0pt
+\parskip=4pt
+\def\em#1{{\emfont #1}}
+\srm
+
+\font\rmfont=cmr10 scaled \magstep4
+\font\ttfont=cmtt10 scaled \magstep4
+\font\ifont=cmmi10 scaled \magstep4
+\font\symfont=cmsy10 scaled \magstep4
+\font\exfont=cmex10 scaled \magstep4
+\font\rmfonts=cmr7 scaled \magstep4
+\font\ifonts=cmmi7 scaled \magstep4
+\font\symfonts=cmsy7 scaled \magstep4
+\font\exfonts=cmex7 scaled \magstep4
+\textfont0=\rmfont
+\textfont1=\ifont
+\textfont2=\symfont
+\textfont3=\exfont
+\scriptfont0=\rmfonts
+\scriptfont1=\ifonts
+\scriptfont2=\symfonts
+\scriptfont3=\exfonts
+
+\newbox\birdbox
+{\epsfxsize=2em\global\setbox\birdbox=\hbox{\epsfbox{logo.eps}}}
+
+\def\slide#1{\begingroup
+\ifx:#1:\else
+\line{\vrule width 0pt height 25pt depth 4pt \stit #1\hfill\smash{\lower1ex\copy\birdbox}}
+\medskip
+\hrule height 2pt
+\bigskip
+\fi
+}
+\def\endslide{\vfill\eject\endgroup}
+
+\def\\{\hfil\break}
+\def\itemize#1{\par{\advance\leftskip by 35pt{\parskip=5pt #1}\par}}
+\def\:{\par\leavevmode\llap{$\bullet$\hskip 7pt}}
+\def\>{\par\leavevmode\llap{$\circ$\hskip 7pt}}
+
+\slide{}
+\vglue 1in
+\centerline{\epsfxsize=0.6\hsize\epsfbox{logo.eps}}
+\centerline{\vbox{\offinterlineskip\halign{#\cr
+\stitle Bird Internet Routing Daemon\cr
+\noalign{\medskip}%
+\leaders\hrule height 2pt\hfil\cr}}}
+\vskip 0.5in
+\centerline{\vbox{\sit\halign{\hfil # & # \hfil \cr
+Vedoucí: & RNDr. Libor Forst \cr
+Tým: & Ondřej Filip, Pavel Machek, Martin Mareą \cr
+Home: & http:/\kern-0.2em/bird.network.cz/ \cr
+E-mail: & bird@bird.network.cz \cr}}}
+\endslide
+
+\slide{Propojování sítí a routing}
+\medskip
+\centerline{\epsfxsize=0.9\hsize\epsfbox{obr1.eps}}
+\endslide
+
+\slide{Sítě jsou přílią velké $\Rightarrow$ Autonomní systémy}
+\medskip
+\centerline{\epsfxsize=0.9\hsize\epsfbox{obr2.eps}}
+\endslide
+
+\slide{Cíle projektu}
+\itemize{
+\:podpora vąech běľných routovacích protokolů\\a snadné přidávání nových
+\:IPv4 i IPv6
+\:výměna dat mezi různými protokoly
+\:policy routing
+\:snadná konfigurace a údrľba
+\:kvalitní dokumentace
+\:minimální závislost na pouľitém OS
+}
+\endslide
+
+\slide{Implementované protokoly}
+\itemize{
+\:RIP v2 (Routing Information Protocol)
+\itemize{
+\>interní protokol
+\>distance vector (Bellman-Ford)
+\>pomalá konvergence, omezení průměru sítě
+\>IPv4 i IPv6
+}
+\:OSPF v2 (Open Shortest Path First)
+\itemize{
+\>interní protokol
+\>link state algorithm (Dijkstra)
+\>rychlá konvergence, ale velmi sloľitý
+\>zatím pouze IPv4
+}
+\:BGP v4 (Border Gateway Protocol)
+\itemize{
+\>externí protokol (jediný dnes pouľívaný)
+\>path vector
+\>rychlá konvergence, neomezená filtrace
+\>IPv4 i IPv6
+}
+}
+\endslide
+
+\slide{Propojení protokolů}
+\medskip
+\centerline{\epsfxsize=0.9\hsize\epsfbox{obr5.eps}}
+\endslide
+
+\slide{Správa routeru}
+\itemize{
+\:konfigurační soubory a on-line rekonfigurace:
+\medskip
+{\stt\advance\leftskip by 1cm
+protocol ospf \char123 \\
+\hbox{}~~~area 0 \char123\ interface "eth*"; \char125; \\
+\hbox{}~~~export where source=RTS\char95STATIC; \\
+\hbox{}~~~import all; \\
+\char125
+\medskip
+}
+\:filtry: jednoduchý procedurální jazyk
+\:logování událostí a tracing protokolů
+\:dálkové ovládání
+\:jednoduchý client
+}
+\endslide
+
+\slide{Architektura}
+\itemize{
+\:modulární architektura se striktním rozdělením\\kompetencí:
+\itemize{
+\>jádro
+\>protokoly
+\>filtry
+\>knihovny
+}
+\:oddělení platformně závislého kódu
+\:vlastní datové typy: přesné integery, IP adresy, \dots
+\:řízení událostmi
+\:``chytré'' datové struktury
+}
+\bigskip
+Platformy:
+\itemize{
+\:Zatím pouze Linux 2.0, Linux 2.1--2.4
+\:Částečný port na FreeBSD
+}
+\endslide
+
+\slide{Testování}
+``Laboratorní'' testy:
+\itemize{
+\:testovací sí» na~MFF: 3 počítače a router Cisco 7000
+\:test zátěľe (BGP, páteřní tabulka s~$72\,000$ poloľkami)
+\:test spolupráce (Cisco, GateD, Cyclades)
+\:test portability: Linux 2.0--2.4; i386, Sparc, M680x0
+}
+\bigskip
+``Real world'' testy -- praktické pouľití:
+\itemize{
+\:nasazen ve~firmě Ipex (sí» s~cca 1000 počítači)
+\:distribuováno veřejně pod GPL:
+\itemize{
+\>236 downloadů, 2244 shlédnutí stránek (k~26. 6.)
+\>kladné ohlasy (zejména na konfiguraci)
+\>5 bug reportů, vyřeąeny
+}
+}
+\endslide
+
+\end
diff --git a/doc/slt2001/Makefile b/doc/slt2001/Makefile
new file mode 100644
index 00000000..5979e1a0
--- /dev/null
+++ b/doc/slt2001/Makefile
@@ -0,0 +1,10 @@
+all: slt.dvi
+
+slt.dvi: slt.tex
+ csplain slt.tex
+
+slt.ps: slt.dvi
+ dvips -o slt.ps -D600 -ta4 slt.dvi
+
+clean:
+ rm -f *~ *.log *.tfm *.*pk *.*gf *.ps *.dvi
diff --git a/doc/slt2001/slt.tex b/doc/slt2001/slt.tex
new file mode 100644
index 00000000..fb948586
--- /dev/null
+++ b/doc/slt2001/slt.tex
@@ -0,0 +1,275 @@
+\magnification=\magstep1
+\input epsf.tex
+\input mjmac.tex
+
+\language=\czech
+\chyph
+
+\hsize=160truemm % A4 with 25mm margins
+\vsize=247truemm
+\parindent=2em
+\nopagenumbers
+
+\def\hdr#1{\medskip\leftline{\bf #1}\smallskip}
+\def\\{\hfil\break}
+\def\BIRD{{\sc Bird}}
+
+\def\inititemize{\vskip 1pt\begingroup
+\parskip=1pt plus 0.3pt minus 0.1pt
+\advance\leftskip by 3em
+\advance\rightskip by 3em
+\parindent=0pt
+}
+
+%%% Úvod a historie projektu
+\hdr{Na počátku bylo vejce aneb Úvodem}
+
+\noindent Internet i UNIX jsou na světě jiľ pěkných pár pátků. Počítače pracující
+pod nepřeberným mnoľstvím unixovských systémů od nepaměti fungují jako
+internetové poątovní servery, name-servery a menąí routery. Skoro by se zdálo, ľe
+si tyto dva světy uľ nemají co nového říci. V~posledních letech ovąem
+výrazně vzrostl výkon běľných PC-ček a objevily se pro ně karty podporující
+nejrůznějąí sí»ové technologie, a~tak se tyto počítače staly vhodnými
+kandidáty i~pro funkci routerů. Na~mnoha místech tak starąí PC-čko
+s~volně ąiřitelným softwarem předstihlo svého starąího a draľąího
+komerčního sourozence. Ačkoliv podpora routingu, firewallingu a inteligentní
+queue management v~jádrech těchto~OS (a~zejména Linuxu) je jiľ velice
+vyspělá, jeątě nedávno byly notně zanedbávány protokoly pro dynamický
+routing, tradiční unixovskou koncepcí umístěné do~uľivatelského prostoru
+v~podobě routovacích daemonů.
+
+Tento nedostatek se pokouąela mezi jinými napravit také skupina nadąenců
+na~praľské Matematicko-fyzikální fakultě UK, která se rozhodla jako svůj
+studijní projekt vytvořit nového routovacího daemona, který by se stal
+něčím víc neľ jen důstojným konkurentem komerčních routerů -- nejen
+kopíroval uľ známá řeąení, ale také přispěl něčím novým; na~jedné straně
+být stabilním a efektivním programem pro praxi, na~straně druhé ovąem
+i~laboratoří pro snadné experimentování s~novými myąlenkami. A~tak se
+narodil projekt {\it BIRD Internet Routing Daemon} (zkráceně \BIRD\footnote{$^0$}{Projekt
+si samozřejmě vyslouľil nejrůznějąí přezdívky -- od Ptáčete aľ po~Ptákovinu.}).
+
+Původní plány byly smělé a rozhodné: Vytvořit nejlepąího routovacího
+daemona na světě, který by fungoval na~vąech platformách, vyľadoval
+minimum strojového času a paměti, podporoval vąechny routovací protokoly
+atd., zkrátka sen, jaký má být. Přeskočme nyní dva roky vývoje\footnote{$^1$}{během nichľ
+z~některých poľadavků samozřejmě seąlo -- například logem projektu
+se nakonec nestal ptáček nesoucí v~zobáčku snítku byliny řečené routa \dots}
+a podívejme se, co z~toho vzeąlo.
+
+%%% Svět routingu
+%% v~tiątěné verzi přeskočíme
+
+%%% Co BIRD dokáľe
+\hdr{Kdyľ ptáčka lapají, pěkně mu zpívají aneb Feature list}
+
+\noindent \BIRD\ dostal od svých sudiček do~vínku mnohé dary:
+
+\def\icirc{\raise0.2ex\hbox{$\circ$}} % Signs frequently used for \itemize
+
+\itemize\ibull
+\:Schopnost komunikovat protokoly IPv4 i IPv6.
+\:Podporu vąech základních routovacích protokolů:
+ \itemize\icirc
+ \:RIPv2 (Routing Information Protocol, viz RFC 1723 a 2080)\\
+ Určen pro interní routing, dnes významu spíąe historického.\\
+ Algoritmus: distance vector (Bellman-Ford).\\
+ Velmi pomalá konvergence, pouľitelý pouze pro maličké sítě.
+ \:OSPFv2 (Open Shortest Path First, viz RFC 2328)\\
+ Určen pro interní routing, v~současné době asi nejběľnějąí.\\
+ Algoritmus: link state (Dijkstra).\\
+ Rychlá konvergence, ale velice komplikovaný.\\
+ Zatím podporujeme pouze pro IPv4.
+ \:BGP4 (Border Gateway Protocol, viz RFC 1771 a 2283)\\
+ Standardní protokol pro externí routing mezi AS.\\
+ Rychlá konvergence, moľnost administrativní filtrace.\\
+ Algoritmus: path vector (upravený Bellman-Ford).
+ \endlist
+\:Propojování protokolů a výměnu dat mezi nimi.
+\:Schopnost uplatňovat routing policy -- určovat, které routovací informace
+ budou od~kterých protokolů přijímány a do~kterých protokolů vysílány.
+\:Snadnou konfiguraci a údrľbu, ale o~tom aľ později.
+\:Modulární architekturu umoľňující snadné doplňování nových protokolů,
+ filtrů i jednoduché portování na~daląí systémy. (Interface k~routovacím
+ sluľbám jádra je bohuľel i mezi jednotlivými unixovskými systémy natolik
+ různorodý, ľe dokonce i~Linux 2.0 a Linux 2.2 jsou naprogramovány jako dva
+ odliąné porty.)
+\:A v~neposlední řadě kvalitní dokumentaci jak uľivatelskou, tak
+ programátorskou (to je vítaný důsledek bytí ąkolním projektem).
+\endlist
+
+%%% A jak to vąechno propojit
+\hdr{Svět z~ptačí perspektivy aneb Jak to vąechno dát dohromady?}
+
+\noindent Hlavním problémem ovąem není ani tak vąechny tyto vymoľenosti naprogramovat
+a popropojovat, nýbrľ udělat to tak, aby z~toho nevznikl neudrľovatelný
+a neefektivní zmatek\footnote{$^2$}{Nádherným příkladem je Mendelův pes,
+jak ho kdysi nakreslil pan Kantorek.}. Z~toho se zrodil modulární pohled
+na~svět routingu a následně i celá modulární architektura programu:
+
+\bigskip
+
+\centerline{\epsfxsize=0.9\hsize\epsfbox{../slides/obr5.eps}}
+
+\medskip
+
+Základem pohledu na~Internet z~naąí \uv{ptačí perspektivy} je routovací
+tabulka. Na~ní jsou připojeny jednotlivé routovací protokoly -- jak
+protokoly reálné, tak i několik virtuálních, jako je například protokol
+Kernel zajią»ující synchronizaci tabulky s~tabulkou jádra nebo protokol
+Static generující podle své konfigurace statické směrování. Kaľdý z~protokolů
+posílá do~tabulky poloľky pro vąechny routy, které se na~základě svých informací
+o~topologii sítě dozvídá. Tabulka pro kaľdou sí» vybírá na základě preferencí
+jednotlivých protokolů a jejich metrik optimální směr a ten oznamuje
+zpět protokolům. V~cestě ovąem v~obou směrech stojí filtry, které mohou
+tok dat regulovat -- některé poloľky odmítat, jiné upravovat (například
+jim přenastavovat metriky či tagy; to se dokonce vztahuje i~na
+atributy doplňované cílovým protokolem, protoľe nejprve cílový protokol
+nastaví implicitní hodnoty svých atributů, pokud je jiľ poloľka neobsahovala,
+a teprve pak dojde k~filtrování).
+
+Routovacích tabulek můľe dokonce existovat vícero a pomocí protokolu Pipe
+si mohou přeposílat vybrané poloľky. Tím můľeme zajistit například
+routing závislý na~zdrojové adrese či vstupním interfacu: u~Linuxu 2.2
+či novějąího nakonfigurujeme jádru více routovacích tabulek a kaľdou
+z~nich připojíme na~jednu tabulku naąi.
+
+\hdr{Ptačí zpěv aneb User interface}
+%%% User interface: konfigurace, logging a filtry. Remote control.
+
+\noindent Sí» se mění a s~ní se musí měnit i konfigurace sí»ových
+komponent. Ta se pozvolna stala tradičním kamenem úrazu větąiny routerů.
+U~tohoto kamene se totiľ scházejí dva odvěcí nepřátelé:
+snaha o~snadnost a flexibilitu konfigurace a snaha o~nepřetrľitý
+provoz sítě. A~jednou sleví ten, podruhé onen -- autoři některých
+routerů vsadili na~sílu textových konfiguračních souborů za~cenu
+toho, ľe se po~kaľdé změně konfigurace musí router restartovat
+a po~nějakou dobu neroutuje, jiní zase podřídili non-stop provozu
+vąe ostatní a stvořili konfigurování nepřeberným mnoľstvím online
+příkazů, pomocí nichľ se některé věci provádějí snadno, jiné,
+na~které autoři speciální příkaz nevymysleli, uľ obtíľněji a jeątě jiné
+vyľadují do~výsledného stavu dospět postupným provedením mnoha změn,
+coľ má obvykle za~důsledek daleko deląí výpadek neľ jaký by byl vznikl
+reloadem celého routeru.
+
+\BIRD\ se snaľí dosáhnout obojího: pouľívá textové konfigurační soubory,
+uľivateli tak dává moľnost vytvářet konfiguraci víceméně libovolným
+způsobem -- a» jiľ ručním editováním, interaktivními programy či
+automatickým generováním pomocí scriptů. Po~změně konfigurace je
+ovąem schopen si novou verzi souboru přečíst, porovnat s~právě
+pouľívanou konfigurací a změnám se za běhu přízpůsobit (pokud
+jsou změny přílią velké, můľe to způsobit restart
+některého z~protokolů, ale provoz těch, kterých se změna
+netýkala, to nijak neohrozí).
+
+Konfigurace kaľdého protokolu (lépe řečeno kaľdé jeho instance --
+protokoly mohou být spuątěny několikrát na~různých rozhraních
+či nad různými tabulkami) vypadá přibliľně takto:
+
+\verbatim{ protocol bgp TestBGP { # instanci si můľeme nazvat
+ local as 65000; # náą AS
+ neighbor 195.39.3.64 as 5588; # sousední AS
+ export all; # posílat budeme vąechno
+ import filter { # na vstupu některé odmítneme
+ if !(bgp_path ~ / ? 5588 ? /) then reject;
+ if net ~ [ 10.0.0.0/8+, 192.168.0.0/16+ ] then reject;
+ preference = 101; # zbylým nastavíme preferenci
+ accept; # a přijmeme je
+ };
+ }}
+\noindent Vľdy popisuje protokol, jeho parametry, připojení k~tabulkám
+(v~naąem případě pouľíváme tabulku implicitní) a nastavení vstupních
+i~výstupních filtrů.
+
+Filtry jsou popisovány jednoduchým procedurálním programovacím jazykem,
+který má k~dispozici vąechny informace o~právě zpracovávané poloľce, můľe
+se podle nich rozhodovat a libovolně je měnit. Díky tomu je moľné jednoduąe
+zadávat i velice sloľitá pravidla, definovat si podprogramy sdílené
+filtry patřícími k~více protokolům, i~počítat metriky pro jeden protokol
+na základě metrik protokolů ostatních.
+
+Vítaným pomocníkem při odhalování problémů v~sítích je rovněľ volitelné
+logování důleľitých událostí a trasování činnosti protokolů: zde si je
+moľno pro kaľdý protokol vyľádat prakticky cokoliv počínaje základními informacemi o~běhu
+protokolu (připojování a odpojování sousedů apod.), přes výměnu poloľek
+mezi protokolem, filtry a jeho tabulkou, a konče detailním výpisem vąech
+přijatých i odeslaných paketů.
+
+Mimo to \BIRD\ disponuje \uv{dálkovým ovládáním} -- jednoduchým příkazovým
+rozhraním, přes které se mohou připojovat různí klienti a vydávat jak
+některé řídící příkazy (restarty protokolů, reload konfigurace, přepínání
+trasování, \dots), tak poľadavky na~vypisování stavu routovacích tabulek
+a protokolů. U~těchto příkazů je moľno vyuľívat plné síly filtrovacího
+jazyka, takľe chceme-li například znát vąechny routy směrované pomocí
+BGP na jednoho konkrétního souseda, stačí poloľit dotaz typu
+
+\verbatim{ bird> show route where source=RTS_BGP && gw=62.168.0.1}
+
+\noindent a dozvíme se ihned vąe, co jsme potřebovali. Ladění filtrů
+navíc usnadní i~to, ľe se můľeme zeptat na~obsah routovací tabulky
+z~pohledu některého z~běľících protokolů.
+
+%%% BIRD uvnitř
+%\hdr{Ptačí anatomie}
+%% existuje progdoc
+
+%%% Netradicni pouziti
+\hdr{Cesty taľných ptáků aneb Za hranicemi vąedních dnů}
+
+\noindent Hotová modulární implementace routovacího daemona samozřejmě
+svádí i k~méně tradičnímu vyuľití. Zde se fantazii meze nekladou, autory
+samé během vývoje napadly například tyto triky:
+
+\itemize\ibull
+\:{\I multirouter} -- \uv{schizofrenní} zařízení pracující na různých
+ skupinách interfaců jako různé routery řídící se různými pravidly,
+ leľící třeba i v~různých autonomních systémech. To je moľno zařídit
+ patřičným nastavením jádra a buďto více běľícími \BIRD{}y nebo dokonce
+ jedním pracujícím s~několika různými routovacími tabulkami. Tak by
+ mohl například celý praľský NIX běľet na jediném routeru (pravda,
+ běľné PC by na to nestačílo), a přesto by si kaľdý provider mohl sám
+ určovat a konfigurovat svou vlastní routovací politiku.
+\:{\I ąedá eminence} -- \BIRD\ by ani nemusel běľet přímo na~stroji, který
+ pakety routuje, mohl by také hotové routovací tabulky diktovat
+ nějakému dedikovanému routeru disponujícím výkonnějąím hardwarem,
+ a tak skloubit ąpičkovou propustnost \uv{velkého ľeleza}
+ s~flexibilitou routeru beľícího pod unixovským systémem.
+\:{\I inteligentní mirror} -- aplikace se nemusí zastavovat u~routingu
+ jako takového, mnohdy je moľno informace získané z~provozu routeru
+ vyuľívat k~daląím účelům, například k~inteligentnímu přesměrovávání
+ klientů na~nejbliľąí mirror vaąeho archivu.
+\endlist
+
+%%% A co dal?
+\hdr{Čas ptáčat aneb Co dál?}
+
+Přestoľe po~úspěąném obhájení projektu a prvních několika desítkách
+spokojených uľivatelů (a samozřejmě i~pár opravených chybách) nyní vývoj
+spíąe stagnuje, autoři jiľ spřádají plány do~budoucnosti, které
+by měly \BIRD{}ovi přinést mimo jiné také routování multicastů, agregaci
+sí»ových prefixů, OSPFv3 pro IPv6, on-demand linky a porty na~daląí systémy.
+
+%%% Reference na nás a ostatní routery
+\hdr{Snůąka odkazů na závěr}
+
+\noindent {\sc Bird Team} pod vedením RNDr. Libora Forsta ({\I forst@cuni.cz}) tvořili:
+$$\vbox{\halign{#\hfil & \quad \it # \hfil & \quad \it # \hfil\cr
+Ondřej Filip&feela@ipex.cz&http:/$\!$/feela.ipex.cz/\cr
+Martin Mareą&mj@ucw.cz&http:/$\!$/atrey.karlin.mff.cuni.cz/\char126mj/\cr
+Pavel Machek&pavel@ucw.cz&http:/$\!$/atrey.karlin.mff.cuni.cz/\char126pavel/\cr}}$$
+Domácí stránku projektu najdete na {\it http:/$\!$/bird.network.cz/,} odtamtud jiľ
+vedou odkazy na~aktuální verzi, online dokumentaci i mailing list
+uľivatelů.
+Vąechna zmiňovaná RFC i mnoho daląích naleznete na {\it http:/$\!$/www.rfc-editor.org/},
+první myąlenky o~vyuľívání ptactva v~Internetu sahají aľ k~RFC~1149.
+\BIRD\ není na~světě sám, má i~příbuzné; mezi nimi za zmínku stojí
+daemoni {\sc GateD} ({\I http:/$\!$/www.gated.org/}), \hbox{\sc Zebra} ({\I http:/$\!$/www.zebra.org/})
+a {\sc Mrtd} ({\I http:/$\!$/www.mrtd.net/}).
+O~IPv6 se bohuľel zatím jen píąe, na~jeho celointernetové nasazení se stále
+čeká a mezitím přibývá address-translatorů a daląích zvěrstev. Snad jediná
+větąí sí» pouľívající tento protokol je experimentální virtuální sí» 6-bone
+(viz {\it http:/$\!$/www.6bone.net/} a odkazy odtamtud).
+
+Dotazy a připomínky posílejte buďto autorovi nebo celému {\sc Bird Team}u na~adresu
+{\I bird@bird.network.cz}.
+
+\bye
diff --git a/filter/config.Y b/filter/config.Y
index f3ed2dc5..655f20c2 100644
--- a/filter/config.Y
+++ b/filter/config.Y
@@ -371,6 +371,8 @@ CF_KEYWORDS(FUNCTION, PRINT, PRINTN, UNSET, RETURN,
EMPTY,
FILTER, WHERE, EVAL, ATTRIBUTE,
FROM_HEX,
+ ATTACH_MLS,
+ ATTACH_BGP_AGGREGATOR,
BT_ASSERT, BT_TEST_SUITE, BT_CHECK_ASSIGN, BT_TEST_SAME, FORMAT)
%nonassoc THEN
@@ -722,6 +724,10 @@ ec_items:
| ec_items ',' ec_item { $$ = f_merge_items($1, $3); }
;
+comma_opt:
+ | ','
+ ;
+
set_items:
set_item
| set_items ',' set_item { $$ = f_merge_items($1, $3); }
@@ -778,9 +784,9 @@ bgp_path_tail:
NUM bgp_path_tail { $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_PATH_MASK_ITEM, .val.pmi = { .asn = $1, .kind = PM_ASN, }, }); $$->next = $2; }
| NUM DDOT NUM bgp_path_tail { $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_PATH_MASK_ITEM, .val.pmi = { .from = $1, .to = $3, .kind = PM_ASN_RANGE }, }); $$->next = $4; }
| '[' ']' bgp_path_tail { $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_PATH_MASK_ITEM, .val.pmi = { .set = NULL, .kind = PM_ASN_SET }, }); $$->next = $3; }
- | '[' set_items ']' bgp_path_tail {
+ | '[' set_items comma_opt ']' bgp_path_tail {
if ($2->from.type != T_INT) cf_error("Only integer sets allowed in path mask");
- $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_PATH_MASK_ITEM, .val.pmi = { .set = build_tree($2), .kind = PM_ASN_SET }, }); $$->next = $4;
+ $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_PATH_MASK_ITEM, .val.pmi = { .set = build_tree($2), .kind = PM_ASN_SET }, }); $$->next = $5;
}
| '*' bgp_path_tail { $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_PATH_MASK_ITEM, .val.pmi = { .kind = PM_ASTERISK }, }); $$->next = $2; }
| '?' bgp_path_tail { $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_PATH_MASK_ITEM, .val.pmi = { .kind = PM_QUESTION }, }); $$->next = $2; }
@@ -799,12 +805,12 @@ constant:
| VPN_RD { $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_RD, .val.ec = $1, }); }
| net_ { $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_NET, .val.net = $1, }); }
| '[' ']' { $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_SET, .val.t = NULL, }); }
- | '[' set_items ']' {
+ | '[' set_items comma_opt ']' {
DBG( "We've got a set here..." );
$$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_SET, .val.t = build_tree($2), });
DBG( "ook\n" );
}
- | '[' fprefix_set ']' { $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_PREFIX_SET, .val.ti = $2, }); }
+ | '[' fprefix_set comma_opt ']' { $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_PREFIX_SET, .val.ti = $2, }); }
| ENUM { $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = $1 >> 16, .val.i = $1 & 0xffff, }); }
;
@@ -1070,6 +1076,11 @@ cmd:
}
| BT_ASSERT '(' get_cf_position term get_cf_position ')' ';' { $$ = assert_done($4, $3 + 1, $5 - 1); }
| BT_CHECK_ASSIGN '(' get_cf_position lvalue get_cf_position ',' term ')' ';' { $$ = assert_assign(&$4, $7, $3 + 1, $5 - 1); }
+ | ATTACH_MLS '(' label_stack ')' ';' { $$ = f_new_inst(FI_ATTACH_MLS,
+ f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_MLS, .val.mls = $3, })); }
+ | ATTACH_MLS '(' ')' ';' { $$ = f_new_inst(FI_ATTACH_MLS,
+ f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_MLS, .val.mls = cfg_allocz(sizeof(mpls_label_stack)), })); }
+ | ATTACH_BGP_AGGREGATOR '(' term ',' term ')' ';' { $$ = f_new_inst(FI_ATTACH_BGP_AGGREGATOR, $3, $5); }
;
get_cf_position:
diff --git a/filter/data.c b/filter/data.c
index e268a8ec..1be06618 100644
--- a/filter/data.c
+++ b/filter/data.c
@@ -269,6 +269,14 @@ pm_same(const struct f_path_mask *m1, const struct f_path_mask *m2)
return 1;
}
+static int
+mpls_same(const mpls_label_stack *m1, const mpls_label_stack *m2)
+{
+ if (m1->len != m2->len)
+ return 0;
+ return !memcmp(m1->stack, m2->stack, m1->len * sizeof(u32));
+}
+
/**
* val_same - compare two values
* @v1: first value
@@ -296,6 +304,8 @@ val_same(const struct f_val *v1, const struct f_val *v2)
return pm_same(v1->val.path_mask, v2->val.path_mask);
case T_PATH_MASK_ITEM:
return pmi_same(&(v1->val.pmi), &(v2->val.pmi));
+ case T_MLS:
+ return mpls_same(v1->val.mls, v2->val.mls);
case T_PATH:
case T_CLIST:
case T_ECLIST:
diff --git a/filter/data.h b/filter/data.h
index 21a78bf6..95379d5b 100644
--- a/filter/data.h
+++ b/filter/data.h
@@ -63,6 +63,7 @@ enum f_type {
T_RD = 0x2a, /* Route distinguisher for VPN addresses */
T_PATH_MASK_ITEM = 0x2b, /* Path mask item for path mask constructors */
T_BYTESTRING = 0x2c,
+ T_MLS = 0x2d,
T_ROUTE = 0x78,
T_ROUTES_BLOCK = 0x79,
@@ -95,6 +96,7 @@ struct f_val {
const struct f_path_mask *path_mask;
struct f_path_mask_item pmi;
struct rte *rte;
+ mpls_label_stack *mls;
} val;
};
diff --git a/filter/f-inst.c b/filter/f-inst.c
index 9cc46aa0..94c9c744 100644
--- a/filter/f-inst.c
+++ b/filter/f-inst.c
@@ -1556,6 +1556,53 @@
RESULT(T_BYTESTRING, bs, bs);
}
+ INST(FI_ATTACH_MLS, 1, 0) { /* attach_mls([stack]) */
+ NEVER_CONSTANT;
+ ARG(1, T_MLS);
+ ACCESS_EATTRS;
+ ACCESS_RTE;
+
+ f_rta_cow(fs);
+ {
+ struct rta *rta = (*fs->rte)->attrs;
+ const mpls_label_stack *mls = v1.val.mls;
+ for (struct nexthop *nh = &rta->nh; nh; nh = nh->next) {
+ nh->labels = mls ? mls->len : 0;
+ if (mls)
+ memcpy(&nh->label, mls->stack, mls->len * sizeof(u32));
+ }
+ }
+ }
+
+ INST(FI_ATTACH_BGP_AGGREGATOR, 2, 0) { /* attach_bgp_aggregator(as, ip) */
+ ACCESS_RTE;
+ ACCESS_EATTRS;
+ ARG(1, T_INT);
+ ARG(2, T_IP);
+
+ uint u1 = v1.val.i;
+ ip_addr u2 = v2.val.ip;
+ if (!ipa_is_ip4(u2))
+ runtime("IPv4 address required for AGGREGATOR");
+
+ struct adata *ad = lp_alloc_adata(fs->pool, 8);
+ put_u32(ad->data + 0, u1);
+ put_u32(ad->data + 4, ipa_to_u32(u2));
+
+ f_rta_cow(fs);
+ eattr *eattr = ea_set_attr(
+ fs->eattrs,
+ fs->pool,
+#define BA_AGGREGATOR 0x07 /* proto/bgp/bgp.h */
+ EA_CODE(PROTOCOL_BGP, BA_AGGREGATOR),
+ 0,
+ EAF_TYPE_OPAQUE,
+ (uintptr_t)ad
+ );
+ eattr->originated = 1;
+ eattr->fresh = 1;
+ }
+
INST(FI_FORMAT, 1, 1) { /* Format */
ARG_ANY(1);
RESULT(T_STRING, s, val_format_str(fpool, &v1));
diff --git a/misc/Makefile b/misc/Makefile
new file mode 100644
index 00000000..fe0307d5
--- /dev/null
+++ b/misc/Makefile
@@ -0,0 +1,7 @@
+all: ips
+
+ips: ips.c
+ gcc ips.c -o ips -lm -O2 -Wall
+
+clean:
+ rm -f ips
diff --git a/misc/bird.init b/misc/bird.init
new file mode 100755
index 00000000..93aa83d6
--- /dev/null
+++ b/misc/bird.init
@@ -0,0 +1,97 @@
+#! /bin/sh
+#
+# bird Starts the Internet Routing Daemon.
+#
+# Author: Ondrej Feela Filip, <feela@network.cz>
+#
+# chkconfig: - 32 75
+# description: Internet routing daemon supporting IPv4 routing protocols:
+# BGP4, RIPv2 and OSPFv2.
+#
+# processname: bird
+# config: /etc/bird.conf
+
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+[ -f /etc/sysconfig/network ] || exit 0
+
+. /etc/sysconfig/network
+
+BIRD4="yes"
+BIRD6="yes"
+
+BIRD4ARGS=
+BIRD6ARGS=
+
+[ -f /etc/bird.conf ] || BIRD4="no"
+[ -f /usr/sbin/bird ] || BIRD4="no"
+[ "${NETWORKING}" = "yes" ] || BIRD4="no"
+
+[ -f /etc/bird6.conf ] || BIRD6="no"
+[ -f /usr/sbin/bird6 ] || BIRD6="no"
+[ "${NETWORKING_IPV6}" = "yes" ] || BIRD6="no"
+
+[ -e /etc/sysconfig/bird ] && . /etc/sysconfig/bird
+
+RETVAL=0
+
+# See how we were called.
+case "$1" in
+ start)
+ if [ "$BIRD4" = "yes" ]
+ then
+ echo -n "Starting BIRD for IPv4: "
+ daemon bird ${BIRD4ARGS}
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/bird
+ fi
+ if [ "$BIRD6" = "yes" ]
+ then
+ echo -n "Starting BIRD for IPv6: "
+ daemon bird6 ${BIRD6ARGS}
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/bird6
+ fi
+ ;;
+ stop)
+ echo -n "Stopping BIRD for IPv4: "
+ killproc bird
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/bird
+
+ echo -n "Stopping BIRD for IPv6: "
+ killproc bird6
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/bird6
+ ;;
+ status)
+ status bird
+ status bird6
+ RETVAL=$?
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ RETVAL=$?
+ ;;
+ reload)
+ killproc bird -HUP
+ RETVAL=$?
+ echo
+ echo -n "Reloading BIRD for IPv6: "
+ killproc bird6 -HUP
+ RETVAL=$?
+ echo
+ ;;
+ *)
+ echo "Usage: bird.init {start|stop|status|restart|reload}"
+ exit 1
+esac
+
+exit $RETVAL
diff --git a/misc/bird.spec b/misc/bird.spec
new file mode 100644
index 00000000..93c80193
--- /dev/null
+++ b/misc/bird.spec
@@ -0,0 +1,55 @@
+Summary: BIRD Internet Routing Daemon
+Name: bird
+Version: 2.14
+Release: 1
+Copyright: GPL
+Group: Networking/Daemons
+Source: ftp://bird.network.cz/pub/bird/bird-%{version}.tar.gz
+Source1: bird.init
+Source2: birdc6
+Buildroot: /var/tmp/bird-root
+Url: http://bird.network.cz
+Prereq: /sbin/chkconfig
+BuildRequires: flex bison readline-devel ncurses-devel
+
+%description
+BIRD is dynamic routing daemon supporting IPv4 and IPv6 versions of routing
+protocols BGP, RIP and OSPF.
+
+%prep
+%setup -n bird-%{version}
+
+%build
+./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-ipv6
+make
+mv bird bird6
+make clean
+./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+make
+
+
+%install
+rm -rf $RPM_BUILD_ROOT/*
+make install prefix=$RPM_BUILD_ROOT/usr sysconfdir=$RPM_BUILD_ROOT/etc localstatedir=$RPM_BUILD_ROOT/var
+install bird6 $RPM_BUILD_ROOT/usr/sbin
+
+cd $RPM_BUILD_ROOT
+install -d etc/rc.d/init.d
+install $RPM_SOURCE_DIR/bird.init etc/rc.d/init.d/bird
+install $RPM_SOURCE_DIR/birdc6 usr/sbin/birdc6
+
+%post
+/sbin/ldconfig
+/sbin/chkconfig --add bird
+
+%preun
+if [ $1 = 0 ] ; then
+ /sbin/chkconfig --del bird
+fi
+
+%files
+%attr(755,root,root) /usr/sbin/bird
+%attr(755,root,root) /usr/sbin/bird6
+%attr(755,root,root) /usr/sbin/birdc
+%attr(755,root,root) /usr/sbin/birdc6
+%attr(755,root,root) /etc/rc.d/init.d/bird
diff --git a/misc/cisco2list b/misc/cisco2list
new file mode 100755
index 00000000..6f5466fe
--- /dev/null
+++ b/misc/cisco2list
@@ -0,0 +1,20 @@
+#!/usr/bin/perl
+#
+# Convert Cisco routing table listing to list of prefixes
+#
+
+$loc = ($ARGV[0] eq "-l"); # Print only local prefixes
+
+while (<STDIN>) {
+ ($loc ? /^[OR]\s/ : /^B\s/) || next;
+ /^[ORB]( E[12])?\s+(\d+\.\d+\.\d+\.\d+)(\s|\/\d+\s)/ || die "Cannot parse $_";
+ $net = $2;
+ $len = $3;
+ if ($len =~ /^\s*$/) {
+ # Magic rule :)
+ $len = ($net =~ /\.0$/) ? 24 : 32;
+ }
+ $len =~ s/^\///;
+ $net =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/;
+ printf "%02x%02x%02x%02x/%d\n", $1, $2, $3, $4, $len;
+}
diff --git a/misc/docker/centos-6-amd64/Dockerfile b/misc/docker/centos-6-amd64/Dockerfile
new file mode 100644
index 00000000..d92f64f9
--- /dev/null
+++ b/misc/docker/centos-6-amd64/Dockerfile
@@ -0,0 +1,11 @@
+FROM centos:6
+RUN yum -y upgrade
+RUN yum -y install \
+ autoconf \
+ flex \
+ bison \
+ pkgconfig \
+ 'readline-devel' \
+ 'pkgconfig(ncurses)' \
+ gcc \
+ make
diff --git a/misc/docker/centos-7-amd64/Dockerfile b/misc/docker/centos-7-amd64/Dockerfile
new file mode 100644
index 00000000..bef04b00
--- /dev/null
+++ b/misc/docker/centos-7-amd64/Dockerfile
@@ -0,0 +1,18 @@
+FROM centos:7
+RUN yum -y upgrade
+RUN yum -y install \
+ gcc \
+ make \
+ flex \
+ bison \
+ autoconf \
+ libssh-devel \
+ ncurses-devel \
+ readline-devel
+RUN yum -y install \
+ git \
+ rpm-build \
+ systemd \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/centos-8-amd64/Dockerfile b/misc/docker/centos-8-amd64/Dockerfile
new file mode 100644
index 00000000..3bc5acc3
--- /dev/null
+++ b/misc/docker/centos-8-amd64/Dockerfile
@@ -0,0 +1,18 @@
+FROM centos:8
+RUN yum -y upgrade
+RUN yum -y install \
+ gcc \
+ make \
+ flex \
+ bison \
+ autoconf \
+ libssh-devel \
+ ncurses-devel \
+ readline-devel
+RUN yum -y install \
+ git \
+ rpm-build \
+ systemd-rpm-macros \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/debian-10-amd64/Dockerfile b/misc/docker/debian-10-amd64/Dockerfile
new file mode 100644
index 00000000..a241bb23
--- /dev/null
+++ b/misc/docker/debian-10-amd64/Dockerfile
@@ -0,0 +1,26 @@
+FROM debian:buster-slim
+ENV DEBIAN_FRONTEND noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update
+RUN apt-get -y upgrade
+RUN apt-get -y --no-install-recommends install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev \
+ libssh-gcrypt-dev \
+ linuxdoc-tools-latex \
+ texlive-latex-extra \
+ opensp \
+ docbook-xsl \
+ xsltproc
+RUN apt-get -y --no-install-recommends install \
+ git \
+ dpkg-dev \
+ debhelper \
+ quilt \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/debian-10-i386/Dockerfile b/misc/docker/debian-10-i386/Dockerfile
new file mode 100644
index 00000000..6b28a20a
--- /dev/null
+++ b/misc/docker/debian-10-i386/Dockerfile
@@ -0,0 +1,26 @@
+FROM i386/debian:buster-slim
+ENV DEBIAN_FRONTEND noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update
+RUN apt-get -y upgrade
+RUN apt-get -y --no-install-recommends install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev \
+ libssh-gcrypt-dev \
+ linuxdoc-tools-latex \
+ texlive-latex-extra \
+ opensp \
+ docbook-xsl \
+ xsltproc
+RUN apt-get -y --no-install-recommends install \
+ git \
+ dpkg-dev \
+ debhelper \
+ quilt \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/debian-11-amd64/Dockerfile b/misc/docker/debian-11-amd64/Dockerfile
new file mode 100644
index 00000000..a9aee7e9
--- /dev/null
+++ b/misc/docker/debian-11-amd64/Dockerfile
@@ -0,0 +1,26 @@
+FROM amd64/debian:bullseye-slim
+ENV DEBIAN_FRONTEND=noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update
+RUN apt-get -y upgrade
+RUN apt-get -y --no-install-recommends install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev \
+ libssh-gcrypt-dev \
+ linuxdoc-tools-latex \
+ texlive-latex-extra \
+ opensp \
+ docbook-xsl \
+ xsltproc
+RUN apt-get -y --no-install-recommends install \
+ git \
+ dpkg-dev \
+ debhelper \
+ quilt \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/debian-11-i386/Dockerfile b/misc/docker/debian-11-i386/Dockerfile
new file mode 100644
index 00000000..5b5ad5a3
--- /dev/null
+++ b/misc/docker/debian-11-i386/Dockerfile
@@ -0,0 +1,25 @@
+FROM i386/debian:bullseye-slim
+ENV DEBIAN_FRONTEND=noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update && apt-get -y upgrade
+RUN apt-get -y --no-install-recommends install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev \
+ libssh-gcrypt-dev \
+ linuxdoc-tools-latex \
+ texlive-latex-extra \
+ opensp \
+ docbook-xsl \
+ xsltproc
+RUN apt-get -y --no-install-recommends install \
+ git \
+ dpkg-dev \
+ debhelper \
+ quilt \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/debian-7-amd64/Dockerfile b/misc/docker/debian-7-amd64/Dockerfile
new file mode 100644
index 00000000..9510e9cf
--- /dev/null
+++ b/misc/docker/debian-7-amd64/Dockerfile
@@ -0,0 +1,13 @@
+FROM debian:wheezy-slim
+ENV DEBIAN_FRONTEND noninteractive
+RUN echo 'deb http://archive.debian.org/debian/ wheezy main' > /etc/apt/sources.list
+RUN echo 'deb http://archive.debian.org/debian-security/ wheezy/updates main' >> /etc/apt/sources.list
+RUN apt-get -y update -o Acquire::Check-Valid-Until=false
+RUN apt-get -y upgrade
+RUN apt-get -y install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev
diff --git a/misc/docker/debian-7-i386/Dockerfile b/misc/docker/debian-7-i386/Dockerfile
new file mode 100644
index 00000000..d47d8e08
--- /dev/null
+++ b/misc/docker/debian-7-i386/Dockerfile
@@ -0,0 +1,13 @@
+FROM i386/debian:wheezy-slim
+ENV DEBIAN_FRONTEND noninteractive
+RUN echo 'deb http://archive.debian.org/debian/ wheezy main' > /etc/apt/sources.list
+RUN echo 'deb http://archive.debian.org/debian-security/ wheezy/updates main' >> /etc/apt/sources.list
+RUN apt-get -y update -o Acquire::Check-Valid-Until=false
+RUN apt-get -y upgrade
+RUN apt-get -y install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev
diff --git a/misc/docker/debian-8-amd64/Dockerfile b/misc/docker/debian-8-amd64/Dockerfile
new file mode 100644
index 00000000..d9520132
--- /dev/null
+++ b/misc/docker/debian-8-amd64/Dockerfile
@@ -0,0 +1,12 @@
+FROM debian:jessie-slim
+ENV DEBIAN_FRONTEND noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update
+RUN apt-get -y upgrade
+RUN apt-get -y install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev
diff --git a/misc/docker/debian-8-i386/Dockerfile b/misc/docker/debian-8-i386/Dockerfile
new file mode 100644
index 00000000..349fcee9
--- /dev/null
+++ b/misc/docker/debian-8-i386/Dockerfile
@@ -0,0 +1,12 @@
+FROM i386/debian:jessie-slim
+ENV DEBIAN_FRONTEND noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update
+RUN apt-get -y upgrade
+RUN apt-get -y install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev
diff --git a/misc/docker/debian-9-amd64/Dockerfile b/misc/docker/debian-9-amd64/Dockerfile
new file mode 100644
index 00000000..4e8603f0
--- /dev/null
+++ b/misc/docker/debian-9-amd64/Dockerfile
@@ -0,0 +1,26 @@
+FROM debian:stretch-slim
+ENV DEBIAN_FRONTEND noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update
+RUN apt-get -y upgrade
+RUN apt-get -y --no-install-recommends install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev \
+ libssh-gcrypt-dev \
+ linuxdoc-tools-latex \
+ texlive-latex-extra \
+ opensp \
+ docbook-xsl \
+ xsltproc
+RUN apt-get -y --no-install-recommends install \
+ git \
+ dpkg-dev \
+ debhelper \
+ quilt \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/debian-9-i386/Dockerfile b/misc/docker/debian-9-i386/Dockerfile
new file mode 100644
index 00000000..d37a742d
--- /dev/null
+++ b/misc/docker/debian-9-i386/Dockerfile
@@ -0,0 +1,26 @@
+FROM i386/debian:stretch-slim
+ENV DEBIAN_FRONTEND noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update
+RUN apt-get -y upgrade
+RUN apt-get -y --no-install-recommends install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev \
+ libssh-gcrypt-dev \
+ linuxdoc-tools-latex \
+ texlive-latex-extra \
+ opensp \
+ docbook-xsl \
+ xsltproc
+RUN apt-get -y --no-install-recommends install \
+ git \
+ dpkg-dev \
+ debhelper \
+ quilt \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/debian-testing-amd64/Dockerfile b/misc/docker/debian-testing-amd64/Dockerfile
new file mode 100644
index 00000000..6d7bbbeb
--- /dev/null
+++ b/misc/docker/debian-testing-amd64/Dockerfile
@@ -0,0 +1,12 @@
+FROM debian:testing-slim
+ENV DEBIAN_FRONTEND noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update
+RUN apt-get -y upgrade
+RUN apt-get -y install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev
diff --git a/misc/docker/debian-testing-i386/Dockerfile b/misc/docker/debian-testing-i386/Dockerfile
new file mode 100644
index 00000000..3d6a969c
--- /dev/null
+++ b/misc/docker/debian-testing-i386/Dockerfile
@@ -0,0 +1,12 @@
+FROM i386/debian:testing-slim
+ENV DEBIAN_FRONTEND noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update
+RUN apt-get -y upgrade
+RUN apt-get -y install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev
diff --git a/misc/docker/fedora-25-amd64/Dockerfile b/misc/docker/fedora-25-amd64/Dockerfile
new file mode 100644
index 00000000..d0dd8f6f
--- /dev/null
+++ b/misc/docker/fedora-25-amd64/Dockerfile
@@ -0,0 +1,11 @@
+FROM fedora:25
+RUN dnf -y upgrade
+RUN dnf -y install \
+ make \
+ autoconf \
+ flex \
+ bison \
+ pkgconfig \
+ 'readline-devel' \
+ 'pkgconfig(ncurses)' \
+ gcc
diff --git a/misc/docker/fedora-26-amd64/Dockerfile b/misc/docker/fedora-26-amd64/Dockerfile
new file mode 100644
index 00000000..f15ba40c
--- /dev/null
+++ b/misc/docker/fedora-26-amd64/Dockerfile
@@ -0,0 +1,11 @@
+FROM fedora:26
+RUN dnf -y upgrade
+RUN dnf -y install \
+ make \
+ autoconf \
+ flex \
+ bison \
+ pkgconfig \
+ 'readline-devel' \
+ 'pkgconfig(ncurses)' \
+ gcc
diff --git a/misc/docker/fedora-27-amd64/Dockerfile b/misc/docker/fedora-27-amd64/Dockerfile
new file mode 100644
index 00000000..e3174591
--- /dev/null
+++ b/misc/docker/fedora-27-amd64/Dockerfile
@@ -0,0 +1,11 @@
+FROM fedora:27
+RUN dnf -y upgrade
+RUN dnf -y install \
+ make \
+ autoconf \
+ flex \
+ bison \
+ pkgconfig \
+ 'readline-devel' \
+ 'pkgconfig(ncurses)' \
+ gcc
diff --git a/misc/docker/fedora-28-amd64/Dockerfile b/misc/docker/fedora-28-amd64/Dockerfile
new file mode 100644
index 00000000..0aa2f74a
--- /dev/null
+++ b/misc/docker/fedora-28-amd64/Dockerfile
@@ -0,0 +1,11 @@
+FROM fedora:28
+RUN dnf -y upgrade
+RUN dnf -y install \
+ make \
+ autoconf \
+ flex \
+ bison \
+ pkgconfig \
+ 'readline-devel' \
+ 'pkgconfig(ncurses)' \
+ gcc
diff --git a/misc/docker/fedora-29-amd64/Dockerfile b/misc/docker/fedora-29-amd64/Dockerfile
new file mode 100644
index 00000000..afc1f0c0
--- /dev/null
+++ b/misc/docker/fedora-29-amd64/Dockerfile
@@ -0,0 +1,11 @@
+FROM fedora:29
+RUN dnf -y upgrade
+RUN dnf -y install \
+ make \
+ autoconf \
+ flex \
+ bison \
+ pkgconfig \
+ 'readline-devel' \
+ 'pkgconfig(ncurses)' \
+ gcc
diff --git a/misc/docker/fedora-30-amd64/Dockerfile b/misc/docker/fedora-30-amd64/Dockerfile
new file mode 100644
index 00000000..d9aaa62a
--- /dev/null
+++ b/misc/docker/fedora-30-amd64/Dockerfile
@@ -0,0 +1,18 @@
+FROM fedora:30
+RUN dnf -y update
+RUN dnf -y install \
+ gcc \
+ make \
+ flex \
+ bison \
+ autoconf \
+ libssh-devel \
+ ncurses-devel \
+ readline-devel
+RUN dnf -y install \
+ git \
+ rpm-build \
+ systemd-rpm-macros \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/fedora-31-amd64/Dockerfile b/misc/docker/fedora-31-amd64/Dockerfile
new file mode 100644
index 00000000..9f7ad0cd
--- /dev/null
+++ b/misc/docker/fedora-31-amd64/Dockerfile
@@ -0,0 +1,18 @@
+FROM fedora:31
+RUN dnf -y update
+RUN dnf -y install \
+ gcc \
+ make \
+ flex \
+ bison \
+ autoconf \
+ libssh-devel \
+ ncurses-devel \
+ readline-devel
+RUN dnf -y install \
+ git \
+ rpm-build \
+ systemd-rpm-macros \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/fedora-32-amd64/Dockerfile b/misc/docker/fedora-32-amd64/Dockerfile
new file mode 100644
index 00000000..609dbf33
--- /dev/null
+++ b/misc/docker/fedora-32-amd64/Dockerfile
@@ -0,0 +1,18 @@
+FROM fedora:32
+RUN dnf -y update
+RUN dnf -y install \
+ gcc \
+ make \
+ flex \
+ bison \
+ autoconf \
+ libssh-devel \
+ ncurses-devel \
+ readline-devel
+RUN dnf -y install \
+ git \
+ rpm-build \
+ systemd-rpm-macros \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/fedora-33-amd64/Dockerfile b/misc/docker/fedora-33-amd64/Dockerfile
new file mode 100644
index 00000000..7e707068
--- /dev/null
+++ b/misc/docker/fedora-33-amd64/Dockerfile
@@ -0,0 +1,18 @@
+FROM fedora:33
+RUN dnf -y upgrade
+RUN dnf -y install \
+ gcc \
+ make \
+ flex \
+ bison \
+ autoconf \
+ libssh-devel \
+ ncurses-devel \
+ readline-devel
+RUN dnf -y install \
+ git \
+ rpm-build \
+ systemd-rpm-macros \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/fedora-34-amd64/Dockerfile b/misc/docker/fedora-34-amd64/Dockerfile
new file mode 100644
index 00000000..6bd77529
--- /dev/null
+++ b/misc/docker/fedora-34-amd64/Dockerfile
@@ -0,0 +1,18 @@
+FROM fedora:34
+RUN dnf -y upgrade
+RUN dnf -y install \
+ gcc \
+ make \
+ flex \
+ bison \
+ autoconf \
+ libssh-devel \
+ ncurses-devel \
+ readline-devel
+RUN dnf -y install \
+ git \
+ rpm-build \
+ systemd-rpm-macros \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/opensuse-15.0-amd64/Dockerfile b/misc/docker/opensuse-15.0-amd64/Dockerfile
new file mode 100644
index 00000000..b1faff40
--- /dev/null
+++ b/misc/docker/opensuse-15.0-amd64/Dockerfile
@@ -0,0 +1,11 @@
+FROM opensuse/leap:15.0
+RUN zypper -n up
+RUN zypper -n install \
+ autoconf \
+ flex \
+ bison \
+ pkgconfig \
+ readline-devel \
+ ncurses-devel \
+ gcc \
+ gmake
diff --git a/misc/docker/opensuse-15.1-amd64/Dockerfile b/misc/docker/opensuse-15.1-amd64/Dockerfile
new file mode 100644
index 00000000..77a0455d
--- /dev/null
+++ b/misc/docker/opensuse-15.1-amd64/Dockerfile
@@ -0,0 +1,19 @@
+FROM opensuse/leap:15.1
+RUN zypper -n up
+RUN zypper -n install \
+ gcc \
+ make \
+ flex \
+ bison \
+ autoconf \
+ libssh-devel \
+ ncurses-devel \
+ readline-devel
+RUN zypper -n install \
+ git \
+ rpm-build \
+ systemd \
+ systemd-rpm-macros \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/opensuse-15.2-amd64/Dockerfile b/misc/docker/opensuse-15.2-amd64/Dockerfile
new file mode 100644
index 00000000..44a146db
--- /dev/null
+++ b/misc/docker/opensuse-15.2-amd64/Dockerfile
@@ -0,0 +1,19 @@
+FROM opensuse/leap:15.2
+RUN zypper -n up
+RUN zypper -n install \
+ gcc \
+ make \
+ flex \
+ bison \
+ autoconf \
+ libssh-devel \
+ ncurses-devel \
+ readline-devel
+RUN zypper -n install \
+ git \
+ rpm-build \
+ systemd \
+ systemd-rpm-macros \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/opensuse-15.3-amd64/Dockerfile b/misc/docker/opensuse-15.3-amd64/Dockerfile
new file mode 100644
index 00000000..9fe8f4c2
--- /dev/null
+++ b/misc/docker/opensuse-15.3-amd64/Dockerfile
@@ -0,0 +1,19 @@
+FROM opensuse/leap:15.3
+RUN zypper -n up
+RUN zypper -n install \
+ gcc \
+ make \
+ flex \
+ bison \
+ autoconf \
+ libssh-devel \
+ ncurses-devel \
+ readline-devel
+RUN zypper -n install \
+ git \
+ rpm-build \
+ systemd \
+ systemd-rpm-macros \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/ubuntu-14.04-amd64/Dockerfile b/misc/docker/ubuntu-14.04-amd64/Dockerfile
new file mode 100644
index 00000000..35325073
--- /dev/null
+++ b/misc/docker/ubuntu-14.04-amd64/Dockerfile
@@ -0,0 +1,12 @@
+FROM ubuntu:14.04
+ENV DEBIAN_FRONTEND noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update
+RUN apt-get -y upgrade
+RUN apt-get -y install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev
diff --git a/misc/docker/ubuntu-16.04-amd64/Dockerfile b/misc/docker/ubuntu-16.04-amd64/Dockerfile
new file mode 100644
index 00000000..c27aef15
--- /dev/null
+++ b/misc/docker/ubuntu-16.04-amd64/Dockerfile
@@ -0,0 +1,12 @@
+FROM ubuntu:16.04
+ENV DEBIAN_FRONTEND noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update
+RUN apt-get -y upgrade
+RUN apt-get -y install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev
diff --git a/misc/docker/ubuntu-18.04-amd64/Dockerfile b/misc/docker/ubuntu-18.04-amd64/Dockerfile
new file mode 100644
index 00000000..a1d95317
--- /dev/null
+++ b/misc/docker/ubuntu-18.04-amd64/Dockerfile
@@ -0,0 +1,27 @@
+FROM ubuntu:18.04
+ENV DEBIAN_FRONTEND noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update
+RUN apt-get -y upgrade
+RUN apt-get -y install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev \
+ libssh-gcrypt-dev \
+ linuxdoc-tools-latex \
+ texlive-latex-extra \
+ opensp \
+ docbook-xsl \
+ xsltproc
+RUN apt-get -y install \
+ git \
+ dpkg-dev \
+ debhelper \
+ apt-utils \
+ quilt \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/ubuntu-20.04-amd64/Dockerfile b/misc/docker/ubuntu-20.04-amd64/Dockerfile
new file mode 100644
index 00000000..fac1b333
--- /dev/null
+++ b/misc/docker/ubuntu-20.04-amd64/Dockerfile
@@ -0,0 +1,27 @@
+FROM ubuntu:20.04
+ENV DEBIAN_FRONTEND=noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update
+RUN apt-get -y upgrade
+RUN apt-get -y install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev \
+ libssh-gcrypt-dev \
+ linuxdoc-tools-latex \
+ texlive-latex-extra \
+ opensp \
+ docbook-xsl \
+ xsltproc
+RUN apt-get -y install \
+ git \
+ dpkg-dev \
+ debhelper \
+ apt-utils \
+ quilt \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/ubuntu-21.04-amd64/Dockerfile b/misc/docker/ubuntu-21.04-amd64/Dockerfile
new file mode 100644
index 00000000..1c32727b
--- /dev/null
+++ b/misc/docker/ubuntu-21.04-amd64/Dockerfile
@@ -0,0 +1,27 @@
+FROM ubuntu:21.04
+ENV DEBIAN_FRONTEND=noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update
+RUN apt-get -y upgrade
+RUN apt-get -y install \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev \
+ libssh-gcrypt-dev \
+ linuxdoc-tools-latex \
+ texlive-latex-extra \
+ opensp \
+ docbook-xsl \
+ xsltproc
+RUN apt-get -y install \
+ git \
+ dpkg-dev \
+ debhelper \
+ apt-utils \
+ quilt \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/docker/ubuntu-21.10-amd64/Dockerfile b/misc/docker/ubuntu-21.10-amd64/Dockerfile
new file mode 100644
index 00000000..aa0987b6
--- /dev/null
+++ b/misc/docker/ubuntu-21.10-amd64/Dockerfile
@@ -0,0 +1,28 @@
+FROM ubuntu:21.10
+ENV DEBIAN_FRONTEND=noninteractive
+RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list
+RUN apt-get -y update
+RUN apt-get -y upgrade
+RUN apt-get -y --no-install-recommends install \
+ tzdata \
+ build-essential \
+ flex \
+ bison \
+ autoconf \
+ ncurses-dev \
+ libreadline-dev \
+ libssh-gcrypt-dev \
+ linuxdoc-tools-latex \
+ texlive-latex-extra \
+ opensp \
+ docbook-xsl \
+ xsltproc
+RUN apt-get -y install \
+ git \
+ dpkg-dev \
+ debhelper \
+ apt-utils \
+ quilt \
+ python3 \
+ python3-pip \
+ python3-setuptools
diff --git a/misc/ips.c b/misc/ips.c
new file mode 100644
index 00000000..ea8eef7f
--- /dev/null
+++ b/misc/ips.c
@@ -0,0 +1,96 @@
+#include <stdio.h>
+#include <math.h>
+#include <unistd.h>
+#include <stdlib.h>
+
+int h[65536];
+
+/*
+ * Probability analysis of hashing function:
+ *
+ * Let n be number of items and k number of boxes. For uniform distribution
+ * we get:
+ *
+ * Expected value of "item i is in given box": Xi = 1/k
+ * Expected number of items in given box: a = EX = E(sum Xi) = sum E(Xi) = n/k
+ * Expected square value: E(X^2) = E((sum Xi)^2) = E((sum_i Xi^2) + (sum_i,j i<>j XiXj)) =
+ * = sum_i E(Xi^2) + sum_i,j i<>j E(XiXj) =
+ * = sum_i E(Xi) [Xi is binary] + sum_i,j i<>j E(XiXj) [those are independent] =
+ * = n/k + n*(n-1)/k^2
+ * Variance: var X = E(X^2) - (EX)^2 = n/k + n*(n-1)/k^2 - n^2/k^2 =
+ * = n/k - n/k^2 = a * (1-1/k)
+ * Probability of fixed box being zero: Pz = ((k-1)/k)^n = (1-1/k)^n = (1-1/k)^(ak) =
+ * = ((1-1/k)^k)^a which we can approximate by e^-a.
+ */
+
+uint hf(uint n)
+{
+#if 0
+ n = (n ^ (n >> 16)) & 0xffff;
+ n = (n ^ (n << 8)) & 0xffff;
+#elif 1
+ n = (n >> 16) ^ n;
+ n = (n ^ (n << 10)) & 0xffff;
+#elif 0
+ n = (n >> 16) ^ n;
+ n *= 259309;
+#elif 0
+ n ^= (n >> 20);
+ n ^= (n >> 10);
+ n ^= (n >> 5);
+#elif 0
+ n = (n * 259309) + ((n >> 16) * 123479);
+#else
+ return random();
+#endif
+ return n;
+}
+
+int
+main(int argc, char **argv)
+{
+ int cnt=0;
+ int i;
+
+ int bits = atol(argv[1]);
+ int z = 1 << bits;
+ int max = atol(argv[2]);
+
+ while (max--)
+ {
+ uint i, e;
+ if (scanf("%x/%d", &i, &e) != 2)
+ {
+ if (feof(stdin))
+ break;
+ else
+ fprintf(stderr, "BUGGG\n");
+ }
+// i >>= (32-e);
+// i |= (i >> e);
+ cnt++;
+ h[(hf(i) >> 1*(16 - bits)) & (z-1)]++;
+ }
+// printf(">>> %d addresses\n", cnt);
+#if 0
+ for(i=0; i<z; i++)
+ printf("%d\t%d\n", i, h[i]);
+#else
+{
+ int min=cnt, max=0, zer=0;
+ double delta=0;
+ double avg = (double) cnt / z;
+ double exdelta = avg*(1-1/(double)z);
+ double exzer = exp(-avg);
+ for(i=0; i<z; i++) {
+ if (h[i] < min) min=h[i];
+ if (h[i] > max) max=h[i];
+ delta += (h[i] - avg) * (h[i] - avg);
+ if (!h[i]) zer++;
+ }
+ printf("size=%5d, min=%d, max=%2d, delta=%-7.6g (%-7.6g), avg=%-5.3g, zero=%g%% (%g%%)\n", z, min, max, delta/z, exdelta, avg, zer/(double)z*100, exzer*100);
+}
+#endif
+
+ return 0;
+}
diff --git a/misc/stats b/misc/stats
new file mode 100755
index 00000000..57920ce4
--- /dev/null
+++ b/misc/stats
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+make ips
+echo "Global tables:"
+for a in 4 5 6 7 8 9 10 11 12 13 14 15 ; do
+ ./ips <global $a $((1<<($a+2)))
+ done
+echo "Local tables:"
+./ips <local 6 1000
diff --git a/nest/route.h b/nest/route.h
index f83a5b33..e6f5f95a 100644
--- a/nest/route.h
+++ b/nest/route.h
@@ -431,7 +431,7 @@ struct nexthop {
byte weight;
byte labels_orig; /* Number of labels before hostentry was applied */
byte labels; /* Number of all labels */
- u32 label[0];
+ u32 label[MPLS_MAX_LABEL_STACK];
};
#define RNF_ONLINK 0x1 /* Gateway is onlink regardless of IP ranges */
@@ -683,10 +683,10 @@ ea_set_attr_data(ea_list **to, struct linpool *pool, uint id, uint flags, uint t
}
-#define NEXTHOP_MAX_SIZE (sizeof(struct nexthop) + sizeof(u32)*MPLS_MAX_LABEL_STACK)
+#define NEXTHOP_MAX_SIZE sizeof(struct nexthop)
-static inline size_t nexthop_size(const struct nexthop *nh)
-{ return sizeof(struct nexthop) + sizeof(u32)*nh->labels; }
+static inline size_t nexthop_size(const struct nexthop *nh UNUSED)
+{ return sizeof(struct nexthop); }
int nexthop__same(struct nexthop *x, struct nexthop *y); /* Compare multipath nexthops */
static inline int nexthop_same(struct nexthop *x, struct nexthop *y)
{ return (x == y) || nexthop__same(x, y); }
@@ -698,8 +698,8 @@ void nexthop_insert(struct nexthop **n, struct nexthop *y);
int nexthop_is_sorted(struct nexthop *x);
void rta_init(void);
-static inline size_t rta_size(const rta *a) { return sizeof(rta) + sizeof(u32)*a->nh.labels; }
-#define RTA_MAX_SIZE (sizeof(rta) + sizeof(u32)*MPLS_MAX_LABEL_STACK)
+static inline size_t rta_size(const rta *a UNUSED) { return sizeof(rta); }
+#define RTA_MAX_SIZE sizeof(rta)
rta *rta_lookup(rta *); /* Get rta equivalent to this one, uc++ */
static inline int rta_is_cached(rta *r) { return r->cached; }
static inline rta *rta_clone(rta *r) { r->uc++; return r; }
diff --git a/nest/rt-attr.c b/nest/rt-attr.c
index 7beb119b..6149fe39 100644
--- a/nest/rt-attr.c
+++ b/nest/rt-attr.c
@@ -90,8 +90,8 @@ const char * rta_dest_names[RTD_MAX] = {
pool *rta_pool;
-static slab *rta_slab_[4];
-static slab *nexthop_slab_[4];
+static slab *rta_slab;
+static slab *nexthop_slab;
static slab *rte_src_slab;
static struct idm src_ids;
@@ -354,12 +354,6 @@ nexthop_is_sorted(struct nexthop *x)
return 1;
}
-static inline slab *
-nexthop_slab(struct nexthop *nh)
-{
- return nexthop_slab_[MIN(nh->labels, 3)];
-}
-
static struct nexthop *
nexthop_copy(struct nexthop *o)
{
@@ -368,7 +362,7 @@ nexthop_copy(struct nexthop *o)
for (; o; o = o->next)
{
- struct nexthop *n = sl_allocz(nexthop_slab(o));
+ struct nexthop *n = sl_allocz(nexthop_slab);
n->gw = o->gw;
n->iface = o->iface;
n->next = NULL;
@@ -1156,16 +1150,10 @@ rta_same(rta *x, rta *y)
ea_same(x->eattrs, y->eattrs));
}
-static inline slab *
-rta_slab(rta *a)
-{
- return rta_slab_[a->nh.labels > 2 ? 3 : a->nh.labels];
-}
-
static rta *
rta_copy(rta *o)
{
- rta *r = sl_alloc(rta_slab(o));
+ rta *r = sl_alloc(rta_slab);
memcpy(r, o, rta_size(o));
r->uc = 1;
@@ -1359,15 +1347,8 @@ rta_init(void)
{
rta_pool = rp_new(&root_pool, "Attributes");
- rta_slab_[0] = sl_new(rta_pool, sizeof(rta));
- rta_slab_[1] = sl_new(rta_pool, sizeof(rta) + sizeof(u32));
- rta_slab_[2] = sl_new(rta_pool, sizeof(rta) + sizeof(u32)*2);
- rta_slab_[3] = sl_new(rta_pool, sizeof(rta) + sizeof(u32)*MPLS_MAX_LABEL_STACK);
-
- nexthop_slab_[0] = sl_new(rta_pool, sizeof(struct nexthop));
- nexthop_slab_[1] = sl_new(rta_pool, sizeof(struct nexthop) + sizeof(u32));
- nexthop_slab_[2] = sl_new(rta_pool, sizeof(struct nexthop) + sizeof(u32)*2);
- nexthop_slab_[3] = sl_new(rta_pool, sizeof(struct nexthop) + sizeof(u32)*MPLS_MAX_LABEL_STACK);
+ rta_slab = sl_new(rta_pool, sizeof(rta));
+ nexthop_slab = sl_new(rta_pool, sizeof(struct nexthop));
rta_alloc_hash();
rte_src_init();
diff --git a/proto/bfd/bfd.c b/proto/bfd/bfd.c
index 97eb2d9b..e810ad23 100644
--- a/proto/bfd/bfd.c
+++ b/proto/bfd/bfd.c
@@ -150,8 +150,9 @@ bfd_session_update_state(struct bfd_session *s, uint state, uint diag)
if (state == old_state)
return;
- TRACE(D_EVENTS, "Session to %I changed state from %s to %s",
- s->addr, bfd_state_names[old_state], bfd_state_names[state]);
+ TRACE(D_EVENTS, "Session to %I%J changed state from %s to %s",
+ s->addr, s->ifa->iface,
+ bfd_state_names[old_state], bfd_state_names[state]);
bfd_lock_sessions(p);
s->loc_state = state;
@@ -320,7 +321,7 @@ bfd_session_timeout(struct bfd_session *s)
{
struct bfd_proto *p = s->ifa->bfd;
- TRACE(D_EVENTS, "Session to %I expired", s->addr);
+ TRACE(D_EVENTS, "Session to %I%J expired", s->addr, s->ifa->iface);
s->rem_state = BFD_STATE_DOWN;
s->rem_id = 0;
@@ -452,7 +453,7 @@ bfd_add_session(struct bfd_proto *p, ip_addr addr, ip_addr local, struct iface *
init_list(&s->request_list);
s->last_state_change = current_time();
- TRACE(D_EVENTS, "Session to %I added", s->addr);
+ TRACE(D_EVENTS, "Session to %I%J added", s->addr, s->ifa->iface);
birdloop_leave(p->loop);
@@ -490,6 +491,7 @@ static void
bfd_remove_session(struct bfd_proto *p, struct bfd_session *s)
{
ip_addr ip = s->addr;
+ struct iface *iface = s->ifa->iface;
/* Caller should ensure that request list is empty */
@@ -510,7 +512,7 @@ bfd_remove_session(struct bfd_proto *p, struct bfd_session *s)
sl_free(s);
- TRACE(D_EVENTS, "Session to %I removed", ip);
+ TRACE(D_EVENTS, "Session to %I%J removed", ip, iface);
birdloop_leave(p->loop);
}
@@ -536,7 +538,7 @@ bfd_reconfigure_session(struct bfd_proto *p, struct bfd_session *s)
birdloop_leave(p->loop);
- TRACE(D_EVENTS, "Session to %I reconfigured", s->addr);
+ TRACE(D_EVENTS, "Session to %I%J reconfigured", s->addr, s->ifa->iface);
}
diff --git a/proto/bgp/attrs.c b/proto/bgp/attrs.c
index 4346cd5d..299df21e 100644
--- a/proto/bgp/attrs.c
+++ b/proto/bgp/attrs.c
@@ -208,13 +208,16 @@ bgp_encode_raw(struct bgp_write_state *s UNUSED, eattr *a, byte *buf, uint size)
*/
static int
-bgp_aigp_valid(byte *data, uint len, char *err, uint elen)
+bgp_aigp_valid(byte *data, uint len, char *err, uint elen, u64 *metric)
{
byte *pos = data;
char *err_dsc = NULL;
uint err_val = 0;
#define BAD(DSC,VAL) ({ err_dsc = DSC; err_val = VAL; goto bad; })
+ if (len == 0 || len > 11)
+ BAD("[RHE NON-COMPLIANT] AIGP attribute must contain just 1 TLV", len);
+
while (len)
{
if (len < 3)
@@ -230,8 +233,13 @@ bgp_aigp_valid(byte *data, uint len, char *err, uint elen)
if (plen < 3)
BAD("Bad TLV length", plen);
- if ((ptype == BGP_AIGP_METRIC) && (plen != 11))
- BAD("Bad AIGP TLV length", plen);
+ if (ptype == BGP_AIGP_METRIC) {
+ if (plen != 11)
+ BAD("Bad AIGP TLV length", plen);
+ *metric = get_u64(pos + 3);
+ }
+ else
+ BAD("[RHE NON-COMPLIANT] Unsupported TLV Type", ptype);
ADVANCE(pos, len, plen);
}
@@ -247,95 +255,6 @@ bad:
return 0;
}
-static const byte *
-bgp_aigp_get_tlv(const struct adata *ad, uint type)
-{
- if (!ad)
- return NULL;
-
- uint len = ad->length;
- const byte *pos = ad->data;
-
- while (len)
- {
- uint ptype = pos[0];
- uint plen = get_u16(pos + 1);
-
- if (ptype == type)
- return pos;
-
- ADVANCE(pos, len, plen);
- }
-
- return NULL;
-}
-
-static const struct adata *
-bgp_aigp_set_tlv(struct linpool *pool, const struct adata *ad, uint type, byte *data, uint dlen)
-{
- uint len = ad ? ad->length : 0;
- const byte *pos = ad ? ad->data : NULL;
- struct adata *res = lp_alloc_adata(pool, len + 3 + dlen);
- byte *dst = res->data;
- byte *tlv = NULL;
- int del = 0;
-
- while (len)
- {
- uint ptype = pos[0];
- uint plen = get_u16(pos + 1);
-
- /* Find position for new TLV */
- if ((ptype >= type) && !tlv)
- {
- tlv = dst;
- dst += 3 + dlen;
- }
-
- /* Skip first matching TLV, copy others */
- if ((ptype == type) && !del)
- del = 1;
- else
- {
- memcpy(dst, pos, plen);
- dst += plen;
- }
-
- ADVANCE(pos, len, plen);
- }
-
- if (!tlv)
- {
- tlv = dst;
- dst += 3 + dlen;
- }
-
- /* Store the TLD */
- put_u8(tlv + 0, type);
- put_u16(tlv + 1, 3 + dlen);
- memcpy(tlv + 3, data, dlen);
-
- /* Update length */
- res->length = dst - res->data;
-
- return res;
-}
-
-static u64 UNUSED
-bgp_aigp_get_metric(const struct adata *ad, u64 def)
-{
- const byte *b = bgp_aigp_get_tlv(ad, BGP_AIGP_METRIC);
- return b ? get_u64(b + 3) : def;
-}
-
-static const struct adata *
-bgp_aigp_set_metric(struct linpool *pool, const struct adata *ad, u64 metric)
-{
- byte data[8];
- put_u64(data, metric);
- return bgp_aigp_set_tlv(pool, ad, BGP_AIGP_METRIC, data, 8);
-}
-
int
bgp_total_aigp_metric_(rte *e, u64 *metric, const struct adata **ad)
{
@@ -343,11 +262,7 @@ bgp_total_aigp_metric_(rte *e, u64 *metric, const struct adata **ad)
if (!a)
return 0;
- const byte *b = bgp_aigp_get_tlv(a->u.ptr, BGP_AIGP_METRIC);
- if (!b)
- return 0;
-
- u64 aigp = get_u64(b + 3);
+ u64 aigp = a->u.data; /* u32 -> u64 */
u64 step = e->attrs->igp_metric;
if (!rte_resolvable(e) || (step >= IGP_METRIC_UNKNOWN))
@@ -856,6 +771,21 @@ bgp_export_aigp(struct bgp_export_state *s, eattr *a)
UNSET(a);
}
+static int
+bgp_encode_aigp(struct bgp_write_state *s UNUSED, eattr *a, byte *buf, uint size)
+{
+ if (size < (3+1+2+8))
+ return -1;
+
+ u64 metric = a->u.data; /* u32 -> u64 */
+ bgp_put_attr_hdr3(buf, EA_ID(a->id), a->flags, 1+2+8);
+ put_u8(buf + 3, 1);
+ put_u16(buf + 3 + 1, 11);
+ put_u64(buf + 3 + 3, metric);
+
+ return 3+1+2+8;
+}
+
static void
bgp_decode_aigp(struct bgp_parse_state *s, uint code UNUSED, uint flags, byte *data, uint len, ea_list **to)
{
@@ -866,21 +796,12 @@ bgp_decode_aigp(struct bgp_parse_state *s, uint code UNUSED, uint flags, byte *d
if ((flags ^ bgp_attr_table[BA_AIGP].flags) & (BAF_OPTIONAL | BAF_TRANSITIVE))
DISCARD("Malformed AIGP attribute - conflicting flags (%02x)", flags);
- if (!bgp_aigp_valid(data, len, err, sizeof(err)))
+ u64 val;
+ if (!bgp_aigp_valid(data, len, err, sizeof(err), &val))
DISCARD("Malformed AIGP attribute - %s", err);
-
- bgp_set_attr_data(to, s->pool, BA_AIGP, flags, data, len);
-}
-
-static void
-bgp_format_aigp(const eattr *a, byte *buf, uint size UNUSED)
-{
- const byte *b = bgp_aigp_get_tlv(a->u.ptr, BGP_AIGP_METRIC);
-
- if (!b)
- bsprintf(buf, "?");
- else
- bsprintf(buf, "%lu", get_u64(b + 3));
+ if (val > 0xffffffff)
+ DISCARD("[RHE NON-COMPLIANT] AIGP metric value higher than 0xffffffff is not supported");
+ bgp_set_attr_u32(to, s->pool, BA_AIGP, flags, val);
}
@@ -1114,12 +1035,11 @@ static const struct bgp_attr_desc bgp_attr_table[] = {
},
[BA_AIGP] = {
.name = "aigp",
- .type = EAF_TYPE_OPAQUE,
+ .type = EAF_TYPE_INT, /* Limiting to 32 bits */
.flags = BAF_OPTIONAL | BAF_DECODE_FLAGS,
.export = bgp_export_aigp,
- .encode = bgp_encode_raw,
+ .encode = bgp_encode_aigp,
.decode = bgp_decode_aigp,
- .format = bgp_format_aigp,
},
[BA_LARGE_COMMUNITY] = {
.name = "large_community",
@@ -1873,8 +1793,11 @@ bgp_update_attrs(struct bgp_proto *p, struct bgp_channel *c, rte *e, ea_list *at
(bgp_total_aigp_metric_(e, &metric, &ad) ||
(c->cf->aigp_originate && bgp_init_aigp_metric(e, &metric, &ad))))
{
- ad = bgp_aigp_set_metric(pool, ad, metric);
- bgp_set_attr_ptr(&attrs, pool, BA_AIGP, 0, ad);
+ u32 metric32 = (u32)metric;
+ /* TODO */
+ if (metric32 < metric)
+ metric32 = 0xffffffff;
+ bgp_set_attr_u32(&attrs, pool, BA_AIGP, 0, metric32);
}
/* IBGP route reflection, RFC 4456 */
@@ -2186,6 +2109,10 @@ bgp_rte_mergable(rte *pri, rte *sec)
if (p != s)
return 0;
+ /* RFC 7311 4.1 - Apply AIGP metric */
+ if (bgp_total_aigp_metric(pri) != bgp_total_aigp_metric(sec))
+ return 0;
+
/* RFC 4271 9.1.2.2. a) Use AS path lengths */
if (pri_bgp->cf->compare_path_lengths || sec_bgp->cf->compare_path_lengths)
{
diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c
index f8146bdf..167bf55a 100644
--- a/proto/bgp/bgp.c
+++ b/proto/bgp/bgp.c
@@ -312,7 +312,7 @@ bgp_initiate(struct bgp_proto *p)
{
p->start_state = BSS_DELAY;
BGP_TRACE(D_EVENTS, "Startup delayed by %d seconds due to errors", p->startup_delay);
- bgp_start_timer(p->startup_timer, p->startup_delay);
+ bgp_start_timer(p->startup_timer, p->startup_delay, 1);
}
else
bgp_startup(p);
@@ -335,21 +335,24 @@ err1:
* bgp_start_timer - start a BGP timer
* @t: timer
* @value: time (in seconds) to fire (0 to disable the timer)
+ * @use_randomize: the randomization procedure in RFC 4271 should be applied
*
* This functions calls tm_start() on @t with time @value and the amount of
* randomization suggested by the BGP standard. Please use it for all BGP
* timers.
*/
void
-bgp_start_timer(timer *t, uint value)
+bgp_start_timer(timer *t, uint value, int use_randomize)
{
- if (value)
+ if (value && use_randomize)
{
/* The randomization procedure is specified in RFC 4271 section 10 */
btime time = value S;
btime randomize = random() % ((time / 4) + 1);
tm_start(t, time - randomize);
}
+ else if (value)
+ tm_start(t, value S);
else
tm_stop(t);
}
@@ -724,7 +727,7 @@ bgp_conn_enter_close_state(struct bgp_conn *conn)
conn->sk->rx_hook = NULL;
/* Timeout for CLOSE state, if we cannot send notification soon then we just hangup */
- bgp_start_timer(conn->hold_timer, 10);
+ bgp_start_timer(conn->hold_timer, 10, 0);
if (os == BS_ESTABLISHED)
bgp_conn_leave_established_state(conn, p);
@@ -960,7 +963,7 @@ bgp_send_open(struct bgp_conn *conn)
bgp_prepare_capabilities(conn);
bgp_schedule_packet(conn, NULL, PKT_OPEN);
bgp_conn_set_state(conn, BS_OPENSENT);
- bgp_start_timer(conn->hold_timer, conn->bgp->cf->initial_hold_time);
+ bgp_start_timer(conn->hold_timer, conn->bgp->cf->initial_hold_time, 0);
}
static void
@@ -1036,9 +1039,18 @@ bgp_hold_timeout(timer *t)
/* If there is something in input queue, we are probably congested
and perhaps just not processed BGP packets in time. */
- if (sk_rx_ready(conn->sk) > 0)
- bgp_start_timer(conn->hold_timer, 10);
- else if ((conn->state == BS_ESTABLISHED) && p->llgr_ready)
+ if (sk_rx_ready(conn->sk) > 0) {
+ bgp_start_timer(conn->hold_timer, 10, 0);
+ return;
+ }
+
+ if (p->cf->soft_hold_time) {
+ log(L_WARN "%s: Hold timer soft-expired", p->p.name);
+ bgp_start_timer(conn->hold_timer, 10, 0);
+ return;
+ }
+
+ if ((conn->state == BS_ESTABLISHED) && p->llgr_ready)
{
BGP_TRACE(D_EVENTS, "Hold timer expired");
bgp_handle_graceful_restart(p);
@@ -1097,7 +1109,7 @@ bgp_active(struct bgp_proto *p)
BGP_TRACE(D_EVENTS, "Connect delayed by %d seconds", delay);
bgp_setup_conn(p, conn);
bgp_conn_set_state(conn, BS_ACTIVE);
- bgp_start_timer(conn->connect_timer, delay);
+ bgp_start_timer(conn->connect_timer, delay, 1);
}
/**
@@ -1145,7 +1157,7 @@ bgp_connect(struct bgp_proto *p) /* Enter Connect state and start establishing c
goto err;
DBG("BGP: Waiting for connect success\n");
- bgp_start_timer(conn->connect_timer, p->cf->connect_retry_time);
+ bgp_start_timer(conn->connect_timer, p->cf->connect_retry_time, 1);
return;
err:
diff --git a/proto/bgp/bgp.h b/proto/bgp/bgp.h
index 2e95037c..7380c641 100644
--- a/proto/bgp/bgp.h
+++ b/proto/bgp/bgp.h
@@ -125,6 +125,7 @@ struct bgp_config {
unsigned hold_time;
unsigned min_hold_time; /* Minimum accepted hold time */
unsigned initial_hold_time;
+ int soft_hold_time;
unsigned keepalive_time;
unsigned min_keepalive_time; /* Minimum accepted keepalive time */
unsigned error_amnesia_time; /* Errors are forgotten after */
@@ -540,7 +541,7 @@ bgp_parse_error(struct bgp_parse_state *s, uint subcode)
}
-void bgp_start_timer(timer *t, uint value);
+void bgp_start_timer(timer *t, uint value, int use_randomize);
void bgp_check_config(struct bgp_config *c);
void bgp_error(struct bgp_conn *c, unsigned code, unsigned subcode, byte *data, int len);
void bgp_close_conn(struct bgp_conn *c);
diff --git a/proto/bgp/config.Y b/proto/bgp/config.Y
index 6981a117..8c15fc2d 100644
--- a/proto/bgp/config.Y
+++ b/proto/bgp/config.Y
@@ -54,6 +54,7 @@ bgp_proto_start: proto_start BGP {
BGP_CFG->multihop = -1; /* undefined */
BGP_CFG->hold_time = 240;
BGP_CFG->initial_hold_time = 240;
+ BGP_CFG->soft_hold_time = 0;
BGP_CFG->compare_path_lengths = 1;
BGP_CFG->igp_metric = 1;
BGP_CFG->connect_delay_time = 5;
@@ -158,6 +159,7 @@ bgp_proto:
| bgp_proto HOLD TIME expr ';' { BGP_CFG->hold_time = $4; if (($4 && $4<3) || ($4>65535)) cf_error("Hold time must be in range 3-65535 or zero"); }
| bgp_proto MIN HOLD TIME expr ';' { BGP_CFG->min_hold_time = $5; }
| bgp_proto STARTUP HOLD TIME expr ';' { BGP_CFG->initial_hold_time = $5; }
+ | bgp_proto SOFT HOLD TIME bool ';' { BGP_CFG->soft_hold_time = $5; }
| bgp_proto DIRECT ';' { BGP_CFG->multihop = 0; }
| bgp_proto MULTIHOP ';' { BGP_CFG->multihop = 64; }
| bgp_proto MULTIHOP expr ';' { BGP_CFG->multihop = $3; if (($3<1) || ($3>255)) cf_error("Multihop must be in range 1-255"); }
@@ -359,7 +361,7 @@ dynamic_attr: BGP_CLUSTER_LIST
dynamic_attr: BGP_EXT_COMMUNITY
{ $$ = f_new_dynamic_attr(EAF_TYPE_EC_SET, T_ECLIST, EA_CODE(PROTOCOL_BGP, BA_EXT_COMMUNITY)); } ;
dynamic_attr: BGP_AIGP
- { $$ = f_new_dynamic_attr(EAF_TYPE_OPAQUE, T_ENUM_EMPTY, EA_CODE(PROTOCOL_BGP, BA_AIGP)); } ;
+ { $$ = f_new_dynamic_attr(EAF_TYPE_INT, T_INT, EA_CODE(PROTOCOL_BGP, BA_AIGP)); } ;
dynamic_attr: BGP_LARGE_COMMUNITY
{ $$ = f_new_dynamic_attr(EAF_TYPE_LC_SET, T_LCLIST, EA_CODE(PROTOCOL_BGP, BA_LARGE_COMMUNITY)); } ;
dynamic_attr: BGP_OTC
diff --git a/proto/bgp/packets.c b/proto/bgp/packets.c
index b7df5a7a..3e025a7b 100644
--- a/proto/bgp/packets.c
+++ b/proto/bgp/packets.c
@@ -989,7 +989,7 @@ bgp_rx_open(struct bgp_conn *conn, byte *pkt, uint len)
conn->hold_time, conn->keepalive_time, p->remote_as, p->remote_id, conn->as4_session);
bgp_schedule_packet(conn, NULL, PKT_KEEPALIVE);
- bgp_start_timer(conn->hold_timer, conn->hold_time);
+ bgp_start_timer(conn->hold_timer, conn->hold_time, 0);
bgp_conn_enter_openconfirm_state(conn);
}
@@ -2717,7 +2717,7 @@ bgp_rx_update(struct bgp_conn *conn, byte *pkt, uint len)
if (conn->state != BS_ESTABLISHED)
{ bgp_error(conn, 5, fsm_err_subcode[conn->state], NULL, 0); return; }
- bgp_start_timer(conn->hold_timer, conn->hold_time);
+ bgp_start_timer(conn->hold_timer, conn->hold_time, 0);
struct lp_state tmpp;
lp_save(tmp_linpool, &tmpp);
@@ -3061,7 +3061,7 @@ bgp_fire_tx(struct bgp_conn *conn)
{
conn->packets_to_send &= ~(1 << PKT_KEEPALIVE);
BGP_TRACE(D_PACKETS, "Sending KEEPALIVE");
- bgp_start_timer(conn->keepalive_timer, conn->keepalive_time);
+ bgp_start_timer(conn->keepalive_timer, conn->keepalive_time, 1);
return bgp_send(conn, PKT_KEEPALIVE, BGP_HEADER_LENGTH);
}
else while (conn->channels_to_send)
@@ -3367,7 +3367,7 @@ bgp_rx_keepalive(struct bgp_conn *conn)
struct bgp_proto *p = conn->bgp;
BGP_TRACE(D_PACKETS, "Got KEEPALIVE");
- bgp_start_timer(conn->hold_timer, conn->hold_time);
+ bgp_start_timer(conn->hold_timer, conn->hold_time, 0);
if (conn->state == BS_OPENCONFIRM)
{ bgp_conn_enter_established_state(conn); return; }
diff --git a/proto/l3vpn/config.Y b/proto/l3vpn/config.Y
index e16e0c48..dbafa1dd 100644
--- a/proto/l3vpn/config.Y
+++ b/proto/l3vpn/config.Y
@@ -92,7 +92,7 @@ l3vpn_proto:
l3vpn_targets:
ec_item { f_tree_only_rt($1); $$ = $1; }
- | '[' ec_items ']' { f_tree_only_rt($2); $$ = build_tree($2); }
+ | '[' ec_items comma_opt ']' { f_tree_only_rt($2); $$ = build_tree($2); }
;
diff --git a/sysdep/autoconf.h.in b/sysdep/autoconf.h.in
deleted file mode 100644
index 13dfbca4..00000000
--- a/sysdep/autoconf.h.in
+++ /dev/null
@@ -1,177 +0,0 @@
-/* sysdep/autoconf.h.in. Generated from configure.ac by autoheader. */
-
-/* Define if building universal (internal helper macro) */
-#undef AC_APPLE_UNIVERSAL_BUILD
-
-/* Aggregator protocol */
-#undef CONFIG_AGGREGATOR
-
-/* Babel protocol */
-#undef CONFIG_BABEL
-
-/* BFD protocol */
-#undef CONFIG_BFD
-
-/* BGP protocol */
-#undef CONFIG_BGP
-
-/* BMP protocol */
-#undef CONFIG_BMP
-
-/* L3VPN protocol */
-#undef CONFIG_L3VPN
-
-/* MRT protocol */
-#undef CONFIG_MRT
-
-/* OSPF protocol */
-#undef CONFIG_OSPF
-
-/* Pipe protocol */
-#undef CONFIG_PIPE
-
-/* RAdv protocol */
-#undef CONFIG_RADV
-
-/* RIP protocol */
-#undef CONFIG_RIP
-
-/* RPKI protocol */
-#undef CONFIG_RPKI
-
-/* Static protocol */
-#undef CONFIG_STATIC
-
-/* Define to 1 if cpu is big endian */
-#undef CPU_BIG_ENDIAN
-
-/* Define to 1 if cpu is little endian */
-#undef CPU_LITTLE_ENDIAN
-
-/* Define to 1 if debugging is enabled */
-#undef DEBUGGING
-
-/* Define to 1 if you want 4-way tries instead of 16-way ones. */
-#undef ENABLE_COMPACT_TRIES
-
-/* Define to 1 if you want to run expensive consistency checks. */
-#undef ENABLE_EXPENSIVE_CHECKS
-
-/* Define to 1 if you have the <alloca.h> header file. */
-#undef HAVE_ALLOCA_H
-
-/* Define to 1 if you have the <curses.h> header file. */
-#undef HAVE_CURSES_H
-
-/* Define to 1 if you have the <execinfo.h> header file. */
-#undef HAVE_EXECINFO_H
-
-/* Define to 1 if you have the `getentropy' function. */
-#undef HAVE_GETENTROPY
-
-/* Define to 1 if you have the `getrandom' function. */
-#undef HAVE_GETRANDOM
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the `dmalloc' library (-ldmalloc). */
-#undef HAVE_LIBDMALLOC
-
-/* Define to 1 if you have the `efence' library (-lefence). */
-#undef HAVE_LIBEFENCE
-
-/* Define to 1 if you have the `ssh' library (-lssh). */
-#undef HAVE_LIBSSH
-
-/* Define to 1 if mmap() is available. */
-#undef HAVE_MMAP
-
-/* Define to 1 if kernel is MPLS capable */
-#undef HAVE_MPLS_KERNEL
-
-/* Define to 1 if you have the <readline/history.h> header file. */
-#undef HAVE_READLINE_HISTORY_H
-
-/* Define to 1 if you have the <readline/readline.h> header file. */
-#undef HAVE_READLINE_READLINE_H
-
-/* Define to 1 if you have rl_crlf() */
-#undef HAVE_RL_CRLF
-
-/* Define to 1 if you have rl_ding() */
-#undef HAVE_RL_DING
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdio.h> header file. */
-#undef HAVE_STDIO_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if `sa_len' is a member of `struct sockaddr'. */
-#undef HAVE_STRUCT_SOCKADDR_SA_LEN
-
-/* Define to 1 if you have the <syslog.h> header file. */
-#undef HAVE_SYSLOG_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if _Thread_local is available */
-#undef HAVE_THREAD_LOCAL
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if all of the C90 standard headers exist (not just the ones
- required in a freestanding environment). This macro is provided for
- backward compatibility; new code need not use it. */
-#undef STDC_HEADERS
-
-/* Which sysdep header to include */
-#undef SYSCONF_INCLUDE
-
-/* Define to 1 if pthreads are enabled */
-#undef USE_PTHREADS
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
- significant byte first (like Motorola and SPARC, unlike Intel). */
-#if defined AC_APPLE_UNIVERSAL_BUILD
-# if defined __BIG_ENDIAN__
-# define WORDS_BIGENDIAN 1
-# endif
-#else
-# ifndef WORDS_BIGENDIAN
-# undef WORDS_BIGENDIAN
-# endif
-#endif
diff --git a/sysdep/linux/netlink.c b/sysdep/linux/netlink.c
index 29446cab..8aaece91 100644
--- a/sysdep/linux/netlink.c
+++ b/sysdep/linux/netlink.c
@@ -56,6 +56,7 @@ struct nl_sock
};
#define NL_RX_SIZE 32768
+#define NL_TX_SIZE 32768
#define NL_OP_DELETE 0
#define NL_OP_ADD (NLM_F_CREATE|NLM_F_EXCL)
@@ -1270,15 +1271,6 @@ krt_capable(rte *e)
}
}
-static inline int
-nh_bufsize(struct nexthop *nh)
-{
- int rv = 0;
- for (; nh != NULL; nh = nh->next)
- rv += RTNH_LENGTH(RTA_LENGTH(sizeof(ip_addr)));
- return rv;
-}
-
static int
nl_send_route(struct krt_proto *p, rte *e, int op)
{
@@ -1286,17 +1278,15 @@ nl_send_route(struct krt_proto *p, rte *e, int op)
net *net = e->net;
rta *a = e->attrs;
ea_list *eattrs = a->eattrs;
- int bufsize = 128 + KRT_METRICS_MAX*8 + nh_bufsize(&(a->nh));
u32 priority = 0;
struct {
struct nlmsghdr h;
struct rtmsg r;
- char buf[0];
- } *r;
+ char buf[NL_TX_SIZE];
+ } _r, *r = &_r;
- int rsize = sizeof(*r) + bufsize;
- r = alloca(rsize);
+ int rsize = sizeof(_r);
DBG("nl_send_route(%N,op=%x)\n", net->n.addr, op);