Changeset 17 for trunk/src/dataFlowSet.c
- Timestamp:
- 05/22/06 16:25:24 (17 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/dataFlowSet.c
r16 r17 63 63 struct PrefixV4 prefixKey, *res; /* for bsearch */ 64 64 struct AggCache agCache; 65 int bool = 0; 65 66 66 67 buffer2[1] = *(buf+(*offV9));(*offV9)++; … … 86 87 return (data_length+shift); 87 88 } 89 /* aggreg */ 90 agCache.routerAd = pcktPtr->ipH->srcAdd; 91 /* end aggreg */ 88 92 pftmp = tmp->lastField; 89 93 secondPftmp = tmp->lastField; … … 118 122 case 1: 119 123 buffer1 = *(buf+(*offV9)); (*offV9)++; 124 /* rule check */ 120 125 if (((RuleDefPtr)(*(rulesCache+pos)))->value->stor.cvalue 121 126 == *((unsigned char*)&buffer1)) { 122 127 ((RuleDefPtr)(*(rulesCache+pos)))->check = 1; 123 128 } 129 /* end rule check */ 124 130 /* aggregation */ 125 131 if ((pftmp->fieldType==9)||(pftmp->fieldType==29)){ 132 agCache.maskS = *((unsigned char*)&buffer1); 133 } 134 if ((pftmp->fieldType==13)||(pftmp->fieldType==30)){ 135 agCache.maskD = *((unsigned char*)&buffer1); 136 } 137 if (pftmp->fieldType==60){ 138 agCache.ipProt = *((unsigned char*)&buffer1); 139 } 140 if (pftmp->fieldType==4){ 141 agCache.tProt = *((unsigned char*)&buffer1); 142 } 143 if (pftmp->fieldType==61){ 144 agCache.sens = *((unsigned char*)&buffer1); 145 } 146 if (pftmp->fieldType==5){ 147 agCache.dscp = *((unsigned char*)&buffer1); 148 } 126 149 /* end aggregation */ 127 150 break; … … 133 156 ((RuleDefPtr)(*(rulesCache+pos)))->check = 1; 134 157 /* aggregation */ 135 158 if (pftmp->fieldType==10){ 159 agCache.idSnmp = *((unsigned short*)&buffer2); 160 } 161 /* end aggregation */ 162 break; 163 case 3: 164 buffer4[3]= 0; 165 buffer4[2]= *(buf+(*offV9)); (*offV9)++; 166 buffer4[1]= *(buf+(*offV9)); (*offV9)++; 167 buffer4[0]= *(buf+(*offV9)); (*offV9)++; 168 if (((RuleDefPtr)(*(rulesCache+pos)))->value->stor.lvalue 169 == *((unsigned long*)&buffer4)) 170 ((RuleDefPtr)(*(rulesCache+pos)))->check = 1; 171 /* aggregation */ 136 172 /* end aggregation */ 137 173 break; … … 148 184 ((RuleDefPtr)(*(rulesCache+pos)))->check = 1; 149 185 } 150 prefixKey.beginning = *((unsigned long*)&buffer4);151 res = bsearch(&prefixKey, V4PTab, nbPV4,152 sizeof(struct PrefixV4), prefCmp);153 if (res == NULL)154 fprintf(stderr,"!");155 else156 fprintf(stderr,".");157 186 } 158 187 /* aggregation */ 159 188 if ((pftmp->fieldType==8)){ 189 agCache.v4AdS = *((unsigned long*)&buffer4); 190 } 191 if ((pftmp->fieldType==12)){ 192 agCache.v4AdD = *((unsigned long*)&buffer4); 193 } 194 if (pftmp->fieldType==1){ 195 agCache.bytes = *((unsigned long*)&buffer4); 196 } 197 if (pftmp->fieldType==2){ 198 agCache.pkts = *((unsigned long*)&buffer4); 199 } 160 200 /* end aggregation */ 161 201 break; … … 311 351 buffer1 = *(buf+(*offV9)); (*offV9)++; 312 352 /* aggregation */ 313 353 if ((pftmp->fieldType==9)||(pftmp->fieldType==29)){ 354 agCache.maskS = *((unsigned char*)&buffer1); 355 } 356 if ((pftmp->fieldType==13)||(pftmp->fieldType==30)){ 357 agCache.maskD = *((unsigned char*)&buffer1); 358 } 359 if (pftmp->fieldType==60){ 360 agCache.ipProt = *((unsigned char*)&buffer1); 361 } 362 if (pftmp->fieldType==4){ 363 agCache.tProt = *((unsigned char*)&buffer1); 364 } 365 if (pftmp->fieldType==61){ 366 agCache.sens = *((unsigned char*)&buffer1); 367 } 368 if (pftmp->fieldType==5){ 369 agCache.dscp = *((unsigned char*)&buffer1); 370 } 314 371 /* end aggregation */ 315 372 break; … … 318 375 buffer2[0]= *(buf+(*offV9)); (*offV9)++; 319 376 /* aggregation */ 320 377 if (pftmp->fieldType==10){ 378 agCache.idSnmp = *((unsigned short*)&buffer2); 379 } 380 /* end aggregation */ 381 break; 382 case 3: 383 buffer4[3]= 0; 384 buffer4[2]= *(buf+(*offV9)); (*offV9)++; 385 buffer4[1]= *(buf+(*offV9)); (*offV9)++; 386 buffer4[0]= *(buf+(*offV9)); (*offV9)++; 387 /* fprintf(stderr,"L: %lu\n",(*((unsigned long*)&buffer4))); */ 388 /* fprintf(stderr,"L>>4: %lu\n",(*((unsigned long*)&buffer4))>>4); */ 389 /* fprintf(stderr,"L>>1<<29>>29: %lu\n",(*((unsigned long*)&buffer4))>>1<<29>>29); */ 390 /* fprintf(stderr,"L<<31>>31: %lu\n",(*((unsigned long*)&buffer4))<<31>>31); */ 391 /* aggregation */ 321 392 /* end aggregation */ 322 393 break; … … 327 398 buffer4[0]= *(buf+(*offV9)); (*offV9)++; 328 399 /* aggregation */ 329 400 if ((pftmp->fieldType==8)){ 401 bool = 1; 402 agCache.v4AdS = *((unsigned long*)&buffer4); 403 } else if ((pftmp->fieldType==12)){ 404 agCache.v4AdD = *((unsigned long*)&buffer4); 405 } else if (pftmp->fieldType==1){ 406 agCache.bytes = *((unsigned long*)&buffer4); 407 } else if (pftmp->fieldType==2){ 408 agCache.pkts = *((unsigned long*)&buffer4); 409 } 330 410 /* end aggregation */ 331 411 break; … … 353 433 */ 354 434 /* put aggregation cache information to tables */ 355 435 if (bool == 1){ 436 prefixKey.beginning = agCache.v4AdS>>(32-agCache.maskS)<<(32-agCache.maskS); 437 res = bsearch(&prefixKey, V4PTab, nbPV4, 438 sizeof(struct PrefixV4), prefCmp); 439 } 440 bool = 0; 356 441 /* end put */ 357 442 /*