diff options
Diffstat (limited to 'freebsd/contrib/libpcap/grammar.c')
-rw-r--r-- | freebsd/contrib/libpcap/grammar.c | 1782 |
1 files changed, 972 insertions, 810 deletions
diff --git a/freebsd/contrib/libpcap/grammar.c b/freebsd/contrib/libpcap/grammar.c index a0853614..a04f770c 100644 --- a/freebsd/contrib/libpcap/grammar.c +++ b/freebsd/contrib/libpcap/grammar.c @@ -5,7 +5,7 @@ #define YYBYACC 1 #define YYMAJOR 1 #define YYMINOR 9 -#define YYPATCH 20160324 +#define YYPATCH 20170201 #define YYEMPTY (-1) #define yyclearin (yychar = YYEMPTY) @@ -15,89 +15,89 @@ #define YYEOF 0 #ifndef yyparse -#define yyparse pcapparse +#define yyparse pcap_parse #endif /* yyparse */ #ifndef yylex -#define yylex pcaplex +#define yylex pcap_lex #endif /* yylex */ #ifndef yyerror -#define yyerror pcaperror +#define yyerror pcap_error #endif /* yyerror */ #ifndef yychar -#define yychar pcapchar +#define yychar pcap_char #endif /* yychar */ #ifndef yyval -#define yyval pcapval +#define yyval pcap_val #endif /* yyval */ #ifndef yylval -#define yylval pcaplval +#define yylval pcap_lval #endif /* yylval */ #ifndef yydebug -#define yydebug pcapdebug +#define yydebug pcap_debug #endif /* yydebug */ #ifndef yynerrs -#define yynerrs pcapnerrs +#define yynerrs pcap_nerrs #endif /* yynerrs */ #ifndef yyerrflag -#define yyerrflag pcaperrflag +#define yyerrflag pcap_errflag #endif /* yyerrflag */ #ifndef yylhs -#define yylhs pcaplhs +#define yylhs pcap_lhs #endif /* yylhs */ #ifndef yylen -#define yylen pcaplen +#define yylen pcap_len #endif /* yylen */ #ifndef yydefred -#define yydefred pcapdefred +#define yydefred pcap_defred #endif /* yydefred */ #ifndef yydgoto -#define yydgoto pcapdgoto +#define yydgoto pcap_dgoto #endif /* yydgoto */ #ifndef yysindex -#define yysindex pcapsindex +#define yysindex pcap_sindex #endif /* yysindex */ #ifndef yyrindex -#define yyrindex pcaprindex +#define yyrindex pcap_rindex #endif /* yyrindex */ #ifndef yygindex -#define yygindex pcapgindex +#define yygindex pcap_gindex #endif /* yygindex */ #ifndef yytable -#define yytable pcaptable +#define yytable pcap_table #endif /* yytable */ #ifndef yycheck -#define yycheck pcapcheck +#define yycheck pcap_check #endif /* yycheck */ #ifndef yyname -#define yyname pcapname +#define yyname pcap_name #endif /* yyname */ #ifndef yyrule -#define yyrule pcaprule +#define yyrule pcap_rule #endif /* yyrule */ -#define YYPREFIX "pcap" +#define YYPREFIX "pcap_" -#define YYPURE 0 +#define YYPURE 1 -#line 2 "../../freebsd/contrib/libpcap/grammar.y" +#line 27 "grammar.y" /* * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996 * The Regents of the University of California. All rights reserved. @@ -120,25 +120,21 @@ * * $FreeBSD$ */ -#ifndef lint -static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/libpcap/grammar.y,v 1.101 2007-11-18 02:03:52 guy Exp $ (LBL)"; -#endif #ifdef HAVE_CONFIG_H #include "config.h" #endif -#ifdef WIN32 +#ifdef _WIN32 #include <pcap-stdinc.h> -#else /* WIN32 */ +#else /* _WIN32 */ #include <sys/types.h> #include <sys/socket.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ #include <stdlib.h> -#ifndef WIN32 +#ifndef _WIN32 #if __STDC__ struct mbuf; struct rtentry; @@ -146,18 +142,22 @@ struct rtentry; #include <netinet/in.h> #include <arpa/inet.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ #include <stdio.h> #include "pcap-int.h" #include "gencode.h" +#include "grammar.h" +#include "scanner.h" + #ifdef HAVE_NET_PFVAR_H #include <net/if.h> -#include <net/pfvar.h> +#include <netpfil/pf/pf.h> #include <net/if_pflog.h> #endif +#include "llc.h" #include "ieee80211.h" #include <pcap/namedb.h> @@ -232,6 +232,23 @@ static const struct tok ieee80211_data_subtypes[] = { { IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_SUBTYPE_NODATA_CF_ACPL, "qos-cf-ack-poll" }, { 0, NULL } }; +static const struct tok llc_s_subtypes[] = { + { LLC_RR, "rr" }, + { LLC_RNR, "rnr" }, + { LLC_REJ, "rej" }, + { 0, NULL } +}; +static const struct tok llc_u_subtypes[] = { + { LLC_UI, "ui" }, + { LLC_UA, "ua" }, + { LLC_DISC, "disc" }, + { LLC_DM, "dm" }, + { LLC_SABME, "sabme" }, + { LLC_TEST, "test" }, + { LLC_XID, "xid" }, + { LLC_FRMR, "frmr" }, + { 0, NULL } +}; struct type2tok { int type; const struct tok *tok; @@ -255,31 +272,18 @@ str2tok(const char *str, const struct tok *toks) return (-1); } -int n_errors = 0; - static struct qual qerr = { Q_UNDEF, Q_UNDEF, Q_UNDEF, Q_UNDEF }; static void -yyerror(const char *msg) +yyerror(void *yyscanner, compiler_state_t *cstate, const char *msg) { - ++n_errors; - bpf_error("%s", msg); + bpf_syntax_error(cstate, msg); /* NOTREACHED */ } -#ifdef NEED_YYPARSE_WRAPPER -int yyparse(void); - -int -pcap_parse() -{ - return (yyparse()); -} -#endif - #ifdef HAVE_NET_PFVAR_H static int -pfreason_to_num(const char *reason) +pfreason_to_num(compiler_state_t *cstate, const char *reason) { const char *reasons[] = PFRES_NAMES; int i; @@ -288,12 +292,12 @@ pfreason_to_num(const char *reason) if (pcap_strcasecmp(reason, reasons[i]) == 0) return (i); } - bpf_error("unknown PF reason"); + bpf_error(cstate, "unknown PF reason"); /*NOTREACHED*/ } static int -pfaction_to_num(const char *action) +pfaction_to_num(compiler_state_t *cstate, const char *action) { if (pcap_strcasecmp(action, "pass") == 0 || pcap_strcasecmp(action, "accept") == 0) @@ -312,15 +316,15 @@ pfaction_to_num(const char *action) return (PF_NORDR); #endif else { - bpf_error("unknown PF action"); + bpf_error(cstate, "unknown PF action"); /*NOTREACHED*/ } } #else /* !HAVE_NET_PFVAR_H */ static int -pfreason_to_num(const char *reason) +pfreason_to_num(compiler_state_t *cstate, const char *reason) { - bpf_error("libpcap was compiled on a machine without pf support"); + bpf_error(cstate, "libpcap was compiled on a machine without pf support"); /*NOTREACHED*/ /* this is to make the VC compiler happy */ @@ -328,22 +332,22 @@ pfreason_to_num(const char *reason) } static int -pfaction_to_num(const char *action) +pfaction_to_num(compiler_state_t *cstate, const char *action) { - bpf_error("libpcap was compiled on a machine without pf support"); + bpf_error(cstate, "libpcap was compiled on a machine without pf support"); /*NOTREACHED*/ /* this is to make the VC compiler happy */ return -1; } #endif /* HAVE_NET_PFVAR_H */ -#line 243 "../../freebsd/contrib/libpcap/grammar.y" #ifdef YYSTYPE #undef YYSTYPE_IS_DECLARED #define YYSTYPE_IS_DECLARED 1 #endif #ifndef YYSTYPE_IS_DECLARED #define YYSTYPE_IS_DECLARED 1 +#line 272 "grammar.y" typedef union { int i; bpf_u_int32 h; @@ -360,7 +364,7 @@ typedef union { struct block *rblk; } YYSTYPE; #endif /* !YYSTYPE_IS_DECLARED */ -#line 364 "pcap.tab.c" +#line 368 "grammar.c" /* compatibility with bison */ #ifdef YYPARSE_PARAM @@ -371,24 +375,28 @@ typedef union { # define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM) # endif #else -# define YYPARSE_DECL() yyparse(void) +# define YYPARSE_DECL() yyparse(void *yyscanner, compiler_state_t *cstate) #endif /* Parameters sent to lex. */ #ifdef YYLEX_PARAM -# define YYLEX_DECL() yylex(void *YYLEX_PARAM) -# define YYLEX yylex(YYLEX_PARAM) +# ifdef YYLEX_PARAM_TYPE +# define YYLEX_DECL() yylex(YYSTYPE *yylval, YYLEX_PARAM_TYPE YYLEX_PARAM) +# else +# define YYLEX_DECL() yylex(YYSTYPE *yylval, void * YYLEX_PARAM) +# endif +# define YYLEX yylex(&yylval, YYLEX_PARAM) #else -# define YYLEX_DECL() yylex(void) -# define YYLEX yylex() +# define YYLEX_DECL() yylex(YYSTYPE *yylval, void *yyscanner) +# define YYLEX yylex(&yylval, yyscanner) #endif /* Parameters sent to yyerror. */ #ifndef YYERROR_DECL -#define YYERROR_DECL() yyerror(const char *s) +#define YYERROR_DECL() yyerror(void *yyscanner, compiler_state_t *cstate, const char *s) #endif #ifndef YYERROR_CALL -#define YYERROR_CALL(msg) yyerror(msg) +#define YYERROR_CALL(msg) yyerror(yyscanner, cstate, msg) #endif extern int YYPARSE_DECL(); @@ -465,48 +473,56 @@ extern int YYPARSE_DECL(); #define MPLS 326 #define PPPOED 327 #define PPPOES 328 -#define ISO 329 -#define ESIS 330 -#define CLNP 331 -#define ISIS 332 -#define L1 333 -#define L2 334 -#define IIH 335 -#define LSP 336 -#define SNP 337 -#define CSNP 338 -#define PSNP 339 -#define STP 340 -#define IPX 341 -#define NETBEUI 342 -#define LANE 343 -#define LLC 344 -#define METAC 345 -#define BCC 346 -#define SC 347 -#define ILMIC 348 -#define OAMF4EC 349 -#define OAMF4SC 350 -#define OAM 351 -#define OAMF4 352 -#define CONNECTMSG 353 -#define METACONNECT 354 -#define VPI 355 -#define VCI 356 -#define RADIO 357 -#define FISU 358 -#define LSSU 359 -#define MSU 360 -#define SIO 361 -#define OPC 362 -#define DPC 363 -#define SLS 364 -#define OR 365 -#define AND 366 -#define UMINUS 367 +#define GENEVE 329 +#define ISO 330 +#define ESIS 331 +#define CLNP 332 +#define ISIS 333 +#define L1 334 +#define L2 335 +#define IIH 336 +#define LSP 337 +#define SNP 338 +#define CSNP 339 +#define PSNP 340 +#define STP 341 +#define IPX 342 +#define NETBEUI 343 +#define LANE 344 +#define LLC 345 +#define METAC 346 +#define BCC 347 +#define SC 348 +#define ILMIC 349 +#define OAMF4EC 350 +#define OAMF4SC 351 +#define OAM 352 +#define OAMF4 353 +#define CONNECTMSG 354 +#define METACONNECT 355 +#define VPI 356 +#define VCI 357 +#define RADIO 358 +#define FISU 359 +#define LSSU 360 +#define MSU 361 +#define HFISU 362 +#define HLSSU 363 +#define HMSU 364 +#define SIO 365 +#define OPC 366 +#define DPC 367 +#define SLS 368 +#define HSIO 369 +#define HOPC 370 +#define HDPC 371 +#define HSLS 372 +#define OR 373 +#define AND 374 +#define UMINUS 375 #define YYERRCODE 256 typedef int YYINT; -static const YYINT pcaplhs[] = { -1, +static const YYINT pcap_lhs[] = { -1, 0, 0, 24, 1, 1, 1, 1, 1, 20, 21, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 23, 22, 4, 4, 4, 7, 7, 5, @@ -519,17 +535,18 @@ static const YYINT pcaplhs[] = { -1, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 26, 26, 26, 26, 26, 26, 27, 27, 27, - 27, 41, 41, 42, 42, 43, 44, 44, 40, 40, - 39, 18, 18, 18, 19, 19, 19, 13, 13, 14, + 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, + 26, 27, 27, 27, 27, 42, 42, 43, 43, 44, + 28, 28, 28, 45, 45, 41, 41, 40, 18, 18, + 18, 19, 19, 19, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 15, 15, 15, 15, 15, 17, 17, 28, - 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, - 29, 30, 30, 32, 32, 32, 32, 31, 33, 33, - 34, 34, 34, 35, 35, 35, 35, 37, 37, 37, - 37, 36, 38, 38, + 14, 15, 15, 15, 15, 15, 17, 17, 29, 29, + 29, 29, 29, 29, 29, 30, 30, 30, 30, 31, + 31, 33, 33, 33, 33, 32, 34, 34, 35, 35, + 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, + 36, 36, 38, 38, 38, 38, 37, 39, 39, }; -static const YYINT pcaplen[] = { 2, +static const YYINT pcap_len[] = { 2, 2, 1, 0, 1, 3, 3, 3, 3, 1, 1, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1, 1, 2, 1, 1, 1, 3, 3, 1, 1, 1, @@ -541,374 +558,426 @@ static const YYINT pcaplen[] = { 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 4, 1, 1, 2, 1, 2, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, - 6, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 4, 1, 1, 2, 1, 2, 1, 1, 2, 1, + 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, + 2, 4, 2, 2, 2, 1, 1, 1, 1, 1, + 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 4, 6, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 3, 1, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 3, 1, 1, 3, + 1, 1, 2, 2, 3, 1, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 3, 1, 1, 3, }; -static const YYINT pcapdefred[] = { 3, +static const YYINT pcap_defred[] = { 3, 0, 0, 0, 0, 0, 70, 71, 69, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 87, 86, 168, 112, 113, 0, 0, 0, - 0, 0, 0, 68, 162, 88, 89, 90, 91, 0, - 0, 118, 119, 92, 93, 102, 94, 95, 96, 97, - 98, 99, 101, 100, 103, 104, 105, 170, 171, 172, - 173, 176, 177, 174, 175, 178, 179, 180, 181, 182, - 183, 106, 191, 192, 193, 194, 195, 196, 197, 23, - 0, 24, 0, 4, 30, 0, 0, 0, 149, 0, - 148, 0, 0, 43, 120, 44, 45, 0, 47, 0, - 109, 110, 0, 122, 123, 124, 125, 139, 140, 126, - 141, 127, 114, 0, 116, 160, 0, 0, 10, 9, - 0, 0, 14, 20, 0, 0, 21, 38, 11, 12, - 0, 0, 0, 0, 63, 67, 64, 65, 66, 35, - 36, 107, 108, 0, 0, 0, 57, 58, 59, 60, - 61, 62, 0, 34, 37, 121, 143, 145, 147, 0, - 0, 0, 0, 0, 0, 0, 0, 142, 144, 146, - 0, 0, 0, 0, 0, 0, 31, 188, 0, 0, - 0, 184, 46, 202, 0, 0, 0, 198, 48, 164, - 163, 166, 167, 165, 0, 0, 0, 6, 5, 0, - 0, 0, 8, 7, 0, 0, 0, 25, 0, 0, - 0, 22, 0, 0, 0, 0, 132, 133, 0, 136, - 130, 137, 138, 131, 32, 0, 0, 0, 0, 0, - 0, 154, 155, 0, 0, 0, 39, 161, 169, 185, - 186, 189, 0, 199, 200, 203, 0, 111, 0, 16, - 15, 18, 13, 0, 0, 54, 56, 53, 55, 0, - 150, 0, 187, 0, 201, 0, 26, 27, 134, 135, - 128, 0, 190, 204, 151, + 84, 85, 87, 86, 177, 112, 113, 0, 0, 0, + 0, 0, 0, 68, 171, 88, 89, 90, 91, 0, + 0, 118, 0, 0, 92, 93, 102, 94, 95, 96, + 97, 98, 99, 101, 100, 103, 104, 105, 179, 0, + 180, 181, 184, 185, 182, 183, 186, 187, 188, 189, + 190, 191, 106, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 23, 0, 24, + 0, 4, 30, 0, 0, 0, 156, 0, 155, 0, + 0, 43, 123, 125, 44, 45, 0, 47, 0, 109, + 110, 0, 126, 127, 128, 129, 146, 147, 130, 148, + 131, 114, 0, 116, 119, 121, 143, 142, 0, 0, + 0, 10, 9, 0, 0, 14, 20, 0, 0, 21, + 38, 11, 12, 0, 0, 0, 0, 63, 67, 64, + 65, 66, 35, 36, 107, 108, 0, 0, 0, 57, + 58, 59, 60, 61, 62, 0, 34, 37, 124, 150, + 152, 154, 0, 0, 0, 0, 0, 0, 0, 0, + 149, 151, 153, 0, 0, 0, 0, 0, 0, 0, + 0, 31, 196, 0, 0, 0, 192, 46, 217, 0, + 0, 0, 213, 48, 173, 172, 175, 176, 174, 0, + 0, 0, 6, 5, 0, 0, 0, 8, 7, 0, + 0, 0, 25, 0, 0, 0, 22, 0, 0, 0, + 0, 136, 137, 0, 140, 134, 144, 145, 135, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 39, 170, 178, 193, 194, 197, 0, + 214, 215, 218, 0, 111, 0, 16, 15, 18, 13, + 0, 0, 54, 56, 53, 55, 0, 157, 0, 195, + 0, 216, 0, 26, 27, 138, 139, 132, 0, 198, + 219, 158, }; -static const YYINT pcapdgoto[] = { 1, - 174, 212, 129, 209, 84, 85, 210, 86, 87, 153, - 154, 155, 88, 89, 195, 117, 91, 171, 172, 121, - 122, 118, 132, 2, 94, 95, 156, 96, 97, 98, - 182, 183, 243, 99, 100, 188, 189, 247, 112, 110, - 219, 271, 221, 224, +static const YYINT pcap_dgoto[] = { 1, + 189, 227, 142, 224, 92, 93, 225, 94, 95, 166, + 167, 168, 96, 97, 210, 130, 99, 186, 187, 134, + 135, 131, 145, 2, 102, 103, 169, 104, 105, 106, + 107, 197, 198, 260, 108, 109, 203, 204, 264, 121, + 119, 234, 288, 236, 239, }; -static const YYINT pcapsindex[] = { 0, - 0, 296, -268, -231, -223, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -216, -204, -174, - -169, -284, -193, 0, 0, 0, 0, 0, 0, -40, - -40, 0, 0, 0, 0, 0, 0, 0, 0, 0, +static const YYINT pcap_sindex[] = { 0, + 0, 431, -281, -278, -273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -279, -259, -221, + -186, -286, -216, 0, 0, 0, 0, 0, 0, -24, + -24, 0, -24, -24, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 396, 0, -334, 0, 0, -19, 611, 647, 0, 34, - 0, 296, 296, 0, 0, 0, 0, 42, 0, 651, - 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -40, 0, 0, 34, 396, 0, 0, - 185, 185, 0, 0, -38, 88, 0, 0, 0, 0, - -19, -19, -236, -233, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -258, -172, -251, 0, 0, 0, 0, - 0, 0, -85, 0, 0, 0, 0, 0, 0, 396, - 396, 396, 396, 396, 396, 396, 396, 0, 0, 0, - 396, 396, 396, -39, 113, 126, 0, 0, -122, -121, - -118, 0, 0, 0, -99, -98, -91, 0, 0, 0, - 0, 0, 0, 0, -86, 126, 236, 0, 0, 0, - 185, 185, 0, 0, -140, -84, -81, 0, 165, -334, - 126, 0, -42, -36, -34, -31, 0, 0, -82, 0, - 0, 0, 0, 0, 0, 170, 170, -8, 108, -23, - -23, 0, 0, 236, 236, 156, 0, 0, 0, 0, - 0, 0, -37, 0, 0, 0, -35, 0, 126, 0, - 0, 0, 0, -19, -19, 0, 0, 0, 0, -221, - 0, -70, 0, -118, 0, -91, 0, 0, 0, 0, - 0, 134, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 653, 0, + -336, 0, 0, -21, 936, 855, 0, 16, 0, 431, + 431, 0, 0, 0, 0, 0, 237, 0, 782, 0, + 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -24, 0, 0, 0, 0, 0, -14, 16, + 653, 0, 0, 320, 320, 0, 0, -30, 64, 0, + 0, 0, 0, -21, -21, -245, -194, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -280, -191, -270, 0, + 0, 0, 0, 0, 0, -118, 0, 0, 0, 0, + 0, 0, 653, 653, 653, 653, 653, 653, 653, 653, + 0, 0, 0, 653, 653, 653, 653, 653, -37, 85, + 90, 0, 0, -153, -141, -135, 0, 0, 0, -128, + -125, -122, 0, 0, 0, 0, 0, 0, 0, -114, + 90, 159, 0, 0, 0, 320, 320, 0, 0, -142, + -110, -100, 0, 152, -336, 90, 0, -63, -58, -52, + -49, 0, 0, -76, 0, 0, 0, 0, 0, 0, + 443, 443, 184, 529, 336, 336, -14, -14, 159, 159, + 159, 159, 972, 0, 0, 0, 0, 0, 0, -41, + 0, 0, 0, -34, 0, 90, 0, 0, 0, 0, + -21, -21, 0, 0, 0, 0, -262, 0, -61, 0, + -135, 0, -122, 0, 0, 0, 0, 0, 135, 0, + 0, 0, }; -static const YYINT pcaprindex[] = { 0, - 0, 488, 0, 0, 0, 0, 0, 0, 0, 0, +static const YYINT pcap_rindex[] = { 0, + 0, 573, 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, 8, - 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, + 8, 0, 25, 28, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 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, 228, 0, 0, 0, 0, 0, 0, 1, - 0, 686, 686, 0, 0, 0, 0, 0, 0, 0, + 233, 0, 0, 0, 0, 0, 0, 1, 0, 992, + 992, 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, 3, 0, + 0, 0, 0, 992, 992, 0, 0, 67, 72, 0, + 0, 0, 0, 0, 0, 248, 591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 686, 686, 0, 0, 16, 18, 0, 0, 0, 0, - 0, 0, -28, 520, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 905, + 960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 725, 759, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 992, 992, 0, 0, 0, + 0, 0, 0, -185, 0, -159, 0, 0, 0, 0, + 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, + 30, 124, 158, 149, 99, 110, 40, 74, 183, 194, + 84, 89, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 686, 686, 0, 0, 0, 0, 0, 0, -222, 0, - -205, 0, 0, 0, 0, 0, 0, 0, 20, 0, - 0, 0, 0, 0, 0, 28, 53, 87, 78, 13, - 38, 0, 0, 26, 36, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 121, 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, }; -static const YYINT pcapgindex[] = { 0, - 227, -14, -116, 0, 2, 0, 0, 0, 0, 0, - 79, 0, 24, -75, 0, 116, 724, -73, 12, 29, - -163, 767, 722, 0, 0, 0, 0, 0, 0, 0, - -171, 0, 0, 0, 0, -165, 0, 0, 0, 0, - 0, 0, 0, 0, +static const YYINT pcap_gindex[] = { 0, + 234, 229, -113, 0, -99, 0, 0, 0, 0, 0, + 71, 0, 944, 47, 0, 112, 1012, -83, -3, 14, + -205, 1004, 811, 0, 0, 0, 0, 0, 0, 0, + 0, -187, 0, 0, 0, 0, -188, 0, 0, 0, + 0, 0, 0, 0, 0, }; -#define YYTABLESIZE 1078 -static const YYINT pcaptable[] = { 82, - 40, 237, 12, 263, 52, 265, 108, 115, 206, 242, - 117, 52, 152, 80, 208, 17, 175, 19, 166, 129, - 82, 246, 101, 167, 179, 41, 185, 158, 109, 163, - 119, 120, 217, 166, 164, 42, 165, 153, 167, 222, - 148, 40, 175, 12, 148, 148, 255, 148, 115, 148, - 152, 117, 159, 152, 218, 152, 17, 152, 19, 102, - 129, 223, 148, 148, 148, 158, 41, 103, 158, 269, - 152, 128, 152, 152, 152, 153, 42, 156, 153, 264, - 153, 82, 153, 266, 208, 158, 157, 158, 158, 158, - 159, 270, 273, 159, 177, 153, 104, 153, 153, 153, - 274, 170, 169, 168, 116, 152, 198, 203, 105, 180, - 159, 186, 159, 159, 159, 156, 106, 90, 156, 111, - 158, 107, 199, 204, 173, 175, 148, 157, 213, 214, - 153, 215, 216, 191, 207, 156, 152, 156, 156, 156, - 220, 197, 29, 29, 157, 159, 157, 157, 157, 166, - 164, 158, 165, 238, 167, 194, 193, 192, 148, 28, - 28, 153, 148, 148, 33, 148, 239, 148, 240, 241, - 156, 33, 178, 135, 250, 137, 159, 138, 139, 157, - 148, 148, 148, 226, 227, 228, 229, 230, 231, 232, - 233, 244, 245, 163, 234, 235, 236, 166, 164, 184, - 165, 156, 167, 177, 248, 253, 251, 90, 90, 252, - 157, 166, 164, 262, 165, 256, 167, 80, 260, 190, - 272, 257, 258, 205, 82, 259, 275, 1, 83, 81, - 52, 225, 52, 0, 52, 52, 90, 90, 254, 267, - 268, 0, 0, 0, 148, 0, 0, 0, 261, 0, - 25, 0, 0, 0, 0, 0, 0, 49, 49, 49, - 49, 49, 52, 49, 49, 0, 0, 49, 49, 0, - 0, 25, 0, 163, 0, 0, 0, 166, 164, 162, - 165, 0, 167, 0, 52, 52, 52, 52, 52, 49, - 49, 0, 0, 123, 124, 125, 126, 127, 0, 0, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 160, - 161, 0, 148, 148, 148, 0, 90, 90, 0, 0, - 148, 148, 152, 152, 152, 119, 120, 119, 80, 119, - 152, 152, 178, 0, 0, 82, 0, 158, 158, 158, - 81, 0, 0, 0, 0, 158, 158, 153, 153, 153, - 0, 157, 158, 159, 0, 153, 153, 0, 0, 162, - 0, 0, 159, 159, 159, 40, 40, 12, 12, 0, - 159, 159, 115, 115, 0, 117, 117, 152, 152, 0, - 17, 17, 19, 19, 129, 129, 0, 156, 156, 156, - 41, 41, 158, 158, 0, 0, 157, 157, 157, 0, - 42, 42, 153, 153, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 159, 159, 0, - 0, 0, 33, 0, 0, 160, 161, 0, 0, 0, - 148, 148, 148, 0, 0, 82, 0, 0, 148, 148, - 81, 0, 156, 156, 33, 33, 33, 33, 33, 3, - 4, 157, 157, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 160, 161, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 0, 28, 28, 2, 0, 0, - 0, 0, 0, 34, 0, 0, 0, 123, 124, 125, - 126, 127, 0, 0, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 0, - 0, 0, 51, 160, 161, 0, 0, 0, 0, 51, - 3, 4, 0, 0, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 0, 0, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 0, 0, 0, 0, 0, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 163, 0, 25, 0, 166, 164, - 82, 165, 0, 167, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34, 0, 170, 169, 168, 0, - 170, 169, 168, 0, 0, 35, 36, 37, 38, 39, - 0, 0, 0, 93, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 0, 0, - 0, 0, 0, 0, 50, 50, 50, 50, 50, 0, - 50, 50, 72, 0, 50, 50, 0, 0, 0, 0, - 0, 0, 149, 113, 115, 0, 149, 149, 92, 149, - 162, 149, 0, 0, 0, 0, 50, 50, 51, 0, - 51, 0, 51, 51, 149, 149, 149, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 148, 0, 0, 0, - 148, 148, 0, 148, 0, 148, 114, 114, 0, 130, - 51, 0, 0, 93, 93, 176, 0, 0, 148, 148, - 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 51, 51, 51, 51, 196, 0, 0, - 0, 176, 202, 202, 200, 200, 0, 0, 149, 0, - 0, 0, 131, 0, 211, 130, 0, 0, 92, 92, - 0, 0, 0, 0, 181, 0, 187, 133, 134, 135, - 136, 137, 0, 138, 139, 0, 0, 140, 141, 0, - 114, 0, 148, 0, 0, 0, 0, 201, 201, 0, - 0, 0, 0, 0, 0, 0, 0, 114, 131, 142, - 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 0, - 0, 0, 202, 202, 249, 200, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 184, 50, 50, 50, 50, 50, 0, 50, 50, - 0, 0, 50, 50, 0, 0, 157, 158, 159, 0, - 157, 158, 159, 0, 160, 161, 0, 92, 201, 0, - 0, 0, 0, 0, 50, 50, 0, 130, 130, 0, - 0, 0, 0, 0, 0, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +#define YYTABLESIZE 1300 +static const YYINT pcap_table[] = { 280, + 40, 192, 169, 254, 117, 115, 282, 117, 259, 110, + 232, 88, 111, 263, 12, 90, 221, 112, 90, 272, + 237, 127, 184, 194, 120, 200, 118, 122, 286, 167, + 223, 141, 233, 113, 214, 219, 132, 133, 128, 161, + 169, 40, 238, 169, 169, 169, 115, 169, 117, 169, + 287, 155, 155, 114, 281, 12, 155, 155, 283, 155, + 169, 155, 169, 169, 169, 120, 17, 167, 122, 115, + 167, 19, 141, 162, 155, 155, 155, 161, 133, 185, + 161, 161, 161, 41, 161, 33, 161, 167, 42, 167, + 167, 167, 33, 290, 291, 169, 120, 161, 159, 161, + 161, 161, 223, 195, 116, 201, 188, 17, 155, 160, + 222, 162, 19, 98, 162, 162, 162, 192, 162, 133, + 162, 235, 167, 168, 41, 255, 169, 228, 229, 42, + 256, 162, 161, 162, 162, 162, 159, 257, 155, 159, + 148, 159, 150, 159, 151, 152, 190, 160, 164, 258, + 160, 206, 160, 167, 160, 193, 159, 165, 159, 159, + 159, 168, 261, 161, 168, 262, 162, 160, 199, 160, + 160, 160, 267, 209, 208, 207, 265, 190, 230, 231, + 268, 168, 163, 168, 168, 168, 164, 29, 29, 164, + 269, 159, 270, 166, 273, 184, 176, 162, 165, 274, + 179, 177, 160, 178, 275, 180, 164, 276, 164, 164, + 164, 98, 98, 28, 28, 165, 168, 165, 165, 165, + 184, 176, 159, 163, 277, 179, 177, 292, 178, 289, + 180, 220, 1, 160, 166, 91, 240, 205, 271, 0, + 163, 164, 163, 163, 163, 98, 98, 168, 0, 0, + 165, 166, 185, 166, 166, 166, 0, 49, 49, 49, + 49, 49, 190, 49, 49, 0, 25, 49, 49, 25, + 0, 0, 164, 0, 0, 163, 90, 185, 0, 0, + 52, 165, 175, 0, 0, 0, 166, 52, 0, 49, + 49, 136, 137, 138, 139, 140, 183, 182, 181, 0, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 0, + 0, 0, 169, 169, 169, 0, 0, 0, 0, 0, + 169, 169, 141, 0, 155, 155, 155, 98, 98, 0, + 0, 132, 155, 155, 0, 132, 133, 0, 132, 167, + 167, 167, 0, 33, 0, 0, 0, 167, 167, 161, + 161, 161, 88, 0, 0, 0, 0, 161, 161, 90, + 0, 0, 213, 218, 89, 33, 33, 33, 33, 33, + 0, 0, 184, 40, 40, 169, 169, 179, 115, 115, + 117, 117, 180, 162, 162, 162, 0, 12, 12, 0, + 0, 162, 162, 0, 0, 0, 0, 120, 120, 0, + 122, 122, 167, 167, 141, 141, 0, 0, 159, 159, + 159, 0, 161, 161, 0, 0, 159, 159, 0, 160, + 160, 160, 0, 0, 0, 0, 0, 160, 160, 185, + 0, 0, 0, 168, 168, 168, 0, 0, 0, 17, + 17, 168, 168, 0, 19, 19, 162, 162, 0, 0, + 0, 133, 133, 0, 0, 0, 41, 41, 164, 164, + 164, 42, 42, 88, 0, 0, 0, 165, 165, 165, + 90, 159, 159, 0, 0, 89, 173, 174, 0, 184, + 0, 0, 160, 160, 179, 177, 0, 178, 0, 180, + 0, 0, 163, 163, 163, 0, 168, 168, 0, 284, + 285, 173, 174, 166, 166, 166, 52, 0, 52, 0, + 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 164, 164, 0, 0, 0, 0, 193, 0, 0, + 165, 165, 0, 0, 0, 0, 185, 0, 52, 0, + 0, 0, 0, 0, 0, 0, 170, 171, 172, 0, + 0, 0, 0, 0, 0, 163, 163, 0, 0, 0, + 52, 52, 52, 52, 52, 184, 166, 166, 0, 0, + 179, 177, 2, 178, 0, 180, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 4, 0, 0, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, + 0, 0, 185, 51, 0, 0, 0, 0, 34, 0, + 51, 0, 136, 137, 138, 139, 140, 0, 0, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 90, 0, 0, 3, 4, 89, 0, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, + 0, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 149, 149, 149, 0, 0, 0, - 0, 0, 149, 149, 0, 0, 0, 0, 0, 0, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 155, 155, 0, 0, 0, 155, 155, + 0, 155, 101, 155, 0, 0, 0, 0, 0, 0, + 0, 90, 0, 0, 0, 0, 155, 155, 155, 50, + 50, 50, 50, 50, 0, 50, 50, 0, 0, 50, + 50, 183, 182, 181, 0, 0, 173, 174, 0, 51, + 0, 51, 0, 51, 51, 0, 0, 0, 0, 0, + 155, 50, 50, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 155, 184, 176, 0, 0, 0, 179, 177, 0, 178, + 0, 180, 0, 51, 51, 51, 51, 51, 0, 0, + 101, 101, 0, 0, 183, 182, 181, 0, 0, 0, + 0, 0, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 156, 156, 25, 217, 217, 156, 156, 185, 156, + 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 34, 0, 0, 156, 156, 156, 0, 0, 0, + 0, 0, 35, 36, 37, 38, 39, 0, 175, 0, + 0, 0, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 155, 155, 156, 0, + 0, 155, 155, 0, 155, 100, 155, 0, 184, 176, + 73, 0, 0, 179, 177, 0, 178, 0, 180, 155, + 155, 155, 0, 0, 0, 0, 217, 217, 156, 279, + 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 123, 123, 0, 123, 123, 0, 0, + 0, 122, 124, 155, 125, 126, 0, 0, 0, 0, + 0, 0, 0, 0, 278, 185, 0, 0, 0, 0, + 0, 0, 199, 0, 212, 0, 155, 155, 155, 0, + 0, 0, 0, 155, 155, 155, 0, 0, 0, 0, + 0, 170, 171, 172, 0, 175, 0, 144, 0, 0, + 0, 0, 0, 100, 100, 143, 0, 0, 0, 0, + 196, 191, 202, 0, 0, 0, 241, 242, 243, 244, + 245, 246, 247, 248, 0, 0, 123, 249, 250, 251, + 252, 253, 0, 0, 211, 0, 0, 216, 216, 28, + 28, 0, 191, 0, 0, 215, 215, 123, 144, 0, + 0, 0, 0, 0, 0, 226, 143, 0, 0, 0, + 0, 0, 0, 0, 170, 171, 172, 0, 0, 0, + 0, 0, 173, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 148, 148, - 148, 0, 0, 0, 0, 0, 148, 148, + 0, 0, 146, 147, 148, 149, 150, 0, 151, 152, + 0, 0, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 156, 156, 156, 0, 0, 100, + 216, 0, 156, 156, 155, 156, 0, 266, 215, 0, + 0, 0, 0, 0, 0, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 0, 0, 0, 0, 50, 50, + 50, 50, 50, 0, 50, 50, 0, 0, 50, 50, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, + 155, 155, 0, 0, 144, 144, 0, 155, 155, 0, + 50, 50, 143, 143, 0, 0, 0, 0, 0, 173, + 174, 50, 50, 50, 50, 50, 50, 50, 50, 50, }; -static const YYINT pcapcheck[] = { 40, - 0, 41, 0, 41, 33, 41, 291, 0, 47, 181, - 0, 40, 0, 33, 131, 0, 92, 0, 42, 0, - 40, 187, 291, 47, 98, 0, 100, 0, 313, 38, - 365, 366, 291, 42, 43, 0, 45, 0, 47, 291, - 38, 41, 118, 41, 42, 43, 210, 45, 41, 47, - 38, 41, 0, 41, 313, 43, 41, 45, 41, 291, - 41, 313, 60, 61, 62, 38, 41, 291, 41, 291, - 58, 86, 60, 61, 62, 38, 41, 0, 41, 243, - 43, 40, 45, 247, 201, 58, 0, 60, 61, 62, - 38, 313, 264, 41, 93, 58, 313, 60, 61, 62, - 266, 60, 61, 62, 81, 93, 121, 122, 313, 98, - 58, 100, 60, 61, 62, 38, 291, 2, 41, 313, - 93, 291, 121, 122, 91, 201, 124, 41, 365, 366, - 93, 365, 366, 38, 47, 58, 124, 60, 61, 62, - 313, 118, 365, 366, 58, 93, 60, 61, 62, 42, - 43, 124, 45, 41, 47, 60, 61, 62, 38, 365, - 366, 124, 42, 43, 33, 45, 41, 47, 291, 291, - 93, 40, 291, 259, 315, 261, 124, 263, 264, 93, - 60, 61, 62, 160, 161, 162, 163, 164, 165, 166, - 167, 291, 291, 38, 171, 172, 173, 42, 43, 291, - 45, 124, 47, 202, 291, 41, 291, 92, 93, 291, - 124, 42, 43, 58, 45, 258, 47, 33, 301, 124, - 291, 258, 257, 262, 40, 257, 93, 0, 2, 45, - 259, 153, 261, -1, 263, 264, 121, 122, 210, 254, - 255, -1, -1, -1, 124, -1, -1, -1, 93, -1, - 291, -1, -1, -1, -1, -1, -1, 257, 258, 259, - 260, 261, 291, 263, 264, -1, -1, 267, 268, -1, - -1, 291, -1, 38, -1, -1, -1, 42, 43, 124, - 45, -1, 47, -1, 313, 314, 315, 316, 317, 289, - 290, -1, -1, 313, 314, 315, 316, 317, -1, -1, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 318, - 319, -1, 310, 311, 312, -1, 201, 202, -1, -1, - 318, 319, 310, 311, 312, 365, 366, 365, 33, 365, - 318, 319, 291, -1, -1, 40, -1, 310, 311, 312, - 45, -1, -1, -1, -1, 318, 319, 310, 311, 312, - -1, 310, 311, 312, -1, 318, 319, -1, -1, 124, - -1, -1, 310, 311, 312, 365, 366, 365, 366, -1, - 318, 319, 365, 366, -1, 365, 366, 365, 366, -1, - 365, 366, 365, 366, 365, 366, -1, 310, 311, 312, - 365, 366, 365, 366, -1, -1, 310, 311, 312, -1, - 365, 366, 365, 366, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 365, 366, -1, - -1, -1, 291, -1, -1, 318, 319, -1, -1, -1, - 310, 311, 312, -1, -1, 40, -1, -1, 318, 319, - 45, -1, 365, 366, 313, 314, 315, 316, 317, 265, - 266, 365, 366, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 318, 319, 291, 292, 293, 294, 295, - 296, 297, 298, 299, -1, 365, 366, 0, -1, -1, - -1, -1, -1, 309, -1, -1, -1, 313, 314, 315, - 316, 317, -1, -1, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 364, -1, - -1, -1, 33, 318, 319, -1, -1, -1, -1, 40, - 265, 266, -1, -1, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, -1, -1, 291, 292, 293, 294, - 295, 296, 297, 298, 299, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 309, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - -1, -1, -1, -1, -1, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 38, -1, 291, -1, 42, 43, - 40, 45, -1, 47, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 309, -1, 60, 61, 62, -1, - 60, 61, 62, -1, -1, 320, 321, 322, 323, 324, - -1, -1, -1, 2, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, -1, -1, - -1, -1, -1, -1, 257, 258, 259, 260, 261, -1, - 263, 264, 357, -1, 267, 268, -1, -1, -1, -1, - -1, -1, 38, 40, 41, -1, 42, 43, 2, 45, - 124, 47, -1, -1, -1, -1, 289, 290, 259, -1, - 261, -1, 263, 264, 60, 61, 62, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 38, -1, -1, -1, - 42, 43, -1, 45, -1, 47, 40, 41, -1, 86, - 291, -1, -1, 92, 93, 92, -1, -1, 60, 61, - 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 313, 314, 315, 316, 317, 114, -1, -1, - -1, 118, 121, 122, 121, 122, -1, -1, 124, -1, - -1, -1, 86, -1, 131, 132, -1, -1, 92, 93, - -1, -1, -1, -1, 98, -1, 100, 257, 258, 259, - 260, 261, -1, 263, 264, -1, -1, 267, 268, -1, - 114, -1, 124, -1, -1, -1, -1, 121, 122, -1, - -1, -1, -1, -1, -1, -1, -1, 131, 132, 289, - 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, +static const YYINT pcap_check[] = { 41, + 0, 101, 0, 41, 291, 0, 41, 0, 196, 291, + 291, 33, 291, 202, 0, 40, 47, 291, 40, 225, + 291, 296, 37, 107, 0, 109, 313, 0, 291, 0, + 144, 0, 313, 313, 134, 135, 373, 374, 313, 0, + 38, 41, 313, 41, 42, 43, 41, 45, 41, 47, + 313, 37, 38, 313, 260, 41, 42, 43, 264, 45, + 58, 47, 60, 61, 62, 41, 0, 38, 41, 291, + 41, 0, 41, 0, 60, 61, 62, 38, 0, 94, + 41, 42, 43, 0, 45, 33, 47, 58, 0, 60, + 61, 62, 40, 281, 283, 93, 313, 58, 0, 60, + 61, 62, 216, 107, 291, 109, 91, 41, 94, 0, + 47, 38, 41, 2, 41, 42, 43, 217, 45, 41, + 47, 313, 93, 0, 41, 41, 124, 373, 374, 41, + 41, 58, 93, 60, 61, 62, 38, 291, 124, 41, + 259, 43, 261, 45, 263, 264, 100, 38, 0, 291, + 41, 38, 43, 124, 45, 291, 58, 0, 60, 61, + 62, 38, 291, 124, 41, 291, 93, 58, 291, 60, + 61, 62, 315, 60, 61, 62, 291, 131, 373, 374, + 291, 58, 0, 60, 61, 62, 38, 373, 374, 41, + 291, 93, 41, 0, 258, 37, 38, 124, 41, 258, + 42, 43, 93, 45, 257, 47, 58, 257, 60, 61, + 62, 100, 101, 373, 374, 58, 93, 60, 61, 62, + 37, 38, 124, 41, 301, 42, 43, 93, 45, 291, + 47, 262, 0, 124, 41, 2, 166, 124, 225, -1, + 58, 93, 60, 61, 62, 134, 135, 124, -1, -1, + 93, 58, 94, 60, 61, 62, -1, 257, 258, 259, + 260, 261, 216, 263, 264, -1, 291, 267, 268, 291, + -1, -1, 124, -1, -1, 93, 40, 94, -1, -1, + 33, 124, 124, -1, -1, -1, 93, 40, -1, 289, + 290, 313, 314, 315, 316, 317, 60, 61, 62, -1, 300, 301, 302, 303, 304, 305, 306, 307, 308, -1, - -1, -1, 201, 202, 201, 202, -1, -1, -1, -1, + -1, -1, 310, 311, 312, -1, -1, -1, -1, -1, + 318, 319, 94, -1, 310, 311, 312, 216, 217, -1, + -1, 373, 318, 319, -1, 373, 374, -1, 373, 310, + 311, 312, -1, 291, -1, -1, -1, 318, 319, 310, + 311, 312, 33, -1, -1, -1, -1, 318, 319, 40, + -1, -1, 134, 135, 45, 313, 314, 315, 316, 317, + -1, -1, 37, 373, 374, 373, 374, 42, 373, 374, + 373, 374, 47, 310, 311, 312, -1, 373, 374, -1, + -1, 318, 319, -1, -1, -1, -1, 373, 374, -1, + 373, 374, 373, 374, 373, 374, -1, -1, 310, 311, + 312, -1, 373, 374, -1, -1, 318, 319, -1, 310, + 311, 312, -1, -1, -1, -1, -1, 318, 319, 94, + -1, -1, -1, 310, 311, 312, -1, -1, -1, 373, + 374, 318, 319, -1, 373, 374, 373, 374, -1, -1, + -1, 373, 374, -1, -1, -1, 373, 374, 310, 311, + 312, 373, 374, 33, -1, -1, -1, 310, 311, 312, + 40, 373, 374, -1, -1, 45, 318, 319, -1, 37, + -1, -1, 373, 374, 42, 43, -1, 45, -1, 47, + -1, -1, 310, 311, 312, -1, 373, 374, -1, 271, + 272, 318, 319, 310, 311, 312, 259, -1, 261, -1, + 263, 264, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 373, 374, -1, -1, -1, -1, 291, -1, -1, + 373, 374, -1, -1, -1, -1, 94, -1, 291, -1, + -1, -1, -1, -1, -1, -1, 310, 311, 312, -1, + -1, -1, -1, -1, -1, 373, 374, -1, -1, -1, + 313, 314, 315, 316, 317, 37, 373, 374, -1, -1, + 42, 43, 0, 45, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, 265, 266, -1, -1, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, -1, -1, + 291, 292, 293, 294, 295, 296, 297, 298, 299, -1, + -1, -1, 94, 33, -1, -1, -1, -1, 309, -1, + 40, -1, 313, 314, 315, 316, 317, -1, -1, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 40, -1, -1, 265, 266, 45, -1, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, -1, + -1, 291, 292, 293, 294, 295, 296, 297, 298, 299, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 291, 257, 258, 259, 260, 261, -1, 263, 264, - -1, -1, 267, 268, -1, -1, 310, 311, 312, -1, - 310, 311, 312, -1, 318, 319, -1, 201, 202, -1, - -1, -1, -1, -1, 289, 290, -1, 254, 255, -1, - -1, -1, -1, -1, -1, 300, 301, 302, 303, 304, - 305, 306, 307, 308, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 254, 255, -1, -1, -1, -1, -1, -1, -1, -1, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 37, 38, -1, -1, -1, 42, 43, + -1, 45, 2, 47, -1, -1, -1, -1, -1, -1, + -1, 40, -1, -1, -1, -1, 60, 61, 62, 257, + 258, 259, 260, 261, -1, 263, 264, -1, -1, 267, + 268, 60, 61, 62, -1, -1, 318, 319, -1, 259, + -1, 261, -1, 263, 264, -1, -1, -1, -1, -1, + 94, 289, 290, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 291, -1, -1, -1, -1, -1, -1, -1, -1, + 124, 37, 38, -1, -1, -1, 42, 43, -1, 45, + -1, 47, -1, 313, 314, 315, 316, 317, -1, -1, + 100, 101, -1, -1, 60, 61, 62, -1, -1, -1, + -1, -1, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 37, 38, 291, 134, 135, 42, 43, 94, 45, + -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 309, -1, -1, 60, 61, 62, -1, -1, -1, + -1, -1, 320, 321, 322, 323, 324, -1, 124, -1, + -1, -1, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 37, 38, 94, -1, + -1, 42, 43, -1, 45, 2, 47, -1, 37, 38, + 358, -1, -1, 42, 43, -1, 45, -1, 47, 60, + 61, 62, -1, -1, -1, -1, 216, 217, 124, 58, + -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 40, 41, -1, 43, 44, -1, -1, + -1, 40, 41, 94, 43, 44, -1, -1, -1, -1, + -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, + -1, -1, 291, -1, 131, -1, 310, 311, 312, -1, + -1, -1, -1, 124, 318, 319, -1, -1, -1, -1, + -1, 310, 311, 312, -1, 124, -1, 94, -1, -1, + -1, -1, -1, 100, 101, 94, -1, -1, -1, -1, + 107, 100, 109, -1, -1, -1, 173, 174, 175, 176, + 177, 178, 179, 180, -1, -1, 123, 184, 185, 186, + 187, 188, -1, -1, 123, -1, -1, 134, 135, 373, + 374, -1, 131, -1, -1, 134, 135, 144, 145, -1, + -1, -1, -1, -1, -1, 144, 145, -1, -1, -1, -1, -1, -1, -1, 310, 311, 312, -1, -1, -1, -1, -1, 318, 319, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 310, 311, - 312, -1, -1, -1, -1, -1, 318, 319, + -1, -1, 257, 258, 259, 260, 261, -1, 263, 264, + -1, -1, 267, 268, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 310, 311, 312, -1, -1, 216, + 217, -1, 318, 319, 289, 290, -1, 216, 217, -1, + -1, -1, -1, -1, -1, 300, 301, 302, 303, 304, + 305, 306, 307, 308, -1, -1, -1, -1, 257, 258, + 259, 260, 261, -1, 263, 264, -1, -1, 267, 268, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 310, + 311, 312, -1, -1, 271, 272, -1, 318, 319, -1, + 289, 290, 271, 272, -1, -1, -1, -1, -1, 318, + 319, 300, 301, 302, 303, 304, 305, 306, 307, 308, }; #define YYFINAL 1 #ifndef YYDEBUG #define YYDEBUG 0 #endif -#define YYMAXTOKEN 367 -#define YYUNDFTOKEN 414 +#define YYMAXTOKEN 375 +#define YYUNDFTOKEN 423 #define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a)) #if YYDEBUG -static const char *const pcapname[] = { +static const char *const pcap_name[] = { "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, -"'!'",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,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,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,"'/'",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,"']'","'^'",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,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,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,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,"DST","SRC","HOST","GATEWAY","NET","NETMASK", -"PORT","PORTRANGE","LESS","GREATER","PROTO","PROTOCHAIN","CBYTE","ARP","RARP", -"IP","SCTP","TCP","UDP","ICMP","IGMP","IGRP","PIM","VRRP","CARP","ATALK","AARP", -"DECNET","LAT","SCA","MOPRC","MOPDL","TK_BROADCAST","TK_MULTICAST","NUM", -"INBOUND","OUTBOUND","PF_IFNAME","PF_RSET","PF_RNR","PF_SRNR","PF_REASON", -"PF_ACTION","TYPE","SUBTYPE","DIR","ADDR1","ADDR2","ADDR3","ADDR4","RA","TA", -"LINK","GEQ","LEQ","NEQ","ID","EID","HID","HID6","AID","LSH","RSH","LEN","IPV6", -"ICMPV6","AH","ESP","VLAN","MPLS","PPPOED","PPPOES","ISO","ESIS","CLNP","ISIS", -"L1","L2","IIH","LSP","SNP","CSNP","PSNP","STP","IPX","NETBEUI","LANE","LLC", -"METAC","BCC","SC","ILMIC","OAMF4EC","OAMF4SC","OAM","OAMF4","CONNECTMSG", -"METACONNECT","VPI","VCI","RADIO","FISU","LSSU","MSU","SIO","OPC","DPC","SLS", -"OR","AND","UMINUS",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,0,0,0,0,0,0,"illegal-symbol", +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"DST","SRC","HOST","GATEWAY","NET", +"NETMASK","PORT","PORTRANGE","LESS","GREATER","PROTO","PROTOCHAIN","CBYTE", +"ARP","RARP","IP","SCTP","TCP","UDP","ICMP","IGMP","IGRP","PIM","VRRP","CARP", +"ATALK","AARP","DECNET","LAT","SCA","MOPRC","MOPDL","TK_BROADCAST", +"TK_MULTICAST","NUM","INBOUND","OUTBOUND","PF_IFNAME","PF_RSET","PF_RNR", +"PF_SRNR","PF_REASON","PF_ACTION","TYPE","SUBTYPE","DIR","ADDR1","ADDR2", +"ADDR3","ADDR4","RA","TA","LINK","GEQ","LEQ","NEQ","ID","EID","HID","HID6", +"AID","LSH","RSH","LEN","IPV6","ICMPV6","AH","ESP","VLAN","MPLS","PPPOED", +"PPPOES","GENEVE","ISO","ESIS","CLNP","ISIS","L1","L2","IIH","LSP","SNP","CSNP", +"PSNP","STP","IPX","NETBEUI","LANE","LLC","METAC","BCC","SC","ILMIC","OAMF4EC", +"OAMF4SC","OAM","OAMF4","CONNECTMSG","METACONNECT","VPI","VCI","RADIO","FISU", +"LSSU","MSU","HFISU","HLSSU","HMSU","SIO","OPC","DPC","SLS","HSIO","HOPC", +"HDPC","HSLS","OR","AND","UMINUS",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,0,0,0,0,0,0,0,"illegal-symbol", }; -static const char *const pcaprule[] = { +static const char *const pcap_rule[] = { "$accept : prog", "prog : null expr", "prog : null", @@ -1028,9 +1097,13 @@ static const char *const pcaprule[] = { "other : MPLS pnum", "other : MPLS", "other : PPPOED", +"other : PPPOES pnum", "other : PPPOES", +"other : GENEVE pnum", +"other : GENEVE", "other : pfvar", "other : pqual p80211", +"other : pllc", "pfvar : PF_IFNAME ID", "pfvar : PF_RSET ID", "pfvar : PF_RNR NUM", @@ -1046,6 +1119,9 @@ static const char *const pcaprule[] = { "subtype : NUM", "subtype : ID", "type_subtype : ID", +"pllc : LLC", +"pllc : LLC ID", +"pllc : LLC PF_RNR", "dir : NUM", "dir : ID", "reason : NUM", @@ -1065,8 +1141,10 @@ static const char *const pcaprule[] = { "narth : arth '-' arth", "narth : arth '*' arth", "narth : arth '/' arth", +"narth : arth '%' arth", "narth : arth '&' arth", "narth : arth '|' arth", +"narth : arth '^' arth", "narth : arth LSH arth", "narth : arth RSH arth", "narth : '-' arth", @@ -1080,7 +1158,6 @@ static const char *const pcaprule[] = { "pnum : NUM", "pnum : paren pnum ')'", "atmtype : LANE", -"atmtype : LLC", "atmtype : METAC", "atmtype : BCC", "atmtype : OAMF4EC", @@ -1103,10 +1180,17 @@ static const char *const pcaprule[] = { "mtp2type : FISU", "mtp2type : LSSU", "mtp2type : MSU", +"mtp2type : HFISU", +"mtp2type : HLSSU", +"mtp2type : HMSU", "mtp3field : SIO", "mtp3field : OPC", "mtp3field : DPC", "mtp3field : SLS", +"mtp3field : HSIO", +"mtp3field : HOPC", +"mtp3field : HDPC", +"mtp3field : HSLS", "mtp3value : mtp3fieldvalue", "mtp3value : relop NUM", "mtp3value : irelop NUM", @@ -1121,11 +1205,6 @@ static const char *const pcaprule[] = { int yydebug; int yynerrs; -int yyerrflag; -int yychar; -YYSTYPE yyval; -YYSTYPE yylval; - /* define the initial stack-sizes */ #ifdef YYSTACKSIZE #undef YYMAXDEPTH @@ -1149,11 +1228,9 @@ typedef struct { YYSTYPE *l_base; YYSTYPE *l_mark; } YYSTACKDATA; -/* variables for the parser stack */ -static YYSTACKDATA yystack; #if YYDEBUG -#include <stdio.h> /* needed for printf */ +#include <stdio.h> /* needed for printf */ #endif #include <stdlib.h> /* needed for malloc, etc */ @@ -1213,6 +1290,13 @@ static void yyfreestack(YYSTACKDATA *data) int YYPARSE_DECL() { + int yyerrflag; + int yychar; + YYSTYPE yyval; + YYSTYPE yylval; + + /* variables for the parser stack */ + YYSTACKDATA yystack; int yym, yyn, yystate; #if YYDEBUG const char *yys; @@ -1225,6 +1309,8 @@ YYPARSE_DECL() } #endif + yym = 0; + yyn = 0; yynerrs = 0; yyerrflag = 0; yychar = YYEMPTY; @@ -1244,28 +1330,26 @@ yyloop: if ((yyn = yydefred[yystate]) != 0) goto yyreduce; if (yychar < 0) { - if ((yychar = YYLEX) < 0) yychar = YYEOF; + yychar = YYLEX; + if (yychar < 0) yychar = YYEOF; #if YYDEBUG if (yydebug) { - yys = yyname[YYTRANSLATE(yychar)]; + if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN]; printf("%sdebug: state %d, reading %d (%s)\n", YYPREFIX, yystate, yychar, yys); } #endif } - if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) + if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar) { #if YYDEBUG if (yydebug) printf("%sdebug: state %d, shifting to state %d\n", YYPREFIX, yystate, yytable[yyn]); #endif - if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) - { - goto yyoverflow; - } + if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow; yystate = yytable[yyn]; *++yystack.s_mark = yytable[yyn]; *++yystack.l_mark = yylval; @@ -1273,18 +1357,17 @@ yyloop: if (yyerrflag > 0) --yyerrflag; goto yyloop; } - if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) + if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar) { yyn = yytable[yyn]; goto yyreduce; } - if (yyerrflag) goto yyinrecovery; + if (yyerrflag != 0) goto yyinrecovery; YYERROR_CALL("syntax error"); - goto yyerrlab; - + goto yyerrlab; /* redundant goto avoids 'unused label' warning */ yyerrlab: ++yynerrs; @@ -1294,18 +1377,15 @@ yyinrecovery: yyerrflag = 3; for (;;) { - if ((yyn = yysindex[*yystack.s_mark]) && (yyn += YYERRCODE) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) + if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE) { #if YYDEBUG if (yydebug) printf("%sdebug: state %d, error recovery shifting\ to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]); #endif - if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) - { - goto yyoverflow; - } + if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow; yystate = yytable[yyn]; *++yystack.s_mark = yytable[yyn]; *++yystack.l_mark = yylval; @@ -1330,7 +1410,7 @@ yyinrecovery: #if YYDEBUG if (yydebug) { - yys = yyname[YYTRANSLATE(yychar)]; + if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN]; printf("%sdebug: state %d, error recovery discards token %d (%s)\n", YYPREFIX, yystate, yychar, yys); } @@ -1346,113 +1426,114 @@ yyreduce: YYPREFIX, yystate, yyn, yyrule[yyn]); #endif yym = yylen[yyn]; - if (yym) + if (yym > 0) yyval = yystack.l_mark[1-yym]; else memset(&yyval, 0, sizeof yyval); + switch (yyn) { case 1: -#line 317 "../../freebsd/contrib/libpcap/grammar.y" +#line 347 "grammar.y" { - finish_parse(yystack.l_mark[0].blk.b); + finish_parse(cstate, yystack.l_mark[0].blk.b); } break; case 3: -#line 322 "../../freebsd/contrib/libpcap/grammar.y" +#line 352 "grammar.y" { yyval.blk.q = qerr; } break; case 5: -#line 325 "../../freebsd/contrib/libpcap/grammar.y" +#line 355 "grammar.y" { gen_and(yystack.l_mark[-2].blk.b, yystack.l_mark[0].blk.b); yyval.blk = yystack.l_mark[0].blk; } break; case 6: -#line 326 "../../freebsd/contrib/libpcap/grammar.y" +#line 356 "grammar.y" { gen_and(yystack.l_mark[-2].blk.b, yystack.l_mark[0].blk.b); yyval.blk = yystack.l_mark[0].blk; } break; case 7: -#line 327 "../../freebsd/contrib/libpcap/grammar.y" +#line 357 "grammar.y" { gen_or(yystack.l_mark[-2].blk.b, yystack.l_mark[0].blk.b); yyval.blk = yystack.l_mark[0].blk; } break; case 8: -#line 328 "../../freebsd/contrib/libpcap/grammar.y" +#line 358 "grammar.y" { gen_or(yystack.l_mark[-2].blk.b, yystack.l_mark[0].blk.b); yyval.blk = yystack.l_mark[0].blk; } break; case 9: -#line 330 "../../freebsd/contrib/libpcap/grammar.y" +#line 360 "grammar.y" { yyval.blk = yystack.l_mark[-1].blk; } break; case 10: -#line 332 "../../freebsd/contrib/libpcap/grammar.y" +#line 362 "grammar.y" { yyval.blk = yystack.l_mark[-1].blk; } break; case 12: -#line 335 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = gen_ncode(NULL, (bpf_u_int32)yystack.l_mark[0].i, +#line 365 "grammar.y" + { yyval.blk.b = gen_ncode(cstate, NULL, (bpf_u_int32)yystack.l_mark[0].i, yyval.blk.q = yystack.l_mark[-1].blk.q); } break; case 13: -#line 337 "../../freebsd/contrib/libpcap/grammar.y" +#line 367 "grammar.y" { yyval.blk = yystack.l_mark[-1].blk; } break; case 14: -#line 339 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = gen_scode(yystack.l_mark[0].s, yyval.blk.q = yystack.l_mark[-1].blk.q); } +#line 369 "grammar.y" + { yyval.blk.b = gen_scode(cstate, yystack.l_mark[0].s, yyval.blk.q = yystack.l_mark[-1].blk.q); } break; case 15: -#line 340 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = gen_mcode(yystack.l_mark[-2].s, NULL, yystack.l_mark[0].i, +#line 370 "grammar.y" + { yyval.blk.b = gen_mcode(cstate, yystack.l_mark[-2].s, NULL, yystack.l_mark[0].i, yyval.blk.q = yystack.l_mark[-3].blk.q); } break; case 16: -#line 342 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = gen_mcode(yystack.l_mark[-2].s, yystack.l_mark[0].s, 0, +#line 372 "grammar.y" + { yyval.blk.b = gen_mcode(cstate, yystack.l_mark[-2].s, yystack.l_mark[0].s, 0, yyval.blk.q = yystack.l_mark[-3].blk.q); } break; case 17: -#line 344 "../../freebsd/contrib/libpcap/grammar.y" +#line 374 "grammar.y" { /* Decide how to parse HID based on proto */ yyval.blk.q = yystack.l_mark[-1].blk.q; if (yyval.blk.q.addr == Q_PORT) - bpf_error("'port' modifier applied to ip host"); + bpf_error(cstate, "'port' modifier applied to ip host"); else if (yyval.blk.q.addr == Q_PORTRANGE) - bpf_error("'portrange' modifier applied to ip host"); + bpf_error(cstate, "'portrange' modifier applied to ip host"); else if (yyval.blk.q.addr == Q_PROTO) - bpf_error("'proto' modifier applied to ip host"); + bpf_error(cstate, "'proto' modifier applied to ip host"); else if (yyval.blk.q.addr == Q_PROTOCHAIN) - bpf_error("'protochain' modifier applied to ip host"); - yyval.blk.b = gen_ncode(yystack.l_mark[0].s, 0, yyval.blk.q); + bpf_error(cstate, "'protochain' modifier applied to ip host"); + yyval.blk.b = gen_ncode(cstate, yystack.l_mark[0].s, 0, yyval.blk.q); } break; case 18: -#line 357 "../../freebsd/contrib/libpcap/grammar.y" +#line 387 "grammar.y" { #ifdef INET6 - yyval.blk.b = gen_mcode6(yystack.l_mark[-2].s, NULL, yystack.l_mark[0].i, + yyval.blk.b = gen_mcode6(cstate, yystack.l_mark[-2].s, NULL, yystack.l_mark[0].i, yyval.blk.q = yystack.l_mark[-3].blk.q); #else - bpf_error("'ip6addr/prefixlen' not supported " + bpf_error(cstate, "'ip6addr/prefixlen' not supported " "in this configuration"); #endif /*INET6*/ } break; case 19: -#line 366 "../../freebsd/contrib/libpcap/grammar.y" +#line 396 "grammar.y" { #ifdef INET6 - yyval.blk.b = gen_mcode6(yystack.l_mark[0].s, 0, 128, + yyval.blk.b = gen_mcode6(cstate, yystack.l_mark[0].s, 0, 128, yyval.blk.q = yystack.l_mark[-1].blk.q); #else - bpf_error("'ip6addr' not supported " + bpf_error(cstate, "'ip6addr' not supported " "in this configuration"); #endif /*INET6*/ } break; case 20: -#line 375 "../../freebsd/contrib/libpcap/grammar.y" - { - yyval.blk.b = gen_ecode(yystack.l_mark[0].e, yyval.blk.q = yystack.l_mark[-1].blk.q); +#line 405 "grammar.y" + { + yyval.blk.b = gen_ecode(cstate, yystack.l_mark[0].e, yyval.blk.q = yystack.l_mark[-1].blk.q); /* * $1 was allocated by "pcap_ether_aton()", * so we must free it now that we're done @@ -1462,9 +1543,9 @@ case 20: } break; case 21: -#line 384 "../../freebsd/contrib/libpcap/grammar.y" +#line 414 "grammar.y" { - yyval.blk.b = gen_acode(yystack.l_mark[0].e, yyval.blk.q = yystack.l_mark[-1].blk.q); + yyval.blk.b = gen_acode(cstate, yystack.l_mark[0].e, yyval.blk.q = yystack.l_mark[-1].blk.q); /* * $1 was allocated by "pcap_ether_aton()", * so we must free it now that we're done @@ -1474,455 +1555,471 @@ case 21: } break; case 22: -#line 393 "../../freebsd/contrib/libpcap/grammar.y" +#line 423 "grammar.y" { gen_not(yystack.l_mark[0].blk.b); yyval.blk = yystack.l_mark[0].blk; } break; case 23: -#line 395 "../../freebsd/contrib/libpcap/grammar.y" +#line 425 "grammar.y" { yyval.blk = yystack.l_mark[-1].blk; } break; case 24: -#line 397 "../../freebsd/contrib/libpcap/grammar.y" +#line 427 "grammar.y" { yyval.blk = yystack.l_mark[-1].blk; } break; case 26: -#line 400 "../../freebsd/contrib/libpcap/grammar.y" +#line 430 "grammar.y" { gen_and(yystack.l_mark[-2].blk.b, yystack.l_mark[0].blk.b); yyval.blk = yystack.l_mark[0].blk; } break; case 27: -#line 401 "../../freebsd/contrib/libpcap/grammar.y" +#line 431 "grammar.y" { gen_or(yystack.l_mark[-2].blk.b, yystack.l_mark[0].blk.b); yyval.blk = yystack.l_mark[0].blk; } break; case 28: -#line 403 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = gen_ncode(NULL, (bpf_u_int32)yystack.l_mark[0].i, +#line 433 "grammar.y" + { yyval.blk.b = gen_ncode(cstate, NULL, (bpf_u_int32)yystack.l_mark[0].i, yyval.blk.q = yystack.l_mark[-1].blk.q); } break; case 31: -#line 408 "../../freebsd/contrib/libpcap/grammar.y" +#line 438 "grammar.y" { gen_not(yystack.l_mark[0].blk.b); yyval.blk = yystack.l_mark[0].blk; } break; case 32: -#line 410 "../../freebsd/contrib/libpcap/grammar.y" +#line 440 "grammar.y" { QSET(yyval.blk.q, yystack.l_mark[-2].i, yystack.l_mark[-1].i, yystack.l_mark[0].i); } break; case 33: -#line 411 "../../freebsd/contrib/libpcap/grammar.y" +#line 441 "grammar.y" { QSET(yyval.blk.q, yystack.l_mark[-1].i, yystack.l_mark[0].i, Q_DEFAULT); } break; case 34: -#line 412 "../../freebsd/contrib/libpcap/grammar.y" +#line 442 "grammar.y" { QSET(yyval.blk.q, yystack.l_mark[-1].i, Q_DEFAULT, yystack.l_mark[0].i); } break; case 35: -#line 413 "../../freebsd/contrib/libpcap/grammar.y" +#line 443 "grammar.y" { QSET(yyval.blk.q, yystack.l_mark[-1].i, Q_DEFAULT, Q_PROTO); } break; case 36: -#line 414 "../../freebsd/contrib/libpcap/grammar.y" +#line 444 "grammar.y" { QSET(yyval.blk.q, yystack.l_mark[-1].i, Q_DEFAULT, Q_PROTOCHAIN); } break; case 37: -#line 415 "../../freebsd/contrib/libpcap/grammar.y" +#line 445 "grammar.y" { QSET(yyval.blk.q, yystack.l_mark[-1].i, Q_DEFAULT, yystack.l_mark[0].i); } break; case 38: -#line 417 "../../freebsd/contrib/libpcap/grammar.y" +#line 447 "grammar.y" { yyval.blk = yystack.l_mark[0].blk; } break; case 39: -#line 418 "../../freebsd/contrib/libpcap/grammar.y" +#line 448 "grammar.y" { yyval.blk.b = yystack.l_mark[-1].blk.b; yyval.blk.q = yystack.l_mark[-2].blk.q; } break; case 40: -#line 419 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = gen_proto_abbrev(yystack.l_mark[0].i); yyval.blk.q = qerr; } +#line 449 "grammar.y" + { yyval.blk.b = gen_proto_abbrev(cstate, yystack.l_mark[0].i); yyval.blk.q = qerr; } break; case 41: -#line 420 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = gen_relation(yystack.l_mark[-1].i, yystack.l_mark[-2].a, yystack.l_mark[0].a, 0); +#line 450 "grammar.y" + { yyval.blk.b = gen_relation(cstate, yystack.l_mark[-1].i, yystack.l_mark[-2].a, yystack.l_mark[0].a, 0); yyval.blk.q = qerr; } break; case 42: -#line 422 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = gen_relation(yystack.l_mark[-1].i, yystack.l_mark[-2].a, yystack.l_mark[0].a, 1); +#line 452 "grammar.y" + { yyval.blk.b = gen_relation(cstate, yystack.l_mark[-1].i, yystack.l_mark[-2].a, yystack.l_mark[0].a, 1); yyval.blk.q = qerr; } break; case 43: -#line 424 "../../freebsd/contrib/libpcap/grammar.y" +#line 454 "grammar.y" { yyval.blk.b = yystack.l_mark[0].rblk; yyval.blk.q = qerr; } break; case 44: -#line 425 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = gen_atmtype_abbrev(yystack.l_mark[0].i); yyval.blk.q = qerr; } +#line 455 "grammar.y" + { yyval.blk.b = gen_atmtype_abbrev(cstate, yystack.l_mark[0].i); yyval.blk.q = qerr; } break; case 45: -#line 426 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = gen_atmmulti_abbrev(yystack.l_mark[0].i); yyval.blk.q = qerr; } +#line 456 "grammar.y" + { yyval.blk.b = gen_atmmulti_abbrev(cstate, yystack.l_mark[0].i); yyval.blk.q = qerr; } break; case 46: -#line 427 "../../freebsd/contrib/libpcap/grammar.y" +#line 457 "grammar.y" { yyval.blk.b = yystack.l_mark[0].blk.b; yyval.blk.q = qerr; } break; case 47: -#line 428 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = gen_mtp2type_abbrev(yystack.l_mark[0].i); yyval.blk.q = qerr; } +#line 458 "grammar.y" + { yyval.blk.b = gen_mtp2type_abbrev(cstate, yystack.l_mark[0].i); yyval.blk.q = qerr; } break; case 48: -#line 429 "../../freebsd/contrib/libpcap/grammar.y" +#line 459 "grammar.y" { yyval.blk.b = yystack.l_mark[0].blk.b; yyval.blk.q = qerr; } break; case 50: -#line 433 "../../freebsd/contrib/libpcap/grammar.y" +#line 463 "grammar.y" { yyval.i = Q_DEFAULT; } break; case 51: -#line 436 "../../freebsd/contrib/libpcap/grammar.y" +#line 466 "grammar.y" { yyval.i = Q_SRC; } break; case 52: -#line 437 "../../freebsd/contrib/libpcap/grammar.y" +#line 467 "grammar.y" { yyval.i = Q_DST; } break; case 53: -#line 438 "../../freebsd/contrib/libpcap/grammar.y" +#line 468 "grammar.y" { yyval.i = Q_OR; } break; case 54: -#line 439 "../../freebsd/contrib/libpcap/grammar.y" +#line 469 "grammar.y" { yyval.i = Q_OR; } break; case 55: -#line 440 "../../freebsd/contrib/libpcap/grammar.y" +#line 470 "grammar.y" { yyval.i = Q_AND; } break; case 56: -#line 441 "../../freebsd/contrib/libpcap/grammar.y" +#line 471 "grammar.y" { yyval.i = Q_AND; } break; case 57: -#line 442 "../../freebsd/contrib/libpcap/grammar.y" +#line 472 "grammar.y" { yyval.i = Q_ADDR1; } break; case 58: -#line 443 "../../freebsd/contrib/libpcap/grammar.y" +#line 473 "grammar.y" { yyval.i = Q_ADDR2; } break; case 59: -#line 444 "../../freebsd/contrib/libpcap/grammar.y" +#line 474 "grammar.y" { yyval.i = Q_ADDR3; } break; case 60: -#line 445 "../../freebsd/contrib/libpcap/grammar.y" +#line 475 "grammar.y" { yyval.i = Q_ADDR4; } break; case 61: -#line 446 "../../freebsd/contrib/libpcap/grammar.y" +#line 476 "grammar.y" { yyval.i = Q_RA; } break; case 62: -#line 447 "../../freebsd/contrib/libpcap/grammar.y" +#line 477 "grammar.y" { yyval.i = Q_TA; } break; case 63: -#line 450 "../../freebsd/contrib/libpcap/grammar.y" +#line 480 "grammar.y" { yyval.i = Q_HOST; } break; case 64: -#line 451 "../../freebsd/contrib/libpcap/grammar.y" +#line 481 "grammar.y" { yyval.i = Q_NET; } break; case 65: -#line 452 "../../freebsd/contrib/libpcap/grammar.y" +#line 482 "grammar.y" { yyval.i = Q_PORT; } break; case 66: -#line 453 "../../freebsd/contrib/libpcap/grammar.y" +#line 483 "grammar.y" { yyval.i = Q_PORTRANGE; } break; case 67: -#line 456 "../../freebsd/contrib/libpcap/grammar.y" +#line 486 "grammar.y" { yyval.i = Q_GATEWAY; } break; case 68: -#line 458 "../../freebsd/contrib/libpcap/grammar.y" +#line 488 "grammar.y" { yyval.i = Q_LINK; } break; case 69: -#line 459 "../../freebsd/contrib/libpcap/grammar.y" +#line 489 "grammar.y" { yyval.i = Q_IP; } break; case 70: -#line 460 "../../freebsd/contrib/libpcap/grammar.y" +#line 490 "grammar.y" { yyval.i = Q_ARP; } break; case 71: -#line 461 "../../freebsd/contrib/libpcap/grammar.y" +#line 491 "grammar.y" { yyval.i = Q_RARP; } break; case 72: -#line 462 "../../freebsd/contrib/libpcap/grammar.y" +#line 492 "grammar.y" { yyval.i = Q_SCTP; } break; case 73: -#line 463 "../../freebsd/contrib/libpcap/grammar.y" +#line 493 "grammar.y" { yyval.i = Q_TCP; } break; case 74: -#line 464 "../../freebsd/contrib/libpcap/grammar.y" +#line 494 "grammar.y" { yyval.i = Q_UDP; } break; case 75: -#line 465 "../../freebsd/contrib/libpcap/grammar.y" +#line 495 "grammar.y" { yyval.i = Q_ICMP; } break; case 76: -#line 466 "../../freebsd/contrib/libpcap/grammar.y" +#line 496 "grammar.y" { yyval.i = Q_IGMP; } break; case 77: -#line 467 "../../freebsd/contrib/libpcap/grammar.y" +#line 497 "grammar.y" { yyval.i = Q_IGRP; } break; case 78: -#line 468 "../../freebsd/contrib/libpcap/grammar.y" +#line 498 "grammar.y" { yyval.i = Q_PIM; } break; case 79: -#line 469 "../../freebsd/contrib/libpcap/grammar.y" +#line 499 "grammar.y" { yyval.i = Q_VRRP; } break; case 80: -#line 470 "../../freebsd/contrib/libpcap/grammar.y" +#line 500 "grammar.y" { yyval.i = Q_CARP; } break; case 81: -#line 471 "../../freebsd/contrib/libpcap/grammar.y" +#line 501 "grammar.y" { yyval.i = Q_ATALK; } break; case 82: -#line 472 "../../freebsd/contrib/libpcap/grammar.y" +#line 502 "grammar.y" { yyval.i = Q_AARP; } break; case 83: -#line 473 "../../freebsd/contrib/libpcap/grammar.y" +#line 503 "grammar.y" { yyval.i = Q_DECNET; } break; case 84: -#line 474 "../../freebsd/contrib/libpcap/grammar.y" +#line 504 "grammar.y" { yyval.i = Q_LAT; } break; case 85: -#line 475 "../../freebsd/contrib/libpcap/grammar.y" +#line 505 "grammar.y" { yyval.i = Q_SCA; } break; case 86: -#line 476 "../../freebsd/contrib/libpcap/grammar.y" +#line 506 "grammar.y" { yyval.i = Q_MOPDL; } break; case 87: -#line 477 "../../freebsd/contrib/libpcap/grammar.y" +#line 507 "grammar.y" { yyval.i = Q_MOPRC; } break; case 88: -#line 478 "../../freebsd/contrib/libpcap/grammar.y" +#line 508 "grammar.y" { yyval.i = Q_IPV6; } break; case 89: -#line 479 "../../freebsd/contrib/libpcap/grammar.y" +#line 509 "grammar.y" { yyval.i = Q_ICMPV6; } break; case 90: -#line 480 "../../freebsd/contrib/libpcap/grammar.y" +#line 510 "grammar.y" { yyval.i = Q_AH; } break; case 91: -#line 481 "../../freebsd/contrib/libpcap/grammar.y" +#line 511 "grammar.y" { yyval.i = Q_ESP; } break; case 92: -#line 482 "../../freebsd/contrib/libpcap/grammar.y" +#line 512 "grammar.y" { yyval.i = Q_ISO; } break; case 93: -#line 483 "../../freebsd/contrib/libpcap/grammar.y" +#line 513 "grammar.y" { yyval.i = Q_ESIS; } break; case 94: -#line 484 "../../freebsd/contrib/libpcap/grammar.y" +#line 514 "grammar.y" { yyval.i = Q_ISIS; } break; case 95: -#line 485 "../../freebsd/contrib/libpcap/grammar.y" +#line 515 "grammar.y" { yyval.i = Q_ISIS_L1; } break; case 96: -#line 486 "../../freebsd/contrib/libpcap/grammar.y" +#line 516 "grammar.y" { yyval.i = Q_ISIS_L2; } break; case 97: -#line 487 "../../freebsd/contrib/libpcap/grammar.y" +#line 517 "grammar.y" { yyval.i = Q_ISIS_IIH; } break; case 98: -#line 488 "../../freebsd/contrib/libpcap/grammar.y" +#line 518 "grammar.y" { yyval.i = Q_ISIS_LSP; } break; case 99: -#line 489 "../../freebsd/contrib/libpcap/grammar.y" +#line 519 "grammar.y" { yyval.i = Q_ISIS_SNP; } break; case 100: -#line 490 "../../freebsd/contrib/libpcap/grammar.y" +#line 520 "grammar.y" { yyval.i = Q_ISIS_PSNP; } break; case 101: -#line 491 "../../freebsd/contrib/libpcap/grammar.y" +#line 521 "grammar.y" { yyval.i = Q_ISIS_CSNP; } break; case 102: -#line 492 "../../freebsd/contrib/libpcap/grammar.y" +#line 522 "grammar.y" { yyval.i = Q_CLNP; } break; case 103: -#line 493 "../../freebsd/contrib/libpcap/grammar.y" +#line 523 "grammar.y" { yyval.i = Q_STP; } break; case 104: -#line 494 "../../freebsd/contrib/libpcap/grammar.y" +#line 524 "grammar.y" { yyval.i = Q_IPX; } break; case 105: -#line 495 "../../freebsd/contrib/libpcap/grammar.y" +#line 525 "grammar.y" { yyval.i = Q_NETBEUI; } break; case 106: -#line 496 "../../freebsd/contrib/libpcap/grammar.y" +#line 526 "grammar.y" { yyval.i = Q_RADIO; } break; case 107: -#line 498 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_broadcast(yystack.l_mark[-1].i); } +#line 528 "grammar.y" + { yyval.rblk = gen_broadcast(cstate, yystack.l_mark[-1].i); } break; case 108: -#line 499 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_multicast(yystack.l_mark[-1].i); } +#line 529 "grammar.y" + { yyval.rblk = gen_multicast(cstate, yystack.l_mark[-1].i); } break; case 109: -#line 500 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_less(yystack.l_mark[0].i); } +#line 530 "grammar.y" + { yyval.rblk = gen_less(cstate, yystack.l_mark[0].i); } break; case 110: -#line 501 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_greater(yystack.l_mark[0].i); } +#line 531 "grammar.y" + { yyval.rblk = gen_greater(cstate, yystack.l_mark[0].i); } break; case 111: -#line 502 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_byteop(yystack.l_mark[-1].i, yystack.l_mark[-2].i, yystack.l_mark[0].i); } +#line 532 "grammar.y" + { yyval.rblk = gen_byteop(cstate, yystack.l_mark[-1].i, yystack.l_mark[-2].i, yystack.l_mark[0].i); } break; case 112: -#line 503 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_inbound(0); } +#line 533 "grammar.y" + { yyval.rblk = gen_inbound(cstate, 0); } break; case 113: -#line 504 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_inbound(1); } +#line 534 "grammar.y" + { yyval.rblk = gen_inbound(cstate, 1); } break; case 114: -#line 505 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_vlan(yystack.l_mark[0].i); } +#line 535 "grammar.y" + { yyval.rblk = gen_vlan(cstate, yystack.l_mark[0].i); } break; case 115: -#line 506 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_vlan(-1); } +#line 536 "grammar.y" + { yyval.rblk = gen_vlan(cstate, -1); } break; case 116: -#line 507 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_mpls(yystack.l_mark[0].i); } +#line 537 "grammar.y" + { yyval.rblk = gen_mpls(cstate, yystack.l_mark[0].i); } break; case 117: -#line 508 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_mpls(-1); } +#line 538 "grammar.y" + { yyval.rblk = gen_mpls(cstate, -1); } break; case 118: -#line 509 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_pppoed(); } +#line 539 "grammar.y" + { yyval.rblk = gen_pppoed(cstate); } break; case 119: -#line 510 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_pppoes(); } +#line 540 "grammar.y" + { yyval.rblk = gen_pppoes(cstate, yystack.l_mark[0].i); } break; case 120: -#line 511 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = yystack.l_mark[0].rblk; } +#line 541 "grammar.y" + { yyval.rblk = gen_pppoes(cstate, -1); } break; case 121: -#line 512 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = yystack.l_mark[0].rblk; } +#line 542 "grammar.y" + { yyval.rblk = gen_geneve(cstate, yystack.l_mark[0].i); } break; case 122: -#line 515 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_pf_ifname(yystack.l_mark[0].s); } +#line 543 "grammar.y" + { yyval.rblk = gen_geneve(cstate, -1); } break; case 123: -#line 516 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_pf_ruleset(yystack.l_mark[0].s); } +#line 544 "grammar.y" + { yyval.rblk = yystack.l_mark[0].rblk; } break; case 124: -#line 517 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_pf_rnr(yystack.l_mark[0].i); } +#line 545 "grammar.y" + { yyval.rblk = yystack.l_mark[0].rblk; } break; case 125: -#line 518 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_pf_srnr(yystack.l_mark[0].i); } +#line 546 "grammar.y" + { yyval.rblk = yystack.l_mark[0].rblk; } break; case 126: -#line 519 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_pf_reason(yystack.l_mark[0].i); } +#line 549 "grammar.y" + { yyval.rblk = gen_pf_ifname(cstate, yystack.l_mark[0].s); } break; case 127: -#line 520 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_pf_action(yystack.l_mark[0].i); } +#line 550 "grammar.y" + { yyval.rblk = gen_pf_ruleset(cstate, yystack.l_mark[0].s); } break; case 128: -#line 524 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_p80211_type(yystack.l_mark[-2].i | yystack.l_mark[0].i, +#line 551 "grammar.y" + { yyval.rblk = gen_pf_rnr(cstate, yystack.l_mark[0].i); } +break; +case 129: +#line 552 "grammar.y" + { yyval.rblk = gen_pf_srnr(cstate, yystack.l_mark[0].i); } +break; +case 130: +#line 553 "grammar.y" + { yyval.rblk = gen_pf_reason(cstate, yystack.l_mark[0].i); } +break; +case 131: +#line 554 "grammar.y" + { yyval.rblk = gen_pf_action(cstate, yystack.l_mark[0].i); } +break; +case 132: +#line 558 "grammar.y" + { yyval.rblk = gen_p80211_type(cstate, yystack.l_mark[-2].i | yystack.l_mark[0].i, IEEE80211_FC0_TYPE_MASK | IEEE80211_FC0_SUBTYPE_MASK); } break; -case 129: -#line 528 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_p80211_type(yystack.l_mark[0].i, +case 133: +#line 562 "grammar.y" + { yyval.rblk = gen_p80211_type(cstate, yystack.l_mark[0].i, IEEE80211_FC0_TYPE_MASK); } break; -case 130: -#line 531 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_p80211_type(yystack.l_mark[0].i, +case 134: +#line 565 "grammar.y" + { yyval.rblk = gen_p80211_type(cstate, yystack.l_mark[0].i, IEEE80211_FC0_TYPE_MASK | IEEE80211_FC0_SUBTYPE_MASK); } break; -case 131: -#line 535 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.rblk = gen_p80211_fcdir(yystack.l_mark[0].i); } +case 135: +#line 569 "grammar.y" + { yyval.rblk = gen_p80211_fcdir(cstate, yystack.l_mark[0].i); } break; -case 133: -#line 539 "../../freebsd/contrib/libpcap/grammar.y" +case 137: +#line 573 "grammar.y" { yyval.i = str2tok(yystack.l_mark[0].s, ieee80211_types); if (yyval.i == -1) - bpf_error("unknown 802.11 type name"); + bpf_error(cstate, "unknown 802.11 type name"); } break; -case 135: -#line 546 "../../freebsd/contrib/libpcap/grammar.y" +case 139: +#line 580 "grammar.y" { const struct tok *types = NULL; int i; for (i = 0;; i++) { if (ieee80211_type_subtypes[i].tok == NULL) { /* Ran out of types */ - bpf_error("unknown 802.11 type"); + bpf_error(cstate, "unknown 802.11 type"); break; } if (yystack.l_mark[-2].i == ieee80211_type_subtypes[i].type) { @@ -1933,16 +2030,16 @@ case 135: yyval.i = str2tok(yystack.l_mark[0].s, types); if (yyval.i == -1) - bpf_error("unknown 802.11 subtype name"); + bpf_error(cstate, "unknown 802.11 subtype name"); } break; -case 136: -#line 566 "../../freebsd/contrib/libpcap/grammar.y" +case 140: +#line 600 "grammar.y" { int i; for (i = 0;; i++) { if (ieee80211_type_subtypes[i].tok == NULL) { /* Ran out of types */ - bpf_error("unknown 802.11 type name"); + bpf_error(cstate, "unknown 802.11 type name"); break; } yyval.i = str2tok(yystack.l_mark[0].s, ieee80211_type_subtypes[i].tok); @@ -1953,8 +2050,39 @@ case 136: } } break; -case 138: -#line 583 "../../freebsd/contrib/libpcap/grammar.y" +case 141: +#line 616 "grammar.y" + { yyval.rblk = gen_llc(cstate); } +break; +case 142: +#line 617 "grammar.y" + { if (pcap_strcasecmp(yystack.l_mark[0].s, "i") == 0) + yyval.rblk = gen_llc_i(cstate); + else if (pcap_strcasecmp(yystack.l_mark[0].s, "s") == 0) + yyval.rblk = gen_llc_s(cstate); + else if (pcap_strcasecmp(yystack.l_mark[0].s, "u") == 0) + yyval.rblk = gen_llc_u(cstate); + else { + int subtype; + + subtype = str2tok(yystack.l_mark[0].s, llc_s_subtypes); + if (subtype != -1) + yyval.rblk = gen_llc_s_subtype(cstate, subtype); + else { + subtype = str2tok(yystack.l_mark[0].s, llc_u_subtypes); + if (subtype == -1) + bpf_error(cstate, "unknown LLC type name \"%s\"", yystack.l_mark[0].s); + yyval.rblk = gen_llc_u_subtype(cstate, subtype); + } + } + } +break; +case 143: +#line 638 "grammar.y" + { yyval.rblk = gen_llc_s_subtype(cstate, LLC_RNR); } +break; +case 145: +#line 642 "grammar.y" { if (pcap_strcasecmp(yystack.l_mark[0].s, "nods") == 0) yyval.i = IEEE80211_FC1_DIR_NODS; else if (pcap_strcasecmp(yystack.l_mark[0].s, "tods") == 0) @@ -1964,262 +2092,298 @@ case 138: else if (pcap_strcasecmp(yystack.l_mark[0].s, "dstods") == 0) yyval.i = IEEE80211_FC1_DIR_DSTODS; else - bpf_error("unknown 802.11 direction"); + bpf_error(cstate, "unknown 802.11 direction"); } break; -case 139: -#line 596 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = yystack.l_mark[0].i; } -break; -case 140: -#line 597 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = pfreason_to_num(yystack.l_mark[0].s); } -break; -case 141: -#line 600 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = pfaction_to_num(yystack.l_mark[0].s); } -break; -case 142: -#line 603 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = BPF_JGT; } -break; -case 143: -#line 604 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = BPF_JGE; } -break; -case 144: -#line 605 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = BPF_JEQ; } -break; -case 145: -#line 607 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = BPF_JGT; } -break; case 146: -#line 608 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = BPF_JGE; } +#line 655 "grammar.y" + { yyval.i = yystack.l_mark[0].i; } break; case 147: -#line 609 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = BPF_JEQ; } +#line 656 "grammar.y" + { yyval.i = pfreason_to_num(cstate, yystack.l_mark[0].s); } break; case 148: -#line 611 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.a = gen_loadi(yystack.l_mark[0].i); } +#line 659 "grammar.y" + { yyval.i = pfaction_to_num(cstate, yystack.l_mark[0].s); } +break; +case 149: +#line 662 "grammar.y" + { yyval.i = BPF_JGT; } break; case 150: -#line 614 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.a = gen_load(yystack.l_mark[-3].i, yystack.l_mark[-1].a, 1); } +#line 663 "grammar.y" + { yyval.i = BPF_JGE; } break; case 151: -#line 615 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.a = gen_load(yystack.l_mark[-5].i, yystack.l_mark[-3].a, yystack.l_mark[-1].i); } +#line 664 "grammar.y" + { yyval.i = BPF_JEQ; } break; case 152: -#line 616 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.a = gen_arth(BPF_ADD, yystack.l_mark[-2].a, yystack.l_mark[0].a); } +#line 666 "grammar.y" + { yyval.i = BPF_JGT; } break; case 153: -#line 617 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.a = gen_arth(BPF_SUB, yystack.l_mark[-2].a, yystack.l_mark[0].a); } +#line 667 "grammar.y" + { yyval.i = BPF_JGE; } break; case 154: -#line 618 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.a = gen_arth(BPF_MUL, yystack.l_mark[-2].a, yystack.l_mark[0].a); } +#line 668 "grammar.y" + { yyval.i = BPF_JEQ; } break; case 155: -#line 619 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.a = gen_arth(BPF_DIV, yystack.l_mark[-2].a, yystack.l_mark[0].a); } -break; -case 156: -#line 620 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.a = gen_arth(BPF_AND, yystack.l_mark[-2].a, yystack.l_mark[0].a); } +#line 670 "grammar.y" + { yyval.a = gen_loadi(cstate, yystack.l_mark[0].i); } break; case 157: -#line 621 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.a = gen_arth(BPF_OR, yystack.l_mark[-2].a, yystack.l_mark[0].a); } +#line 673 "grammar.y" + { yyval.a = gen_load(cstate, yystack.l_mark[-3].i, yystack.l_mark[-1].a, 1); } break; case 158: -#line 622 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.a = gen_arth(BPF_LSH, yystack.l_mark[-2].a, yystack.l_mark[0].a); } +#line 674 "grammar.y" + { yyval.a = gen_load(cstate, yystack.l_mark[-5].i, yystack.l_mark[-3].a, yystack.l_mark[-1].i); } break; case 159: -#line 623 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.a = gen_arth(BPF_RSH, yystack.l_mark[-2].a, yystack.l_mark[0].a); } +#line 675 "grammar.y" + { yyval.a = gen_arth(cstate, BPF_ADD, yystack.l_mark[-2].a, yystack.l_mark[0].a); } break; case 160: -#line 624 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.a = gen_neg(yystack.l_mark[0].a); } +#line 676 "grammar.y" + { yyval.a = gen_arth(cstate, BPF_SUB, yystack.l_mark[-2].a, yystack.l_mark[0].a); } break; case 161: -#line 625 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.a = yystack.l_mark[-1].a; } +#line 677 "grammar.y" + { yyval.a = gen_arth(cstate, BPF_MUL, yystack.l_mark[-2].a, yystack.l_mark[0].a); } break; case 162: -#line 626 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.a = gen_loadlen(); } +#line 678 "grammar.y" + { yyval.a = gen_arth(cstate, BPF_DIV, yystack.l_mark[-2].a, yystack.l_mark[0].a); } break; case 163: -#line 628 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = '&'; } +#line 679 "grammar.y" + { yyval.a = gen_arth(cstate, BPF_MOD, yystack.l_mark[-2].a, yystack.l_mark[0].a); } break; case 164: -#line 629 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = '|'; } +#line 680 "grammar.y" + { yyval.a = gen_arth(cstate, BPF_AND, yystack.l_mark[-2].a, yystack.l_mark[0].a); } break; case 165: -#line 630 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = '<'; } +#line 681 "grammar.y" + { yyval.a = gen_arth(cstate, BPF_OR, yystack.l_mark[-2].a, yystack.l_mark[0].a); } break; case 166: -#line 631 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = '>'; } +#line 682 "grammar.y" + { yyval.a = gen_arth(cstate, BPF_XOR, yystack.l_mark[-2].a, yystack.l_mark[0].a); } break; case 167: -#line 632 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = '='; } +#line 683 "grammar.y" + { yyval.a = gen_arth(cstate, BPF_LSH, yystack.l_mark[-2].a, yystack.l_mark[0].a); } +break; +case 168: +#line 684 "grammar.y" + { yyval.a = gen_arth(cstate, BPF_RSH, yystack.l_mark[-2].a, yystack.l_mark[0].a); } break; case 169: -#line 635 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = yystack.l_mark[-1].i; } +#line 685 "grammar.y" + { yyval.a = gen_neg(cstate, yystack.l_mark[0].a); } break; case 170: -#line 637 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = A_LANE; } +#line 686 "grammar.y" + { yyval.a = yystack.l_mark[-1].a; } break; case 171: -#line 638 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = A_LLC; } +#line 687 "grammar.y" + { yyval.a = gen_loadlen(cstate); } break; case 172: -#line 639 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = A_METAC; } +#line 689 "grammar.y" + { yyval.i = '&'; } break; case 173: -#line 640 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = A_BCC; } +#line 690 "grammar.y" + { yyval.i = '|'; } break; case 174: -#line 641 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = A_OAMF4EC; } +#line 691 "grammar.y" + { yyval.i = '<'; } break; case 175: -#line 642 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = A_OAMF4SC; } +#line 692 "grammar.y" + { yyval.i = '>'; } break; case 176: -#line 643 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = A_SC; } -break; -case 177: -#line 644 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = A_ILMIC; } +#line 693 "grammar.y" + { yyval.i = '='; } break; case 178: -#line 646 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = A_OAM; } +#line 696 "grammar.y" + { yyval.i = yystack.l_mark[-1].i; } break; case 179: -#line 647 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = A_OAMF4; } +#line 698 "grammar.y" + { yyval.i = A_LANE; } break; case 180: -#line 648 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = A_CONNECTMSG; } +#line 699 "grammar.y" + { yyval.i = A_METAC; } break; case 181: -#line 649 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.i = A_METACONNECT; } +#line 700 "grammar.y" + { yyval.i = A_BCC; } break; case 182: -#line 652 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.atmfieldtype = A_VPI; } +#line 701 "grammar.y" + { yyval.i = A_OAMF4EC; } break; case 183: -#line 653 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.atmfieldtype = A_VCI; } +#line 702 "grammar.y" + { yyval.i = A_OAMF4SC; } +break; +case 184: +#line 703 "grammar.y" + { yyval.i = A_SC; } break; case 185: -#line 656 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = gen_atmfield_code(yystack.l_mark[-2].blk.atmfieldtype, (bpf_int32)yystack.l_mark[0].i, (bpf_u_int32)yystack.l_mark[-1].i, 0); } +#line 704 "grammar.y" + { yyval.i = A_ILMIC; } break; case 186: -#line 657 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = gen_atmfield_code(yystack.l_mark[-2].blk.atmfieldtype, (bpf_int32)yystack.l_mark[0].i, (bpf_u_int32)yystack.l_mark[-1].i, 1); } +#line 706 "grammar.y" + { yyval.i = A_OAM; } break; case 187: -#line 658 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = yystack.l_mark[-1].blk.b; yyval.blk.q = qerr; } +#line 707 "grammar.y" + { yyval.i = A_OAMF4; } break; case 188: -#line 660 "../../freebsd/contrib/libpcap/grammar.y" +#line 708 "grammar.y" + { yyval.i = A_CONNECTMSG; } +break; +case 189: +#line 709 "grammar.y" + { yyval.i = A_METACONNECT; } +break; +case 190: +#line 712 "grammar.y" + { yyval.blk.atmfieldtype = A_VPI; } +break; +case 191: +#line 713 "grammar.y" + { yyval.blk.atmfieldtype = A_VCI; } +break; +case 193: +#line 716 "grammar.y" + { yyval.blk.b = gen_atmfield_code(cstate, yystack.l_mark[-2].blk.atmfieldtype, (bpf_int32)yystack.l_mark[0].i, (bpf_u_int32)yystack.l_mark[-1].i, 0); } +break; +case 194: +#line 717 "grammar.y" + { yyval.blk.b = gen_atmfield_code(cstate, yystack.l_mark[-2].blk.atmfieldtype, (bpf_int32)yystack.l_mark[0].i, (bpf_u_int32)yystack.l_mark[-1].i, 1); } +break; +case 195: +#line 718 "grammar.y" + { yyval.blk.b = yystack.l_mark[-1].blk.b; yyval.blk.q = qerr; } +break; +case 196: +#line 720 "grammar.y" { yyval.blk.atmfieldtype = yystack.l_mark[-1].blk.atmfieldtype; if (yyval.blk.atmfieldtype == A_VPI || yyval.blk.atmfieldtype == A_VCI) - yyval.blk.b = gen_atmfield_code(yyval.blk.atmfieldtype, (bpf_int32) yystack.l_mark[0].i, BPF_JEQ, 0); + yyval.blk.b = gen_atmfield_code(cstate, yyval.blk.atmfieldtype, (bpf_int32) yystack.l_mark[0].i, BPF_JEQ, 0); } break; -case 190: -#line 668 "../../freebsd/contrib/libpcap/grammar.y" +case 198: +#line 728 "grammar.y" { gen_or(yystack.l_mark[-2].blk.b, yystack.l_mark[0].blk.b); yyval.blk = yystack.l_mark[0].blk; } break; -case 191: -#line 671 "../../freebsd/contrib/libpcap/grammar.y" +case 199: +#line 731 "grammar.y" { yyval.i = M_FISU; } break; -case 192: -#line 672 "../../freebsd/contrib/libpcap/grammar.y" +case 200: +#line 732 "grammar.y" { yyval.i = M_LSSU; } break; -case 193: -#line 673 "../../freebsd/contrib/libpcap/grammar.y" +case 201: +#line 733 "grammar.y" { yyval.i = M_MSU; } break; -case 194: -#line 676 "../../freebsd/contrib/libpcap/grammar.y" +case 202: +#line 734 "grammar.y" + { yyval.i = MH_FISU; } +break; +case 203: +#line 735 "grammar.y" + { yyval.i = MH_LSSU; } +break; +case 204: +#line 736 "grammar.y" + { yyval.i = MH_MSU; } +break; +case 205: +#line 739 "grammar.y" { yyval.blk.mtp3fieldtype = M_SIO; } break; -case 195: -#line 677 "../../freebsd/contrib/libpcap/grammar.y" +case 206: +#line 740 "grammar.y" { yyval.blk.mtp3fieldtype = M_OPC; } break; -case 196: -#line 678 "../../freebsd/contrib/libpcap/grammar.y" +case 207: +#line 741 "grammar.y" { yyval.blk.mtp3fieldtype = M_DPC; } break; -case 197: -#line 679 "../../freebsd/contrib/libpcap/grammar.y" +case 208: +#line 742 "grammar.y" { yyval.blk.mtp3fieldtype = M_SLS; } break; -case 199: -#line 682 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = gen_mtp3field_code(yystack.l_mark[-2].blk.mtp3fieldtype, (u_int)yystack.l_mark[0].i, (u_int)yystack.l_mark[-1].i, 0); } +case 209: +#line 743 "grammar.y" + { yyval.blk.mtp3fieldtype = MH_SIO; } break; -case 200: -#line 683 "../../freebsd/contrib/libpcap/grammar.y" - { yyval.blk.b = gen_mtp3field_code(yystack.l_mark[-2].blk.mtp3fieldtype, (u_int)yystack.l_mark[0].i, (u_int)yystack.l_mark[-1].i, 1); } +case 210: +#line 744 "grammar.y" + { yyval.blk.mtp3fieldtype = MH_OPC; } break; -case 201: -#line 684 "../../freebsd/contrib/libpcap/grammar.y" +case 211: +#line 745 "grammar.y" + { yyval.blk.mtp3fieldtype = MH_DPC; } +break; +case 212: +#line 746 "grammar.y" + { yyval.blk.mtp3fieldtype = MH_SLS; } +break; +case 214: +#line 749 "grammar.y" + { yyval.blk.b = gen_mtp3field_code(cstate, yystack.l_mark[-2].blk.mtp3fieldtype, (u_int)yystack.l_mark[0].i, (u_int)yystack.l_mark[-1].i, 0); } +break; +case 215: +#line 750 "grammar.y" + { yyval.blk.b = gen_mtp3field_code(cstate, yystack.l_mark[-2].blk.mtp3fieldtype, (u_int)yystack.l_mark[0].i, (u_int)yystack.l_mark[-1].i, 1); } +break; +case 216: +#line 751 "grammar.y" { yyval.blk.b = yystack.l_mark[-1].blk.b; yyval.blk.q = qerr; } break; -case 202: -#line 686 "../../freebsd/contrib/libpcap/grammar.y" +case 217: +#line 753 "grammar.y" { yyval.blk.mtp3fieldtype = yystack.l_mark[-1].blk.mtp3fieldtype; if (yyval.blk.mtp3fieldtype == M_SIO || yyval.blk.mtp3fieldtype == M_OPC || yyval.blk.mtp3fieldtype == M_DPC || - yyval.blk.mtp3fieldtype == M_SLS ) - yyval.blk.b = gen_mtp3field_code(yyval.blk.mtp3fieldtype, (u_int) yystack.l_mark[0].i, BPF_JEQ, 0); + yyval.blk.mtp3fieldtype == M_SLS || + yyval.blk.mtp3fieldtype == MH_SIO || + yyval.blk.mtp3fieldtype == MH_OPC || + yyval.blk.mtp3fieldtype == MH_DPC || + yyval.blk.mtp3fieldtype == MH_SLS) + yyval.blk.b = gen_mtp3field_code(cstate, yyval.blk.mtp3fieldtype, (u_int) yystack.l_mark[0].i, BPF_JEQ, 0); } break; -case 204: -#line 696 "../../freebsd/contrib/libpcap/grammar.y" +case 219: +#line 767 "grammar.y" { gen_or(yystack.l_mark[-2].blk.b, yystack.l_mark[0].blk.b); yyval.blk = yystack.l_mark[0].blk; } break; -#line 2223 "pcap.tab.c" +#line 2387 "grammar.c" } yystack.s_mark -= yym; yystate = *yystack.s_mark; @@ -2237,11 +2401,12 @@ break; *++yystack.l_mark = yyval; if (yychar < 0) { - if ((yychar = YYLEX) < 0) yychar = YYEOF; + yychar = YYLEX; + if (yychar < 0) yychar = YYEOF; #if YYDEBUG if (yydebug) { - yys = yyname[YYTRANSLATE(yychar)]; + if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN]; printf("%sdebug: state %d, reading %d (%s)\n", YYPREFIX, YYFINAL, yychar, yys); } @@ -2250,8 +2415,8 @@ break; if (yychar == YYEOF) goto yyaccept; goto yyloop; } - if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yystate) + if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate) yystate = yytable[yyn]; else yystate = yydgoto[yym]; @@ -2260,10 +2425,7 @@ break; printf("%sdebug: after reduction, shifting from state %d \ to state %d\n", YYPREFIX, *yystack.s_mark, yystate); #endif - if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) - { - goto yyoverflow; - } + if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow; *++yystack.s_mark = (YYINT) yystate; *++yystack.l_mark = yyval; goto yyloop; |