1. 07 Dec, 2016 2 commits
    • Pavel Tvrdik's avatar
      Check table type at `show route for ...' · f6e8e141
      Pavel Tvrdik authored
      f6e8e141
    • Pavel Tvrdík's avatar
      RPKI protocol with one cache server per protocol · 65d2a88d
      Pavel Tvrdík authored
      The RPKI protocol (RFC 6810) using the RTRLib
      (http://rpki.realmv6.org/) that is integrated inside
      the BIRD's code.
      
      Implemeted transports are:
       - unprotected transport over TCP
       - secure transport over SSHv2
      
      Example configuration of bird.conf:
        ...
        roa4 table r4;
        roa6 table r6;
      
        protocol rpki {
          debug all;
      
          # Import both IPv4 and IPv6 ROAs
          roa4 { table r4; };
          roa6 { table r6; };
      
          # Set cache server (validator) address,
          # overwrite default port 323
          remote "rpki-validator.realmv6.org" port 8282;
      
          # Overwrite default time intervals
          retry   10;         # Default 600 seconds
          refresh 60;         # Default 3600 seconds
          expire 600;         # Default 7200 seconds
        }
      
        protocol rpki {
          debug all;
      
          # Import only IPv4 routes
          roa4 { table r4; };
      
          # Set cache server address to localhost,
          # use default ports tcp => 323 or ssh => 22
          remote 127.0.0.1;
      
          # Use SSH transport instead of unprotected transport over TCP
          ssh encryption {
            bird private key "/home/birdgeek/.ssh/id_rsa";
            remote public key "/home/birdgeek/.ssh/known_hosts";
            user "birdgeek";
          };
        }
        ...
      65d2a88d
  2. 13 May, 2016 1 commit
  3. 12 May, 2016 4 commits
  4. 10 May, 2016 1 commit
  5. 28 Apr, 2016 1 commit
    • Ondřej Zajíček's avatar
      Add the Babel routing protocol (RFC 6126) · 937e75d8
      Ondřej Zajíček authored
      This patch implements the IPv6 subset of the Babel routing protocol.
      Based on the patch from Toke Hoiland-Jorgensen, with some heavy
      modifications and bugfixes.
      
      Thanks to Toke Hoiland-Jorgensen for the original patch.
      937e75d8
  6. 08 Apr, 2016 2 commits
  7. 07 Apr, 2016 2 commits
  8. 06 Apr, 2016 1 commit
    • Ondřej Zajíček's avatar
      KRT: Fix route learn scan when route changed · e86cfd41
      Ondřej Zajíček authored
      When a kernel route changed, function krt_learn_scan() noticed that and
      replaced the route in internal kernel FIB, but after that, function
      krt_learn_prune() failed to propagate the new route to the nest, because
      it confused the new route with the (removed) old best route and decided
      that the best route did not changed.
      
      Wow, the original code (and the bug) is almost 17 years old.
      e86cfd41
  9. 17 Mar, 2016 1 commit
  10. 10 Mar, 2016 2 commits
  11. 19 Feb, 2016 1 commit
  12. 16 Feb, 2016 1 commit
  13. 10 Feb, 2016 1 commit
  14. 08 Feb, 2016 1 commit
    • Pavel Tvrdík's avatar
      Fix closing flushed channel · 1bb3ecb2
      Pavel Tvrdík authored
      Fix reading from freed memory.
        Free at: channel_set_state(c, CS_DOWN)
        Read at: WALK_LIST2_DELSAFE(c, n, x, tab->channels, table_node)
      
      ==00:00:00:00.261 24718==
      ==00:00:09:31.755 24718== Invalid read of size 8
      ==00:00:09:31.755 24718==    at 0x4061BA: rt_prune_table (rt-table.c:1688)
      ==00:00:09:31.755 24718==    by 0x405D5E: rt_event (rt-table.c:1559)
      ==00:00:09:31.755 24718==    by 0x45D089: ev_run (event.c:85)
      ==00:00:09:31.755 24718==    by 0x45D158: ev_run_list (event.c:142)
      ==00:00:09:31.755 24718==    by 0x462814: io_loop (io.c:2412)
      ==00:00:09:31.755 24718==    by 0x468712: main (main.c:833)
      ==00:00:09:31.755 24718==  Address 0x5601538 is 136 bytes inside a block of size 304 free'd
      ==00:00:09:31.755 24718==    at 0x4C29D2A: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==00:00:09:31.755 24718==    by 0x46FF3E: rfree (resource.c:166)
      ==00:00:09:31.755 24718==    by 0x470309: mb_free (resource.c:415)
      ==00:00:09:31.755 24718==    by 0x406A6B: rt_unlock_table (rt-table.c:1921)
      ==00:00:09:31.755 24718==    by 0x40DAE3: channel_do_down (proto.c:297)
      ==00:00:09:31.755 24718==    by 0x40DD46: channel_set_state (proto.c:359)
      ==00:00:09:31.755 24718==    by 0x4061AD: rt_prune_table (rt-table.c:1692)
      ==00:00:09:31.755 24718==    by 0x405D5E: rt_event (rt-table.c:1559)
      ==00:00:09:31.755 24718==    by 0x45D089: ev_run (event.c:85)
      ==00:00:09:31.755 24718==    by 0x45D158: ev_run_list (event.c:142)
      ==00:00:09:31.755 24718==    by 0x462814: io_loop (io.c:2412)
      ==00:00:09:31.755 24718==    by 0x468712: main (main.c:833)
      ==00:00:09:31.755 24718==  Block was alloc'd at
      ==00:00:09:31.755 24718==    at 0x4C28C10: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==00:00:09:31.755 24718==    by 0x470FBC: bird_xmalloc (xmalloc.c:29)
      ==00:00:09:31.755 24718==    by 0x4701E6: mb_alloc (resource.c:339)
      ==00:00:09:31.755 24718==    by 0x406C29: rt_commit (rt-table.c:1977)
      ==00:00:09:31.755 24718==    by 0x45C36D: config_do_commit (conf.c:269)
      ==00:00:09:31.755 24718==    by 0x45C545: config_commit (conf.c:361)
      ==00:00:09:31.755 24718==    by 0x4686F9: main (main.c:822)
      ==00:00:09:31.755 24718==
      1bb3ecb2
  15. 01 Feb, 2016 2 commits
  16. 28 Jan, 2016 1 commit
  17. 21 Jan, 2016 1 commit
  18. 20 Jan, 2016 3 commits
  19. 14 Jan, 2016 1 commit
  20. 07 Jan, 2016 2 commits
  21. 29 Dec, 2015 1 commit
  22. 24 Dec, 2015 1 commit
  23. 21 Dec, 2015 3 commits
  24. 20 Dec, 2015 3 commits
  25. 19 Dec, 2015 1 commit