Ondrej Zajicek (work)
8465dccb06
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.
2015-10-05 13:18:10 +02:00
Ondrej Zajicek
b5e76398de
OSPF: Fixes some issues with link detection
...
Thanks to Bernardo Figueiredo and Israel G. Lugo for the bugreport.
2015-08-19 11:16:23 +02:00
Ondrej Zajicek
538264cf1a
Static: Support for BFD controlled static routes
2015-07-24 18:02:07 +02:00
Ondrej Zajicek
1321e12ac4
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; };
2015-07-20 17:11:10 +02:00
Ondrej Zajicek
ffa398b8d8
BFD: Fixes crash after socket error
...
Thanks to Thomas King for the bugreport.
2015-07-19 11:39:24 +02:00
Ondrej Zajicek
06e0d1b692
BGP: Extended messages support
...
Implements draft-ietf-idr-bgp-extended-messages-10, for now
undocumented and with temporary private capability number.
2015-07-18 13:38:21 +02:00
Ondrej Zajicek
8d9eef1771
BGP multipath support
...
Kernel option 'merge paths' allows to merge routes exported to kernel
protocol (currently BGP and static routes) to multipath routes.
2015-06-08 02:24:08 +02:00
Ondrej Zajicek
d217ba5111
Moving of mulipath merging code from OSPF to nest
2015-06-08 02:24:08 +02:00
Pavel Tvrdík
ae80a2de95
unsigned [int] -> uint
2015-06-08 02:24:08 +02:00
Pavel Tvrdík
e348ef01b4
unsgined char -> byte
2015-06-08 02:24:08 +02:00
Ondrej Filip
398f922531
Typo fix by Hans van Kranenburg
2015-06-01 10:41:17 +02:00
Ondrej Zajicek
77edab6409
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.
2015-05-01 14:40:56 +02:00
Ondrej Zajicek
30d09eb96e
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.
2015-04-28 13:45:44 +02:00
Ondrej Zajicek
ef3cac669c
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.
2015-04-18 13:26:45 +02:00
Ondrej Zajicek
304ac2e861
Minor fixes
2015-04-12 10:47:17 +02:00
Ondrej Zajicek
d924d5a562
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.
2015-04-01 00:10:00 +02:00
Ondrej Zajicek
2eadd36fa0
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).
2015-03-29 21:24:47 +02:00
Ondrej Zajicek
9aed29e605
BGP: Enhanced route refresh (RFC 7313) support
...
Also hook feed_done is renamed to feed_end.
2015-03-29 18:29:49 +02:00
Ondrej Zajicek
509aab5deb
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.
2015-03-02 10:58:20 +01:00
Ondrej Zajicek
9c89560e6c
Use IP_PORTRANGE_HIGH for BFD where available
2015-02-22 20:14:14 +01:00
Ondrej Zajicek
6cf72d7ad7
Rename BGP option 'start delay' to 'connect delay'
...
Also update log message for error-triggered startup delay.
2015-02-22 17:21:54 +01:00
Ondrej Zajicek
a1beb8f3ee
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.
2015-02-22 13:50:58 +01:00
Ondrej Zajicek
2bbc308321
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.
2015-02-21 21:08:23 +01:00
Ondrej Zajicek
374917adcc
Make BGP protocol instance search a separate function
...
Thanks to Alexander V. Chernikov for the patch.
2015-02-21 20:55:43 +01:00
Pavel Tvrdik
4a591d4b94
Replacing GNU old-style field designator extension
2015-02-21 19:31:36 +01:00
Ondrej Zajicek
8ce9a87755
Fixes minor bug in BFD.
...
Thanks to Pavel Tvrdik for noticing it.
2015-02-21 14:52:17 +01:00
Ondrej Zajicek
dfc7a6c6a0
Fixes potential alignment bug in BGP.
...
Thanks to Andrew (seti.kr.ua) for the bug report.
2015-02-21 12:24:30 +01:00
Ondrej Zajicek
523f020b5f
Link state support in BGP.
...
Configurable fast shutdown of a BGP session when an interface loses link.
2015-02-21 12:15:56 +01:00
Ondrej Zajicek
ac9dc669d8
Bugfix in latest OSPF changes.
2014-11-03 20:35:25 +01:00
Ondrej Zajicek
cd3b700393
Bugfix to OSPF reconfiguration.
2014-11-03 14:53:59 +01:00
Ondrej Zajicek
6f8bbaa10b
Fininshing integrated OSPF.
2014-11-03 10:42:55 +01:00
Ondrej Zajicek
88a183c6c9
Integrated IP functions.
2014-10-24 11:11:43 +02:00
Ondrej Zajicek
f8fefde318
Refactoring of OSPF messages.
2014-10-24 11:07:38 +02:00
Ondrej Zajicek
78342404ff
Merge remote-tracking branch 'origin/master' into soft-int
2014-10-14 17:23:34 +02:00
Ondrej Zajicek
1123e70740
Implements token bucket filter for rate limiting.
2014-10-02 12:52:50 +02:00
Ondrej Zajicek
dcde7ae597
Allows to configure different remote port for BGP sessions.
...
Thanks to João Taveira Araújo for the original patch.
2014-10-02 12:52:50 +02:00
Ondrej Zajicek
0479b44373
Fixes some warnings.
2014-10-02 12:52:50 +02:00
Ondrej Zajicek
178a197afb
OSPF instance id option and documentation update.
2014-07-21 21:50:56 +02:00
Ondrej Zajicek
742029eb78
Whitespace cleanup in OSPF.
2014-07-19 17:28:38 +02:00
Ondrej Zajicek
a7a7372aa7
Temporary integrated OSPF commit.
2014-07-18 18:24:12 +02:00
Ondrej Zajicek
751482899c
Implements default router preference (RFC 4191) for RAdv.
...
Thanks to Baptiste Jonglez for the patch.
2014-07-07 22:56:21 +02:00
Ondrej Zajicek
70945cb645
Temporary integrated OSPF commit.
2014-06-26 11:58:57 +02:00
Ondrej Zajicek
9eceab33f9
String constants could be used for string option values.
...
Thanks to Frederik Kriewitz for the patch.
2014-05-29 23:05:03 +02:00
Ondrej Zajicek
05476c4d04
IPv4/IPv6 integrated socket code.
2014-05-18 11:42:26 +02:00
Ondrej Zajicek
66370eac1f
Fixes BGP crash when update with some attributes and empty NLRI is received.
...
Thanks to Charlie Allom for the bugreport.
2014-05-04 11:49:41 +02:00
Ondrej Zajicek
984d734944
Fixes limit verification during reconfiguration.
2014-04-27 00:46:32 +02:00
Ondrej Zajicek
145368f547
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.
2014-04-23 13:54:28 +02:00
Ondrej Zajicek
859cbd75e1
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.
2014-04-14 12:50:03 +02:00
Ondrej Zajicek
2750b2484f
Fixes missing line in BFD context help.
2014-04-02 20:09:37 +02:00
Ondrej Zajicek
864f52a5f4
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.
2014-04-02 19:58:23 +02:00
Ondrej Zajicek
d7c0628591
Check validity of interface definitions.
...
Thanks to Aleksey Berezin for the bugreport.
2014-03-31 01:52:28 +02:00
Ondrej Zajicek
4e7c974d22
Fixes a bug in graceful restart.
2014-03-24 19:22:19 +01:00
Ondrej Zajicek
c980f8002e
Merge branch 'bgp-grace'
2014-03-24 12:41:43 +01:00
Ondrej Zajicek
227af309e5
Fixes some minor issues in graceful restart.
2014-03-24 12:32:12 +01:00
Ondrej Zajicek
6eda3f135f
Documentation (and minor fixes) for BGP graceful restart.
2014-03-23 01:35:33 +01:00
Ondrej Zajicek
0c791f873a
BGP graceful restart support.
...
Also significant core protocol state changes needed for that,
global graceful restart recovery state and kernel proto support
for recovery.
2014-03-20 14:07:12 +01:00
Ondrej Zajicek
d40c26594c
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.
2014-02-26 16:01:20 +01:00
Ondrej Zajicek
5c200e0a4d
Merge branch 'add-path'
2014-02-06 20:15:05 +01:00
Ondrej Zajicek
10c2e1e012
Fixes crash when state of disabled OSPF protocol is queried.
...
Thanks to Ondrej Caletka for the bugreport.
2014-02-06 17:54:25 +01:00
Ondrej Zajicek
cba9cbf1bd
Silence this annoying warning.
2014-02-06 17:51:16 +01:00
Ondrej Zajicek
48e5f32db6
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
2014-02-06 17:46:01 +01:00
Ondrej Zajicek
6601a14831
Merge branch 'add-path'
2013-12-10 22:30:46 +01:00
Ondrej Zajicek
2d0b7e24a5
Fixes problem with source address selection in BGP and BFD.
2013-12-02 11:54:32 +01:00
Ondrej Zajicek
e7d2ac4401
Finishes add-path.
...
Fixes some bugs and uses generic hash implementation.
2013-12-01 13:49:42 +01:00
Ondrej Zajicek
283c7dfada
Merge branch 'master' into add-path
2013-11-25 18:42:47 +01:00
Ondrej Zajicek
0c95f85ec5
Fixes a reply code.
2013-11-25 11:06:00 +01:00
Ondrej Zajicek
c72aca41e5
OSPF ifaces on loopback should be stub.
2013-11-24 22:12:51 +01:00
Ondrej Zajicek
f3e5917850
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.
2013-11-24 12:37:24 +01:00
Ondrej Zajicek
736e143fa5
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
2013-11-23 11:50:34 +01:00
Ondrej Zajicek
77e43c8b72
Minor fixes.
2013-11-22 22:49:04 +01:00
Ondrej Zajicek
41f8bf57c4
Changes identifiers to avoid use of reserved ones.
2013-11-22 21:59:43 +01:00
Ondrej Zajicek
1fba34a7a1
Adds check for buffer size in OSPF LSA flood.
2013-11-22 18:45:57 +01:00
Ondrej Zajicek
0aeac9cb7f
Merge commit 'origin/bfd'
2013-11-22 02:48:44 +01:00
Ondrej Zajicek
1ec522538f
BFD protocol, ready for release.
...
Supports OSPF and BGP and also statically configured sessions.
2013-11-19 22:33:48 +01:00
Ondrej Zajicek
33be3ba713
Accepts a change of OSPFv3 neighbor's IP address.
...
Thanks to Pierre Pfister for the patch.
2013-10-21 15:06:09 +02:00
Ondrej Zajicek
a15dab76f9
Implements 'allow local as' option.
...
Similar to allowas-in option on other routers.
2013-10-21 14:59:35 +02:00
Ondrej Zajicek
0e175f9f0f
Fixes some BFD bugs and makes logging thread-safe.
2013-10-05 20:12:28 +02:00
Ondrej Zajicek
4df2019ebf
Fixes build issues without BGP.
...
Thanks to Sergey Popovich for the patch.
2013-09-26 17:36:30 +02:00
Ondrej Zajicek
6a8d3f1c1f
BFD work in progress.
...
Now it compiles and mostly works.
2013-09-16 23:57:40 +02:00
Ondrej Filip
e550a37206
Fixes problem with OSPF neighbor router ID change. Thanx to Alexander V. Chernikov
2013-09-13 18:55:02 +02:00
Ondrej Filip
c404f4b968
OSPF state machine fix - thanx to Alexander V. Chernikov
2013-09-11 01:15:34 +02:00
Ondrej Zajicek
bf139664aa
Initial BFD commit, work in progress.
2013-09-10 12:09:36 +02:00
Ondrej Zajicek
b21955e058
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.
2013-08-13 20:42:43 +02:00
Ondrej Zajicek
ac57451348
Implements RFC 6608 Subcodes for BGP FSM Error.
2013-07-25 13:55:24 +02:00
Ondrej Zajicek
e1afee2799
Fixes socket error hook for radv protocol.
2013-07-24 14:19:37 +02:00
Ondrej Zajicek
48b15ef10f
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.
2013-07-13 01:39:41 +02:00
Ondrej Zajicek
354496ace8
Some fixes for TTL security.
2013-07-11 13:50:44 +02:00
Ondrej Zajicek
70e212f913
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.
2013-06-25 15:39:44 +02:00
Ondrej Zajicek
ef4a50be10
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.
2013-06-24 16:37:30 +02:00
Ondrej Zajicek
f623ab9875
Implements OSPF stub router option (RFC 3137).
...
Also fixes OSPFv3 routing table calculcation w.r.t.
errata 2078 to RFC 5340.
2013-06-11 12:12:11 +02:00
Ondrej Zajicek
924868543c
Fixes crash with vlinks.
2013-05-28 10:48:14 +02:00
Ondrej Zajicek
9c99d753fd
Fixes a problem with BGP neighbors, link-local addresses and locking.
...
Thanks to Fritz Grimpen for the bugfix.
2013-05-09 11:11:06 +02:00
Ondrej Zajicek
572c644043
Fixes a crash when mrtdump is enabled and interface goes away.
...
Thanks to Peter Christensen for the bugfix.
2013-04-29 22:08:05 +02:00
Ondrej Zajicek
8df02847e8
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.
2013-04-17 13:06:40 +02:00
Ondrej Zajicek
8bd9b930c3
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.
2013-04-16 17:40:44 +02:00
Ondrej Zajicek
48bc232f08
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.
2013-04-16 17:27:34 +02:00
Ondrej Zajicek
9ff5257357
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.
2013-04-16 16:22:31 +02:00
Ondrej Filip
a9fc659b84
Small typos fixed.
2013-02-26 14:29:53 +01:00
Ondrej Filip
de41dcd13d
Redundant lines removed.
2013-02-26 14:13:11 +01:00
Ondrej Filip
a9c38203bd
Allow 1 sec RIP update.
2013-02-24 00:43:08 +01:00
Ondrej Filip
04ddefb357
Use BIRD's ASSERT instead of assert.h
2013-02-22 07:15:27 +01:00
Ondrej Filip
2bf59bf4d3
Hotfix to solve an issue with delaying timers reported by Aleksey Chudov.
2013-02-21 00:44:59 +01:00
Ondrej Filip
155134f396
A few semicolons added to decrease a number of warnings.
2013-02-10 19:04:08 +01:00
Ondrej Zajicek
c6a2fe64be
Fixes handling of iface routes in static proto during reconfiguration.
...
During reconfiguration, iface routes were installed even when iface was down.
2013-02-09 00:53:04 +01:00
Ondrej Zajicek
36da2857bc
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.
2013-02-08 23:58:27 +01:00
Ondrej Zajicek
b662290f40
Separate import and receive limits.
...
They have different behavior w.r.t. filtered routes that are kept.
2013-01-10 13:07:33 +01:00
Ondrej Zajicek
79b4e12e60
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.
2012-12-27 12:56:23 +01:00
Ondrej Zajicek
80a9cadc76
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.
2012-11-27 02:08:04 +01:00
Ondrej Zajicek
6cadbf325b
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.
2012-11-15 14:08:20 +01:00
Ondrej Zajicek
1555095795
Changes 'rejected' to 'filtered' in one of the last patches.
2012-11-15 01:29:01 +01:00
Ondrej Filip
e16469bc4d
AS# in bgp.agreggator was a signed integer - fixed.
2012-11-12 13:48:29 +01:00
Ondrej Zajicek
227af52fb5
Fixes OSPF reconfigure w.r.t. downed ifaces.
2012-11-10 16:18:12 +01:00
Ondrej Zajicek
a55a90faec
Peer address of stub iface should be announced in OSPF Router LSA.
2012-11-10 14:54:35 +01:00
Ondrej Zajicek
cf98be7b67
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'.
2012-11-10 14:26:13 +01:00
Ondrej Zajicek
dd4da6f640
Fixes another bug in OSPFv3 vlinks.
2012-10-31 17:14:35 +01:00
Ondrej Zajicek
8249ad9b30
Fixes sorting in OSPF show state.
2012-10-29 20:39:03 +01:00
Ondrej Zajicek
e4404cef0b
Fixes several bugs related to OSPFv3 vlinks.
2012-10-29 20:29:31 +01:00
Ondrej Zajicek
094d2bdb79
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.
2012-08-14 16:46:43 +02:00
Ondrej Zajicek
c06de722dd
Some minor fixes.
2012-08-06 11:09:13 +02:00
Ondrej Zajicek
5400c0e7f9
Fixes BGP subcode during global shutdown.
2012-08-06 02:42:24 +02:00
Ondrej Zajicek
bbcfd5a048
Fixes default route in OSPF multiple area setting.
2012-07-26 13:59:50 +02:00
Ondrej Zajicek
abced4a914
Merge branch 'rt-accepted'
...
Conflicts:
nest/config.Y
nest/rt-table.c
proto/bgp/bgp.c
2012-07-16 14:44:45 +02:00
Ondrej Zajicek
26822d8fe1
Finalize RA_ACCEPTED handling.
2012-07-16 01:33:02 +02:00
Ondrej Zajicek
fc06fb6244
Implements RDNSS and DNSSL support for RAdv.
2012-07-07 14:26:42 +02:00
Ondrej Zajicek
95127cbbb7
Real broadcast mode for OSPFv2.
2012-05-14 11:47:41 +02:00
Ondrej Zajicek
0ec031f740
Allows to set instance ID for OSPFv3 interfaces.
2012-05-14 10:22:14 +02:00
Ondrej Zajicek
47c447c42e
Minor cleanups.
2012-05-11 12:10:21 +02:00
Ondrej Zajicek
d494df63ac
Some minor fixes.
2012-04-27 00:04:51 +02:00
Ondrej Zajicek
d9b77cc281
Implements generalized export limits.
...
And also fixes some minor bugs in limits.
2012-04-24 23:39:57 +02:00
Ondrej Zajicek
7d0a31deed
Fixes in generalized import limits.
2012-04-21 21:05:36 +02:00
Ondrej Zajicek
ebecb6f6a1
Implements generalized import hooks.
...
Thanks to Alexander V. Chernikov for the original patch.
2012-04-15 15:28:29 +02:00
Ondrej Zajicek
3e17e38059
Merge branch 'master' into rt-accepted
2012-04-15 15:17:03 +02:00
Ondrej Zajicek
d360f129e3
Fix static protocol w.r.t. some recent changes in protocol ahooks.
2012-04-15 15:13:12 +02:00
Ondrej Zajicek
00a09f3c36
Implement RA_ACCEPTED mode of route propagation.
2012-04-15 15:07:58 +02:00
Ondrej Zajicek
bf2abe2f51
Merge branch 'soon'
...
Conflicts:
nest/proto.c
nest/rt-table.c
2012-03-30 11:04:12 +02:00
Ondrej Zajicek
89647357af
NEWS and version update.
2012-03-22 12:29:02 +01:00
Ondrej Zajicek
c47d037ecb
Some minor changes to CLI.
2012-03-22 12:13:26 +01:00
Ondrej Zajicek
fd087589f8
Fixes broken vlinks in OSPF.
2012-03-16 13:01:12 +01:00
Ondrej Zajicek
20ab192bec
Adds filtering to 'show ospf lsadb' command.
...
Thanks Alexander V. Chernikov for the original patch.
2012-03-16 12:12:26 +01:00
Ondrej Zajicek
9f1500f50a
Adds warning for mismatch MTU in OSPF packets.
...
Thanks Alexander V. Chernikov for the original patch.
2012-03-15 13:45:55 +01:00
Ondrej Zajicek
2f9955b5d5
Fixes TTL for multicast OSPF packets.
...
Thanks Alexander V. Chernikov for the suggestion.
2012-03-15 13:12:00 +01:00
Ondrej Zajicek
e2bf812f3d
Fixes RIPng compatibility.
...
Also probably breaks compatibility with older BIRDs, but RIPng not
really worked here.
Thanks to Goesta Smekal for the original patch.
2012-03-15 12:38:08 +01:00
Ondrej Zajicek
f761503760
Fixes RIPng socket and neighbor handling.
...
RIPng did not really work because of link-local addresses.
Thanks to Roman Hoog Antink for some notes.
2012-03-15 12:23:49 +01:00
Ondrej Zajicek
c0adf7e9fc
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.
2012-03-15 12:13:04 +01:00
Ondrej Zajicek
39c028e9e9
Assign default protocol preference via proto_config_new().
...
The patch from Alexander V. Chernikov.
2012-01-24 11:31:00 +01:00
Ondrej Zajicek
5c78e0e386
Some more verbose warnings.
2012-01-22 11:03:30 +01:00
Ondrej Zajicek
3ce1714279
Fixes a new bug in BGP route ordering.
2012-01-20 16:20:03 +01:00
Ondrej Zajicek
8cf8f820fe
Show interface for link-local gw in static protocol.
2012-01-09 03:21:45 +01:00
Ondrej Zajicek
d7f469c15c
Some minor fixes.
2012-01-09 02:41:13 +01:00
Ondrej Zajicek
53ffbff39f
Implements support for link-local addresses in BGP.
...
Thanks Matthias Schiffer for the original patch.
2012-01-08 15:31:34 +01:00
Ondrej Zajicek
69a8259c5e
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
.
2012-01-01 12:14:42 +01:00
Ondrej Zajicek
be4cd99a36
Implements deterministic MED handling.
...
Thanks to Alexander V. Chernikov for many suggestions.
2011-12-22 13:20:29 +01:00
Ondrej Zajicek
2779d50a24
Fixes RAdv proto w.r.t. templates.
...
Thanks Alexander V. Chernikov for this.
2011-11-17 21:12:23 +01:00
Ondrej Zajicek
a7f23f581f
Implements protocol templates.
...
Based on the patch from Alexander V. Chernikov.
Extended to support almost all protocols.
Uses 'protocol bgp NAME from TEMPLATE { ... }' syntax.
2011-11-07 00:31:23 +01:00
Ondrej Zajicek
74add5df17
Fixes seqnum generation.
...
Thanks Mohammad Amin Shoaie for notification.
2011-10-27 14:52:28 +02:00
Ondrej Zajicek
14a8f396e1
Fixes sockets for IPv4 RIP.
...
Thanks Roman Hoog Antink for a suggestion.
2011-10-26 14:10:49 +02:00
Ondrej Zajicek
32f95476a8
Signal problems with route installation to kernel tables.
2011-10-06 22:48:49 +02:00
Ondrej Zajicek
35c875f0d1
Fixes some error messages and the NSSA gw lookup.
...
Thanks to Alexander V. Chernikov for the patch.
2011-10-01 09:57:49 +02:00
Ondrej Zajicek
4116db182d
Implements static recursive routes.
2011-09-24 02:24:34 +02:00
Ondrej Zajicek
51947659ab
Minor changes in BGP protocol info.
...
Shows neighbor IP and ASN even if protocol is down.
2011-09-04 00:56:02 +02:00
Ondrej Zajicek
6c4df70373
Fixes possible buffer overflow when printing BGP attributes.
...
Thanks to Alexander V. Chernikov for the patch.
2011-09-03 21:59:40 +02:00
Ondrej Zajicek
2918e61046
Fixes for OSPF NSSA handling.
2011-09-03 21:31:26 +02:00
Ondrej Zajicek
b1b1943360
The generalized TTL security mechanism (RFC 5082) support.
...
Thanks to Alexander V. Chernikov for the patch.
2011-08-16 23:13:05 +02:00
Ondrej Zajicek
42a0c05408
BGP Extended communities.
2011-08-14 13:55:02 +02:00
Ondrej Zajicek
ed317862c2
OSPF NSSA support, inter-area LSA translation.
2011-08-08 01:45:31 +02:00
Ondrej Zajicek
4160a9dd94
OSPF NSSA translator election.
2011-07-22 20:00:24 +02:00
Ondrej Zajicek
41b612c31b
OSPF NSSA support, part one.
2011-07-20 23:48:06 +02:00
Ondrej Zajicek
9008579b97
Fixes broken multi-area OSPF.
2011-07-20 23:46:03 +02:00
Ondrej Zajicek
beeda6af44
Removes timers for stub interfaces. Also fixes some minor bugs.
2011-07-08 01:14:52 +02:00
Ondrej Zajicek
7d4e923603
Do not open sockets for stub interfaces.
2011-07-06 03:10:02 +02:00
Ondrej Zajicek
f796945f04
Fixes LSA checksum computation for larger LSAs.
2011-07-03 23:24:38 +02:00
Ondrej Zajicek
fdf16eb658
Prints full community lists during 'show route all'.
2011-07-03 19:43:30 +02:00
Ondrej Zajicek
35f8c731ea
Fixes output of BGP timers in 'show protocols all'.
2011-06-25 14:51:16 +02:00
Ondrej Zajicek
d8b5a786d2
IPV6_CHECKSUM should not be used on ICMPv6 sockets.
2011-06-25 11:35:54 +02:00
Ondrej Zajicek
ae85e28cf4
Fixes a bug in OSPF causing DoS by an invalid packet.
2011-06-20 07:37:55 +02:00
Ondrej Zajicek
61c96d7244
Fixes bug that causes crash with strange BGP updates.
2011-05-31 17:27:46 +02:00
Ondrej Zajicek
1155c79209
Fixes compatibility with Mikrotik.
2011-05-19 01:20:00 +02:00
Ondrej Zajicek
5964569c23
Merge commit 'origin/master'
2011-04-29 19:03:19 +02:00
Ondrej Zajicek
73272f04af
Adds BGP option related to MED handling.
...
Adds option 'med metric' allows to compare MEDs
between routes received from different neighbors.
2011-04-22 16:13:27 +02:00
Ondrej Filip
d600909da9
Fixed bug FICORA #503685 .
2011-04-13 13:19:37 +02:00
Ondrej Zajicek
4ef0950603
Fixes a problem with BGP protocols and implicit router IDs.
2011-04-01 13:55:52 +02:00
Ondrej Zajicek
d93a43a57d
Fix leaked debug message.
2011-04-01 12:21:18 +02:00
Ondrej Zajicek
06fb60c4af
Fixes some problems in BGP error handling.
2011-03-30 01:09:18 +02:00
Ondrej Zajicek
ab16497189
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.
2011-03-29 01:41:46 +02:00
Ondrej Zajicek
52a43ae3b7
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.
2011-03-28 22:46:18 +02:00
Ondrej Zajicek
8e48831a97
Vastly improved OSPF reconfiguration.
...
Now it can handle a change in iface pattern structure.
It can add, remove and reconfigure interfaces, vlinks and areas.
2011-03-17 15:53:36 +01:00
Ondrej Zajicek
93e868c730
Implements Router Advertisement protocol.
2011-03-13 11:33:50 +01:00
Ondrej Zajicek
e7b4948cbd
A simplification of the next-hop calculation.
...
Thanks to Joakim Tjernlund for the idea.
2010-12-28 01:43:07 +01:00
Ondrej Zajicek
919f5411c4
Implements Point-to-MultiPoint interface type for OSPF.
2010-12-24 18:08:07 +01:00
Ondrej Zajicek
39847cda73
Add some comments.
2010-12-23 12:24:40 +01:00
Ondrej Zajicek
f0160f0e06
Fixes a minor memory wasting.
2010-12-23 10:25:22 +01:00
Ondrej Zajicek
57c574d82a
Multipath support for OSPF
2010-12-07 23:35:39 +01:00
Ondrej Zajicek
9852f81064
Multipath support for static protocol.
2010-12-07 23:34:36 +01:00
Ondrej Zajicek
7e95c05d88
Core multipath support.
2010-12-07 23:33:55 +01:00
Ondrej Zajicek
391931d456
Minor finalizations of link state checks.
2010-11-19 13:46:21 +01:00
Ondrej Zajicek
79f561a173
Fixes a typo (in OSPF_MAX_PKT_SIZE value).
...
And updates a comment.
2010-11-19 12:45:17 +01:00
Ondrej Zajicek
d9e7e1b13d
Adds support for iface link detection to OSPF.
2010-11-13 14:19:23 +01:00
Ondrej Zajicek
fe181e7c63
Adds support for iface link check to static protocol.
2010-11-11 12:24:27 +01:00
Ondrej Zajicek
5cdf264f93
Fixes a bug related to implicit backbone on ABR.
2010-11-10 16:43:11 +01:00
Ondrej Zajicek
c4443085a1
OSPF tx buffers should have the same size as rx buffers.
...
We should be able to send everything we received.
2010-11-04 17:25:48 +01:00
Ondrej Zajicek
d5356072ac
Fixes a bug in LSA update of large LSAs.
2010-11-04 17:22:43 +01:00
Ondrej Zajicek
d3209d939d
Fixes a bug in OSPF.
2010-11-03 10:04:46 +01:00
Ondrej Zajicek
fcf5a4f4b3
Change default for BGP IPv6 socket to V6ONLY.
...
Also add a new option 'dual' for the old behavior.
2010-11-03 10:02:24 +01:00
Ondrej Zajicek
ed76033c84
Fixes some typos.
2010-10-22 08:35:19 +02:00
Ondrej Zajicek
948c865fac
Fixes a crash in RIP during reconfigure.
2010-09-03 17:15:02 +02:00
Ondrej Zajicek
3cb6c83f1a
Fixes a memory leak in RIP.
2010-09-03 16:32:00 +02:00
Ondrej Zajicek
faf58cec4d
Fixes a bug in NBMA on an iface with multiple IP addresses.
2010-08-22 14:43:53 +02:00
Ondrej Zajicek
ac4a1eedfc
Change default for handling missing link-local addresses on route servers.
2010-08-13 14:30:36 +02:00
Ondrej Zajicek
265d06dcbc
Fixes IPv6 build.
2010-08-04 15:27:11 +02:00
Ondrej Zajicek
ba5e5940aa
Adds igp_metric attribute.
2010-08-02 13:11:53 +02:00
Ondrej Zajicek
d395fe4855
Fixes bug in OSPF ext-LSA origination.
2010-07-31 11:37:30 +02:00
Ondrej Zajicek
d1e146f2f8
Implements IGP metric comparison for BGP routes.
2010-07-31 01:04:32 +02:00
Ondrej Zajicek
ac3ac49a71
Adds route resolvability test.
2010-07-28 13:13:34 +02:00
Ondrej Zajicek
1b180121a9
Use link-local addresses in recursive next hops for IPv6 BGP.
2010-07-28 11:45:35 +02:00
Ondrej Zajicek
852b7062e3
Fixes a buffer overflow in TX code of IPv6 BGP.
2010-07-22 15:09:35 +02:00
Ondrej Zajicek
087cecd0e2
Adds some options and documentation related to recursive next hops.
2010-07-13 12:48:23 +02:00
Ondrej Zajicek
9be9a26413
Implements proper multihop BGP.
...
Also does some incompatible changes to config file syntax,
like removing 'via IP' from multihop option.
2010-07-12 17:39:39 +02:00
Ondrej Zajicek
cfe34a316e
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.
2010-07-05 17:50:19 +02:00
Ondrej Zajicek
824de84d48
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.
2010-06-02 22:25:39 +02:00
Ondrej Filip
4461b89791
Minor bug that appears only in debug mode.
2010-06-02 12:11:20 +02:00
Ondrej Zajicek
a34b09349e
Disable BGP protocol when cannot open listening socket.
2010-05-31 11:35:29 +02:00
Ondrej Zajicek
9b061f7ea5
Minor fixes.
2010-05-28 11:16:39 +02:00
Ondrej Zajicek
691057f033
Support loopback/dummy addresses.
2010-05-26 16:09:22 +02:00
Ondrej Zajicek
e0a62ad0f8
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.
2010-05-26 12:32:30 +02:00
Ondrej Zajicek
52572e94ec
Check for OSPF seqnum wraparound and handle it.
2010-05-23 12:34:09 +02:00
Ondrej Zajicek
6d04ef8987
Comment update.
2010-05-21 16:40:09 +02:00
Ondrej Zajicek
c1cefd7bea
Do not remove old static route if it is in new config with different gw.
2010-05-16 11:03:59 +02:00
Ondrej Zajicek
7ff5803bec
Do not originate summary or external LSA if it already here and not changed.
2010-05-16 10:27:20 +02:00
Ondrej Zajicek
475977242a
Handle EPIPE as a common connection close event.
2010-05-14 16:54:39 +02:00
Ondrej Zajicek
ee7408c2be
Fixes a bug in LSA flooding.
...
LSAs are sometimes prematurely removed from LS retransmission lists.
2010-05-07 15:54:27 +02:00
Ondrej Zajicek
54818e9beb
A minor bugfix in OSPF ext-LSA processing.
2010-05-03 00:10:48 +02:00
Ondrej Zajicek
506fa1a73e
Merge several fixes suggested by Joakim Tjernlund.
2010-05-02 22:41:40 +02:00
Ondrej Zajicek
6384c7d7aa
OSPF: most of summary LSA orig./flush logic rewritten.
...
Fixes many bugs in the old code and makes it much cleaner.
2010-05-02 19:58:34 +02:00
Ondrej Zajicek
ba32170657
Better support for /31 networks.
2010-04-28 00:39:57 +02:00
Ondrej Zajicek
48b0814ace
A fix in OSPFv3 next_hop calculation.
2010-04-27 18:29:01 +02:00
Ondrej Zajicek
9d1ee13887
Neighbors on OSPF broadcast networks should be identified by IP address, not RID.
...
Allows simple support for multiple interfaces to the same network.
2010-04-26 19:08:57 +02:00
Ondrej Zajicek
4e5fb4b60c
Skip LSA host<->network endianity conversions on big endians.
2010-04-25 20:12:34 +02:00
Ondrej Zajicek
0ea8fb4abe
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).
2010-04-24 15:18:21 +02:00
Ondrej Zajicek
3b89a2327b
Fixes several problems in OSPF vlink implementation.
2010-04-21 21:50:38 +02:00
Ondrej Zajicek
6e80676096
Fixes next hop calculation on NBMA and parallel PTP links.
2010-04-11 12:22:47 +02:00
Ondrej Zajicek
7969ea3b41
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.
2010-04-11 10:19:54 +02:00
Ondrej Zajicek
6b5a8649a4
Do not export empty community list attribute in BGP.
2010-04-08 17:56:56 +02:00
Ondrej Zajicek
b8113a5e92
Implements BGP 'show protocols' info details.
2010-04-07 00:19:23 +02:00
Ondrej Zajicek
e60d55becd
Fixes OSPFv3 route generation for local stub networks.
2010-04-02 19:03:18 +02:00
Ondrej Zajicek
e7b09e4ab9
Use SO_BINDTODEVICE also in Linux/IPv6.
2010-04-02 16:11:46 +02:00
Ondrej Zajicek
bed417288e
Minor fixes to previous patches.
2010-04-02 11:31:20 +02:00
Ondrej Zajicek
126683feed
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.
2010-03-29 19:29:03 +02:00
Ondrej Zajicek
48cff379a7
Added some comments.
2010-03-26 16:21:29 +01:00
Ondrej Zajicek
af157fa3db
Disable multiple OSPF pseudointerfaces on BSD.
2010-03-26 14:48:01 +01:00
Ondrej Zajicek
885b3d6127
Fixes LLS compatibility.
2010-03-22 14:00:47 +01:00
Ondrej Zajicek
0aad2b9292
Temporary OSPF commit - sockets.
2010-03-14 16:36:59 +01:00
Ondrej Zajicek
54305181f6
Merge branch 'new' into socket2
2010-03-11 18:55:59 +01:00
Ondrej Zajicek
e7b76b9760
Temoporary OSPF commit - socket changes.
2010-03-11 18:07:24 +01:00
Ondrej Zajicek
53434e44a9
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.
2010-02-27 16:00:07 +01:00
Ondrej Zajicek
3075824dbd
Comparing cluster list length should be later in bgp_rte_better().
2010-02-26 14:09:24 +01:00
Ondrej Zajicek
ff2857b03d
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
2010-02-26 10:55:58 +01:00
Ondrej Zajicek
e81b440f68
Fix configure to enable warnings and fix most of them.
2010-02-21 14:34:53 +01:00
Ondrej Filip
89534cdae5
'rr client id' is not expression but ID (like router id).
2010-02-20 21:14:02 +01:00
Ondrej Zajicek
dca75fd7c2
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).
2010-02-13 12:26:26 +01:00
Ondrej Zajicek
9db74169be
Fixes protocol statistics for pipes.
2010-02-13 10:44:46 +01:00
Ondrej Zajicek
c83876265e
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.
2010-02-11 22:27:06 +01:00
Ondrej Zajicek
a2ea1bac60
Moves errno.h include.
2010-02-11 21:19:20 +01:00
Ondrej Zajicek
2af25a971a
Fixes a crash caused by missing error hook on BGP listening socket.
...
Error happened when too many BGP connections arrived in one moment
(ECONNABORTED).
2010-02-11 11:12:58 +01:00
Ondrej Zajicek
353729f513
Temporary OSPF commit - socket changes.
2010-02-11 10:23:35 +01:00
Ondrej Zajicek
c27b2449d1
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.
2010-02-08 16:01:03 +01:00
Ondrej Zajicek
aa80826e4a
Unnumbered OSPF interfaces should be always in the point-to-point mode.
2010-02-07 09:49:34 +01:00
Ondrej Zajicek
44f26560ec
Workaround for some broken BGP implementations that skip initial KEEPALIVE.
2010-02-02 10:14:21 +01:00
Ondrej Zajicek
41677025ee
Changes 'ignore communities' to 'interpret communities'.
2010-01-28 15:59:18 +01:00
Ondrej Zajicek
6cb8f742f1
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.
2010-01-27 17:22:57 +01:00
Ondrej Zajicek
a306208582
Comment update.
2010-01-13 14:53:33 +01:00
Ondrej Zajicek
99f5fc14cd
A partial vlink fix.
2010-01-08 22:19:41 +01:00
Ondrej Zajicek
fc33143f02
A fix for broken multi-area OSPF
2010-01-08 17:22:51 +01:00
Ondrej Filip
6901fd0685
More information about vlinks.
2010-01-07 23:42:11 +01:00
Ondrej Filip
18722dc98c
Bugfix in DBG call.
2010-01-07 23:03:19 +01:00
Ondrej Filip
3127b81755
Be a little bit more verbose on virtual links.
2010-01-07 22:54:39 +01:00
Ondrej Zajicek
cf0858c217
A fix of a previous fix.
2010-01-07 22:43:06 +01:00
Ondrej Zajicek
ba39197c11
Fixes vlinks for OSPFv2.
2010-01-07 22:22:10 +01:00
Ondrej Zajicek
29bfbae793
Debugging change leaked to repository.
2010-01-07 16:24:36 +01:00
Ondrej Zajicek
3034b384dd
A minor fix in OSPF.
2010-01-07 11:46:11 +01:00
Ondrej Zajicek
cf31112f0d
Implements MRTdump feature.
2010-01-03 12:17:52 +01:00
Ondrej Zajicek
610bb3cff0
Show command cleanups.
2009-12-22 10:49:39 +01:00
Ondrej Zajicek
c4ae53858b
Change default mode of pipes to transparent.
...
Opaque pipes are obsolete and should disappear in the future.
2009-12-21 11:53:58 +01:00
Ondrej Zajicek
fbcb7d5faf
Change default LOCAL_PREF attribute to 100 (suggested value by RFC 4277).
2009-12-21 11:50:42 +01:00
Ondrej Zajicek
ba9a122142
Merge branch 'ospf3' into new
2009-12-20 22:57:44 +01:00
Ondrej Zajicek
c4199e3031
Merge branch 'dev' into ospf3
2009-12-20 22:56:09 +01:00
Ondrej Zajicek
ea7ada3809
Fixes a new bug in the pipe protocol soft reconfiguration.
...
Also updates route reload for pipes.
2009-12-20 14:59:12 +01:00
Ondrej Zajicek
1a5178587f
Fixes unnecessary pipe restart during configure.
2009-12-20 12:13:15 +01:00
Ondrej Zajicek
0225ea4edd
Merge branch 'ospf3' into new
2009-12-15 00:32:13 +01:00
Ondrej Zajicek
f2d7da742b
Fixes export of routes with link-local gw.
2009-12-15 00:30:07 +01:00
Ondrej Zajicek
43c1ceccb9
Remove bgp_as4_support variable.
2009-12-14 23:31:25 +01:00
Ondrej Zajicek
f75747073e
Implements route reload for OSPF.
2009-12-14 21:17:15 +01:00
Ondrej Zajicek
63542845df
Merge branch 'dev' into ospf3
...
Conflicts:
proto/ospf/lsreq.c
proto/ospf/lsupd.c
proto/ospf/rt.c
2009-12-14 20:37:32 +01:00
Ondrej Zajicek
34a877ccac
Minor updates.
2009-12-14 17:29:33 +01:00
Ondrej Zajicek
28008482a9
Minor fixes in OSPF.
2009-12-12 01:35:51 +01:00
Ondrej Zajicek
8a70a13e7e
Implements protocol-specific Router ID for OSPF.
...
And fixes one minor bug.
2009-12-11 11:06:51 +01:00
Ondrej Zajicek
be2d38b7e9
Temporary OSPFv3 commit.
2009-12-11 00:31:56 +01:00
Ondrej Zajicek
9807690b41
Fixes link-back check.
2009-12-06 22:05:50 +01:00
Ondrej Zajicek
b76aeb8234
Fixes next hop handling.
2009-12-04 22:20:13 +01:00
Ondrej Zajicek
9895502392
Fixes OSPFv2 build.
2009-12-03 23:20:02 +01:00
Ondrej Zajicek
bb3c7c6d22
Fixes some log messages.
2009-12-03 18:56:39 +01:00
Ondrej Zajicek
69fbf9a251
Minor fix in LSA update.
2009-12-03 18:25:14 +01:00
Ondrej Zajicek
11787b8473
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().
2009-12-02 17:26:16 +01:00
Ondrej Zajicek
4b84bd4554
Fixes some crashes in OSPFv2.
2009-11-29 10:29:33 +01:00
Ondrej Zajicek
e4a810b0ce
Temporary commit.
2009-11-29 10:09:25 +01:00
Ondrej Zajicek
bf47fe4b2e
Implements BGP route refresh.
2009-11-26 20:47:59 +01:00
Ondrej Zajicek
3f9b7bfe9f
Implements option that controls IPv6 BGP next hops when lladdr is missing.
2009-11-18 20:32:36 +01:00
Ondrej Zajicek
d0e2d6d1e0
Show both IPv6 next hop addresses in BGP.
2009-11-17 14:17:23 +01:00
Ondrej Zajicek
3228c72cc0
Implements RFC 5004 - prefer older external routes.
2009-11-17 11:41:29 +01:00
Ondrej Zajicek
cbf8b08d62
Temporary OSPFv3 devel commit
2009-11-17 10:31:33 +01:00
Ondrej Zajicek
4ac7c8341c
Use IPv6 checksums in OSPFv3.
2009-11-09 23:22:53 +01:00
Ondrej Zajicek
3f22fa9e74
Merge branch 'dev' into ospf3
2009-11-09 22:54:39 +01:00
Ondrej Zajicek
a6bc04d591
Implements better checks on incoming packets and LSAs in OSPF.
2009-10-29 23:57:42 +01:00
Ondrej Zajicek
9d4d38d1a5
Fixes some problems related to link-local routes in KRT interface.
2009-10-28 22:39:24 +01:00
Ondrej Zajicek
9727681a38
Implements proper handling of summary/external LSA IDs.
2009-10-25 20:02:28 +01:00
Ondrej Zajicek
988992446d
Implement command to show LSA db.
2009-10-15 11:57:25 +02:00
Ondrej Zajicek
b66abe8ef9
Reimplements 'show ospf state' for OSPFv3 and fixes some bugs.
2009-10-15 00:28:04 +02:00
Ondrej Zajicek
4cdd078453
Implements protocol-specific router id and updates documentation.
2009-10-12 23:31:42 +02:00
Ondrej Zajicek
52b9b2a178
Rename as_path_get_last/as_path_get_first to be consistent.
2009-10-12 20:44:58 +02:00
Ondrej Zajicek
ea89da381f
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).
2009-10-11 18:56:16 +02:00
Ondrej Zajicek
d82fc18d75
Implement proper LSA ID generation.
2009-10-07 21:10:29 +01:00
Ondrej Zajicek
a5bf5f781c
Show bad peer AS number in log in decimal.
2009-09-24 23:14:44 +02:00
Ondrej Zajicek
be6e39ebbf
Passive option.
2009-09-24 22:12:11 +02:00
Ondrej Zajicek
54fe0d9230
Fixes setting of IP addresses to route attributes (NEXT_HOP).
2009-09-18 13:59:04 +02:00
Ondrej Zajicek
46eb80d5d5
Fixes headers for uintptr_t (and build on NetBSD).
2009-09-17 17:52:36 +02:00
Ondrej Zajicek
0781e9c62c
Fixes preference in transparent pipes.
2009-09-17 12:40:02 +02:00
Ondrej Zajicek
9f0ba7b1c7
Implements proper RID handling in OSPFv3.
2009-09-17 12:18:03 +02:00
Ondrej Zajicek
c15e569065
Make endianity swapping simpler.
2009-09-08 17:06:47 +02:00
Ondrej Zajicek
be86240662
Temporary OSPFv3 development commit.
...
Finally, it is working.
2009-09-08 13:45:02 +02:00
Ondrej Zajicek
f9c799a00e
Temporary OSPFv3 development commit (changing multicast support).
2009-09-04 11:06:51 +02:00
Ondrej Zajicek
d2ceaf4ec8
Temporary OSPFv3 development commit
2009-08-28 13:45:43 +02:00
Ondrej Zajicek
05198c12f4
Some cleanups.
2009-08-27 19:01:04 +02:00
Ondrej Zajicek
061ab802a6
Temporary OSPFv3 development commit
2009-08-27 18:25:46 +02:00
Ondrej Zajicek
949bd34e81
Fixes bug related to AS2->AS4 conversion.
2009-08-25 19:01:37 +02:00
Ondrej Zajicek
b49e6f5a65
Temporary OSPFv3 development commit
2009-08-25 16:42:14 +02:00
Ondrej Zajicek
c3226991a0
Temporary OSPFv3 development commit
2009-08-21 09:27:52 +02:00
Ondrej Filip
87d7fd9725
Bugfix - each protocol can be compiled separately.
2009-08-16 22:36:41 +02:00
Ondrej Zajicek
b92c8e3019
Merge branch 'master' into dev
2009-08-10 10:16:00 +02:00
Ondrej Filip
0d328932be
Symbols PASSWORDS and BROADCAST not declared for OSPF
2009-07-30 18:39:41 +02:00
Ondrej Zajicek
3aab39f589
Use %R in OSPF when appropriate.
2009-07-23 16:51:28 +02:00
Ondrej Zajicek
70670bf317
Fixed bug related to reconfiguration of BGP with MD5 passwords.
2009-07-09 15:42:39 +02:00
Ondrej Zajicek
2389c46fe3
Another pile of ipa_from_u32() calls.
2009-07-05 21:18:55 +02:00
Ondrej Zajicek
b082c1bfcc
Fixes OSPF on big-endians.
...
Hmm, #ifdef is not very typo-safe.
2009-07-05 20:26:51 +02:00
Ondrej Zajicek
f9bdcad469
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.
2009-07-05 19:01:54 +02:00
Ondrej Zajicek
d72cdff411
Replace 'bind' option with 'listen' option.
...
To be consistent with other daemons.
2009-06-23 11:08:30 +02:00
Ondrej Zajicek
da95a7a7da
Fixes bug in ORIGIN check.
2009-06-23 11:00:38 +02:00
Ondrej Zajicek
29c430f856
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).
2009-06-23 10:50:57 +02:00
Ondrej Zajicek
789772ed45
Implements option that changes BGP listening socket parametres.
2009-06-18 19:20:07 +02:00
Ondrej Zajicek
1b3b3e34ec
Minor bugfixes.
2009-06-18 14:32:44 +02:00
Ondrej Zajicek
3867520281
Implements an option that allows to change a set of stub networks.
2009-06-11 17:25:38 +02:00
Ondrej Zajicek
3d15dcdb1c
Changes OSPF to generate stub networks for non-primary addresses.
...
Also does some reorganization in RT LSA announcement.
2009-06-10 23:45:08 +02:00
Ondrej Zajicek
b99d378698
Minor BGP changes related to error wait time.
2009-06-07 00:38:38 +02:00
Ondrej Zajicek
7238262671
Fixes bug related to startup delay change.
2009-06-06 18:56:33 +02:00
Ondrej Zajicek
dd91e46765
Differentiate between error delay and connect/reconnect delay.
...
The difference is here to reject incoming connections in the
first case.
2009-06-06 18:16:22 +02:00
Ondrej Zajicek
72b28a041d
Implements import route limits.
2009-06-04 13:31:09 +02:00
Ondrej Zajicek
f98e291579
The pipe cleanup.
2009-06-01 14:07:13 +02:00
Ondrej Zajicek
2d45e09f58
Adds opaque/transparent pipe mode selection.
2009-06-01 12:10:10 +02:00
Ondrej Zajicek
23ac9e9a9e
Changes pipes to transfer all routes between routing table, not just optimal routes.
2009-05-31 15:24:27 +02:00
Ondrej Zajicek
f571473ef3
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.
2009-05-24 17:55:33 +02:00
Ondrej Zajicek
8cc598a520
Ignore Hello packets from different IP network (than primary).
2009-05-24 17:51:27 +02:00
Ondrej Zajicek
20e94fb85b
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 ... };
2009-05-06 22:02:45 +02:00
Ondrej Zajicek
10ab65a8c9
Fixes one recently introduced IPv6 BGP compatibility problem.
2009-05-06 15:18:52 +02:00
Ondrej Zajicek
b7a735ea9d
Allow 'third party' BGP updates for originated routes.
2009-04-29 22:17:40 +02:00
Ondrej Zajicek
4827b69ff4
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.
2009-04-29 18:58:24 +02:00
Ondrej Zajicek
ad440a570b
Fixes handling of 'next hop self' and 'source address' configuration
...
options.
2009-04-28 18:11:56 +02:00
Ondrej Zajicek
64cf11f544
Fixes BGPv6 bug - missing endianity conversion.
...
Also removes code skipping SNPAs
(obsoleted by newer RFCs, should be ignored).
2009-04-23 23:15:07 +02:00
Ondrej Zajicek
f307842ad8
Fixes BGPv6 bug - mandatory attributes weren't validated;
2009-04-23 14:44:02 +02:00
Ondrej Zajicek
8f0c887a52
Fixe bug in BGPv6 that causes to send invalid network withdraws.
2009-04-23 14:16:05 +02:00
Ondrej Zajicek
b9539e78d8
Fixes bug in BGPv6 causing crash by checking missing attributes.
2009-04-23 12:36:24 +02:00
Ondrej Zajicek
024c310b53
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).
2009-04-08 20:15:01 +02:00
Ondrej Zajicek
b722fe7ebd
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.
2009-04-06 16:53:06 +02:00
Ondrej Zajicek
8298d780be
Better OSPF packet tracing log messages.
...
Replaces old OSPF packet tracing messages with
uniform messages with packet dumps.
2009-04-06 16:17:47 +02:00
Ondrej Zajicek
48d79d521c
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
2009-03-18 20:30:21 +01:00
Ondrej Zajicek
e8ba557c7f
Update capability handshake options
...
Add 'capabilities' option, change default behavior to advertise ipv4,
add some checks and ignore incoming capabilities when capabilities
are disabled.
2009-03-13 12:49:44 +01:00
Ondrej Zajicek
e3299ab148
Added Cisco and Quagga capability workaround option.
2009-03-05 11:52:47 +01:00
Ondrej Zajicek
82a79586e5
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.
2009-02-27 15:24:46 +01:00
Ondrej Zajicek
cb53039271
Rate limit for most abundant log messages
2009-02-26 14:23:54 +01:00
Ondrej Zajicek
a9dc5e1ef2
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.
2009-02-25 16:28:21 +01:00
Ondrej Zajicek
cd17c651a6
Add format for BGP_AGGREGATOR attribute
2009-02-21 17:47:56 +01:00
Ondrej Zajicek
d901db3fb7
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.
2009-02-12 19:46:51 +01:00
Ondrej Zajicek
e3c460bc90
Fixes some past config grammar update that caused password related regression.
2009-01-16 12:08:07 +01:00
Ondrej Zajicek
3b108f18e8
One null-pointer dereference bugfix hidden in whitespace changes
2009-01-16 10:58:52 +01:00
Ondrej Zajicek
0dd7ccc766
Fix typo.
2009-01-13 19:25:27 +01:00
Ondrej Zajicek
0844b65d13
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.
2009-01-13 19:15:49 +01:00
Ondrej Zajicek
f15cb99c79
Add check detecting packet overwrite in TX buffer.
2009-01-12 23:42:51 +01:00
Ondrej Zajicek
23d6702952
Some fixes and update of OSPF debug messages
2009-01-11 12:14:27 +01:00
Ondrej Zajicek
0e9617e400
Move check for NULL before usage of variable.
2009-01-11 10:51:54 +01:00
Ondrej Zajicek
f20907adf6
Fixes bug in OSPF
...
Checksum was not recalculated when LSA was changed and
packets with bad checksum were sent.
2009-01-11 10:47:41 +01:00
Ondrej Zajicek
165a622727
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.
2008-12-24 17:24:41 +01:00
Ondrej Zajicek
591211557f
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.
2008-12-24 12:18:10 +01:00
Ondrej Zajicek
11b32d9117
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.
2008-12-19 01:34:39 +01:00
Ondrej Zajicek
3f670371cf
OSPF routes appeared with random value of ospf_tag attribute.
...
This patch fixes it.
2008-11-14 21:13:56 +01:00
Ondrej Zajicek
aebe06b40c
Proper format functions for ORIGINATOR_ID, CLUSTER_LIST
2008-11-08 23:33:22 +01:00
Ondrej Zajicek
b21f68b4cd
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.
2008-11-08 17:24:23 +01:00
Ondrej Zajicek
fd91ae3325
Fix problem with local time changes.
2008-11-05 22:36:49 +01:00
Ondrej Zajicek
1389f3699f
Fixes bugs in IPv6 code caused by recent commits.
2008-11-05 21:39:04 +01:00
Ondrej Zajicek
a39b165e45
Multihop BGP was completely broken, because listening socket has always
...
ttl 1.
2008-11-01 16:58:40 +01:00
Ondrej Zajicek
a92fe60717
Implementation of route server.
2008-11-01 12:55:43 +01:00
Ondrej Zajicek
e16466b379
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.
2008-10-29 14:16:34 +01:00
Ondrej Zajicek
f0ad56f441
Fixes some sloppiness of commit a3b70dc499
.
2008-10-28 16:10:42 +01:00
Ondrej Zajicek
a98fbf0f12
Merge branch 'dev' into out
2008-10-27 00:20:22 +01:00