1. 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
  2. 13 Feb, 2018 1 commit
    • Ondřej Zajíček's avatar
      Add support for source-specific IPv6 routes to BIRD core · be17805c
      Ondřej Zajíček authored
      This patch adds support for source-specific IPv6 routes to BIRD core.
      This is based on Dean Luga's original patch, with the review comments
      addressed. SADR support is added to network address parsing in confbase.Y
      and to the kernel protocol on Linux.
      
      Currently there is no way to mix source-specific and non-source-specific
      routes (i.e., SADR tables cannot be connected to non-SADR tables).
      
      Thanks to Toke Hoiland-Jorgensen for the original patch.
      Minor changes by Ondrej Santiago Zajicek.
      be17805c
  3. 22 Dec, 2016 1 commit
    • Jan Moskyto Matejka's avatar
      Netlink: MPLS routes in kernel · d14f8c3c
      Jan Moskyto Matejka authored
      Anyway, Bird is now capable to insert both MPLS routes and MPLS encap
      routes into kernel.
      
      It was (among others) needed to define platform-specific AF_MPLS to 28
      as this constant has been assigned in the linux kernel.
      
      No support for BSD now, it may be added in the future.
      d14f8c3c
  4. 10 May, 2016 1 commit
  5. 20 Dec, 2015 1 commit
  6. 25 Apr, 2015 1 commit
    • Ondřej Zajíček's avatar
      KRT: Fixes learning of preferred kernel routes. · c5ff44a7
      Ondřej Zajíček authored
      When a new route was imported from kernel and chosen as preferred, then
      the old best route was propagated as a withdraw to the kernel protocol.
      Under some circumstances such withdraw propagated to the BSD kernel could
      remove the new alien route and thus reverting the import.
      c5ff44a7
  7. 06 Feb, 2014 1 commit
    • 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
  8. 22 Nov, 2013 1 commit
  9. 07 Jul, 2013 1 commit
  10. 04 May, 2012 1 commit
  11. 30 Apr, 2012 1 commit
  12. 10 May, 2011 1 commit
  13. 26 Mar, 2010 1 commit
  14. 26 Feb, 2010 1 commit
    • Ondřej Zajíček's avatar
      Many changes in (mainly) kernel syncers. · ff2857b0
      Ondřej Zajíček authored
      - BSD kernel syncer is now self-conscious and can learn alien routes
      - important bugfix in BSD kernel syncer (crash after protocol restart)
      - many minor changes and bugfixes in kernel syncers and neighbor cache
      - direct protocol does not generate host and link local routes
      - min_scope check is removed, all routes have SCOPE_UNIVERSE by default
      - also fixes some remaining compiler warnings
      ff2857b0
  15. 04 Jun, 2004 1 commit
  16. 03 Jun, 2004 1 commit
  17. 01 Jun, 2004 1 commit
  18. 31 May, 2004 1 commit
  19. 16 Dec, 1999 1 commit
  20. 03 Aug, 1999 2 commits
    • Martin Mareš's avatar
      Basic support for IPv6. The system-dependent part doesn't work yet, · dce26783
      Martin Mareš authored
      but the core routines are there and seem to be working.
      
         o  lib/ipv6.[ch] written
         o  Lexical analyser recognizes IPv6 addresses and when in IPv6
            mode, treats pure IPv4 addresses as router IDs.
         o  Router ID must be configured manually on IPv6 systems.
         o  Added SCOPE_ORGANIZATION for org-scoped IPv6 multicasts.
         o  Fixed few places where ipa_(hton|ntoh) was called as a function
            returning converted address.
      dce26783
    • Martin Mareš's avatar
      Kernel route syncer supports multiple tables. · 7de45ba4
      Martin Mareš authored
      The changes are just too extensive for lazy me to list them
      there, but see the comment at the top of sysdep/unix/krt.c.
      The code got a bit more ifdeffy than I'd like, though.
      
      Also fixed a bunch of FIXME's and added a couple of others. :)
      7de45ba4
  21. 21 May, 1999 1 commit
  22. 12 Apr, 1999 1 commit
  23. 03 Apr, 1999 1 commit
  24. 27 Mar, 1999 1 commit
    • Martin Mareš's avatar
      Cleaned up system configuration files -- removed few obsolete parameters, · 1127ac6e
      Martin Mareš authored
      documented the remaining ones (sysdep/cf/README).
      
      Available configurations:
      
         o  linux-20: Old Linux interface via /proc/net/route (selected by default
      		on pre-2.1 kernels).
         o  linux-21: Old Linux interface, but device routes handled by the
      		kernel (selected by default for 2.1 and newer kernels).
         o  linux-22: Linux with Netlink (I play with it a lot yet, so it isn't
      		a default).
         o  linux-ipv6: Prototype config for IPv6 on Linux. Not functional yet.
      1127ac6e
  25. 03 Mar, 1999 1 commit
    • Martin Mareš's avatar
      Rewrote the kernel syncer. The old layering was horrible. · 2d140452
      Martin Mareš authored
      The new kernel syncer is cleanly split between generic UNIX module
      and OS dependent submodules:
      
        -  krt.c (the generic part)
        -  krt-iface (low-level functions for interface handling)
        -  krt-scan (low-level functions for routing table scanning)
        -  krt-set (low-level functions for setting of kernel routes)
      
      krt-set and krt-iface are common for all BSD-like Unices, krt-scan is heavily
      system dependent (most Unices require /dev/kmem parsing, Linux uses /proc),
      Netlink substitues all three modules.
      
      We expect each UNIX port supports kernel routing table scanning, kernel
      interface table scanning, kernel route manipulation and possibly also
      asynchronous event notifications (new route, interface state change;
      not implemented yet) and build the KRT protocol on the top of these
      primitive operations.
      2d140452
  26. 01 Mar, 1999 1 commit
  27. 10 Jan, 1999 1 commit
  28. 26 May, 1998 1 commit
  29. 15 May, 1998 1 commit
  30. 22 Apr, 1998 1 commit