Commit graph

283 commits

Author SHA1 Message Date
Martin Mares
50d8424ad1 Added configuration of the device internal protocol. This is primarily
intended to serve as an example of interface pattern list use. As a side
effect, you can disable generating of device routes by disabling
this protocol.
1998-11-29 22:03:58 +00:00
Martin Mares
66efdf962a Handle disabled protocol instances. 1998-11-29 22:01:33 +00:00
Martin Mares
ed45f2e126 Added functions for manipulating interface name pattern lists:
o  iface_patt_match(list, iface) -- match interface against list
   o  iface_patts_equal(a, b, c) -- compare whether two pattern lists are
      equal or not. c(x,y) is called for comparison of protocol-dependent
      data.
1998-11-29 22:01:03 +00:00
Martin Mares
49e4a4d1fd Created new functions for allocating configuration data:
o  cfg_alloc(size) -- generic memory allocation
   o  cfg_allocu(size) -- unaligned memory allocation
   o  cfg_allocz(size) -- zeroed memory allocation
   o  cfg_strcpy(str) -- allocate a copy of a string

Also fixed a bug in lexing of string literals.
1998-11-29 21:59:37 +00:00
Martin Mares
5cd462f291 wc -l TODO decreased. 1998-11-29 14:51:47 +00:00
Martin Mares
dee929d868 Added function for shell-like pattern matching. Will be used for
matching interface names in protocol-to-iface bindings.
1998-11-29 14:47:24 +00:00
Martin Mares
bd5d0d62f1 Allow setting debug value and `disabled' flag in protocol definition. 1998-11-29 14:40:39 +00:00
Martin Mares
0cf86f0fc3 Renamed DEBUG' symbol to DEBUGGING' to prevent collisions with token
names and include files.
1998-11-29 14:38:34 +00:00
Martin Mares
7af99789c7 Oops, forgot to remove a debugging kludge. 1998-11-27 21:34:03 +00:00
Martin Mares
0b62c3a7c7 Trivial 15-line bison excercise: Implemented expressions including
user-defined numeric symbols. Whenever possible, use `expr' instead
of `NUM' to get full express ion power :-)
1998-11-27 21:32:45 +00:00
Martin Mares
c74c0e3cdf First attempt at protocol configuration (now done only for RIP). 1998-11-27 21:09:57 +00:00
Martin Mares
93fb60d54c Fixed few misspellings and exported instance init as rip_init_instance(). 1998-11-27 21:08:37 +00:00
Martin Mares
8450be97d6 Added generator of default names. 1998-11-27 21:07:02 +00:00
Martin Mares
906b0170a4 Experimental config file. 1998-11-27 19:39:16 +00:00
Martin Mares
b4712244a0 Dummy grammar for RIP configuration. Now empty, but must be here since
it's referenced in the makefiles.
1998-11-27 19:38:30 +00:00
Martin Mares
da87782278 Parser fragment for the core. Now handles only router ID setting. 1998-11-27 19:37:57 +00:00
Martin Mares
70591fa064 Compile and use the new configuration code by default. 1998-11-27 19:37:07 +00:00
Martin Mares
f142750d34 Base of the parser. 1998-11-27 19:36:06 +00:00
Martin Mares
82fc7be7bb Lexical analyser. 1998-11-27 19:35:50 +00:00
Martin Mares
fe7cec12e8 Replaced nest/confile.h by conf/conf.h, added a lot of new definitions. 1998-11-27 19:35:10 +00:00
Martin Mares
ce6ca80926 This script takes configuration fragments and generates full Bison grammar
from them.
1998-11-27 19:33:53 +00:00
Martin Mares
882c588a40 This script takes configuration fragments and extracts keyword list
from them.
1998-11-27 19:33:26 +00:00
Martin Mares
d2ed2579fa Now merges configuration fragments (*.Y) as well. 1998-11-27 19:31:41 +00:00
Martin Mares
dfeef5d8bb Implemented ip_pton() 1998-11-27 19:29:27 +00:00
Martin Mares
a3afae585a Removed prototype of rp_free() since this function has never existed. 1998-11-27 19:29:00 +00:00
Martin Mares
3cef8c706c Added path to config file. 1998-11-27 19:28:29 +00:00
Martin Mares
4254dc45e7 Killed bug in processing of 'h' prefix. Patch taken from linux-2.1.129. 1998-11-21 10:25:34 +00:00
Martin Mares
9158ca99f7 Complain loudly if the logging buffer would overflow. 1998-11-16 21:41:21 +00:00
Martin Mares
53a416d376 Implemented snprintf and similar functions. It took a lot of thinking,
but the modifications were relatively simple and straightforward.
1998-11-16 21:40:35 +00:00
Pavel Machek
c3e9b2ab24 RIP now includes notion of interface, and is correctly talking to
itself on second host. Split horizont is broken.
1998-10-26 15:35:19 +00:00
Martin Mares
dafd580ed9 Previous fix was wrong. 1998-10-26 15:24:32 +00:00
Martin Mares
db6984c43c rte_update: Doesn't loop forever when multiple routes point to the same
destination.
1998-10-26 15:01:04 +00:00
Pavel Machek
dc7c7494e3 RIP _NOW_ actually talks to itself (workaround core bug: send data
from other port than we receive at), few FIXME's added.
1998-10-20 16:45:53 +00:00
Martin Mares
756b86dea3 Learn static device routes from the kernel (temporary until we can make
such things configurable).
1998-10-20 16:39:04 +00:00
Pavel Machek
feb6abe009 RIP now actually talks to itself. 1998-10-20 16:12:43 +00:00
Martin Mares
8ca8683c70 Beware the NULL route, my son... The bugs that bite, the BIRDs that crash :-) 1998-10-20 15:47:02 +00:00
Martin Mares
acc62f5e1d Insert/remove hooks return void, not int. 1998-10-20 15:17:38 +00:00
Martin Mares
a0762910a6 Added pointer to network to RTE. The complications with passing NET separately
aren't worth 4 bytes per RTE.

rte_discard and rte_dump don't need net * as parameter.
1998-10-20 15:13:18 +00:00
Martin Mares
b6903c948b Updated TODO. 1998-10-19 18:18:12 +00:00
Martin Mares
7d83290780 Generate router_id automatically if possible (standard "smallest of local
regular interface addresses" rule).

Protocols should NOT rely on router_id existence -- when router ID is not
available, the router_id variable is set to zero and protocols requiring
valid router ID should just refuse to start, reporting such error to the log.
1998-10-19 18:13:36 +00:00
Martin Mares
0804525255 Basic kernel routing table syncing implemented. Learning of routes installed
by other programs or the kernel itself is not supported yet, but it's not
needed for development of other protocols.
1998-10-19 17:52:29 +00:00
Martin Mares
567e6c6220 Use (SOCK_DGRAM,IPPROTO_IP) socket instead of (SOCK_STREAM,IPPROTO_TCP).
This is exactly what Linux ifconfig does and seems to be the preferred way.
1998-10-19 17:48:45 +00:00
Martin Mares
4cf45766ba Exporting fill_in_sockaddr() for use by other unix-dependent code. 1998-10-19 17:47:50 +00:00
Martin Mares
36f2caf147 Fixed generation of device routes for unnumbered point-to-point links. 1998-10-19 17:46:45 +00:00
Martin Mares
f184ea6f7e Proto struct now contain (down | starting | up) state. 1998-10-19 17:45:29 +00:00
Martin Mares
16a8ba30a9 We parse /proc/net/route and flag RT entries according to it. More to come
today in the morning...
1998-10-18 22:25:56 +00:00
Martin Mares
4c45595e3b o FIB flags now available for FIB users.
o  struct network: FIB flags used for kernel syncing.
o  struct network: `next' field deleted (historical relic).
1998-10-18 22:24:41 +00:00
Martin Mares
ab3a76a382 Added ipa_from_u32 and ipa_from_u32 for use in the kernel sync code (IPv4 only).
Don't ever think of using it in routing protocols.
1998-10-18 22:22:28 +00:00
Martin Mares
7e7790c61f Since almost every UNIX system requires different techniques for reading
the kernel routing table as opposed to modifying it which is approximately
the same on non-netlink systems, I've split the kernel routing table
routines to read and write parts. To be implemented later ;-)
1998-10-18 12:50:43 +00:00
Martin Mares
8b1688177b * Please distinguish between DGB() and debug(). 1998-10-18 12:48:15 +00:00