1 /*
2  * Argus Software
3  * Copyright (c) 2000-2016 QoSient, LLC
4  * All rights reserved.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2, or (at your option)
9  * any later version.
10 
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15 
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19  *
20  */
21 
22 /*
23  * $Id: //depot/argus/clients/include/argus_cluster.h#38 $
24  * $DateTime: 2016/06/01 15:17:28 $
25  * $Change: 3148 $
26  */
27 
28 #ifndef ArgusCluster_h
29 #define ArgusCluster_h
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 #if defined(ARGUS_PCRE)
36 #include "pcreposix.h"
37 #else
38 #include <regex.h>
39 #endif
40 
41 struct RaFlowModelStruct {
42    char *desc;
43    int pindex, mindex;
44    int preserve, report, autocorrect;
45    int *histotimevalues;
46    int histostart, histoend, histobins;
47    int histotimeseries;
48 
49    struct RaPolicyStruct **policy;
50    struct RaPolicyStruct **model;
51 };
52 
53 struct RaPolicyStruct {
54    u_int RaEntryType, RaPolicyId;
55    u_int RaModelId, ArgusTimeout, ArgusIdleTimeout;
56    struct ArgusFlow flow;
57    char *str;
58 };
59 
60 struct ArgusIPAddrStruct {
61    union {
62       u_int ipv4;
63       u_int ipv6[4];
64    } addr_un;
65 };
66 
67 #define ARGUS_AGGREGATOR_DIRTY	1
68 #define ARGUS_CREATE_AUTOID	2
69 
70 #define ARGUS_RECORD_AGGREGATOR	1
71 #define ARGUS_OBJ_AGGREGATOR	2
72 
73 struct ArgusAggregatorStruct {
74    struct ArgusAggregatorStruct *nxt;
75    char *name, *pres, *report, *correct;
76    int status, statusint, idleint;
77    int AbsoluteValue;
78 
79    char *modeStr;
80 
81    long long ArgusTotalNewFlows;
82    long long ArgusTotalClosedFlows;
83    long long ArgusTotalSends;
84    long long ArgusTotalBadSends;
85    long long ArgusTotalUpdates;
86    long long ArgusTotalCacheHits;
87 
88    struct ArgusRecordStruct *argus;
89 
90    long long mask, cont;
91    int saddrlen, daddrlen, iaddrlen;
92    struct ArgusIPAddrStruct smask, dmask, imask;
93 
94    struct RaPolicyStruct *drap, *rap;
95    struct RaFlowModelStruct *fmodel;
96    struct ArgusModeStruct *ArgusModeList, *ArgusMaskList;
97    struct ArgusMaskStruct *ArgusMaskDefs;
98    struct ArgusQueueStruct *queue;
99    struct ArgusHashTable *htable;
100    struct ArgusHashStruct hstruct;
101    struct ArgusSystemFlow fstruct;
102 
103    char *filterstr;
104    struct nff_program filter;
105 
106    char *modelstr;
107    char *grepstr;
108    char *labelstr;
109    regex_t lpreg;
110 
111    char *estr;
112    regex_t upreg;
113 
114    double (*RaMetricFetchAlgorithm)(struct ArgusRecordStruct *);
115    unsigned char ArgusMetricIndex, ArgusMatrixMode, ArgusRmonMode, ArgusAgMode;
116 };
117 
118 
119 #define NLI			-1
120 
121 #define ARGUS_MAX_MASK_LIST	37
122 
123 #define ARGUS_MASK_SRCID	0
124 
125 #define ARGUS_MASK_SMPLS	1
126 #define ARGUS_MASK_DMPLS	2
127 #define ARGUS_MASK_SVLAN	3
128 #define ARGUS_MASK_DVLAN	4
129 
130 #define ARGUS_MASK_PROTO	5
131 #define ARGUS_MASK_SADDR	6
132 #define ARGUS_MASK_SPORT	7
133 #define ARGUS_MASK_DADDR	8
134 #define ARGUS_MASK_DPORT	9
135 
136 #define ARGUS_MASK_SNET		10
137 #define ARGUS_MASK_DNET		11
138 
139 #define ARGUS_MASK_STOS		12
140 #define ARGUS_MASK_DTOS		13
141 #define ARGUS_MASK_STTL		14
142 #define ARGUS_MASK_DTTL		15
143 #define ARGUS_MASK_SIPID	16
144 #define ARGUS_MASK_DIPID	17
145 
146 #define ARGUS_MASK_STCPB	18
147 #define ARGUS_MASK_DTCPB	19
148 
149 #define ARGUS_MASK_SMAC		20
150 #define ARGUS_MASK_DMAC		21
151 
152 #define ARGUS_MASK_SVID		22
153 #define ARGUS_MASK_DVID		23
154 #define ARGUS_MASK_SVPRI	24
155 #define ARGUS_MASK_DVPRI	25
156 #define ARGUS_MASK_SVC		26
157 
158 #define ARGUS_MASK_INODE	27
159 
160 #define ARGUS_MASK_SDSB		28
161 #define ARGUS_MASK_DDSB		29
162 #define ARGUS_MASK_SCO 		30
163 #define ARGUS_MASK_DCO 		31
164 #define ARGUS_MASK_SAS 		32
165 #define ARGUS_MASK_DAS 		33
166 #define ARGUS_MASK_IAS 		34
167 #define ARGUS_MASK_SOUI		35
168 #define ARGUS_MASK_DOUI		36
169 
170 
171 #define ARGUS_MASK_SRCID_INDEX	(0x1 << ARGUS_MASK_SRCID)
172 
173 #define ARGUS_MASK_SMPLS_INDEX	(0x1 << ARGUS_MASK_SMPLS)
174 #define ARGUS_MASK_DMPLS_INDEX	(0x1 << ARGUS_MASK_DMPLS)
175 #define ARGUS_MASK_SVLAN_INDEX	(0x1 << ARGUS_MASK_SVLAN)
176 #define ARGUS_MASK_DVLAN_INDEX	(0x1 << ARGUS_MASK_DVLAN)
177 
178 #define ARGUS_MASK_PROTO_INDEX	(0x1 << ARGUS_MASK_PROTO)
179 #define ARGUS_MASK_SADDR_INDEX	(0x1 << ARGUS_MASK_SADDR)
180 #define ARGUS_MASK_SPORT_INDEX	(0x1 << ARGUS_MASK_SPORT)
181 #define ARGUS_MASK_DADDR_INDEX	(0x1 << ARGUS_MASK_DADDR)
182 #define ARGUS_MASK_DPORT_INDEX	(0x1 << ARGUS_MASK_DPORT)
183 
184 #define ARGUS_MASK_SNET_INDEX	(0x1 << ARGUS_MASK_SNET)
185 #define ARGUS_MASK_DNET_INDEX	(0x1 << ARGUS_MASK_DNET)
186 
187 #define ARGUS_MASK_STOS_INDEX	(0x1 << ARGUS_MASK_STOS)
188 #define ARGUS_MASK_DTOS_INDEX	(0x1 << ARGUS_MASK_DTOS)
189 #define ARGUS_MASK_STTL_INDEX	(0x1 << ARGUS_MASK_STTL)
190 #define ARGUS_MASK_DTTL_INDEX	(0x1 << ARGUS_MASK_DTTL)
191 #define ARGUS_MASK_SIPID_INDEX	(0x1 << ARGUS_MASK_SIPID)
192 #define ARGUS_MASK_DIPID_INDEX	(0x1 << ARGUS_MASK_DIPID)
193 
194 #define ARGUS_MASK_STCPB_INDEX	(0x1 << ARGUS_MASK_STCPB)
195 #define ARGUS_MASK_DTCPB_INDEX	(0x1 << ARGUS_MASK_DTCPB)
196 
197 #define ARGUS_MASK_SDSB_INDEX	(0x1 << ARGUS_MASK_SDSB)
198 #define ARGUS_MASK_DDSB_INDEX	(0x1 << ARGUS_MASK_DDSB)
199 
200 #define ARGUS_MASK_SVC_INDEX	(0x1 << ARGUS_MASK_SVC)
201 #define ARGUS_MASK_INODE_INDEX	(0x1 << ARGUS_MASK_INODE)
202 
203 #define ARGUS_MASK_SCO_INDEX	(0x1 << ARGUS_MASK_SCO)
204 #define ARGUS_MASK_DCO_INDEX	(0x1 << ARGUS_MASK_DCO)
205 
206 #define ARGUS_MASK_SAS_INDEX	(0x1 << ARGUS_MASK_SAS)
207 #define ARGUS_MASK_DAS_INDEX	(0x1 << ARGUS_MASK_DAS)
208 
209 #define ARGUS_MASK_SOUI_INDEX	(0x1 << ARGUS_MASK_SOUI)
210 #define ARGUS_MASK_DOUI_INDEX	(0x1 << ARGUS_MASK_DOUI)
211 
212 
213 struct ArgusMaskStruct {
214    char *name, slen;
215    int dsr, offset, len, index;
216 };
217 
218 #if defined(ARGUS_MAIN)
219 struct ArgusMaskStruct ArgusIpV4MaskDefs[ARGUS_MAX_MASK_LIST] = {
220    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
221    {"smpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
222    {"dmpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
223    {"svlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
224    {"dvlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
225    {"proto", 5, ARGUS_FLOW_INDEX,      12,  1, 1},
226    {"saddr", 5, ARGUS_FLOW_INDEX,       4,  4, 1},
227    {"sport", 5, ARGUS_FLOW_INDEX,      14,  2, 1},
228    {"daddr", 5, ARGUS_FLOW_INDEX,       8,  4, 1},
229    {"dport", 5, ARGUS_FLOW_INDEX,      16,  2, 1},
230    {"snet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
231    {"dnet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
232    {"stos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
233    {"dtos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
234    {"sttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
235    {"dttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
236    {"sipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
237    {"dipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
238    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
239    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
240    {"smac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
241    {"dmac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
242    {"svid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
243    {"dvid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
244    {"svpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
245    {"dvpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
246    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
247    {"inode", 5, ARGUS_ICMP_INDEX,       8,  4, 1},
248    {"sdsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
249    {"ddsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
250    {"sco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
251    {"dco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
252    {"sas",   3, ARGUS_ASN_INDEX,        4,  4, 1},
253    {"das",   3, ARGUS_ASN_INDEX,        8,  4, 1},
254    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
255    {"soui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
256    {"doui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
257 };
258 
259 struct ArgusMaskStruct ArgusIpV4RevMaskDefs[ARGUS_MAX_MASK_LIST] = {
260    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
261    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
262    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
263    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
264    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
265    {"proto", 5, ARGUS_FLOW_INDEX,      12,  1, 1},
266    {"saddr", 5, ARGUS_FLOW_INDEX,       8,  4, 1},
267    {"sport", 5, ARGUS_FLOW_INDEX,      16,  2, 1},
268    {"daddr", 5, ARGUS_FLOW_INDEX,       4,  4, 1},
269    {"dport", 5, ARGUS_FLOW_INDEX,      14,  2, 1},
270    {"snet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
271    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
272    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
273    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
274    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
275    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
276    {"sipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
277    {"dipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
278    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
279    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
280    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
281    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
282    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
283    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
284    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
285    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
286    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
287    {"inode", 5, ARGUS_ICMP_INDEX,       8,  4, 1},
288    {"sdsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
289    {"ddsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
290    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
291    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
292    {"sas",   3, ARGUS_ASN_INDEX,        8,  2, 1},
293    {"das",   3, ARGUS_ASN_INDEX,        4,  4, 1},
294    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
295    {"soui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
296    {"doui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
297 };
298 
299 struct ArgusMaskStruct ArgusIpV6MaskDefs[ARGUS_MAX_MASK_LIST] = {
300    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
301    {"smpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
302    {"dmpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
303    {"svlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
304    {"dvlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
305    {"proto", 5, ARGUS_FLOW_INDEX,      12,  1, 1},
306    {"saddr", 5, ARGUS_FLOW_INDEX,       4, 16, 1},
307    {"sport", 5, ARGUS_FLOW_INDEX,      40,  2, 1},
308    {"daddr", 5, ARGUS_FLOW_INDEX,      20, 16, 1},
309    {"dport", 5, ARGUS_FLOW_INDEX,      42,  2, 1},
310    {"snet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
311    {"dnet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
312    {"stos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
313    {"dtos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
314    {"sttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
315    {"dttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
316    {"sipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
317    {"dipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
318    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
319    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
320    {"smac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
321    {"dmac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
322    {"svid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
323    {"dvid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
324    {"svpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
325    {"dvpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
326    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
327    {"inode", 5, ARGUS_ICMP_INDEX,       8,  4, 1},
328    {"sdsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
329    {"ddsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
330    {"sco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
331    {"dco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
332    {"sas",   3, ARGUS_ASN_INDEX,        4,  4, 1},
333    {"das",   3, ARGUS_ASN_INDEX,        8,  4, 1},
334    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
335    {"soui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
336    {"doui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
337 };
338 
339 struct ArgusMaskStruct ArgusIpV6RevMaskDefs[ARGUS_MAX_MASK_LIST] = {
340    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
341    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
342    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
343    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
344    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
345    {"proto", 5, ARGUS_FLOW_INDEX,      12,  1, 1},
346    {"saddr", 5, ARGUS_FLOW_INDEX,       4, 16, 1},
347    {"sport", 5, ARGUS_FLOW_INDEX,      40,  2, 1},
348    {"daddr", 5, ARGUS_FLOW_INDEX,      20, 16, 1},
349    {"dport", 5, ARGUS_FLOW_INDEX,      42,  2, 1},
350    {"snet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
351    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
352    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
353    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
354    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
355    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
356    {"sipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
357    {"dipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
358    {"stcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
359    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
360    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
361    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
362    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
363    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
364    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
365    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
366    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
367    {"inode", 5, ARGUS_ICMP_INDEX,       8,  4, 1},
368    {"sdsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
369    {"ddsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
370    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
371    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
372    {"sas",   3, ARGUS_ASN_INDEX,        8,  4, 1},
373    {"das",   3, ARGUS_ASN_INDEX,        4,  4, 1},
374    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
375    {"soui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
376    {"doui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
377 };
378 
379 
380 struct ArgusMaskStruct ArgusIBLocalMaskDefs[ARGUS_MAX_MASK_LIST] = {
381    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
382    {"smpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
383    {"dmpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
384    {"svlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
385    {"dvlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
386    {"proto", 5, ARGUS_FLOW_INDEX,      12,  1, 1},
387    {"saddr", 5, ARGUS_FLOW_INDEX,       4,  4, 1},
388    {"sport", 5, ARGUS_FLOW_INDEX,      14,  2, 1},
389    {"daddr", 5, ARGUS_FLOW_INDEX,       8,  4, 1},
390    {"dport", 5, ARGUS_FLOW_INDEX,      16,  2, 1},
391    {"snet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
392    {"dnet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
393    {"stos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
394    {"dtos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
395    {"sttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
396    {"dttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
397    {"sipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
398    {"dipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
399    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
400    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
401    {"smac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
402    {"dmac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
403    {"svid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
404    {"dvid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
405    {"svpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
406    {"dvpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
407    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
408    {"inode", 5, ARGUS_ICMP_INDEX,       8,  4, 1},
409    {"sdsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
410    {"ddsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
411    {"sco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
412    {"dco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
413    {"sas",   3, ARGUS_ASN_INDEX,        4,  4, 1},
414    {"das",   3, ARGUS_ASN_INDEX,        8,  4, 1},
415    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
416    {"soui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
417    {"doui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
418 };
419 
420 
421 struct ArgusMaskStruct ArgusIBGlobalMaskDefs[ARGUS_MAX_MASK_LIST] = {
422    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
423    {"smpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
424    {"dmpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
425    {"svlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
426    {"dvlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
427    {"proto", 5, ARGUS_FLOW_INDEX,      12,  1, 1},
428    {"saddr", 5, ARGUS_FLOW_INDEX,       4,  4, 1},
429    {"sport", 5, ARGUS_FLOW_INDEX,      14,  2, 1},
430    {"daddr", 5, ARGUS_FLOW_INDEX,       8,  4, 1},
431    {"dport", 5, ARGUS_FLOW_INDEX,      16,  2, 1},
432    {"snet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
433    {"dnet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
434    {"stos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
435    {"dtos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
436    {"sttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
437    {"dttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
438    {"sipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
439    {"dipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
440    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
441    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
442    {"smac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
443    {"dmac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
444    {"svid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
445    {"dvid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
446    {"svpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
447    {"dvpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
448    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
449    {"inode", 5, ARGUS_ICMP_INDEX,       8,  4, 1},
450    {"sdsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
451    {"ddsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
452    {"sco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
453    {"dco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
454    {"sas",   3, ARGUS_ASN_INDEX,        4,  4, 1},
455    {"das",   3, ARGUS_ASN_INDEX,        8,  4, 1},
456    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
457    {"soui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
458    {"doui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
459 };
460 
461 
462 struct ArgusMaskStruct ArgusIBGlobalRevMaskDefs[ARGUS_MAX_MASK_LIST] = {
463    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
464    {"smpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
465    {"dmpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
466    {"svlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
467    {"dvlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
468    {"proto", 5, ARGUS_FLOW_INDEX,      12,  1, 1},
469    {"saddr", 5, ARGUS_FLOW_INDEX,       4,  4, 1},
470    {"sport", 5, ARGUS_FLOW_INDEX,      14,  2, 1},
471    {"daddr", 5, ARGUS_FLOW_INDEX,       8,  4, 1},
472    {"dport", 5, ARGUS_FLOW_INDEX,      16,  2, 1},
473    {"snet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
474    {"dnet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
475    {"stos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
476    {"dtos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
477    {"sttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
478    {"dttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
479    {"sipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
480    {"dipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
481    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
482    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
483    {"smac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
484    {"dmac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
485    {"svid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
486    {"dvid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
487    {"svpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
488    {"dvpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
489    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
490    {"inode", 5, ARGUS_ICMP_INDEX,       8,  4, 1},
491    {"sdsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
492    {"ddsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
493    {"sco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
494    {"dco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
495    {"sas",   3, ARGUS_ASN_INDEX,        4,  4, 1},
496    {"das",   3, ARGUS_ASN_INDEX,        8,  4, 1},
497    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
498 };
499 
500 
501 struct ArgusMaskStruct ArgusArpMaskDefs[ARGUS_MAX_MASK_LIST] = {
502    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
503    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
504    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
505    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
506    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
507    {"proto", 5, ARGUS_FLOW_INDEX,       2,  2, 1},
508    {"saddr", 5, ARGUS_FLOW_INDEX,      12,  4, 1},
509    {"sport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
510    {"daddr", 5, ARGUS_FLOW_INDEX,      16,  4, 1},
511    {"dport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
512    {"snet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
513    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
514    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
515    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
516    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
517    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
518    {"sipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
519    {"dipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
520    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
521    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
522    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
523    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
524    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
525    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
526    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
527    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
528    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
529    {"inode", 5, ARGUS_ICMP_INDEX,       8,  4, 1},
530    {"sdsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
531    {"ddsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
532    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
533    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
534    {"sas",   3, ARGUS_ASN_INDEX,        8,  4, 1},
535    {"das",   3, ARGUS_ASN_INDEX,        4,  4, 1},
536    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
537    {"soui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
538    {"doui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
539 };
540 
541 
542 
543 struct ArgusMaskStruct ArgusArpRevMaskDefs[ARGUS_MAX_MASK_LIST] = {
544    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
545    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
546    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
547    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
548    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
549    {"proto", 5, ARGUS_FLOW_INDEX,       2,  2, 1},
550    {"saddr", 5, ARGUS_FLOW_INDEX,      12,  4, 1},
551    {"sport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
552    {"daddr", 5, ARGUS_FLOW_INDEX,      16,  4, 1},
553    {"dport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
554    {"snet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
555    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
556    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
557    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
558    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
559    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
560    {"sipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
561    {"dipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
562    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
563    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
564    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
565    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
566    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
567    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
568    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
569    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
570    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
571    {"inode", 5, ARGUS_ICMP_INDEX,      24,  4, 1},
572    {"sdsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
573    {"ddsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
574    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
575    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
576    {"sas",   3, ARGUS_ASN_INDEX,        8,  4, 1},
577    {"das",   3, ARGUS_ASN_INDEX,        4,  2, 1},
578    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
579    {"soui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
580    {"doui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
581 };
582 
583 
584 struct ArgusMaskStruct ArgusRarpMaskDefs[ARGUS_MAX_MASK_LIST] = {
585    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
586    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
587    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
588    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
589    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
590    {"proto", 5, ARGUS_FLOW_INDEX,       4,  2, 1},
591    {"saddr", 5, ARGUS_FLOW_INDEX,      12,  4, 1},
592    {"sport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
593    {"daddr", 5, ARGUS_FLOW_INDEX,      16,  4, 1},
594    {"dport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
595    {"snet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
596    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
597    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
598    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
599    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
600    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
601    {"sipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
602    {"dipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
603    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
604    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
605    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
606    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
607    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
608    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
609    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
610    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
611    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
612    {"inode", 5, ARGUS_ICMP_INDEX,      24,  4, 1},
613    {"sdsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
614    {"ddsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
615    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
616    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
617    {"sas",   3, ARGUS_ASN_INDEX,        8,  4, 1},
618    {"das",   3, ARGUS_ASN_INDEX,        4,  4, 1},
619    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
620    {"soui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
621    {"doui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
622 };
623 
624 
625 struct ArgusMaskStruct ArgusRarpRevMaskDefs[ARGUS_MAX_MASK_LIST] = {
626    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
627    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
628    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
629    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
630    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
631    {"proto", 5, ARGUS_FLOW_INDEX,       4,  2, 1},
632    {"saddr", 5, ARGUS_FLOW_INDEX,      12,  4, 1},
633    {"sport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
634    {"daddr", 5, ARGUS_FLOW_INDEX,      16,  4, 1},
635    {"dport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
636    {"snet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
637    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
638    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
639    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
640    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
641    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
642    {"sipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
643    {"dipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
644    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
645    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
646    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
647    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
648    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
649    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
650    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
651    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
652    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
653    {"inode", 5, ARGUS_ICMP_INDEX,      24,  4, 1},
654    {"sdsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
655    {"ddsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
656    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
657    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
658    {"sas",   3, ARGUS_ASN_INDEX,        8,  4, 1},
659    {"das",   3, ARGUS_ASN_INDEX,        4,  4, 1},
660    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
661    {"soui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
662    {"doui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
663 };
664 
665 
666 struct ArgusMaskStruct ArgusEtherMaskDefs[ARGUS_MAX_MASK_LIST] = {
667    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
668    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
669    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
670    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
671    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
672    {"proto", 5, ARGUS_FLOW_INDEX,       4,  2, 1},
673    {"saddr", 5, ARGUS_FLOW_INDEX,      12,  6, 1},
674    {"sport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
675    {"daddr", 5, ARGUS_FLOW_INDEX,      16,  6, 1},
676    {"dport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
677    {"snet",  4, ARGUS_FLOW_INDEX,       8,  6, 1},
678    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  6, 1},
679    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
680    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
681    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
682    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
683    {"sipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
684    {"dipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
685    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
686    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
687    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
688    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
689    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
690    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
691    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
692    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
693    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
694    {"inode", 5, ARGUS_ICMP_INDEX,      24,  4, 1},
695    {"sdsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
696    {"ddsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
697    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
698    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
699    {"sas",   3, ARGUS_ASN_INDEX,        8,  4, 1},
700    {"das",   3, ARGUS_ASN_INDEX,        4,  4, 1},
701    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
702    {"soui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
703    {"doui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
704 };
705 
706 struct ArgusMaskStruct ArgusEtherRevMaskDefs[ARGUS_MAX_MASK_LIST] = {
707    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
708    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
709    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
710    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
711    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
712    {"proto", 5, ARGUS_FLOW_INDEX,       4,  2, 1},
713    {"saddr", 5, ARGUS_FLOW_INDEX,      12,  6, 1},
714    {"sport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
715    {"daddr", 5, ARGUS_FLOW_INDEX,      16,  6, 1},
716    {"dport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
717    {"snet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
718    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
719    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
720    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
721    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
722    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
723    {"sipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
724    {"dipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
725    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
726    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
727    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
728    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
729    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
730    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
731    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
732    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
733    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
734    {"inode", 5, ARGUS_ICMP_INDEX,      24,  4, 1},
735    {"sdsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
736    {"ddsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
737    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
738    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
739    {"sas",   3, ARGUS_ASN_INDEX,        8,  4, 1},
740    {"das",   3, ARGUS_ASN_INDEX,        4,  4, 1},
741    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
742    {"soui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
743    {"doui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
744 };
745 
746 
747 struct ArgusMaskStruct ArgusWlanMaskDefs[ARGUS_MAX_MASK_LIST] = {
748    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
749    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
750    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
751    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
752    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
753    {"proto", 5, ARGUS_FLOW_INDEX,       4,  2, 1},
754    {"saddr", 5, ARGUS_FLOW_INDEX,      12,  6, 1},
755    {"sport", 5, ARGUS_FLOW_INDEX,      32, 32, 1},
756    {"daddr", 5, ARGUS_FLOW_INDEX,      16,  6, 1},
757    {"dport", 5, ARGUS_FLOW_INDEX,      24,  6, 1},
758    {"snet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
759    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
760    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
761    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
762    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
763    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
764    {"sipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
765    {"dipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
766    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
767    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
768    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
769    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
770    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
771    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
772    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
773    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
774    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
775    {"inode", 5, ARGUS_ICMP_INDEX,      24,  4, 1},
776    {"sdsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
777    {"ddsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
778    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
779    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
780    {"sas",   3, ARGUS_ASN_INDEX,        8,  4, 1},
781    {"das",   3, ARGUS_ASN_INDEX,        4,  4, 1},
782    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
783 };
784 
785 struct ArgusMaskStruct ArgusWlanRevMaskDefs[ARGUS_MAX_MASK_LIST] = {
786    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
787    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
788    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
789    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
790    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
791    {"proto", 5, ARGUS_FLOW_INDEX,       4,  2, 1},
792    {"saddr", 5, ARGUS_FLOW_INDEX,      12,  4, 1},
793    {"sport", 5, ARGUS_FLOW_INDEX,      32, 32, 1},
794    {"daddr", 5, ARGUS_FLOW_INDEX,      16,  4, 1},
795    {"dport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
796    {"snet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
797    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
798    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
799    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
800    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
801    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
802    {"sipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
803    {"dipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
804    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
805    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
806    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
807    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
808    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
809    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
810    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
811    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
812    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
813    {"inode", 5, ARGUS_ICMP_INDEX,      24,  4, 1},
814    {"sdsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
815    {"ddsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
816    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
817    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
818    {"sas",   3, ARGUS_ASN_INDEX,        8,  4, 1},
819    {"das",   3, ARGUS_ASN_INDEX,        4,  4, 1},
820    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
821    {"soui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
822    {"doui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
823 };
824 
825 struct ArgusMaskStruct ArgusIsisMaskDefs[ARGUS_MAX_MASK_LIST] = {
826    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
827    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
828    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
829    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
830    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
831    {"proto", 5, ARGUS_FLOW_INDEX,       4,  2, 1},
832    {"saddr", 5, ARGUS_FLOW_INDEX,      12,  4, 1},
833    {"sport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
834    {"daddr", 5, ARGUS_FLOW_INDEX,      16,  4, 1},
835    {"dport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
836    {"snet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
837    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
838    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
839    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
840    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
841    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
842    {"sipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
843    {"dipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
844    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
845    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
846    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
847    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
848    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
849    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
850    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
851    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
852    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
853    {"inode", 5, ARGUS_ICMP_INDEX,      24,  4, 1},
854    {"sdsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
855    {"ddsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
856    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
857    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
858    {"sas",   3, ARGUS_ASN_INDEX,        8,  4, 1},
859    {"das",   3, ARGUS_ASN_INDEX,        4,  4, 1},
860    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
861    {"soui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
862    {"doui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
863 };
864 
865 
866 struct ArgusMaskStruct ArgusIsisRevMaskDefs[ARGUS_MAX_MASK_LIST] = {
867    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
868    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
869    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
870    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
871    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
872    {"proto", 5, ARGUS_FLOW_INDEX,       4,  2, 1},
873    {"saddr", 5, ARGUS_FLOW_INDEX,      12,  4, 1},
874    {"sport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
875    {"daddr", 5, ARGUS_FLOW_INDEX,      16,  4, 1},
876    {"dport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
877    {"snet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
878    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
879    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
880    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
881    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
882    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
883    {"sipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
884    {"dipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
885    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
886    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
887    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
888    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
889    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
890    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
891    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
892    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
893    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
894    {"inode", 5, ARGUS_ICMP_INDEX,      24,  4, 1},
895    {"sdsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
896    {"ddsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
897    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
898    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
899    {"sas",   3, ARGUS_ASN_INDEX,        8,  4, 1},
900    {"das",   3, ARGUS_ASN_INDEX,        4,  4, 1},
901    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
902    {"soui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
903    {"doui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
904 };
905 
906 
907 struct ArgusMaskStruct ArgusIsisHelloMaskDefs[ARGUS_MAX_MASK_LIST] = {
908    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
909    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
910    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
911    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
912    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
913    {"proto", 5, ARGUS_FLOW_INDEX,       4,  2, 1},
914    {"saddr", 5, ARGUS_FLOW_INDEX,      12,  4, 1},
915    {"sport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
916    {"daddr", 5, ARGUS_FLOW_INDEX,      16,  4, 1},
917    {"dport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
918    {"snet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
919    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
920    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
921    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
922    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
923    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
924    {"sipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
925    {"dipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
926    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
927    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
928    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
929    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
930    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
931    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
932    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
933    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
934    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
935    {"inode", 5, ARGUS_ICMP_INDEX,      24,  4, 1},
936    {"sdsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
937    {"ddsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
938    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
939    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
940    {"sas",   3, ARGUS_ASN_INDEX,        8,  4, 1},
941    {"das",   3, ARGUS_ASN_INDEX,        4,  4, 1},
942    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
943    {"soui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
944    {"doui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
945 };
946 
947 struct ArgusMaskStruct ArgusIsisLspMaskDefs[ARGUS_MAX_MASK_LIST] = {
948    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
949    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
950    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
951    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
952    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
953    {"proto", 5, ARGUS_FLOW_INDEX,       4,  2, 1},
954    {"saddr", 5, ARGUS_FLOW_INDEX,      12,  4, 1},
955    {"sport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
956    {"daddr", 5, ARGUS_FLOW_INDEX,      16,  4, 1},
957    {"dport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
958    {"snet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
959    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
960    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
961    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
962    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
963    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
964    {"sipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
965    {"dipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
966    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
967    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
968    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
969    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
970    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
971    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
972    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
973    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
974    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
975    {"inode", 5, ARGUS_ICMP_INDEX,      24,  4, 1},
976    {"sdsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
977    {"ddsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
978    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
979    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
980    {"sas",   3, ARGUS_ASN_INDEX,        8,  4, 1},
981    {"das",   3, ARGUS_ASN_INDEX,        4,  4, 1},
982    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
983    {"soui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
984    {"doui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
985 };
986 
987 
988 struct ArgusMaskStruct ArgusIsisCsnpMaskDefs[ARGUS_MAX_MASK_LIST] = {
989    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
990    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
991    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
992    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
993    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
994    {"proto", 5, ARGUS_FLOW_INDEX,       4,  2, 1},
995    {"saddr", 5, ARGUS_FLOW_INDEX,      12,  4, 1},
996    {"sport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
997    {"daddr", 5, ARGUS_FLOW_INDEX,      16,  4, 1},
998    {"dport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
999    {"snet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
1000    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
1001    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
1002    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
1003    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
1004    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
1005    {"sipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
1006    {"dipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
1007    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
1008    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
1009    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
1010    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
1011    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
1012    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
1013    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
1014    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
1015    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
1016    {"inode", 5, ARGUS_ICMP_INDEX,      24,  4, 1},
1017    {"sdsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
1018    {"ddsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
1019    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
1020    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
1021    {"sas",   3, ARGUS_ASN_INDEX,        8,  4, 1},
1022    {"das",   3, ARGUS_ASN_INDEX,        4,  4, 1},
1023    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
1024    {"soui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
1025    {"doui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
1026 };
1027 
1028 
1029 struct ArgusMaskStruct ArgusIsisPsnpMaskDefs[ARGUS_MAX_MASK_LIST] = {
1030    {"srcid", 5, ARGUS_TRANSPORT_INDEX,  4,  4, 1},
1031    {"smpls", 5, ARGUS_MPLS_INDEX,       8,  4, 1},
1032    {"dmpls", 5, ARGUS_MPLS_INDEX,       4,  4, 1},
1033    {"svlan", 5, ARGUS_VLAN_INDEX,       6,  2, 1},
1034    {"dvlan", 5, ARGUS_VLAN_INDEX,       4,  2, 1},
1035    {"proto", 5, ARGUS_FLOW_INDEX,       4,  2, 1},
1036    {"saddr", 5, ARGUS_FLOW_INDEX,      12,  4, 1},
1037    {"sport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
1038    {"daddr", 5, ARGUS_FLOW_INDEX,      16,  4, 1},
1039    {"dport", 5, ARGUS_FLOW_INDEX,       0,  0, 1},
1040    {"snet",  4, ARGUS_FLOW_INDEX,       8,  4, 1},
1041    {"dnet",  4, ARGUS_FLOW_INDEX,       4,  4, 1},
1042    {"stos",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
1043    {"dtos",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
1044    {"sttl",  4, ARGUS_IPATTR_INDEX,    12,  1, 1},
1045    {"dttl",  4, ARGUS_IPATTR_INDEX,     4,  1, 1},
1046    {"sipid", 4, ARGUS_IPATTR_INDEX,    14,  2, 1},
1047    {"dipid", 4, ARGUS_IPATTR_INDEX,     6,  2, 1},
1048    {"stcpb", 5, ARGUS_NETWORK_INDEX,  252,  4, 1},
1049    {"dtcpb", 5, ARGUS_NETWORK_INDEX,  300,  4, 1},
1050    {"smac",  4, ARGUS_MAC_INDEX,       10,  6, 1},
1051    {"dmac",  4, ARGUS_MAC_INDEX,        4,  6, 1},
1052    {"svid",  4, ARGUS_VLAN_INDEX,       6,  2, 1},
1053    {"dvid",  4, ARGUS_VLAN_INDEX,       4,  2, 1},
1054    {"svpri", 5, ARGUS_VLAN_INDEX,       6,  1, 1},
1055    {"dvpri", 5, ARGUS_VLAN_INDEX,       4,  1, 1},
1056    {"svc",   3, ARGUS_LABEL_INDEX,      4, 16, 1},
1057    {"inode", 5, ARGUS_ICMP_INDEX,      24,  4, 1},
1058    {"sdsb",  4, ARGUS_IPATTR_INDEX,    13,  1, 1},
1059    {"ddsb",  4, ARGUS_IPATTR_INDEX,     5,  1, 1},
1060    {"sco",   3, ARGUS_COCODE_INDEX,     6,  2, 1},
1061    {"dco",   3, ARGUS_COCODE_INDEX,     4,  2, 1},
1062    {"sas",   3, ARGUS_ASN_INDEX,        8,  4, 1},
1063    {"das",   3, ARGUS_ASN_INDEX,        4,  4, 1},
1064    {"ias",   3, ARGUS_ASN_INDEX,       12,  4, 1},
1065    {"soui",  3, ARGUS_MAC_INDEX,       10,  3, 1},
1066    {"doui",  3, ARGUS_MAC_INDEX,        4,  3, 1},
1067 };
1068 
1069 struct ArgusAggregatorStruct *ArgusNewAggregator (struct ArgusParserStruct *, char *, int type);
1070 struct ArgusAggregatorStruct *ArgusCopyAggregator (struct ArgusAggregatorStruct *);
1071 void ArgusDeleteAggregator (struct ArgusParserStruct *, struct ArgusAggregatorStruct *);
1072 struct RaPolicyStruct *RaFlowModelOverRides(struct ArgusAggregatorStruct *, struct ArgusRecordStruct *);
1073 void ArgusGenerateNewFlow(struct ArgusAggregatorStruct *, struct ArgusRecordStruct *);
1074 
1075 unsigned int ArgusMergeAddress(unsigned int *, unsigned int *, int, int, unsigned char *);
1076 void ArgusMergeRecords (struct ArgusAggregatorStruct *, struct ArgusRecordStruct *, struct ArgusRecordStruct *);
1077 void ArgusIntersectRecords (struct ArgusAggregatorStruct *, struct ArgusRecordStruct *, struct ArgusRecordStruct *);
1078 
1079 #else
1080 extern struct ArgusMaskStruct ArgusIpV4MaskDefs[ARGUS_MAX_MASK_LIST];
1081 extern struct ArgusMaskStruct ArgusIpV6MaskDefs[ARGUS_MAX_MASK_LIST];
1082 extern struct ArgusMaskStruct ArgusEtherMaskDefs[ARGUS_MAX_MASK_LIST];
1083 extern struct ArgusMaskStruct ArgusArpMaskDefs[ARGUS_MAX_MASK_LIST];
1084 
1085 extern struct ArgusMaskStruct ArgusIpV4RevMaskDefs[ARGUS_MAX_MASK_LIST];
1086 extern struct ArgusMaskStruct ArgusIpV6RevMaskDefs[ARGUS_MAX_MASK_LIST];
1087 extern struct ArgusMaskStruct ArgusEtherRevMaskDefs[ARGUS_MAX_MASK_LIST];
1088 extern struct ArgusMaskStruct ArgusArpRevMaskDefs[ARGUS_MAX_MASK_LIST];
1089 
1090 extern struct ArgusAggregatorStruct *ArgusNewAggregator (struct ArgusParserStruct *, char *, int type);
1091 extern struct ArgusAggregatorStruct *ArgusCopyAggregator (struct ArgusAggregatorStruct *);
1092 extern void ArgusDeleteAggregator (struct ArgusParserStruct *, struct ArgusAggregatorStruct *);
1093 extern struct RaPolicyStruct *RaFlowModelOverRides(struct ArgusAggregatorStruct *, struct ArgusRecordStruct *);
1094 extern void ArgusGenerateNewFlow(struct ArgusAggregatorStruct *, struct ArgusRecordStruct *);
1095 
1096 extern unsigned int ArgusMergeAddress(unsigned int *, unsigned int *, int, int, unsigned char *);
1097 extern void ArgusMergeRecords (struct ArgusAggregatorStruct *, struct ArgusRecordStruct *, struct ArgusRecordStruct *);
1098 extern void ArgusIntersectRecords (struct ArgusAggregatorStruct *, struct ArgusRecordStruct *, struct ArgusRecordStruct *);
1099 
1100 #endif
1101 #ifdef __cplusplus
1102 }
1103 #endif
1104 #endif
1105 
1106 
1107