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
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
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
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
70945cb645
Temporary integrated OSPF commit.
2014-06-26 11:58:57 +02:00
Ondrej Zajicek
05476c4d04
IPv4/IPv6 integrated socket code.
2014-05-18 11:42:26 +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
d7c0628591
Check validity of interface definitions.
...
Thanks to Aleksey Berezin for the bugreport.
2014-03-31 01:52:28 +02: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
283c7dfada
Merge branch 'master' into add-path
2013-11-25 18:42:47 +01:00
Ondrej Zajicek
c72aca41e5
OSPF ifaces on loopback should be stub.
2013-11-24 22:12:51 +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
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
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
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
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
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
155134f396
A few semicolons added to decrease a number of warnings.
2013-02-10 19:04:08 +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
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
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
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
bbcfd5a048
Fixes default route in OSPF multiple area setting.
2012-07-26 13:59:50 +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
d494df63ac
Some minor fixes.
2012-04-27 00:04:51 +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
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
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
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
2918e61046
Fixes for OSPF NSSA handling.
2011-09-03 21:31:26 +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
ae85e28cf4
Fixes a bug in OSPF causing DoS by an invalid packet.
2011-06-20 07:37:55 +02:00
Ondrej Zajicek
1155c79209
Fixes compatibility with Mikrotik.
2011-05-19 01:20:00 +02:00
Ondrej Filip
d600909da9
Fixed bug FICORA #503685 .
2011-04-13 13:19:37 +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
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
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
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
ed76033c84
Fixes some typos.
2010-10-22 08:35:19 +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
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
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
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