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