1
0
mirror of https://gitlab.labs.nic.cz/labs/bird.git synced 2024-05-11 16:54:54 +00:00

Moved to a much more systematic way of configuring kernel protocols.

o  Nothing is configured automatically. You _need_ to specify
     the kernel syncer in config file in order to get it started.
  o  Syncing has been split to route syncer (protocol "Kernel") and
     interface syncer (protocol "Device"), device routes are generated
     by protocol "Direct" (now can exist in multiple instances, so that
     it will be possible to feed different device routes to different
     routing tables once multiple tables get supported).

See doc/bird.conf.example for a living example of these shiny features.
This commit is contained in:
Martin Mares
1999-03-26 21:44:38 +00:00
parent 739ebd8e82
commit 7e5f5ffdda
13 changed files with 212 additions and 99 deletions

View File

@@ -18,8 +18,6 @@
#include "conf/conf.h"
#include "lib/resource.h"
struct proto_config *cf_dev_proto;
static void
dev_if_notify(struct proto *p, unsigned c, struct iface *new, struct iface *old)
{
@@ -77,22 +75,8 @@ dev_init(struct proto_config *c)
return p;
}
static void
dev_preconfig(struct protocol *x, struct config *c)
{
struct rt_dev_config *p = proto_config_new(&proto_device, sizeof(struct rt_dev_config));
struct iface_patt *k = cfg_alloc(sizeof(struct iface_patt));
cf_dev_proto = &p->c;
p->c.preference = DEF_PREF_DIRECT;
init_list(&p->iface_list);
k->pattern = "*";
add_tail(&p->iface_list, &k->n);
}
struct protocol proto_device = {
name: "Device",
priority: 100,
preconfig: dev_preconfig,
name: "Direct",
priority: 90,
init: dev_init,
};