]> git.ipfire.org Git - thirdparty/bird.git/blobdiff - conf/flowspec.Y
Merge commit 'e42eedb9' into haugesund
[thirdparty/bird.git] / conf / flowspec.Y
index a47d453b790d61b8822ab079d1f7d4b1c0b188df..56a7c5dcadea1db6f922ca31cfd86a8ef6662927 100644 (file)
@@ -11,16 +11,6 @@ CF_HDR
 #define PARSER 1
 
 #include "nest/bird.h"
-#include "conf/conf.h"
-#include "lib/resource.h"
-#include "lib/socket.h"
-#include "sysdep/unix/timer.h"
-#include "lib/string.h"
-#include "nest/protocol.h"
-#include "nest/iface.h"
-#include "nest/route.h"
-#include "nest/cli.h"
-#include "filter/filter.h"
 #include "lib/flowspec.h"
 
 
@@ -44,19 +34,19 @@ CF_GRAMMAR
 /* Network Flow Specification */
 
 flow_num_op:
-   TRUE                { $$ = 0b000; }
- | '='         { $$ = 0b001; }
- | NEQ         { $$ = 0b110; }
- | '<'         { $$ = 0b100; }
- | LEQ         { $$ = 0b101; }
- | '>'         { $$ = 0b010; }
- | GEQ         { $$ = 0b011; }
- | FALSE       { $$ = 0b111; }
+   TRUE                { $$ = FLOW_OP_TRUE; }
+ | '='         { $$ = FLOW_OP_EQ;  }
+ | NEQ         { $$ = FLOW_OP_NEQ; }
+ | '<'         { $$ = FLOW_OP_LT;  }
+ | LEQ         { $$ = FLOW_OP_LEQ; }
+ | '>'         { $$ = FLOW_OP_GT;  }
+ | GEQ         { $$ = FLOW_OP_GEQ; }
+ | FALSE       { $$ = FLOW_OP_FALSE; }
  ;
 
 flow_logic_op:
-   OR          { $$ = 0x00; }
- | AND         { $$ = 0x40; }
+   OR          { $$ = FLOW_OP_OR; }
+ | AND         { $$ = FLOW_OP_AND; }
  ;
 
 flow_num_type_:
@@ -69,12 +59,12 @@ flow_num_type_:
  | ICMP CODE   { $$ = FLOW_TYPE_ICMP_CODE; }
  | LENGTH      { $$ = FLOW_TYPE_PACKET_LENGTH; }
  | DSCP                { $$ = FLOW_TYPE_DSCP; }
+ | LABEL       { $$ = FLOW_TYPE_LABEL; }
  ;
 
 flow_num_type: flow_num_type_{ flow_builder_set_type(this_flow, $1); };
 flow_flag_type: TCP FLAGS    { flow_builder_set_type(this_flow, FLOW_TYPE_TCP_FLAGS); };
 flow_frag_type: FRAGMENT     { flow_builder_set_type(this_flow, FLOW_TYPE_FRAGMENT); };
-flow_label_type: LABEL       { flow_builder_set_type(this_flow, FLOW_TYPE_LABEL); };
 
 flow_srcdst:
    DST         { $$ = FLOW_TYPE_DST_PREFIX; }
@@ -97,13 +87,13 @@ flow_num_opts:
 flow_num_opt_ext_expr:
    expr {
      flow_check_cf_value_length(this_flow, $1);
-     flow_builder_add_op_val(this_flow, 0b001, $1);
+     flow_builder_add_op_val(this_flow, FLOW_OP_EQ, $1);
    }
  | expr DDOT expr {
      flow_check_cf_value_length(this_flow, $1);
      flow_check_cf_value_length(this_flow, $3);
-     flow_builder_add_op_val(this_flow, 0b011, $1); /* >= */
-     flow_builder_add_op_val(this_flow, 0x40 | 0b101, $3); /* AND <= */
+     flow_builder_add_op_val(this_flow, FLOW_OP_GEQ, $1);
+     flow_builder_add_op_val(this_flow, FLOW_OP_AND | FLOW_OP_LEQ, $3);
    }
  ;
 
@@ -175,7 +165,6 @@ flow6_item:
  | flow_num_type flow_num_opts
  | flow_flag_type flow_bmk_opts
  | flow_frag_type flow_frag_opts
- | flow_label_type flow_bmk_opts
  ;
 
 flow4_opts: