diff options
author | Martin Mares <mj@ucw.cz> | 1998-10-18 14:50:43 +0200 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1998-10-18 14:50:43 +0200 |
commit | 7e7790c61f14dff300d7c5464fdd47e4c15a0731 (patch) | |
tree | faa06678f7dc7bf821af328f29211a03a7ee7b3a /sysdep/linux | |
parent | 8b1688177b2b3c6a3740f792997f3057b9bff0da (diff) | |
download | bird-7e7790c61f14dff300d7c5464fdd47e4c15a0731.tar bird-7e7790c61f14dff300d7c5464fdd47e4c15a0731.zip |
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 ;-)
Diffstat (limited to 'sysdep/linux')
-rw-r--r-- | sysdep/linux/Modules | 2 | ||||
-rw-r--r-- | sysdep/linux/krt-scan.c | 58 | ||||
-rw-r--r-- | sysdep/linux/krt-scan.h | 17 |
3 files changed, 77 insertions, 0 deletions
diff --git a/sysdep/linux/Modules b/sysdep/linux/Modules index e69de29..5562ab2 100644 --- a/sysdep/linux/Modules +++ b/sysdep/linux/Modules @@ -0,0 +1,2 @@ +krt-scan.c +krt-scan.h diff --git a/sysdep/linux/krt-scan.c b/sysdep/linux/krt-scan.c new file mode 100644 index 0000000..caae54d --- /dev/null +++ b/sysdep/linux/krt-scan.c @@ -0,0 +1,58 @@ +/* + * BIRD -- Linux Routing Table Scanning + * + * (c) 1998 Martin Mares <mj@ucw.cz> + * + * Can be freely distributed and used under the terms of the GNU GPL. + */ + +#include <string.h> + +#define LOCAL_DEBUG + +#include "nest/bird.h" +#include "nest/iface.h" +#include "nest/route.h" +#include "nest/protocol.h" +#include "lib/timer.h" +#include "lib/unix.h" +#include "lib/krt.h" + +#define SCANOPT struct krt_scan_params *p = &x->scanopt + +static void +krt_scan_fire(timer *t) +{ + DBG("Scanning kernel table...\n"); +} + +void +krt_scan_preconfig(struct krt_proto *x) +{ + SCANOPT; + + p->recurrence = 10; /* FIXME: use reasonable default value */ +} + +void +krt_scan_start(struct krt_proto *x) +{ + SCANOPT; + timer *t = tm_new(x->p.pool); + + p->timer = t; + t->hook = krt_scan_fire; + t->data = x; + t->recurrent = p->recurrence; + krt_scan_fire(t); + if (t->recurrent) + tm_start(t, t->recurrent); +} + +void +krt_scan_shutdown(struct krt_proto *x) +{ + SCANOPT; + + tm_stop(p->timer); +} diff --git a/sysdep/linux/krt-scan.h b/sysdep/linux/krt-scan.h new file mode 100644 index 0000000..1ea1ca7 --- /dev/null +++ b/sysdep/linux/krt-scan.h @@ -0,0 +1,17 @@ +/* + * BIRD -- Linux Kernel Route Syncer -- Scanning Parameters + * + * (c) 1998 Martin Mares <mj@ucw.cz> + * + * Can be freely distributed and used under the terms of the GNU GPL. + */ + +#ifndef _BIRD_KRT_SCAN_H_ +#define _BIRD_KRT_SCAN_H_ + +struct krt_scan_params { + int recurrence; /* How often should we scan krt, 0=only on startup */ + struct timer *timer; +}; + +#endif |