Commit graph

23 commits

Author SHA1 Message Date
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 70945cb645 Temporary integrated OSPF commit. 2014-06-26 11:58:57 +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 506fa1a73e Merge several fixes suggested by Joakim Tjernlund. 2010-05-02 22:41:40 +02:00
Ondrej Zajicek 4e5fb4b60c Skip LSA host<->network endianity conversions on big endians. 2010-04-25 20:12:34 +02:00
Ondrej Zajicek e81b440f68 Fix configure to enable warnings and fix most of them. 2010-02-21 14:34:53 +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 c3226991a0 Temporary OSPFv3 development commit 2009-08-21 09:27:52 +02: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 d5d9693ce9 Deleted unused parameters. 2004-06-06 18:45:08 +00:00
Ondrej Filip 2e10a170fe Indentation. 2004-06-06 09:37:54 +00:00
Ondrej Filip e9ab0b4212 Doc in lsalib.c + related minor changes. 2000-06-07 22:31:47 +00:00
Ondrej Filip 62924172ae Flush LSA when receive aged one. 2000-06-02 13:52:50 +00:00
Ondrej Filip d1660fd3f3 Sort cleanup in aging. 2000-05-31 14:21:56 +00:00
Ondrej Filip a02c6c184b Cleanup of code. Some arguments of functions were useless. 2000-05-03 22:23:41 +00:00
Ondrej Filip c45f48fba5 Aging of lsa database added. 2000-05-02 22:19:41 +00:00
Ondrej Filip 85195f1a53 Many small changes and bug fixes. Routing table calculation works.
I'm waiting for rt lookup to add stub networks.
2000-04-30 22:14:31 +00:00
Ondrej Filip d8852b362c LSupdate processing improved. Now there is some bug in hashing. :-( 2000-04-04 15:55:55 +00:00
Ondrej Filip 394acced11 Work on lsupdates continues. Some checksum cleanup. 2000-04-02 20:41:33 +00:00
Ondrej Filip db9fb72769 lsa_cmp moved into lsalib.c 2000-04-02 19:04:23 +00:00
Ondrej Filip 499cb346f6 LSA checksum works. But it's very uneficient on little endian systems. 2000-04-01 02:45:49 +00:00
Ondrej Filip f45fd3164b Sending of lspd as responce to lsreq done. 2000-03-31 00:21:41 +00:00