1. 05 Nov, 2018 1 commit
  2. 19 Mar, 2018 1 commit
  3. 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
  4. 13 Mar, 2018 1 commit
    • 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
  5. 19 Jun, 2017 1 commit
  6. 08 Nov, 2016 1 commit
  7. 03 Oct, 2016 2 commits
  8. 21 Sep, 2016 1 commit
  9. 09 Jun, 2016 1 commit
  10. 08 Jun, 2016 1 commit
  11. 16 Feb, 2016 1 commit
  12. 21 Feb, 2015 1 commit
  13. 02 Oct, 2014 1 commit
  14. 26 Sep, 2013 1 commit
  15. 13 Aug, 2013 1 commit
  16. 26 Jul, 2013 1 commit
  17. 25 Jul, 2013 1 commit
  18. 29 Apr, 2012 1 commit
  19. 18 Mar, 2012 1 commit
    • Ondřej Zajíček's avatar
      Route Origin Authorization basics. · af582c48
      Ondřej Zajíček authored
       - ROA tables, which are used as a basic part for RPKI.
       - Commands for examining and modifying ROA tables.
       - Filter operators based on ROA tables consistent with RFC 6483.
      af582c48
  20. 15 Mar, 2012 1 commit
  21. 26 Oct, 2011 1 commit
  22. 27 Sep, 2011 1 commit
  23. 14 Aug, 2011 1 commit
  24. 26 Jun, 2011 1 commit
  25. 06 May, 2011 1 commit
    • Ondřej Zajíček's avatar
      Fixes several problems in filter syntax. · b8cc390e
      Ondřej Zajíček authored
       - Fixes several conflicts in the grammar.
       - Fixes a bug in (a..b, c) pair patterns.
       - Makes pair patterns orthogonal.
       - Allows term expressions in pair patterns without additional ( ).
       - Allows several comma separated values in switch cases.
      b8cc390e
  26. 27 Mar, 2011 1 commit
  27. 26 Mar, 2011 1 commit
  28. 23 Mar, 2011 1 commit
    • Ondřej Zajíček's avatar
      A hack to distinguish if..else from else: in case. · 26d92bb8
      Ondřej Zajíček authored
      The old BIRD grammar needs two lookaheads to distinguish if..else from
      else: in case, which caused the parser to fail on some combinations of
      both expressions.
      
      This patch replaces two tokens 'else' ':' by one token 'else:' to fix
      that.
      26d92bb8
  29. 04 Oct, 2010 1 commit
  30. 03 Aug, 2010 2 commits
  31. 27 Jul, 2010 1 commit
  32. 22 May, 2010 1 commit
  33. 29 Mar, 2010 1 commit
  34. 19 Mar, 2010 1 commit
  35. 17 Feb, 2010 1 commit
  36. 02 Feb, 2010 1 commit
  37. 08 Oct, 2009 1 commit
  38. 01 Jun, 2009 1 commit