Calculate bandwidth utilization for Ports/Interfaces
search cancel

Calculate bandwidth utilization for Ports/Interfaces

book

Article ID: 322952

calendar_today

Updated On: 08-16-2024

Products

VMware Telco Cloud Service Assurance

Issue/Introduction

Smarts calculates interface and ports bandwidth utilization by determining if ifSpeed or ifHighSpeed flag to determine if usage values are taken from the mib2 tables or  

Environment

VMware Smart Assurance 10.x

Telco Cloud Service Assurance 2.x

Resolution

  • Conditions under which the Smarts IP Domain instruments the Ports/Interface performance instrumentation
  • How Smarts IP performance instrumentation gets created for Ports/Interfaces
  • How Smarts IP calculates bandwidth utilization for Ports/Interfaces

 

The following interface table (If Table) matrix shows how the Smarts IP calculates and creates performance instrumentation for the Ports/Interfaces. The following matrix is implemented when HCOctets are present. When they are not present, only MIB2 instrumentation remains as from the previous matrix, and rest all become N.I. (No Instrumentation).

IF Table Matrix

ifSpeed/ifHighSpeed

0

<20 MB

>20 MB <650 MB

>650 MB

!exists

N.I.

MIB2

N.I.

N.I.

0

N.I.

MIB2

N.I.

N.I.

<20 MB

N.I.

MIB2

N.I.

N.I.

>20 MB <650  MB

N.I.

N.I.

MIB2_ifMIB

N.I.

>650 MB

ifMIB

ifMIB

ifMIB

ifMIB

 * N.I. = No Instrumentation.

** ifSpeed is denoted as MaxSpeed attribute in Smarts topology.

Example

  1. Consider three interfaces with maxSpeed(ifSpeed) populated and ifHighSpeed are NULL. Then the performace instrumentaion would be as follows :

IF-abcxyz/144 [1.1]
IF-abcxyz/160 [1.2]
IF-abcxyz/256 [1.8]

  1. These interfaces have max-speed and so should be performance instrumented for the bandwidth utilization to be monitored and computed. But the above table matrix logic indicates that in cases where ifHighSpeed is 0, the ifSpeed should be less than 20MB for performance monitoring. Based on this condition, when we look into these two attributes, we have:

IF-abcxyz/144, ifSpeed = 100000000 [11.92 MB]
IF-abcxyz/160, ifSpeed = 1000000000 [119.2 MB]
IF-abcxyz/256, ifSpeed = 1000000000 [119.2 MB]

As mentioned above, the ifHighSpeed values for these interface indexes  we have NULL.

abcxyz: ifHighSpeed [144] is Null
abcxyz: ifHighSpeed [160] is Null
abcxyz: ifHighSpeed [256] is Null

Now for all those interface whose ifHighSpeed is NULL, we assign 0 to it. Hence for all the above index (i.e. index 144,160,256), we have ifHighSpeed set to 0.

  1. From the code base, we have the following logic:

Following attributes are hardcoded for the computation logic:

  octetsLimit = 20000000; [2.3 MB]
  packetsLimit = 650000000; [77.4 MB]
  interfaceLimit = 100000000; [11.9 MB]

  } else if ((ifSpeed !=0) && (ifSpeed <= interfaceLimit) && fallbackInterfaceMonitoringToMIB2 ) {
  if (DEBUG) {
  print(me." ".ifObj->Name .", [<20MB and ifHighSpeed is NULL] expected 64-bit counter is not defined, instrumenting with 32-bit MIB2");
  }
  agentObj->TopologyUpdateInfo += list(updateInfoKey, ifObj->Name, "MIB2", "")?IGNORE;
  undef(topoUpdateTable[ifObj->Name."MIB2".""]) ? IGNORE;
  continue;
  }

  1. Based on above code logic, we should have ifSpeed !=0, which is satisified for all the 3 interface
  2. Second mandatory condition is: ifSpeed <= interfaceLimit (i.e 11.9) of which only interface index 144 gets satisfied, rest of the 2 interface are having ifSpeed greater than 100 MB.
  3. Third condition is to check if "fallbackInterfaceMonitoringToMIB2" is set to TRUE. This flag is available in the tpmgr-param.conf and the default value is FALSE.

  4. By setting the above flag to TRUE, we have the interface index 144 being performance instrumented and the rest of the index 160 and 256 will not be instrumented as it does not satisfy the condition.

  Once you have the performance instrumentation created, we would be able to see the current utilization values as well for these interfaces.