0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2025-01-03 15:41:54 +00:00
Commit Graph

296 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
Pavel Tvrdík
f84f925036 Birdtest: add IPv6 unit test for convert '::' 2015-04-29 16:50:38 +02:00
Pavel Tvrdík
71adc0f9e2 Add HMAC-SHA384 and HMAC-SHA512 (both not work!) 2015-04-29 16:50:38 +02:00
Pavel Tvrdík
e7ac4efd54 HMAC-SHA256, HMAC-SHA224 according to HMAC-SHA1
Successfully passed unit tests.
2015-04-29 16:49:44 +02:00
Pavel Tvrdík
b813656c58 SHA: Fixing broken build process 2015-04-29 13:43:15 +02:00
Pavel Tvrdík
5355407915 Add SHA512 and SHA384 hash library and unit tests 2015-04-28 17:05:29 +02:00
Pavel Tvrdík
ac2dc0510f Add HMAC-SHA224 (but it does not work yet!)
Unit Tests for HMAC-SHA224 not passed
2015-04-28 17:02:28 +02:00
Pavel Tvrdík
e4e80e4f8f SHA256: Integrate sha256_hmac into sha256 2015-04-28 16:58:44 +02:00
Pavel Tvrdík
6d3c17d5c2 SHA1: Integrate sha1_hmac.c into sha1.c 2015-04-28 16:58:44 +02:00
Pavel Tvrdík
17a0035a1c SHA: Fixing small bugs and code style
Thanks to Ondrej Zajicek
2015-04-28 16:58:31 +02:00
Pavel Tvrdík
c23cd84ed5 Add HMAC-SHA256 hash library and unit tests 2015-04-25 13:43:49 +02:00
Pavel Tvrdík
26b1fd1dc4 Add SHA256, SHA224 hash libraries and unit tests 2015-04-23 15:19:36 +02:00
Pavel Tvrdík
16e4e98ea0 SHA1: Code formatting 2015-04-23 15:19:26 +02:00
Pavel Tvrdík
5015dceee0 SHA1: Remove original libucw unit tests 2015-04-23 15:19:26 +02:00
Pavel Tvrdík
24ff638db2 SHA1: Use get_u32 and put_u32 2015-04-23 11:27:36 +02:00
Pavel Tvrdík
dd78aae55c SHA-1: safer endianity 2015-04-22 17:45:14 +02:00
Pavel Tvrdík
57453a3c5f Fixing copyrights at SHA-1 and HMAC-SHA1 libraries 2015-04-22 12:12:05 +02:00
Pavel Tvrdík
828e091013 Add SHA-1 and HMAC-SHA1 libraries with unit tests
Refactore MD5 tests
2015-04-22 11:15:38 +02:00
Pavel Tvrdík
259e7e0f67 Merge branch 'master' into birdtest 2015-04-20 16:27:48 +02:00
Pavel Tvrdík
a22d36256e Birdtest: Refactore functions (only rename) 2015-04-20 13:50:33 +02:00
Pavel Tvrdík
5419d2a3c5 Birdtest: Compability bug fixes
Tested on Ubuntu & FreeBSD & NetBSD & OpenBSD
2015-04-15 15:42:43 +02:00
Pavel Tvrdík
60c2d0c39f Birdtest: Add tests suites for SLIST datastructure 2015-04-15 12:14:36 +02:00
Pavel Tvrdík
979dc9e65e Birdtest: Refactore some tests
lib/bitops_test.c
lib/ip_test.c
lib/lists_test.c
lib/md5_test.c
2015-04-15 12:11:50 +02:00
Pavel Tvrdík
84dbe05f93 Birdtest: Extend IP addr funcs Tests 2015-04-13 10:59:20 +02:00
Pavel Tvrdík
db781b9004 Birdtest: Rewrite MD5 unit test 2015-04-13 10:57:47 +02:00
Pavel Tvrdík
a84b9c62d1 Birdtest: Add bt_assert_fn_in_*
- Improved test output formating: aligned, colored [ OK ] / [FAIL]
- A failed assert will not interupt the whole test suite
- bt_assert_fn_in_* are macros for testing input and output from the some
  function
2015-04-13 10:52:21 +02:00
Pavel Tvrdík
947018a7ef Birdtest: bt_test_case() -> bt_test_suite() 2015-04-13 10:42:10 +02:00
Pavel Tvrdík
9a49b70d1b Birdtest: Add IP addr funcs Tests (not complete) 2015-04-03 12:55:36 +02:00
Pavel Tvrdík
89ee134e2f Birdtest: Add Hash Tests 2015-04-03 12:54:54 +02:00
Pavel Tvrdík
83131f3fa5 Birdtest: Add Event Processing Tests
Add test/birdtest_support.h for provisional hack a build system
2015-04-03 12:52:44 +02:00
Pavel Tvrdík
e331e3635e Birdtest: Small improve in checksum test 2015-04-03 12:51:05 +02:00
Pavel Tvrdík
a35f717f0f lib/ip.c: add parenthesis for better readability 2015-04-03 12:49:21 +02:00
Pavel Tvrdík
e7bb2daf1f Birdtest: improve bt_check macro
Now dat for testing can be defined somelike this:

  struct in_out_data_ {
    char *in;
    u32 out;
  } in_out_data[] = {
      {
	  .in  = "192.168.1.128",
	  .out = build_ip4(192, 168, 1, 128),
      },
      {
	  .in  = "255.255.255.255",
	  .out = build_ip4(255, 255, 255, 255),
      },
      ...
  };

  bt_check(ip4_pton_, in_out_data, "%s", "0x%08X");
2015-04-03 12:46:04 +02:00
Pavel Tvrdík
d73e21e611 Birdtest: IP One-Complement Checksum Tests 2015-03-30 18:54:09 +02:00
Pavel Tvrdík
7379684211 Birdtest: small fix in md5_test 2015-03-30 18:52:58 +02:00
Pavel Tvrdík
3bbe27472c Birdtest: Add test for lib/bitops.c 2015-03-27 14:10:28 +01:00
Pavel Tvrdík
733088e798 Birdtest: Add test for lib/buffer_test.c 2015-03-27 14:10:00 +01:00
Pavel Tvrdík
c19954e74d Birdtest: Add test for lib/md5.c 2015-03-27 14:09:27 +01:00
Pavel Tvrdík
3c2ac3887e Birdtest: Refactorize heap_test.c and lists_test.c 2015-03-27 14:08:39 +01:00
Pavel Tvrdík
f26cf70152 Birdtest: Refactore tests and build system
Rename directory:
  birdtest/* -> test/*

Rename Makefile rule:
  build-tests -> tests

Move run-all-test shell script from Makefile to stand-alone shell script

Simplify Makefile test build system
2015-03-23 17:40:13 +01:00
Pavel Tvrdík
99d14b1ab3 Add header wrap defines to lib/buffer.h 2015-03-19 18:42:33 +01:00
Pavel Tvrdík
a2cdd9532d Addition necessary includes in headers files 2015-03-17 12:39:10 +01:00
Pavel Tvrdík
53e27ec79d Separate a definition of NULL to standalone header
A lib/list.h had circular dependency through include nest/bird.h
  nest/bird.h requires lib/birdlib.h
  lib/birdlib.h requires timer.h
  timer.h requires lib/resource.h
  lib/resource.h requires lib/list.h
2015-03-17 12:31:14 +01:00
Pavel Tvrdík
e8b3845e86 Birdtest: Add default timeout and forking setting 2015-03-17 11:27:40 +01:00
Pavel Tvrdík
a8a67537ed Add unit tests for lib/lists.c datastructures 2015-03-13 18:37:21 +01:00
Pavel Tvrdík
5063d4f7a3 Add unit tests for lib/heap.h datastructures 2015-03-13 18:36:10 +01:00
Ondrej Zajicek
8bcb5fb1e8 Implement latency tracking, internal event log and watchdog 2015-03-02 09:41:14 +01:00
Ondrej Zajicek
4e63974471 Add minor comment 2015-02-24 16:19:14 +01:00
Ondrej Zajicek
9c89560e6c Use IP_PORTRANGE_HIGH for BFD where available 2015-02-22 20:14:14 +01:00
Pavel Tvrdík
6264aad16f Minor fixes 2015-02-21 20:11:02 +01:00
Pavel Tvrdik
85a3639d99 Better Clang compatibility 2015-02-21 20:07:17 +01:00
Pavel Tvrdik
e598853e68 Add const to a param msg at functions log_msg, log_rl, die, bug and debug 2015-02-21 19:32:57 +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
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
20e8d040b0 Fixes integer overflow in show memory command.
Thanks to Job Snijders for the bugreport.
2014-06-30 11:55:22 +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 Filip
7c4a800725 Fixed bug in unused function. 2014-04-14 12:28:30 +02: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
5c200e0a4d Merge branch 'add-path' 2014-02-06 20:15:05 +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
e7d2ac4401 Finishes add-path.
Fixes some bugs and uses generic hash implementation.
2013-12-01 13:49:42 +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
41f8bf57c4 Changes identifiers to avoid use of reserved ones. 2013-11-22 21:59:43 +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
0e175f9f0f Fixes some BFD bugs and makes logging thread-safe. 2013-10-05 20:12:28 +02:00
Ondrej Zajicek
b655596d1d Simplifies val_in_range().
Also fixes missing type check for element ~ set.
2013-10-02 11:42:46 +02:00
Ondrej Zajicek
6a8d3f1c1f BFD work in progress.
Now it compiles and mostly works.
2013-09-16 23:57:40 +02:00
Ondrej Zajicek
bf139664aa Initial BFD commit, work in progress. 2013-09-10 12:09:36 +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
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
c4b76d7b19 Rename sk_new() to avoid name collision with OpenSSL. 2012-07-18 19:35:30 +02:00
Ondrej Zajicek
fc06fb6244 Implements RDNSS and DNSSL support for RAdv. 2012-07-07 14:26:42 +02:00
Ondrej Zajicek
d494df63ac Some minor fixes. 2012-04-27 00:04:51 +02:00
Ondrej Filip
cca970666a Small typo in programmer's documentation. 2012-04-22 14:03:07 +02:00
Ondrej Zajicek
af582c4811 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.
2012-03-18 17:32:30 +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
eb1451a3a0 Better support for link-local addresses in IO code. 2012-01-08 15:27:04 +01:00
Ondrej Zajicek
a03ede6493 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.
2012-01-03 00:42:25 +01:00
Ondrej Zajicek
bf6d91dc4e Use undefined scope for undefined IPv6 addresses. 2011-09-24 11:06:42 +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
93e868c730 Implements Router Advertisement protocol. 2011-03-13 11:33:50 +01:00
Ondrej Zajicek
d5356072ac Fixes a bug in LSA update of large LSAs. 2010-11-04 17:22:43 +01:00
Ondrej Zajicek
0d1b3c4c0e Changes print-like filter commands to use a log instead of a stderr.
And extends the log subsystem to better handle that.
2010-09-20 13:01:01 +02:00
Ondrej Zajicek
dcc71a7fb7 Supports unique local unicast addresses. 2010-08-12 10:22:40 +02:00
Ondrej Zajicek
acb60628f5 Implements command that shows memory usage. 2010-06-02 22:20:40 +02:00
Ondrej Zajicek
ba32170657 Better support for /31 networks. 2010-04-28 00:39:57 +02:00
Ondrej Zajicek
c1b51598d4 Implements changes in checksum alg suggested by Joakim Tjernlund. 2010-04-25 19:13:49 +02:00
Ondrej Zajicek
54305181f6 Merge branch 'new' into socket2 2010-03-11 18:55:59 +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 Zajicek
a2ea1bac60 Moves errno.h include. 2010-02-11 21:19:20 +01:00
Ondrej Zajicek
353729f513 Temporary OSPF commit - socket changes. 2010-02-11 10:23:35 +01:00
Ondrej Zajicek
0741e68750 Socket table update. 2010-01-08 10:21:51 +01:00
Ondrej Zajicek
cf31112f0d Implements MRTdump feature. 2010-01-03 12:17:52 +01:00
Ondrej Zajicek
4ac7c8341c Use IPv6 checksums in OSPFv3. 2009-11-09 23:22:53 +01:00