Commit bdb95a21 authored by Martin Mares's avatar Martin Mares
Browse files

Added skeletal version of Linux netlink interface. It doesn't work yet,

but the framework is there and I'll try finish it soon.
parent ea3582a6
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ Core
- kernel: RTM_F_NOTIFY seems to be unimplemented
- kernel: RTM_DELROUTE not announced for device routes

- netlink: import Linux route attributes to our rta's, so that they can be filtered?

Cleanup
~~~~~~~
- right usage of DBG vs. debug
+2 −1
Original line number Diff line number Diff line
/*
 *	Configuration for Linux 2.1 based systems
 *
 *	(c) 1998 Martin Mares <mj@ucw.cz>
 *	(c) 1998--1999 Martin Mares <mj@ucw.cz>
 *
 *	Can be freely distributed and used under the terms of the GNU GPL.
 */
@@ -13,6 +13,7 @@
#define CONFIG_ALL_MULTICAST

/*
Link: sysdep/linux/netlink
Link: sysdep/linux
Link: sysdep/unix
 */
+1 −3
Original line number Diff line number Diff line
#ifdef CONFIG_NETLINK
netlink.c
#else
#ifndef CONFIG_NETLINK
krt-scan.c
krt-scan.h
krt-scan.Y
+3 −0
Original line number Diff line number Diff line
krt.c
krt.h
krt.Y
+46 −0
Original line number Diff line number Diff line
/*
 *	BIRD -- Netlink Interface Configuration
 *
 *	(c) 1999 Martin Mares <mj@ucw.cz>
 *
 *	Can be freely distributed and used under the terms of the GNU GPL.
 */

CF_HDR

#include "lib/krt.h"

#define KRT_PROTO ((struct krt_config *) this_proto)

CF_DECLS

CF_KEYWORDS(KERNEL, PERSIST, ROUTE, SCAN, TIME, LEARN)

CF_GRAMMAR

/* Kernel protocol */

CF_ADDTO(proto, kern_proto '}')

kern_proto_start: proto_start KERNEL {
     if (!(this_proto = cf_krt)) cf_error("Kernel protocol already defined");
     cf_krt = NULL;
   }
 ;

kern_proto:
   kern_proto_start '{'
 | kern_proto proto_item ';'
 | kern_proto kern_item ';'
 ;

kern_item:
   PERSIST bool { KRT_PROTO->persist = $2; }
 | SCAN TIME expr { KRT_PROTO->scan_time = $3; }
 | LEARN bool { KRT_PROTO->learn = $2; }
 | ROUTE SCAN TIME expr { KRT_PROTO->route_scan_time = $4; }
 ;

CF_CODE

CF_END
Loading