1 /*
2  * Argus Software
3  * Copyright (c) 2000-2015 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/argus/include/argus_def.h#49 $
24  * $DateTime: 2015/07/02 09:02:44 $
25  * $Change: 3029 $
26  */
27 
28 /* Argus_def.h */
29 /*
30  * Argus_def.h is a reimplementation of the version 2 argus_def.h
31  * for version 3.  The new record structure and data types
32  * are designed to provide flexible and efficient data
33  * representation and transport; motivated to suport IPv6.
34  * While the intent is to provide a clean room style reworking
35  * of the complete argus architecture and data model, there is
36  * continuity and compatibility with version 2 Argus data.
37  *
38  * The basic properties retained are a common fixed size
39  * initial MAR *.  The prinicpal difference is a 4 byte
40  * ArgusRecord header with most data integrated into the
41  * Data Supplement Records (DSR), support for 8, 16, 32 and
42  * 64 bit counters, and new flow descriptor strategies.
43  *
44  */
45 
46 #ifndef Argus_def_h
47 #define Argus_def_h
48 
49 #ifdef __cplusplus
50 extern "C" {
51 #endif
52 /*
53    argus constants
54 */
55 
56 #define MINOR_VERSION_0    0
57 #define MINOR_VERSION_1    1
58 #define MINOR_VERSION_2    2
59 #define MINOR_VERSION_3    3
60 #define MINOR_VERSION_4    4
61 #define MINOR_VERSION_5    5
62 #define MINOR_VERSION_6    6
63 #define MINOR_VERSION_7    7
64 #define MINOR_VERSION_8    8
65 #define MINOR_VERSION_9    9
66 #define MAJOR_VERSION_1    1
67 #define MAJOR_VERSION_2    2
68 #define MAJOR_VERSION_3    3
69 #define MAJOR_VERSION_4    4
70 #define MAJOR_VERSION_5    5
71 #define VERSION_MAJOR      MAJOR_VERSION_3
72 #define VERSION_MINOR      MINOR_VERSION_0
73 
74 #ifndef MAXPATHNAMELEN
75 #define MAXPATHNAMELEN          BUFSIZ
76 #endif
77 
78 /*
79    Argus Record Format
80       The Argus has a short 32-bit header and then a collection
81       of Data Specific Records, which have a TLV structure.
82       This allows for a lot of options in representing data.
83       The goal is to support explicit data alignment, extended
84       key and non-key attributes, removeable transport identifiers,
85       efficently reporting unidirectional flows, and supporting
86       multi-length counters in the metrics.
87 
88     0                   1                   2                   3
89     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
90    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
91    |                      Argus Record Header                      |
92    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
93    |                    Argus Record Transport                     | O
94    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ p
95    |                                                               | t
96    |                     Argus Record Flow Key                     | i
97    |                                                               | o
98    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ n
99    |                   Argus Record Flow Non-Key                   | a
100    |                          Attributes                           | l
101    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
102    |                                                               | D
103    |                          Argus Metrics                        | S
104    |                               .                               | R
105    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ s
106 
107 */
108 
109 /*
110    Argus Record Header Format
111      The argus record is a 32-bit header that specifies the
112      type of record, MAR or FAR, the standard cause indicator,
113      a shorter version number, starting with 3, and a Options
114      field.  The Length field, which is the number of 4-byte
115      integers in the record,  supports 64K size argus records.
116 
117     0                   1                   2                   3
118     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
119    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
120    |  Type |  Vers | Cause |  Opt  |             Length            |
121    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
122 
123 */
124 
125 #define ARGUS_MAXRECORDSIZE			0x40000
126 
127 /*
128    Argus  Record Header Type Field
129 
130     0                   1                   2                   3
131     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
132    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
133    |  Type |                                                       |
134    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
135 
136                          Argus Version Record Field
137           Note that one tick mark represents one bit position.
138 */
139 
140 /* Argus  Record Type */
141 
142 #define ARGUS_MAR				0x80   /* Normal Argus Management Record */
143 
144 #define ARGUS_FAR 				0x10   /* Normal Argus Data Record */
145 
146 #define ARGUS_INDEX   				0x20   /* New Argus Index Record */
147 #define ARGUS_NETFLOW  				0x30   /* Argus Cisco Netflow Originated Record */
148 #define ARGUS_EVENT				0x40   /* New Argus Event/Message Record */
149 #define ARGUS_DATASUP				0x50   /* New Supplemental Argus Data Record */
150 #define ARGUS_ARCHIVAL				0x60   /* New Archival Argus Data Record */
151 
152 
153 /*
154 
155    Argus Record Header Version Field
156 
157     0                   1                   2                   3
158     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
159    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
160    |       |  Vers |                                               |
161    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
162 
163                       Argus Version Record Field
164           Note that one tick mark represents one bit position.
165 */
166 
167 
168 /* Record Version (Ver) */
169 
170 #define ARGUS_VERSION_1				0x01	/* Version 1 */
171 #define ARGUS_VERSION_2				0x02	/* Version 2 */
172 #define ARGUS_VERSION_3				0x03	/* Version 3 */
173 #define ARGUS_VERSION_4				0x04	/* Version 4 */
174 
175 #define ARGUS_VERSION				ARGUS_VERSION_3	/* Version 3 */
176 
177 
178 /*
179    Argus Record Header Version Field
180 
181     0                   1                   2                   3
182     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
183    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
184    |               | Cause |                                       |
185    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
186 
187                          Argus Version Record Field
188           Note that one tick mark represents one bit position.
189 */
190 
191 
192 /* Argus Record Cause */
193 
194 #define ARGUS_START				0x10   /* Initial Record */
195 #define ARGUS_STATUS				0x20   /* Continuation Record*/
196 #define ARGUS_STOP				0x30   /* Closed/Terminating Record */
197 #define ARGUS_TIMEOUT				0x40   /* Record Timed Out */
198 #define ARGUS_FLUSH				0x50   /* System Record Flush */
199 #define ARGUS_SHUTDOWN				0x60   /* Administrative Shutdown */
200 #define ARGUS_CLOSED				0x70   /* Argus Initiates Shutdown */
201 
202 #define ARGUS_ERROR				0x80   /* Error - Major Problem */
203 #define ARGUS_SUPPLEMENTAL			0x90   /* Argus Supplemental Record */
204 
205 /*
206    Argus  Record Header Option Field
207 
208     0                   1                   2                   3
209     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
210    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
211    |                       |  Opt  |                               |
212    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
213 
214                         Argus Option Record Field
215           Note that one tick mark represents one bit position.
216 
217    The values in the Argus Option Field are specific to each cause.
218 */
219 
220 /*
221    Argus Start Option Messages
222 */
223 /*
224    Argus Status Option Messages
225 */
226 /*
227    Argus Supplemental Option Messages
228 */
229 /*
230    Argus Stop Option Messages
231 */
232 /*
233    Argus Timeout Option Messages
234 */
235 /*
236    Argus Flush Option Messages
237 */
238 /*
239    Argus Shutdown Option Messages
240 */
241 /*
242    Argus Error Option Messages
243 */
244 
245 #define ARGUS_ACCESSDENIED			0x01
246 #define ARGUS_MAXLISTENEXCD			0x02
247 
248 
249 /*
250    Argus  Record Header Length Field
251       Number of 32-bit longwords, including the header.
252       Unsigned 16 bit integer.
253 
254     0                   1                   2                   3
255     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
256    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
257    |                               |             Length            |
258    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
259 
260                         Argus Length Record Field
261           Note that one tick mark represents one bit position.
262 */
263 
264 
265 #define MAXARGUSRECORD           		0x40000
266 #define MAXSTRLEN               		4096
267 
268 
269 /* Argus Data
270       Argus Data is a collection of Argus Data Specific Records (DSRs)
271 
272     0                   1                   2                   3
273     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
274    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
275    |                                                               |
276    |                  Argus Data Specific Records                  |
277    |                               .                               |
278    |                               .                               |
279    |                                                               |
280    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
281 
282                         Argus Data Record Field
283           Note that one tick mark represents one bit position.
284 */
285 
286 
287 /* Argus MAR Record Specific Defines */
288 
289 #define ARGUS_COOKIE				0xE5712DCB
290 #define ARGUS_V3_COOKIE				ARGUS_COOKIE
291 #define ARGUS_V2_COOKIE				0xE5617ACB
292 #define ARGUS_SASL_AUTHENTICATE			0x00001000
293 
294 #define ARGUS_IDIS_STRING			0x00200000
295 #define ARGUS_IDIS_INT				0x00400000
296 #define ARGUS_IDIS_IPV4				0x00800000
297 
298 
299 /* Argus Record Data Specific Record (DSR) Types */
300 
301 #define ARGUSMAXDSRTYPE				21
302 
303 /* Argus Data Specific Record (DSR) Formats
304       There are two types of DSR, 1) a Type Value (TV) record
305       with an explicit length of 4 bytes, and 2) a Type
306       Length Value (TLV) record, that is longer than 4 bytes
307       and supports variable length records.
308 
309       The fixed length record is distinquished from the variable
310       length record with the most significant bit of the Type
311       Field set to 1 (>= 0x80).
312 
313       All Argus DSRs are 32-bit aligned.
314 
315     0                   1                   2                   3
316     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
317    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
318    |0|    Type     |    SubType    |   Qualifier   |     Length    |
319    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
320    |                                                               |
321    |                         Argus DSR Data                         |
322    |                                                               |
323    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
324 
325     0                   1                   2                   3
326     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
327    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
328    |1|    Type     |    SubType    |          Argus DSR Data        |
329    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
330 
331                  Argus Data Specific Record (DSR) Field
332           Note that one tick mark represents one bit position.
333 */
334 
335 /*
336    Argus Record Data Type Field
337       The DSR Type Field specifies the type and format of the
338       DSR.  The most significant bit indicates if the DSR is a
339       TV or TLV type.  A TV structure has a specific length of
340       4 bytes, which a TLV has a variable length indicator.
341       The other bits specify highest level semantics for the DSR.
342 
343     0                   1                   2                   3
344     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
345    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
346    |x|   Type      |                                               |
347    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
348 
349 */
350 
351 #define ARGUS_IMMEDIATE_DATA			0x80
352 
353 #define ARGUS_TRANSPORT_DSR			0x01
354 #define ARGUS_FLOW_DSR				0x02
355 #define ARGUS_TIME_DSR				0x03
356 
357 #define ARGUS_METER_DSR				0x10
358 #define ARGUS_PSIZE_DSR                         0x12
359 
360 #define ARGUS_ENCAPS_DSR			0x20
361 #define ARGUS_NETWORK_DSR			0x30
362 #define ARGUS_ICMP_DSR				0x34
363 
364 #define ARGUS_IB_DSR                            0x35
365 #define ARGUS_ISIS_DSR                          0x36
366 #define ARGUS_RSVP_DSR                          0x37
367 #define ARGUS_ESP_DSR                           0x38
368 #define ARGUS_LCP_DSR                           0x39
369 
370 #define ARGUS_DATA_DSR				0x50
371 #define ARGUS_AGR_DSR				0x60
372 #define ARGUS_COR_DSR				0x62
373 #define ARGUS_COCODE_DSR			0x64
374 #define ARGUS_LABEL_DSR				0x66
375 
376 
377 
378 /*
379    Argus Record Data SubType Field
380 
381       The DSR SubType Field indicates the specific types for
382       this DSR, and is specific for the DSR Type.  The most
383       significant bit of the subtype field indicates the width
384       of the length, when it is present.
385 
386     0                   1                   2                   3
387     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
388    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
389    |0|             |x|  SubType    |                               |
390    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
391 
392     0                   1                   2                   3
393     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
394    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
395    |1|             |0|  SubType    |                               |
396    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
397 
398 */
399 
400 #define ARGUS_LEN_16BITS                         0x80
401 #define ARGUS_TIMEADJUST                         0x01
402 
403 /*
404    Argus Record Data Qualifier Field
405       TLV Data Records that have an 8 bit length field support an
406       8-bit  Qualifier field, which is used to convey additional semantics
407       for the DSR format and contents.  In some situations, the qualifier
408       may be used to further specify the actual DSR data format, in others
409       it may provide addition semantics, or it can be used to provide the
410       actual 8-bit data.
411 
412       How the Qualifier is parsed and used is specific to the
413       DSR Type and SubType.
414 
415     0                   1                   2                   3
416     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
417    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
418    |0|             |0|             |   Qualifier   |               |
419    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
420 
421 */
422 
423 
424 /* Argus DSR Qualifier */
425 
426 #define ARGUS_SRC				0x01
427 #define ARGUS_DST				0x02
428 #define ARGUS_SRC_CHANGED                       0x04
429 #define ARGUS_DST_CHANGED                       0x08
430 #define ARGUS_SRC_INT_CHANGED                   0x10
431 #define ARGUS_DST_INT_CHANGED                   0x20
432 
433 #define ARGUS_TYPE_IPV4                         0x01
434 #define ARGUS_TYPE_IPV6                         0x02
435 #define ARGUS_TYPE_ETHER                        0x03
436 #define ARGUS_TYPE_ARP                          0x04
437 #define ARGUS_TYPE_RARP                         0x05
438 #define ARGUS_TYPE_MPLS                         0x06
439 #define ARGUS_TYPE_VLAN                         0x07
440 #define ARGUS_TYPE_WLAN                         0x08
441 #define ARGUS_TYPE_LCP                          0x09
442 #define ARGUS_TYPE_ISIS                         0x0A
443 #define ARGUS_TYPE_IB_LOCAL                     0x0B
444 #define ARGUS_TYPE_IB_GLOBAL                    0x0C
445 
446 #define ARGUS_TYPE_UDT                          0x0D
447 
448 #define ARGUS_TYPE_INT				0x20
449 #define ARGUS_TYPE_STRING			0x21
450 
451 
452 /* Flow Descriptor Option Qualifiers */
453 #define ARGUS_ANON				0x20
454 
455 /* Record Descriptor Qualifiers */
456 #define ARGUS_MERGED				0x40
457 
458 
459 /*
460    Argus Record Data Length Field
461       Number of 32-bit longwords, including the header.
462       Data records that have a 0 as the most significant
463       bit support variable length records, and as a result
464       have a length field.  Records with a 1 as the most
465       significant bit are fixed length 4 byte records,
466       and thus do not have a length field.
467 
468     0                   1                   2                   3
469     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
470    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
471    |0|                                             |    Length     |
472    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
473 
474       The Length field can equal 1.
475 */
476 
477 #define ARGUS_MAXDSRLEN				0xFF
478 
479 
480 /*
481    Argus Data Transport DSR
482       The Transport DSR provides source probe identification
483       and optionally a probe transport specific sequence number.
484       The probe identifier can be a number of types including
485       an IPv4, IPv6 address, an ethernet address, a unsigned
486       32-bit integer, and/or an arbitrary string, such as a URL.
487 
488       The probe identifier should be unique throughout the
489       monitoring domain.
490 */
491 
492 #define ARGUS_MAR_INDEX				0
493 #define ARGUS_EVENT_INDEX			0
494 
495 /* Argus Transport DSR Type */
496 #define ARGUS_TRANSPORT_INDEX			0
497 
498 /* Argus Transport DSR SubType */
499 #define ARGUS_SRCID				0x01
500 #define ARGUS_SEQ				0x02
501 
502 /* Argus Transport DSR Qualifier */
503 /*
504    ARGUS_TYPE_IPV4
505    ARGUS_TYPE_IPV6
506    TAM_TYPE_ETHER
507    ARGUS_TYPE_INT
508    ARGUS_TYPE_STRING
509 
510     ARGUS_SRCID  (with IPV4ADDR as the ID)
511     0                   1                   2                   3
512     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
513    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
514    |     0x01      |      0x01     |      0x01     |      0x02     |
515    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
516    |                    Argus Source Identifier                     |
517    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
518 
519     ARGUS_SRCID  (with IPV6ADDR as the ID)
520     0                   1                   2                   3
521     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
522    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
523    |     0x01      |      0x01     |      0x02     |      0x05     |
524    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
525    |                                                               |
526    |                    Argus Source Identifier                     |
527    |                                                               |
528    |                                                               |
529    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
530 
531     ARGUS_SRCID | ARGUS_SEQ (with 32-bin unsigned int as ID)
532     0                   1                   2                   3
533     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
534    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
535    |     0x01      |      0x03     |      0x03     |      0x03     |
536    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
537    |                    Argus Source Identifier                     |
538    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
539    |                        Sequence Number                        |
540    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
541 
542     ARGUS_SRCID | ARGUS_SEQ  (with STRING as ID)
543     0                   1                   2                   3
544     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
545    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
546    |     0x01      |      0x03     |      0x11     |      0x05     |
547    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
548    |                    Argus Source Identifier                     |
549    |                                                               |
550    |                               +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
551    |                               |              PAD              |
552    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
553    |                        Sequence Number                        |
554    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
555 
556                      Argus Transport Record Field
557           Note that one tick mark represents one bit position.
558 */
559 
560 
561 /*
562    Argus Time Descriptor DSR
563        The Argus Time Descriptor is an optional DSR that specifies
564        time for packet related events.  These can represent time
565        ranges, single timestamps, or relative timestamps.  If
566        relative timestamps are used in an Argus record, there must
567        be only one absolute timestamp to act as the unambiguous
568        reference, and this should be the first timestamp in the
569        record.  This absolute reference can stand alone or be
570        included in a composite structure that also contains
571        relative time references.  The scale must match, or there
572        is an error.
573 
574        Unsigned 32-bit uSec relative time references can handle
575        up to 71.58278 minutes, and nSec relative time refereces
576        can handle up to 4.294967296 seconds, however there are
577        many network events that can exceed these time ranges,
578        and so when needed, absolute time ranges will be used.
579 
580        Flows are bounded in time with single packet events having
581        a single reference, and multiple packet flows having
582        additional time boundary references.
583 
584        In the case of uni-directional multi-packet flows, a
585        time range indicates the time for the occurence of the
586        first and last measured event for that flow.  In bi-directional
587        flows, the strategy is to represent the metrics as two uni-
588        directional flows bound together by the flow descriptors,
589        and some state.  This strategy impacts how time will be
590        reported.
591 
592        Each uni-directional flow can be composed of a single packet
593        event or a multi-packet event, so there is a requirement
594        to support up to 4 timestamps in a given record.
595 
596 */
597 
598 
599 /* Argus Time Descriptor DSR Types */
600 #define ARGUS_TIME_INDEX				2
601 
602 
603 /* Argus Time Descriptor DSR SubTypes */
604 #define ARGUS_TIME_ABSOLUTE_TIMESTAMP		0x01
605 #define ARGUS_TIME_ABSOLUTE_RANGE		0x02
606 #define ARGUS_TIME_ABSOLUTE_RELATIVE_RANGE	0x03
607 #define ARGUS_TIME_RELATIVE_TIMESTAMP		0x04
608 #define ARGUS_TIME_RELATIVE_RANGE		0x05
609 
610 #define ARGUS_TIME_SRC_START                    0x08
611 #define ARGUS_TIME_SRC_END                      0x10
612 #define ARGUS_TIME_DST_START                    0x20
613 #define ARGUS_TIME_DST_END                      0x40
614 
615 #define ARGUS_TIME_MASK (ARGUS_TIME_SRC_START | ARGUS_TIME_DST_START | ARGUS_TIME_SRC_END | ARGUS_TIME_DST_END)
616 
617 
618 /* Argus Flow Descriptor DSR Qualifiers */
619 
620 #define ARGUS_TYPE_UTC_MICROSECONDS		0x18
621 #define ARGUS_TYPE_UTC_NANOSECONDS		0x19
622 #define ARGUS_TYPE_MICROSECONDS			0x1A
623 #define ARGUS_TYPE_NANOSECONDS			0x1B
624 
625 /*
626     0                   1                   2                   3
627     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
628    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
629    |     0x03      |      0x01     |      0x18     |      0x03     |
630    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
631    |                            Seconds                            |
632    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
633    |                    Fractional Seconds (usec)                  |
634    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
635 
636     0                   1                   2                   3
637     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
638    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
639    |     0x03      |      0x02     |      0x18     |      0x05     |
640    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
641    |                  Argus Record Start Time (UTC)                 |
642    |                                                               |
643    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
644    |                  Argus Record Last Time  (UTC)                 |
645    |                                                               |
646    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
647 
648     0                   1                   2                   3
649     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
650    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
651    |     0x03      |      0x03     |      0x19     |      0x04     |
652    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
653    |                            Seconds                            |
654    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
655    |                    Fractional Seconds (nsec)                  |
656    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
657    |                Delta Fractional Seconds (nsec)                |
658    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
659 
660     0                   1                   2                   3
661     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
662    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
663    |     0x03      |      0x04     |      0x1A     |      0x02     |
664    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
665    |                Delta Fractional Seconds (usec)                |
666    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
667 
668     0                   1                   2                   3
669     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
670    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
671    |     0x03      |      0x05     |      0x1B     |      0x03     |
672    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
673    |             Start Delta Fractional Seconds (nsec)             |
674    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
675    |              Last Delta Fractional Seconds (nsec)             |
676    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
677 
678                         Argus Time Record Field
679            Note that one tick mark represents one bit position.
680 */
681 
682 
683 /*
684    Argus Time Adjustment Descriptor DSR
685        The Argus Time Adjustment Descriptor is an optional DSR that
686        specifies a time adjustment that is assigned/imposed by
687        the NTAIS system.  Generally added by either an intermediate
688        RADIUM node or in the receiving NTAIS, this value is a
689        single time adjustment value to bring the timestamps into
690        synchronization in the system.
691 
692        The DSR is a composite DSR, and is composed of a mandatory
693        Source Identifier, and a Timestamp, as specified above.
694 
695        The minimum record length is 24 bytes long (6 * 4).
696 */
697 
698 
699 /* Argus Time Descriptor DSR Types */
700 #define ARGUS_TIME_ADJ_INDEX			16
701 
702 /*
703     0                   1                   2                   3
704     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
705    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
706    |     0x09      |      0x00     |      0x00     |      0x03     |
707    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
708    |                     Argus Transport Record                     |
709    |                                                               |
710    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
711    |                       Argus Time Record                        |
712    |                                                               |
713    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
714 
715                      Argus Time Adjustment Record Field
716            Note that one tick mark represents one bit position.
717 */
718 
719 /*
720    Argus Flow Descriptor DSR
721        The Argus Flow Descriptor is an optional DSR that
722        specifies the key and non-key attributes that apply
723        to the flow record.  Key attributes indicate the
724        attributes that were used by the probe or aggregator
725        to formulate the flow.  This may involve any combination
726        of identifiers that were contained in the packets
727        themselves.
728 
729        A flow description is a collection of identifiers
730        that were used to classify packets.  All packets that
731        contain the identifiers are considered a part of the
732        same flow model.  The Argus supports both uni and bi-
733        directional flow modeling.  Because flow descriptors
734        can be directionally sensitive, a direction bit is
735        included in the flow descriptor qualifier.
736 
737        The Argus supports a number of pre-defined complex
738        flow descriptor groupings as specific data types,
739        in order to be efficient.  It also supports arbitrary
740        flow descriptions,
741 
742        While most flows will be Type-P1 5-tuple Layer 3/4
743        flows, many applications will want to support Layer 2,
744        unidirectional Layer 2.5 (MPLS), Layer 3 address,
745        and Layer 3 CIDR address based flows.
746 
747        Aggregation experiments indicate that non-key attributes
748        can be persistent during the life of some flows, and the
749        ability to report these attributes is important for
750        many analytical methods.  So, indicating persistent and
751        non-persistent/last attribute values is extremely
752        important.
753 
754        It is important to propagte throught the life of the
755        flow record, an indication that the RMON style of
756        data, where only one set of the bi-directional flow
757        key objects, are retained and being used as a key.
758 
759        Attributes that are used as keys are indicated in the
760        most significant bit of the DSR.
761 */
762 
763 
764 /* Argus Flow Descriptor DSR Types */
765 #define ARGUS_FLOW_INDEX			1
766 
767 
768 /* Argus Flow Descriptor DSR SubTypes */
769 #define ARGUS_FLOW_KEY_ATTRIBUTE		0x80
770 
771 #define ARGUS_FLOW_CLASSIC5TUPLE                0x01
772 #define ARGUS_FLOW_LAYER_2_MATRIX               0x02
773 #define ARGUS_FLOW_LAYER_3_MATRIX               0x03
774 #define ARGUS_FLOW_MPLS                         0x04
775 #define ARGUS_FLOW_VLAN                         0x05
776 #define ARGUS_FLOW_ARP                          0x06
777 #define ARGUS_FLOW_LAYER_2                      0x07
778 
779 #define ARGUS_FLOW_KEYS                         0x00000007
780 #define ARGUS_FLOW_KEY_CLASSIC5TUPLE            0x00000001
781 #define ARGUS_FLOW_KEY_LAYER_2_MATRIX           0x00000002
782 #define ARGUS_FLOW_KEY_LAYER_3_MATRIX           0x00000004
783 #define ARGUS_FLOW_KEY_LOCAL_MPLS               0x00000008
784 #define ARGUS_FLOW_KEY_COMPLETE_MPLS            0x00000010
785 #define ARGUS_FLOW_KEY_VLAN                     0x00000020
786 #define ARGUS_FLOW_KEY_LAYER_2                  0x00000040
787 
788 
789 #define ARGUS_FLOW_COMPOSITE                    0x08
790 #define ARGUS_FLOW_DLT_IANA			0x10  /* this is the layer 2 ifType */
791 #define ARGUS_FLOW_ETH_IANA			0x11  /* this is the layer 3 protocol ids */
792 #define ARGUS_FLOW_IP_IANA			0x12  /* this is the layer 4 protocol/nexthop number */
793 
794 #define ARGUS_FLOW_RMON				0x40  /* this has been created usig RMON options */
795 
796 /* Argus Flow Descriptor DSR Qualifiers */
797 #define ARGUS_SYSTEM_FLOW			0x20
798 #define ARGUS_REVERSE				0x40
799 
800 #define ARGUS_UNIDIRECTIONAL			0x10
801 #define ARGUS_BIDIRECTIONAL			0x20
802 #define ARGUS_MASKLEN				0x40
803 #define ARGUS_FRAGMENT				0x80
804 
805 /*
806 
807     ARGUS_FLOW_DSR
808     0                   1                   2                   3
809     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
810    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
811    |0|   0x02      |K|D|  SubType  |   Qualifier   |     Length    |
812    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
813    |                                                               |
814    |                   Argus Flow Specific Data                    |
815    |                                                               |
816    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
817 
818     ARGUS_FLOW_CLASSIC5TUPLE
819     TYPE=ARGUS_FLOW   SubType=ARGUS_CLASSIC5TUPLE    Qual=ARGUS_TYPE_IPV4
820     0                   1                   2                   3
821     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
822    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
823    |0|   0x02      |1|D|  0x01     |     0x01      |      0x05     |
824    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
825    |                       Source IPv4 Address                     |
826    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
827    |                    Destination IPv4 Address                   |
828    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
829    |  IP Proto     |  Trans Proto  |          Source Port          |
830    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
831    |       Destination Port        |              Pad              |
832    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
833 
834     ARGUS_FLOW_CLASSIC5TUPLE
835     TYPE=ARGUS_FLOW   SubType=ARGUS_CLASSIC5TUPLE    Qual=ARGUS_TYPE_IPV6
836     0                   1                   2                   3
837     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
838    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
839    |0|   0x02      |1|D|    0x01   |      0x02     |      0x0B     |
840    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
841    |                                                               |
842    |                       Source IPv4 Address                     |
843    |                                                               |
844    |                                                               |
845    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
846    |                                                               |
847    |                    Destination IPv4 Address                   |
848    |                                                               |
849    |                                                               |
850    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
851    |  IP Proto     |  Trans Proto  |          Source Port          |
852    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
853    |       Destination Port        |              Pad              |
854    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
855 
856     ARGUS_FLOW_CLASSIC5TUPLE
857     TYPE=FLOW   SubType=ARGUS_CLASSIC5TUPLE    Qual=ARGUS_TYPE_ETHER
858     0                   1                   2                   3
859     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
860    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
861    |0|   0x02      |1|D|    0x01   |      0x03     |      0x06     |
862    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
863    |     Source                                                    |
864    |     Ethernet                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
865    |     Address                   |           Destination         |
866    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           Ethernet            |
867    |                                           Address             |
868    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
869    |       Ethernet Type           |      dsap     |      ssap     |
870    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
871 
872     ARGUS_FLOW_CLASSIC5TUPLE
873     TYPE=ARGUS_FLOW   SubType=ARGUS_CLASSIC5TUPLE    Qual=ARGUS_TYPE_IPV4
874     0                   1                   2                   3
875     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
876    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
877    |0|   0x02      |1|D|    0x01   |      0x01     |      0x06     |
878    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
879    |                       Source IPv4 Address                     |
880    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
881    |                    Destination IPv4 Address                   |
882    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
883    |     ICMP      |  Trans Proto  |     Type      |     Code      |
884    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
885    |            Identifier         |         IP Identifier         |
886    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
887 
888     TYPE=ARGUS_FLOW   SubType=ARGUS_CLASSIC5TUPLE    Qual=ARGUS_TYPE_IPV4
889     0                   1                   2                   3
890     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
891    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
892    |0|   0x02      |1|D|   0x01    |      0x01     |      0x06     |
893    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
894    |                       Source IPv4 Address                     |
895    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
896    |                    Destination IPv4 Address                   |
897    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
898    |     IGMP      |  Trans Proto  |     Type      |     Code      |
899    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
900    |              Pad              |         IP Identifier         |
901    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
902 
903     ARGUS_FLOW_CLASSIC5TUPLE
904     TYPE=ARGUS_FLOW   SubType=ARGUS_CLASSIC5TUPLE    Qual=ARGUS_TYPE_IPV4
905     0                   1                   2                   3
906     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
907    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
908    |0|   0x02      |1|D|    0x01   |      0x01     |      0x06     |
909    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
910    |                       Source IPv4 Address                     |
911    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
912    |                    Destination IPv4 Address                   |
913    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
914    |      ESP      |  Trans Proto  |              Pad              |
915    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
916    |                  Security Payload Identifier                  |
917    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
918 
919     ARGUS_FLOW_CLASSIC5TUPLE
920     TYPE=FLOW   SubType=ARGUS_CLASSIC5TUPLE    Qual=ARGUS_TYPE_ARP
921     0                   1                   2                   3
922     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
923    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
924    |0|   0x02      |1|0|    0x01   |      0x07     |      0x06     |
925    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
926    |                            ARP SPA                            |
927    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
928    |                            ARP TPA                            |
929    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
930    |                                                               |
931    |        Ethernet Address       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
932    |                               |              Pad              |
933    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
934 
935     ARGUS_FLOW_CLASSIC5TUPLE
936     TYPE=FLOW   SubType=ARGUS_CLASSIC5TUPLE    Qual=ARGUS_TYPE_ARP (reverse)
937     0                   1                   2                   3
938     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
939    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
940    |0|   0x02      |1|1|    0x01   |      0x07     |      0x05     |
941    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
942    |                            ARP TPA                            |
943    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
944    |        Source                                                 |
945    |        Ethernet               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
946    |        Address                |            Target             |
947    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+            Ethernet           |
948    |                                            Address            |
949    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
950 
951 
952 */
953 
954 /*
955    ARGUS_FLOW_COMPOSITE
956 
957    Composite argus flow descriptors allow for arbitrary identifiers
958    to be used as flow key elements.  The trick is to effeciently
959    encode the flow descriptor so that clients can keep up.
960 
961    The concept is that anything in the packet should be fair game
962    fair game, as they are observable identifiers.  Practically
963    there are limits, as some fields are arbitrary, or can be
964    modified in the network.
965 
966    Composite flow keys are indicated using the ARGUS_FLOW_COMPOSITE
967    DSR identifier, which is a header preceeding a set of IANA based
968    packet content identifiers.  The values of many of the constants
969    are defined in other include files, and so if you see a value
970    you are not familiar with, grep for in the set of include files
971    provided.
972 
973    First the composite methods should be capable of representing
974    the stanard flow defintiions efficiently.
975 
976    This is an example of how to indicate the classic
977    IPv4 5-tuple flow spec for UDP traffic, using Composite Flow DSRs.
978 
979     Type=COMPOSITE
980        SubType=IANA_LAYER3  Qual=IPv4
981        SubType=IANA_LAYER4  IANA        Qual=UDP
982     0                   1                   2                   3
983     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
984    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
985    |0|   0x02      |K|    0x08     |      0x01     |      0x06     |  Composite
986    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
987    |0|   0x02      |K|    0x01     |      0x01     |      0x03     |  IPv4 Matrix
988    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
989    |                       Source IPv4 Address                     |
990    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
991    |                    Destination IPv4 Address                   |
992    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
993    |0|   0x02      |K|    0x10     |      0x11     |      0x02     |  UDP Matrix
994    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
995    |          Source Port          |       Destination Port        |
996    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
997 
998 
999    This is an example of how to indicate a modified  IPv4
1000    flow spec for UDP traffic, using Composite Flow DSRs. This
1001    flow spec has src and dst address data and just the protocol
1002    field.
1003 
1004     Type=COMPOSITE
1005        SubType=IANA_LAYER3  Qual=IPv4
1006        SubType=IANA_LAYER4  IANA        Qual=UDP
1007     0                   1                   2                   3
1008     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1009    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1010    |0|   0x02      |K|    0x08     |      0x01     |      0x06     |  Composite
1011    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1012    |0|   0x02      |K|    0x01     |      0x01     |      0x03     |  IPv4 Matrix
1013    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1014    |                       Source IPv4 Address                     |
1015    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1016    |                    Destination IPv4 Address                   |
1017    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1018    |0|   0x02      |K|    0x10     |             0x11              |  UDP Protocol
1019    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1020 
1021 
1022     Type=FLOW     SubType=LAYER3  Qual=IPv4
1023     Type=LAYER4   SubType=IANA    Qual=TCP
1024     0                   1                   2                   3
1025     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1026    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1027    |0|   0x02      |K|    0x01     |      0x01     |      0x07     |
1028    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1029    |0|   0x02      |1|D|  0x01     |     0x01      |      0x05     |
1030    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1031    |                       Source IPv4 Address                     |
1032    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1033    |                    Destination IPv4 Address                   |
1034    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1035    |  IP Proto     |  Trans Proto  |          Source Port          |
1036    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1037    |       Destination Port        |              Pad              |
1038    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1039    |0|   0x02      |K|    0x10     |          Source ToS           |
1040    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1041 
1042 
1043     ARGUS_FLOW_IPV6_DSR
1044     0                   1                   2                   3
1045     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1046    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1047    |0|   0x02      |K|    0x02     |   Qualifier   |      0x0A     |
1048    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1049    |                                                               |
1050    |                       Source IPv6 Address                     |
1051    |                                                               |
1052    |                                                               |
1053    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1054    |                                                               |
1055    |                    Destination IPv6 Address                   |
1056    |                                                               |
1057    |                                                               |
1058    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1059    |0|   0x02      |K|    0x10     |      0x06     |      0x02     |
1060    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1061    |          Source Port          |       Destination Port        |
1062    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1063 */
1064 
1065 
1066 /*
1067 
1068 #define ARGUS_PROTO_DSR				0x04
1069 
1070     ARGUS_PROTO_DSR
1071     0                   1                   2                   3
1072     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1073    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1074    |1|   0x04      |K| ProtoType   |         Protocol Data         |
1075    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1076 
1077 
1078     0                   1                   2                   3
1079     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1080    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1081    |0|   0x04      |K| Proto Type  |   Qualifier   |    Length     |
1082    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1083    |                                                               |
1084    |                 Argus Protocol Specific Data                  |
1085    |                                                               |
1086    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1087 */
1088 
1089 
1090 /*
1091 #define ARGUS_PROTO_DLT_DSR			0x04
1092 #define ARGUS_PROTO_DLT_BPF			0x01
1093 #define ARGUS_PROTO_DLT_IANA			0x02
1094 
1095 
1096     ARGUS_PROTO_DLT_DSR
1097     0                   1                   2                   3
1098     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1099    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1100    |1|   0x04      |K| DLT Value   |      Data Link Type Data      |
1101    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1102 
1103     0                   1                   2                   3
1104     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1105    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1106    |0|   0x04      |K| DLT Value   |   Qualifier   |     Length    |
1107    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1108 
1109 
1110 
1111     ARGUS_PROTO_DLT_802_1Q_DSR
1112     0                   1                   2                   3
1113     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1114    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1115    |1|   0x04      |K|     71      |          802.1Q Tag           |
1116    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1117 
1118 */
1119 
1120 /*
1121     ARGUS_PROTO_ETHER_DSR
1122     0                   1                   2                   3
1123     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1124    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1125    |1|   0x04      |K|   ETH_IANA  |     Ethernet Protocol Value   |
1126    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1127 */
1128 
1129 
1130 
1131 /*
1132 #define ARGUS_PROTO_IP_DSR			0x10
1133 #define ARGUS_PROTO_IP_ATTR_DSR			0x04
1134 #define ARGUS_PROTO_IP_OPTIONS_DSR		0x05
1135 */
1136 
1137 /* ARGUS_PROTO_IP_DSR IP Qualifiers */
1138 
1139 #define ARGUS_IP_V4				0x01
1140 #define ARGUS_IP_V6				0x02
1141 #define ARGUS_IP_OPTIONS			0x03
1142 
1143 /* ARGUS_PROTO_IP_ATTR_DSR Status */
1144 /*
1145 #define ARGUS_IP_TOS_MODIFIED			0x00001000
1146 #define ARGUS_IP_TTL_MODIFIED			0x00002000
1147 #define ARGUS_IP_OPTIONS_MODIFIED		0x00004000
1148 */
1149 
1150 #define ARGUS_ICMP_MAPPED			0x07
1151 #define ARGUS_ICMPUNREACH_MAPPED		0x01
1152 #define ARGUS_ICMPREDIREC_MAPPED		0x02
1153 #define ARGUS_ICMPTIMXCED_MAPPED		0x04
1154 
1155 /* IP Header Field Identifiers */
1156 
1157 #define ARGUS_IP_SRC				0x01
1158 #define ARGUS_IP_DST				0x02
1159 #define ARGUS_IP_PROTO				0x04
1160 #define ARGUS_IP_TOS				0x08
1161 #define ARGUS_IP_TTL				0x10
1162 #define ARGUS_IP_ID 				0x20
1163 
1164 /* IP Option Indicators */
1165 
1166 #define ARGUS_RECORDROUTE			0x01
1167 #define ARGUS_TIMESTAMP				0x02
1168 #define ARGUS_SECURITY				0x04
1169 #define ARGUS_LSRCROUTE				0x08
1170 #define ARGUS_SATID				0x10
1171 #define ARGUS_SSRCROUTE				0x20
1172 #define ARGUS_RTRALERT				0x40
1173 
1174 /*
1175     ARGUS_PROTO_IP_ATTR_DSR
1176     0                   1                   2                   3
1177     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1178    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1179    |0|   0x10      |K|    0x04     |   Qualifier   |      0x03     |
1180    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1181    |             IP ID             |      TTL      |      TOS      |
1182    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1183    |            Status             |    Options    |    Reserved   |
1184    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1185 
1186 */
1187 
1188 
1189 /*
1190     ARGUS_PROTO_IP_OPTIONS_DSR
1191     0                   1                   2                   3
1192     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1193    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1194    |0|   0x10      |K|    0x05     |   Qualifier   |      0x02     |
1195    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1196    |                       IP Options Indicator                    |
1197    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1198 */
1199 
1200 
1201 /*
1202 
1203 #define ARGUS_PROTO_IP_PROTO_DSR			0x12
1204 
1205     ARGUS_PROTO_IP_PROTO_DSR
1206     0                   1                   2                   3
1207     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1208    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1209    |1|   0x12      |K|    0x10     |   Qualifier   |   Proto Num   |
1210    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1211 
1212     0                   1                   2                   3
1213     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1214    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1215    |0|   0x12      |K|    0x10     |   Proto Num   |     Length    |
1216    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1217    |                           DSR Data                            |
1218    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1219 
1220 
1221     ARGUS_PROTO_IP_DSR	TCP Specific
1222     0                   1                   2                   3
1223     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1224    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1225    |0|   0x12      |K|    0x10     |      0x06     |      0x03     |
1226    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1227    |          Source Port          |       Destination Port        |
1228    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1229    |           TCP State           |           TCP Options         |
1230    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1231 
1232 
1233     ARGUS_PROTO_IP_DSR	UDP Specific
1234     0                   1                   2                   3
1235     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1236    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1237    |0|   0x12      |K|    0x10     |      0x11     |      0x02     |
1238    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1239    |          Source Port          |       Destination Port        |
1240    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1241 
1242 
1243     ARGUS_PROTO_IP_DSR	ICMP Specific
1244     0                   1                   2                   3
1245     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1246    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1247    |0|   0x12      |K|    0x10     |      0x01     |      0x02     |
1248    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1249    |   ICMP Type   |   ICMP Code   |            ICMP ID            |
1250    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1251 
1252 
1253     ARGUS_PROTO_IP_DSR	ESP Specific
1254     0                   1                   2                   3
1255     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1256    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1257    |0|   0x12      |K|    0x10     |      0x32     |      0x02     |
1258    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1259    |               ESP Security Payload Identifiier                |
1260    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1261 
1262 
1263     ARGUS_PROTO_IP_DSR	IGMP Specific
1264     0                   1                   2                   3
1265     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1266    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1267    |1|   0x12      |1|    0x10     |      0x02     |      0x02     |
1268    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1269    |   IGMP Type   |   IGMP Code   |              Pad              |
1270    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1271 */
1272 
1273 
1274 /*
1275     0                   1                   2                   3
1276     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1277    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1278    |     0x20      |    SubType    |   Qualifier   |    Length     |
1279    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1280    |                   Argus Meter Specific Data                   |
1281    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1282 
1283 */
1284 
1285 
1286 /* Argus Meter DSR Type */
1287 #define ARGUS_METRIC_INDEX			3
1288 
1289 /* Argus Meter DSR Subtype */
1290 #define ARGUS_METER_PKTS_BYTES			0x01
1291 #define ARGUS_METER_PKTS_BYTES_APP		0x04
1292 
1293 
1294 /* Argus Meter DSR Qual */
1295 #define ARGUS_SRCDST_BYTE			0x01
1296 #define ARGUS_SRCDST_SHORT			0x02
1297 #define ARGUS_SRCDST_INT				0x03
1298 #define ARGUS_SRCDST_LONGLONG			0x04
1299 #define ARGUS_SRC_BYTE				0x05
1300 #define ARGUS_SRC_SHORT				0x06
1301 #define ARGUS_SRC_INT				0x07
1302 #define ARGUS_SRC_LONGLONG			0x08
1303 #define ARGUS_DST_BYTE				0x09
1304 #define ARGUS_DST_SHORT				0x0A
1305 #define ARGUS_DST_INT				0x0B
1306 #define ARGUS_DST_LONGLONG			0x0C
1307 
1308 /*
1309 #define ARGUS_METER_PKTS_BYTES			0x01
1310 
1311     0                   1                   2                   3
1312     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1313    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1314    |0|   0x20      |      0x01     |       2       |     0x02      |
1315    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1316    |           packets             |             bytes             |
1317    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1318 
1319     0                   1                   2                   3
1320     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1321    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1322    |0|   0x20      |      0x01     |       3       |     0x03      |
1323    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1324    |                            packets                            |
1325    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1326    |                             bytes                             |
1327    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1328 
1329     0                   1                   2                   3
1330     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1331    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1332    |0|   0x20      |      0x01     |       4       |     0x05      |
1333    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1334    |                                                               |
1335    +                            packets                            +
1336    |                                                               |
1337    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1338    |                                                               |
1339    +                             bytes                             +
1340    |                                                               |
1341    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1342 
1343 */
1344 
1345 
1346 /* Argus Packet Size DSR Type */
1347 #define ARGUS_PSIZE_INDEX                       10
1348 
1349 /* Argus Packet Size DSR Subtype */
1350 #define ARGUS_PSIZE_SRC_MAX_MIN                 0x01
1351 #define ARGUS_PSIZE_DST_MAX_MIN                 0x02
1352 #define ARGUS_PSIZE_HISTO                   	0x04
1353 
1354 /* Argus Packet Size DSR Qual (same as Metric above) */
1355 /*
1356 #define ARGUS_SRCDST_SHORT                      0x02
1357 #define ARGUS_SRCDST_INT                        0x03
1358 #define ARGUS_SRC_SHORT                         0x06
1359 #define ARGUS_SRC_INT                           0x07
1360 #define ARGUS_DST_SHORT                         0x0A
1361 #define ARGUS_DST_INT                           0x0B
1362 */
1363 
1364 /*
1365     0                   1                   2                   3
1366     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1367    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1368    |0|   0x20      |      0x01     |      0x06     |     0x03      |
1369    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1370    |        src min size           |         src max size          |
1371    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1372    |        dst min size           |         dst max size          |
1373    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1374 
1375     Standard Source and Destination max and min packet size report.
1376 */
1377 
1378 
1379 
1380 #define ARGUS_DIRECTION          		0x0000020
1381 
1382 /*
1383     0                   1                   2                   3
1384     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1385    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1386    |0|   0x20      |K|    0x04     |   Qualifier   |      0x04     |
1387    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1388    |                          TCPQualifier                         |
1389    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1390    |              TCP Syn ACK uSec Response Timer                  |
1391    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1392    |              TCP ACK DATA uSec Response Timer                 |
1393    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1394 
1395     0                   1                   2                   3
1396     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1397    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1398    |0|   0x20      |K|    0x05     | D | Qualifier |    Length     |
1399    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1400    |                      TCP Sequence Base                        |
1401    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1402    |                     TCP Acknowledged Bytes                    |
1403    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1404    |                          TCP Total Bytes                      |
1405    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1406    |                   TCP Retransmitted Packets                   |
1407    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1408    |    TCP Last Reported Window   |   TCP Flags   |     Pad       |
1409    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1410 */
1411 
1412 
1413 
1414 /*
1415 #define ARGUS_METER_IGMP_PERF		0x06
1416 
1417     0                   1                   2                   3
1418     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1419    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1420    |0|   0x20      |K|    0x06     | D | Qualifier |      0x06     |
1421    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1422    |                          IGMP Group                           |
1423    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1424    |                   IGMP Join Delay (Timeval)                   |
1425    |                                                               |
1426    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1427    |                  IGMP Leave Delay (Timeval)                   |
1428    |                                                               |
1429    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1430 */
1431 
1432 /*
1433 #define ARGUS_METER_ESP_PERF		0x07
1434 */
1435 
1436 /* IP Sec AH Header Qualifier Bits */
1437 
1438 
1439 /*
1440 #define ARGUS_AH_HDR                  0x10
1441 #define ARGUS_AH_REPLAY               0x08
1442 
1443     0                   1                   2                   3
1444     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1445    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1446    |0|   0x20      |K|    0x07     |   Qualifier   |      0x03     |
1447    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1448    |                       ESP Last Sequence                       |
1449    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1450    |                    ESP Lost Sequence Number                   |
1451    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1452 */
1453 
1454 
1455 #define ARGUS_AGR_INDEX				4
1456 
1457 /*
1458     0                   1                   2                   3
1459     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1460    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1461    |0|   0x22      |     0x01      |   Qualifier   |     0x02      |
1462    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1463    |                         record  count                         |
1464    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1465 
1466     0                   1                   2                   3
1467     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1468    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1469    |0|   0x22      |     0x02      |   Qualifier   |     0x07      |
1470    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1471    |                         record  count                         |
1472    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1473    |                     lastStartTime Seconds                     |
1474    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1475    |                    lastStartTime  uSeconds                    |
1476    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1477    |                        lastTime Seconds                       |
1478    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1479    |                       lastTime  uSeconds                      |
1480    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1481 */
1482 
1483 /* Argus Encapsulation DSR Type */
1484 #define ARGUS_ENCAPS_INDEX                      15
1485 
1486 /* Argus Encapsulation DSR Qualifier */
1487 #define ARGUS_ENCAPS_CHANGED                    0x80
1488 
1489 /*
1490     0                   1                   2                   3
1491     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1492    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1493    |0|   0x20      |     0x00      |   Qualifier   |     0x03      |
1494    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1495    |                   Src Encapsulation Mask                      |
1496    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1497    |                   Dst Encapsulation Mask                      |
1498    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1499 
1500 */
1501 
1502 
1503 /* Argus Fragment DSR Type */
1504 #define ARGUS_FRAG_INDEX				5
1505 
1506 #define ARGUS_FRAGMENTS				0x01
1507 #define ARGUS_FRAGOVERLAP			0x02
1508 
1509 /* Fragment State Constants and Reporting Values */
1510 
1511 #define ARGUS_FRAG_INIT				0x10
1512 #define ARGUS_FRAG_OUT_OF_ORDER			0x20
1513 #define ARGUS_TCPFRAGOFFSETERROR		0x40
1514 
1515 
1516 /*
1517     0                   1                   2                   3
1518     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1519    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1520    |0|   0x25      |     0x01      |   Qualifier   |     0x02      |
1521    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1522    |                         fragment number                       |
1523    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1524    |                      fragment identification                  |
1525    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1526    |     Total Fragment Length     |    Current Fragment Length    |
1527    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1528    |   Maxiumum Fragment Length    |              pad              |
1529    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1530 
1531 */
1532 
1533 
1534 /*
1535    Argus Network DSR
1536       The Network DSR provides additional information regarding
1537       transport layer information.
1538 */
1539 
1540 /* Argus Transport DSR Type */
1541 #define ARGUS_NETWORK_INDEX		5
1542 
1543 
1544 /* Argus Transport DSR Subtype */
1545 #define ARGUS_TCP_INIT			0x03
1546 #define ARGUS_TCP_STATUS		0x04
1547 #define ARGUS_TCP_PERF			0x05
1548 #define ARGUS_NETWORK_SUBTYPE_ARP	0x10
1549 #define ARGUS_NETWORK_SUBTYPE_FRAG	0x45
1550 
1551 /* RTP State Constants and Reporting Values */
1552 #define ARGUS_RTP_SRCSILENCE		0x01
1553 #define ARGUS_RTP_DSTSILENCE		0x02
1554 
1555 #define ARGUS_HTTP_FLOWTAG		0x01
1556 
1557 #define ARGUS_RTCP_FLOW			0x09
1558 #define ARGUS_RTP_FLOW			0x0A
1559 
1560 /* UDT State Constants and Reporting Values */
1561 #define ARGUS_UDT_FLOW                  0x0D
1562 
1563 
1564 /* TCP State Constants and Reporting Values */
1565 
1566 #define ARGUS_SAW_SYN			0x00000001
1567 #define ARGUS_SAW_SYN_SENT		0x00000002
1568 #define ARGUS_CON_ESTABLISHED		0x00000004
1569 #define ARGUS_FIN			0x00000008
1570 #define ARGUS_FIN_ACK			0x00000010
1571 
1572 #define ARGUS_NORMAL_CLOSE		0x00000020
1573 #define ARGUS_CLOSE_WAITING		0x00000040
1574 
1575 #define ARGUS_PKTS_RETRANS		0x00000300  /* SRC_PKTS_RETRANS | DST_PK*/
1576 #define ARGUS_SRC_PKTS_RETRANS		0x00000100
1577 #define ARGUS_DST_PKTS_RETRANS		0x00000200
1578 
1579 #define ARGUS_WINDOW_SHUT             	0x00000C00  /* SRC_WINDOW_SHUT | DST_WIN*/
1580 #define ARGUS_SRC_WINDOW_SHUT         	0x00000400
1581 #define ARGUS_DST_WINDOW_SHUT         	0x00000800
1582 #define ARGUS_RESET                   	0x00003000  /* SRC_RESET | DST_RESET */
1583 #define ARGUS_SRC_RESET               	0x00001000
1584 #define ARGUS_DST_RESET               	0x00002000
1585 #define ARGUS_ECN_CONGESTED           	0x0000C000  /* SRC_CONGESTED | DST_CONGESTED */
1586 #define ARGUS_SRC_CONGESTED           	0x00004000
1587 #define ARGUS_DST_CONGESTED           	0x00008000
1588 
1589 
1590 #define ARGUS_PKTS_DROP                 0x30
1591 #define ARGUS_SRC_PKTS_DROP             0x10
1592 #define ARGUS_DST_PKTS_DROP             0x20
1593 
1594 #define ARGUS_OUTOFORDER		0x00030000
1595 #define ARGUS_SRC_OUTOFORDER    	0x00010000
1596 #define ARGUS_DST_OUTOFORDER    	0x00020000
1597 
1598 #define ARGUS_DUPLICATES		0x000C0000
1599 #define ARGUS_SRC_DUPLICATES    	0x00040000
1600 #define ARGUS_DST_DUPLICATES    	0x00080000
1601 
1602 #define ARGUS_TCP_OPTIONS		0xFFF00000
1603 #define ARGUS_TCP_MAXSEG		0x00100000
1604 #define ARGUS_TCP_WSCALE		0x00200000
1605 #define ARGUS_TCP_SACKOK		0x00400000
1606 #define ARGUS_TCP_SACK			0x00800000
1607 #define ARGUS_TCP_ECHO			0x01000000
1608 #define ARGUS_TCP_ECHOREPLY		0x02000000
1609 #define ARGUS_TCP_TIMESTAMP		0x04000000
1610 #define ARGUS_TCP_CC			0x08000000
1611 #define ARGUS_TCP_CCNEW			0x10000000
1612 #define ARGUS_TCP_CCECHO		0x20000000
1613 #define ARGUS_TCP_SRC_ECN		0x40000000
1614 #define ARGUS_TCP_DST_ECN		0x80000000
1615 
1616 #define ARGUS_UDT_OPTIONS		0xFFF00000
1617 #define ARGUS_UDT_BADVERSION		0x00100000
1618 #define ARGUS_UDT_FIRSTDROPZERO		0x01000000
1619 
1620 /* ESP State Constatans and Reporting Values */
1621 #define ARGUS_ESP_ROLLOVER              0x1000
1622 #define ARGUS_ESP_SEQFAILURE            0x2000
1623 
1624 /* Vlan Transport DSR Type */
1625 #define ARGUS_VLAN_DSR                   0x40
1626 #define ARGUS_VLAN_INDEX                 6
1627 
1628 #define ARGUS_SRC_VLAN                   0x01
1629 #define ARGUS_DST_VLAN                   0x02
1630 
1631 
1632 /* Mpls Transport DSR Type */
1633 #define ARGUS_MPLS_DSR                   0x44
1634 #define ARGUS_MPLS_INDEX                 7
1635 
1636 /* Argus MPLS DSR SubType */
1637 #define ARGUS_MPLS_SRC_LABEL		0x01
1638 #define ARGUS_MPLS_DST_LABEL		0x02
1639 
1640 /* Argus MPLS DSR Qualifier */
1641 #define ARGUS_MPLS_SRC_LABEL_CHANGED	0x10
1642 #define ARGUS_MPLS_DST_LABEL_CHANGED	0x20
1643 
1644 /* Mac Layer Header DSR Type */
1645 #define ARGUS_MAC_DSR                    0x42
1646 #define ARGUS_MAC_INDEX                  13
1647 
1648 /* Argus Mac Layer DSR Qualifier */
1649 #define ARGUS_MULTIPATH                  0x03
1650 #define ARGUS_SRC_MULTIPATH              0x01
1651 #define ARGUS_DST_MULTIPATH              0x02
1652 
1653 /* Jitter Transport DSR Type */
1654 #define ARGUS_JITTER_DSR                 0x46
1655 #define ARGUS_JITTER_INDEX               8
1656 
1657 /* Argus Jitter DSR Qualifier */
1658 #define ARGUS_SRC_ACTIVE_JITTER		0x01
1659 #define ARGUS_SRC_IDLE_JITTER		0x02
1660 #define ARGUS_DST_ACTIVE_JITTER		0x04
1661 #define ARGUS_DST_IDLE_JITTER		0x08
1662 
1663 
1664 /* Argus Histogram DSR Type */
1665 #define ARGUS_HISTO_DSR                 0x47
1666 #define ARGUS_HISTO_INDEX               18
1667 
1668 /* Argus Histogram DSR Subtype */
1669 #define ARGUS_HISTO_EXP                 0x01
1670 #define ARGUS_HISTO_LINEAR              0x02
1671 
1672 /*
1673    ARGUS_HISTO_LINEAR       size:bins:start
1674    ARGUS_HISTO_EXPONENTIAL  size:bins:start:base
1675    ARGUS_HISTO_SCALED
1676    ARGUS_HISTO_OUTLAYER_LOWER
1677    ARGUS_HISTO_OUTLAYER_UPPER
1678 
1679 */
1680 
1681 
1682 /* Argus IP Attribute DSR Type */
1683 #define ARGUS_IPATTR_DSR                 0x48
1684 #define ARGUS_IPATTR_INDEX               9
1685 
1686 /* Argus IP Attribute DSR Qualifier */
1687 #define ARGUS_IPATTR_SRC                 0x01
1688 #define ARGUS_IPATTR_DST                 0x02
1689 #define ARGUS_IPATTR_SRC_OPTIONS         0x04
1690 #define ARGUS_IPATTR_DST_OPTIONS         0x08
1691 #define ARGUS_IPATTR_SRC_FRAGMENTS       0x10
1692 #define ARGUS_IPATTR_DST_FRAGMENTS       0x20
1693 
1694 /* Argus Data DSR Type */
1695 #define ARGUS_DATA_DSR			0x50
1696 #define ARGUS_SRCUSERDATA_INDEX		11
1697 #define ARGUS_DSTUSERDATA_INDEX		12
1698 
1699 /* Argus Data DSR SubTypes */
1700 #define ARGUS_TOTAL_PACKET		0x01
1701 #define ARGUS_PACKET_HDR		0x02
1702 #define ARGUS_USER_DATA			0x03
1703 #define ARGUS_DATA_COMPRESS		0x08
1704 
1705 #define ARGUS_SRC_DATA			0x10
1706 #define ARGUS_DST_DATA			0x20
1707 
1708 
1709 /* Argus ICMP DSR Type */
1710 #define ARGUS_ICMP_DSR			0x34
1711 #define ARGUS_ICMP_INDEX		14
1712 
1713 /* Argus Behavior DSR Type */
1714 #define ARGUS_BEHAVIOR_DSR               0x54
1715 #define ARGUS_BEHAVIOR_INDEX             17
1716 
1717 /* Argus Behavior DSR SubTypes */
1718 #define ARGUS_TCP_KEYSTROKE             0x01
1719 #define ARGUS_SSH_KEYSTROKE             0x02
1720 
1721 /* Argus Correlation DSR Type */
1722 #define ARGUS_COR_INDEX			17
1723 
1724 /* Argus Country Code DSR */
1725 #define ARGUS_COCODE_INDEX		18
1726 
1727 /* Argus Label DSR */
1728 #define ARGUS_LABEL_INDEX               19
1729 
1730 /* Argus Label SubTypes */
1731 #define ARGUS_SVC_LABEL                 0x01
1732 
1733 /* Argus ASN DSR */
1734 #define ARGUS_ASN_DSR                   0x32
1735 #define ARGUS_ASN_INDEX                 20
1736 
1737 /* Argus ASN SubTypes */
1738 #define ARGUS_ASN_ORIGIN                0x01
1739 #define ARGUS_ASN_PEER                  0x02
1740 
1741 #define ARGUS_SRC_ADDR			0x01
1742 #define ARGUS_DST_ADDR			0x02
1743 #define ARGUS_INODE_ADDR		0x04
1744 
1745 #define ARGUS_ADDR_MASK         	0x07
1746 
1747 /*
1748     0                   1                   2                   3
1749     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1750    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1751    |0|   0x50      |     0x01      |   Qualifier   |     0x24      |
1752    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1753    |                                                               |
1754    |                                                               |
1755    |                     Total Packet Contents                     |
1756    |                                                               |
1757    |                                                               |
1758    |                                                               |
1759    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1760 
1761                       Argus Packet Contents Field
1762           Note that one tick mark represents one bit position.
1763 
1764     0                   1                   2                   3
1765     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1766    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1767    |0|   0x50      |     0x02      |   Qualifier   |     0x08      |
1768    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1769    |                                                               |
1770    |                     Packet Header Contents                    |
1771    |                                                               |
1772    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1773 
1774                   Argus Packet Header Contents Field
1775           Note that one tick mark represents one bit position.
1776 
1777 
1778     0                   1                   2                   3
1779     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1780    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1781    |0|   0x50      |     0x03      |   Qualifier   |     0x80      |
1782    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1783    |                                                               |
1784    |                                                               |
1785    |                    Flow User Data Contents                    |
1786    |                                                               |
1787    |                                                               |
1788    |                                                               |
1789    |                                                               |
1790    |                                                               |
1791    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1792 
1793                   Argus Packet Header Contents Field
1794           Note that one tick mark represents one bit position.
1795 */
1796 
1797 /*
1798    Argus Record Examples
1799       Simple TCP 5-Tuple UDP flow record with transport
1800       identifier and sequence numbers with unidirectional
1801       Packet and Byte Load Metrics.
1802 
1803     0                   1                   2                   3
1804     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1805    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1806    |  Type | Cause |  Vers |  Opt  |             Length            |   Header
1807    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1808    |     0x01      |      0x02     |      0x03     |      0x03     |   Transport
1809    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   Identifier
1810    |                     Argus Source Identifier                    |   and
1811    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   sequence num
1812    |                        Sequence Number                        |
1813    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1814    |0|   0x02      |K|    0x01     |      0x01     |      0x03     |   Flow Key
1815    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   IPv4 Addrs
1816    |                       Source IPv4 Address                     |
1817    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1818    |                    Destination IPv4 Address                   |
1819    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1820    |0|   0x12      |K|    0x10     |      0x11     |      0x02     |   Flow Key
1821    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   UDP and Ports
1822    |          Source Port          |       Destination Port        |
1823    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1824    |0|   0x20      |K|    0x01     |   Qualifier   |     0x02      |   Src Load Metrics
1825    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   16-bit counters
1826    |           packets             |             bytes             |
1827    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1828 
1829 
1830       Simple TCP 5-Tuple TCP flow record with TCP state and
1831       status indicators, with bidirectional Packet and Byte Metrics.
1832 
1833     0                   1                   2                   3
1834     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1835    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1836    |  0x1  |  0x2  |  0x03 |  0x0  |            0x000C             |   Header
1837    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1838    |0|   0x02      |K|    0x01     |      0x01     |      0x03     |   Flow Key
1839    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   IPv4 Addrs
1840    |                       Source IPv4 Address                     |
1841    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1842    |                    Destination IPv4 Address                   |
1843    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1844    |0|   0x12      |K|    0x10     |      0x06     |      0x02     |   Flow Key
1845    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   TCP and Ports
1846    |          Source Port          |       Destination Port        |
1847    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1848    |0|   0x16      |K|    0x10     |      0x06     |      0x02     |   TCP State and Options
1849    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   Attributes
1850    |           TCP State           |           TCP Options         |
1851    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1852    |0|   0x20      |K|    0x01     |   SRC Qual    |     0x02      |   Src Load Metrics
1853    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   16-bit counters
1854    |           packets             |             bytes             |
1855    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1856    |0|   0x20      |K|    0x01     |   DST Qual    |     0x02      |   Dst Load Metrics
1857    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   16-bit counters
1858    |           packets             |             bytes             |
1859    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1860 
1861 */
1862 
1863 
1864 
1865 /*
1866     argus_def_v2.h
1867     Legacy Argus Record Header Format
1868 
1869     0                   1                   2                   3
1870     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1871    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1872    |     Type      |     Cause     |             Length            |
1873    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1874    |  Ver  |  Opt  |                    Status                     |
1875    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1876    |                        Argus Identifier                        |
1877    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1878    |                        Sequence Number                        |
1879    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1880    |                             data                              |
1881    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1882 */
1883 
1884 /*
1885     0                   1                   2                   3
1886     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1887    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1888    |               |                  Status                       |
1889    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1890 
1891                           Argus Status Record
1892           Note that one tick mark represents one bit position.
1893 */
1894 
1895 
1896 
1897 /* Argus Record Type */
1898 
1899 #define ARGUS_V2_MAR		0x80    /* Normal Argus Management Record */
1900 #define ARGUS_V2_INDEX   	0xA0    /* New Argus Index Record */
1901 #define ARGUS_V2_EVENT		0xC0    /* New Argus Event/Message Record */
1902 #define ARGUS_V2_CISCO_NETFLOW	0x10    /* Argus CISCO Netflow Support */
1903 #define ARGUS_V2_WRITESTRUCT  	0x20    /* Argus 1.x Write Struct Conversion */
1904 #define ARGUS_V2_RMON		0x40    /* New RMON style FAR Record Format */
1905 
1906 #define ARGUS_V2_FAR 		0x01    /* Normal Argus Data Record */
1907 #define ARGUS_V2_DATASUP		0x02    /* New Supplemental Argus Data Record */
1908 #define ARGUS_V2_ARCHIVE		0x03    /* New Archival Argus Data Record */
1909 
1910 
1911 /* Argus Record Cause */
1912 
1913 #define ARGUS_V2_START		0x01   /* INIT */
1914 #define ARGUS_V2_STATUS		0x04   /* STATUS */
1915 #define ARGUS_V2_STOP		0x08   /* CLOSE */
1916 #define ARGUS_V2_SHUTDOWN	0x10   /* Administrative shutdown */
1917 #define ARGUS_V2_TIMEOUT		0x20   /* TIMEOUT */
1918 #define ARGUS_V2_ERROR		0x40   /* MAJOR PROBLEM */
1919 
1920 /* Record Version (Ver) */
1921 
1922 #define ARGUS_V2_VERSION		0x20000000    /* Version 2 */
1923 
1924 /* Record Options (Opt)*/
1925 
1926 #define ARGUS_V2_ANON		0x01000000
1927 #define ARGUS_V2_MERGED		0x02000000
1928 #define ARGUS_V2_TOPN		0x04000000
1929 #define ARGUS_V2_MATRIX		0x08000000
1930 
1931 
1932 /* Argus MAR Record Status */
1933 
1934 #define ARGUS_V2_SASL_AUTHENTICATE	0x00001000
1935 
1936 
1937 
1938 /*
1939     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
1940    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1941    |  Status Conditions    | Proto |        EtherType Field        |
1942    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1943 
1944                      Argus Record Status Field
1945           Note that one tick mark represents one bit position.
1946 */
1947 
1948 
1949 #define ARGUS_V2_ETHERTYPE		0x00FFFF
1950 
1951 #define ARGUS_V2_MPLS		0x00010000
1952 #define ARGUS_V2_VLAN		0x00020000
1953 #define ARGUS_V2_PPPoE 		0x00040000
1954 #define ARGUS_V2_SNAPENCAPS	0x00080000
1955 
1956 #define ARGUS_V2_CONNECTED	0x00100000
1957 #define ARGUS_V2_ID_IS_IPADDR	0x00800000
1958 
1959 
1960 #define ARGUS_V2_SRC_VLAN		0x0001
1961 #define ARGUS_V2_DST_VLAN		0x0002
1962 
1963 #define ARGUS_V2_SRC_MPLS		0x0001
1964 #define ARGUS_V2_DST_MPLS		0x0002
1965 
1966 #define ARGUS_V2_SRC_CHANGED	0x0010
1967 #define ARGUS_V2_DST_CHANGED	0x0020
1968 
1969 
1970 /* Argus Error Messages go into the status field when
1971    the Record Cause is ARGUS_V2_ERROR.
1972 */
1973 
1974 #define ARGUS_V2_ACCESSDENIED	0x000010
1975 #define ARGUS_V2_MAXLISTENEXCD	0x000020
1976 
1977 
1978 /*  Link Types  */
1979 
1980 #define ARGUS_V2_ETHERNET			0x01000000
1981 #define ARGUS_V2_ATM			0x02000000
1982 #define ARGUS_V2_FDDI			0x03000000
1983 #define ARGUS_V2_TOKENRING			0x04000000
1984 #define ARGUS_V2_SLIP			0x05000000
1985 #define ARGUS_V2_PPP			0x06000000
1986 #define ARGUS_V2_ESP			0x07000000
1987 #define ARGUS_V2_RAW			0x08000000
1988 #define ARGUS_V2_NULL			0x09000000
1989 
1990 
1991 #define ARGUS_V2_SEND_FRAG_COMPLETE	0x10000000
1992 
1993 /*
1994                   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
1995                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1996                  |                               |
1997                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1998 
1999                        Argus FAR Status Field
2000         Note that one tick mark represents one bit position.
2001 */
2002 
2003 
2004 /* ICMP Mapped Indicator */
2005 /* argus_far.status indicator */
2006 
2007 #define ARGUS_V2_ICMP_MAPPED		0x0007
2008 #define ARGUS_V2_ICMPUNREACH_MAPPED	0x0001
2009 #define ARGUS_V2_ICMPREDIREC_MAPPED	0x0002
2010 #define ARGUS_V2_ICMPTIMXCED_MAPPED	0x0004
2011 
2012 #define ARGUS_V2_FRAGMENTS		0x0008
2013 #define ARGUS_V2_FRAGOVERLAP		0x0010
2014 
2015 #define ARGUS_V2_TOS_MODIFIED		0x0020
2016 #define ARGUS_V2_TTL_MODIFIED		0x0040
2017 #define ARGUS_V2_OPTION_MODIFIED	0x0080
2018 
2019 /* IP Option Indicators */
2020 
2021 #define ARGUS_V2_IPOPTIONS		0x3F00
2022 #define ARGUS_V2_TIMESTAMP		0x0100
2023 #define ARGUS_V2_SECURITY		0x0200
2024 #define ARGUS_V2_LSRCROUTE		0x0400
2025 #define ARGUS_V2_RECORDROUTE		0x0800
2026 #define ARGUS_V2_SSRCROUTE		0x1000
2027 #define ARGUS_V2_SATNETID		0x2000
2028 
2029 #define ARGUS_V2_MULTIADDR		0x4000
2030 
2031 
2032 /* Type:  DSR    Cause:  ANY  */
2033 
2034 #define ARGUS_V2_DSR_TYPES                 20
2035 #define ARGUS_V2_DSR_MAC                   0
2036 #define ARGUS_V2_DSR_TCP                   1
2037 #define ARGUS_V2_DSR_ICMP                  2
2038 #define ARGUS_V2_DSR_RTP                   3
2039 #define ARGUS_V2_DSR_RTCP                  4
2040 #define ARGUS_V2_DSR_IGMP                  5
2041 #define ARGUS_V2_DSR_ARP                   6
2042 #define ARGUS_V2_DSR_FRG                   7
2043 #define ARGUS_V2_DSR_ESP                   8
2044 #define ARGUS_V2_DSR_MPLS                  9
2045 #define ARGUS_V2_DSR_VLAN                  10
2046 #define ARGUS_V2_DSR_PPPOE                 11
2047 #define ARGUS_V2_DSR_AGR                   12
2048 #define ARGUS_V2_DSR_TIME                  13
2049 #define ARGUS_V2_DSR_SRCUSERDATA           14
2050 #define ARGUS_V2_DSR_DSTUSERDATA           15
2051 #define ARGUS_V2_DSR_SRCTIME               16
2052 #define ARGUS_V2_DSR_DSTTIME               17
2053 
2054 #define ARGUS_V2_MAC_DSR                   0x08
2055 
2056 #define ARGUS_V2_TCP_DSR                   0x11
2057 #define ARGUS_V2_ICMP_DSR                  0x12
2058 #define ARGUS_V2_RTP_DSR                   0x14
2059 #define ARGUS_V2_RTCP_DSR                  0x15
2060 #define ARGUS_V2_IGMP_DSR                  0x18
2061 
2062 #define ARGUS_V2_ARP_DSR                   0x20
2063 #define ARGUS_V2_FRG_DSR                   0x21
2064 #define ARGUS_V2_ESP_DSR                   0x22
2065 
2066 #define ARGUS_V2_MPLS_DSR                  0x28
2067 #define ARGUS_V2_VLAN_DSR                  0x2a
2068 #define ARGUS_V2_PPPOE_DSR                 0x2b
2069 
2070 #define ARGUS_V2_AGR_DSR                   0x30
2071 
2072 #define ARGUS_V2_TIME_DSR                  0x40
2073 #define ARGUS_V2_SRCUSRDATA_DSR            0x42
2074 #define ARGUS_V2_DSTUSRDATA_DSR            0x43
2075 
2076 #define ARGUS_V2_SRC_TIME_DSR              0x01
2077 #define ARGUS_V2_DST_TIME_DSR              0x02
2078 
2079 
2080 /* IP Sec AH Header Status Bits */
2081 
2082 #define ARGUS_V2_AH_HDR                  0x00000010
2083 #define ARGUS_V2_AH_REPLAY               0x00000008
2084 
2085 
2086 /* RTP State Constants and Reporting Values */
2087 
2088 #define ARGUS_V2_RTP_SRCSILENCE		0x01
2089 #define ARGUS_V2_RTP_DSTSILENCE		0x02
2090 
2091 #define ARGUS_V2_RTCP_TAG			0x2000
2092 #define ARGUS_V2_RTP_TAG			0x4000
2093 
2094 #define ARGUS_V2_HTTP_FLOWTAG		0x01
2095 #define ARGUS_V2_RTCP_FLOWTAG		0x10
2096 #define ARGUS_V2_RTP_FLOWTAG		0x20
2097 #define ARGUS_V2_FRAG_FLOWTAG		0xCB
2098 
2099 
2100 /* TCP State Constants and Reporting Values */
2101 
2102 #define ARGUS_V2_SAW_SYN			0x00000001
2103 #define ARGUS_V2_SAW_SYN_SENT		0x00000002
2104 #define ARGUS_V2_CON_ESTABLISHED		0x00000004
2105 #define ARGUS_V2_FIN			0x00000008
2106 #define ARGUS_V2_FIN_ACK			0x00000010
2107 
2108 #define ARGUS_V2_NORMAL_CLOSE		0x00000020
2109 #define ARGUS_V2_CLOSE_WAITING		0x00000040
2110 
2111 #define ARGUS_V2_PKTS_RETRANS		0x00000300  /* SRC_PKTS_RETRANS | DST_PK*/
2112 #define ARGUS_V2_SRC_PKTS_RETRANS		0x00000100
2113 #define ARGUS_V2_DST_PKTS_RETRANS		0x00000200
2114 
2115 #define ARGUS_V2_WINDOW_SHUT             	0x00000C00  /* SRC_WINDOW_SHUT | DST_WIN*/
2116 #define ARGUS_V2_SRC_WINDOW_SHUT         	0x00000400
2117 #define ARGUS_V2_DST_WINDOW_SHUT         	0x00000800
2118 #define ARGUS_V2_RESET                   	0x00003000  /* SRC_RESET | DST_RESET */
2119 #define ARGUS_V2_SRC_RESET               	0x00001000
2120 #define ARGUS_V2_DST_RESET               	0x00002000
2121 #define ARGUS_V2_ECN_CONGESTED           	0x0000C000  /* SRC_CONGESTED | DST_CONGESTED */
2122 #define ARGUS_V2_SRC_CONGESTED           	0x00004000
2123 #define ARGUS_V2_DST_CONGESTED           	0x00008000
2124 
2125 
2126 #define ARGUS_V2_TCP_OUTOFORDER    	0x00030000
2127 #define ARGUS_V2_SRC_OUTOFORDER    	0x00010000
2128 #define ARGUS_V2_DST_OUTOFORDER    	0x00020000
2129 
2130 #define ARGUS_V2_TCP_OPTIONS	0xFFF00000
2131 #define ARGUS_V2_TCP_MAXSEG	0x00100000
2132 #define ARGUS_V2_TCP_WSCALE	0x00200000
2133 #define ARGUS_V2_TCP_SACKOK	0x00400000
2134 #define ARGUS_V2_TCP_SACK		0x00800000
2135 #define ARGUS_V2_TCP_ECHO		0x01000000
2136 #define ARGUS_V2_TCP_ECHOREPLY	0x02000000
2137 #define ARGUS_V2_TCP_TIMESTAMP	0x04000000
2138 #define ARGUS_V2_TCP_CC		0x08000000
2139 #define ARGUS_V2_TCP_CCNEW		0x10000000
2140 #define ARGUS_V2_TCP_CCECHO	0x20000000
2141 
2142 #define ARGUS_V2_TCP_SRC_ECN	0x40000000
2143 #define ARGUS_V2_TCP_DST_ECN	0x80000000
2144 
2145 
2146 /* Fragment State Constants and Reporting Values */
2147 
2148 #define ARGUS_V2_FRAG_INIT			0x0001
2149 #define ARGUS_V2_FRAG_OUT_OF_ORDER		0x0002
2150 #define ARGUS_V2_TCPFRAGOFFSETERROR	0x0004
2151 
2152 /* User Data Status Values */
2153 
2154 #define ARGUS_V2_FAR_DSR_STATUS            0x00000001
2155 #define ARGUS_V2_MAC_DSR_STATUS            0x00000010
2156 #define ARGUS_V2_VLAN_DSR_STATUS           0x00000020
2157 #define ARGUS_V2_MPLS_DSR_STATUS           0x00000040
2158 #define ARGUS_V2_PPPOE_DSR_STATUS          0x00000080
2159 
2160 #define ARGUS_V2_TCP_DSR_STATUS            0x00000100
2161 #define ARGUS_V2_ICMP_DSR_STATUS           0x00000200
2162 #define ARGUS_V2_RTP_DSR_STATUS            0x00000400
2163 #define ARGUS_V2_RTCP_DSR_STATUS           0x00000800
2164 #define ARGUS_V2_IGMP_DSR_STATUS           0x00001000
2165 #define ARGUS_V2_ARP_DSR_STATUS            0x00002000
2166 #define ARGUS_V2_FRG_DSR_STATUS            0x00004000
2167 
2168 #define ARGUS_V2_TIME_DSR_STATUS           0x00100000
2169 #define ARGUS_V2_SRCUSRDATA_DSR_STATUS     0x00200000
2170 #define ARGUS_V2_DSTUSRDATA_DSR_STATUS     0x00400000
2171 #define ARGUS_V2_ESP_DSR_STATUS            0x00800000
2172 
2173 #define ARGUS_V2_SRCTIME_DSR_STATUS        0x01000000
2174 #define ARGUS_V2_DSTTIME_DSR_STATUS        0x02000000
2175 
2176 #define ARGUS_V2_AGR_DSR_STATUS            0x80000000
2177 
2178 #define ARGUS_V2_MAX_DSR_INDEX             32
2179 
2180 #define ARGUS_V2_FAR_DSR_INDEX             0
2181 
2182 #define ARGUS_V2_MAC_DSR_INDEX             4
2183 #define ARGUS_V2_VLAN_DSR_INDEX            5
2184 #define ARGUS_V2_MPLS_DSR_INDEX            6
2185 #define ARGUS_V2_PPPOE_DSR_INDEX           7
2186 #define ARGUS_V2_TCP_DSR_INDEX             8
2187 #define ARGUS_V2_ICMP_DSR_INDEX            9
2188 #define ARGUS_V2_RTP_DSR_INDEX             10
2189 #define ARGUS_V2_RTCP_DSR_INDEX            11
2190 #define ARGUS_V2_IGMP_DSR_INDEX            12
2191 #define ARGUS_V2_ARP_DSR_INDEX             13
2192 #define ARGUS_V2_FRG_DSR_INDEX             14
2193 
2194 #define ARGUS_V2_TIME_DSR_INDEX		20
2195 #define ARGUS_V2_SRCUSRDATA_DSR_INDEX	21
2196 #define ARGUS_V2_DSTUSRDATA_DSR_INDEX	22
2197 #define ARGUS_V2_ESP_DSR_INDEX		23
2198 #define ARGUS_V2_SRCTIME_DSR_INDEX		24
2199 #define ARGUS_V2_DSTTIME_DSR_INDEX		25
2200 
2201 #define ARGUS_V2_AGR_DSR_INDEX		31
2202 
2203 #define ARGUS_V2_AGR_USECACTTIME		0x0010
2204 #define ARGUS_V2_AGR_USECIDLETIME		0x0020
2205 
2206 #define ARGUS_V2_AGR_MSECACTTIME		0x0040
2207 #define ARGUS_V2_AGR_MSECIDLETIME		0x0080
2208 
2209 #define ARGUS_V2_AGR_NORMALIZED  		0x0100
2210 
2211 #define IANA_IFT_OTHER				1
2212 #define IANA_IFT_REGULAR1822			2
2213 #define IANA_IFT_HDH1822			3
2214 #define IANA_IFT_DDNX25				4
2215 #define IANA_IFT_RFC877X25			5
2216 #define IANA_IFT_ETHERNETCSMACD			6
2217 #define IANA_IFT_ISO88023CSMACD			7
2218 #define IANA_IFT_ISO88024TOKENBUS		8
2219 #define IANA_IFT_ISO88025TOKENRING		9
2220 #define IANA_IFT_ISO88026MAN			10
2221 #define IANA_IFT_STARLAN			11
2222 #define IANA_IFT_PROTEON10MBIT			12
2223 #define IANA_IFT_PROTEON80MBIT			13
2224 #define IANA_IFT_HYPERCHANNEL			14
2225 #define IANA_IFT_FDDI				15
2226 #define IANA_IFT_LAPB				16
2227 #define IANA_IFT_SDLC				17
2228 #define IANA_IFT_DS1				18
2229 #define IANA_IFT_E1				19
2230 #define IANA_IFT_BASICISDN			20
2231 #define IANA_IFT_PRIMARYISDN			21
2232 #define IANA_IFT_PROPPOINTTOPOINTSERIAL		22
2233 #define IANA_IFT_PPP				23
2234 #define IANA_IFT_SOFTWARELOOPBACK		24
2235 #define IANA_IFT_EON				25
2236 #define IANA_IFT_ETHERNET3MBIT			26
2237 #define IANA_IFT_NSIP				27
2238 #define IANA_IFT_SLIP				28
2239 #define IANA_IFT_ULTRA				29
2240 #define IANA_IFT_DS3				30
2241 #define IANA_IFT_SIP				31
2242 #define IANA_IFT_FRAMERELAY			32
2243 #define IANA_IFT_RS232				33
2244 #define IANA_IFT_PARA				34
2245 #define IANA_IFT_ARCNET				35
2246 #define IANA_IFT_ARCNETPLUS			36
2247 #define IANA_IFT_ATM				37
2248 #define IANA_IFT_MIOX25				38
2249 #define IANA_IFT_SONET				39
2250 #define IANA_IFT_X25PLE				40
2251 #define IANA_IFT_ISO88022LLC			41
2252 #define IANA_IFT_LOCALTALK			42
2253 #define IANA_IFT_SMDSDXI			43
2254 #define IANA_IFT_FRAMERELAYSERVICE		44
2255 #define IANA_IFT_V35				45
2256 #define IANA_IFT_HSSI				46
2257 #define IANA_IFT_HIPPI				47
2258 #define IANA_IFT_MODEM				48
2259 #define IANA_IFT_AAL5				49
2260 #define IANA_IFT_SONETPATH			50
2261 #define IANA_IFT_SONETVT			51
2262 #define IANA_IFT_SMDSICIP			52
2263 #define IANA_IFT_PROPVIRTUAL			53
2264 #define IANA_IFT_PROPMULTIPLEXOR		54
2265 #define IANA_IFT_IEEE80212			55
2266 #define IANA_IFT_FIBRECHANNEL			56
2267 #define IANA_IFT_HIPPIINTERFACE			57
2268 #define IANA_IFT_FRAMERELAYINTERCONNECT		58
2269 #define IANA_IFT_AFLANE8023			59
2270 #define IANA_IFT_AFLANE8025			60
2271 #define IANA_IFT_CCTEMUL			61
2272 #define IANA_IFT_FASTETHER			62
2273 #define IANA_IFT_ISDN				63
2274 #define IANA_IFT_V11				64
2275 #define IANA_IFT_V36				65
2276 #define IANA_IFT_G703AT64K			66
2277 #define IANA_IFT_G703AT2MB			67
2278 #define IANA_IFT_QLLC				68
2279 #define IANA_IFT_FASTETHERFX			69
2280 #define IANA_IFT_CHANNEL			70
2281 #define IANA_IFT_IEEE80211			71
2282 #define IANA_IFT_IBM370PARCHAN			72
2283 #define IANA_IFT_ESCON				73
2284 #define IANA_IFT_DLSW				74
2285 #define IANA_IFT_ISDNS				75
2286 #define IANA_IFT_ISDNU				76
2287 #define IANA_IFT_LAPD				77
2288 #define IANA_IFT_IPSWITCH			78
2289 #define IANA_IFT_RSRB				79
2290 #define IANA_IFT_ATMLOGICAL			80
2291 #define IANA_IFT_DS0				81
2292 #define IANA_IFT_DS0BUNDLE			82
2293 #define IANA_IFT_BSC				83
2294 #define IANA_IFT_ASYNC				84
2295 #define IANA_IFT_CNR				85
2296 #define IANA_IFT_ISO88025DTR			86
2297 #define IANA_IFT_EPLRS				87
2298 #define IANA_IFT_ARAP				88
2299 #define IANA_IFT_PROPCNLS			89
2300 #define IANA_IFT_HOSTPAD			90
2301 #define IANA_IFT_TERMPAD			91
2302 #define IANA_IFT_FRAMERELAYMPI			92
2303 #define IANA_IFT_X213				93
2304 #define IANA_IFT_ADSL				94
2305 #define IANA_IFT_RADSL				95
2306 #define IANA_IFT_SDSL				96
2307 #define IANA_IFT_VDSL				97
2308 #define IANA_IFT_ISO88025CRFPINT		98
2309 #define IANA_IFT_MYRINET			99
2310 #define IANA_IFT_VOICEEM			100
2311 #define IANA_IFT_VOICEFXO			101
2312 #define IANA_IFT_VOICEFXS			102
2313 #define IANA_IFT_VOICEENCAP			103
2314 #define IANA_IFT_VOICEOVERIP			104
2315 #define IANA_IFT_ATMDXI				105
2316 #define IANA_IFT_ATMFUNI			106
2317 #define IANA_IFT_ATMIMA				107
2318 #define IANA_IFT_PPPMULTILINKBUNDLE		108
2319 #define IANA_IFT_IPOVERCDLC			109
2320 #define IANA_IFT_IPOVERCLAW			110
2321 #define IANA_IFT_STACKTOSTACK			111
2322 #define IANA_IFT_VIRTUALIPADDRESS		112
2323 #define IANA_IFT_MPC				113
2324 #define IANA_IFT_IPOVERATM			114
2325 #define IANA_IFT_ISO88025FIBER			115
2326 #define IANA_IFT_TDLC				116
2327 #define IANA_IFT_GIGABITETHERNET		117
2328 #define IANA_IFT_HDLC				118
2329 #define IANA_IFT_LAPF				119
2330 #define IANA_IFT_V37				120
2331 #define IANA_IFT_X25MLP				121
2332 #define IANA_IFT_X25HUNTGROUP			122
2333 #define IANA_IFT_TRASNPHDLC			123
2334 #define IANA_IFT_INTERLEAVE			124
2335 #define IANA_IFT_FAST				125
2336 #define IANA_IFT_IP				126
2337 #define IANA_IFT_DOCSCABLEMACLAYER		127
2338 #define IANA_IFT_DOCSCABLEDOWNSTREAM		128
2339 #define IANA_IFT_DOCSCABLEUPSTREAM		129
2340 #define IANA_IFT_A12MPPSWITCH			130
2341 #define IANA_IFT_TUNNEL				131
2342 #define IANA_IFT_COFFEE				132
2343 #define IANA_IFT_CES				133
2344 #define IANA_IFT_ATMSUBINTERFACE		134
2345 #define IANA_IFT_L2VLAN				135
2346 #define IANA_IFT_L3IPVLAN			136
2347 #define IANA_IFT_L3IPXVLAN			137
2348 #define IANA_IFT_DIGITALPOWERLINE		138
2349 #define IANA_IFT_MEDIAMAILOVERIP		139
2350 #define IANA_IFT_DTM				140
2351 #define IANA_IFT_DCN				141
2352 #define IANA_IFT_IPFORWARD			142
2353 #define IANA_IFT_MSDSL				143
2354 #define IANA_IFT_IEEE1394			144
2355 #define IANA_IFT_IF_GSN				145
2356 #define IANA_IFT_DVBRCCMACLAYER			146
2357 #define IANA_IFT_DVBRCCDOWNSTREAM		147
2358 #define IANA_IFT_DVBRCCUPSTREAM			148
2359 #define IANA_IFT_ATMVIRTUAL			149
2360 #define IANA_IFT_MPLSTUNNEL			150
2361 #define IANA_IFT_SRP				151
2362 #define IANA_IFT_VOICEOVERATM			152
2363 #define IANA_IFT_VOICEOVERFRAMERELAY		153
2364 #define IANA_IFT_IDSL				154
2365 #define IANA_IFT_COMPOSITELINK			155
2366 #define IANA_IFT_SS7SIGLINK			156
2367 #define IANA_IFT_PROPWIRELESSP2P		157
2368 #define IANA_IFT_FRFORWARD			158
2369 #define IANA_IFT_RFC1483			159
2370 #define IANA_IFT_USB				160
2371 #define IANA_IFT_IEEE8023ADLAG			161
2372 #define IANA_IFT_BGPPOLICYACCOUNTING		162
2373 #define IANA_IFT_FRF16MFRBUNDLE			163
2374 #define IANA_IFT_H323GATEKEEPER			164
2375 #define IANA_IFT_H323PROXY			165
2376 #define IANA_IFT_MPLS				166
2377 #define IANA_IFT_MFSIGLINK			167
2378 #define IANA_IFT_HDSL2				168
2379 #define IANA_IFT_SHDSL				169
2380 #define IANA_IFT_DS1FDL				170
2381 #define IANA_IFT_POS				171
2382 #define IANA_IFT_DVBASIIN			172
2383 #define IANA_IFT_DVBASIOUT			173
2384 #define IANA_IFT_PLC				174
2385 #define IANA_IFT_NFAS				175
2386 #define IANA_IFT_TR008				176
2387 #define IANA_IFT_GR303RDT			177
2388 #define IANA_IFT_GR303IDT			178
2389 #define IANA_IFT_ISUP				179
2390 #define IANA_IFT_PROPDOCSWIRELESSMACLAYER	180
2391 #define IANA_IFT_PROPDOCSWIRELESSDOWNSTREAM	181
2392 #define IANA_IFT_PROPDOCSWIRELESSUPSTREAM	182
2393 #define IANA_IFT_HIPERLAN2			183
2394 #define IANA_IFT_PROPBWAP2MP			184
2395 #define IANA_IFT_SONETOVERHEADCHANNEL		185
2396 #define IANA_IFT_DIGITALWRAPPEROVERHEADCHANNEL	186
2397 #define IANA_IFT_AAL2				187
2398 #define IANA_IFT_RADIOMAC			188
2399 #define IANA_IFT_ATMRADIO			189
2400 #define IANA_IFT_IMT				190
2401 #define IANA_IFT_MVL				191
2402 #define IANA_IFT_REACHDSL			192
2403 #define IANA_IFT_FRDLCIENDPT			193
2404 #define IANA_IFT_ATMVCIENDPT			194
2405 #define IANA_IFT_OPTICALCHANNEL			195
2406 #define IANA_IFT_OPTICALTRANSPORT		196
2407 #define IANA_IFT_PROPATM			197
2408 #define IANA_IFT_VOICEOVERCABLE			198
2409 #define IANA_IFT_INFINIBAND			199
2410 #define IANA_IFT_TELINK				200
2411 #define IANA_IFT_Q2931				201
2412 #define IANA_IFT_VIRTUALTG			202
2413 #define IANA_IFT_SIPTG				203
2414 #define IANA_IFT_SIPSIG				204
2415 #define IANA_IFT_DOCSCABLEUPSTREAMCHANNEL	205
2416 #define IANA_IFT_ECONET				206
2417 #define IANA_IFT_PON155				207
2418 #define IANA_IFT_PON622				208
2419 #define IANA_IFT_BRIDGE				209
2420 #define IANA_IFT_LINEGROUP			210
2421 #define IANA_IFT_VOICEEMFGD			211
2422 #define IANA_IFT_VOICEFGDEANA			212
2423 #define IANA_IFT_VOICEDID			213
2424 #define IANA_IFT_MPEGTRANSPORT			214
2425 #define IANA_IFT_SIXTOFOUR			215
2426 #define IANA_IFT_GTP				216
2427 #define IANA_IFT_PDNETHERLOOP1			217
2428 #define IANA_IFT_PDNETHERLOOP2			218
2429 #define IANA_IFT_OPTICALCHANNELGROUP		219
2430 
2431 #ifdef __cplusplus
2432 }
2433 #endif
2434 #endif/*Argus_def_h*/
2435 
2436