1. 10 Sep, 2019 1 commit
  2. 21 Aug, 2019 1 commit
  3. 31 Jul, 2019 2 commits
  4. 30 Jul, 2019 1 commit
  5. 23 Jul, 2019 1 commit
  6. 15 Jul, 2019 2 commits
  7. 10 Jul, 2019 1 commit
  8. 03 Jul, 2019 1 commit
  9. 02 Jul, 2019 2 commits
  10. 30 Jun, 2019 1 commit
    • Ondřej Zajíček's avatar
      Nest: Add command to request graceful restart · 8a68316e
      Ondřej Zajíček authored
      When 'graceful down' command is entered, protocols are shut down
      with regard to graceful restart. Namely Kernel protocol does
      not remove routes and BGP protocol does not send notification,
      just closes the connection.
      8a68316e
  11. 12 Jun, 2019 1 commit
  12. 30 Apr, 2019 1 commit
    • Ondřej Zajíček's avatar
      BGP: Dynamic BGP · e0835db4
      Ondřej Zajíček authored
      Support for dynamically spawning BGP protocols for incoming connections.
      Use 'neighbor range' to specify range of valid neighbor addresses, then
      incoming connections from these addresses spawn new BGP instances.
      e0835db4
  13. 22 Mar, 2019 1 commit
  14. 14 Mar, 2019 1 commit
    • Ondřej Zajíček's avatar
      Nest: Update handling of temporary attributes · 875cc073
      Ondřej Zajíček authored
      The temporary atttributes are no longer removed by ea_do_prune(), but
      they are undefined by store_tmp_attrs() protocol hooks. This fixes
      several bugs where temporary attributes were removed when they should
      not or not removed when they should be. The flag EAF_TEMP is no longer
      needed and was removed.
      
      Update all protocol make_tmp_attrs() / store_tmp_attrs() hooks to use
      helper functions and to handle unset attributes properly.
      
      Also fix some related bugs like improper handling of empty eattr list.
      875cc073
  15. 26 Feb, 2019 1 commit
  16. 20 Feb, 2019 4 commits
  17. 05 Jan, 2019 1 commit
  18. 04 Jan, 2019 2 commits
  19. 02 Jan, 2019 1 commit
    • Ondřej Zajíček's avatar
      BGP: Better dispatch of incoming connections · 470740f9
      Ondřej Zajíček authored
      Since v2 we have multiple listening BGP sockets, and each BGP protocol
      has associated one of them. Use listening socket that accepted the
      incoming connection as a key in the dispatch process so only BGP
      protocols assocaited with that listening socket can be selected.
      This is necesary for proper dispatch when VRFs are used.
      470740f9
  20. 28 Dec, 2018 1 commit
  21. 18 Dec, 2018 1 commit
    • Ondřej Zajíček's avatar
      IO: Workaround for broken FreeBSD behavior · c2d29dd1
      Ondřej Zajíček authored
      FreeBSD silently changes TTL to 1 when MSG_DONTROUTE is used, even when
      it is explicitly set to another value. That breaks TTL security sockets,
      including BFD which always uses TTL 255. Bad FreeBSD!
      c2d29dd1
  22. 14 Dec, 2018 1 commit
  23. 04 Dec, 2018 2 commits
    • Ondřej Zajíček's avatar
      Unix: Change debugging options · 3fda08e4
      Ondřej Zajíček authored
      The old behavior was that enabling debugging did many nontrivial changes
      in BIRD behavior. The patch changes it that these changes are generally
      independent. Compiling with --enable-debug now just enables compile-time
      debug macros, but do not automatically activate debug mode (-d) nor local
      mode (-l). Debug mode with output to file (-D) do not force foreground
      mode (-f), therefore there is no need for backgroud option (-b), which is
      removed. Also fixes a bug when the default log target in -D mode was
      stderr instead of given debug file.
      3fda08e4
    • 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
  24. 20 Nov, 2018 1 commit
    • Ondřej Zajíček's avatar
      The MRT protocol · 863ecfc7
      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.
      863ecfc7
  25. 18 Nov, 2018 2 commits
  26. 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
  27. 11 Sep, 2018 1 commit
  28. 28 Aug, 2018 1 commit
  29. 13 Aug, 2018 1 commit
  30. 28 Jul, 2018 1 commit
    • Ondřej Zajíček's avatar
      BSD: Use MSG_DONTROUTE for unicast packets on FreeBSD · 318acb0f
      Ondřej Zajíček authored
      BSD systems cannot use SO_DONTROUTE, because it does not work properly
      with multicast packets (perhaps it tries to find iface based on multicast
      group address). But we can use MSG_DONTROUTE sendmsg() flag for unicast
      packets. Works on FreeBSD, is ignored on OpenBSD and is broken on NetBSD
      (i guess due to integrated routing table and ARP table).
      318acb0f
  31. 27 Jun, 2018 1 commit