Skip to content
Snippets Groups Projects
  1. May 11, 2020
  2. Apr 09, 2020
  3. Nov 28, 2018
    • Ondřej Zajíček's avatar
      Nest: Do not hard-reset interface when preferred address is changed · e2ae0869
      Ondřej Zajíček authored
      Modify protocols to use preferred address change notification instead on
      depending on hard-reset of interfaces in that case, and remove hard-reset
      in that case. This avoids issue when e.g. IPv6 protocol restarts
      interface when IPv4 preferred address changed (as hard-reset is
      unavoidable and common for whole iface).
      
      The patch also fixes a bug when removing last address does not send
      preferred address change notification.
      e2ae0869
  4. Jun 27, 2018
  5. Dec 07, 2017
  6. Sep 06, 2017
    • 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
  7. Mar 09, 2017
  8. Nov 09, 2016
    • Ondřej Zajíček's avatar
      Unit Testing for BIRD · 9b0a0ba9
      Ondřej Zajíček authored
       - Unit Testing Framework (BirdTest)
       - Integration of BirdTest into the BIRD build system
       - Tests for several BIRD modules
      
       Based on squashed Pavel Tvrdik's int-test branch, updated for
       current int-new branch.
      9b0a0ba9
  9. Nov 12, 2015
  10. Dec 02, 2013
  11. Dec 27, 2012
    • Ondřej Zajíček's avatar
      Implements interface masks for choosing router id. · 79b4e12e
      Ondřej Zajíček authored
      Router ID could be automatically determined based of subset of
      ifaces/addresses specified by 'router id from' option. The patch also
      does some minor changes related to router ID reconfiguration.
      
      Thanks to Alexander V. Chernikov for most of the work.
      79b4e12e
  12. Jan 23, 2012
  13. Jan 01, 2012
  14. Dec 12, 2011
  15. Apr 05, 2011
  16. Mar 28, 2011
  17. Nov 19, 2010
  18. Nov 11, 2010
  19. Mar 14, 2010
  20. Mar 11, 2010
  21. Feb 27, 2010
    • Ondřej Zajíček's avatar
      Better flushing of interfaces. · 53434e44
      Ondřej Zajíček authored
      When device protocol goes down, interfaces should be flushed
      asynchronously (in the same way like routes from protocols are flushed),
      when protocol goes to DOWN/HUNGRY.
      
      This fixes the problem with static routes staying in kernel routing
      table after BIRD shutdown.
      53434e44
  22. Feb 26, 2010
    • Ondřej Zajíček's avatar
      Many changes in (mainly) kernel syncers. · ff2857b0
      Ondřej Zajíček authored
      - 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
      ff2857b0
  23. Sep 08, 2009
  24. May 29, 2009
  25. May 06, 2009
    • Ondřej Zajíček's avatar
      A change in OSPF and RIP interface patterns. · 20e94fb8
      Ondřej Zajíček authored
      Allows to add more interface patterns to one common 'options'
      section like:
      
      interface "eth3", "eth4" { options common to eth3 and eth4 };
      
      Also removes undocumented and unnecessary ability to specify
      more interface patterns with different 'options' sections:
      
      interface "eth3" { options ... }, "eth4" { options ... };
      20e94fb8
  26. Jun 01, 2000
  27. Mar 27, 2000
  28. Mar 26, 2000
  29. Mar 01, 2000
  30. Jan 19, 2000
  31. Dec 16, 1999
  32. Dec 01, 1999
  33. Nov 25, 1999
  34. Aug 03, 1999
    • Martin Mareš's avatar
      Cleaned up handling of interface patterns: · 8edf2361
      Martin Mareš authored
         o  Parsing of interface patterns moved to generic code,
            introduced this_ipatt which works similarly to this_iface.
         o  Interface patterns now support selection by both interface
            names and primary IP addresses.
         o  Proto `direct' updated.
         o  RIP updated as well, it also seems the memory corruption
            bug there is gone.
      8edf2361
  35. May 06, 1999
    • Martin Mareš's avatar
      I rewrote the interface handling code, so that it supports multiple · 9a158361
      Martin Mareš authored
      addresses per interface (needed for example for IPv6 support).
      
      Visible changes:
      
      o  struct iface now contains a list of all interface addresses (represented
         by struct ifa), iface->addr points to the primary address (if any).
      o  Interface has IF_UP set iff it's up and it has a primary address.
      o  IF_UP is now independent on IF_IGNORED (i.e., you need to test IF_IGNORED
         in the protocols; I've added this, but please check).
      o  The if_notify_change hook has been simplified (only one interface pointer
         etc.).
      o  Introduced a ifa_notify_change hook. (For now, only the Direct protocol
         does use it -- it's wise to just listen to device routes in all other
         protocols.)
      o  Removed IF_CHANGE_FLAGS notifier flag (it was meaningless anyway).
      o  Updated all the code except netlink (I'll look at it tomorrow) to match
         the new semantics (please look at your code to ensure I did it right).
      
      Things to fix:
      
      o  Netlink.
      o  Make krt-iface interpret "eth0:1"-type aliases as secondary addresses.
      9a158361
  36. Mar 02, 1999
    • Martin Mareš's avatar
      o The if_change_too_big_p change was too high-spirited. Fixed. · e35ef181
      Martin Mareš authored
      o  Introduced if_find_by_index()
      o  Recognizing two types of interface updates: full update (starting with
         if_start_update(), ending with if_end_update(), guaranteed to see
         all existing interfaces) and a partial update (only if_update(),
         usually due to asynchronous interface notifications).
      e35ef181
Loading