1. 24 Jan, 2019 1 commit
  2. 12 Dec, 2018 1 commit
  3. 04 Dec, 2018 1 commit
    • Jan Maria Matejka's avatar
      Terminology cleanup: The import_control hook is now called preexport. · 14375237
      Jan Maria Matejka authored
      Once upon a time, far far away, there were the old Bird developers
      discussing what direction of route flow shall be called import and
      export. They decided to say "import to protocol" and "export to table"
      when speaking about a protocol. When speaking about a table, they
      spoke about "importing to table" and "exporting to protocol".
      
      The latter terminology was adopted in configuration, then also the
      bird CLI in commit ea2ae6dd started to use it (in year 2009). Now
      it's 2018 and the terminology is the latter. Import is from protocol to
      table, export is from table to protocol. Anyway, there was still an
      import_control hook which executed right before route export.
      
      One thing is funny. There are two commits in April 1999 with just two
      minutes between them. The older announces the final settlement
      on config terminology, the newer uses the other definition. Let's see
      their commit messages as the git-log tool shows them (the newer first):
      
          commit 9e0e485e
          Author: Martin Mares <mj@ucw.cz>
          Date:   Mon Apr 5 20:17:59 1999 +0000
      
      	Added some new protocol hooks (look at the comments for better explanation):
      
      		make_tmp_attrs          Convert inline attributes to ea_list
      		store_tmp_attrs         Convert ea_list to inline attributes
      		import_control          Pre-import decisions
      
          commit 5056c559
          Author: Martin Mares <mj@ucw.cz>
          Date:   Mon Apr 5 20:15:31 1999 +0000
      
      	Changed syntax of attaching filters to protocols to hopefully the final
      	version:
      
      		EXPORT <filter-spec>    for outbound routes (i.e., those announced
      					by BIRD to the rest of the world).
      		IMPORT <filter-spec>    for inbound routes (i.e., those imported
      					by BIRD from the rest of the world).
      
      	where <filter-spec> is one of:
      
      		ALL                     pass all routes
      		NONE                    drop all routes
      		FILTER <name>           use named filter
      		FILTER { <filter> }     use explicitly defined filter
      
      	For all protocols, the default is IMPORT ALL, EXPORT NONE. This includes
      	the kernel protocol, so that you need to add EXPORT ALL to get the previous
      	configuration of kernel syncer (as usually, see doc/bird.conf.example for
      	a bird.conf example :)).
      
      Let's say RIP to this almost 19-years-old inconsistency. For now, if you
      import a route, it is always from protocol to table. If you export a
      route, it is always from table to protocol.
      
      And they lived happily ever after.
      14375237
  4. 01 Oct, 2018 1 commit
  5. 18 Sep, 2018 1 commit
    • Jan Maria Matejka's avatar
      No more warnings ... · d4cebc6b
      Jan Maria Matejka authored
      no more warnings
      No more warnings over me
      And while it is being compiled all the log is black and white
      Release BIRD now and then let it flee
      
      (use the melody of well-known Oh Freedom!)
      d4cebc6b
  6. 03 Jul, 2018 1 commit
  7. 30 May, 2018 1 commit
    • Jan Maria Matejka's avatar
      Nest: Removing separate tmpa from route propagation · 13c0be19
      Jan Maria Matejka authored
      This is a fundamental change of an original (1999) concept of route
      processing inside BIRD. During import/export, there was a temporary
      ea_list created which was to be used instead of the another one inside
      the route itself.
      
      This led to some confusion, quirks, and strange filter code that handled
      extended route attributes. Dropping it now.
      
      The protocol interface has changed in an uniform way -- the
      `struct ea_list *attrs` argument has been removed from store_tmp_attrs(),
      import_control(), rt_notify() and get_route_info().
      13c0be19
  8. 29 May, 2018 1 commit
  9. 24 May, 2018 1 commit
    • Ondřej Zajíček's avatar
      Do not initialize route metrics in import_control hook · feae132e
      Ondřej Zajíček authored
      During route export, the receiving protocol often initialized route
      metrics to default value in its import_control hook before export filter
      was executed. This is inconsistent with the expectation that an export
      filter would process the same route as one in the routing table and it
      breaks setting these metrics before (e.g. for static routes directly in
      static protocol).
      
      The patch removes the initialization of route metrics in import_control
      hook, the default values are already handled in rt_notify hook called
      after export filters.
      
      The patch also changed the behavior of OSPF to keep metrics when a route
      is reannounced between OSPF instances (to be consistent with other
      protocols) and the behavior when both ospf_metric1 and ospf_metric2
      are specified (to have more expected behavior).
      feae132e
  10. 16 Dec, 2017 1 commit
  11. 07 Dec, 2017 3 commits
  12. 10 Oct, 2017 1 commit
  13. 22 Dec, 2016 1 commit
    • Jan Moskyto Matejka's avatar
      Merged multipath and single-path data structures. · 4e276a89
      Jan Moskyto Matejka authored
      Dropped struct mpnh and mpnh_*()
      Now struct nexthop exists, nexthop_*(), and also included struct nexthop
      into struct rta.
      
      Also converted RTD_DEVICE and RTD_ROUTER to RTD_UNICAST. If it is needed
      to distinguish between these two cases, RTD_DEVICE is equivalent to
      IPA_ZERO(a->nh.gw), RTD_ROUTER is then IPA_NONZERO(a->nh.gw).
      
      From now on, we also explicitely want C99 compatible compiler. We assume
      that this 20-year norm should be known almost everywhere.
      4e276a89
  14. 01 Feb, 2016 1 commit
  15. 29 Dec, 2015 1 commit
  16. 21 Dec, 2015 2 commits
  17. 20 Dec, 2015 1 commit
  18. 12 Nov, 2015 1 commit
  19. 05 Nov, 2015 1 commit
    • Ondřej Zajíček's avatar
      Initial commit on integrated BIRD · fe9f1a6d
      Ondřej Zajíček authored
      New data types net_addr and variants (in lib/net.h) describing
      network addresses (prefix/pxlen). Modifications of FIB structures
      to handle these data types and changing everything to use these
      data types instead of prefix/pxlen pairs where possible.
      
      The commit is WiP, some protocols are not yet updated (BGP, Kernel),
      and the code contains some temporary scaffolding.
      
      Comments are welcome.
      fe9f1a6d
  20. 20 Jul, 2015 1 commit
  21. 21 Feb, 2015 1 commit
  22. 03 Nov, 2014 1 commit
  23. 24 Oct, 2014 1 commit
  24. 21 Jul, 2014 1 commit
  25. 19 Jul, 2014 1 commit
  26. 18 Jul, 2014 1 commit
  27. 26 Jun, 2014 1 commit
  28. 23 Apr, 2014 1 commit
    • Ondřej Zajíček's avatar
      Extends multipath support for OSPF. · 145368f5
      Ondřej Zajíček authored
      Fixes cases where the same network or external route are propagated by
      several OSPF routes and some other corner cases in next hop construction
      and ECMP. Allows to specify whether external routes should be merged.
      
      Thanks to Peter Christensen for the original patch.
      145368f5
  29. 06 Feb, 2014 2 commits
    • Ondřej Zajíček's avatar
      Fixes crash when state of disabled OSPF protocol is queried. · 10c2e1e0
      Ondřej Zajíček authored
      Thanks to Ondrej Caletka for the bugreport.
      10c2e1e0
    • 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
  30. 11 Jun, 2013 1 commit
  31. 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
  32. 31 Oct, 2012 1 commit
  33. 29 Oct, 2012 1 commit
  34. 14 Aug, 2012 1 commit
    • Ondřej Zajíček's avatar
      Implements ADD-PATH extension for BGP. · 094d2bdb
      Ondřej Zajíček authored
      Allows to send and receive multiple routes for one network by one BGP
      session. Also contains necessary core changes to support this (routing
      tables accepting several routes for one network from one protocol).
      It needs some more cleanup before merging to the master branch.
      094d2bdb
  35. 26 Jul, 2012 1 commit
  36. 27 Apr, 2012 1 commit