1. 05 Nov, 2018 1 commit
  2. 25 Oct, 2018 2 commits
  3. 27 Jun, 2018 1 commit
  4. 26 Jun, 2018 2 commits
  5. 19 Jun, 2018 1 commit
    • Jan Maria Matejka's avatar
      Filter: fixed eattr cached pointer · 1771f70d
      Jan Maria Matejka authored
      Use ACCESS_RTE to guard **f_rte, use ACCESS_EATTRS to guard **f_eattrs.
      Use f_rta_cow() before writing to rta or eattrs, use f_rte_cow() before
      writing preference (stored in rte).
      
      Do not access eattrs indirectly through (*f_rte)->attrs->eattrs, it is
      way too slow. The cached pointer is faster.
      1771f70d
  6. 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
  7. 29 May, 2018 6 commits
  8. 16 May, 2018 1 commit
  9. 27 Apr, 2018 1 commit
  10. 14 Mar, 2018 1 commit
    • Jan Maria Matejka's avatar
      Filter: make bgpmask literals real constructors · e8bc64e3
      Jan Maria Matejka authored
      The bgpmask literals can include expressions. This is OK but they have
      to be interpreted as soon as the code is run, not in the time the code
      is used as value.
      
      This led to strange behavior like rewriting bgpmasks when they shan't
      be rewritten:
      
      	function mask_generator(int as)
      	{
      		return [= * as * =];
      	}
      
      	function another()
      	bgpmask m1;
      	bgpmask m2;
      	{
      		m1 = mask_generator(10);
      		m2 = mask_generator(20);
      		if (m1 == m2) {
      			print("strange"); # this would happen
      		}
      	}
      
      Moreover, sending this to CLI would cause stack overflow and knock down the
      whole BIRD, as soon as there is at least one route to execute the given
      filter on.
      
      	show route filter bgpmask mmm; bgppath ppp; { ppp = +empty+; mmm = [= (ppp ~ mmm) =]; print(mmm); accept; }
      
      The magic match operator (~) inside the bgpmask literal would try to
      resolve mmm, which points to the same bgpmask so it would resolve
      itself, call the magic match operator and vice versa.
      
      After this patch, the bgpmask literal will get resolved as soon as it's
      assigned to mmm and it also will return a type error as bool is not
      convertible to ASN in BIRD.
      e8bc64e3
  11. 13 Mar, 2018 3 commits
    • Jan Maria Matejka's avatar
      Filters: Removed FI_COMMA, not used for 19 years. · 74bfd2f9
      Jan Maria Matejka authored
      This instruction was removed in the commit linked below
      and never used ever again. Rest in peace.
      
      commit 84c7e194
      Author: Pavel Machek <pavel@ucw.cz>
      Date:   Tue Mar 2 19:49:28 1999 +0000
      74bfd2f9
    • Jan Maria Matejka's avatar
      Filter: recursion to loop · 7c601e6b
      Jan Maria Matejka authored
      It was supposed to do tail-recursion in interpret() but it didn't
      compile as such. Converting it to loop makes a significant filter
      performance improvement for flat filters.
      7c601e6b
    • Maria Jan Matejka's avatar
      Filter: Instruction codes named as enum · 5a14df39
      Maria Jan Matejka authored
      The two-letter instructions were quite messy but they could be easily
      read from memory dumps. Now GDB (since 2012) supports pretty printing
      enum values and GCC checks the switch construction for missing enum
      values so we are converting the nice two-byte values to enums.
      
      Anyway, the enum still keeps the old two-byte values to be able to read
      the instruction codes even without GDB from plain memory dump.
      5a14df39
  12. 08 Mar, 2018 2 commits
  13. 13 Feb, 2018 1 commit
  14. 16 Jan, 2018 2 commits
  15. 03 Jan, 2018 1 commit
  16. 08 Dec, 2017 2 commits
  17. 09 Nov, 2017 1 commit
  18. 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
  19. 20 Sep, 2017 1 commit
  20. 19 Jun, 2017 1 commit
  21. 23 May, 2017 1 commit
  22. 16 May, 2017 1 commit
  23. 26 Apr, 2017 2 commits
  24. 18 Apr, 2017 1 commit
  25. 22 Mar, 2017 1 commit
  26. 14 Mar, 2017 1 commit
    • Ondřej Zajíček's avatar
      Minor cleanups · a5d2a344
      Ondřej Zajíček authored
      BTW, 'prefices' is hypercorrection, as 'prefix' is from 'praefixum' with
      plural 'praefixa'.
      a5d2a344
  27. 13 Mar, 2017 1 commit