1
0
mirror of https://gitlab.labs.nic.cz/labs/bird.git synced 2024-05-11 16:54:54 +00:00

777 Commits

Author SHA1 Message Date
0da472d7e8 Except for special protocols (nowadays only the kernel syncer), don't
export host and link scope routes.
1999-12-08 14:16:13 +00:00
dc82daaa9b - Path to control socket is selectable via command-line option.
- die() when control socket open failed.
1999-12-08 13:20:19 +00:00
f78056fb2c Allow logging to stderr as well. 1999-12-06 13:51:04 +00:00
a0c37b45e5 Logging is now configurable. You can define multiple log outputs (to both
files and syslog) and assign lists of message categories to each of them.
1999-12-06 13:45:56 +00:00
a9c986f981 Added tracked_fopen() which is a fopen registered in resource database.
Will be used for log files.
1999-12-06 13:43:47 +00:00
34350a5270 Implemented echoing of log messages to CLI connections. Just try `echo all'. 1999-12-06 12:34:45 +00:00
afa8937ac8 Added tm_format_reltime() for formatting of relative time quantities. 1999-12-01 11:59:00 +00:00
487d1afa52 Moved TIME_INFINITY to timer.h, so that it's publicly available. 1999-11-30 14:01:39 +00:00
30770df2ab If the main event queue is not empty, call select() with zero timeout, so
that the events are ran again after the FD's are checked. This allows us
to schedule I/O checks between processing of user commands.
1999-11-17 12:04:24 +00:00
2727bb7c5b Renamed attr->attrs to attr->eattrs. 1999-11-04 13:29:43 +00:00
b9672a845f The CLI I/O functions work as desired. 1999-10-31 15:43:44 +00:00
7d3aab1c16 First steps of the Command Line Interface: I/O routines. 1999-10-29 12:10:10 +00:00
b93abffae4 Implemented unix-domain sockets. 1999-10-29 12:09:29 +00:00
54165b1315 Configure PATH_CONTROL_SOCKET.
autoconf.h is now written to obj/sysdep, the source tree is hopefully
completely read-only now.
1999-10-29 10:08:09 +00:00
ed6081502a Added skeleton of the client. Does nothing, but at least compiles. 1999-10-29 09:44:44 +00:00
f782b72c53 Failure to set socket TOS is not a fatal error. 1999-10-02 11:06:44 +00:00
f651941402 Added a function for generating 32-bit random numbers. 1999-08-17 20:47:40 +00:00
4532a89e31 Taught Netlink how to behave in IPv6 world. 1999-08-03 19:37:37 +00:00
4f22c98185 Support for IPv6 sockets. How nice one doesn't have to ifdef around
ten years of API evolution :-)
1999-08-03 19:36:51 +00:00
dce267832a Basic support for IPv6. The system-dependent part doesn't work yet,
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.
1999-08-03 19:36:06 +00:00
7de45ba4a0 Kernel route syncer supports multiple tables.
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. :)
1999-08-03 19:33:22 +00:00
9273035403 Changes to interface handling on traditional Unices:
o  Aliases are interpreted as secondary addresses.
  o  When the system doesn't supply interface indices, generate
     our ones.
1999-08-03 19:30:20 +00:00
913f7dc9f2 Added functions for parsing and formatting of dates. 1999-08-03 19:29:27 +00:00
bd7f1081f2 Grrr, the "obvious fix" to multicasting code from yesterday was
fundamentally wrong. Reversed.
1999-06-01 15:31:43 +00:00
c7208da0b7 Fix potential multicasting bug. 1999-05-31 20:28:46 +00:00
bb027be1e2 Added extra argument to rt_update hook which contains a pointer to the
temporary attribute list.
1999-05-31 18:55:35 +00:00
4b0d57e531 Added CONFIG_MULTIPLE_TABLES whereever appropriate. 1999-05-21 14:29:44 +00:00
1c3c9dceb3 Removed one unused structure field. 1999-05-21 14:29:23 +00:00
4f1a6d27b9 Kill remaining master_table relics in KRT code.
Make all protocols pass routing table to rte_update and rte_discard.
1999-05-17 20:16:53 +00:00
a2697f02ac Netlink support for secondary interface addresses. 1999-05-07 13:46:16 +00:00
9a158361da I rewrote the interface handling code, so that it supports multiple
addresses per interface (needed for example for IPv6 support).

Visible changes:

o  struct iface now contains a list of all interface addresses (represented
   by struct ifa), iface->addr points to the primary address (if any).
o  Interface has IF_UP set iff it's up and it has a primary address.
o  IF_UP is now independent on IF_IGNORED (i.e., you need to test IF_IGNORED
   in the protocols; I've added this, but please check).
o  The if_notify_change hook has been simplified (only one interface pointer
   etc.).
o  Introduced a ifa_notify_change hook. (For now, only the Direct protocol
   does use it -- it's wise to just listen to device routes in all other
   protocols.)
o  Removed IF_CHANGE_FLAGS notifier flag (it was meaningless anyway).
o  Updated all the code except netlink (I'll look at it tomorrow) to match
   the new semantics (please look at your code to ensure I did it right).

Things to fix:

o  Netlink.
o  Make krt-iface interpret "eth0:1"-type aliases as secondary addresses.
1999-05-06 21:38:11 +00:00
4c5e5e3a1c Multicasts once again: When using SO_BINDTODEVICE, don't specify IP address
of the interface.
1999-04-14 12:29:47 +00:00
1b50a1e4be Next attempt to get SO_BINDTODEVICE work :) 1999-04-14 11:39:07 +00:00
36154beb70 Use SO_BINDTODEVICE if we're using old multicast API (i.e., struct ip_mreq
and not ip_mreqn). This should get multicasts on unnumbered PtP links work.
1999-04-14 11:21:02 +00:00
01bd7759b2 Ignore alias interfaces (some day, we will treat them as pure secondary
interface addresses).
1999-04-12 18:07:05 +00:00
08e2d6259a Removed TOS support. This simplifies many things a lot. 1999-04-12 18:01:07 +00:00
61fb537c62 Use struct ip_mreqn' instead of struct ip_mreq' for multicast
operations on 2.1/2.2 kernels. This allows passing of real interface
indexes instead of referencing interfaces by their IP addresses which
fails badly in presence of unnumbered interfaces.

Unfortunately, this structure is not visible with glibc 2.0 as it provides
its own networking headers :-(  Both libc5 and glibc 2.1 should be OK.
1999-04-12 15:27:56 +00:00
5a99ade413 Fixed a couple of bugs in handling of multicast sockets.
See comments in lib/socket.h for a detailed guide on how to use them.
1999-04-12 14:57:46 +00:00
49ed70b48e Portability fixes. 1999-04-07 14:25:56 +00:00
c10421d3d4 More changes to the kernel syncer.
o  Now compatible with filtering.
o  Learning of kernel routes supported only on CONFIG_SELF_CONSCIOUS
   systems (on the others it's impossible to get it semantically correct).
o  Learning now stores all of its routes in a separate fib and selects
   the ones the kernel really uses for forwarding packets.
o  Better treatment of CONFIG_AUTO_ROUTES ports.
o  Lots of internal changes.
1999-04-03 13:05:18 +00:00
73c7bed168 Defined CONFIG_SELF_CONSCIOUS whenever the kernel scanner is able
to distinguish between our own routes and alien ones.
1999-04-03 13:00:52 +00:00
fe662dfd78 Fixed `too many interfaces' cases. 1999-04-02 13:38:54 +00:00
0498d92f95 Believe it or not, printf()'s does not work too much without this one. 1999-04-02 11:45:55 +00:00
8cda9cdbcf Argh, the fix was wrong. 1999-04-01 19:23:59 +00:00
e4241f24f2 Portability fixes. 1999-04-01 15:35:15 +00:00
abae6e9cd3 First few FreeBSD portability fixes. 1999-04-01 15:33:52 +00:00
fb71b23e60 Remember that we can run device syncer without kernel syncer
and vice versa now.
1999-03-29 20:33:45 +00:00
5bc512aa3a Clarify resource dumps and include them in the main debugging dump. 1999-03-29 20:14:33 +00:00
3f2a21fd34 Don't try to delete interface routes on CONFIG_AUTO_ROUTES systems. 1999-03-29 20:14:00 +00:00
f54801ffed Moved all system-dependent #include's containing endianity conversion
functions to sysdep header endian.h.
1999-03-29 19:14:43 +00:00