| GCC Code Coverage Report | |||||||||||||||||||||
        
  | 
    |||||||||||||||||||||
| Line | Branch | Exec | Source | 
1  | 
    #include <stdlib.h>  | 
    ||
2  | 
    #include <string.h>  | 
    ||
3  | 
    #define YYBYACC 1  | 
    ||
4  | 
    #define YYMAJOR 1  | 
    ||
5  | 
    #define YYMINOR 9  | 
    ||
6  | 
    #define YYLEX yylex()  | 
    ||
7  | 
    #define YYEMPTY -1  | 
    ||
8  | 
    #define yyclearin (yychar=(YYEMPTY))  | 
    ||
9  | 
    #define yyerrok (yyerrflag=0)  | 
    ||
10  | 
    #define YYRECOVERING() (yyerrflag!=0)  | 
    ||
11  | 
    #define yyparse pcap_yyparse  | 
    ||
12  | 
    #define yylex pcap_yylex  | 
    ||
13  | 
    #define yyerror pcap_yyerror  | 
    ||
14  | 
    #define yychar pcap_yychar  | 
    ||
15  | 
    #define yyval pcap_yyval  | 
    ||
16  | 
    #define yylval pcap_yylval  | 
    ||
17  | 
    #define yydebug pcap_yydebug  | 
    ||
18  | 
    #define yynerrs pcap_yynerrs  | 
    ||
19  | 
    #define yyerrflag pcap_yyerrflag  | 
    ||
20  | 
    #define yyss pcap_yyss  | 
    ||
21  | 
    #define yysslim pcap_yysslim  | 
    ||
22  | 
    #define yyssp pcap_yyssp  | 
    ||
23  | 
    #define yyvs pcap_yyvs  | 
    ||
24  | 
    #define yyvsp pcap_yyvsp  | 
    ||
25  | 
    #define yystacksize pcap_yystacksize  | 
    ||
26  | 
    #define yylhs pcap_yylhs  | 
    ||
27  | 
    #define yylen pcap_yylen  | 
    ||
28  | 
    #define yydefred pcap_yydefred  | 
    ||
29  | 
    #define yydgoto pcap_yydgoto  | 
    ||
30  | 
    #define yysindex pcap_yysindex  | 
    ||
31  | 
    #define yyrindex pcap_yyrindex  | 
    ||
32  | 
    #define yygindex pcap_yygindex  | 
    ||
33  | 
    #define yytable pcap_yytable  | 
    ||
34  | 
    #define yycheck pcap_yycheck  | 
    ||
35  | 
    #define yyname pcap_yyname  | 
    ||
36  | 
    #define yyrule pcap_yyrule  | 
    ||
37  | 
    #define YYPREFIX "pcap_yy"  | 
    ||
38  | 
    #line 2 "grammar.y"  | 
    ||
39  | 
    /* $OpenBSD: grammar.y,v 1.19 2009/10/27 23:59:30 deraadt Exp $ */  | 
    ||
40  | 
    |||
41  | 
    /*  | 
    ||
42  | 
    * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996  | 
    ||
43  | 
    * The Regents of the University of California. All rights reserved.  | 
    ||
44  | 
    *  | 
    ||
45  | 
    * Redistribution and use in source and binary forms, with or without  | 
    ||
46  | 
    * modification, are permitted provided that: (1) source code distributions  | 
    ||
47  | 
    * retain the above copyright notice and this paragraph in its entirety, (2)  | 
    ||
48  | 
    * distributions including binary code include the above copyright notice and  | 
    ||
49  | 
    * this paragraph in its entirety in the documentation or other materials  | 
    ||
50  | 
    * provided with the distribution, and (3) all advertising materials mentioning  | 
    ||
51  | 
    * features or use of this software display the following acknowledgement:  | 
    ||
52  | 
    * ``This product includes software developed by the University of California,  | 
    ||
53  | 
    * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of  | 
    ||
54  | 
    * the University nor the names of its contributors may be used to endorse  | 
    ||
55  | 
    * or promote products derived from this software without specific prior  | 
    ||
56  | 
    * written permission.  | 
    ||
57  | 
    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED  | 
    ||
58  | 
    * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF  | 
    ||
59  | 
    * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  | 
    ||
60  | 
    *  | 
    ||
61  | 
    */  | 
    ||
62  | 
    |||
63  | 
    #include <sys/types.h>  | 
    ||
64  | 
    #include <sys/time.h>  | 
    ||
65  | 
    #include <sys/socket.h>  | 
    ||
66  | 
    |||
67  | 
    struct mbuf;  | 
    ||
68  | 
    struct rtentry;  | 
    ||
69  | 
    |||
70  | 
    #include <net/if.h>  | 
    ||
71  | 
    |||
72  | 
    #include <netinet/in.h>  | 
    ||
73  | 
    #include <netinet/if_ether.h>  | 
    ||
74  | 
    |||
75  | 
    #include <net/pfvar.h>  | 
    ||
76  | 
    |||
77  | 
    #include <net80211/ieee80211.h>  | 
    ||
78  | 
    |||
79  | 
    #include <stdio.h>  | 
    ||
80  | 
    #include <string.h>  | 
    ||
81  | 
    |||
82  | 
    #include "pcap-int.h"  | 
    ||
83  | 
    |||
84  | 
    #include "gencode.h"  | 
    ||
85  | 
    #include <pcap-namedb.h>  | 
    ||
86  | 
    |||
87  | 
    #ifdef HAVE_OS_PROTO_H  | 
    ||
88  | 
    #include "os-proto.h"  | 
    ||
89  | 
    #endif  | 
    ||
90  | 
    |||
91  | 
    #define QSET(q, p, d, a) (q).proto = (p),\  | 
    ||
92  | 
    (q).dir = (d),\  | 
    ||
93  | 
    (q).addr = (a)  | 
    ||
94  | 
    |||
95  | 
    int n_errors = 0;  | 
    ||
96  | 
    |||
97  | 
    static struct qual qerr = { Q_UNDEF, Q_UNDEF, Q_UNDEF, Q_UNDEF }; | 
    ||
98  | 
    |||
99  | 
    static void  | 
    ||
100  | 
    yyerror(char *msg)  | 
    ||
101  | 
    { | 
    ||
102  | 
    ++n_errors;  | 
    ||
103  | 
    	bpf_error("%s", msg); | 
    ||
104  | 
    /* NOTREACHED */  | 
    ||
105  | 
    }  | 
    ||
106  | 
    |||
107  | 
    #ifndef YYBISON  | 
    ||
108  | 
    int yyparse(void);  | 
    ||
109  | 
    |||
110  | 
    int  | 
    ||
111  | 
    pcap_parse()  | 
    ||
112  | 
    { | 
    ||
113  | 
    return (yyparse());  | 
    ||
114  | 
    }  | 
    ||
115  | 
    #endif  | 
    ||
116  | 
    |||
117  | 
    #line 82 "grammar.y"  | 
    ||
118  | 
    #ifndef YYSTYPE_DEFINED  | 
    ||
119  | 
    #define YYSTYPE_DEFINED  | 
    ||
120  | 
    typedef union { | 
    ||
121  | 
    int i;  | 
    ||
122  | 
    bpf_u_int32 h;  | 
    ||
123  | 
    u_char *e;  | 
    ||
124  | 
    char *s;  | 
    ||
125  | 
    struct stmt *stmt;  | 
    ||
126  | 
    struct arth *a;  | 
    ||
127  | 
    	struct { | 
    ||
128  | 
    struct qual q;  | 
    ||
129  | 
    struct block *b;  | 
    ||
130  | 
    } blk;  | 
    ||
131  | 
    struct block *rblk;  | 
    ||
132  | 
    } YYSTYPE;  | 
    ||
133  | 
    #endif /* YYSTYPE_DEFINED */  | 
    ||
134  | 
    #line 135 "grammar.c"  | 
    ||
135  | 
    #define DST 257  | 
    ||
136  | 
    2  | 
    #define SRC 258  | 
    |
137  | 
    #define HOST 259  | 
    ||
138  | 
    2  | 
    #define GATEWAY 260  | 
    |
139  | 
    #define NET 261  | 
    ||
140  | 
    2  | 
    #define MASK 262  | 
    |
141  | 
    2  | 
    #define PORT 263  | 
    |
142  | 
    #define LESS 264  | 
    ||
143  | 
    2  | 
    #define GREATER 265  | 
    |
144  | 
    2  | 
    #define PROTO 266  | 
    |
145  | 
    #define PROTOCHAIN 267  | 
    ||
146  | 
    #define BYTE 268  | 
    ||
147  | 
    #define ARP 269  | 
    ||
148  | 
    2  | 
    #define RARP 270  | 
    |
149  | 
    2  | 
    #define IP 271  | 
    |
150  | 
    #define TCP 272  | 
    ||
151  | 
    #define UDP 273  | 
    ||
152  | 
    #define ICMP 274  | 
    ||
153  | 
    #define IGMP 275  | 
    ||
154  | 
    #define IGRP 276  | 
    ||
155  | 
    #define PIM 277  | 
    ||
156  | 
    #define ATALK 278  | 
    ||
157  | 
    #define DECNET 279  | 
    ||
158  | 
    #define LAT 280  | 
    ||
159  | 
    #define SCA 281  | 
    ||
160  | 
    #define MOPRC 282  | 
    ||
161  | 
    #define MOPDL 283  | 
    ||
162  | 
    #define STP 284  | 
    ||
163  | 
    #define TK_BROADCAST 285  | 
    ||
164  | 
    #define TK_MULTICAST 286  | 
    ||
165  | 
    #define NUM 287  | 
    ||
166  | 
    #define INBOUND 288  | 
    ||
167  | 
    #define OUTBOUND 289  | 
    ||
168  | 
    #define PF_IFNAME 290  | 
    ||
169  | 
    #define PF_RSET 291  | 
    ||
170  | 
    #define PF_RNR 292  | 
    ||
171  | 
    #define PF_SRNR 293  | 
    ||
172  | 
    #define PF_REASON 294  | 
    ||
173  | 
    #define PF_ACTION 295  | 
    ||
174  | 
    #define TYPE 296  | 
    ||
175  | 
    #define SUBTYPE 297  | 
    ||
176  | 
    #define DIR 298  | 
    ||
177  | 
    #define ADDR1 299  | 
    ||
178  | 
    #define ADDR2 300  | 
    ||
179  | 
    #define ADDR3 301  | 
    ||
180  | 
    #define ADDR4 302  | 
    ||
181  | 
    #define LINK 303  | 
    ||
182  | 
    #define GEQ 304  | 
    ||
183  | 
    #define LEQ 305  | 
    ||
184  | 
    #define NEQ 306  | 
    ||
185  | 
    #define ID 307  | 
    ||
186  | 
    #define EID 308  | 
    ||
187  | 
    #define HID 309  | 
    ||
188  | 
    #define HID6 310  | 
    ||
189  | 
    #define LSH 311  | 
    ||
190  | 
    #define RSH 312  | 
    ||
191  | 
    #define LEN 313  | 
    ||
192  | 
    #define IPV6 314  | 
    ||
193  | 
    #define ICMPV6 315  | 
    ||
194  | 
    #define AH 316  | 
    ||
195  | 
    #define ESP 317  | 
    ||
196  | 
    #define VLAN 318  | 
    ||
197  | 
    #define OR 319  | 
    ||
198  | 
    #define AND 320  | 
    ||
199  | 
    #define UMINUS 321  | 
    ||
200  | 
    #define YYERRCODE 256  | 
    ||
201  | 
    const short pcap_yylhs[] =  | 
    ||
202  | 
    	{                                        -1, | 
    ||
203  | 
    0, 0, 24, 1, 1, 1, 1, 1, 20, 21,  | 
    ||
204  | 
    2, 2, 2, 3, 3, 3, 3, 3, 3, 3,  | 
    ||
205  | 
    3, 23, 22, 4, 4, 4, 7, 7, 5, 5,  | 
    ||
206  | 
    8, 8, 8, 8, 8, 8, 6, 6, 6, 6,  | 
    ||
207  | 
    6, 6, 9, 9, 10, 10, 10, 10, 10, 10,  | 
    ||
208  | 
    10, 10, 10, 10, 11, 11, 11, 12, 16, 16,  | 
    ||
209  | 
    16, 16, 16, 16, 16, 16, 16, 16, 16, 16,  | 
    ||
210  | 
    16, 16, 16, 16, 16, 16, 16, 16, 16, 25,  | 
    ||
211  | 
    25, 25, 25, 25, 25, 25, 25, 25, 25, 25,  | 
    ||
212  | 
    26, 26, 26, 26, 26, 26, 29, 29, 28, 27,  | 
    ||
213  | 
    27, 27, 27, 30, 30, 31, 31, 32, 32, 18,  | 
    ||
214  | 
    18, 18, 19, 19, 19, 13, 13, 14, 14, 14,  | 
    ||
215  | 
    14, 14, 14, 14, 14, 14, 14, 14, 14, 14,  | 
    ||
216  | 
    15, 15, 15, 15, 15, 17, 17,  | 
    ||
217  | 
    };  | 
    ||
218  | 
    const short pcap_yylen[] =  | 
    ||
219  | 
    2  | 
    	{                                         2, | 
    |
220  | 
    4  | 
    2, 1, 0, 1, 3, 3, 3, 3, 1, 1,  | 
    |
221  | 
    2  | 
    1, 1, 3, 1, 3, 3, 1, 3, 1, 1,  | 
    |
222  | 
    2  | 
    2, 1, 1, 1, 3, 3, 1, 1, 1, 2,  | 
    |
223  | 
    3, 2, 2, 2, 2, 2, 2, 3, 1, 3,  | 
    ||
224  | 
    3, 1, 1, 0, 1, 1, 3, 3, 3, 3,  | 
    ||
225  | 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  | 
    ||
226  | 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  | 
    ||
227  | 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 2,  | 
    ||
228  | 
    2, 2, 2, 4, 1, 1, 2, 1, 1, 2,  | 
    ||
229  | 
    2, 2, 2, 2, 2, 2, 1, 1, 1, 4,  | 
    ||
230  | 
    2, 2, 2, 1, 1, 1, 1, 1, 1, 1,  | 
    ||
231  | 
    1, 1, 1, 1, 1, 1, 1, 4, 6, 3,  | 
    ||
232  | 
    3, 3, 3, 3, 3, 3, 3, 2, 3, 1,  | 
    ||
233  | 
    1, 1, 1, 1, 1, 1, 3,  | 
    ||
234  | 
    };  | 
    ||
235  | 
    const short pcap_yydefred[] =  | 
    ||
236  | 
    	{                                      3, | 
    ||
237  | 
    0, 0, 0, 0, 0, 61, 62, 60, 63, 64,  | 
    ||
238  | 
    65, 66, 67, 68, 69, 70, 71, 72, 74, 73,  | 
    ||
239  | 
    79, 136, 85, 86, 0, 0, 0, 0, 0, 0,  | 
    ||
240  | 
    59, 130, 75, 76, 77, 78, 0, 22, 0, 23,  | 
    ||
241  | 
    0, 4, 29, 0, 0, 0, 117, 0, 116, 0,  | 
    ||
242  | 
    0, 42, 89, 82, 83, 0, 91, 92, 93, 94,  | 
    ||
243  | 
    97, 98, 95, 99, 96, 87, 0, 128, 0, 0,  | 
    ||
244  | 
    10, 9, 0, 0, 14, 20, 0, 0, 37, 11,  | 
    ||
245  | 
    12, 0, 0, 0, 0, 55, 58, 56, 57, 34,  | 
    ||
246  | 
    35, 80, 81, 0, 0, 0, 51, 52, 53, 54,  | 
    ||
247  | 
    0, 33, 36, 90, 111, 113, 115, 0, 0, 0,  | 
    ||
248  | 
    0, 0, 0, 0, 0, 110, 112, 114, 0, 0,  | 
    ||
249  | 
    0, 0, 0, 0, 30, 132, 131, 134, 135, 133,  | 
    ||
250  | 
    0, 0, 0, 6, 5, 0, 0, 0, 8, 7,  | 
    ||
251  | 
    0, 0, 0, 24, 0, 0, 0, 21, 0, 0,  | 
    ||
252  | 
    0, 0, 104, 105, 0, 106, 107, 102, 108, 109,  | 
    ||
253  | 
    103, 31, 0, 0, 0, 0, 0, 0, 122, 123,  | 
    ||
254  | 
    0, 0, 0, 38, 129, 137, 84, 0, 16, 15,  | 
    ||
255  | 
    18, 13, 0, 0, 48, 50, 47, 49, 0, 118,  | 
    ||
256  | 
    0, 25, 26, 100, 0, 119,  | 
    ||
257  | 
    };  | 
    ||
258  | 
    const short pcap_yydgoto[] =  | 
    ||
259  | 
    	{                                       1, | 
    ||
260  | 
    122, 148, 80, 145, 42, 43, 146, 44, 45, 101,  | 
    ||
261  | 
    102, 103, 46, 47, 131, 69, 49, 119, 120, 73,  | 
    ||
262  | 
    74, 70, 83, 2, 52, 53, 104, 65, 63, 155,  | 
    ||
263  | 
    158, 161,  | 
    ||
264  | 
    };  | 
    ||
265  | 
    const short pcap_yysindex[] =  | 
    ||
266  | 
    	{                                      0, | 
    ||
267  | 
    2  | 
    0, 237, -277, -266, -263, 0, 0, 0, 0, 0,  | 
    |
268  | 
    4  | 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  | 
    |
269  | 
    2  | 
    0, 0, 0, 0, -274, -260, -232, -225, -275, -254,  | 
    |
270  | 
    0, 0, 0, 0, 0, 0, -34, 0, 289, 0,  | 
    ||
271  | 
    -283, 0, 0, 64, 478, 536, 0, -25, 0, 237,  | 
    ||
272  | 
    237, 0, 0, 0, 0, 126, 0, 0, 0, 0,  | 
    ||
273  | 
    0, 0, 0, 0, 0, 0, -34, 0, -25, 289,  | 
    ||
274  | 
    0, 0, 182, 182, 0, 0, -45, 21, 0, 0,  | 
    ||
275  | 
    0, 64, 64, -228, -226, 0, 0, 0, 0, 0,  | 
    ||
276  | 
    0, 0, 0, -273, -268, -264, 0, 0, 0, 0,  | 
    ||
277  | 
    -234, 0, 0, 0, 0, 0, 0, 289, 289, 289,  | 
    ||
278  | 
    289, 289, 289, 289, 289, 0, 0, 0, 289, 289,  | 
    ||
279  | 
    289, -41, 29, 36, 0, 0, 0, 0, 0, 0,  | 
    ||
280  | 
    -207, 36, 156, 0, 0, 0, 182, 182, 0, 0,  | 
    ||
281  | 
    -224, -201, -198, 0, 62, -283, 36, 0, -153, -150,  | 
    ||
282  | 
    -145, -142, 0, 0, -180, 0, 0, 0, 0, 0,  | 
    ||
283  | 
    0, 0, 135, 135, 192, -38, -7, -7, 0, 0,  | 
    ||
284  | 
    156, 156, 125, 0, 0, 0, 0, 36, 0, 0,  | 
    ||
285  | 
    0, 0, 64, 64, 0, 0, 0, 0, -268, 0,  | 
    ||
286  | 
    -162, 0, 0, 0, 35, 0,};  | 
    ||
287  | 
    const short pcap_yyrindex[] =  | 
    ||
288  | 
    	{                                      0, | 
    ||
289  | 
    0, 143, 0, 0, 0, 0, 0, 0, 0, 0,  | 
    ||
290  | 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  | 
    ||
291  | 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  | 
    ||
292  | 
    0, 0, 0, 0, 0, 0, 11, 0, 0, 0,  | 
    ||
293  | 
    130, 0, 0, 0, 0, 0, 0, 1, 0, 524,  | 
    ||
294  | 
    524, 0, 0, 0, 0, 0, 0, 0, 0, 0,  | 
    ||
295  | 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  | 
    ||
296  | 
    0, 0, 524, 524, 0, 0, 16, 18, 0, 0,  | 
    ||
297  | 
    0, 0, 0, -18, 323, 0, 0, 0, 0, 0,  | 
    ||
298  | 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  | 
    ||
299  | 
    337, 0, 0, 0, 0, 0, 0, 0, 0, 0,  | 
    ||
300  | 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  | 
    ||
301  | 
    0, 0, 574, 610, 0, 0, 0, 0, 0, 0,  | 
    ||
302  | 
    0, 0, 0, 0, 0, 3, 524, 524, 0, 0,  | 
    ||
303  | 
    0, 0, 0, 0, -196, 0, -187, 0, 0, 0,  | 
    ||
304  | 
    0, 0, 0, 0, 20, 0, 0, 0, 0, 0,  | 
    ||
305  | 
    0, 0, 49, 78, 60, 88, 13, 38, 0, 0,  | 
    ||
306  | 
    26, 28, 0, 0, 0, 0, 0, 114, 0, 0,  | 
    ||
307  | 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  | 
    ||
308  | 
    0, 0, 0, 0, 0, 0,};  | 
    ||
309  | 
    const short pcap_yygindex[] =  | 
    ||
310  | 
    	{                                      0, | 
    ||
311  | 
    132, 40, -65, 0, -43, 0, 0, 0, 0, 0,  | 
    ||
312  | 
    34, 0, 598, 32, 0, 158, 614, 0, 0, -5,  | 
    ||
313  | 
    -2, 612, 592, 0, 0, 0, 0, 0, 0, 0,  | 
    ||
314  | 
    -44, 0,  | 
    ||
315  | 
    };  | 
    ||
316  | 
    #define YYTABLESIZE 922  | 
    ||
317  | 
    const short pcap_yytable[] =  | 
    ||
318  | 
    	{                                     174, | 
    ||
319  | 
    39, 142, 12, 114, 112, 40, 113, 125, 115, 54,  | 
    ||
320  | 
    88, 61, 120, 153, 46, 17, 144, 19, 156, 101,  | 
    ||
321  | 
    55, 46, 159, 56, 86, 40, 88, 41, 89, 135,  | 
    ||
322  | 
    140, 62, 57, 154, 114, 71, 72, 121, 157, 115,  | 
    ||
323  | 
    116, 39, 160, 12, 116, 116, 58, 116, 126, 116,  | 
    ||
324  | 
    120, 88, 64, 120, 59, 120, 17, 120, 19, 125,  | 
    ||
325  | 
    101, 60, 116, 116, 116, 121, 40, 143, 41, 175,  | 
    ||
326  | 
    120, 144, 120, 120, 120, 121, 176, 127, 121, 177,  | 
    ||
327  | 
    121, 123, 121, 79, 179, 180, 126, 124, 181, 126,  | 
    ||
328  | 
    149, 150, 151, 152, 125, 121, 38, 121, 121, 121,  | 
    ||
329  | 
    125, 123, 182, 40, 185, 120, 126, 186, 126, 126,  | 
    ||
330  | 
    126, 187, 134, 139, 188, 127, 189, 125, 127, 125,  | 
    ||
331  | 
    125, 125, 28, 28, 195, 124, 116, 196, 124, 1,  | 
    ||
332  | 
    121, 27, 27, 41, 162, 127, 120, 127, 127, 127,  | 
    ||
333  | 
    183, 126, 2, 184, 194, 124, 0, 124, 124, 124,  | 
    ||
334  | 
    0, 116, 125, 0, 0, 116, 116, 0, 116, 48,  | 
    ||
335  | 
    116, 121, 111, 127, 0, 0, 114, 112, 123, 113,  | 
    ||
336  | 
    127, 115, 126, 116, 116, 116, 114, 112, 0, 113,  | 
    ||
337  | 
    124, 115, 191, 125, 0, 130, 129, 128, 0, 0,  | 
    ||
338  | 
    0, 0, 0, 111, 0, 0, 0, 114, 112, 0,  | 
    ||
339  | 
    113, 127, 115, 0, 0, 0, 0, 48, 48, 0,  | 
    ||
340  | 
    0, 124, 0, 0, 38, 0, 141, 190, 0, 0,  | 
    ||
341  | 
    0, 40, 192, 193, 0, 0, 39, 0, 0, 111,  | 
    ||
342  | 
    48, 48, 0, 114, 112, 0, 113, 116, 115, 0,  | 
    ||
343  | 
    46, 0, 46, 0, 46, 0, 0, 0, 110, 126,  | 
    ||
344  | 
    0, 0, 22, 0, 0, 0, 0, 43, 43, 43,  | 
    ||
345  | 
    43, 43, 0, 43, 0, 0, 43, 43, 46, 38,  | 
    ||
346  | 
    0, 0, 108, 109, 0, 0, 40, 71, 72, 110,  | 
    ||
347  | 
    0, 39, 0, 0, 0, 43, 43, 0, 46, 46,  | 
    ||
348  | 
    46, 46, 0, 0, 48, 48, 43, 43, 43, 43,  | 
    ||
349  | 
    43, 43, 43, 0, 0, 0, 116, 116, 116, 0,  | 
    ||
350  | 
    0, 0, 0, 116, 116, 0, 120, 120, 120, 39,  | 
    ||
351  | 
    39, 12, 12, 120, 120, 0, 0, 0, 40, 88,  | 
    ||
352  | 
    88, 120, 120, 39, 17, 17, 19, 19, 101, 101,  | 
    ||
353  | 
    0, 121, 121, 121, 40, 40, 41, 41, 121, 121,  | 
    ||
354  | 
    22, 0, 126, 126, 126, 45, 121, 121, 0, 126,  | 
    ||
355  | 
    126, 0, 45, 125, 125, 125, 0, 126, 126, 32,  | 
    ||
356  | 
    75, 76, 77, 78, 0, 0, 32, 0, 125, 125,  | 
    ||
357  | 
    0, 127, 127, 127, 0, 0, 0, 0, 127, 127,  | 
    ||
358  | 
    0, 124, 124, 124, 0, 0, 127, 127, 0, 44,  | 
    ||
359  | 
    44, 44, 44, 44, 0, 44, 124, 124, 44, 44,  | 
    ||
360  | 
    0, 0, 0, 0, 0, 0, 0, 116, 116, 116,  | 
    ||
361  | 
    0, 0, 0, 0, 116, 116, 0, 44, 44, 0,  | 
    ||
362  | 
    0, 0, 27, 27, 0, 108, 109, 0, 44, 44,  | 
    ||
363  | 
    44, 44, 44, 44, 44, 3, 4, 0, 0, 5,  | 
    ||
364  | 
    6, 7, 8, 9, 10, 11, 12, 13, 14, 15,  | 
    ||
365  | 
    16, 17, 18, 19, 20, 21, 108, 109, 22, 23,  | 
    ||
366  | 
    24, 25, 26, 27, 28, 29, 30, 0, 0, 0,  | 
    ||
367  | 
    0, 0, 0, 0, 31, 0, 0, 0, 75, 76,  | 
    ||
368  | 
    77, 78, 0, 0, 32, 33, 34, 35, 36, 37,  | 
    ||
369  | 
    3, 4, 108, 109, 5, 6, 7, 8, 9, 10,  | 
    ||
370  | 
    11, 12, 13, 14, 15, 16, 17, 18, 19, 20,  | 
    ||
371  | 
    21, 0, 0, 22, 23, 24, 25, 26, 27, 28,  | 
    ||
372  | 
    29, 30, 0, 0, 0, 0, 0, 0, 0, 31,  | 
    ||
373  | 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 32,  | 
    ||
374  | 
    33, 34, 35, 36, 37, 0, 0, 6, 7, 8,  | 
    ||
375  | 
    9, 10, 11, 12, 13, 14, 15, 16, 17, 18,  | 
    ||
376  | 
    19, 20, 21, 111, 0, 22, 0, 114, 112, 0,  | 
    ||
377  | 
    113, 45, 115, 45, 0, 45, 0, 0, 0, 0,  | 
    ||
378  | 
    0, 31, 0, 51, 0, 118, 117, 116, 0, 0,  | 
    ||
379  | 
    0, 32, 33, 34, 35, 36, 0, 0, 0, 45,  | 
    ||
380  | 
    0, 117, 0, 50, 0, 117, 117, 0, 117, 0,  | 
    ||
381  | 
    117, 0, 0, 32, 0, 0, 0, 0, 0, 45,  | 
    ||
382  | 
    45, 45, 45, 117, 117, 117, 68, 0, 0, 0,  | 
    ||
383  | 
    0, 51, 51, 32, 32, 32, 32, 116, 67, 0,  | 
    ||
384  | 
    66, 116, 116, 0, 116, 82, 116, 81, 0, 110,  | 
    ||
385  | 
    0, 50, 50, 124, 138, 138, 0, 133, 0, 116,  | 
    ||
386  | 
    116, 116, 0, 0, 0, 0, 0, 0, 67, 0,  | 
    ||
387  | 
    132, 0, 0, 124, 137, 137, 136, 136, 0, 0,  | 
    ||
388  | 
    0, 0, 0, 67, 82, 147, 81, 117, 0, 0,  | 
    ||
389  | 
    0, 0, 0, 0, 0, 163, 164, 165, 166, 167,  | 
    ||
390  | 
    168, 169, 170, 0, 0, 0, 171, 172, 173, 0,  | 
    ||
391  | 
    0, 0, 0, 0, 0, 0, 0, 0, 138, 138,  | 
    ||
392  | 
    0, 0, 0, 116, 84, 85, 86, 87, 88, 0,  | 
    ||
393  | 
    89, 0, 0, 90, 91, 0, 0, 0, 50, 137,  | 
    ||
394  | 
    178, 136, 0, 0, 0, 0, 0, 0, 0, 0,  | 
    ||
395  | 
    0, 0, 92, 93, 0, 0, 0, 0, 0, 0,  | 
    ||
396  | 
    0, 0, 0, 94, 95, 96, 97, 98, 99, 100,  | 
    ||
397  | 
    44, 44, 44, 44, 44, 0, 44, 0, 0, 44,  | 
    ||
398  | 
    44, 0, 0, 0, 82, 82, 81, 81, 0, 0,  | 
    ||
399  | 
    0, 0, 0, 0, 0, 0, 0, 0, 44, 44,  | 
    ||
400  | 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 44,  | 
    ||
401  | 
    44, 44, 44, 44, 44, 44, 0, 0, 0, 0,  | 
    ||
402  | 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 105,  | 
    ||
403  | 
    106, 107, 0, 0, 0, 0, 108, 109, 0, 0,  | 
    ||
404  | 
    2  | 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  | 
    |
405  | 
    2  | 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  | 
    |
406  | 
    0, 0, 0, 0, 0, 0, 0, 117, 117, 117,  | 
    ||
407  | 
    0, 0, 0, 0, 117, 117, 0, 0, 0, 0,  | 
    ||
408  | 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  | 
    ||
409  | 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  | 
    ||
410  | 
    4  | 
    0, 0, 0, 116, 116, 116, 0, 0, 0, 0,  | 
    |
411  | 
    4  | 
    116, 116,  | 
    |
412  | 
    };  | 
    ||
413  | 
    2  | 
    const short pcap_yycheck[] =  | 
    |
414  | 
    2  | 
    	{                                      41, | 
    |
415  | 
    0, 47, 0, 42, 43, 40, 45, 51, 47, 287,  | 
    ||
416  | 
    0, 287, 0, 287, 33, 0, 82, 0, 287, 0,  | 
    ||
417  | 
    287, 40, 287, 287, 259, 0, 261, 0, 263, 73,  | 
    ||
418  | 
    74, 307, 307, 307, 42, 319, 320, 0, 307, 47,  | 
    ||
419  | 
    38, 41, 307, 41, 42, 43, 307, 45, 0, 47,  | 
    ||
420  | 
    38, 41, 307, 41, 287, 43, 41, 45, 41, 0,  | 
    ||
421  | 
    41, 287, 60, 61, 62, 91, 41, 47, 41, 41,  | 
    ||
422  | 
    58, 137, 60, 61, 62, 38, 41, 0, 41, 287,  | 
    ||
423  | 
    43, 50, 45, 44, 309, 287, 38, 0, 287, 41,  | 
    ||
424  | 
    319, 320, 319, 320, 138, 58, 33, 60, 61, 62,  | 
    ||
425  | 
    41, 70, 41, 40, 258, 93, 58, 258, 60, 61,  | 
    ||
426  | 
    62, 257, 73, 74, 257, 38, 297, 58, 41, 60,  | 
    ||
427  | 
    61, 62, 319, 320, 287, 38, 124, 93, 41, 0,  | 
    ||
428  | 
    93, 319, 320, 2, 101, 58, 124, 60, 61, 62,  | 
    ||
429  | 
    146, 93, 0, 146, 189, 58, -1, 60, 61, 62,  | 
    ||
430  | 
    -1, 38, 93, -1, -1, 42, 43, -1, 45, 2,  | 
    ||
431  | 
    47, 124, 38, 38, -1, -1, 42, 43, 137, 45,  | 
    ||
432  | 
    93, 47, 124, 60, 61, 62, 42, 43, -1, 45,  | 
    ||
433  | 
    93, 47, 58, 124, -1, 60, 61, 62, -1, -1,  | 
    ||
434  | 
    -1, -1, -1, 38, -1, -1, -1, 42, 43, -1,  | 
    ||
435  | 
    45, 124, 47, -1, -1, -1, -1, 50, 51, -1,  | 
    ||
436  | 
    -1, 124, -1, -1, 33, -1, 262, 93, -1, -1,  | 
    ||
437  | 
    -1, 40, 183, 184, -1, -1, 45, -1, -1, 38,  | 
    ||
438  | 
    73, 74, -1, 42, 43, -1, 45, 124, 47, -1,  | 
    ||
439  | 
    259, -1, 261, -1, 263, -1, -1, -1, 124, 124,  | 
    ||
440  | 
    -1, -1, 287, -1, -1, -1, -1, 257, 258, 259,  | 
    ||
441  | 
    260, 261, -1, 263, -1, -1, 266, 267, 287, 33,  | 
    ||
442  | 
    -1, -1, 311, 312, -1, -1, 40, 319, 320, 124,  | 
    ||
443  | 
    -1, 45, -1, -1, -1, 285, 286, -1, 307, 308,  | 
    ||
444  | 
    309, 310, -1, -1, 137, 138, 296, 297, 298, 299,  | 
    ||
445  | 
    300, 301, 302, -1, -1, -1, 304, 305, 306, -1,  | 
    ||
446  | 
    -1, -1, -1, 311, 312, -1, 304, 305, 306, 319,  | 
    ||
447  | 
    320, 319, 320, 311, 312, -1, -1, -1, 40, 319,  | 
    ||
448  | 
    320, 319, 320, 45, 319, 320, 319, 320, 319, 320,  | 
    ||
449  | 
    -1, 304, 305, 306, 319, 320, 319, 320, 311, 312,  | 
    ||
450  | 
    287, -1, 304, 305, 306, 33, 319, 320, -1, 311,  | 
    ||
451  | 
    312, -1, 40, 304, 305, 306, -1, 319, 320, 33,  | 
    ||
452  | 
    307, 308, 309, 310, -1, -1, 40, -1, 319, 320,  | 
    ||
453  | 
    -1, 304, 305, 306, -1, -1, -1, -1, 311, 312,  | 
    ||
454  | 
    -1, 304, 305, 306, -1, -1, 319, 320, -1, 257,  | 
    ||
455  | 
    258, 259, 260, 261, -1, 263, 319, 320, 266, 267,  | 
    ||
456  | 
    -1, -1, -1, -1, -1, -1, -1, 304, 305, 306,  | 
    ||
457  | 
    -1, -1, -1, -1, 311, 312, -1, 285, 286, -1,  | 
    ||
458  | 
    -1, -1, 319, 320, -1, 311, 312, -1, 296, 297,  | 
    ||
459  | 
    298, 299, 300, 301, 302, 264, 265, -1, -1, 268,  | 
    ||
460  | 
    269, 270, 271, 272, 273, 274, 275, 276, 277, 278,  | 
    ||
461  | 
    279, 280, 281, 282, 283, 284, 311, 312, 287, 288,  | 
    ||
462  | 
    289, 290, 291, 292, 293, 294, 295, -1, -1, -1,  | 
    ||
463  | 
    -1, -1, -1, -1, 303, -1, -1, -1, 307, 308,  | 
    ||
464  | 
    309, 310, -1, -1, 313, 314, 315, 316, 317, 318,  | 
    ||
465  | 
    264, 265, 311, 312, 268, 269, 270, 271, 272, 273,  | 
    ||
466  | 
    274, 275, 276, 277, 278, 279, 280, 281, 282, 283,  | 
    ||
467  | 
    284, -1, -1, 287, 288, 289, 290, 291, 292, 293,  | 
    ||
468  | 
    294, 295, -1, -1, -1, -1, -1, -1, -1, 303,  | 
    ||
469  | 
    -1, -1, -1, -1, -1, -1, -1, -1, -1, 313,  | 
    ||
470  | 
    314, 315, 316, 317, 318, -1, -1, 269, 270, 271,  | 
    ||
471  | 
    272, 273, 274, 275, 276, 277, 278, 279, 280, 281,  | 
    ||
472  | 
    282, 283, 284, 38, -1, 287, -1, 42, 43, -1,  | 
    ||
473  | 
    45, 259, 47, 261, -1, 263, -1, -1, -1, -1,  | 
    ||
474  | 
    -1, 303, -1, 2, -1, 60, 61, 62, -1, -1,  | 
    ||
475  | 
    -1, 313, 314, 315, 316, 317, -1, -1, -1, 287,  | 
    ||
476  | 
    -1, 38, -1, 2, -1, 42, 43, -1, 45, -1,  | 
    ||
477  | 
    47, -1, -1, 287, -1, -1, -1, -1, -1, 307,  | 
    ||
478  | 
    308, 309, 310, 60, 61, 62, 39, -1, -1, -1,  | 
    ||
479  | 
    -1, 50, 51, 307, 308, 309, 310, 38, 37, -1,  | 
    ||
480  | 
    37, 42, 43, -1, 45, 44, 47, 44, -1, 124,  | 
    ||
481  | 
    -1, 50, 51, 50, 73, 74, -1, 70, -1, 60,  | 
    ||
482  | 
    61, 62, -1, -1, -1, -1, -1, -1, 67, -1,  | 
    ||
483  | 
    67, -1, -1, 70, 73, 74, 73, 74, -1, -1,  | 
    ||
484  | 
    -1, -1, -1, 82, 83, 82, 83, 124, -1, -1,  | 
    ||
485  | 
    -1, -1, -1, -1, -1, 108, 109, 110, 111, 112,  | 
    ||
486  | 
    113, 114, 115, -1, -1, -1, 119, 120, 121, -1,  | 
    ||
487  | 
    -1, -1, -1, -1, -1, -1, -1, -1, 137, 138,  | 
    ||
488  | 
    -1, -1, -1, 124, 257, 258, 259, 260, 261, -1,  | 
    ||
489  | 
    263, -1, -1, 266, 267, -1, -1, -1, 137, 138,  | 
    ||
490  | 
    137, 138, -1, -1, -1, -1, -1, -1, -1, -1,  | 
    ||
491  | 
    -1, -1, 285, 286, -1, -1, -1, -1, -1, -1,  | 
    ||
492  | 
    -1, -1, -1, 296, 297, 298, 299, 300, 301, 302,  | 
    ||
493  | 
    257, 258, 259, 260, 261, -1, 263, -1, -1, 266,  | 
    ||
494  | 
    267, -1, -1, -1, 183, 184, 183, 184, -1, -1,  | 
    ||
495  | 
    -1, -1, -1, -1, -1, -1, -1, -1, 285, 286,  | 
    ||
496  | 
    -1, -1, -1, -1, -1, -1, -1, -1, -1, 296,  | 
    ||
497  | 
    297, 298, 299, 300, 301, 302, -1, -1, -1, -1,  | 
    ||
498  | 
    -1, -1, -1, -1, -1, -1, -1, -1, -1, 304,  | 
    ||
499  | 
    305, 306, -1, -1, -1, -1, 311, 312, -1, -1,  | 
    ||
500  | 
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  | 
    ||
501  | 
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  | 
    ||
502  | 
    -1, -1, -1, -1, -1, -1, -1, 304, 305, 306,  | 
    ||
503  | 
    -1, -1, -1, -1, 311, 312, -1, -1, -1, -1,  | 
    ||
504  | 
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  | 
    ||
505  | 
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  | 
    ||
506  | 
    -1, -1, -1, 304, 305, 306, -1, -1, -1, -1,  | 
    ||
507  | 
    311, 312,  | 
    ||
508  | 
    };  | 
    ||
509  | 
    #define YYFINAL 1  | 
    ||
510  | 
    #ifndef YYDEBUG  | 
    ||
511  | 
    #define YYDEBUG 0  | 
    ||
512  | 
    #endif  | 
    ||
513  | 
    #define YYMAXTOKEN 321  | 
    ||
514  | 
    #if YYDEBUG  | 
    ||
515  | 
    const char * const pcap_yyname[] =  | 
    ||
516  | 
    	{ | 
    ||
517  | 
    "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  | 
    ||
518  | 
    "'!'",0,0,0,0,"'&'",0,"'('","')'","'*'","'+'",0,"'-'",0,"'/'",0,0,0,0,0,0,0,0,0, | 
    ||
519  | 
    0,"':'",0,"'<'","'='","'>'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  | 
    ||
520  | 
    0,0,"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  | 
    ||
521  | 
    "'|'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  | 
    ||
522  | 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  | 
    ||
523  | 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  | 
    ||
524  | 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"DST","SRC","HOST","GATEWAY","NET","MASK","PORT",  | 
    ||
525  | 
    "LESS","GREATER","PROTO","PROTOCHAIN","BYTE","ARP","RARP","IP","TCP","UDP",  | 
    ||
526  | 
    "ICMP","IGMP","IGRP","PIM","ATALK","DECNET","LAT","SCA","MOPRC","MOPDL","STP",  | 
    ||
527  | 
    "TK_BROADCAST","TK_MULTICAST","NUM","INBOUND","OUTBOUND","PF_IFNAME","PF_RSET",  | 
    ||
528  | 
    "PF_RNR","PF_SRNR","PF_REASON","PF_ACTION","TYPE","SUBTYPE","DIR","ADDR1",  | 
    ||
529  | 
    "ADDR2","ADDR3","ADDR4","LINK","GEQ","LEQ","NEQ","ID","EID","HID","HID6","LSH",  | 
    ||
530  | 
    "RSH","LEN","IPV6","ICMPV6","AH","ESP","VLAN","OR","AND","UMINUS",  | 
    ||
531  | 
    };  | 
    ||
532  | 
    const char * const pcap_yyrule[] =  | 
    ||
533  | 
    	{"$accept : prog", | 
    ||
534  | 
    "prog : null expr",  | 
    ||
535  | 
    "prog : null",  | 
    ||
536  | 
    "null :",  | 
    ||
537  | 
    "expr : term",  | 
    ||
538  | 
    "expr : expr and term",  | 
    ||
539  | 
    "expr : expr and id",  | 
    ||
540  | 
    "expr : expr or term",  | 
    ||
541  | 
    "expr : expr or id",  | 
    ||
542  | 
    "and : AND",  | 
    ||
543  | 
    "or : OR",  | 
    ||
544  | 
    "id : nid",  | 
    ||
545  | 
    "id : pnum",  | 
    ||
546  | 
    "id : paren pid ')'",  | 
    ||
547  | 
    "nid : ID",  | 
    ||
548  | 
    "nid : HID '/' NUM",  | 
    ||
549  | 
    "nid : HID MASK HID",  | 
    ||
550  | 
    "nid : HID",  | 
    ||
551  | 
    "nid : HID6 '/' NUM",  | 
    ||
552  | 
    "nid : HID6",  | 
    ||
553  | 
    "nid : EID",  | 
    ||
554  | 
    "nid : not id",  | 
    ||
555  | 
    "not : '!'",  | 
    ||
556  | 
    "paren : '('", | 
    ||
557  | 
    "pid : nid",  | 
    ||
558  | 
    "pid : qid and id",  | 
    ||
559  | 
    "pid : qid or id",  | 
    ||
560  | 
    "qid : pnum",  | 
    ||
561  | 
    "qid : pid",  | 
    ||
562  | 
    "term : rterm",  | 
    ||
563  | 
    "term : not term",  | 
    ||
564  | 
    "head : pqual dqual aqual",  | 
    ||
565  | 
    "head : pqual dqual",  | 
    ||
566  | 
    "head : pqual aqual",  | 
    ||
567  | 
    "head : pqual PROTO",  | 
    ||
568  | 
    "head : pqual PROTOCHAIN",  | 
    ||
569  | 
    "head : pqual ndaqual",  | 
    ||
570  | 
    "rterm : head id",  | 
    ||
571  | 
    "rterm : paren expr ')'",  | 
    ||
572  | 
    "rterm : pname",  | 
    ||
573  | 
    "rterm : arth relop arth",  | 
    ||
574  | 
    "rterm : arth irelop arth",  | 
    ||
575  | 
    "rterm : other",  | 
    ||
576  | 
    "pqual : pname",  | 
    ||
577  | 
    "pqual :",  | 
    ||
578  | 
    "dqual : SRC",  | 
    ||
579  | 
    "dqual : DST",  | 
    ||
580  | 
    "dqual : SRC OR DST",  | 
    ||
581  | 
    "dqual : DST OR SRC",  | 
    ||
582  | 
    "dqual : SRC AND DST",  | 
    ||
583  | 
    "dqual : DST AND SRC",  | 
    ||
584  | 
    "dqual : ADDR1",  | 
    ||
585  | 
    "dqual : ADDR2",  | 
    ||
586  | 
    "dqual : ADDR3",  | 
    ||
587  | 
    "dqual : ADDR4",  | 
    ||
588  | 
    "aqual : HOST",  | 
    ||
589  | 
    "aqual : NET",  | 
    ||
590  | 
    "aqual : PORT",  | 
    ||
591  | 
    "ndaqual : GATEWAY",  | 
    ||
592  | 
    "pname : LINK",  | 
    ||
593  | 
    "pname : IP",  | 
    ||
594  | 
    "pname : ARP",  | 
    ||
595  | 
    "pname : RARP",  | 
    ||
596  | 
    "pname : TCP",  | 
    ||
597  | 
    "pname : UDP",  | 
    ||
598  | 
    "pname : ICMP",  | 
    ||
599  | 
    "pname : IGMP",  | 
    ||
600  | 
    "pname : IGRP",  | 
    ||
601  | 
    "pname : PIM",  | 
    ||
602  | 
    "pname : ATALK",  | 
    ||
603  | 
    "pname : DECNET",  | 
    ||
604  | 
    "pname : LAT",  | 
    ||
605  | 
    "pname : SCA",  | 
    ||
606  | 
    "pname : MOPDL",  | 
    ||
607  | 
    "pname : MOPRC",  | 
    ||
608  | 
    "pname : IPV6",  | 
    ||
609  | 
    "pname : ICMPV6",  | 
    ||
610  | 
    "pname : AH",  | 
    ||
611  | 
    "pname : ESP",  | 
    ||
612  | 
    "pname : STP",  | 
    ||
613  | 
    "other : pqual TK_BROADCAST",  | 
    ||
614  | 
    "other : pqual TK_MULTICAST",  | 
    ||
615  | 
    "other : LESS NUM",  | 
    ||
616  | 
    "other : GREATER NUM",  | 
    ||
617  | 
    "other : BYTE NUM byteop NUM",  | 
    ||
618  | 
    "other : INBOUND",  | 
    ||
619  | 
    "other : OUTBOUND",  | 
    ||
620  | 
    "other : VLAN pnum",  | 
    ||
621  | 
    "other : VLAN",  | 
    ||
622  | 
    "other : pfvar",  | 
    ||
623  | 
    "other : pqual p80211",  | 
    ||
624  | 
    "pfvar : PF_IFNAME ID",  | 
    ||
625  | 
    "pfvar : PF_RSET ID",  | 
    ||
626  | 
    "pfvar : PF_RNR NUM",  | 
    ||
627  | 
    "pfvar : PF_SRNR NUM",  | 
    ||
628  | 
    "pfvar : PF_REASON reason",  | 
    ||
629  | 
    "pfvar : PF_ACTION action",  | 
    ||
630  | 
    "reason : NUM",  | 
    ||
631  | 
    "reason : ID",  | 
    ||
632  | 
    "action : ID",  | 
    ||
633  | 
    "p80211 : TYPE type SUBTYPE subtype",  | 
    ||
634  | 
    "p80211 : TYPE type",  | 
    ||
635  | 
    "p80211 : SUBTYPE subtype",  | 
    ||
636  | 
    "p80211 : DIR dir",  | 
    ||
637  | 
    "type : NUM",  | 
    ||
638  | 
    "type : ID",  | 
    ||
639  | 
    "subtype : NUM",  | 
    ||
640  | 
    "subtype : ID",  | 
    ||
641  | 
    "dir : NUM",  | 
    ||
642  | 
    "dir : ID",  | 
    ||
643  | 
    "relop : '>'",  | 
    ||
644  | 
    "relop : GEQ",  | 
    ||
645  | 
    "relop : '='",  | 
    ||
646  | 
    "irelop : LEQ",  | 
    ||
647  | 
    "irelop : '<'",  | 
    ||
648  | 
    "irelop : NEQ",  | 
    ||
649  | 
    "arth : pnum",  | 
    ||
650  | 
    "arth : narth",  | 
    ||
651  | 
    "narth : pname '[' arth ']'",  | 
    ||
652  | 
    "narth : pname '[' arth ':' NUM ']'",  | 
    ||
653  | 
    "narth : arth '+' arth",  | 
    ||
654  | 
    "narth : arth '-' arth",  | 
    ||
655  | 
    "narth : arth '*' arth",  | 
    ||
656  | 
    "narth : arth '/' arth",  | 
    ||
657  | 
    "narth : arth '&' arth",  | 
    ||
658  | 
    "narth : arth '|' arth",  | 
    ||
659  | 
    "narth : arth LSH arth",  | 
    ||
660  | 
    "narth : arth RSH arth",  | 
    ||
661  | 
    "narth : '-' arth",  | 
    ||
662  | 
    "narth : paren narth ')'",  | 
    ||
663  | 
    "narth : LEN",  | 
    ||
664  | 
    "byteop : '&'",  | 
    ||
665  | 
    "byteop : '|'",  | 
    ||
666  | 
    "byteop : '<'",  | 
    ||
667  | 
    "byteop : '>'",  | 
    ||
668  | 
    "byteop : '='",  | 
    ||
669  | 
    "pnum : NUM",  | 
    ||
670  | 
    "pnum : paren pnum ')'",  | 
    ||
671  | 
    };  | 
    ||
672  | 
    #endif  | 
    ||
673  | 
    #ifdef YYSTACKSIZE  | 
    ||
674  | 
    #undef YYMAXDEPTH  | 
    ||
675  | 
    #define YYMAXDEPTH YYSTACKSIZE  | 
    ||
676  | 
    #else  | 
    ||
677  | 
    #ifdef YYMAXDEPTH  | 
    ||
678  | 
    #define YYSTACKSIZE YYMAXDEPTH  | 
    ||
679  | 
    #else  | 
    ||
680  | 
    #define YYSTACKSIZE 10000  | 
    ||
681  | 
    #define YYMAXDEPTH 10000  | 
    ||
682  | 
    #endif  | 
    ||
683  | 
    #endif  | 
    ||
684  | 
    #define YYINITSTACKSIZE 200  | 
    ||
685  | 
    /* LINTUSED */  | 
    ||
686  | 
    int yydebug;  | 
    ||
687  | 
    int yynerrs;  | 
    ||
688  | 
    int yyerrflag;  | 
    ||
689  | 
    int yychar;  | 
    ||
690  | 
    short *yyssp;  | 
    ||
691  | 
    YYSTYPE *yyvsp;  | 
    ||
692  | 
    YYSTYPE yyval;  | 
    ||
693  | 
    YYSTYPE yylval;  | 
    ||
694  | 
    short *yyss;  | 
    ||
695  | 
    short *yysslim;  | 
    ||
696  | 
    YYSTYPE *yyvs;  | 
    ||
697  | 
    unsigned int yystacksize;  | 
    ||
698  | 
    int yyparse(void);  | 
    ||
699  | 
    /* allocate initial stack or double stack size, up to YYMAXDEPTH */  | 
    ||
700  | 
    static int yygrowstack(void)  | 
    ||
701  | 
    { | 
    ||
702  | 
    unsigned int newsize;  | 
    ||
703  | 
    long sslen;  | 
    ||
704  | 
    short *newss;  | 
    ||
705  | 
    YYSTYPE *newvs;  | 
    ||
706  | 
    |||
707  | 
    ✓✗ | 4  | 
    if ((newsize = yystacksize) == 0)  | 
    
708  | 
    2  | 
    newsize = YYINITSTACKSIZE;  | 
    |
709  | 
    else if (newsize >= YYMAXDEPTH)  | 
    ||
710  | 
    return -1;  | 
    ||
711  | 
    else if ((newsize *= 2) > YYMAXDEPTH)  | 
    ||
712  | 
    newsize = YYMAXDEPTH;  | 
    ||
713  | 
    2  | 
    sslen = yyssp - yyss;  | 
    |
714  | 
    #ifdef SIZE_MAX  | 
    ||
715  | 
    #define YY_SIZE_MAX SIZE_MAX  | 
    ||
716  | 
    #else  | 
    ||
717  | 
    #define YY_SIZE_MAX 0xffffffffU  | 
    ||
718  | 
    #endif  | 
    ||
719  | 
    ✓✗✓✗ | 
    4  | 
    if (newsize && YY_SIZE_MAX / newsize < sizeof *newss)  | 
    
720  | 
    goto bail;  | 
    ||
721  | 
    ✗✓ | 4  | 
    newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) :  | 
    
722  | 
    2  | 
    (short *)malloc(newsize * sizeof *newss); /* overflow check above */  | 
    |
723  | 
    ✓✗ | 2  | 
    if (newss == NULL)  | 
    
724  | 
    goto bail;  | 
    ||
725  | 
    2  | 
    yyss = newss;  | 
    |
726  | 
    2  | 
    yyssp = newss + sslen;  | 
    |
727  | 
    ✓✗✓✗ | 
    4  | 
    if (newsize && YY_SIZE_MAX / newsize < sizeof *newvs)  | 
    
728  | 
    goto bail;  | 
    ||
729  | 
    ✗✓ | 4  | 
    newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) :  | 
    
730  | 
    2  | 
    (YYSTYPE *)malloc(newsize * sizeof *newvs); /* overflow check above */  | 
    |
731  | 
    ✓✗ | 2  | 
    if (newvs == NULL)  | 
    
732  | 
    goto bail;  | 
    ||
733  | 
    2  | 
    yyvs = newvs;  | 
    |
734  | 
    2  | 
    yyvsp = newvs + sslen;  | 
    |
735  | 
    2  | 
    yystacksize = newsize;  | 
    |
736  | 
    2  | 
    yysslim = yyss + newsize - 1;  | 
    |
737  | 
    2  | 
    return 0;  | 
    |
738  | 
    bail:  | 
    ||
739  | 
    if (yyss)  | 
    ||
740  | 
    free(yyss);  | 
    ||
741  | 
    if (yyvs)  | 
    ||
742  | 
    free(yyvs);  | 
    ||
743  | 
    yyss = yyssp = NULL;  | 
    ||
744  | 
    yyvs = yyvsp = NULL;  | 
    ||
745  | 
    yystacksize = 0;  | 
    ||
746  | 
    return -1;  | 
    ||
747  | 
    2  | 
    }  | 
    |
748  | 
    |||
749  | 
    #define YYABORT goto yyabort  | 
    ||
750  | 
    #define YYREJECT goto yyabort  | 
    ||
751  | 
    #define YYACCEPT goto yyaccept  | 
    ||
752  | 
    #define YYERROR goto yyerrlab  | 
    ||
753  | 
    int  | 
    ||
754  | 
    yyparse(void)  | 
    ||
755  | 
    { | 
    ||
756  | 
    int yym, yyn, yystate;  | 
    ||
757  | 
    #if YYDEBUG  | 
    ||
758  | 
    const char *yys;  | 
    ||
759  | 
    |||
760  | 
        if ((yys = getenv("YYDEBUG"))) | 
    ||
761  | 
        { | 
    ||
762  | 
    yyn = *yys;  | 
    ||
763  | 
    if (yyn >= '0' && yyn <= '9')  | 
    ||
764  | 
    yydebug = yyn - '0';  | 
    ||
765  | 
    }  | 
    ||
766  | 
    #endif /* YYDEBUG */  | 
    ||
767  | 
    |||
768  | 
    4  | 
    yynerrs = 0;  | 
    |
769  | 
    2  | 
    yyerrflag = 0;  | 
    |
770  | 
    2  | 
    yychar = (-1);  | 
    |
771  | 
    |||
772  | 
    ✓✗✓✗ | 
    4  | 
    if (yyss == NULL && yygrowstack()) goto yyoverflow;  | 
    
773  | 
    2  | 
    yyssp = yyss;  | 
    |
774  | 
    2  | 
    yyvsp = yyvs;  | 
    |
775  | 
    2  | 
    *yyssp = yystate = 0;  | 
    |
776  | 
    |||
777  | 
    yyloop:  | 
    ||
778  | 
    ✓✓ | 52  | 
    if ((yyn = yydefred[yystate]) != 0) goto yyreduce;  | 
    
779  | 
    ✓✓ | 22  | 
    if (yychar < 0)  | 
    
780  | 
        { | 
    ||
781  | 
    18  | 
    if ((yychar = yylex()) < 0) yychar = 0;  | 
    |
782  | 
    #if YYDEBUG  | 
    ||
783  | 
    if (yydebug)  | 
    ||
784  | 
            { | 
    ||
785  | 
    yys = 0;  | 
    ||
786  | 
    if (yychar <= YYMAXTOKEN) yys = yyname[yychar];  | 
    ||
787  | 
    if (!yys) yys = "illegal-symbol";  | 
    ||
788  | 
                printf("%sdebug: state %d, reading %d (%s)\n", | 
    ||
789  | 
    YYPREFIX, yystate, yychar, yys);  | 
    ||
790  | 
    }  | 
    ||
791  | 
    #endif  | 
    ||
792  | 
    18  | 
    }  | 
    |
793  | 
    ✓✗✓✓ ✓✓  | 
    86  | 
    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&  | 
    
794  | 
    42  | 
    yyn <= YYTABLESIZE && yycheck[yyn] == yychar)  | 
    |
795  | 
        { | 
    ||
796  | 
    #if YYDEBUG  | 
    ||
797  | 
    if (yydebug)  | 
    ||
798  | 
                printf("%sdebug: state %d, shifting to state %d\n", | 
    ||
799  | 
    YYPREFIX, yystate, yytable[yyn]);  | 
    ||
800  | 
    #endif  | 
    ||
801  | 
    ✗✓✗✗ | 
    16  | 
    if (yyssp >= yysslim && yygrowstack())  | 
    
802  | 
            { | 
    ||
803  | 
    goto yyoverflow;  | 
    ||
804  | 
    }  | 
    ||
805  | 
    16  | 
    *++yyssp = yystate = yytable[yyn];  | 
    |
806  | 
    16  | 
    *++yyvsp = yylval;  | 
    |
807  | 
    16  | 
    yychar = (-1);  | 
    |
808  | 
    ✓✗ | 16  | 
    if (yyerrflag > 0) --yyerrflag;  | 
    
809  | 
    goto yyloop;  | 
    ||
810  | 
    }  | 
    ||
811  | 
    ✓✗✓✗ ✓✗  | 
    24  | 
    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&  | 
    
812  | 
    12  | 
    yyn <= YYTABLESIZE && yycheck[yyn] == yychar)  | 
    |
813  | 
        { | 
    ||
814  | 
    6  | 
    yyn = yytable[yyn];  | 
    |
815  | 
    6  | 
    goto yyreduce;  | 
    |
816  | 
    }  | 
    ||
817  | 
    if (yyerrflag) goto yyinrecovery;  | 
    ||
818  | 
    #if defined(__GNUC__)  | 
    ||
819  | 
    goto yynewerror;  | 
    ||
820  | 
    #endif  | 
    ||
821  | 
    yynewerror:  | 
    ||
822  | 
        yyerror("syntax error"); | 
    ||
823  | 
    #if defined(__GNUC__)  | 
    ||
824  | 
    goto yyerrlab;  | 
    ||
825  | 
    #endif  | 
    ||
826  | 
    yyerrlab:  | 
    ||
827  | 
    ++yynerrs;  | 
    ||
828  | 
    yyinrecovery:  | 
    ||
829  | 
    if (yyerrflag < 3)  | 
    ||
830  | 
        { | 
    ||
831  | 
    yyerrflag = 3;  | 
    ||
832  | 
    for (;;)  | 
    ||
833  | 
            { | 
    ||
834  | 
    if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&  | 
    ||
835  | 
    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)  | 
    ||
836  | 
                { | 
    ||
837  | 
    #if YYDEBUG  | 
    ||
838  | 
    if (yydebug)  | 
    ||
839  | 
                        printf("%sdebug: state %d, error recovery shifting\ | 
    ||
840  | 
    to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);  | 
    ||
841  | 
    #endif  | 
    ||
842  | 
    if (yyssp >= yysslim && yygrowstack())  | 
    ||
843  | 
                    { | 
    ||
844  | 
    goto yyoverflow;  | 
    ||
845  | 
    }  | 
    ||
846  | 
    *++yyssp = yystate = yytable[yyn];  | 
    ||
847  | 
    *++yyvsp = yylval;  | 
    ||
848  | 
    goto yyloop;  | 
    ||
849  | 
    }  | 
    ||
850  | 
    else  | 
    ||
851  | 
                { | 
    ||
852  | 
    #if YYDEBUG  | 
    ||
853  | 
    if (yydebug)  | 
    ||
854  | 
                        printf("%sdebug: error recovery discarding state %d\n", | 
    ||
855  | 
    YYPREFIX, *yyssp);  | 
    ||
856  | 
    #endif  | 
    ||
857  | 
    if (yyssp <= yyss) goto yyabort;  | 
    ||
858  | 
    --yyssp;  | 
    ||
859  | 
    --yyvsp;  | 
    ||
860  | 
    }  | 
    ||
861  | 
    }  | 
    ||
862  | 
    }  | 
    ||
863  | 
    else  | 
    ||
864  | 
        { | 
    ||
865  | 
    if (yychar == 0) goto yyabort;  | 
    ||
866  | 
    #if YYDEBUG  | 
    ||
867  | 
    if (yydebug)  | 
    ||
868  | 
            { | 
    ||
869  | 
    yys = 0;  | 
    ||
870  | 
    if (yychar <= YYMAXTOKEN) yys = yyname[yychar];  | 
    ||
871  | 
    if (!yys) yys = "illegal-symbol";  | 
    ||
872  | 
                printf("%sdebug: state %d, error recovery discards token %d (%s)\n", | 
    ||
873  | 
    YYPREFIX, yystate, yychar, yys);  | 
    ||
874  | 
    }  | 
    ||
875  | 
    #endif  | 
    ||
876  | 
    yychar = (-1);  | 
    ||
877  | 
    goto yyloop;  | 
    ||
878  | 
    }  | 
    ||
879  | 
    yyreduce:  | 
    ||
880  | 
    #if YYDEBUG  | 
    ||
881  | 
    if (yydebug)  | 
    ||
882  | 
            printf("%sdebug: state %d, reducing by rule %d (%s)\n", | 
    ||
883  | 
    YYPREFIX, yystate, yyn, yyrule[yyn]);  | 
    ||
884  | 
    #endif  | 
    ||
885  | 
    36  | 
    yym = yylen[yyn];  | 
    |
886  | 
    ✓✓ | 36  | 
    if (yym)  | 
    
887  | 
    34  | 
    yyval = yyvsp[1-yym];  | 
    |
888  | 
    else  | 
    ||
889  | 
    2  | 
    memset(&yyval, 0, sizeof yyval);  | 
    |
890  | 
    ✓✓✓✗ ✗✗✓✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✓✓✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✓ ✓✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✓✗✗ ✗✓✓✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✓  | 
    60  | 
    switch (yyn)  | 
    
891  | 
        { | 
    ||
892  | 
    case 1:  | 
    ||
893  | 
    #line 135 "grammar.y"  | 
    ||
894  | 
    { | 
    ||
895  | 
    finish_parse(yyvsp[0].blk.b);  | 
    ||
896  | 
    }  | 
    ||
897  | 
    break;  | 
    ||
898  | 
    case 3:  | 
    ||
899  | 
    #line 140 "grammar.y"  | 
    ||
900  | 
    { yyval.blk.q = qerr; } | 
    ||
901  | 
    break;  | 
    ||
902  | 
    case 5:  | 
    ||
903  | 
    #line 143 "grammar.y"  | 
    ||
904  | 
    { gen_and(yyvsp[-2].blk.b, yyvsp[0].blk.b); yyval.blk = yyvsp[0].blk; } | 
    ||
905  | 
    break;  | 
    ||
906  | 
    case 6:  | 
    ||
907  | 
    #line 144 "grammar.y"  | 
    ||
908  | 
    { gen_and(yyvsp[-2].blk.b, yyvsp[0].blk.b); yyval.blk = yyvsp[0].blk; } | 
    ||
909  | 
    break;  | 
    ||
910  | 
    case 7:  | 
    ||
911  | 
    #line 145 "grammar.y"  | 
    ||
912  | 
    { gen_or(yyvsp[-2].blk.b, yyvsp[0].blk.b); yyval.blk = yyvsp[0].blk; } | 
    ||
913  | 
    break;  | 
    ||
914  | 
    case 8:  | 
    ||
915  | 
    #line 146 "grammar.y"  | 
    ||
916  | 
    { gen_or(yyvsp[-2].blk.b, yyvsp[0].blk.b); yyval.blk = yyvsp[0].blk; } | 
    ||
917  | 
    break;  | 
    ||
918  | 
    case 9:  | 
    ||
919  | 
    #line 148 "grammar.y"  | 
    ||
920  | 
    { yyval.blk = yyvsp[-1].blk; } | 
    ||
921  | 
    break;  | 
    ||
922  | 
    case 10:  | 
    ||
923  | 
    #line 150 "grammar.y"  | 
    ||
924  | 
    { yyval.blk = yyvsp[-1].blk; } | 
    ||
925  | 
    break;  | 
    ||
926  | 
    case 12:  | 
    ||
927  | 
    #line 153 "grammar.y"  | 
    ||
928  | 
    { yyval.blk.b = gen_ncode(NULL, (bpf_u_int32)yyvsp[0].i, | 
    ||
929  | 
    yyval.blk.q = yyvsp[-1].blk.q); }  | 
    ||
930  | 
    break;  | 
    ||
931  | 
    case 13:  | 
    ||
932  | 
    #line 155 "grammar.y"  | 
    ||
933  | 
    { yyval.blk = yyvsp[-1].blk; } | 
    ||
934  | 
    break;  | 
    ||
935  | 
    case 14:  | 
    ||
936  | 
    #line 157 "grammar.y"  | 
    ||
937  | 
    { yyval.blk.b = gen_scode(yyvsp[0].s, yyval.blk.q = yyvsp[-1].blk.q); } | 
    ||
938  | 
    break;  | 
    ||
939  | 
    case 15:  | 
    ||
940  | 
    #line 158 "grammar.y"  | 
    ||
941  | 
    { yyval.blk.b = gen_mcode(yyvsp[-2].s, NULL, yyvsp[0].i, | 
    ||
942  | 
    yyval.blk.q = yyvsp[-3].blk.q); }  | 
    ||
943  | 
    break;  | 
    ||
944  | 
    case 16:  | 
    ||
945  | 
    #line 160 "grammar.y"  | 
    ||
946  | 
    { yyval.blk.b = gen_mcode(yyvsp[-2].s, yyvsp[0].s, 0, | 
    ||
947  | 
    yyval.blk.q = yyvsp[-3].blk.q); }  | 
    ||
948  | 
    break;  | 
    ||
949  | 
    case 17:  | 
    ||
950  | 
    #line 162 "grammar.y"  | 
    ||
951  | 
    { | 
    ||
952  | 
    /* Decide how to parse HID based on proto */  | 
    ||
953  | 
    yyval.blk.q = yyvsp[-1].blk.q;  | 
    ||
954  | 
    				  switch (yyval.blk.q.proto) { | 
    ||
955  | 
    case Q_DECNET:  | 
    ||
956  | 
    yyval.blk.b = gen_ncode(yyvsp[0].s, 0, yyval.blk.q);  | 
    ||
957  | 
    break;  | 
    ||
958  | 
    default:  | 
    ||
959  | 
    yyval.blk.b = gen_ncode(yyvsp[0].s, 0, yyval.blk.q);  | 
    ||
960  | 
    break;  | 
    ||
961  | 
    }  | 
    ||
962  | 
    }  | 
    ||
963  | 
    break;  | 
    ||
964  | 
    case 18:  | 
    ||
965  | 
    #line 174 "grammar.y"  | 
    ||
966  | 
    { | 
    ||
967  | 
    #ifdef INET6  | 
    ||
968  | 
    yyval.blk.b = gen_mcode6(yyvsp[-2].s, NULL, yyvsp[0].i,  | 
    ||
969  | 
    yyval.blk.q = yyvsp[-3].blk.q);  | 
    ||
970  | 
    #else  | 
    ||
971  | 
    				  bpf_error("'ip6addr/prefixlen' not supported " | 
    ||
972  | 
    "in this configuration");  | 
    ||
973  | 
    #endif /*INET6*/  | 
    ||
974  | 
    }  | 
    ||
975  | 
    break;  | 
    ||
976  | 
    case 19:  | 
    ||
977  | 
    #line 183 "grammar.y"  | 
    ||
978  | 
    { | 
    ||
979  | 
    #ifdef INET6  | 
    ||
980  | 
    yyval.blk.b = gen_mcode6(yyvsp[0].s, 0, 128,  | 
    ||
981  | 
    yyval.blk.q = yyvsp[-1].blk.q);  | 
    ||
982  | 
    #else  | 
    ||
983  | 
    				  bpf_error("'ip6addr' not supported " | 
    ||
984  | 
    "in this configuration");  | 
    ||
985  | 
    #endif /*INET6*/  | 
    ||
986  | 
    }  | 
    ||
987  | 
    break;  | 
    ||
988  | 
    case 20:  | 
    ||
989  | 
    #line 192 "grammar.y"  | 
    ||
990  | 
    { yyval.blk.b = gen_ecode(yyvsp[0].e, yyval.blk.q = yyvsp[-1].blk.q); } | 
    ||
991  | 
    break;  | 
    ||
992  | 
    case 21:  | 
    ||
993  | 
    #line 193 "grammar.y"  | 
    ||
994  | 
    { gen_not(yyvsp[0].blk.b); yyval.blk = yyvsp[0].blk; } | 
    ||
995  | 
    break;  | 
    ||
996  | 
    case 22:  | 
    ||
997  | 
    #line 195 "grammar.y"  | 
    ||
998  | 
    { yyval.blk = yyvsp[-1].blk; } | 
    ||
999  | 
    break;  | 
    ||
1000  | 
    case 23:  | 
    ||
1001  | 
    #line 197 "grammar.y"  | 
    ||
1002  | 
    { yyval.blk = yyvsp[-1].blk; } | 
    ||
1003  | 
    break;  | 
    ||
1004  | 
    case 25:  | 
    ||
1005  | 
    #line 200 "grammar.y"  | 
    ||
1006  | 
    { gen_and(yyvsp[-2].blk.b, yyvsp[0].blk.b); yyval.blk = yyvsp[0].blk; } | 
    ||
1007  | 
    break;  | 
    ||
1008  | 
    case 26:  | 
    ||
1009  | 
    #line 201 "grammar.y"  | 
    ||
1010  | 
    { gen_or(yyvsp[-2].blk.b, yyvsp[0].blk.b); yyval.blk = yyvsp[0].blk; } | 
    ||
1011  | 
    break;  | 
    ||
1012  | 
    case 27:  | 
    ||
1013  | 
    #line 203 "grammar.y"  | 
    ||
1014  | 
    { yyval.blk.b = gen_ncode(NULL, (bpf_u_int32)yyvsp[0].i, | 
    ||
1015  | 
    yyval.blk.q = yyvsp[-1].blk.q); }  | 
    ||
1016  | 
    break;  | 
    ||
1017  | 
    case 30:  | 
    ||
1018  | 
    #line 208 "grammar.y"  | 
    ||
1019  | 
    { gen_not(yyvsp[0].blk.b); yyval.blk = yyvsp[0].blk; } | 
    ||
1020  | 
    break;  | 
    ||
1021  | 
    case 31:  | 
    ||
1022  | 
    #line 210 "grammar.y"  | 
    ||
1023  | 
    { QSET(yyval.blk.q, yyvsp[-2].i, yyvsp[-1].i, yyvsp[0].i); } | 
    ||
1024  | 
    break;  | 
    ||
1025  | 
    case 32:  | 
    ||
1026  | 
    #line 211 "grammar.y"  | 
    ||
1027  | 
    { QSET(yyval.blk.q, yyvsp[-1].i, yyvsp[0].i, Q_DEFAULT); } | 
    ||
1028  | 
    break;  | 
    ||
1029  | 
    case 33:  | 
    ||
1030  | 
    #line 212 "grammar.y"  | 
    ||
1031  | 
    { QSET(yyval.blk.q, yyvsp[-1].i, Q_DEFAULT, yyvsp[0].i); } | 
    ||
1032  | 
    break;  | 
    ||
1033  | 
    case 34:  | 
    ||
1034  | 
    #line 213 "grammar.y"  | 
    ||
1035  | 
    { QSET(yyval.blk.q, yyvsp[-1].i, Q_DEFAULT, Q_PROTO); } | 
    ||
1036  | 
    break;  | 
    ||
1037  | 
    case 35:  | 
    ||
1038  | 
    #line 214 "grammar.y"  | 
    ||
1039  | 
    { QSET(yyval.blk.q, yyvsp[-1].i, Q_DEFAULT, Q_PROTOCHAIN); } | 
    ||
1040  | 
    break;  | 
    ||
1041  | 
    case 36:  | 
    ||
1042  | 
    #line 215 "grammar.y"  | 
    ||
1043  | 
    { QSET(yyval.blk.q, yyvsp[-1].i, Q_DEFAULT, yyvsp[0].i); } | 
    ||
1044  | 
    break;  | 
    ||
1045  | 
    case 37:  | 
    ||
1046  | 
    #line 217 "grammar.y"  | 
    ||
1047  | 
    { yyval.blk = yyvsp[0].blk; } | 
    ||
1048  | 
    break;  | 
    ||
1049  | 
    case 38:  | 
    ||
1050  | 
    #line 218 "grammar.y"  | 
    ||
1051  | 
    { yyval.blk.b = yyvsp[-1].blk.b; yyval.blk.q = yyvsp[-2].blk.q; } | 
    ||
1052  | 
    break;  | 
    ||
1053  | 
    case 39:  | 
    ||
1054  | 
    #line 219 "grammar.y"  | 
    ||
1055  | 
    { yyval.blk.b = gen_proto_abbrev(yyvsp[0].i); yyval.blk.q = qerr; } | 
    ||
1056  | 
    break;  | 
    ||
1057  | 
    case 40:  | 
    ||
1058  | 
    #line 220 "grammar.y"  | 
    ||
1059  | 
    { yyval.blk.b = gen_relation(yyvsp[-1].i, yyvsp[-2].a, yyvsp[0].a, 0); | 
    ||
1060  | 
    yyval.blk.q = qerr; }  | 
    ||
1061  | 
    break;  | 
    ||
1062  | 
    case 41:  | 
    ||
1063  | 
    #line 222 "grammar.y"  | 
    ||
1064  | 
    { yyval.blk.b = gen_relation(yyvsp[-1].i, yyvsp[-2].a, yyvsp[0].a, 1); | 
    ||
1065  | 
    yyval.blk.q = qerr; }  | 
    ||
1066  | 
    break;  | 
    ||
1067  | 
    case 42:  | 
    ||
1068  | 
    #line 224 "grammar.y"  | 
    ||
1069  | 
    { yyval.blk.b = yyvsp[0].rblk; yyval.blk.q = qerr; } | 
    ||
1070  | 
    break;  | 
    ||
1071  | 
    case 44:  | 
    ||
1072  | 
    #line 228 "grammar.y"  | 
    ||
1073  | 
    { yyval.i = Q_DEFAULT; } | 
    ||
1074  | 
    break;  | 
    ||
1075  | 
    case 45:  | 
    ||
1076  | 
    #line 231 "grammar.y"  | 
    ||
1077  | 
    { yyval.i = Q_SRC; } | 
    ||
1078  | 
    break;  | 
    ||
1079  | 
    case 46:  | 
    ||
1080  | 
    #line 232 "grammar.y"  | 
    ||
1081  | 
    { yyval.i = Q_DST; } | 
    ||
1082  | 
    break;  | 
    ||
1083  | 
    case 47:  | 
    ||
1084  | 
    #line 233 "grammar.y"  | 
    ||
1085  | 
    { yyval.i = Q_OR; } | 
    ||
1086  | 
    break;  | 
    ||
1087  | 
    case 48:  | 
    ||
1088  | 
    #line 234 "grammar.y"  | 
    ||
1089  | 
    { yyval.i = Q_OR; } | 
    ||
1090  | 
    break;  | 
    ||
1091  | 
    case 49:  | 
    ||
1092  | 
    #line 235 "grammar.y"  | 
    ||
1093  | 
    { yyval.i = Q_AND; } | 
    ||
1094  | 
    break;  | 
    ||
1095  | 
    case 50:  | 
    ||
1096  | 
    #line 236 "grammar.y"  | 
    ||
1097  | 
    { yyval.i = Q_AND; } | 
    ||
1098  | 
    break;  | 
    ||
1099  | 
    case 51:  | 
    ||
1100  | 
    #line 237 "grammar.y"  | 
    ||
1101  | 
    { yyval.i = Q_ADDR1; } | 
    ||
1102  | 
    break;  | 
    ||
1103  | 
    case 52:  | 
    ||
1104  | 
    #line 238 "grammar.y"  | 
    ||
1105  | 
    { yyval.i = Q_ADDR2; } | 
    ||
1106  | 
    break;  | 
    ||
1107  | 
    case 53:  | 
    ||
1108  | 
    #line 239 "grammar.y"  | 
    ||
1109  | 
    { yyval.i = Q_ADDR3; } | 
    ||
1110  | 
    break;  | 
    ||
1111  | 
    case 54:  | 
    ||
1112  | 
    #line 240 "grammar.y"  | 
    ||
1113  | 
    { yyval.i = Q_ADDR4; } | 
    ||
1114  | 
    break;  | 
    ||
1115  | 
    case 55:  | 
    ||
1116  | 
    #line 244 "grammar.y"  | 
    ||
1117  | 
    { yyval.i = Q_HOST; } | 
    ||
1118  | 
    break;  | 
    ||
1119  | 
    case 56:  | 
    ||
1120  | 
    #line 245 "grammar.y"  | 
    ||
1121  | 
    { yyval.i = Q_NET; } | 
    ||
1122  | 
    break;  | 
    ||
1123  | 
    case 57:  | 
    ||
1124  | 
    #line 246 "grammar.y"  | 
    ||
1125  | 
    { yyval.i = Q_PORT; } | 
    ||
1126  | 
    break;  | 
    ||
1127  | 
    case 58:  | 
    ||
1128  | 
    #line 249 "grammar.y"  | 
    ||
1129  | 
    { yyval.i = Q_GATEWAY; } | 
    ||
1130  | 
    break;  | 
    ||
1131  | 
    case 59:  | 
    ||
1132  | 
    #line 251 "grammar.y"  | 
    ||
1133  | 
    { yyval.i = Q_LINK; } | 
    ||
1134  | 
    break;  | 
    ||
1135  | 
    case 60:  | 
    ||
1136  | 
    #line 252 "grammar.y"  | 
    ||
1137  | 
    { yyval.i = Q_IP; } | 
    ||
1138  | 
    break;  | 
    ||
1139  | 
    case 61:  | 
    ||
1140  | 
    #line 253 "grammar.y"  | 
    ||
1141  | 
    { yyval.i = Q_ARP; } | 
    ||
1142  | 
    break;  | 
    ||
1143  | 
    case 62:  | 
    ||
1144  | 
    #line 254 "grammar.y"  | 
    ||
1145  | 
    { yyval.i = Q_RARP; } | 
    ||
1146  | 
    break;  | 
    ||
1147  | 
    case 63:  | 
    ||
1148  | 
    #line 255 "grammar.y"  | 
    ||
1149  | 
    { yyval.i = Q_TCP; } | 
    ||
1150  | 
    break;  | 
    ||
1151  | 
    case 64:  | 
    ||
1152  | 
    #line 256 "grammar.y"  | 
    ||
1153  | 
    { yyval.i = Q_UDP; } | 
    ||
1154  | 
    break;  | 
    ||
1155  | 
    case 65:  | 
    ||
1156  | 
    #line 257 "grammar.y"  | 
    ||
1157  | 
    { yyval.i = Q_ICMP; } | 
    ||
1158  | 
    break;  | 
    ||
1159  | 
    case 66:  | 
    ||
1160  | 
    #line 258 "grammar.y"  | 
    ||
1161  | 
    { yyval.i = Q_IGMP; } | 
    ||
1162  | 
    break;  | 
    ||
1163  | 
    case 67:  | 
    ||
1164  | 
    #line 259 "grammar.y"  | 
    ||
1165  | 
    { yyval.i = Q_IGRP; } | 
    ||
1166  | 
    break;  | 
    ||
1167  | 
    case 68:  | 
    ||
1168  | 
    #line 260 "grammar.y"  | 
    ||
1169  | 
    { yyval.i = Q_PIM; } | 
    ||
1170  | 
    break;  | 
    ||
1171  | 
    case 69:  | 
    ||
1172  | 
    #line 261 "grammar.y"  | 
    ||
1173  | 
    { yyval.i = Q_ATALK; } | 
    ||
1174  | 
    break;  | 
    ||
1175  | 
    case 70:  | 
    ||
1176  | 
    #line 262 "grammar.y"  | 
    ||
1177  | 
    { yyval.i = Q_DECNET; } | 
    ||
1178  | 
    break;  | 
    ||
1179  | 
    case 71:  | 
    ||
1180  | 
    #line 263 "grammar.y"  | 
    ||
1181  | 
    { yyval.i = Q_LAT; } | 
    ||
1182  | 
    break;  | 
    ||
1183  | 
    case 72:  | 
    ||
1184  | 
    #line 264 "grammar.y"  | 
    ||
1185  | 
    { yyval.i = Q_SCA; } | 
    ||
1186  | 
    break;  | 
    ||
1187  | 
    case 73:  | 
    ||
1188  | 
    #line 265 "grammar.y"  | 
    ||
1189  | 
    { yyval.i = Q_MOPDL; } | 
    ||
1190  | 
    break;  | 
    ||
1191  | 
    case 74:  | 
    ||
1192  | 
    #line 266 "grammar.y"  | 
    ||
1193  | 
    { yyval.i = Q_MOPRC; } | 
    ||
1194  | 
    break;  | 
    ||
1195  | 
    case 75:  | 
    ||
1196  | 
    #line 267 "grammar.y"  | 
    ||
1197  | 
    { yyval.i = Q_IPV6; } | 
    ||
1198  | 
    break;  | 
    ||
1199  | 
    case 76:  | 
    ||
1200  | 
    #line 268 "grammar.y"  | 
    ||
1201  | 
    { yyval.i = Q_ICMPV6; } | 
    ||
1202  | 
    break;  | 
    ||
1203  | 
    case 77:  | 
    ||
1204  | 
    #line 269 "grammar.y"  | 
    ||
1205  | 
    { yyval.i = Q_AH; } | 
    ||
1206  | 
    break;  | 
    ||
1207  | 
    case 78:  | 
    ||
1208  | 
    #line 270 "grammar.y"  | 
    ||
1209  | 
    { yyval.i = Q_ESP; } | 
    ||
1210  | 
    break;  | 
    ||
1211  | 
    case 79:  | 
    ||
1212  | 
    #line 271 "grammar.y"  | 
    ||
1213  | 
    { yyval.i = Q_STP; } | 
    ||
1214  | 
    break;  | 
    ||
1215  | 
    case 80:  | 
    ||
1216  | 
    #line 273 "grammar.y"  | 
    ||
1217  | 
    { yyval.rblk = gen_broadcast(yyvsp[-1].i); } | 
    ||
1218  | 
    break;  | 
    ||
1219  | 
    case 81:  | 
    ||
1220  | 
    #line 274 "grammar.y"  | 
    ||
1221  | 
    { yyval.rblk = gen_multicast(yyvsp[-1].i); } | 
    ||
1222  | 
    break;  | 
    ||
1223  | 
    case 82:  | 
    ||
1224  | 
    #line 275 "grammar.y"  | 
    ||
1225  | 
    { yyval.rblk = gen_less(yyvsp[0].i); } | 
    ||
1226  | 
    break;  | 
    ||
1227  | 
    case 83:  | 
    ||
1228  | 
    #line 276 "grammar.y"  | 
    ||
1229  | 
    { yyval.rblk = gen_greater(yyvsp[0].i); } | 
    ||
1230  | 
    break;  | 
    ||
1231  | 
    case 84:  | 
    ||
1232  | 
    #line 277 "grammar.y"  | 
    ||
1233  | 
    { yyval.rblk = gen_byteop(yyvsp[-1].i, yyvsp[-2].i, yyvsp[0].i); } | 
    ||
1234  | 
    break;  | 
    ||
1235  | 
    case 85:  | 
    ||
1236  | 
    #line 278 "grammar.y"  | 
    ||
1237  | 
    { yyval.rblk = gen_inbound(0); } | 
    ||
1238  | 
    break;  | 
    ||
1239  | 
    case 86:  | 
    ||
1240  | 
    #line 279 "grammar.y"  | 
    ||
1241  | 
    { yyval.rblk = gen_inbound(1); } | 
    ||
1242  | 
    break;  | 
    ||
1243  | 
    case 87:  | 
    ||
1244  | 
    #line 280 "grammar.y"  | 
    ||
1245  | 
    { yyval.rblk = gen_vlan(yyvsp[0].i); } | 
    ||
1246  | 
    break;  | 
    ||
1247  | 
    case 88:  | 
    ||
1248  | 
    #line 281 "grammar.y"  | 
    ||
1249  | 
    { yyval.rblk = gen_vlan(-1); } | 
    ||
1250  | 
    break;  | 
    ||
1251  | 
    case 89:  | 
    ||
1252  | 
    #line 282 "grammar.y"  | 
    ||
1253  | 
    { yyval.rblk = yyvsp[0].rblk; } | 
    ||
1254  | 
    break;  | 
    ||
1255  | 
    case 90:  | 
    ||
1256  | 
    #line 283 "grammar.y"  | 
    ||
1257  | 
    { yyval.rblk = yyvsp[0].rblk; } | 
    ||
1258  | 
    break;  | 
    ||
1259  | 
    case 91:  | 
    ||
1260  | 
    #line 286 "grammar.y"  | 
    ||
1261  | 
    { yyval.rblk = gen_pf_ifname(yyvsp[0].s); } | 
    ||
1262  | 
    break;  | 
    ||
1263  | 
    case 92:  | 
    ||
1264  | 
    #line 287 "grammar.y"  | 
    ||
1265  | 
    { yyval.rblk = gen_pf_ruleset(yyvsp[0].s); } | 
    ||
1266  | 
    break;  | 
    ||
1267  | 
    case 93:  | 
    ||
1268  | 
    #line 288 "grammar.y"  | 
    ||
1269  | 
    { yyval.rblk = gen_pf_rnr(yyvsp[0].i); } | 
    ||
1270  | 
    break;  | 
    ||
1271  | 
    case 94:  | 
    ||
1272  | 
    #line 289 "grammar.y"  | 
    ||
1273  | 
    { yyval.rblk = gen_pf_srnr(yyvsp[0].i); } | 
    ||
1274  | 
    break;  | 
    ||
1275  | 
    case 95:  | 
    ||
1276  | 
    #line 290 "grammar.y"  | 
    ||
1277  | 
    { yyval.rblk = gen_pf_reason(yyvsp[0].i); } | 
    ||
1278  | 
    break;  | 
    ||
1279  | 
    case 96:  | 
    ||
1280  | 
    #line 291 "grammar.y"  | 
    ||
1281  | 
    { yyval.rblk = gen_pf_action(yyvsp[0].i); } | 
    ||
1282  | 
    break;  | 
    ||
1283  | 
    case 97:  | 
    ||
1284  | 
    #line 294 "grammar.y"  | 
    ||
1285  | 
    { yyval.i = yyvsp[0].i; } | 
    ||
1286  | 
    break;  | 
    ||
1287  | 
    case 98:  | 
    ||
1288  | 
    #line 295 "grammar.y"  | 
    ||
1289  | 
    { const char *reasons[] = PFRES_NAMES; | 
    ||
1290  | 
    int i;  | 
    ||
1291  | 
    				  for (i = 0; reasons[i]; i++) { | 
    ||
1292  | 
    					  if (strcasecmp(yyvsp[0].s, reasons[i]) == 0) { | 
    ||
1293  | 
    yyval.i = i;  | 
    ||
1294  | 
    break;  | 
    ||
1295  | 
    }  | 
    ||
1296  | 
    }  | 
    ||
1297  | 
    if (reasons[i] == NULL)  | 
    ||
1298  | 
    					  bpf_error("unknown PF reason"); | 
    ||
1299  | 
    }  | 
    ||
1300  | 
    break;  | 
    ||
1301  | 
    case 99:  | 
    ||
1302  | 
    #line 308 "grammar.y"  | 
    ||
1303  | 
    { if (strcasecmp(yyvsp[0].s, "pass") == 0 || | 
    ||
1304  | 
    strcasecmp(yyvsp[0].s, "accept") == 0)  | 
    ||
1305  | 
    yyval.i = PF_PASS;  | 
    ||
1306  | 
    else if (strcasecmp(yyvsp[0].s, "drop") == 0 ||  | 
    ||
1307  | 
    strcasecmp(yyvsp[0].s, "block") == 0)  | 
    ||
1308  | 
    yyval.i = PF_DROP;  | 
    ||
1309  | 
    else if (strcasecmp(yyvsp[0].s, "match") == 0)  | 
    ||
1310  | 
    yyval.i = PF_MATCH;  | 
    ||
1311  | 
    else if (strcasecmp(yyvsp[0].s, "rdr") == 0)  | 
    ||
1312  | 
    yyval.i = PF_RDR;  | 
    ||
1313  | 
    else if (strcasecmp(yyvsp[0].s, "nat") == 0)  | 
    ||
1314  | 
    yyval.i = PF_NAT;  | 
    ||
1315  | 
    else if (strcasecmp(yyvsp[0].s, "binat") == 0)  | 
    ||
1316  | 
    yyval.i = PF_BINAT;  | 
    ||
1317  | 
    else if (strcasecmp(yyvsp[0].s, "scrub") == 0)  | 
    ||
1318  | 
    yyval.i = PF_SCRUB;  | 
    ||
1319  | 
    else  | 
    ||
1320  | 
    					  bpf_error("unknown PF action"); | 
    ||
1321  | 
    }  | 
    ||
1322  | 
    break;  | 
    ||
1323  | 
    case 100:  | 
    ||
1324  | 
    #line 330 "grammar.y"  | 
    ||
1325  | 
    { yyval.rblk = gen_p80211_type(yyvsp[-2].i | yyvsp[0].i, | 
    ||
1326  | 
    IEEE80211_FC0_TYPE_MASK |  | 
    ||
1327  | 
    IEEE80211_FC0_SUBTYPE_MASK);  | 
    ||
1328  | 
    }  | 
    ||
1329  | 
    break;  | 
    ||
1330  | 
    case 101:  | 
    ||
1331  | 
    #line 334 "grammar.y"  | 
    ||
1332  | 
    { yyval.rblk = gen_p80211_type(yyvsp[0].i, | 
    ||
1333  | 
    IEEE80211_FC0_TYPE_MASK); }  | 
    ||
1334  | 
    break;  | 
    ||
1335  | 
    case 102:  | 
    ||
1336  | 
    #line 336 "grammar.y"  | 
    ||
1337  | 
    { yyval.rblk = gen_p80211_type(yyvsp[0].i, | 
    ||
1338  | 
    IEEE80211_FC0_SUBTYPE_MASK); }  | 
    ||
1339  | 
    break;  | 
    ||
1340  | 
    case 103:  | 
    ||
1341  | 
    #line 338 "grammar.y"  | 
    ||
1342  | 
    { yyval.rblk = gen_p80211_fcdir(yyvsp[0].i); } | 
    ||
1343  | 
    break;  | 
    ||
1344  | 
    case 105:  | 
    ||
1345  | 
    #line 342 "grammar.y"  | 
    ||
1346  | 
    { if (strcasecmp(yyvsp[0].s, "data") == 0) | 
    ||
1347  | 
    yyval.i = IEEE80211_FC0_TYPE_DATA;  | 
    ||
1348  | 
    else if (strcasecmp(yyvsp[0].s, "mgt") == 0 ||  | 
    ||
1349  | 
    strcasecmp(yyvsp[0].s, "management") == 0)  | 
    ||
1350  | 
    yyval.i = IEEE80211_FC0_TYPE_MGT;  | 
    ||
1351  | 
    else if (strcasecmp(yyvsp[0].s, "ctl") == 0 ||  | 
    ||
1352  | 
    strcasecmp(yyvsp[0].s, "control") == 0)  | 
    ||
1353  | 
    yyval.i = IEEE80211_FC0_TYPE_CTL;  | 
    ||
1354  | 
    else  | 
    ||
1355  | 
    					  bpf_error("unknown 802.11 type"); | 
    ||
1356  | 
    }  | 
    ||
1357  | 
    break;  | 
    ||
1358  | 
    case 107:  | 
    ||
1359  | 
    #line 356 "grammar.y"  | 
    ||
1360  | 
    { if (strcasecmp(yyvsp[0].s, "assocreq") == 0) | 
    ||
1361  | 
    yyval.i = IEEE80211_FC0_SUBTYPE_ASSOC_REQ;  | 
    ||
1362  | 
    else if (strcasecmp(yyvsp[0].s, "assocresp") == 0)  | 
    ||
1363  | 
    yyval.i = IEEE80211_FC0_SUBTYPE_ASSOC_RESP;  | 
    ||
1364  | 
    else if (strcasecmp(yyvsp[0].s, "reassocreq") == 0)  | 
    ||
1365  | 
    yyval.i = IEEE80211_FC0_SUBTYPE_REASSOC_REQ;  | 
    ||
1366  | 
    else if (strcasecmp(yyvsp[0].s, "reassocresp") == 0)  | 
    ||
1367  | 
    yyval.i = IEEE80211_FC0_SUBTYPE_REASSOC_RESP;  | 
    ||
1368  | 
    else if (strcasecmp(yyvsp[0].s, "probereq") == 0)  | 
    ||
1369  | 
    yyval.i = IEEE80211_FC0_SUBTYPE_PROBE_REQ;  | 
    ||
1370  | 
    else if (strcasecmp(yyvsp[0].s, "proberesp") == 0)  | 
    ||
1371  | 
    yyval.i = IEEE80211_FC0_SUBTYPE_PROBE_RESP;  | 
    ||
1372  | 
    else if (strcasecmp(yyvsp[0].s, "beacon") == 0)  | 
    ||
1373  | 
    yyval.i = IEEE80211_FC0_SUBTYPE_BEACON;  | 
    ||
1374  | 
    else if (strcasecmp(yyvsp[0].s, "atim") == 0)  | 
    ||
1375  | 
    yyval.i = IEEE80211_FC0_SUBTYPE_ATIM;  | 
    ||
1376  | 
    else if (strcasecmp(yyvsp[0].s, "disassoc") == 0 ||  | 
    ||
1377  | 
    strcasecmp(yyvsp[0].s, "disassociation") == 0)  | 
    ||
1378  | 
    yyval.i = IEEE80211_FC0_SUBTYPE_DISASSOC;  | 
    ||
1379  | 
    else if (strcasecmp(yyvsp[0].s, "auth") == 0 ||  | 
    ||
1380  | 
    strcasecmp(yyvsp[0].s, "authentication") == 0)  | 
    ||
1381  | 
    yyval.i = IEEE80211_FC0_SUBTYPE_AUTH;  | 
    ||
1382  | 
    else if (strcasecmp(yyvsp[0].s, "deauth") == 0 ||  | 
    ||
1383  | 
    strcasecmp(yyvsp[0].s, "deauthentication") == 0)  | 
    ||
1384  | 
    yyval.i = IEEE80211_FC0_SUBTYPE_DEAUTH;  | 
    ||
1385  | 
    else if (strcasecmp(yyvsp[0].s, "data") == 0)  | 
    ||
1386  | 
    yyval.i = IEEE80211_FC0_SUBTYPE_DATA;  | 
    ||
1387  | 
    else  | 
    ||
1388  | 
    					  bpf_error("unknown 802.11 subtype"); | 
    ||
1389  | 
    }  | 
    ||
1390  | 
    break;  | 
    ||
1391  | 
    case 109:  | 
    ||
1392  | 
    #line 389 "grammar.y"  | 
    ||
1393  | 
    { if (strcasecmp(yyvsp[0].s, "nods") == 0) | 
    ||
1394  | 
    yyval.i = IEEE80211_FC1_DIR_NODS;  | 
    ||
1395  | 
    else if (strcasecmp(yyvsp[0].s, "tods") == 0)  | 
    ||
1396  | 
    yyval.i = IEEE80211_FC1_DIR_TODS;  | 
    ||
1397  | 
    else if (strcasecmp(yyvsp[0].s, "fromds") == 0)  | 
    ||
1398  | 
    yyval.i = IEEE80211_FC1_DIR_FROMDS;  | 
    ||
1399  | 
    else if (strcasecmp(yyvsp[0].s, "dstods") == 0)  | 
    ||
1400  | 
    yyval.i = IEEE80211_FC1_DIR_DSTODS;  | 
    ||
1401  | 
    else  | 
    ||
1402  | 
    					bpf_error("unknown 802.11 direction"); | 
    ||
1403  | 
    }  | 
    ||
1404  | 
    break;  | 
    ||
1405  | 
    case 110:  | 
    ||
1406  | 
    #line 402 "grammar.y"  | 
    ||
1407  | 
    { yyval.i = BPF_JGT; } | 
    ||
1408  | 
    break;  | 
    ||
1409  | 
    case 111:  | 
    ||
1410  | 
    #line 403 "grammar.y"  | 
    ||
1411  | 
    { yyval.i = BPF_JGE; } | 
    ||
1412  | 
    break;  | 
    ||
1413  | 
    case 112:  | 
    ||
1414  | 
    #line 404 "grammar.y"  | 
    ||
1415  | 
    { yyval.i = BPF_JEQ; } | 
    ||
1416  | 
    break;  | 
    ||
1417  | 
    case 113:  | 
    ||
1418  | 
    #line 406 "grammar.y"  | 
    ||
1419  | 
    { yyval.i = BPF_JGT; } | 
    ||
1420  | 
    break;  | 
    ||
1421  | 
    case 114:  | 
    ||
1422  | 
    #line 407 "grammar.y"  | 
    ||
1423  | 
    { yyval.i = BPF_JGE; } | 
    ||
1424  | 
    break;  | 
    ||
1425  | 
    case 115:  | 
    ||
1426  | 
    #line 408 "grammar.y"  | 
    ||
1427  | 
    { yyval.i = BPF_JEQ; } | 
    ||
1428  | 
    break;  | 
    ||
1429  | 
    case 116:  | 
    ||
1430  | 
    #line 410 "grammar.y"  | 
    ||
1431  | 
    { yyval.a = gen_loadi(yyvsp[0].i); } | 
    ||
1432  | 
    break;  | 
    ||
1433  | 
    case 118:  | 
    ||
1434  | 
    #line 413 "grammar.y"  | 
    ||
1435  | 
    { yyval.a = gen_load(yyvsp[-3].i, yyvsp[-1].a, 1); } | 
    ||
1436  | 
    break;  | 
    ||
1437  | 
    case 119:  | 
    ||
1438  | 
    #line 414 "grammar.y"  | 
    ||
1439  | 
    { yyval.a = gen_load(yyvsp[-5].i, yyvsp[-3].a, yyvsp[-1].i); } | 
    ||
1440  | 
    break;  | 
    ||
1441  | 
    case 120:  | 
    ||
1442  | 
    #line 415 "grammar.y"  | 
    ||
1443  | 
    { yyval.a = gen_arth(BPF_ADD, yyvsp[-2].a, yyvsp[0].a); } | 
    ||
1444  | 
    break;  | 
    ||
1445  | 
    case 121:  | 
    ||
1446  | 
    #line 416 "grammar.y"  | 
    ||
1447  | 
    { yyval.a = gen_arth(BPF_SUB, yyvsp[-2].a, yyvsp[0].a); } | 
    ||
1448  | 
    break;  | 
    ||
1449  | 
    case 122:  | 
    ||
1450  | 
    #line 417 "grammar.y"  | 
    ||
1451  | 
    { yyval.a = gen_arth(BPF_MUL, yyvsp[-2].a, yyvsp[0].a); } | 
    ||
1452  | 
    break;  | 
    ||
1453  | 
    case 123:  | 
    ||
1454  | 
    #line 418 "grammar.y"  | 
    ||
1455  | 
    { yyval.a = gen_arth(BPF_DIV, yyvsp[-2].a, yyvsp[0].a); } | 
    ||
1456  | 
    break;  | 
    ||
1457  | 
    case 124:  | 
    ||
1458  | 
    #line 419 "grammar.y"  | 
    ||
1459  | 
    { yyval.a = gen_arth(BPF_AND, yyvsp[-2].a, yyvsp[0].a); } | 
    ||
1460  | 
    break;  | 
    ||
1461  | 
    case 125:  | 
    ||
1462  | 
    #line 420 "grammar.y"  | 
    ||
1463  | 
    { yyval.a = gen_arth(BPF_OR, yyvsp[-2].a, yyvsp[0].a); } | 
    ||
1464  | 
    break;  | 
    ||
1465  | 
    case 126:  | 
    ||
1466  | 
    #line 421 "grammar.y"  | 
    ||
1467  | 
    { yyval.a = gen_arth(BPF_LSH, yyvsp[-2].a, yyvsp[0].a); } | 
    ||
1468  | 
    break;  | 
    ||
1469  | 
    case 127:  | 
    ||
1470  | 
    #line 422 "grammar.y"  | 
    ||
1471  | 
    { yyval.a = gen_arth(BPF_RSH, yyvsp[-2].a, yyvsp[0].a); } | 
    ||
1472  | 
    break;  | 
    ||
1473  | 
    case 128:  | 
    ||
1474  | 
    #line 423 "grammar.y"  | 
    ||
1475  | 
    { yyval.a = gen_neg(yyvsp[0].a); } | 
    ||
1476  | 
    break;  | 
    ||
1477  | 
    case 129:  | 
    ||
1478  | 
    #line 424 "grammar.y"  | 
    ||
1479  | 
    { yyval.a = yyvsp[-1].a; } | 
    ||
1480  | 
    break;  | 
    ||
1481  | 
    case 130:  | 
    ||
1482  | 
    #line 425 "grammar.y"  | 
    ||
1483  | 
    { yyval.a = gen_loadlen(); } | 
    ||
1484  | 
    break;  | 
    ||
1485  | 
    case 131:  | 
    ||
1486  | 
    #line 427 "grammar.y"  | 
    ||
1487  | 
    { yyval.i = '&'; } | 
    ||
1488  | 
    break;  | 
    ||
1489  | 
    case 132:  | 
    ||
1490  | 
    #line 428 "grammar.y"  | 
    ||
1491  | 
    { yyval.i = '|'; } | 
    ||
1492  | 
    break;  | 
    ||
1493  | 
    case 133:  | 
    ||
1494  | 
    #line 429 "grammar.y"  | 
    ||
1495  | 
    { yyval.i = '<'; } | 
    ||
1496  | 
    break;  | 
    ||
1497  | 
    case 134:  | 
    ||
1498  | 
    #line 430 "grammar.y"  | 
    ||
1499  | 
    { yyval.i = '>'; } | 
    ||
1500  | 
    break;  | 
    ||
1501  | 
    case 135:  | 
    ||
1502  | 
    #line 431 "grammar.y"  | 
    ||
1503  | 
    36  | 
    { yyval.i = '='; } | 
    |
1504  | 
    36  | 
    break;  | 
    |
1505  | 
    36  | 
    case 137:  | 
    |
1506  | 
    36  | 
    #line 434 "grammar.y"  | 
    |
1507  | 
    ✓✓ | 36  | 
    { yyval.i = yyvsp[-1].i; } | 
    
1508  | 
    break;  | 
    ||
1509  | 
    #line 1502 "grammar.c"  | 
    ||
1510  | 
    }  | 
    ||
1511  | 
    yyssp -= yym;  | 
    ||
1512  | 
    yystate = *yyssp;  | 
    ||
1513  | 
    yyvsp -= yym;  | 
    ||
1514  | 
    yym = yylhs[yyn];  | 
    ||
1515  | 
    2  | 
    if (yystate == 0 && yym == 0)  | 
    |
1516  | 
    2  | 
        { | 
    |
1517  | 
    ✗✓ | 2  | 
    #if YYDEBUG  | 
    
1518  | 
    if (yydebug)  | 
    ||
1519  | 
                printf("%sdebug: after reduction, shifting from state 0 to\ | 
    ||
1520  | 
    state %d\n", YYPREFIX, YYFINAL);  | 
    ||
1521  | 
    #endif  | 
    ||
1522  | 
    yystate = YYFINAL;  | 
    ||
1523  | 
    *++yyssp = YYFINAL;  | 
    ||
1524  | 
    *++yyvsp = yyval;  | 
    ||
1525  | 
    if (yychar < 0)  | 
    ||
1526  | 
            { | 
    ||
1527  | 
    if ((yychar = yylex()) < 0) yychar = 0;  | 
    ||
1528  | 
    #if YYDEBUG  | 
    ||
1529  | 
    if (yydebug)  | 
    ||
1530  | 
                { | 
    ||
1531  | 
    ✗✓ | 2  | 
    yys = 0;  | 
    
1532  | 
    if (yychar <= YYMAXTOKEN) yys = yyname[yychar];  | 
    ||
1533  | 
    if (!yys) yys = "illegal-symbol";  | 
    ||
1534  | 
    ✓✓✓✓ ✓✓  | 
    110  | 
                    printf("%sdebug: state %d, reading %d (%s)\n", | 
    
1535  | 
    50  | 
    YYPREFIX, YYFINAL, yychar, yys);  | 
    |
1536  | 
    14  | 
    }  | 
    |
1537  | 
    #endif  | 
    ||
1538  | 
    20  | 
    }  | 
    |
1539  | 
    if (yychar == 0) goto yyaccept;  | 
    ||
1540  | 
    goto yyloop;  | 
    ||
1541  | 
    }  | 
    ||
1542  | 
    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&  | 
    ||
1543  | 
    yyn <= YYTABLESIZE && yycheck[yyn] == yystate)  | 
    ||
1544  | 
    ✗✓✗✗ | 
    34  | 
    yystate = yytable[yyn];  | 
    
1545  | 
    else  | 
    ||
1546  | 
    yystate = yydgoto[yym];  | 
    ||
1547  | 
    #if YYDEBUG  | 
    ||
1548  | 
    34  | 
    if (yydebug)  | 
    |
1549  | 
    34  | 
            printf("%sdebug: after reduction, shifting from state %d \ | 
    |
1550  | 
    34  | 
    to state %d\n", YYPREFIX, *yyssp, yystate);  | 
    |
1551  | 
    #endif  | 
    ||
1552  | 
    if (yyssp >= yysslim && yygrowstack())  | 
    ||
1553  | 
        { | 
    ||
1554  | 
    goto yyoverflow;  | 
    ||
1555  | 
    }  | 
    ||
1556  | 
    *++yyssp = yystate;  | 
    ||
1557  | 
    *++yyvsp = yyval;  | 
    ||
1558  | 
    goto yyloop;  | 
    ||
1559  | 
    yyoverflow:  | 
    ||
1560  | 
        yyerror("yacc stack overflow"); | 
    ||
1561  | 
    yyabort:  | 
    ||
1562  | 
    if (yyss)  | 
    ||
1563  | 
    ✓✗ | 2  | 
    free(yyss);  | 
    
1564  | 
    2  | 
    if (yyvs)  | 
    |
1565  | 
    ✓✗ | 2  | 
    free(yyvs);  | 
    
1566  | 
    2  | 
    yyss = yyssp = NULL;  | 
    |
1567  | 
    2  | 
    yyvs = yyvsp = NULL;  | 
    |
1568  | 
    2  | 
    yystacksize = 0;  | 
    |
1569  | 
    2  | 
    return (1);  | 
    |
1570  | 
    2  | 
    yyaccept:  | 
    |
1571  | 
    2  | 
    if (yyss)  | 
    |
1572  | 
    free(yyss);  | 
    ||
1573  | 
    if (yyvs)  | 
    ||
1574  | 
    free(yyvs);  | 
    ||
1575  | 
    yyss = yyssp = NULL;  | 
    ||
1576  | 
    yyvs = yyvsp = NULL;  | 
    ||
1577  | 
    yystacksize = 0;  | 
    ||
1578  | 
    return (0);  | 
    ||
1579  | 
    }  | 
    
| Generated by: GCOVR (Version 3.3) |