diff options
author | Martin Mares <mj@ucw.cz> | 2000-03-19 22:09:07 +0000 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 2000-03-19 22:09:07 +0000 |
commit | 2638249d34cc7f600fba25edd29538c00a3aca31 (patch) | |
tree | 206aeb113f3822d08385cae49e9b5e1bbe6796fb /proto/bgp/bgp.c | |
parent | 349e21bb0bb7584fb18c19859d876893c3130947 (diff) |
Bare skeleton of the BGP.
Diffstat (limited to 'proto/bgp/bgp.c')
-rw-r--r-- | proto/bgp/bgp.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c new file mode 100644 index 00000000..26e39061 --- /dev/null +++ b/proto/bgp/bgp.c @@ -0,0 +1,68 @@ +/* + * BIRD -- The Border Gateway Protocol + * + * (c) 2000 Martin Mares <mj@ucw.cz> + * + * Can be freely distributed and used under the terms of the GNU GPL. + */ + +#define LOCAL_DEBUG + +#include "nest/bird.h" +#include "nest/iface.h" +#include "nest/protocol.h" +#include "nest/route.h" +#include "conf/conf.h" + +#include "bgp.h" + +static void +bgp_rt_notify(struct proto *P, net *n, rte *new, rte *old, ea_list *tmpa) +{ +} + +static struct proto * +bgp_init(struct proto_config *C) +{ + struct bgp_config *c = (struct bgp_config *) C; + struct proto *P = proto_new(C, sizeof(struct bgp_proto)); + struct bgp_proto *p = (struct bgp_proto *) P; + + P->rt_notify = bgp_rt_notify; + return P; +} + +static int +bgp_start(struct proto *P) +{ + return PS_UP; +} + +static int +bgp_shutdown(struct proto *P) +{ + return PS_DOWN; +} + +void +bgp_check(struct bgp_config *c) +{ + if (!c->local_as) + cf_error("Local AS number must be set"); + if (!c->remote_as) + cf_error("Neighbor must be configured"); +} + +struct protocol proto_bgp = { + name: "BGP", + template: "bgp%d", + init: bgp_init, + start: bgp_start, + shutdown: bgp_shutdown, +#if 0 + dump: bgp_dump, + get_status: bgp_get_status, + get_route_info: bgp_get_route_info, + show_route_data: bgp_show_route_data +#endif +}; |