Beispiel #1
0
/**
 Calculate the current traffic and display the stat based on time interval provided
 MIB Object used : ifIntOctets, ifOutets
**/
void showTraffic(int timeInterval , int numberOfSamples) {
  char *monitorIp = monitor.ipaddress;
  int data[2];
  char ifInOctets[50] ;
  char ifOutOctets[50];
  //char ifSpeed[50];
  sprintf(ifInOctets , "%s.%i","ifInOctets",monitor.ifIndex);
  sprintf(ifOutOctets , "%s.%i","ifOutOctets",monitor.ifIndex);
  //sprintf(ifSpeed , "%s.%i","ifSpeed",monitor.ifIndex);
  printf("Monitoring %s ...\n", monitorIp);
  // initialize the first data "inoctets" and "outoctets"
  snmpget(ifInOctets);
  data[lastInOctets] = (int) *(response->variables->val.integer); // last in data
  cleanup();
  snmpget(ifOutOctets);
  data[lastOutOctets] = (int) *(response->variables->val.integer); // last out data
  cleanup();
  int totalTime = timeInterval;
  while ( numberOfSamples >= 0 ) {
      sleep(timeInterval);
      snmpget(ifInOctets);
      int inOctets = (int) *(response->variables->val.integer);
      cleanup();
      snmpget(ifOutOctets);
      int outOctets = (int) *(response->variables->val.integer);
      cleanup();
       // bytes per seconds ->  (bytes * 0.000001 per second) -> (Mb per second)
      long double traffic =  ( max( inOctets-data[lastInOctets] , outOctets-data[lastOutOctets])) * 0.001 / ( timeInterval ); // for kbps
      printf("At %i second  --> %Lf kbps. ( %.1LF mbps )\n" , totalTime , traffic, traffic*0.001);
      data[lastInOctets] = inOctets;
      data[lastOutOctets] = outOctets;
      totalTime += timeInterval;
      numberOfSamples--;
  }
}
Beispiel #2
0
/**
 * 设置路由器端口的dead定时器值,成功返回0.
 */
int setDeadInteval(char * routerIp, char *ethIdNum, char *value){
	if (routerIp == NULL || ethIdNum == NULL || value == NULL) {
		return -1;
	}
	int resault = 0;
	char routerType[MAX_LEN];
	char command[MAX_LEN];
	memset(routerType, '\0', sizeof(routerType));
	memset(command, '\0', sizeof(command));
	snmpget(routerIp, COMMUNITY, SYSTEMNAME, routerType);
	if (strcmp(routerType, HUAWEI_SYSTEMNAME) == 0) {
		if (!strstr(ethIdNum, "GigabitEthernet") == NULL) {
			sprintf(command, "expect %s%s %s %s %s", FILEPATH,
					FILENAME_SETDEAD_HUAWEI, routerIp, ethIdNum, value);
		} else {
			sprintf(command, "expect %s%s %s GigabitEthernet0/0/%s %s", FILEPATH,
					FILENAME_SETDEAD_HUAWEI, routerIp, ethIdNum, value);
		}
	} else {
		if (!strstr(ethIdNum, "eth") == NULL) {
			sprintf(command, "expect %s%s %s %s %s", FILEPATH,
					FILENAME_SETDEAD_QUAGGA, routerIp, ethIdNum, value);
		} else {
			sprintf(command, "expect %s%s %s eth%s %s", FILEPATH,
					FILENAME_SETDEAD_QUAGGA, routerIp, ethIdNum, value);
		}

	}
	resault = system(command);
	return resault;
}
Beispiel #3
0
/**
 *  删除静态路由
 */
int removeStaticRoute(char * routerIp, char * desIp, char *mask, char * nextHop){
	if(routerIp == NULL || desIp == NULL || mask == NULL || nextHop == NULL){
			return -1;
	}
	int resault = 0;
	char routerType[MAX_LEN];
	char command[MAX_LEN];
	memset(routerType, '\0', sizeof(routerType));
	memset(command,'\0', sizeof(command));
	snmpget(routerIp, COMMUNITY, SYSTEMNAME, routerType);
	if (strcmp(routerType, HUAWEI_SYSTEMNAME) == 0) {
		sprintf(command,"expect %s%s %s %s %s %s", FILEPATH, FILENAME_REMOVESTATICROUTE_HUAWEI, routerIp, desIp, mask, nextHop);
		resault = system(command);
	} else {
		sprintf(command,"expect %s%s %s %s %s %s", FILEPATH, FILENAME_REMOVESTATICROUTE_QUAGGA, routerIp, desIp, mask, nextHop);
		resault = system(command);
	}
	return resault;
}
Beispiel #4
0
int setBgpPeerUpdateInterval(char *routerIp, char *bgpAreaId, char *peerIp,
		int interval) {
	if (routerIp == NULL || bgpAreaId == NULL || peerIp == NULL) {
		return -1;
	}
	int resault = 0;
	char routerType[MAX_LEN];
	char command[MAX_LEN];
	memset(routerType, '\0', sizeof(routerType));
	memset(command, '\0', sizeof(command));
	snmpget(routerIp, COMMUNITY, SYSTEMNAME, routerType);
	if (strcmp(routerType, HUAWEI_SYSTEMNAME) == 0) {
		sprintf(command, "expect %s%s %s %s %s %d", FILEPATH,
				FILENAME_SETBGPUPTADEINTERVAL_HUAWEI, routerIp, bgpAreaId,
				peerIp, interval);
	} else {
		sprintf(command, "expect %s%s %s %s %s %d", FILEPATH,
				FILENAME_SETBGPUPTADEINTERVAL_QUAGGA, routerIp, bgpAreaId,
				peerIp, interval);
	}
	resault = system(command);
	return resault;
}