Changeset 61 for trunk/src/dataFlowSet.c
- Timestamp:
- 10/26/07 10:25:49 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/dataFlowSet.c
r60 r61 35 35 int myQueue, 36 36 struct PrefixV4 *V4PTab, 37 size_t nbPV4 37 size_t nbPV4, 38 struct PrefixV4 *V4STab, 39 size_t nbSV4 38 40 ) 39 41 { … … 65 67 66 68 unsigned short tplMsgType = 11; 67 struct PrefixV4 prefixKey, *res, *res2 ; /* for bsearch */69 struct PrefixV4 prefixKey, *res, *res2, *resSub; /* for bsearch */ 68 70 #if defined(IPV4AGGIDSNMP) 69 71 struct PrefixV4 *res3; … … 636 638 sizeof(struct PrefixV4), prefGlobalCmp); 637 639 if (res!=NULL){ 640 /* res is supernet or subnet ? */ 641 if (res->hasSubnet == 1) { 642 resSub = NULL; 643 resSub = bsearch(&prefixKey, V4STab, nbSV4, 644 sizeof(struct PrefixV4), prefGlobalCmp); 645 if (resSub != NULL) { 646 res = resSub; 647 resSub = NULL; 648 } 649 } 638 650 #if defined(IPV4AGGIDR) 639 651 if ( myPtrs->routersID[res->routerNb] == agCache.routerAd ) { 640 652 #elif defined(IPV4AGGIDSNMP) 641 653 if ( myPtrs->currentRouterPtr->snmpIndexList[agCache.inputSnmp] == 1 ) { … … 656 668 sizeof(struct PrefixV4), prefGlobalCmp); 657 669 if (res3!=NULL){ 670 /* res is supernet or subnet ? */ 671 if (res3->hasSubnet == 1) { 672 resSub = NULL; 673 resSub = bsearch(&prefixKey, V4STab, nbSV4, 674 sizeof(struct PrefixV4), prefGlobalCmp); 675 if (resSub != NULL) { 676 res3 = resSub; 677 resSub = NULL; 678 } 679 } 658 680 if (myPtrs->currentRouterPtr->sampled != 0 ){ 659 681 /* IN ("traffic to the prefix/subnet") */ … … 672 694 prefixKey.beginning = agCache.v4AdD>>(32-agCache.maskD)<<(32-agCache.maskD); 673 695 res2 = bsearch(&prefixKey, V4PTab, nbPV4, 674 sizeof(struct PrefixV4), prefGlobalCmp);696 sizeof(struct PrefixV4), prefGlobalCmp); 675 697 if (res2!=NULL){ 676 698 ((struct POP *)((myPtrs->matrixPOP) … … 686 708 ( 687 709 ((struct POP *)(myPtrs->matrixPOP) 688 +((res->routerNb)*ROUTER_INDEX_MAX)689 +((ROUTER_INDEX_MAX-1))))->pktsNb += agCache.pkts;710 +((res->routerNb)*ROUTER_INDEX_MAX) 711 +((ROUTER_INDEX_MAX-1))))->pktsNb += agCache.pkts; 690 712 ( 691 713 ((struct POP *)(myPtrs->matrixPOP) 692 +((res->routerNb)*ROUTER_INDEX_MAX)693 +((ROUTER_INDEX_MAX-1))))->bytesNb += agCache.bytes;714 +((res->routerNb)*ROUTER_INDEX_MAX) 715 +((ROUTER_INDEX_MAX-1))))->bytesNb += agCache.bytes; 694 716 ( 695 717 ((struct POP *)(myPtrs->matrixPOP) 696 +((res->routerNb)*ROUTER_INDEX_MAX)697 +((ROUTER_INDEX_MAX-1))))->flowNb++;718 +((res->routerNb)*ROUTER_INDEX_MAX) 719 +((ROUTER_INDEX_MAX-1))))->flowNb++; 698 720 } 699 721 /* end interpop matrix accounting */ 700 722 #endif /* matrix */ 701 723 } else { 702 724 /* doublon or bad reference in prefix list */ 703 725 } 704 } else { /* the prefix in source don't exist in your prefix list */726 } else { /* res==NULL, the prefix in source don't exist in your prefix list */ 705 727 prefixKey.beginning = agCache.v4AdD>>(32-agCache.maskD)<<(32-agCache.maskD); 706 728 res = bsearch(&prefixKey, V4PTab, nbPV4, 707 729 sizeof(struct PrefixV4), prefGlobalCmp); 708 730 if (res!=NULL){ 731 /* res is supernet or subnet ? */ 732 if (res->hasSubnet == 1) { 733 resSub = NULL; 734 resSub = bsearch(&prefixKey, V4STab, nbSV4, 735 sizeof(struct PrefixV4), prefGlobalCmp); 736 if (resSub != NULL) { 737 res = resSub; 738 resSub = NULL; 739 } 740 } 709 741 if ( myPtrs->currentRouterPtr->snmpIndexList[agCache.inputSnmp] == 1 ) { 710 742 if (myPtrs->currentRouterPtr->sampled != 0 ){