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