%token NAT "nat"
%token ROUTE "route"
+%token LOOSE "loose"
+%token SKIP "skip"
+
%type <limit_rate> limit_rate_pkts
%type <limit_rate> limit_rate_bytes
}
;
-osf_ttl : /* empty */
- {
- $$ = NF_OSF_TTL_TRUE;
- }
- | TTL STRING
- {
- if (!strcmp($2, "loose"))
- $$ = NF_OSF_TTL_LESS;
- else if (!strcmp($2, "skip"))
- $$ = NF_OSF_TTL_NOCHECK;
- else {
- erec_queue(error(&@2, "invalid ttl option"),
- state->msgs);
- free_const($2);
- YYERROR;
- }
- free_const($2);
- }
+osf_ttl : /* empty */ { $$ = NF_OSF_TTL_TRUE; }
+ | TTL LOOSE { $$ = NF_OSF_TTL_LESS; }
+ | TTL SKIP { $$ = NF_OSF_TTL_NOCHECK; }
;
shift_expr : primary_expr
<SCANSTATE_EXPR_OSF,SCANSTATE_IP>{
"ttl" { return TTL; }
}
+
+<SCANSTATE_EXPR_OSF>{
+ "loose" { return LOOSE; }
+ "skip" { return SKIP; }
+}
+
<SCANSTATE_CT,SCANSTATE_IP,SCANSTATE_META,SCANSTATE_TYPE,SCANSTATE_GRE>"protocol" { return PROTOCOL; }
<SCANSTATE_EXPR_MH,SCANSTATE_EXPR_UDP,SCANSTATE_EXPR_UDPLITE,SCANSTATE_ICMP,SCANSTATE_IGMP,SCANSTATE_IP,SCANSTATE_SCTP,SCANSTATE_TCP>{
"checksum" { return CHECKSUM; }