0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-24 10:41:54 +00:00
Commit Graph

2697 Commits

Author SHA1 Message Date
Jan Moskyto Matejka
95c40c335e IO/Poll: fix mistaken variable merge
The events variable is used in the short loop decision. The reasons are
not much clear, keeping this to keep the former behaviour.
2016-05-03 09:25:37 +02:00
Jan Moskyto Matejka
606e779dd6 Birdlib: Modify lists to avoid problems with pointer aliasing rules
The old linked list implementation used some wild typecasts and required
GCC option -fno-strict-aliasing to work properly. This patch fixes that.
However, we still keep the option due to other potential problems.

(Commited by Ondrej Santiago Zajicek)
2016-05-03 09:25:37 +02:00
Ondrej Zajicek (work)
6e4bca02cf Birdlib: Do cleanups after remove/free
To avoid byzantine behavior in case of some errors, linked lists are
cleared after rem_node() and resource headers are cleared after rfree().
2016-05-03 09:25:37 +02:00
Ondrej Zajicek (work)
34a90ca151 OSPF: Fix bogus LSA ID collisions between received and originated LSAs
After restart, LSAs locally originated by the previous instance are
received from neighbors. They are installed to LSA db and flushed. If
export of a route triggers origination of a new external LSA before flush
of the received one is complete, the check in ospf_originate_lsa() causes
origination to fail (because en->nf is NULL for the old LSA and non-NULL
for the new LSA). The patch fixes this by updating the en->nf for LSAs
being flushed (as is already done for empty ones). Generally, en->nf
field deserves some better description in the code.

Thanks to Jigar Mehta for analyzing the problem.
2016-05-03 09:25:37 +02:00
Ondrej Zajicek (work)
90d303e21a Minor changes in documentation 2016-05-03 09:25:37 +02:00
Ondrej Zajicek (work)
c862761b8b OSPF: Fix reading from freed memory
Thanks to Pavel Tvrdik for noticing it.
2016-05-03 09:25:37 +02:00
Jan Moskyto Matejka
7b02a9039e Unix: Substituted select -> poll also in congestion checker
It does strange things when even one fd larger than FD_SETSIZE is
passed to select().
2016-05-03 09:25:37 +02:00
Pavel Tvrdík
160457b853 RIP: fix typo in configuration at rx length opt 2016-05-03 09:25:37 +02:00
Pavel Tvrdík
2fdba95fa7 BGP: Add documentaion for extended messages 2016-05-03 09:25:37 +02:00
Jan Moskyto Matejka
b9bf5fad7c Poll: Prevent the improbable case of EAGAIN after POLLIN 2016-05-03 09:25:37 +02:00
Jan Moskyto Matejka
a23f764517 Unix: Rework of select-loop to poll-loop
This should lift the limit of FD_SETSIZE and allow more than 1024 fd's.
FD_SETSIZE limit doesn't matter now when creating new sockets.
2016-05-03 09:25:37 +02:00
Ondrej Zajicek (work)
8a4bce3f4f OSPF: Multicast ability is irrelevant for stub interfaces 2016-05-03 09:25:37 +02:00
Jan Moskyto Matejka
dc5d351546 All the current pthread implementations are OK and working with us.
No more need to disable pthread for specific BSD's.
2016-05-03 09:25:37 +02:00
Ondrej Zajicek (work)
8e604f596f Filter: Implement last_nonaggregated operator on bgp_path 2016-05-03 09:25:37 +02:00
Ondrej Zajicek (work)
99ff5a1b7d Unix: Fix bug in syslog name handling
Pointer to current_log_name has to be changed even if the name is the
same, because the old one will be invalid/freed after reconfiguration.
2016-05-03 09:25:37 +02:00
Ondrej Zajicek (work)
702e2bcef2 BGP: Fix bug in incoming connection handling
When a BGP session was established by an outgoing connection with
Graceful Restart behavior negotiated, a pending incoming connection in
OpenSent state, and another incoming connection was received, then the
outgoing connection (and whole BGP session) was closed, but the old
incoming connection was just overwritten by the new one. That later
caused a crash when the hold timer from the old connection fired.
2016-05-03 09:25:37 +02:00
Ondrej Zajicek (work)
21745ff00e BGP: Update capability number from IANA for extended messages 2016-05-03 09:25:37 +02:00
Pavel Tvrdík
71299a594d MRT Table Dump: draft-petrie-grow-mrt-add-paths
Add support for MRT Table Dump draft-petrie-grow-mrt-add-paths
2016-01-06 14:41:48 +01:00
Pavel Tvrdík
696acee0c7 MRT Dump: Support for draft-petrie-grow-mrt-add-paths
Thanks to Colin Petrie for patch.
2016-01-06 14:41:42 +01:00
Pavel Tvrdík
5125741512 MRT Table Dump: Fix size of AS_PATH in BGP Attributes
All AS numbers in the AS_PATH attribute in RIB Entries MUST be encoded as 4-byte AS numbers.
 -- RFC 6396

Thanks to Colin Petrie for noticing us about this bug in BIRD!
2016-01-06 13:43:26 +01:00
Pavel Tvrdík
b89e7aee8a Add the BIRD's documentation for MRT Table Dump (RFC 6396) feature 2016-01-06 13:28:55 +01:00
Pavel Tvrdík
6702b7ad74 Integrate MRT Table Dump (RFC 6396) into BIRD
Asynchronous periodic mrt table dumps of routes configuration in bird.conf:
mrtdump routes {
  [ filename "<format>"; ]
  [ table <name>|"<wildcard name>"; ]
  [ period <num>; ]
  [ filter <filter>|where <condition>; ]
}

Synchronous mrt table dumps of routes in BIRD client:
mrtdump routes [table <name>|"<wildcard name>"] [to "<filename format>"] [filter <filter>|where <condition>]
2016-01-06 13:28:46 +01:00
Pavel Tvrdík
33b4f40acc MD5: Mormalize naming style 2015-11-24 16:01:48 +01:00
Ondrej Zajicek (work)
90f78507f4 Merge branch 'master' into rip-new 2015-11-24 15:21:11 +01:00
Jan Moskyto Matejka
ad27615760 Netlink: attribute validation before parsing
Wanted netlink attributes are defined in a table, specifying
their size and neediness. Removing the long conditions that did the
validation before.

Also parsing IPv4 and IPv6 versions regardless on the IPV6 macro.
2015-11-24 14:30:20 +01:00
Ondrej Zajicek (work)
e422ca0f29 Some consts for function arguments
Patch from Pavel Tvrdik
2015-11-24 13:52:26 +01:00
Ondrej Zajicek (work)
5126380bea Minor changes to SHA hash functions 2015-11-24 13:47:28 +01:00
Ondrej Zajicek (work)
12d752ef24 Merge commit 'origin/crypto-hash^' 2015-11-23 11:32:18 +01:00
Ondrej Zajicek (work)
1e4891e48e Nest: Fix bug in device proto
If an interface address notification is received during device protocol
shutdown/restart, BIRD crashed.

Thanks to Wei Huang for the bugreport.
2015-11-23 11:13:40 +01:00
Pavel Tvrdík
f312a837e9 Add SHA-384/512 and HMAC-SHA-384/512 crypto hash 2015-11-13 19:34:12 +01:00
Pavel Tvrdík
4035e0e79c Add SHA-224/256 and HMAC-SHA-224/256 crypto hash 2015-11-13 19:34:02 +01:00
Pavel Tvrdík
5d0c36f1da Add SHA1 and SHA1-HMAC crypto hash 2015-11-13 19:33:48 +01:00
Pavel Tvrdík
75ff08022e Add get_u64() and put_u64() into lib/unaligned.h 2015-11-13 19:31:19 +01:00
Pavel Tvrdík
fce764f90e Fix compiling with --enable-debug option 2015-11-11 11:46:38 +01:00
Jan Moskyto Matejka
9ddbfbddf8 Netlink: Allow more than 256 routing tables.
Since 2.6.19, the netlink API defines RTA_TABLE routing attribute to
allow 32-bit routing table IDs. Using this attribute to index routing
tables at Linux, instead of 8-bit rtm_table field.
2015-11-11 11:40:49 +01:00
Ondrej Zajicek (work)
86b4e17001 Nest: Fixes bug in missing cleanup during table removal
When a table is removed during reconfiguration, a reference was not
cleared in the old configuration, which breaks undo.
2015-11-09 01:01:12 +01:00
Ondrej Zajicek (work)
9b9a7143c4 Conf: Fixes bug in symbol lookup during reconfiguration
Symbol lookup by cf_find_symbol() not only did the lookup but also added
new void symbols allocated from cfg_mem linpool, which gets broken when
lookups are done outside of config parsing, which may lead to crashes
during reconfiguration.

The patch separates lookup-only cf_find_symbol() and config-modifying
cf_get_symbol(), while the later is called only during parsing. Also
new_config and cfg_mem global variables are NULLed outside of parsing.
2015-11-09 00:42:02 +01:00
Ondrej Zajicek (work)
3aed0a6ff7 IO: Fix the previous bugfix
I should check it after making some trivial changes. The original patch
from Alexander has it right.
2015-11-03 11:27:27 +01:00
Ondrej Zajicek (work)
338f85ca77 IO: Handle fd values too big for select()
If the number of sockets is too much for select(), we should at least
handle it with proper error messages and reject new sockets instead of
breaking the event loop.

Thanks to Alexander V. Chernikov for the patch.
2015-11-03 11:08:57 +01:00
Ondrej Zajicek (work)
8eb8e546dc Merge branch 'master' into rip-new 2015-10-17 14:44:34 +02:00
Ondrej Zajicek (work)
acb04cfdc5 Minor changes 2015-10-17 14:43:37 +02:00
Ondrej Zajicek (work)
8465dccb06 Major RIP redesign
The new RIP implementation fixes plenty of old bugs and also adds support
for many new features: ECMP support, link state support, BFD support,
configurable split horizon and more. Most options are now per-interface.
2015-10-05 13:18:10 +02:00
Ondrej Zajicek
b5e76398de OSPF: Fixes some issues with link detection
Thanks to Bernardo Figueiredo and Israel G. Lugo for the bugreport.
2015-08-19 11:16:23 +02:00
Ondrej Zajicek
c7b99a932c Nest: Fixes one of previous commit 2015-07-28 15:08:21 +02:00
Ondrej Zajicek
dbf4c0cb25 Minor update to test commits 2015-07-28 12:56:51 +02:00
Ondrej Zajicek
641172c6e5 Netlink: Fixes uninitialized variable
Thanks to Pavel Tvrdik for the bugfix
2015-07-28 12:36:03 +02:00
Ondrej Zajicek
538264cf1a Static: Support for BFD controlled static routes 2015-07-24 18:02:07 +02:00
Ondrej Zajicek
1321e12ac4 Static: Allows to specify attributes for static routes
The patch adds suport for specifying route attributes together with
static routes, e.g.:

 route 10.1.1.0/24 via 10.0.0.1 { krt_advmss = 1200; ospf_metric1 = 100; };
2015-07-20 17:11:10 +02:00
Ondrej Zajicek
ffa398b8d8 BFD: Fixes crash after socket error
Thanks to Thomas King for the bugreport.
2015-07-19 11:39:24 +02:00
Ondrej Zajicek
a8ad8fd649 Simplify build messages
Thanks to Christian Tacke for the original patch.
2015-07-18 23:15:04 +02:00