summaryrefslogtreecommitdiff
path: root/sysdep
AgeCommit message (Collapse)Author
2016-05-12Merge remote-tracking branch 'origin/master' into int-newOndrej Zajicek (work)
2016-05-12Miscellaneous minor fixesOndrej Zajicek (work)
2016-05-12Prog Doc: Complete several missing parametersPavel Tvrdik
2016-05-10netlink: update struct msghdrStijn Tintel
The netlink code assumes an order for the members of struct msghdr. This breaks recvmsg and sendmsg with musl libc on mips64. Fix this by using designated initializers instead. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2016-05-10Merge branch 'int-new' into int-new-mergedJan Moskyto Matejka
2016-05-10Merge remote-tracking branch 'origin/rte-update' into int-newJan Moskyto Matejka
2016-05-10Portability: Fixed C extension error generated by CLang.Jan Moskyto Matejka
sysdep/linux/netlink.c:921:10: error: fields must have a constant size: 'variable length array in structure' extension will never be supported char buf[128 + KRT_METRICS_MAX*8 + nh_bufsize(a->nexthops)]; ^ 1 error generated.
2016-05-10Build system reworked to one global Makefile with includes and no nestingJan Moskyto Matejka
Also removed the lib-dir merging with sysdep. Updated #include's accordingly. Fixed make doc on recent Debian together with moving generated doc into objdir. Moved Makefile.in into root dir Retired all.o and birdlib.a Linking the final binaries directly from all the .o files.
2016-05-03Initialize variable ifr in sk_setup()Pavel Tvrdik
==00:00:00:02.831 2468== Syscall param socketcall.setsockopt(optval) points to uninitialised byte(s) ==00:00:00:02.831 2468== at 0x513BDEA: setsockopt (in /usr/lib/libc-2.23.so) ==00:00:00:02.831 2468== by 0x45C7AF: sk_setup (io.c:1216) ==00:00:00:02.831 2468== by 0x45CDFF: sk_open (io.c:1417) ==00:00:00:02.831 2468== by 0x44B562: rip_open_socket (packets.c:740) ==00:00:00:02.831 2468== by 0x4481A7: rip_iface_locked (rip.c:616) ==00:00:00:02.831 2468== by 0x4133E4: olock_run_event (locks.c:177) ==00:00:00:02.831 2468== by 0x45A6DE: ev_run (event.c:85) ==00:00:00:02.831 2468== by 0x45A7AD: ev_run_list (event.c:142) ==00:00:00:02.831 2468== by 0x45E0FC: io_loop (io.c:2066) ==00:00:00:02.831 2468== by 0x463B56: main (main.c:845) ==00:00:00:02.831 2468== Address 0xffefffd24 is on thread 1's stack ==00:00:00:02.831 2468== in frame #1, created by sk_setup (io.c:1188) ==00:00:00:02.831 2468== Uninitialised value was created by a stack allocation ==00:00:00:02.831 2468== at 0x45C6BB: sk_setup (io.c:1188)
2016-04-29NEWS and version updateOndrej Zajicek (work)
2016-04-28Add the Babel routing protocol (RFC 6126)Ondrej Zajicek (work)
This patch implements the IPv6 subset of the Babel routing protocol. Based on the patch from Toke Hoiland-Jorgensen, with some heavy modifications and bugfixes. Thanks to Toke Hoiland-Jorgensen for the original patch.
2016-04-13BSD: Add the IPsec SA/SP database entries controlOndrej Zajicek (work)
Add code for manipulation with TCP-MD5 keys in the IPsec SA/SP database at FreeBSD systems. Now, BGP MD5 authentication (RFC 2385) keys are handled automatically on both Linux and FreeBSD. Based on patches from Pavel Tvrdik.
2016-04-08Route update: move table lookup from protocols into rte_update2().Jan Moskyto Matejka
Many protocols do almost the same when creating a rte_update request before calling rte_update2(). This commit should simplify the protocol side of the route-creation routine.
2016-04-08Merge branch 'master' into int-new-channelsJan Moskyto Matejka
2016-04-07Main: Add local optionOndrej Zajicek (work)
Add option that changes default paths for config file and control socket to the current working directory.
2016-04-07Channelize: rt_notify arg conversion table -> channelJan Moskyto Matejka
2016-04-06IO: Avoid multiple event cycles in one loop cycle.Ondrej Zajicek (work)
Event cycle may took too much time and trigger next timer events, so avoid cycling between timer and event cycles inside the loop cycle.
2016-04-06IO: Replace RX priority heuristic with explicit markOndrej Zajicek (work)
In BIRD, RX has lower priority than TX with the exception of RX from control socket. The patch replaces heuristic based on socket type with explicit mark and uses it for both control socket and BGP session waiting to be established. This should avoid an issue when during heavy load, outgoing connection could connect (TX event), send open, but then failed to receive OPEN / establish in time, not sending notifications between and therefore got hold timer expired error from the neighbor immediately after it finally established the connection.
2016-04-06KRT: Fix route learn scan when route changedOndrej Zajicek (work)
When a kernel route changed, function krt_learn_scan() noticed that and replaced the route in internal kernel FIB, but after that, function krt_learn_prune() failed to propagate the new route to the nest, because it confused the new route with the (removed) old best route and decided that the best route did not changed. Wow, the original code (and the bug) is almost 17 years old.
2016-03-30IO/Poll: fix mistaken variable mergeJan Moskyto Matejka
The events variable is used in the short loop decision. The reasons are not much clear, keeping this to keep the former behaviour.
2016-03-18Unix: Substituted select -> poll also in congestion checkerJan Moskyto Matejka
It does strange things when even one fd larger than FD_SETSIZE is passed to select().
2016-03-15Poll: Prevent the improbable case of EAGAIN after POLLINJan Moskyto Matejka
2016-03-11Unix: Rework of select-loop to poll-loopJan Moskyto Matejka
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-02-11Unix: Fix bug in syslog name handlingOndrej Zajicek (work)
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-02-01BSD: compilation error fixJan Moskyto Matejka
2016-02-01Channels - explicit links between protocols and tablesOndrej Zajicek (work)
The patch adds support for channels, structures connecting protocols and tables and handling most interactions between them. The documentation is missing yet.
2016-01-27io.c: fix reads from uninitialized memoryPavel Tvrdík
2016-01-21BSD: fix no-return warningJan Moskyto Matejka
2016-01-21BSD: Explicitly dropping routes with mismatched AF's.Jan Moskyto Matejka
2016-01-20Add forgotten semicolonPavel Tvrdík
2016-01-20BSD integration fixesJan Moskyto Matejka
2016-01-11Hidden AF_INET* inside sysdep/Jan Moskyto Matejka
2015-12-29Explicit ip4_addr / ip6_addr printf supportOndrej Zajicek (work)
2015-12-29Netlink: Removed forgotten if-stub (caused strange errors)Jan Moskyto Matejka
2015-12-24Follow-up work on integrationOndrej Zajicek (work)
2015-12-22Better fix of missing AF_INET6? definition in lib/socket.hJan Moskyto Matejka
Moved the code to sysdep.
2015-12-21Modify FIB_WALK() and FIB_ITERATE() to work with new FIB codeOndrej Zajicek (work)
Returned user data pointers have offset relative to fib_node.
2015-12-21Follow-up work on integrationOndrej Zajicek (work)
Contains some patches from Jan Moskyto Matejka
2015-12-21Follow-up work on integrationOndrej Zajicek (work)
2015-12-20Delete ipv6 option from configureOndrej Zajicek (work)
2015-12-20KRT: Integration of IPv4/IPv6 in sysdep/linuxOndrej Zajicek (work)
2015-12-20ROA code switchoffJan Moskyto Matejka
2015-12-19Removed BITS_PER_IP_ADDRESS, MAX_PREFIX_LENGTH, BIRD_AFJan Moskyto Matejka
Explicit setting of AF_INET(6|) in IP socket creation. BFD set to listen on v6, without setting the V6ONLY flag to catch both v4 and v6 traffic. Squashing and minor changes by Ondrej Santiago Zajicek
2015-12-18Netlink and BSD: Integrating IPv4 and IPv6Jan Moskyto Matejka
Squashing and minor changes by Ondrej Santiago Zajicek
2015-11-25Merge branch 'master' into int-newOndrej Zajicek (work)
2015-11-24Netlink: attribute validation before parsingJan Moskyto Matejka
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-23Nest: Fix bug in device protoOndrej Zajicek (work)
If an interface address notification is received during device protocol shutdown/restart, BIRD crashed. Thanks to Wei Huang for the bugreport.
2015-11-12Follow-up commit on integrated BIRDOndrej Zajicek (work)
Use net_addr for interface address prefixes, support net_addr in configuration parser.
2015-11-11Fix compiling with --enable-debug optionPavel Tvrdík
2015-11-11Netlink: Allow more than 256 routing tables.Jan Moskyto Matejka
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.