summaryrefslogtreecommitdiff
path: root/sysdep/unix/io.c
AgeCommit message (Collapse)Author
2014-06-26Ensures that msg_controllen includes last padding.Ondrej Zajicek
Although RFC 3542 allows both cases, Theo de Raadt thinks he knows better, and msg_controllen without last padding fails on OpenBSD. Thanks to Job Snijders for the bugreport.
2014-05-18IPv4/IPv6 integrated socket code.Ondrej Zajicek
2014-02-06Many changes in I/O and OSPF sockets and packet handling.Ondrej Zajicek
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
2013-11-22Merge commit 'origin/bfd'Ondrej Zajicek
2013-11-22Fixes problem with RIP on multiple ifaces on BSD.Ondrej Zajicek
RIP sockets for multiple ifaces collided, because we cannot bind to a specific iface on BSD. Workarounded by SO_REUSEPORT. Thanks to Eugene M. Zheganin for the bugreport.
2013-11-19BFD protocol, ready for release.Ondrej Zajicek
Supports OSPF and BGP and also statically configured sessions.
2013-10-05Fixes some BFD bugs and makes logging thread-safe.Ondrej Zajicek
2013-09-16BFD work in progress.Ondrej Zajicek
Now it compiles and mostly works.
2013-09-10Initial BFD commit, work in progress.Ondrej Zajicek
2013-07-24Fixes header file name.Ondrej Zajicek
Thanks to Fritz Grimpen for the patch.
2013-07-11Some fixes for TTL security.Ondrej Zajicek
2013-06-25Implements TTL security for OSPF and RIP.Ondrej Zajicek
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-24Better packet priority and traffic class handling.Ondrej Zajicek
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.
2012-12-26Implements undo command and optional timeout for configurationOndrej Zajicek
Several new configure command variants: configure undo - undo last reconfiguration configure timeout - configure with scheduled undo if not confirmed in timeout configure confirm - confirm last configuration configure check - just parse and validate config file
2012-07-18Rename sk_new() to avoid name collision with OpenSSL.Ondrej Zajicek
2012-04-30Cleanup in sysdep KRT code, part 2.Ondrej Zajicek
Remove support for historic Linux kernels, merge krt-iface, krt-set and krt-scan stub headers.
2012-01-09Some minor fixes.Ondrej Zajicek
2012-01-08Better support for link-local addresses in IO code.Ondrej Zajicek
2011-08-16The generalized TTL security mechanism (RFC 5082) support.Ondrej Zajicek
Thanks to Alexander V. Chernikov for the patch.
2011-03-23Added header file.Ondrej Zajicek
2011-03-13Implements Router Advertisement protocol.Ondrej Zajicek
2010-08-03Ignore warning when BGP peer is unreachable.Ondrej Zajicek
2010-07-12Implements proper multihop BGP.Ondrej Zajicek
Also does some incompatible changes to config file syntax, like removing 'via IP' from multihop option.
2010-06-02Implements command that shows memory usage.Ondrej Zajicek
2010-05-21Fixes bug on Linux 2.4.x - kernel sync does not work until restart of kernel ↵Ondrej Zajicek
protocol. Which was, actually, a bug in timers - on older kernel, monotonic timer is missing and the other implementation started with now == 0, which collides with usage 0 as a special value in timer->expires field.
2010-05-14Handle EPIPE as a common connection close event.Ondrej Zajicek
2010-04-14Fixes build on newer Linux systems.Ondrej Zajicek
2010-04-14Fixes IPv6 build on older systems.Ondrej Zajicek
2010-04-08Minor changes.Ondrej Zajicek
2010-04-03Fixes missing header.Ondrej Zajicek
2010-04-02Use SO_BINDTODEVICE also in Linux/IPv6.Ondrej Zajicek
2010-04-02Minor fixes to previous patches.Ondrej Zajicek
2010-03-26Merge branch 'socket2' into newOndrej Zajicek
2010-03-17Adds check for no protocol and some minor CLI fixes.Ondrej Zajicek
- Adds check to deny config file with no specified protocol to prevent loading of empty config file. - Moves CLI init before config parse to receive immediate error message when cannot open control socket. - Fixes socket name path check and other error handling in CLI init.
2010-03-11Merge branch 'new' into socket2Ondrej Zajicek
2010-02-26Many changes in (mainly) kernel syncers.Ondrej Zajicek
- 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-21Fix configure to enable warnings and fix most of them.Ondrej Zajicek
2010-02-11Fixes a crash caused by missing error hook on BGP listening socket.Ondrej Zajicek
Error happened when too many BGP connections arrived in one moment (ECONNABORTED).
2010-02-11Temporary OSPF commit - socket changes.Ondrej Zajicek
2010-02-03Makes date/time formats configurable.Ondrej Zajicek
2010-01-06BSD compatibility fix.Ondrej Zajicek
2010-01-03Implements MRTdump feature.Ondrej Zajicek
2009-11-09Use IPv6 checksums in OSPFv3.Ondrej Zajicek
2009-11-09Merge branch 'dev' into ospf3Ondrej Zajicek
2009-10-11Workaround for stupid callback scheduler.Ondrej Zajicek
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-09-04Clear memory allocated by ralloc().Ondrej Zajicek
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-04Temporary OSPFv3 development commit (changing multicast support).Ondrej Zajicek
2009-08-27Temporary OSPFv3 development commitOndrej Zajicek
2009-06-26Fixes bug on TCP passive socket binding on BSD.Ondrej Zajicek
BGP on BSD was bound to random port. I am surprised that nobody noticed it already.
2009-06-25Minor bugfix.Ondrej Zajicek