Commit graph

571 commits

Author SHA1 Message Date
Martin Mares 1b50a1e4be Next attempt to get SO_BINDTODEVICE work :) 1999-04-14 11:39:07 +00:00
Martin Mares 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
Martin Mares 9da4d14340 A couple of OSPF fixes:
o  ((flags & IF_CHANGE_UP) == IF_CHANGE_UP)   ->   (flags & IF_CHANGE_UP)
o  bcopy  ->  memcpy   (bcopy is unportable)
o  Ifdeffed out add_tail(&(ifa->sk_list),NODE mcsk) -- the node in socket
   structure is for internal use by the resource manager only. (Now, the
   debugging dump of open sockets looks sane :-)).
1999-04-14 11:09:55 +00:00
Martin Mares 1ab4dee028 Removed redeclaration of `idval', so that it compiles :) 1999-04-14 10:49:31 +00:00
Ondrej Filip 4c630a6dd7 Added wait timer for eligible BCAST & NBMA interface. 1999-04-13 21:46:20 +00:00
Ondrej Filip 55e7732a5a Change in ospf_iface. (My bad understanding of lists manipulation.) 1999-04-13 19:27:44 +00:00
Ondrej Filip aec76c6e8e IPv6 changes. 1999-04-13 18:21:53 +00:00
Pavel Machek 43fc099b98 Sets of IP addresses should work, now. (From now on it is also
possible to write if 1.2.3.4 < 1.2.3.5, but I'm not sure if it is good
for anything.)
1999-04-13 11:40:04 +00:00
Ondrej Filip 24eaae9e5d Small change to stop using loopback. 1999-04-13 00:46:34 +00:00
Ondrej Filip cb2e8c4970 A small init change to avoid core dump. 1999-04-13 00:24:05 +00:00
Ondrej Filip 5b1a92e6d4 Not all I mean serious. Almost everything will change.
Changes: struct ospf_iface draft, various constants added...
1999-04-12 23:54:21 +00:00
Martin Mares 2f5d154466 Added ipa_compare as requested. 1999-04-12 20:26:06 +00:00
Pavel Machek 38506f71b0 Sets of integers now actually work. Sets of IP will work as soon as
compare function is ready.
1999-04-12 19:58:18 +00:00
Martin Mares 01bd7759b2 Ignore alias interfaces (some day, we will treat them as pure secondary
interface addresses).
1999-04-12 18:07:05 +00:00
Martin Mares 08e2d6259a Removed TOS support. This simplifies many things a lot. 1999-04-12 18:01:07 +00:00
Martin Mares 170c984a9e Cosmetic message fix. 1999-04-12 17:27:21 +00:00
Martin Mares 113694892e Use $(CC) instead of gcc even when generating dependencies. 1999-04-12 17:21:11 +00:00
Martin Mares 620c4f90c9 Oops, a typo in previous struct ip_mreqn changes... 1999-04-12 17:20:50 +00:00
Martin Mares 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
Martin Mares 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
Pavel Machek bad631e048 Oops, typo. 1999-04-12 12:07:15 +00:00
Pavel Machek 8ba2cc064b In case no startup function is defined, don't try to launch it. 1999-04-12 12:01:59 +00:00
Martin Mares ed9a82369f Added new target "tags" to generate a tag table for Emacs.
Also made "depend" work before the tree is compiled first time.
1999-04-11 19:28:16 +00:00
Pavel Machek 2db3b2887e Decrease number of warnings. 1999-04-10 09:45:08 +00:00
Martin Mares 49ed70b48e Portability fixes. 1999-04-07 14:25:56 +00:00
Pavel Machek 23b1539bf9 Filters upgraded - a bit. Moved code to filter.c because it is where
it belongs. (f-util.c stays there for auxiliary and non-important things.)
1999-04-07 12:11:08 +00:00
Martin Mares 7976a574b6 ip_pton: Avoid modification of the string we're converting. 1999-04-06 21:31:03 +00:00
Martin Mares e2dc2f30ef Routing table core changes to support full route filtering:
o  Introduced rte_cow() which should be used for copying on write the
   rte's in filters. Each rte now carries a flag saying whether it's
   a real route (possessing table linkage and other insignia) or a local
   copy. This function can be expected to be fast since its fast-path
   is inlined.
o  Introduced rte_update_pool which is a linear memory pool used for
   all temporary data during rte_update. You should not reference it directly
   -- instead use a pool pointer passed to all related functions.
o  Split rte_update to three functions:

	rte_update	The front end: handles all checking, inbound
			filtering and calls rte_recalculate() for the
			final version of the route.
	rte_recalculate	Update the table according to already filtered route.
	rte_announce	Announce routing table changes to all protocols,
			passing them through export filters and so on.

   The interface has _not_ changed -- still call rte_update() and it will
   do the rest for you automagically.
o  Use new filtering semantics to be explained in a separate mail.
1999-04-05 20:25:03 +00:00
Martin Mares 9e0e485e50 Added some new protocol hooks (look at the comments for better explanation):
make_tmp_attrs		Convert inline attributes to ea_list
	store_tmp_attrs		Convert ea_list to inline attributes
	import_control		Pre-import decisions
1999-04-05 20:17:59 +00:00
Martin Mares 5056c559c4 Changed syntax of attaching filters to protocols to hopefully the final
version:

	EXPORT <filter-spec>	for outbound routes (i.e., those announced
				by BIRD to the rest of the world).
	IMPORT <filter-spec>	for inbound routes (i.e., those imported
				by BIRD from the rest of the world).

where <filter-spec> is one of:

	ALL			pass all routes
	NONE			drop all routes
	FILTER <name>		use named filter
	FILTER { <filter> }	use explicitly defined filter

For all protocols, the default is IMPORT ALL, EXPORT NONE. This includes
the kernel protocol, so that you need to add EXPORT ALL to get the previous
configuration of kernel syncer (as usually, see doc/bird.conf.example for
a bird.conf example :)).
1999-04-05 20:15:31 +00:00
Martin Mares 63a381dbf5 Several filter changes. (Pavel, please check if they are OK.)
o  Changed parameters of f_run. Changed rtein+rteout pair to rte pointer
      passed by reference, added ea_list of temporary attrs again passed
      by reference and finally added a pointer to memory pool for storing
      temporary data (new ea_lists's, temporary rta's etc.).
   o  Re-ordered result codes, so that all accepts come before all rejects.
   o  Introduced FILTER_ACCEPT and FILTER_REJECT dummy values (will be
      used in protocol configurations).
   o  Added filter_name() which returns name of a filter or ACCEPT/REJECT
      for the dummies.
1999-04-05 20:10:31 +00:00
Martin Mares d4ff748224 Use a more reasonable pool chunk size: 4080 bytes seem to be a good
approximation of a integral fraction of page size even if both malloc
overhead and chunk header space is counted.
1999-04-05 20:06:02 +00:00
Martin Mares 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
Martin Mares 69ec9087ad Added new protocol hook for dumping of protocol-dependent route
attributes.

Please implement in all protocols.
1999-04-03 13:01:58 +00:00
Martin Mares 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
Martin Mares fe662dfd78 Fixed `too many interfaces' cases. 1999-04-02 13:38:54 +00:00
Pavel Machek 0498d92f95 Believe it or not, printf()'s does not work too much without this one. 1999-04-02 11:45:55 +00:00
Martin Mares 8cda9cdbcf Argh, the fix was wrong. 1999-04-01 19:23:59 +00:00
Martin Mares e4241f24f2 Portability fixes. 1999-04-01 15:35:15 +00:00
Martin Mares abae6e9cd3 First few FreeBSD portability fixes. 1999-04-01 15:33:52 +00:00
Martin Mares 6accdf4f43 Updated the TODO list. 1999-03-29 20:46:00 +00:00
Martin Mares fb71b23e60 Remember that we can run device syncer without kernel syncer
and vice versa now.
1999-03-29 20:33:45 +00:00
Martin Mares 78d5ec1504 Please don't commit debugging code which makes BIRD exit before anything
actually starts to happen. Grrr.
1999-03-29 20:28:25 +00:00
Martin Mares e4912e3594 Prefer gm4' over m4' (due to BSD et al.). 1999-03-29 20:26:32 +00:00
Pavel Machek ba92164871 Update of filters towards new interface. 1999-03-29 20:21:28 +00:00
Martin Mares 5bc512aa3a Clarify resource dumps and include them in the main debugging dump. 1999-03-29 20:14:33 +00:00
Martin Mares 3f2a21fd34 Don't try to delete interface routes on CONFIG_AUTO_ROUTES systems. 1999-03-29 20:14:00 +00:00
Martin Mares 6c02d83f4d Added FIXME: If a strange interface appears, ignore it instead of only
writing an error message...
1999-03-29 19:56:32 +00:00
Martin Mares f5c687f791 Added lp_flush() which flushes contents of a linear pool, leaving all the
memory available for subsequent allocations from the same pool. Both flushing
and re-using the memory costs just few instructions.
1999-03-29 19:35:47 +00:00
Martin Mares f54801ffed Moved all system-dependent #include's containing endianity conversion
functions to sysdep header endian.h.
1999-03-29 19:14:43 +00:00