Changeset 96

Show
Ignore:
Timestamp:
02/12/09 17:54:45 (14 years ago)
Author:
andreu
Message:

IPV6 links aggregation UP

Location:
trunk/src
Files:
8 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/dataFlowSet.c

    r95 r96  
    10871087#ifdef IPV6LINKAGG 
    10881088        if ( ( isIPv6 == 1 ) && (isMplsFlow == 0) ){ 
    1089           for (i=0; i<MAX_INDEX_BY_ROUTER; i++){ /* FIXME : to optimized */ 
    1090             if (agCache.inputSnmp == myPtrs->currentRouterPtr->snmpIndexID[i] ) { 
    1091               break; 
    1092             } 
    1093           } 
    1094           /* FIXME : here we need to make two case switch sampling values !!! */ 
    10951089          ((struct IndexV6 *)((myPtrs->currentV6IndexTab) 
    10961090                              +((myPtrs->currentRouterPtr->ID)*ROUTER_INDEX_MAX) 
    1097                               +(agCache.inputSnmp)))->bytesNbIN = agCache.bytes; 
    1098           for (i=0; i<MAX_INDEX_BY_ROUTER; i++){ /* FIXME : to optimized */ 
    1099             if (agCache.outputSnmp == myPtrs->currentRouterPtr->snmpIndexID[i] ) { 
    1100               break; 
    1101             } 
    1102           } 
     1091                              +(agCache.inputSnmp)))->routerIPAddress = myPtrs->currentRouterPtr->IpAddress; 
    11031092          ((struct IndexV6 *)((myPtrs->currentV6IndexTab) 
    11041093                              +((myPtrs->currentRouterPtr->ID)*ROUTER_INDEX_MAX) 
    1105                               +(agCache.outputSnmp)))->bytesNbOUT = agCache.bytes; 
     1094                              +(agCache.inputSnmp)))->indexSNMP = agCache.inputSnmp; 
     1095          ((struct IndexV6 *)((myPtrs->currentV6IndexTab) 
     1096                              +((myPtrs->currentRouterPtr->ID)*ROUTER_INDEX_MAX) 
     1097                              +(agCache.outputSnmp)))->indexSNMP = agCache.outputSnmp;  
     1098          /* FIXME, error or warning if (indexSNMP != agCache.outputSnmp) */ 
     1099          ((struct IndexV6 *)((myPtrs->currentV6IndexTab) 
     1100                              +((myPtrs->currentRouterPtr->ID)*ROUTER_INDEX_MAX) 
     1101                              +(agCache.inputSnmp)))->hasStats = 1; 
     1102          ((struct IndexV6 *)((myPtrs->currentV6IndexTab) 
     1103                              +((myPtrs->currentRouterPtr->ID)*ROUTER_INDEX_MAX) 
     1104                              +(agCache.outputSnmp)))->hasStats = 1; 
     1105          ((struct IndexV6 *)((myPtrs->currentV6IndexTab) 
     1106                              +((myPtrs->currentRouterPtr->ID)*ROUTER_INDEX_MAX) 
     1107                              +(agCache.inputSnmp)))->bytesNbIN += agCache.bytes; 
     1108          ((struct IndexV6 *)((myPtrs->currentV6IndexTab) 
     1109                              +((myPtrs->currentRouterPtr->ID)*ROUTER_INDEX_MAX) 
     1110                              +(agCache.outputSnmp)))->bytesNbOUT += agCache.bytes; 
     1111          ((struct IndexV6 *)((myPtrs->currentV6IndexTab) 
     1112                              +((myPtrs->currentRouterPtr->ID)*ROUTER_INDEX_MAX) 
     1113                              +(agCache.inputSnmp)))->pktsNbIN += agCache.pkts; 
     1114          ((struct IndexV6 *)((myPtrs->currentV6IndexTab) 
     1115                              +((myPtrs->currentRouterPtr->ID)*ROUTER_INDEX_MAX) 
     1116                              +(agCache.outputSnmp)))->pktsNbOUT += agCache.pkts; 
     1117          ((struct IndexV6 *)((myPtrs->currentV6IndexTab) 
     1118                              +((myPtrs->currentRouterPtr->ID)*ROUTER_INDEX_MAX) 
     1119                              +(agCache.inputSnmp)))->flowNbIN++; 
     1120          ((struct IndexV6 *)((myPtrs->currentV6IndexTab) 
     1121                              +((myPtrs->currentRouterPtr->ID)*ROUTER_INDEX_MAX) 
     1122                              +(agCache.outputSnmp)))->flowNbOUT++; 
    11061123          isIPv6 = 0; 
    1107           fprintf(stderr,"IPV6LINKAGG .%hu -> .%hu , router : %lu\n", 
    1108                  agCache.inputSnmp, 
    1109                  agCache.outputSnmp, 
    1110                  myPtrs->currentRouterPtr->IpAddress 
    1111                  ); 
     1124/*        fprintf(stderr,"IPV6LINKAGG;IN;%hu;OUT;%hu;router;%lu;bytes;%lu\n", */ 
     1125/*                agCache.inputSnmp, */ 
     1126/*                agCache.outputSnmp, */ 
     1127/*                myPtrs->currentRouterPtr->IpAddress, */ 
     1128/*                agCache.bytes */ 
     1129/*               ); */ 
    11121130        } 
    11131131#endif /* IPV6LINKAGG */ 
  • trunk/src/get_conf.h

    r95 r96  
    7878struct IndexV6{ 
    7979  unsigned long routerIPAddress; 
     80  unsigned short hasStats; 
    8081  unsigned short indexSNMP;  
     82  unsigned long sampling; 
    8183  unsigned long long flowNbIN;  /* WARNING !!! */ 
    8284  unsigned long long bytesNbIN; /* Here, IN means "IN the equipement" */ 
  • trunk/src/renetcol.c

    r95 r96  
    101101 
    102102#if defined(IPV4AGGIDR) 
    103   fprintf(stderr, "renetcol compilation and execution with IPv4 Aggregation feature enable based on routers ID in %s file.\n", ROUTERS_LIST); 
     103  fprintf(stderr, "renetcol compilation and execution with IPv4 Prefixes Aggregation feature enable based on routers ID in %s file.\n", ROUTERS_LIST); 
    104104#endif 
    105105 
    106106#if defined(IPV4AGGIDSNMP) 
    107   fprintf(stderr, "renetcol compilation and execution with IPv4 Aggregation feature enable based on SNMP ID in %s file.\n", INTERFACES_TYPE_LIST); 
     107  fprintf(stderr, "renetcol compilation and execution with IPv4 Prefixes Aggregation feature enable based on SNMP ID in %s file.\n", INTERFACES_TYPE_LIST); 
    108108#endif 
    109109#if defined(IPV6AGGIDSNMP) 
    110   fprintf(stderr, "renetcol compilation and execution with IPv6 Aggregation feature enable based on SNMP ID in %s file.\n", INTERFACES_TYPE_LIST); 
     110  fprintf(stderr, "renetcol compilation and execution with IPv6 Prefixes Aggregation feature enable based on SNMP ID in %s file.\n", INTERFACES_TYPE_LIST); 
    111111#endif 
    112112#if defined(IPV6LINKAGG) 
     
    166166  } 
    167167#if defined(IPV6AGGIDSNMP) 
    168 fprintf(stderr, "ci0\n"); 
    169168  if ( (shmForAgg->v6PrefixNb =  
    170169        getPrefixV6(SUBNETS_V6_LIST,  
     
    184183    exit(1); 
    185184  } 
    186 fprintf(stderr, "ci00\n"); 
    187185#endif 
    188186 
     
    236234    exit(4); 
    237235  } 
    238 fprintf(stderr, " handler, SIGUSR1 from renetcolSender\n"); 
    239236  /* handler, SIGUSR1 from renetcolSender */ 
    240237  myAction.sa_handler = sigusr1Mgmt; 
     
    244241  sigaction (SIGUSR1, &myAction, NULL); 
    245242 
    246 fprintf(stderr, " Cache for fast rules access\n"); 
    247243  /* Cache for fast rules access */ 
    248244  setCache(myPtrs.rulesListPtr); 
    249245  myPtrs.rulesAddressPtr = (RuleDefPtr *)rulesAddress; 
    250 fprintf(stderr, "IPC messages queue init\n"); 
    251246  /* IPC messages queue init */ 
    252247  myKey = createKey(argv[0]); 
    253248  myQueue = createQueue(myKey); 
    254249  sendMyPid(myQueue); 
    255 fprintf(stderr, "get SNMP index information\n"); 
    256250  /* get SNMP index information */ 
    257251#ifdef IPV4AGGIDSNMP 
     
    272266  myPtrs.secondV4Tab = shmForAgg->prefixV4Tab[shmForAgg->secondTable]; 
    273267#ifdef IPV6AGGIDSNMP 
    274 fprintf(stderr, "ci1\n"); 
    275268  myPtrs.currentV6Tab = shmForAgg->prefixV6Tab[shmForAgg->currentTable]; 
    276269  myPtrs.secondV6Tab = shmForAgg->prefixV6Tab[shmForAgg->secondTable]; 
    277270#endif 
    278271#ifdef IPV6LINKAGG 
    279 fprintf(stderr, "ci2\n"); 
    280272  myPtrs.currentV6IndexTab = shmForAgg->indexV6Tab[shmForAgg->currentTable]; 
    281273  myPtrs.secondV6IndexTab = shmForAgg->indexV6Tab[shmForAgg->secondTable]; 
    282 fprintf(stderr, "ci3\n"); 
    283274#endif 
    284275#ifdef ASACC 
     
    306297  /* INIT IPV6 index TABLES */ 
    307298#ifdef IPV6LINKAGG 
    308 fprintf(stderr, "ci\n"); 
    309299  for (i=0; i<ROUTER_INDEX_MAX; i++){ 
    310300    for (j=0; j<MAX_INDEX_BY_ROUTER; j++) { 
     301      shmForAgg->indexV6Tab[0][i][j].hasStats = 0; 
     302      shmForAgg->indexV6Tab[0][i][j].sampling = 0; 
    311303      shmForAgg->indexV6Tab[0][i][j].bytesNbIN = 0; 
    312304      shmForAgg->indexV6Tab[0][i][j].pktsNbIN = 0; 
    313305      shmForAgg->indexV6Tab[0][i][j].flowNbIN = 0; 
     306      shmForAgg->indexV6Tab[0][i][j].bytesNbOUT = 0; 
     307      shmForAgg->indexV6Tab[0][i][j].pktsNbOUT = 0; 
     308      shmForAgg->indexV6Tab[0][i][j].flowNbOUT = 0; 
     309      shmForAgg->indexV6Tab[1][i][j].hasStats = 0; 
     310      shmForAgg->indexV6Tab[1][i][j].sampling = 0; 
     311      shmForAgg->indexV6Tab[1][i][j].bytesNbIN = 0; 
     312      shmForAgg->indexV6Tab[1][i][j].pktsNbIN = 0; 
     313      shmForAgg->indexV6Tab[1][i][j].flowNbIN = 0; 
    314314      shmForAgg->indexV6Tab[1][i][j].bytesNbOUT = 0; 
    315315      shmForAgg->indexV6Tab[1][i][j].pktsNbOUT = 0; 
     
    317317    } 
    318318  } 
    319 fprintf(stderr, "icci\n"); 
    320319#endif 
    321320 
     
    508507  int gardeFou = 0; 
    509508  time_t lastIPOutput, lastMPLSOutput; 
     509  RouterPtr tmp = routersListPtr;   
     510  int dd = 0; 
     511  FILE *TPLFILE; 
    510512 
    511513  now = time((time_t *)NULL); 
     
    533535#ifdef MATRIX 
    534536      myPtrs.matrixPOP = &(shmForAgg->matrixPOP[shmForAgg->currentTable][0][0]); 
     537#endif 
     538#ifdef IPV6LINKAGG 
     539      myPtrs.currentV6IndexTab = &(shmForAgg->indexV6Tab[shmForAgg->currentTable][0][0]); 
     540      myPtrs.secondV6IndexTab = &(shmForAgg->indexV6Tab[shmForAgg->secondTable][0][0]); 
     541      if (!(TPLFILE = fopen("/tmp/IPV6LINKAGG.txt", "w"))) { 
     542        syslog (LOG_ERR, "error during %s opening", "/tmp/IPV6LINKAGG.txt"); 
     543      } 
     544      tmp = routersListPtr; 
     545      for (; tmp; tmp=tmp->next) { 
     546        for (dd=0;dd<MAX_INDEX_BY_ROUTER;dd++) { 
     547          if ( tmp->snmpIndexType[dd] != 2) { 
     548            fprintf(TPLFILE, 
     549                    "router: %lu.%lu.%lu.%lu dd: %hu , indexSNMP : %hu , type : %hu ,total bytes IN : %llu, OUT : %llu\n", 
     550                    (tmp->IpAddress>>24), 
     551                    (tmp->IpAddress<<8>>24), 
     552                    (tmp->IpAddress<<16>>24), 
     553                    (tmp->IpAddress<<24>>24), 
     554                    dd, 
     555                    tmp->snmpIndexID[dd], 
     556                    tmp->snmpIndexType[dd], 
     557                    ((struct IndexV6 *)((myPtrs.secondV6IndexTab) 
     558                                        +((tmp->ID)*ROUTER_INDEX_MAX) 
     559                                        +(tmp->snmpIndexID[dd])))->bytesNbIN, 
     560                    ((struct IndexV6 *)((myPtrs.secondV6IndexTab) 
     561                                        +((tmp->ID)*ROUTER_INDEX_MAX) 
     562                                        +(tmp->snmpIndexID[dd])))->bytesNbOUT 
     563                    );  
     564          } 
     565        } 
     566      } 
     567      fclose(TPLFILE); 
    535568#endif 
    536569    } 
  • trunk/src/renetcolAgg.c

    r75 r96  
    44 * Authors: ANDREU Francois-Xavier  
    55 * 
    6  * Copyright (C) 2007 GIP RENATER  
     6 * Copyright (C) 2007 - 2009 GIP RENATER  
    77 */ 
    88 
     
    5353  static char name[2048]; 
    5454  static char ipStr[24]; 
     55#ifdef IPV6LINKAGG 
     56  static char ipv6LinkStr[40]; /* 10_0_0_1_20_136 <router address> + <sampling> + <SNMP index> */ 
     57#endif 
    5558#if defined(MATRIX) && defined(IPV4AGGIDR) 
    5659  static char indexStr[24]; 
     
    596599          } 
    597600        } 
     601#ifdef IPV6LINKAGG 
     602        /*  
     603         * 
     604         * IPv6 Links ACCOUNTING  
     605         * 
     606         */ 
     607        for (i=0; i<ROUTER_INDEX_MAX; i++){ 
     608          for (j=0; j<MAX_INDEX_BY_ROUTER; j++) { 
     609          /* HERE create or update RRD FILE for IPV6 LINKs AGGregation */ 
     610            if (shmForAgg->indexV6Tab[index][i][j].hasStats == 1) { 
     611              for (k=0; k<strlen(name); k++) {name[k] = '\0';} 
     612              for (k=0; k<strlen(createstr); k++) {createstr[k] = '\0';} 
     613              for (k=0; k<strlen(ipv6LinkStr); k++) {ipv6LinkStr[k] = '\0';} 
     614              for (k=0; k<strlen(buf); k++) {buf[k] = '\0';} 
     615              strcat(name, SNMP_INDEX_RRD_LOCATION); 
     616              sprintf(ipv6LinkStr, "%lu_%lu_%lu_%lu_%hu_%hu",  
     617                      shmForAgg->indexV6Tab[index][i][j].routerIPAddress>>24, 
     618                      shmForAgg->indexV6Tab[index][i][j].routerIPAddress<<8>>24, 
     619                      shmForAgg->indexV6Tab[index][i][j].routerIPAddress<<16>>24, 
     620                      shmForAgg->indexV6Tab[index][i][j].routerIPAddress<<24>>24, 
     621                      (unsigned short) 1, 
     622                      shmForAgg->indexV6Tab[index][i][j].indexSNMP 
     623                      ); 
     624              strcat(name, ipv6LinkStr); 
     625              strcat(name, RRD_EXTENSION); 
     626              if ( (fp=fopen(name,"r")) == NULL ){ 
     627                opt[0]= (char *) malloc((strlen(RRD_PARAM_INDEX_0) + 1) * sizeof(char)); 
     628                strcpy(opt[0], RRD_PARAM_INDEX_0); 
     629                opt[1]= (char *) malloc((strlen(name) + 1) * sizeof(char)); 
     630                strcpy(opt[1], name); 
     631                opt[2]= (char *) malloc((strlen(RRD_PARAM_INDEX_1) + 1) * sizeof(char)); 
     632                strcpy(opt[2], RRD_PARAM_INDEX_1); 
     633                opt[3]= (char *) malloc((strlen(RRD_PARAM_INDEX_2) + 1) * sizeof(char)); 
     634                strcpy(opt[3], RRD_PARAM_INDEX_2); 
     635                opt[4]= (char *) malloc((strlen(RRD_PARAM_INDEX_3) + 1) * sizeof(char)); 
     636                strcpy(opt[4], RRD_PARAM_INDEX_3); 
     637                opt[5]= (char *) malloc((strlen(RRD_PARAM_INDEX_4) + 1) * sizeof(char)); 
     638                strcpy(opt[5], RRD_PARAM_INDEX_4); 
     639                opt[6]= (char *) malloc((strlen(RRD_PARAM_INDEX_5) + 1) * sizeof(char)); 
     640                strcpy(opt[6], RRD_PARAM_INDEX_5); 
     641                opt[7]= (char *) malloc((strlen(RRD_PARAM_INDEX_6) + 1) * sizeof(char)); 
     642                strcpy(opt[7], RRD_PARAM_INDEX_6); 
     643                opt[8]= (char *) malloc((strlen(RRD_PARAM_INDEX_7) + 1) * sizeof(char)); 
     644                strcpy(opt[8], RRD_PARAM_INDEX_7); 
     645                opt[9]= (char *) malloc((strlen(RRD_PARAM_INDEX_8) + 1) * sizeof(char)); 
     646                strcpy(opt[9], RRD_PARAM_INDEX_8); 
     647                opt[10]= (char *) malloc((strlen(RRD_PARAM_INDEX_9) + 1) * sizeof(char)); 
     648                strcpy(opt[10], RRD_PARAM_INDEX_9); 
     649                opt[11]= (char *) malloc((strlen(RRD_PARAM_INDEX_10) + 1) * sizeof(char)); 
     650                strcpy(opt[11], RRD_PARAM_INDEX_10); 
     651                opt[12]= (char *) malloc((strlen(RRD_PARAM_INDEX_11) + 1) * sizeof(char)); 
     652                strcpy(opt[12], RRD_PARAM_INDEX_11); 
     653                opt[13]= (char *) malloc((strlen(RRD_PARAM_INDEX_12) + 1) * sizeof(char)); 
     654                strcpy(opt[13], RRD_PARAM_INDEX_12); 
     655                opt[14]= (char *) malloc((strlen(RRD_PARAM_INDEX_13) + 1) * sizeof(char)); 
     656                strcpy(opt[14], RRD_PARAM_INDEX_13); 
     657                opt[15]= (char *) malloc((strlen(RRD_PARAM_INDEX_14) + 1) * sizeof(char)); 
     658                strcpy(opt[15], RRD_PARAM_INDEX_14); 
     659                opt[16]= (char *) malloc((strlen(RRD_PARAM_INDEX_15) + 1) * sizeof(char)); 
     660                strcpy(opt[16], RRD_PARAM_INDEX_15); 
     661                opt[17]= (char *) malloc((strlen(RRD_PARAM_INDEX_16) + 1) * sizeof(char)); 
     662                strcpy(opt[17], RRD_PARAM_INDEX_16); 
     663                opt[18]= (char *) malloc((strlen(RRD_PARAM_INDEX_17) + 1) * sizeof(char)); 
     664                strcpy(opt[18], RRD_PARAM_INDEX_17); 
     665                optind = opterr = 0; 
     666                rrd_clear_error(); 
     667                if ( rrd_create(19,opt) < 0) { 
     668                  syslog(LOG_ERR, "RRD create file %s, error: %s\n", name, rrd_get_error()); 
     669                  rrd_create_er_ct++; 
     670                } else { 
     671                  rrd_create_ok_ct++; 
     672                } 
     673                for ( k=0; k<19; k++) { 
     674                  free(opt[k]); 
     675                  opt[k] = NULL; 
     676                } 
     677              }else{  
     678                fclose(fp); 
     679                rrd_already_created_ct++; 
     680                snprintf(buf,  
     681                         2048,  
     682                         "%lu:%llu:%llu:%llu:%llu:%llu:%llu",   
     683                         now-300,  /* or ctime(&now) with %s */ 
     684                         shmForAgg->indexV6Tab[index][i][j].flowNbIN,  /* 1 */ 
     685                         shmForAgg->indexV6Tab[index][i][j].flowNbOUT, 
     686                         shmForAgg->indexV6Tab[index][i][j].bytesNbIN, 
     687                         shmForAgg->indexV6Tab[index][i][j].bytesNbOUT, 
     688                         shmForAgg->indexV6Tab[index][i][j].pktsNbIN,  /* 5 */ 
     689                         shmForAgg->indexV6Tab[index][i][j].pktsNbOUT 
     690                         ); 
     691                optUpdate[0]= (char *) malloc((strlen(RRD_UPDATE_0) + 1) * sizeof(char)); 
     692                strcpy(optUpdate[0], RRD_UPDATE_0); 
     693                optUpdate[1]= (char *) malloc((strlen(name) + 1) * sizeof(char)); 
     694                strcpy(optUpdate[1], name); 
     695                optUpdate[2]= (char *) malloc((strlen(buf) + 1) * sizeof(char)); 
     696                strcpy(optUpdate[2], buf); 
     697                optind = opterr = 0;  
     698                rrd_clear_error(); 
     699                if ( rrd_update(3, optUpdate) < 0 ) {  
     700                  syslog(LOG_ERR, "RRD update file %s, error: %s\n", name, rrd_get_error()); 
     701                  rrd_update_er_ct++; 
     702                } else { 
     703                  rrd_update_ok_ct++; 
     704                } 
     705                for ( k=0; k<3; k++) { 
     706                  free(optUpdate[k]); 
     707                  optUpdate[k] = NULL; 
     708                } 
     709              } 
     710              shmForAgg->indexV6Tab[index][i][j].bytesNbIN = 0; 
     711              shmForAgg->indexV6Tab[index][i][j].pktsNbIN = 0; 
     712              shmForAgg->indexV6Tab[index][i][j].flowNbIN = 0; 
     713              shmForAgg->indexV6Tab[index][i][j].bytesNbOUT = 0; 
     714              shmForAgg->indexV6Tab[index][i][j].pktsNbOUT = 0; 
     715              shmForAgg->indexV6Tab[index][i][j].flowNbOUT = 0; 
     716            } 
     717          } 
     718        } 
     719#endif 
    598720#endif /* AS */ 
    599721        now2 = time((time_t *)NULL); 
     
    669791        } 
    670792#endif 
     793#ifdef IPV6LINKAGG 
     794        for (i=0; i<ROUTER_INDEX_MAX; i++){ 
     795          for (j=0; j<MAX_INDEX_BY_ROUTER; j++) { 
     796            shmForAgg->indexV6Tab[index][i][j].bytesNbIN = 0; 
     797            shmForAgg->indexV6Tab[index][i][j].pktsNbIN = 0; 
     798            shmForAgg->indexV6Tab[index][i][j].flowNbIN = 0; 
     799            shmForAgg->indexV6Tab[index][i][j].bytesNbOUT = 0; 
     800            shmForAgg->indexV6Tab[index][i][j].pktsNbOUT = 0; 
     801            shmForAgg->indexV6Tab[index][i][j].flowNbOUT = 0; 
     802          } 
     803        } 
     804#endif 
    671805      } /* end is first update */  
    672806    } /* end read ok */ 
  • trunk/src/renetcolAgg.h

    r95 r96  
    6161#endif 
    6262 struct PrefixV6 prefixV6Tab[2][MAX_IPV6_PREFIX]; 
    63 #ifdef IPV6LINKAGG && IPV6AGGIDSNMP 
     63#if defined(IPV6LINKAGG) && defined(IPV6AGGIDSNMP) 
    6464  struct IndexV6 indexV6Tab[2][ROUTER_INDEX_MAX][MAX_INDEX_BY_ROUTER]; 
    6565#endif 
  • trunk/src/renetcolParam.h

    r95 r96  
    100100#define MATRIX_RRD_LOCATION "/mnt/data/RRD/RENATER/MATRIX/" 
    101101#define AS_RRD_LOCATION "/mnt/data/RRD/RENATER/AS/" 
     102#define SNMP_INDEX_RRD_LOCATION "/mnt/data/RRD/RENATER/SNMP_INDEX/" 
    102103 
    103104/* 
     
    178179#define RRD_PARAM_AS_16 "RRA:MAX:0.5:24:1550" 
    179180#define RRD_PARAM_AS_17 "RRA:MAX:0.5:288:1594" 
     181#define RRD_PARAM_INDEX_0 "rrdcreate" 
     182#define RRD_PARAM_INDEX_1 "--start" 
     183#define RRD_PARAM_INDEX_2 "1106560200" 
     184#define RRD_PARAM_INDEX_3 "--step" 
     185#define RRD_PARAM_INDEX_4 "300" 
     186#define RRD_PARAM_INDEX_5 "DS:inFlows:GAUGE:600:U:U" 
     187#define RRD_PARAM_INDEX_6 "DS:outFlows:GAUGE:600:U:U" 
     188#define RRD_PARAM_INDEX_7 "DS:inBytes:GAUGE:600:U:U" 
     189#define RRD_PARAM_INDEX_8 "DS:outBytes:GAUGE:600:U:U" 
     190#define RRD_PARAM_INDEX_9 "DS:inPkts:GAUGE:600:U:U" 
     191#define RRD_PARAM_INDEX_10 "DS:outPkts:GAUGE:600:U:U" 
     192#define RRD_PARAM_INDEX_11 "RRA:AVERAGE:0.5:1:2100" 
     193#define RRD_PARAM_INDEX_12 "RRA:AVERAGE:0.5:24:1550" 
     194#define RRD_PARAM_INDEX_13 "RRA:AVERAGE:0.5:288:1594" 
     195#define RRD_PARAM_INDEX_14 "RRA:AVERAGE:0.5:2016:1040" 
     196#define RRD_PARAM_INDEX_15 "RRA:MAX:0.5:1:2100" 
     197#define RRD_PARAM_INDEX_16 "RRA:MAX:0.5:24:1550" 
     198#define RRD_PARAM_INDEX_17 "RRA:MAX:0.5:288:1594" 
    180199#define RRD_UPDATE_0 "rrdupdate" 
    181200#define RECEPT_PORT "52571" 
  • trunk/src/routers_mgmt.c

    r95 r96  
    164164  char tad[16]; 
    165165  int index = 0; 
     166  int i = 0; 
    166167  unsigned short n0, n1, n2, n3; 
    167168  unsigned char buffer4[4]; 
     
    201202        exit(1); 
    202203      } 
     204      for (i=0; i<MAX_INDEX_BY_ROUTER; i++) { 
     205        routerTmp->snmpIndexType[i] = 2; 
     206        routerTmp->snmpIndexID[i] = 0; 
     207      }       
    203208      snmpCpt = 0; 
    204209    }else{ 
     210      if (snmpCpt==0){ 
     211        routerTmp->snmpIndexType[0] = 1; 
     212        routerTmp->snmpIndexID[0] = 0; 
     213        snmpCpt++; 
     214      } 
    205215      if ( strspn(line, "I") == 1 ) { 
    206216        if (sscanf(line, "%s %s %s\n", 
     
    217227          routerTmp->snmpIndexID[snmpCpt] = index; 
    218228          routerTmp->snmpIndexType[snmpCpt] = 0; 
     229/*        fprintf(stderr, "snmpCpt %hu --> 0 \n", snmpCpt); */ 
    219230        } else if ( strcmp(tid, "C") == 0 ) { 
    220231          routerTmp->snmpIndexList[index] = 1; 
    221232          routerTmp->snmpIndexID[snmpCpt] = index; 
    222233          routerTmp->snmpIndexType[snmpCpt] = 1; 
     234/*        fprintf(stderr, "snmpCpt %hu --> 1 , indexSNMP: %hu\n", snmpCpt, index); */ 
    223235        } else { 
    224236          fprintf(stderr, "Error in file %s, line %d : bad code B or C \n",  
     
    226238          exit(1); 
    227239        } 
     240        snmpCpt++; 
    228241      } else { 
    229242        fprintf(stderr, "Error in file %s, line %d : bad index line \n",  
  • trunk/src/routers_mgmt.h

    r95 r96  
    4747  TplFlowSetPtr tplList;   /* list of the template definition */ 
    4848  TplOptionPtr tplOptList; /* list of the optional template definitions */ 
    49   unsigned long sampled; /* sampling value: (one for) 10, 100 or 1(full mode)*/ 
    50   unsigned short ID;       /* internal ID */ 
     49  unsigned long sampled;   /* sampling value: (one for) 10, 100 or 1(full mode)*/ 
     50  unsigned short ID;       /* internal ID, create during routers file reading */ 
    5151#ifdef IPV4AGGIDSNMP 
    52   unsigned short snmpIndexList[MAX_SNMP_INDEX]; /* 0:Backbone, 1:Customer */ 
    53   unsigned short snmpIndexType[MAX_INDEX_BY_ROUTER]; /* 0:Backbone, 1:Customer */ 
    54   unsigned short snmpIndexID[MAX_INDEX_BY_ROUTER]; 
     52  unsigned short snmpIndexList[MAX_SNMP_INDEX];      /* 0:Backbone, 1:Customer */ 
     53  unsigned short snmpIndexType[MAX_INDEX_BY_ROUTER]; /* 0:Backbone, 1:Customer use rtr ID*/ 
     54  unsigned short snmpIndexID[MAX_INDEX_BY_ROUTER];   /* use ID , router ID */ 
    5555#endif 
    5656  RouterPtr next;