1. 13 Apr, 2016 1 commit
    • Ondřej Zajíček's avatar
      BSD: Add the IPsec SA/SP database entries control · a7baa098
      Ondřej Zajíček authored
      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.
      a7baa098
  2. 07 Apr, 2016 1 commit
  3. 06 Apr, 2016 3 commits
    • Ondřej Zajíček's avatar
      IO: Avoid multiple event cycles in one loop cycle. · bd22d7f4
      Ondřej Zajíček authored
      Event cycle may took too much time and trigger next timer events, so
      avoid cycling between timer and event cycles inside the loop cycle.
      bd22d7f4
    • Ondřej Zajíček's avatar
      IO: Replace RX priority heuristic with explicit mark · 9e7b3ebd
      Ondřej Zajíček authored
      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.
      9e7b3ebd
    • Ondřej Zajíček's avatar
      KRT: Fix route learn scan when route changed · e86cfd41
      Ondřej Zajíček authored
      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.
      e86cfd41
  4. 30 Mar, 2016 1 commit
  5. 18 Mar, 2016 1 commit
  6. 15 Mar, 2016 1 commit
  7. 11 Mar, 2016 1 commit
  8. 11 Feb, 2016 1 commit
  9. 23 Nov, 2015 1 commit
    • Ondřej Zajíček's avatar
      Nest: Fix bug in device proto · 1e4891e4
      Ondřej Zajíček authored
      If an interface address notification is received during device protocol
      shutdown/restart, BIRD crashed.
      
      Thanks to Wei Huang for the bugreport.
      1e4891e4
  10. 11 Nov, 2015 1 commit
  11. 09 Nov, 2015 1 commit
    • Ondřej Zajíček's avatar
      Conf: Fixes bug in symbol lookup during reconfiguration · 9b9a7143
      Ondřej Zajíček authored
      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.
      9b9a7143
  12. 03 Nov, 2015 2 commits
  13. 08 Jun, 2015 3 commits
  14. 12 May, 2015 1 commit
    • Ondřej Zajíček's avatar
      KRT: Add support for plenty of kernel route metrics · 9fdf9d29
      Ondřej Zajíček authored
      Linux kernel route metrics (RTA_METRICS netlink route attribute) are
      represented and accessible as new route attributes:
      
      krt_mtu, krt_window, krt_rtt, krt_rttvar, krt_sstresh, krt_cwnd, krt_advmss,
      krt_reordering, krt_hoplimit, krt_initcwnd, krt_rto_min, krt_initrwnd,
      krt_quickack, krt_lock_mtu, krt_lock_window, krt_lock_rtt, krt_lock_rttvar,
      krt_lock_sstresh, krt_lock_cwnd, krt_lock_advmss, krt_lock_reordering,
      krt_lock_hoplimit, krt_lock_rto_min, krt_feature_ecn, krt_feature_allfrag
      9fdf9d29
  15. 25 Apr, 2015 2 commits
  16. 19 Apr, 2015 1 commit
  17. 29 Mar, 2015 1 commit
  18. 02 Mar, 2015 2 commits
  19. 22 Feb, 2015 1 commit
  20. 21 Feb, 2015 3 commits
  21. 03 Nov, 2014 1 commit
  22. 24 Oct, 2014 1 commit
  23. 02 Oct, 2014 3 commits
  24. 26 Jun, 2014 1 commit
  25. 29 May, 2014 1 commit
  26. 18 May, 2014 1 commit
  27. 20 Mar, 2014 1 commit
    • Ondřej Zajíček's avatar
      BGP graceful restart support. · 0c791f87
      Ondřej Zajíček authored
      Also significant core protocol state changes needed for that,
      global graceful restart recovery state and kernel proto support
      for recovery.
      0c791f87
  28. 07 Feb, 2014 1 commit
  29. 06 Feb, 2014 1 commit
    • Ondřej Zajíček's avatar
      Many changes in I/O and OSPF sockets and packet handling. · 48e5f32d
      Ondřej Zajíček authored
      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
      48e5f32d