Ethernet Interface Traffic and Error Statistics
(SM-SmallSol006)
Solution’s SOSL Based management process script:
|
|
|
Please Note:
This small solution Based management process script is very much identical to the one from the ETHERNET Interface Statistics solution. The only exception is the additional errors and discards counters in the management scripts below.
|
The solution defines the following main modules:
MainMIBTables:
This is the main module that controls and instantiates the ‘mibTables’ module.
MainFilterTables:
This is the main module that controls and instantiates the ‘FilterTables’ module.
MainIfEthernet:
This is the main module that controls and instantiates the ‘ifEthernetINDEXES1’ and the ‘ifEthernetINDEXES2’ modules.
MainIfHCEthernet:
This is the main module that controls and instantiates the ‘HCifEthernetINDEXES1’ and the ‘HCifEthernetINDEXES2’ modules.
The details of the Main modules and the transient Service modules are provided below:
MODULE MainMIBTables ();
DESCRIPTION "Interface INVENTORY information";
BEGIN
POLL-FREQ
{
MODULE-CALL mibTables();
WAIT (12000);
};
END
MODULE MainFilterTables ();
DESCRIPTION "Interface INVENTORY information";
BEGIN
POLL-FREQ
{
MODULE-CALL FilterTables();
WAIT (12000);
};
END
MODULE MainIfEthernet ();
DESCRIPTION "Normal Speed Interfaces Process";
BEGIN
ALL-DEV BY DEV
{
MODULE-CALL EthernetINDEXES1 (DEV);
};
POLL-FREQ
{
WAIT (3000);
ALL-DEV BY DEV
{
MODULE-CALL EthernetINDEXES2 (DEV);
};
};
END
MODULE MainIfHCEthernet ();
DESCRIPTION "High Speed Interfaces Process";
BEGIN
ALL-DEV BY DEV
{
MODULE-CALL HCEthernetINDEXES1 (DEV);
};
POLL-FREQ
{
WAIT (3000);
ALL-DEV BY DEV
{
MODULE-CALL HCEthernetINDEXES2 (DEV);
};
};
END
MODULE mibTables ();
DESCRIPTION "Interface INVENTORY information";
BEGIN
ALL-DEV BY DEV
{
SET-INDEX ifTable ( ifDescr [ ifIndex, INT ] );
};
END
MODULE FilterTables ();
DESCRIPTION "Interface INVENTORY information";
BEGIN
ALL-DEV BY DEV
{
WITH-INDEX ifTable
{
POLL ( ifDescr;
ifMtu;
ifType;
ifSpeed;
ifAdminStatus;
ifOperStatus );
DEFINE ifAdminStatus DB DISPL;
DEFINE ifType DB DISPL;
DEFINE ifOperStatus DB DISPL;
DEFINE ifSpeed DB DISPL;
IF ( ifAdminStatus == "up" AND
ifOperStatus == "up" AND
ifType == "^ethernetCsmacd" AND
ifSpeed <= 20000000 )
THEN
STORE-INDEX "IfEthernet";
###########################################
# “ifEthernet“ index list now contains the list of Ethernet
# csmacd type interfaces on each of the managed elements
###########################################
ELSEIF ( ifAdminStatus == "up" AND
ifOperStatus == "up" AND
ifType == "^ethernetCsmacd" AND
ifSpeed > 20000000 )
THEN
STORE-INDEX "IfHCEthernet";
############################################
# “ifHCEthernet“ index list now contains the list of High Speed
# Ethernet csmacd type interfaces on each of the managed
# elements
############################################
ENDIF;
};
};
END
MODULE EthernetINDEXES1 (DEV DEVICE);
DESCRIPTION "";
BEGIN
WITH-INDEX IfEthernet
{
POLL ( ifInOctets;
ifOutOctets;
ifInUcastPkts;
ifInMulticastPkts;
ifOutUcastPkts;
ifInBroadcastPkts;
ifOutMulticastPkts;
ifOutBroadcastPkts;
ifInErrors;
ifInDiscards;
ifOutErrors;
ifOutDiscards;
sysUpTime;
ifCounterDiscontinuityTime );
};
END
MODULE HCEthernetINDEXES1 (DEV DEVICE);
DESCRIPTION "";
BEGIN
WITH-INDEX
{
POLL ( ifHCInOctets;
ifHCOutOctets;
ifHCInUcastPkts;
ifHCInMulticastPkts;
ifHCOutUcastPkts;
ifHCInBroadcastPkts;
ifHCOutMulticastPkts;
ifHCOutBroadcastPkts;
ifInErrors;
ifInDiscards;
ifOutErrors;
ifOutDiscards;
sysUpTime;
ifCounterDiscontinuityTime );
};
END
MODULE EthernetINDEXES2 (DEV DEVICE);
DESCRIPTION "";
BEGIN
WITH-INDEX IfEthernet
{
DEFINE ifInOctetsT1 INT;
DEFINE ifOutOctetsT1 INT;
DEFINE ifInUcastPktsT1 INT;
DEFINE ifInMulticastPktsT1 INT;
DEFINE ifInBroadcastPktsT1 INT;
DEFINE ifOutUcastPktsT1 INT;
DEFINE ifOutMulticastPktsT1 INT;
DEFINE ifOutBroadcastPktsT1 INT;
DEFINE ifInErrorsT1 INT;
DEFINE ifInDiscardsT1 INT;
DEFINE ifOutErrorsT1 INT;
DEFINE ifOutDiscardsT1 INT;
DEFINE nTime1 INT;
DEFINE ifDisconTime1 INT;
DEFINE ifInOctets DB INT;
DEFINE ifOutOctets DB INT;
DEFINE ifInUcastPkts DB INT;
DEFINE ifInMulticastPkts DB INT;
DEFINE ifInBroadcastPkts DB INT;
DEFINE ifOutUcastPkts DB INT;
DEFINE ifOutMulticastPkts DB INT;
DEFINE ifOutBroadcastPkts DB INT;
DEFINE ifInErrors DB INT;
DEFINE ifInDiscards DB INT;
DEFINE ifOutErrors DB INT;
DEFINE ifOutDiscards DB INT;
DEFINE sysUpTime DB INT;
DEFINE ifCounterDiscontinuityTime DB INT;
ifInOctetsT1 = ifInOctets;
ifOutOctetsT1 = ifOutOctets;
ifInUcastPktsT1 = ifInUcastPkts;
ifInMulticastPktsT1 = ifInMulticastPkts;
ifInBroadcastPktsT1 = ifInBroadcastPkts;
ifOutUcastPktsT1 = ifOutUcastPkts;
ifOutMulticastPktsT1 = ifOutMulticastPkts;
ifOutBroadcastPktsT1 = ifOutBroadcastPkts;
ifInErrorsT1 = ifInErrors;
ifInDiscardsT1 = ifInDiscards;
ifOutErrorsT1 = ifOutErrors;
ifOutDiscardsT1 = ifOutDiscards;
nTime1 = sysUpTime /100;
ifDisconTime1 = ifCounterDiscontinuityTime;
RMV ( ifInOctets;
ifOutOctets;
ifInUcastPkts;
ifInMulticastPkts;
ifOutUcastPkts;
ifInBroadcastPkts;
ifOutMulticastPkts;
ifOutBroadcastPkts;
ifInErrors;
ifInDiscards;
ifOutErrors;
ifOutDiscards;
ifSpeed;
ifCounterDiscontinuityTime);
POLL ( ifInOctets;
ifOutOctets;
ifInUcastPkts;
ifInMulticastPkts;
ifOutUcastPkts;
ifInBroadcastPkts;
ifOutMulticastPkts;
ifOutBroadcastPkts;
ifInErrors;
ifInDiscards;
ifOutErrors;
ifOutDiscards;
sysUpTime;
ifCounterDiscontinuityTime );
DEFINE ifInOctetsT2 INT;
DEFINE ifOutOctetsT2 INT;
DEFINE ifInUcastPktsT2 INT;
DEFINE ifInMulticastPktsT2 INT;
DEFINE ifInBroadcastPktsT2 INT;
DEFINE ifOutUcastPktsT2 INT;
DEFINE ifOutMulticastPktsT2 INT;
DEFINE ifOutBroadcastPktsT2 INT;
DEFINE ifInErrorsT2 INT;
DEFINE ifInDiscardsT2 INT;
DEFINE ifOutErrorsT2 INT;
DEFINE ifOutDiscardsT2 INT;
ifInOctetsT2 = ifInOctets;
ifOutOctetsT2 = ifOutOctets;
ifInUcastPktsT2 = ifInUcastPkts;
ifInMulticastPktsT2 = ifInMulticastPkts;
ifInBroadcastPktsT2 = ifInBroadcastPkts;
ifOutUcastPktsT2 = ifOutUcastPkts;
ifOutMulticastPktsT2 = ifOutMulticastPkts;
ifOutBroadcastPktsT2 = ifOutBroadcastPkts;
ifInErrorsT2 = ifInErrors;
ifInDiscardsT2 = ifInDiscards;
ifOutErrorsT2 = ifOutErrors;
ifOutDiscardsT2 = ifOutDiscards;
DEFINE nTime2 INT;
DEFINE ifDisconTime2 INT;
nTime2 = sysUpTime /100;
ifDisconTime2 = ifCounterDiscontinuityTime;
################################################
# MSG("ifDisconTime1 = @1,
# ifDisconTime2 = @2", ifDisconTime1, ifDisconTime2);
################################################
IF (ifDisconTime2 == ifDisconTime1)
THEN
CounterData( DeltaifInOctets,
ifInOctetsT1,
ifInOctetsT2);
CounterData( DeltaifOutOctets,
ifOutOctetsT1,
ifOutOctetsT2);
CounterData( DeltaifInUcastPkts ,
ifInUcastPktsT1,
ifInUcastPktsT2);
CounterData( DeltaifInBroadcastPkts,
ifInBroadcastPktsT1,
ifInBroadcastPktsT2);
CounterData( DeltaifInMulticastPkts ,
ifInMulticastPktsT1,
ifInMulticastPktsT2);
CounterData( DeltaifOutUcastPkts,
ifOutUcastPktsT1,
ifOutUcastPktsT2);
CounterData( DeltaifOutBroadcastPkts,
ifOutBroadcastPktsT1,
ifOutBroadcastPktsT2);
CounterData( DeltaifOutMulticastPkts,
ifOutMulticastPktsT1,
ifOutMulticastPktsT2);
CounterData( DeltaifInErrors,
ifInErrorsT1,
ifInErrorsT2);
CounterData( DeltaifInDiscards,
ifInDiscardsT1,
ifInDiscardsT2);
CounterData( DeltaifOutErrors,
ifOutErrorsT1,
ifOutErrorsT2);
CounterData( DeltaifOutDiscards,
ifOutDiscardsT1,
ifOutDiscardsT2);
DEFINE InFrmOVHead INT;
DEFINE OutFrmOVHead INT;
################################################
# DEFINE FrmOVHead INT;
################################################
################################################
## The following formulas calculates the In/Out traffic Overhead
## values for all traffic passing for the particular interface type
##
################################################
InFrmOVHead = ( DeltaifInUcastPkts
+ DeltaifInBroadcastPkts
+ DeltaifInMulticastPkts) * (96 + 64);
OutFrmOVHead = ( DeltaifOutUcastPkts
+ DeltaifOutBroadcastPkts
+ DeltaifOutMulticastPkts) * (96 + 64);
#################################################
## Calculating the time difference between the first and second run
## polls as reported by each managed element
#################################################
DEFINE DeltaT INT;
DeltaT = nTime2 - nTime1;
#################################################
# MSG("ifSpeed = @1, DeltaT = @2", ifSpeed, DeltaT);
#################################################
DEFINE ifSpeed DB INT;
IF (ifSpeed != 0 AND DeltaT > 0)
THEN
#############################################
## The following formulas calculates the In/OutUtilization
## values for all traffic passing for the particular interface type
#############################################
DEFINE InTrafficUtilization DB INT;
DEFINE OutTrafficUtilization DB INT;
InTrafficUtilization = (DeltaifInOctets * 8) * 100 / (DeltaT * ifSpeed);
OutTrafficUtilization = (DeltaifOutOctets * 8) * 100/ (DeltaT * ifSpeed);
############################################
# MSG("InTrafficUtil = @1, OutTrafficUtil = @2",
# InTrafficUtilization, OutTrafficUtilization);
############################################
############################################
## The following formulas calculates the In/OutUtilization
## values while accounting for traffic overheads for the
## particular interface type
############################################
DEFINE InDataUtilization DB INT;
DEFINE OutDataUtilization DB INT;
InDataUtilization = (InFrmOVHead + DeltaifInOctets * 8)*100/ (DeltaT * ifSpeed);
OutDataUtilization = (OutFrmOVHead + DeltaifOutOctets * 8)*100/ (DeltaT * ifSpeed);
############################################
## The following formulas calculates the In/Out Throughput
## values for the particular interface type
############################################
DEFINE InThroughput DB INT;
DEFINE OutThroughput DB INT;
InThroughput = (DeltaifInOctets * 8) *1000 / DeltaT;
OutThroughput = (DeltaifOutOctets * 8) *1000 / DeltaT;
##############################################################
## The total utilization and Throughput could be calculated by enabling the following
## piece of code:
#
# DEFINE TotalPkts INT;
# DEFINE TotalInPkts INT;
# DEFINE TotalOutPkts INT;
# DEFINE TotalOctets INT;
#
# FrmOVHead = TotalPkts * (96 + 64);
#
# TotalInPkts = ( DeltaifInUcastPkts
# + DeltaifInMulticastPkts
# + DeltaifInBroadcastPkts );
#
# TotalOutPkts = ( DeltaifOutUcastPkts
# + DeltaifOutMulticastPkts
# + DeltaifOutBroadcastPkts );
#
# TotalPkts = TotalInPkts + TotalOutPkts;
#
# TotalOctets = DeltaifOutOctets + DeltaifInOctets;
#
# DEFINE TotalUtilization DB INT;
# DEFINE Throughput DB INT;
#
# TotalUtilization = ((TotalPkts*(96 + 64)) + TotalOctets*8)*100/(DeltaT * ifSpeed);
# Throughput = (TotalOctets * 8) *1000 / DeltaT;
##############################################################
ENDIF;
ENDIF;
};
END
MODULE HCEthernetINDEXES2 (DEV DEVICE);
DESCRIPTION "";
BEGIN
WITH-INDEX IfHCEthernet
{
DEFINE ifHCInOctetsT1 INT;
DEFINE ifHCOutOctetsT1 INT;
DEFINE ifHCInUcastPktsT1 INT;
DEFINE ifHCOutUcastPktsT1 INT;
DEFINE ifHCInMulticastPktsT1 INT;
DEFINE ifHCInBroadcastPktsT1 INT;
DEFINE ifHCOutMulticastPktsT1 INT;
DEFINE ifHCOutBroadcastPktsT1 INT;
DEFINE nTime1 INT;
DEFINE ifDisconTime1 INT;
DEFINE ifInOctets DB INT;
DEFINE ifOutOctets DB INT;
DEFINE ifInUcastPkts DB INT;
DEFINE ifOutUcastPkts DB INT;
DEFINE ifHCInMulticastPkts DB INT;
DEFINE ifHCInBroadcastPkts DB INT;
DEFINE ifHCOutMulticastPkts DB INT;
DEFINE ifHCOutInBroadcastPkts DB INT;
DEFINE sysUpTime DB INT;
DEFINE ifCounterDiscontinuityTime DB INT;
ifHCInOctetsT1 = ifHCInOctets;
ifHCOutOctetsT1 = ifHCOutOctets;
ifHCInUcastPktsT1 = ifHCInUcastPkts;
ifHCOutUcastPktsT1 = ifHCOutUcastPkts;
ifHCInMulticastPktsT1 = ifHCInMulticastPkts;
ifHCInBroadcastPktsT1 = ifHCInBroadcastPkts;
ifHCOutMulticastPktsT1 = ifHCOutMulticastPkts;
ifHCOutBroadcastPktsT1 = ifHCOutBroadcastPkts;
nTime1 = sysUpTime /100;
ifDisconTime1 = ifCounterDiscontinuityTime;
RMV ( ifHCInOctets;
ifHCOutOctets;
ifHCInUcastPkts;
ifHCInMulticastPkts;
ifHCOutUcastPkts;
ifHCInBroadcastPkts;
ifHCOutMulticastPkts;
ifHCOutBroadcastPkts;
ifSpeed;
sysUpTime;
ifCounterDiscontinuityTime);
POLL ( ifHCInOctets;
ifHCOutOctets;
ifHCInUcastPkts;
ifHCInMulticastPkts;
ifHCOutUcastPkts;
ifHCInBroadcastPkts;
ifHCOutMulticastPkts;
ifHCOutBroadcastPkts;
ifSpeed;
sysUpTime;
ifPhysAddress;
ifCounterDiscontinuityTime
ifLinkUpDownTrapEnable );
DEFINE ifHCInOctetsT2 INT;
DEFINE ifHCOutOctetsT2 INT;
DEFINE ifHCInUcastPktsT2 INT;
DEFINE ifHCOutUcastPktsT2 INT;
DEFINE ifHCInMulticastPktsT2 INT;
DEFINE ifHCInBroadcastPktsT2 INT;
DEFINE ifHCOutMulticastPktsT2 INT;
DEFINE ifHCOutBroadcastPktsT2 INT;
ifHCInOctetsT2 = ifHCInOctets;
ifHCOutOctetsT2 = ifHCOutOctets;
ifHCInUcastPktsT2 = ifHCInUcastPkts;
ifHCOutUcastPktsT2 = ifHCOutUcastPkts;
ifHCInMulticastPktsT2 = ifHCInMulticastPkts;
ifHCInBroadcastPktsT2 = ifHCInBroadcastPkts;
ifHCOutMulticastPktsT2 = ifHCOutMulticastPkts;
ifHCOutBroadcastPktsT2 = ifHCOutBroadcastPkts;
DEFINE nTime2 INT;
DEFINE ifDisconTime2 INT;
nTime2v = sysUpTime /100;
ifDisconTime2 = ifCounterDiscontinuityTime;
IF (ifDisconTime2 == ifDisconTime1)
THEN
CounterData64( DeltaifHCInOctets,
DeltaifHCInOctetsT1,
DeltaifHCInOctetsT2);
CounterData64( DeltaifHCOutOctets,
DeltaifHCOutOctetsT1,
DeltaifHCOutOctetsT2);
CounterData64( DeltaifHCInUcastPkts,
DeltaifHCInUcastPktsT1,
DeltaifHCInUcastPktsT2);
CounterData64( DeltaifHCOutUcastPkts,
DeltaifHCOutUcastPktsT1,
DeltaifHCOutUcastPktsT2);
CounterData64( DeltaifHCInMulticastPkts,
DeltaifHCInMulticastPktsT1,
DeltaifHCInMulticastPktsT2);
CounterData64( DeltaifHCInBroadcastPkts,
DeltaifHCInBroadcastPktsT1,
DeltaifHCInBroadcastPktsT2);
CounterData64( DeltaifHCOutMulticastPkts,
DeltaifHCOutMulticastPktsT1,
DeltaifHCOutMulticastPktsT2);
CounterData64( DeltaifHCOutBroadcastPkts,
DeltaifHCOutBroadcastPktsT1,
DeltaifHCOutBroadcastPktsT2);
CounterData( DeltaifInErrors,
ifInErrorsT1,
ifInErrorsT2);
CounterData( DeltaifInDiscards,
ifInDiscardsT1,
ifInDiscardsT2);
CounterData( DeltaifOutErrors,
ifOutErrorsT1,
ifOutErrorsT2);
CounterData( DeltaifOutDiscards,
ifOutDiscardsT1,
ifOutDiscardsT2);
DEFINE TotalPkts INT;
DEFINE TotalOctets INT;
DEFINE InFrmOVHead INT;
DEFINE OutFrmOVHead INT;
DEFINE FrmOVHead INT;
TotalPkts = ( DeltaifHCInUcastPkts
+ DeltaifHCInMulticastPkts
+ DeltaifHCInBroadcastPkts
+ DeltaifHCOutUcastPkts
+ DeltaifHCOutMulticastPkts
+ DeltaifHCOutBroadcastPkts );
TotalOctets = DeltaifHCOutOctets + DeltaifHCInOctets;
InFrmOVHead = ( DeltaifHCInUcastPkts
+ DeltaifHCInMulticastPkts
+ DeltaifHCInBroadcastPkts) * (96 + 64);
OutFrmOVHead = ( DeltaifHCOutUcastPkts
+ DeltaifHCOutMulticastPkts
+ DeltaifHCOutBroadcastPkts) * (96 + 64);
#################################################
## Calculating the time difference between the first and second run
## polls as reported by each managed element
#################################################
DEFINE DeltaT INT;
DeltaT = nTime2 - nTime1;
DEFINE ifSpeed DB INT;
IF (ifSpeed != 0 AND DeltaT > 0)
THEN
#############################################
## The following formulas calculates the In/OutUtilization
## values for all traffic passing for the particular interface type
#############################################
DEFINE InTrafficUtilization DB INT;
DEFINE OutTrafficUtilization DB INT;
InTrafficUtilization = (DeltaifHCInOctets * 8) * 100 / (DeltaT * ifSpeed);
OutTrafficUtilization = (DeltaifHCOutOctets * 8) * 100/ (DeltaT * ifSpeed);
#############################################
## The following formulas calculates the In/OutUtilization
## values while accounting for traffic overheads for the
## particular interface type
#############################################
DEFINE InDataUtilization DB INT;
DEFINE OutDataUtilization DB INT;
InDataUtilization = (InFrmOVHead + DeltaifHCInOctets * 8)*100/ (DeltaT * ifSpeed);
OutDataUtilization = (OutFrmOVHead + DeltaifHCOutOctets * 8)*100/ (DeltaT * ifSpeed);
################################################
## The following formulas calculates the In/Out Throughput
## values for the particular interface type
################################################
DEFINE InThroughput DB INT;
DEFINE OutThroughput DB INT;
InThroughput = (DeltaifHCInOctets * 8)*1000 / DeltaT;
OutThroughput = (DeltaifHCOutOctets * 8)*1000 / DeltaT;
##############################################################
## The total utilization and Throughput could be calculated by enabling the following
#piece of code:
# DEFINE TotalPkts INT;
# DEFINE TotalInPkts INT;
# DEFINE TotalOutPkts INT;
# DEFINE TotalOctets INT;
#
# FrmOVHead = TotalPkts * (96 + 64);
#
# TotalInPkts = ( DeltaifHCInUcastPkts
# + DeltaifHCInMulticastPkts
# + DeltaifHCInBroadcastPkts );
#
# TotalOutPkts = ( DeltaifHCOutUcastPkts
# + DeltaifHCOutMulticastPkts
# + DeltaifHCOutBroadcastPkts );
#
# TotalPkts = TotalInPkts + TotalOutPkts;
#
# TotalOctets = DeltaifHCOutOctets + DeltaifHCInOctets;
#
# DEFINE TotalUtilization DB INT;
# DEFINE Throughput DB INT;
#
# TotalUtilization = ((TotalPkts*(96 + 64)) + TotalOctets*8)*100/(DeltaT * ifSpeed);
# Throughput = (TotalOctets * 8) *1000 / DeltaT;
##############################################################
ENDIF;
ENDIF;
};
END
| Ethernet Interface Traffic and Error Statistics Index Page |
Previous Page Page 4/6 Next Page |
[Small Solutions], [Professional Solutions], [Security
Solutions], [Development Solutions]
[Home], [About],
[Solutions
Center], [NMS
Market],
[Products & Services],
[Management
Technology], [Technical Support],
[Contact us],
[Site Map]