summaryrefslogtreecommitdiffstats
path: root/filter/filter.h
diff options
context:
space:
mode:
authorPavel Machek <pavel@ucw.cz>1999-10-12 08:27:42 +0200
committerPavel Machek <pavel@ucw.cz>1999-10-12 08:27:42 +0200
commitd3dd620b96c5960207b9321b416423b8130a4df7 (patch)
tree984834ecea383ef4a3b6b6e76c487cb6d187e886 /filter/filter.h
parentc79ec2ec1962394f1550afa10a8b396f0e4dfc52 (diff)
downloadbird-d3dd620b96c5960207b9321b416423b8130a4df7.tar
bird-d3dd620b96c5960207b9321b416423b8130a4df7.zip
Filters: permit variables of prefix types, cleanup around
variables. TODO list added, hopefully complete. Use new features of filters in bird.conf
Diffstat (limited to 'filter/filter.h')
-rw-r--r--filter/filter.h18
1 files changed, 13 insertions, 5 deletions
diff --git a/filter/filter.h b/filter/filter.h
index f32a98e..ac7162e 100644
--- a/filter/filter.h
+++ b/filter/filter.h
@@ -31,6 +31,11 @@ struct f_inst { /* Instruction */
struct prefix {
ip_addr ip;
int len;
+#define LEN_MASK 0xff
+#define LEN_PLUS 0x10000
+#define LEN_MINUS 0x20000
+#define LEN_RANGE 0x40000
+ /* If range then prefix must be in range (len >> 8 & 0xff, len & 0xff) */
};
struct f_val {
@@ -66,11 +71,12 @@ int val_compare(struct f_val v1, struct f_val v2);
void val_print(struct f_val v);
#define F_NOP 0
-#define F_ACCEPT 1 /* Need to preserve ordering: accepts < rejects! */
-#define F_MODIFY 2 /* FIXME: Introduce modification flags instead? */
-#define F_REJECT 3
-#define F_ERROR 4
-#define F_QUITBIRD 5
+#define F_NONL 1
+#define F_ACCEPT 2 /* Need to preserve ordering: accepts < rejects! */
+#define F_MODIFY 3 /* FIXME: Introduce modification flags instead? */
+#define F_REJECT 4
+#define F_ERROR 5
+#define F_QUITBIRD 6
#define FILTER_ACCEPT NULL
#define FILTER_REJECT ((void *) 1)
@@ -101,4 +107,6 @@ struct f_tree {
void *data;
};
+#define NEW_F_VAL struct f_val * val; val = cfg_alloc(sizeof(struct f_val));
+
#endif