Commit graph

122 commits

Author SHA1 Message Date
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
6f8bbaa10b Fininshing integrated OSPF. 2014-11-03 10:42:55 +01:00
Ondrej Zajicek
f8fefde318 Refactoring of OSPF messages. 2014-10-24 11:07:38 +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
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
1fba34a7a1 Adds check for buffer size in OSPF LSA flood. 2013-11-22 18:45:57 +01:00
Ondrej Filip
c404f4b968 OSPF state machine fix - thanx to Alexander V. Chernikov 2013-09-11 01:15:34 +02:00
Ondrej Zajicek
dd4da6f640 Fixes another bug in OSPFv3 vlinks. 2012-10-31 17:14:35 +01:00
Ondrej Zajicek
e4404cef0b Fixes several bugs related to OSPFv3 vlinks. 2012-10-29 20:29:31 +01:00
Ondrej Zajicek
c06de722dd Some minor fixes. 2012-08-06 11:09:13 +02:00
Ondrej Zajicek
95127cbbb7 Real broadcast mode for OSPFv2. 2012-05-14 11:47:41 +02:00
Ondrej Zajicek
2918e61046 Fixes for OSPF NSSA handling. 2011-09-03 21:31:26 +02:00
Ondrej Zajicek
41b612c31b OSPF NSSA support, part one. 2011-07-20 23:48:06 +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
919f5411c4 Implements Point-to-MultiPoint interface type for OSPF. 2010-12-24 18:08:07 +01:00
Ondrej Zajicek
d5356072ac Fixes a bug in LSA update of large LSAs. 2010-11-04 17:22:43 +01: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
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
e81b440f68 Fix configure to enable warnings and fix most of them. 2010-02-21 14:34:53 +01:00
Ondrej Zajicek
353729f513 Temporary OSPF commit - socket changes. 2010-02-11 10:23:35 +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
69fbf9a251 Minor fix in LSA update. 2009-12-03 18:25:14 +01:00
Ondrej Zajicek
cbf8b08d62 Temporary OSPFv3 devel commit 2009-11-17 10:31:33 +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
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
061ab802a6 Temporary OSPFv3 development commit 2009-08-27 18:25:46 +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 Zajicek
3aab39f589 Use %R in OSPF when appropriate. 2009-07-23 16:51:28 +02:00
Ondrej Zajicek
2389c46fe3 Another pile of ipa_from_u32() calls. 2009-07-05 21:18:55 +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
23d6702952 Some fixes and update of OSPF debug messages 2009-01-11 12:14:27 +01:00
Ondrej Zajicek
52586ccdf1 Missing newline. 2008-10-26 23:53:05 +01:00
Ondrej Filip
b181f444a6 Small changes to reduce number of warnings. 2005-02-14 11:54:16 +00:00
Ondrej Filip
86c84d76b7 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.
2004-07-15 16:37:52 +00:00
Ondrej Filip
3b16080c97 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!!!!
2004-07-14 21:46:20 +00:00
Ondrej Filip
3e2bd0f17a Md5 authentification added (unsested).
Packet receiving clean up.
2004-06-26 20:15:34 +00:00
Ondrej Filip
98ac61766d 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
2004-06-25 16:39:53 +00:00
Ondrej Filip
5e3436d20f Cleanup in packet.c. Deleted unused parameters. 2004-06-06 19:53:52 +00:00
Ondrej Filip
d5d9693ce9 Deleted unused parameters. 2004-06-06 18:45:08 +00:00