1. 28 Nov, 2018 1 commit
    • 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
  2. 27 Jun, 2018 1 commit
  3. 07 Dec, 2017 1 commit
  4. 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
  5. 09 Mar, 2017 1 commit
  6. 09 Nov, 2016 1 commit
    • 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
  7. 12 Nov, 2015 1 commit
  8. 02 Dec, 2013 1 commit
  9. 27 Dec, 2012 1 commit
    • 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
  10. 23 Jan, 2012 1 commit
  11. 01 Jan, 2012 1 commit
  12. 12 Dec, 2011 1 commit
  13. 05 Apr, 2011 1 commit
  14. 28 Mar, 2011 1 commit
    • Ondřej Zajíček's avatar
      Minor changes in addresses. · 52a43ae3
      Ondřej Zajíček authored
      Mainly changes IA_UNNUMBERED to IA_PEER and adds IA_HOST. Also do not
      show broadcast addr in show interfaces. Nobody cares for that.
      52a43ae3
  15. 19 Nov, 2010 1 commit
  16. 11 Nov, 2010 2 commits
  17. 14 Mar, 2010 1 commit
  18. 11 Mar, 2010 1 commit
  19. 27 Feb, 2010 1 commit
    • 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
  20. 26 Feb, 2010 1 commit
    • 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
  21. 08 Sep, 2009 1 commit
  22. 29 May, 2009 1 commit
  23. 06 May, 2009 1 commit
    • 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
  24. 01 Jun, 2000 2 commits
  25. 27 Mar, 2000 1 commit
  26. 26 Mar, 2000 2 commits
  27. 01 Mar, 2000 2 commits
  28. 19 Jan, 2000 1 commit
  29. 16 Dec, 1999 1 commit
  30. 01 Dec, 1999 1 commit
  31. 25 Nov, 1999 1 commit
  32. 03 Aug, 1999 1 commit
    • 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
  33. 06 May, 1999 1 commit
    • 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
  34. 02 Mar, 1999 2 commits
    • 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
    • Martin Mareš's avatar
      Interface logic changes: · bcbd8cc3
      Martin Mareš authored
      o  Introduced IF_LINK_UP flag corresponding to real link state.
      o  Allowed addressless interfaces.
      o  IF_UP is now automatically calculated and set iff the interface
         is administratively up, has link up and has an IP address assigned.
         It may be IF_IGNORED, though (as in case of the loopback).
      o  Any changes which include up/down transition are considered small
         enough to not provoke artificial upping and downing of the interface.
      o  When an interface disappears (i.e., it wasn't seen in the last scan),
         we announce this change only once.
      o  IF_LOOPBACK implies IF_IGNORE.
      bcbd8cc3
  35. 13 Feb, 1999 1 commit