summaryrefslogtreecommitdiffstats
path: root/filter/filter.h
diff options
context:
space:
mode:
authorPavel Machek <pavel@ucw.cz>2000-04-12 15:31:39 +0200
committerPavel Machek <pavel@ucw.cz>2000-04-12 15:31:39 +0200
commit10a53608860724c47596948f2fd426d4eca8224d (patch)
treeac3bfd9e753e16d0ae61de59adfbf9745276b749 /filter/filter.h
parent775063494694d247b340bb1145e509e31af27802 (diff)
downloadbird-10a53608860724c47596948f2fd426d4eca8224d.tar
bird-10a53608860724c47596948f2fd426d4eca8224d.zip
Filters now know type path. It is possible to declare variable of type
path, but it is not possible to write constant of type path. It should be possible to print paths and match them.
Diffstat (limited to 'filter/filter.h')
-rw-r--r--filter/filter.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/filter/filter.h b/filter/filter.h
index ab33739..45f9cd6 100644
--- a/filter/filter.h
+++ b/filter/filter.h
@@ -39,6 +39,11 @@ struct prefix {
/* If range then prefix must be in range (len >> 16 & 0xff, len >> 8 & 0xff) */
};
+struct f_path_mask {
+ struct f_path_mask *next;
+ int val;
+};
+
struct f_val {
int type;
union {
@@ -47,14 +52,11 @@ struct f_val {
struct prefix px;
char *s;
struct f_tree *t;
+ struct adata *ad;
+ struct f_path_mask *path_mask;
} val;
};
-struct f_path_mask {
- struct f_path_mask *next;
- int val;
-};
-
struct filter {
char *name;
struct f_inst *root;
@@ -116,6 +118,8 @@ void val_print(struct f_val v);
#define T_PREFIX 0x21
#define T_STRING 0x22
#define T_PATH_MASK 0x23 /* mask for BGP path */
+#define T_PATH 0x24 /* BGP path */
+#define T_CLIST 0x25 /* Community list */
#define T_RETURN 0x40
#define T_SET 0x80