@@ -391,7 +391,7 @@ DIAG_OFF_BISON_BYACC
391
391
392
392
%token DST SRC HOST GATEWAY
393
393
%token NET NETMASK PORT PORTRANGE LESS GREATER PROTO PROTOCHAIN CBYTE
394
- %token ARP RARP IP SCTP TCP UDP ICMP IGMP IGRP PIM VRRP CARP
394
+ %token ARP RARP IP SCTP TCP TCPFLAGS UDP ICMP IGMP IGRP PIM VRRP CARP
395
395
%token ATALK AARP DECNET LAT SCA MOPRC MOPDL
396
396
%token TK_BROADCAST TK_MULTICAST
397
397
%token NUM INBOUND OUTBOUND
@@ -854,7 +854,10 @@ irelop: LEQ { $$ = BPF_JGT; }
854
854
arth: pnum { CHECK_PTR_VAL(($$ = gen_loadi(cstate, $1))); }
855
855
| narth
856
856
;
857
- narth: pname '[' arth ']' { CHECK_PTR_VAL(($$ = gen_load(cstate, $1, $3, 1))); }
857
+ tcpflags: TCPFLAGS
858
+ ;
859
+ narth: pname '[' tcpflags ']' { CHECK_PTR_VAL(($$ = gen_load(cstate, $1, gen_loadi(cstate, 12), 2))); }
860
+ | pname '[' arth ']' { CHECK_PTR_VAL(($$ = gen_load(cstate, $1, $3, 1))); }
858
861
| pname '[' arth ':' NUM ']' { CHECK_PTR_VAL(($$ = gen_load(cstate, $1, $3, $5))); }
859
862
| arth '+' arth { CHECK_PTR_VAL(($$ = gen_arth(cstate, BPF_ADD, $1, $3))); }
860
863
| arth '-' arth { CHECK_PTR_VAL(($$ = gen_arth(cstate, BPF_SUB, $1, $3))); }
0 commit comments