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
Ondrej Zajicek
3f22fa9e74
Merge branch 'dev' into ospf3
2009-11-09 22:54:39 +01: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
46eb80d5d5
Fixes headers for uintptr_t (and build on NetBSD).
2009-09-17 17:52:36 +02:00
Ondrej Zajicek
be86240662
Temporary OSPFv3 development commit.
...
Finally, it is working.
2009-09-08 13:45:02 +02:00
Ondrej Zajicek
daeeb8e982
Clear memory allocated by ralloc().
...
This also fixes bug that timer->recurrent was not cleared
in tm_new() and unexpected recurrence of startup timer
in BGP confused state machine and caused crash.
2009-09-04 11:24:08 +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
54d70d3ebb
Fixes compiler warning in OFFSETOF().
2009-07-23 22:21:17 +02:00
Ondrej Zajicek
2f6483cd31
Adds %R printf directive for Router ID.
2009-07-23 16:06:25 +02:00
Ondrej Zajicek
d1abbeacfb
Fixes memory alignment problems on Sparc64.
...
Not quite standard construction, i should add
some autoconf macro.
Not tested yet.
2009-07-06 19:07:01 +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
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
c60cdd8c39
Cleanup changes
2009-03-31 21:17:00 +02:00
Ondrej Zajicek
b1a597e0c3
Reimplementation of prefix sets.
...
Prefix sets were broken beyond any repair and have to be reimplemented.
They are reimplemented using a trie with bitmasks in nodes.
There is also change in the interpretation of minus prefix pattern,
but the old interpretation was already inconsistent with
the documentation and broken.
There is also some bugfixes in filter code related to set variables.
2009-03-31 12:55:57 +02:00