Show
Ignore:
Timestamp:
07/23/14 15:16:06 (8 years ago)
Author:
andreu
Message:

RECORDFLOW option

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/renetcolSMP/src/dataFlowSet.c

    r161 r166  
    3030 * 
    3131 */ 
     32#ifdef RECORDFLOW 
    3233short 
    3334checkDataFlowSet(short shift, 
    34                  struct MyPtrs *myPtrs, 
    35                  int myQueue, 
    36                  struct PrefixV4 *V4PTab, 
    37                  size_t nbPV4, 
    38                  struct PrefixV4 *V4STab, 
    39                  size_t nbSV4 
    40                  ) 
     35                 struct MyPtrs *myPtrs, 
     36                 int myQueue, 
     37                 struct PrefixV4 *V4PTab, 
     38                 size_t nbPV4, 
     39                 struct PrefixV4 *V4STab, 
     40                 size_t nbSV4, 
     41                 FILE *curRFF) 
     42#else 
     43short 
     44checkDataFlowSet(short shift, 
     45                 struct MyPtrs *myPtrs, 
     46                 int myQueue, 
     47                 struct PrefixV4 *V4PTab, 
     48                 size_t nbPV4, 
     49                 struct PrefixV4 *V4STab, 
     50                 size_t nbSV4 
     51                 ) 
     52#endif 
    4153{ 
    4254  TplFlowSetPtr tmp = NULL; 
     
    347359                    ((RuleDefPtr)(*(myPtrs->rulesAddressPtr+pos)))->check = 1; 
    348360                  } 
    349                                 } 
     361              } 
     362              if (pftmp->fieldType==21){ 
     363                 agCache.lastTime = *((unsigned long*)&buffer4); 
     364              } 
     365              if (pftmp->fieldType==22){ 
     366                 agCache.firstTime = *((unsigned long*)&buffer4); 
     367              } 
    350368#if defined(IPV4AGGIDR) || defined(IPV4AGGIDSNMP) 
    351369              if (pftmp->fieldType==10){ 
     
    667685                dosCache.startTime = *((unsigned long*)&buffer4); 
    668686      } 
     687              if (pftmp->fieldType==21){ 
     688                 agCache.lastTime = *((unsigned long*)&buffer4); 
     689              } 
     690              if (pftmp->fieldType==22){ 
     691                 agCache.firstTime = *((unsigned long*)&buffer4); 
     692              } 
    669693          break; 
    670694        case 16: 
     
    927951#endif 
    928952                /* OUT ("traffic from the prefix/subnet")  */ 
     953              if (agCache.firstTime>agCache.lastTime) { 
     954                 agCache.firstTimeCor = myPtrs->currentHeaderV9Ptr->boot_time - 0x100000000LL + (uint64_t)agCache.firstTime; 
     955                 agCache.lastTimeCor = myPtrs->currentHeaderV9Ptr->boot_time + (uint64_t)agCache.lastTime; 
     956              }else{ 
     957                 agCache.firstTimeCor = myPtrs->currentHeaderV9Ptr->boot_time + (uint64_t)agCache.firstTime; 
     958                 agCache.lastTimeCor = myPtrs->currentHeaderV9Ptr->boot_time + (uint64_t)agCache.lastTime; 
     959              } 
     960#if defined(RECORDFLOW) 
     961        if (fprintf(curRFF,"%llu;%llu;%lu.%lu.%lu.%lu;%hu;%lu.%lu.%lu.%lu;%hu;%lu.%lu.%lu.%lu;%hu;%hu;%lu;%lu;%hu;%hu;%hu;%hu;%hu;%hu\n", 
     962                      agCache.firstTimeCor, 
     963                      agCache.lastTimeCor - agCache.firstTimeCor, 
     964                      (agCache.v4AdS>>24), 
     965                      (agCache.v4AdS<<8>>24), 
     966                      (agCache.v4AdS<<16>>24), 
     967                      (agCache.v4AdS<<24>>24), 
     968                      (agCache.maskS), 
     969                      (agCache.v4AdD>>24), 
     970                      (agCache.v4AdD<<8>>24), 
     971                      (agCache.v4AdD<<16>>24), 
     972                      (agCache.v4AdD<<24>>24), 
     973                      (agCache.maskD), 
     974                      (myPtrs->pcktPtr->ipH->srcAdd>>24), 
     975                      (myPtrs->pcktPtr->ipH->srcAdd<<8>>24), 
     976                      (myPtrs->pcktPtr->ipH->srcAdd<<16>>24), 
     977                      (myPtrs->pcktPtr->ipH->srcAdd<<24>>24), 
     978                      agCache.inputSnmp, 
     979                      agCache.outputSnmp, 
     980                      agCache.bytes, 
     981                      agCache.pkts, 
     982                      agCache.sPort, 
     983                      agCache.dPort, 
     984                      agCache.asS, 
     985                      agCache.asD, 
     986                      agCache.ipProt, 
     987                      agCache.tProt 
     988        ) == NULL ) { 
     989           printf(stderr, "%s", strerror(errno)); 
     990         } 
     991#endif 
     992 
    929993#if defined(MULTISAMPLING) 
    930994                if (myPtrs->currentRouterPtr->sampled != res->sampling ){ 
    931995                  res->bytesNbOUT += agCache.bytes*myPtrs->currentRouterPtr->sampled/res->sampling; 
    932996                  res->pktsNbOUT += agCache.pkts*myPtrs->currentRouterPtr->sampled/res->sampling; 
    933                   /* (res->flowNbOUT)++; FIXME : FIND SOMETHING*/ 
     997                  (res->flowNbOUT)++; /* FIXME : FIND SOMETHING*/ 
    934998                  if (agCache.dscp>>2 == FIRST_CoS) { 
    935999                    res->firstCoSOUT += agCache.bytes*myPtrs->currentRouterPtr->sampled/res->sampling; 
     
    10111075                    res3->bytesNbIN += agCache.bytes*myPtrs->currentRouterPtr->sampled/res3->sampling; 
    10121076                    res3->pktsNbIN += agCache.pkts*myPtrs->currentRouterPtr->sampled/res3->sampling; 
    1013                     /* (res3->flowNbIN)++; FIXME : FIND SOMETHING */ 
     1077                    (res3->flowNbIN)++;  /* FIXME : FIND SOMETHING */ 
    10141078                    if (agCache.dscp>>2 == FIRST_CoS) { 
    10151079                      res3->firstCoSIN += agCache.bytes*myPtrs->currentRouterPtr->sampled/res3->sampling; 
     
    11821246                  res->bytesNbIN += agCache.bytes*myPtrs->currentRouterPtr->sampled/res->sampling; 
    11831247                  res->pktsNbIN += agCache.pkts*myPtrs->currentRouterPtr->sampled/res->sampling; 
     1248                  (res->flowNbIN)++; 
    11841249                  if (agCache.dscp>>2 == FIRST_CoS) { 
    11851250                    res->firstCoSIN += agCache.bytes*myPtrs->currentRouterPtr->sampled/res->sampling; 
     
    12231288#endif 
    12241289              } 
     1290              if (agCache.firstTime>agCache.lastTime) { 
     1291                 agCache.firstTimeCor = myPtrs->currentHeaderV9Ptr->boot_time - 0x100000000LL + (uint64_t)agCache.firstTime; 
     1292                 agCache.lastTimeCor = myPtrs->currentHeaderV9Ptr->boot_time + (uint64_t)agCache.lastTime; 
     1293              }else{ 
     1294                 agCache.firstTimeCor = myPtrs->currentHeaderV9Ptr->boot_time + (uint64_t)agCache.firstTime; 
     1295                 agCache.lastTimeCor = myPtrs->currentHeaderV9Ptr->boot_time + (uint64_t)agCache.lastTime; 
     1296              } 
     1297#if defined(RECORDFLOW) 
     1298        if (fprintf(curRFF,"%llu;%llu;%lu.%lu.%lu.%lu;%hu;%lu.%lu.%lu.%lu;%hu;%lu.%lu.%lu.%lu;%hu;%hu;%lu;%lu;%hu;%hu;%hu;%hu;%hu;%hu\n", 
     1299                      agCache.firstTimeCor, 
     1300                      agCache.lastTimeCor - agCache.firstTimeCor, 
     1301                      (agCache.v4AdS>>24), 
     1302                      (agCache.v4AdS<<8>>24), 
     1303                      (agCache.v4AdS<<16>>24), 
     1304                      (agCache.v4AdS<<24>>24), 
     1305                      (agCache.maskS), 
     1306                      (agCache.v4AdD>>24), 
     1307                      (agCache.v4AdD<<8>>24), 
     1308                      (agCache.v4AdD<<16>>24), 
     1309                      (agCache.v4AdD<<24>>24), 
     1310                      (agCache.maskD), 
     1311                      (myPtrs->pcktPtr->ipH->srcAdd>>24), 
     1312                      (myPtrs->pcktPtr->ipH->srcAdd<<8>>24), 
     1313                      (myPtrs->pcktPtr->ipH->srcAdd<<16>>24), 
     1314                      (myPtrs->pcktPtr->ipH->srcAdd<<24>>24), 
     1315                      agCache.inputSnmp, 
     1316                      agCache.outputSnmp, 
     1317                      agCache.bytes, 
     1318                      agCache.pkts, 
     1319                      agCache.sPort, 
     1320                      agCache.dPort, 
     1321                      agCache.asS, 
     1322                      agCache.asD, 
     1323                      agCache.ipProt, 
     1324                      agCache.tProt 
     1325        ) == NULL ) { 
     1326           printf(stderr, "%s", strerror(errno)); 
     1327         } 
     1328#endif 
    12251329#endif 
    12261330#if defined(IPV4AGGIDR) 
     
    12301334                  res->bytesNbIN += agCache.bytes*myPtrs->currentRouterPtr->sampled/res->sampling; 
    12311335                  res->pktsNbIN += agCache.pkts*myPtrs->currentRouterPtr->sampled/res->sampling; 
     1336                  (res->flowNbIN)++; 
    12321337                  if (agCache.dscp>>2 == FIRST_CoS) { 
    12331338                    res->firstCoSIN += agCache.bytes*myPtrs->currentRouterPtr->sampled/res->sampling;