diff options
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 `& -> &' 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); |