1. 10 Dec, 2018 1 commit
    • Ondřej Zajíček's avatar
      OSPF: Fix reconfiguration of vlinks · 8c0b12ac
      Ondřej Zajíček authored
      Fix crash during reconfiguration of OSPF config with vlinks. When vlink
      is reconfigured, a generic iface-reconfiguration code is used, which in
      one place supposes that it is running on a regular iface.
      
      Thanks to Cybertinus for a bugreport.
      8c0b12ac
  2. 04 Dec, 2018 1 commit
  3. 20 Nov, 2018 1 commit
  4. 08 Nov, 2018 1 commit
    • Ondřej Zajíček's avatar
      Nest: Improve keeping track of IPv6 link-local addresses · 81489b79
      Ondřej Zajíček authored
      Most protocols in IPv6 mode use link-local source addresses and expect
      that there is one on each active interface. The old code depended on
      assumption that if there is some IPv6 address on iface, there is also an
      IPv6 link-local address on that iface (added by kernel when the iface
      went up). Unfortunately, that is not generally true, as a configured
      global address sometimes ceases to be tentative (finishes DOD) before
      a link-local address on the same iface. In such case a protocol iface
      (namely RAdv and Babel) is activated, but fails to found link-local
      address and stays in failed state.
      
      The patch fixes that by tracking 'primary' IPv6 link-local address,
      sending iface restart notifications when it changes and making
      protocols ignore iface-up notifications when no such address is
      selected for an iface.
      81489b79
  5. 25 Oct, 2018 1 commit
    • Ondřej Zajíček's avatar
      OSPF: Fix some trace messages · fff79b1c
      Ondřej Zajíček authored
      Missing argument in MTU change trace message can crash bird when MTU
      change happens and trace messages are active.
      
      Thanks to Alexander Velkov for the bugreport.
      fff79b1c
  6. 18 Sep, 2018 1 commit
    • Ondřej Zajíček's avatar
      The MRT protocol · c0fc3e67
      Ondřej Zajíček authored
      The new MRT protocol is responsible for periodic RIB table dumps in the
      MRT format (RFC 6396). Also the existing code for BGP4MP MRT dumps is
      refactored and splitted between BGP to MRT protocols, will be more
      integrated into MRT in the future.
      
      Example:
      
      protocol mrt {
      	table "*";
      	filename "%N_%F_%T.mrt";
      	period 60;
      }
      
      It is partially based on the old MRT code from Pavel Tvrdik.
      c0fc3e67
  7. 01 Aug, 2018 2 commits
  8. 17 Jul, 2018 2 commits
  9. 03 Jul, 2018 1 commit
    • Ondřej Zajíček's avatar
      Nest: Fix race condition during reconfiguration · cbfdf6ed
      Ondřej Zajíček authored
      If export filter is changed during reconfiguration and a route disappears
      between reconfiguration and refeed (e.g., if the route is a static route
      also removed during the reconfiguration), the route is not withdrawn.
      The patch fixes that by adding tx reconfiguration timestamp.
      cbfdf6ed
  10. 23 Apr, 2018 1 commit
  11. 07 Mar, 2018 1 commit
  12. 16 Jan, 2018 1 commit
  13. 14 Dec, 2017 1 commit
  14. 28 Nov, 2017 1 commit
    • Ondřej Zajíček's avatar
      Babel: Parse flags in Hello TLV · 1e8721e2
      Ondřej Zajíček authored
      RFC6126bis introduces a flags field for the Hello TLV, and adds a unicast flag
      that is used to signify that a hello was sent as unicast. This adds parsing of
      the flags field and ignores such unicast hellos, which preserves compatibility
      until we can add a proper implementation of the unicast hello mechanism.
      
      Thanks to Toke Hoiland-Jorgensen for the patch.
      1e8721e2
  15. 06 Oct, 2017 1 commit
  16. 04 Oct, 2017 1 commit
    • Michal 'vorner' Vaner's avatar
      RAdv: Support for more specific routes (RFC 4191) · 2a95e633
      Michal 'vorner' Vaner authored
      The patch implements Default Router Preferences and More-Specific Routes
      (RFC 4191) for RAdv protocol, allowing to announce router preference and
      more specific routes in router advertisements. Routes can be exported to
      RAdv like to regular routing protocols.
      
      Some cleanups, bugfixes and other changes done by Ondrej Zajicek.
      2a95e633
  17. 19 Sep, 2017 1 commit
    • Ondřej Zajíček's avatar
      BGP: Shutdown communication (RFC 8203) · cd1d9961
      Ondřej Zajíček authored
      The patch implements BGP Administrative Shutdown Communication (RFC 8203)
      allowing BGP operators to pass messages related to BGP session
      administrative shutdown/restart. It handles both transmit and receive of
      shutdown messages. Messages are logged and may be displayed by show
      protocol all command.
      
      Thanks to Job Snijders for the basic patch.
      cd1d9961
  18. 12 Sep, 2017 2 commits
  19. 06 Sep, 2017 1 commit
    • Ondřej Zajíček's avatar
      Basic VRF support · 943478b0
      Ondřej Zajíček authored
      Add basic VRF (virtual routing and forwarding) support. Protocols can be
      associated with VRFs, such protocols will be restricted to interfaces
      assigned to the VRF (as reported by Linux kernel) and will use sockets
      bound to the VRF. E.g., different multihop BGP instances can use diffent
      kernel routing tables to handle BGP TCP connections.
      
      The VRF support is preliminary, currently there are several limitations:
      
      - Recent Linux kernels (4.11) do not handle correctly sockets bound
      to interaces that are part of VRF, so most protocols other than multihop
      BGP do not work. This will be fixed by future kernel versions.
      
      - Neighbor cache ignores VRFs. Breaks config with the same prefix on
      local interfaces in different VRFs. Not much problem as single hop
      protocols do not work anyways.
      
      - Olock code ignores VRFs. Breaks config with multiple BGP peers with the
      same IP address in different VRFs.
      
      - Incoming BGP connections are not dispatched according to VRFs.
      Breaks config with multiple BGP peers with the same IP address in
      different VRFs. Perhaps we would need some kernel API to read VRF of
      incoming connection? Or probably use multiple listening sockets in
      int-new branch.
      
      - We should handle master VRF interface up/down events and perhaps
      disable associated protocols when VRF goes down. Or at least disable
      associated interfaces.
      
      - Also we should check if the master iface is really VRF iface and
      not some other kind of master iface.
      
      - BFD session request dispatch should be aware of VRFs.
      
      - Perhaps kernel protocol should read default kernel table ID from VRF
      iface so it is not necessary to configure it.
      
      - Perhaps we should have per-VRF default table.
      943478b0
  20. 30 Aug, 2017 4 commits
  21. 09 Aug, 2017 3 commits
  22. 14 Mar, 2017 2 commits
  23. 23 Feb, 2017 1 commit
  24. 19 Feb, 2017 1 commit
  25. 17 Feb, 2017 1 commit
    • Ondřej Zajíček's avatar
      Static: Fix bug in static route filter expressions · 30c734fc
      Ondřej Zajíček authored
      During reconfiguration, old and new filter expressions in static routes
      are compared using i_same() function. When filter expressions contain
      function calls, it is necessary that old filter expressions are the
      second argument in i_same(), as it is internally modified by i_same().
      Otherwise pointers to old (and freed) data appear in the config
      structure.
      
      Thanks to Lennert Buytenhek for tracking and reporting the bug.
      30c734fc
  26. 15 Dec, 2016 1 commit
    • Ondřej Zajíček's avatar
      OSPF: Fix ECMP external merging · 7d95c445
      Ondřej Zajíček authored
      The variable nfa is not cleaned before each loop iteration and can have
      a wrong value of nfa.nhs_reuse from the previous step.
      
      Thanks to Bernardo Figueiredo for the bugreport and analysis.
      7d95c445
  27. 13 Dec, 2016 1 commit
    • Ondřej Zajíček's avatar
      OSPF: Fix net-summary origination combined with stubnet option · 9e7d3a78
      Ondřej Zajíček authored
      Stubnet nodes in OSPF FIB were removed during rt_sync(), but the pointer
      remained in top_hash_entry.nf, so net-summary LSA origination was
      confused, reported 'LSA ID collision' and net-summary LSAs were not
      originated properly.
      
      Thanks to Naveen Chowdary Yerramneni for bugreport and analysis.
      9e7d3a78
  28. 25 Nov, 2016 1 commit
    • Ondřej Zajíček's avatar
      BGP: Fix memory leak in graceful restart code · ed1a908e
      Ondřej Zajíček authored
      Prefix and bucket tables are initialized when entering established state
      but not explicitly freed when leaving it (that is handled by protocol
      restart). With graceful restart, BGP may enter and leave established
      state multiple times without hard protocol restart causing memory leak.
      ed1a908e
  29. 15 Nov, 2016 1 commit
  30. 08 Nov, 2016 1 commit
  31. 02 Nov, 2016 1 commit
    • Ondřej Zajíček's avatar
      BFD: Authentication · e03dc6a9
      Ondřej Zajíček authored
      Implement BFD authentication (part of RFC 5880). Supports plaintext
      passwords and cryptographic MD5 / SHA-1 authentication.
      
      Based on former commit from Pavel Tvrdik
      e03dc6a9