0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 09:41:54 +00:00
bird/filter/filter.h
Martin Mares e0f2e42f4f A couple of filter tweaks:
o  Introduced struct filter which serves as an external reference
      to filter. Using struct symbol for this is unwise since it doesn't
      allow extra information attached to the filter and it also forces
      all filters to be named.
   o  Implemented config rule 'filter' which matches either named filter
      or an embedded unnamed filter (`{ <filter> }').
   o  Fixed totally bogus comment at the top of filter.h.
   o  Added a missing prototype for f_run() to filter.h.
1999-03-17 14:29:39 +00:00

50 lines
837 B
C

/*
* BIRD Internet Routing Daemon -- Filters
*
* (c) 1999 Pavel Machek <pavel@ucw.cz>
*
* Can be freely distributed and used under the terms of the GNU GPL.
*/
#ifndef _BIRD_FILT_H_
#define _BIRD_FILT_H_
#include "lib/resource.h"
struct f_inst { /* Instruction */
struct f_inst *next; /* Structure is 16 bytes, anyway */
int code;
void *arg1, *arg2;
};
struct f_val {
int type;
union {
int i;
} val;
};
struct filter {
char *name;
struct f_inst *root;
};
void filters_postconfig(void);
struct f_inst *f_new_inst(void);
int f_run(struct filter *filter, struct rte *rtein, struct rte **rteout);
#define F_ACCEPT 1
#define F_REJECT 2
#define F_MODIFY 3
#define F_ERROR 4
#define F_QUITBIRD 5
#define T_VOID 0
#define T_RETURN 1
#define T_INT 10
#define T_PX 11 /* prefix */
#define T_INTLIST 12
#endif