Commit graph

3398 commits

Author SHA1 Message Date
Martin Mares
04925e9040 Minor rte/rta interface changes:
o  rte can now contain a pointer to both cached and uncached rta. Protocols
     which don't need their own attribute caching can now just fill-in a rta,
     link it to rte without any calls to attribute cache and call rte_update()
     which will replace rte->attrs by a cached copy.

  o  In order to support this, one of previously pad bytes in struct rta
     now holds new attribute flags (RTAF_CACHED). If you call rte_update()
     with uncached rta, you _must_ clear these flags. In other cases rta_lookup()
     sets it appropriately.

  o  Added rte_free() which is useful when you construct a rte and then the
     circumstances change and you decide not to use it for an update. (Needed
     for temporary rte's in kernel syncer...)
1998-12-07 21:59:15 +00:00
Martin Mares
cdc6bfa70f Comparison of kernel reject routes fixed. 1998-12-07 10:16:15 +00:00
Martin Mares
12df4d909b KRF_* flags moved to krt.h as they are internal to kernel syncer,
fib->pad0,pad1 renamed to x0,x1 and in case of struct net x0 is reserved
for kernel syncing as well.
1998-12-07 10:15:42 +00:00
Martin Mares
f6bd206607 All static routes except for device ones should work and appear/disappear
when their destination comes on/off link. Deserves better testing :)

See example in bird.conf.
1998-12-06 23:13:31 +00:00
Martin Mares
78d06cf2bc Removed protocol-specific data in rte for protocol static since no
such data ever existed.
1998-12-06 23:11:47 +00:00
Martin Mares
436965d25e Aesthetic fix for neighbor cache debug dump. 1998-12-06 23:11:18 +00:00
Martin Mares
89d2355d3d Added new rule for prefix length / netmask. 1998-12-06 23:10:45 +00:00
Martin Mares
cc12cf05c7 cf_error() now accepts any format strings instead of just an error
message. Also added extra kludge to get rid of collisions of REJECT
symbols.
1998-12-06 23:10:28 +00:00
Martin Mares
a1bf6440b5 Added skeleton of static route protocol. 1998-12-06 18:21:23 +00:00
Martin Mares
980ffedbb0 Kernel syncer is now configurable. It will probably need some more
options, but at least basic tuning is possible now.
1998-12-06 17:40:42 +00:00
Martin Mares
0846203e89 Fixed bug in CF_ADDTO. How it's possible it has ever worked? 1998-12-06 17:39:08 +00:00
Martin Mares
166b9c4912 Added rule "bool" for boolean switches. 1998-12-06 17:38:42 +00:00
Martin Mares
b35d72ac66 Name cleanups as suggested by Pavel:
- cfg_strcpy() -> cfg_strdup()
- mempool -> linpool, mp_* -> lp_*  [to avoid confusion with memblock, mb_*]

Anyway, it might be better to stop ranting about names and do some *real* work.
1998-12-06 11:59:18 +00:00
Pavel Machek
2d9290e973 Rip now has configurable per-interface metric (please rewiev), and few
more configurable parameters. To do that, union was added into iface_patt.
1998-12-04 11:45:51 +00:00
Pavel Machek
9b999c393c Infinity is now configurable ammount. 1998-12-01 16:17:10 +00:00
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