1 /* 2 * Argus Software 3 * Copyright (c) 2000-2016 QoSient, LLC 4 * All rights reserved. 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2, or (at your option) 9 * any later version. 10 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 * 20 */ 21 22 /* 23 * $Id: //depot/argus/clients/include/argus_sort.h#39 $ 24 * $DateTime: 2016/06/01 15:17:28 $ 25 * $Change: 3148 $ 26 */ 27 28 #ifndef ArgusSort_h 29 #define ArgusSort_h 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 #define ARGUS_MAX_SORT_ALG 75 36 #define MAX_SORT_ALG_TYPES 75 37 38 struct ArgusSortRecord { 39 struct ArgusQueueHeader qhdr; 40 struct ArgusRecordStruct *record; 41 }; 42 43 struct ArgusSorterStruct { 44 int ArgusSortOptionIndex, ArgusReplaceMode; 45 struct ArgusQueueStruct *ArgusRecordQueue; 46 int (*ArgusSortAlgorithms[ARGUS_MAX_SORT_ALG])(struct ArgusRecordStruct *, struct ArgusRecordStruct *); 47 int (*ArgusSortAlgorithm)(struct ArgusRecordStruct *, struct ArgusRecordStruct *); 48 double (*ArgusFetchAlgorithms[ARGUS_MAX_SORT_ALG])(struct ArgusRecordStruct *); 49 int ArgusFetchAlgNumber; 50 char *ArgusSOptionStrings[ARGUS_MAX_S_OPTIONS]; 51 struct nff_program filter; 52 char ArgusSrcAddrCIDR, ArgusDstAddrCIDR; 53 }; 54 55 #define ARGUSSORTSTARTTIME 1 56 #define ARGUSSORTLASTTIME 2 57 #define ARGUSSORTTRANSACTIONS 3 58 #define ARGUSSORTDURATION 4 59 #define ARGUSSORTAVGDURATION 5 60 #define ARGUSSORTMINDURATION 6 61 #define ARGUSSORTMAXDURATION 7 62 #define ARGUSSORTSRCMAC 8 63 #define ARGUSSORTDSTMAC 9 64 #define ARGUSSORTSRCADDR 10 65 #define ARGUSSORTDSTADDR 11 66 #define ARGUSSORTPROTOCOL 12 67 #define ARGUSSORTSRCIPID 13 68 #define ARGUSSORTDSTIPID 14 69 #define ARGUSSORTSRCPORT 15 70 #define ARGUSSORTDSTPORT 16 71 #define ARGUSSORTSRCTOS 17 72 #define ARGUSSORTDSTTOS 18 73 #define ARGUSSORTSRCTTL 19 74 #define ARGUSSORTDSTTTL 20 75 #define ARGUSSORTBYTECOUNT 21 76 #define ARGUSSORTSRCBYTECOUNT 22 77 #define ARGUSSORTDSTBYTECOUNT 23 78 #define ARGUSSORTPKTSCOUNT 24 79 #define ARGUSSORTSRCPKTSCOUNT 25 80 #define ARGUSSORTDSTPKTSCOUNT 26 81 #define ARGUSSORTAPPBYTECOUNT 27 82 #define ARGUSSORTSRCAPPBYTECOUNT 28 83 #define ARGUSSORTDSTAPPBYTECOUNT 29 84 #define ARGUSSORTLOAD 30 85 #define ARGUSSORTSRCLOAD 31 86 #define ARGUSSORTDSTLOAD 32 87 #define ARGUSSORTLOSS 33 88 #define ARGUSSORTPERCETLOSS 34 89 #define ARGUSSORTRATE 35 90 #define ARGUSSORTSRCRATE 36 91 #define ARGUSSORTDSTRATE 37 92 #define ARGUSSORTTRANREF 38 93 #define ARGUSSORTSEQ 39 94 #define ARGUSSORTSRCMPLS 40 95 #define ARGUSSORTDSTMPLS 41 96 #define ARGUSSORTSRCVLAN 42 97 #define ARGUSSORTDSTVLAN 43 98 #define ARGUSSORTSRCID 44 99 #define ARGUSSORTSRCTCPBASE 45 100 #define ARGUSSORTDSTTCPBASE 46 101 #define ARGUSSORTTCPRTT 47 102 #define ARGUSSORTSRCLOSS 48 103 #define ARGUSSORTDSTLOSS 49 104 #define ARGUSSORTPERCENTSRCLOSS 50 105 #define ARGUSSORTPERCENTDSTLOSS 51 106 #define ARGUSSORTSRCMAXPKTSIZE 52 107 #define ARGUSSORTSRCMINPKTSIZE 53 108 #define ARGUSSORTDSTMAXPKTSIZE 54 109 #define ARGUSSORTDSTMINPKTSIZE 55 110 #define ARGUSSORTSRCDSBYTE 56 111 #define ARGUSSORTDSTDSBYTE 57 112 #define ARGUSSORTSRCCOCODE 58 113 #define ARGUSSORTDSTCOCODE 59 114 #define ARGUSSORTSRCAS 60 115 #define ARGUSSORTDSTAS 61 116 #define ARGUSSORTSUM 62 117 #define ARGUSSORTRUNTIME 63 118 #define ARGUSSORTIDLETIME 64 119 #define ARGUSSORTSRCOUI 65 120 #define ARGUSSORTDSTOUI 66 121 #define ARGUSSORTAPPBYTES 67 122 #define ARGUSSORTSRCAPPBYTES 68 123 #define ARGUSSORTDSTAPPBYTES 69 124 #define ARGUSSORTAPPBYTERATIO 70 125 #define ARGUSSORTINODE 71 126 127 #define ARGUSSORTSRCGAP 72 128 #define ARGUSSORTDSTGAP 73 129 #define ARGUSSORTSRCDUP 74 130 #define ARGUSSORTDSTDUP 75 131 132 #if defined(ArgusSort) 133 134 struct ArgusSorterStruct *ArgusSorter = NULL; 135 int ArgusReverseSortDir = 0; 136 137 struct ArgusSorterStruct *ArgusNewSorter (struct ArgusParserStruct *parser); 138 139 void ArgusDeleteSorter (struct ArgusSorterStruct *); 140 void ArgusProcessSortOptions(void); 141 void ArgusSortQueue (struct ArgusSorterStruct *, struct ArgusQueueStruct *); 142 int ArgusSortRoutine (const void *, const void *); 143 144 int ArgusSortSrcId (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 145 int ArgusSortTime (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 146 int ArgusSortIdleTime (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 147 int ArgusSortStartTime (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 148 int ArgusSortLastTime (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 149 int ArgusSortTransactions (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 150 int ArgusSortDuration (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 151 int ArgusSortMean (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 152 int ArgusSortMin (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 153 int ArgusSortMax (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 154 int ArgusSortSrcMac (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 155 int ArgusSortDstMac (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 156 int ArgusSortSrcAddr (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 157 int ArgusSortDstAddr (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 158 int ArgusSortInode (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 159 int ArgusSortProtocol (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 160 int ArgusSortSrcMpls (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 161 int ArgusSortDstMpls (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 162 int ArgusSortSrcVlan (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 163 int ArgusSortDstVlan (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 164 int ArgusSortSrcIpId (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 165 int ArgusSortDstIpId (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 166 int ArgusSortSrcPort (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 167 int ArgusSortDstPort (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 168 int ArgusSortSrcTos (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 169 int ArgusSortDstTos (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 170 int ArgusSortSrcDSByte (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 171 int ArgusSortDstDSByte (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 172 int ArgusSortSrcTtl (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 173 int ArgusSortDstTtl (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 174 int ArgusSortByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 175 int ArgusSortLoad (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 176 int ArgusSortSrcLoad (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 177 int ArgusSortDstLoad (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 178 int ArgusSortLoss (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 179 int ArgusSortPercentLoss (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 180 int ArgusSortRate (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 181 int ArgusSortSrcRate (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 182 int ArgusSortDstRate (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 183 int ArgusSortSrcMeanPktSize (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 184 int ArgusSortDstMeanPktSize (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 185 int ArgusSortTranRef (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 186 int ArgusSortSeq (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 187 int ArgusSortByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 188 int ArgusSortSrcByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 189 int ArgusSortDstByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 190 191 int ArgusSortAppByteRatio (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 192 193 int ArgusSortAppByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 194 int ArgusSortAppSrcByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 195 int ArgusSortAppDstByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 196 197 int ArgusSortPktsCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 198 int ArgusSortSrcPktsCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 199 int ArgusSortDstPktsCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 200 int ArgusSortAppByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 201 int ArgusSortSrcAppByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 202 int ArgusSortDstAppByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 203 int ArgusSortSrcTcpBase (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 204 int ArgusSortDstTcpBase (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 205 int ArgusSortTcpRtt (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 206 int ArgusSortSrcLoss (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 207 int ArgusSortDstLoss (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 208 int ArgusSortPercentSrcLoss (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 209 int ArgusSortPercentDstLoss (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 210 int ArgusSortSrcMaxPktSize (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 211 int ArgusSortSrcMinPktSize (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 212 int ArgusSortDstMaxPktSize (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 213 int ArgusSortDstMinPktSize (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 214 int ArgusSortSrcCountryCode (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 215 int ArgusSortDstCountryCode (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 216 int ArgusSortSrcASNum (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 217 int ArgusSortDstASNum (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 218 int ArgusSortSum (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 219 int ArgusSortSrcOui (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 220 int ArgusSortDstOui (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 221 222 int ArgusSortSrcGap (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 223 int ArgusSortDstGap (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 224 225 /* 226 int ArgusSortSrcDup (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 227 int ArgusSortDstDup (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 228 */ 229 230 int (*ArgusSortAlgorithmTable[MAX_SORT_ALG_TYPES])(struct ArgusRecordStruct *, struct ArgusRecordStruct *) = { 231 ArgusSortStartTime, 232 ArgusSortStartTime, 233 ArgusSortLastTime, 234 ArgusSortTransactions, 235 ArgusSortDuration, 236 ArgusSortMean, 237 ArgusSortMin, 238 ArgusSortMax, 239 ArgusSortSrcMac, 240 ArgusSortDstMac, 241 ArgusSortSrcAddr, 242 ArgusSortDstAddr, 243 ArgusSortProtocol, 244 ArgusSortSrcIpId, 245 ArgusSortDstIpId, 246 ArgusSortSrcPort, 247 ArgusSortDstPort, 248 ArgusSortSrcTos, 249 ArgusSortDstTos, 250 ArgusSortSrcTtl, 251 ArgusSortDstTtl, 252 253 ArgusSortByteCount, 254 ArgusSortSrcByteCount, 255 ArgusSortDstByteCount, 256 257 ArgusSortPktsCount, 258 ArgusSortSrcPktsCount, 259 ArgusSortDstPktsCount, 260 ArgusSortAppByteCount, 261 ArgusSortSrcAppByteCount, 262 ArgusSortDstAppByteCount, 263 ArgusSortLoad, 264 ArgusSortSrcLoad, 265 ArgusSortDstLoad, 266 ArgusSortLoss, 267 ArgusSortPercentLoss, 268 ArgusSortRate, 269 ArgusSortSrcRate, 270 ArgusSortDstRate, 271 ArgusSortTranRef, 272 ArgusSortSeq, 273 ArgusSortSrcMpls, 274 ArgusSortDstMpls, 275 ArgusSortSrcVlan, 276 ArgusSortDstVlan, 277 ArgusSortSrcId, 278 ArgusSortSrcTcpBase, 279 ArgusSortDstTcpBase, 280 ArgusSortTcpRtt, 281 ArgusSortSrcLoss, 282 ArgusSortDstLoss, 283 ArgusSortPercentSrcLoss, 284 ArgusSortPercentDstLoss, 285 ArgusSortSrcMaxPktSize, 286 ArgusSortSrcMinPktSize, 287 ArgusSortDstMaxPktSize, 288 ArgusSortDstMinPktSize, 289 ArgusSortSrcDSByte, 290 ArgusSortDstDSByte, 291 ArgusSortSrcCountryCode, 292 ArgusSortDstCountryCode, 293 ArgusSortSrcASNum, 294 ArgusSortDstASNum, 295 ArgusSortSum, 296 ArgusSortSum, 297 ArgusSortIdleTime, 298 ArgusSortSrcOui, 299 ArgusSortDstOui, 300 301 ArgusSortAppByteCount, 302 ArgusSortSrcAppByteCount, 303 ArgusSortDstAppByteCount, 304 ArgusSortAppByteRatio, 305 ArgusSortAppByteRatio, 306 ArgusSortInode, 307 ArgusSortSrcGap, 308 ArgusSortDstGap, 309 }; 310 311 char *ArgusSortKeyWords[MAX_SORT_ALG_TYPES] = { 312 "stime", 313 "stime", 314 "ltime", 315 "trans", 316 "dur", 317 "mean", 318 "min", 319 "max", 320 "smac", 321 "dmac", 322 "saddr", 323 "daddr", 324 "proto", 325 "sipid", 326 "dipid", 327 "sport", 328 "dport", 329 "stos", 330 "dtos", 331 "sttl", 332 "dttl", 333 "bytes", 334 "sbytes", 335 "dbytes", 336 "pkts", 337 "spkts", 338 "dpkts", 339 "appbytes", 340 "sappbytes", 341 "dappbytes", 342 "load", 343 "sload", 344 "dload", 345 "loss", 346 "ploss", 347 "rate", 348 "srate", 349 "drate", 350 "tranref", 351 "seq", 352 "smpls", 353 "dmpls", 354 "svlan", 355 "dvlan", 356 "srcid", 357 "stcpb", 358 "dtcpb", 359 "tcprtt", 360 "sloss", 361 "dloss", 362 "sploss", 363 "dploss", 364 "smaxsz", 365 "sminsz", 366 "dmaxsz", 367 "dminsz", 368 "sdsb", 369 "ddsb", 370 "sco", 371 "dco", 372 "sas", 373 "das", 374 "sum", 375 "runtime", 376 "idle", 377 "soui", 378 "doui", 379 "appbytes", 380 "sappbytes", 381 "dappbytes", 382 "abr", 383 "pcr", 384 "inode", 385 "sgap", 386 "dgap", 387 }; 388 389 #else 390 391 392 extern struct ArgusSorterStruct *ArgusSorter; 393 extern int ArgusReverseSortDir; 394 395 extern struct ArgusSorterStruct *ArgusNewSorter (struct ArgusParserStruct *parser); 396 extern void ArgusDeleteSorter (struct ArgusSorterStruct *); 397 extern void ArgusProcessSortOptions(void); 398 extern void ArgusSortQueue (struct ArgusSorterStruct *, struct ArgusQueueStruct *); 399 extern int ArgusSortRoutine (const void *, const void *); 400 401 extern int ArgusSortSrcId (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 402 extern int ArgusSortTime (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 403 extern int ArgusSortIdleTime (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 404 extern int ArgusSortStartTime (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 405 extern int ArgusSortLastTime (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 406 extern int ArgusSortTransactions (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 407 extern int ArgusSortDuration (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 408 extern int ArgusSortMean (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 409 extern int ArgusSortMin (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 410 extern int ArgusSortMax (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 411 extern int ArgusSortSrcAddr (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 412 extern int ArgusSortDstAddr (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 413 extern int ArgusSortInode (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 414 extern int ArgusSortProtocol (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 415 extern int ArgusSortIpId (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 416 extern int ArgusSortSrcPort (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 417 extern int ArgusSortDstPort (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 418 extern int ArgusSortSrcTos (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 419 extern int ArgusSortDstTos (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 420 extern int ArgusSortSrcDSByte (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 421 extern int ArgusSortDstDSByte (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 422 extern int ArgusSortSrcTtl (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 423 extern int ArgusSortDstTtl (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 424 extern int ArgusSortByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 425 extern int ArgusSortLoad (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 426 extern int ArgusSortLoss (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 427 extern int ArgusSortPercentLoss (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 428 extern int ArgusSortRate (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 429 extern int ArgusSortTranRef (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 430 extern int ArgusSortSeq (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 431 extern int ArgusSortByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 432 extern int ArgusSortSrcByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 433 extern int ArgusSortDstByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 434 extern int ArgusSortPktsCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 435 extern int ArgusSortSrcPktsCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 436 extern int ArgusSortDstPktsCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 437 extern int ArgusSortAppByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 438 extern int ArgusSortSrcAppByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 439 extern int ArgusSortDstAppByteCount (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 440 extern int ArgusSortSrcTcpBase (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 441 extern int ArgusSortDstTcpBase (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 442 extern int ArgusSortTcpRtt (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 443 extern int ArgusSortSrcOui (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 444 extern int ArgusSortDstOui (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 445 446 extern int ArgusSortSrcGap (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 447 extern int ArgusSortDstGap (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 448 extern int ArgusSortSrcDup (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 449 extern int ArgusSortDstDup (struct ArgusRecordStruct *, struct ArgusRecordStruct *); 450 451 extern int (*ArgusSortAlgorithmTable[MAX_SORT_ALG_TYPES])(struct ArgusRecordStruct *, struct ArgusRecordStruct *); 452 extern char *ArgusSortKeyWords[MAX_SORT_ALG_TYPES]; 453 #endif 454 455 #ifdef __cplusplus 456 } 457 #endif 458 #endif 459 460