Yes, joining the crew. Sorry for being late. Added dummy functions for OSPF.
This commit is contained in:
parent
2575593e0f
commit
c1f8dc9149
7 changed files with 141 additions and 1 deletions
|
@ -8,7 +8,7 @@ AC_CONFIG_AUX_DIR(tools)
|
||||||
|
|
||||||
AC_ARG_ENABLE(debug,[ --enable-debug enable internal debugging routines (default: enabled)],,enable_debug=yes)
|
AC_ARG_ENABLE(debug,[ --enable-debug enable internal debugging routines (default: enabled)],,enable_debug=yes)
|
||||||
AC_ARG_WITH(sysconfig,[ --with-sysconfig=FILE use specified BIRD system configuration file])
|
AC_ARG_WITH(sysconfig,[ --with-sysconfig=FILE use specified BIRD system configuration file])
|
||||||
AC_ARG_WITH(protocols,[ --with-protocols=LIST include specified routing protocols (default: rip,static)],,[with_protocols="rip,static"])
|
AC_ARG_WITH(protocols,[ --with-protocols=LIST include specified routing protocols (default: rip,static)],,[with_protocols="rip,static,ospf"])
|
||||||
|
|
||||||
if test "$srcdir" = . ; then
|
if test "$srcdir" = . ; then
|
||||||
# Building in current directory => create obj directory holding all objects
|
# Building in current directory => create obj directory holding all objects
|
||||||
|
|
|
@ -263,6 +263,9 @@ protos_build(void)
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_STATIC
|
#ifdef CONFIG_STATIC
|
||||||
add_tail(&protocol_list, &proto_static.n);
|
add_tail(&protocol_list, &proto_static.n);
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_OSPF
|
||||||
|
add_tail(&protocol_list, &proto_ospf.n);
|
||||||
#endif
|
#endif
|
||||||
proto_pool = rp_new(&root_pool, "Protocols");
|
proto_pool = rp_new(&root_pool, "Protocols");
|
||||||
proto_flush_event = ev_new(proto_pool);
|
proto_flush_event = ev_new(proto_pool);
|
||||||
|
|
|
@ -58,6 +58,7 @@ extern list protocol_list;
|
||||||
extern struct protocol proto_device;
|
extern struct protocol proto_device;
|
||||||
extern struct protocol proto_rip;
|
extern struct protocol proto_rip;
|
||||||
extern struct protocol proto_static;
|
extern struct protocol proto_static;
|
||||||
|
extern struct protocol proto_ospf;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Routing Protocol Instance
|
* Routing Protocol Instance
|
||||||
|
|
6
proto/ospf/Makefile
Normal file
6
proto/ospf/Makefile
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
source=ospf.c
|
||||||
|
root-rel=../../
|
||||||
|
dir-name=proto/ospf
|
||||||
|
|
||||||
|
include ../../Rules
|
||||||
|
|
39
proto/ospf/config.Y
Normal file
39
proto/ospf/config.Y
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
/*
|
||||||
|
* BIRD -- OSPF Configuration
|
||||||
|
*
|
||||||
|
* (c) 1999 Ondrej Filip <feela@network.cz>
|
||||||
|
*
|
||||||
|
* Can be freely distributed and used under the terms of the GNU GPL.
|
||||||
|
*/
|
||||||
|
|
||||||
|
CF_HDR
|
||||||
|
|
||||||
|
#include "proto/ospf/ospf.h"
|
||||||
|
|
||||||
|
CF_DECLS
|
||||||
|
|
||||||
|
CF_KEYWORDS(OSPF, AREA)
|
||||||
|
|
||||||
|
CF_GRAMMAR
|
||||||
|
|
||||||
|
CF_ADDTO(proto, ospf_proto '}')
|
||||||
|
|
||||||
|
ospf_proto_start: proto_start OSPF {
|
||||||
|
this_proto = proto_config_new(&proto_ospf, sizeof(struct ospf_config));
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
ospf_proto:
|
||||||
|
ospf_proto_start proto_name '{'
|
||||||
|
| ospf_proto proto_item ';'
|
||||||
|
| ospf_proto ospf_area ';'
|
||||||
|
;
|
||||||
|
|
||||||
|
ospf_area: AREA IPA {
|
||||||
|
((struct ospf_config *)this_proto)->area = $2;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
CF_CODE
|
||||||
|
|
||||||
|
CF_END
|
74
proto/ospf/ospf.c
Normal file
74
proto/ospf/ospf.c
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
/*
|
||||||
|
* BIRD -- OSPF
|
||||||
|
*
|
||||||
|
* (c) 1999 Ondrej Filip <feela@network.cz>
|
||||||
|
*
|
||||||
|
* Can be freely distributed and used under the terms of the GNU GPL.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define LOCAL_DEBUG
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "nest/bird.h"
|
||||||
|
#include "nest/iface.h"
|
||||||
|
#include "nest/protocol.h"
|
||||||
|
#include "nest/route.h"
|
||||||
|
#include "conf/conf.h"
|
||||||
|
|
||||||
|
#include "ospf.h"
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
ospf_start(struct proto *p)
|
||||||
|
{
|
||||||
|
struct ospf_config *c = (void *) p->cf;
|
||||||
|
|
||||||
|
DBG(" OSPF: Start\n");
|
||||||
|
return PS_UP;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
ospf_dump(struct proto *p)
|
||||||
|
{
|
||||||
|
char areastr[20];
|
||||||
|
struct ospf_config *c = (void *) p->cf;
|
||||||
|
|
||||||
|
DBG(" OSPF: Dump.\n");
|
||||||
|
debug(" -AreaID: %d\n", c->area );
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct proto *
|
||||||
|
ospf_init(struct proto_config *c)
|
||||||
|
{
|
||||||
|
struct proto *p = proto_new(c, sizeof(struct proto));
|
||||||
|
|
||||||
|
DBG(" OSPF: Init.\n");
|
||||||
|
p->neigh_notify = NULL;
|
||||||
|
p->if_notify = NULL;
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
ospf_preconfig(struct protocol *x, struct config *c)
|
||||||
|
{
|
||||||
|
DBG( " OSPF: preconfig\n" );
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
ospf_postconfig(struct proto_config *c)
|
||||||
|
{
|
||||||
|
DBG( " OSPF: postconfig\n" );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
struct protocol proto_ospf = {
|
||||||
|
name: "OSPF",
|
||||||
|
init: ospf_init,
|
||||||
|
dump: ospf_dump,
|
||||||
|
start: ospf_start,
|
||||||
|
preconfig: ospf_preconfig,
|
||||||
|
postconfig: ospf_postconfig,
|
||||||
|
|
||||||
|
};
|
||||||
|
|
17
proto/ospf/ospf.h
Normal file
17
proto/ospf/ospf.h
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
/*
|
||||||
|
* BIRD -- OSPF
|
||||||
|
*
|
||||||
|
* (c) 1999 Ondrej Filip <feela@network.cz>
|
||||||
|
*
|
||||||
|
* Can be freely distributed and used under the terms of the GNU GPL.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _BIRD_OSPF_H_
|
||||||
|
#define _BIRD_OSPF_H_
|
||||||
|
|
||||||
|
struct ospf_config {
|
||||||
|
struct proto_config c;
|
||||||
|
ip_addr area; /* Area ID */
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* _BIRD_OSPF_H_ */
|
Loading…
Reference in a new issue