SmartMIB Small Solution:

ISDN Type Interface Statistics (Utilization & Throughput)


(SM-SmallSol013)

Solution’s SOSL Based management process script:

 

The solution defines the following main modules:

 

MainMIBTables:

This is the main module that controls and instantiates the ‘mibTables’ module.

 

MainFilterISDNTables:

This is the main module that controls and instantiates the ‘FilterISDNTables’ module.

 

MainIfISDN:

This is the main module that controls and instantiates the ‘ISDNINDEXES1’ and the ‘ISDNINDEXES2’ 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 MainFilterISDNTables ();

DESCRIPTION "Interface INVENTORY information";

BEGIN

 

            POLL-FREQ

            {

                        MODULE-CALL FilterISDNTables();

 

                        WAIT (12000);

            };

END

 


 

MODULE MainIfISDN ();

DESCRIPTION "Normal Speed Interfaces Process";

BEGIN

 

            ALL-DEV BY DEV

            {

                        MODULE-CALL ISDNINDEXES1 (DEV);

            };

 

            POLL-FREQ

            {

                        WAIT (3000);

 

                        ALL-DEV BY DEV

                        {

                                    MODULE-CALL ISDNINDEXES2 (DEV);

                        };

            };

END

 


 

MODULE mibTables ();

DESCRIPTION "Interface INVENTORY information";

BEGIN              

            ALL-DEV BY DEV

            {

                        SET-INDEX ifTable ( ifDescr [ ifIndex, INT ] );

            };

END

 


 

MODULE FilterISDNTables ();

DESCRIPTION "Interface INVENTORY information";

BEGIN

            ALL-DEV BY DEV

            {

                        ###########################

                        #    MSG (" DEVICE: @1", DEV);

                        ###########################

 

                        WITH-INDEX ifTable

                        {

                                    POLL (   ifDescr;

                                                ifType;

                                                ifSpeed;

                                                ifAdminStatus;

                                                ifMtu;

                                                ifOperStatus;

                                                ifAlias;

                                                ifConnectorPresent);

 

                                    DEFINE ifAdminStatus DB DISPL;        

                                    DEFINE ifType DB DISPL;        

                                    DEFINE ifOperStatus DB DISPL;

                                    DEFINE ifSpeed DB DISPL;        

                                    DEFINE ifConnectorPresent DB DISPL;        

 

                                    IF (   ifAdminStatus    == "up"             AND

                                            ifOperStatus      == "up"             AND

                                            ifType               == "^isdns$"     OR

                                            ifType               == "^isdns$"     )

                                    THEN

                                                STORE-INDEX "IfIsdn";

 

                                                ##########################################

                                                # “IfIsdn“ index list now contains the list of all ISDN type 

                                                # interfaces on each of the managed elements

                                                ##########################################

 

                                    ENDIF;

                        };

            };

END


 

MODULE  ISDNINDEXES1 (DEV DEVICE);

DESCRIPTION "";

BEGIN

 

            WITH-INDEX IfIsdn

            {

                        POLL (   ifInOctets;

                                    ifOutOctets;

                                    ifInUcastPkts;

                                    ifInMulticastPkts;

                                    ifOutUcastPkts;

                                    ifInBroadcastPkts;

                                    ifOutMulticastPkts;

                                    ifOutBroadcastPkts;

                                    sysUpTime;

                                    ifCounterDiscontinuityTime);

            };

END

 


 

MODULE  ISDNINDEXES2 (DEV DEVICE);

DESCRIPTION "";

BEGIN

 

            WITH-INDEX IfIsdn

            {

                        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 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 sysUpTime DB INT;

                        DEFINE ifCounterDiscontinuityTime DB INT;

 

                        ifInOctetsT1 = ifInOctets;

                        ifOutOctetsT1 = ifOutOctets;

                        ifInUcastPktsT1 = ifInUcastPkts;

                        ifInMulticastPktsT1 = ifInMulticastPkts;

                        ifInBroadcastPktsT1 = ifInBroadcastPkts;

                        ifOutUcastPktsT1 = ifOutUcastPkts;

                        ifOutMulticastPktsT1 = ifOutMulticastPkts;

                        ifOutBroadcastPktsT1 = ifOutBroadcastPkts;

 

                        nTime1 = sysUpTime /100;

                        ifDisconTime1 = ifCounterDiscontinuityTime;

 

                        RMV (    ifInOctets;

                                    ifOutOctets;

                                    ifInUcastPkts;

                                    ifInMulticastPkts;

                                    ifOutUcastPkts;

                                    ifInBroadcastPkts;

                                    ifOutMulticastPkts;

                                    ifOutBroadcastPkts;

                                    ifSpeed;

                                    ifCounterDiscontinuityTime);

 

                        POLL (   ifDescr;

                                    ifInOctets;

                                    ifOutOctets;

                                    ifInUcastPkts;

                                    ifInMulticastPkts;

                                    ifOutUcastPkts;

                                    ifInBroadcastPkts;

                                    ifOutMulticastPkts;

                                    ifOutBroadcastPkts;

                                    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;

 

                        ifInOctetsT2 = ifInOctets;     

                        ifOutOctetsT2 = ifOutOctets;

                        ifInUcastPktsT2 = ifInUcastPkts;

                        ifInMulticastPktsT2 = ifInMulticastPkts;

                        ifInBroadcastPktsT2 = ifInBroadcastPkts;

                        ifOutUcastPktsT2 = ifOutUcastPkts;

                        ifOutMulticastPktsT2 = ifOutMulticastPkts;

                        ifOutBroadcastPktsT2 = ifOutBroadcastPkts;

 

                        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);

 

                                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) * (12);

 

                                OutFrmOVHead  = (        DeltaifOutUcastPkts

                                                            + DeltaifOutBroadcastPkts

                                                            + DeltaifOutMulticastPkts) * (12);

                                   

                                #####################################

                                ## 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 * (12);

#

#                                  TotalInPkts = (     DeltaifInUcastPkts

#                                                          + DeltaifInMulticastPkts

#                                                          + DeltaifInBroadcastPkts            );

#

#                                  TotalOutPkts = (   DeltaifOutUcastPkts

#                                                          + DeltaifOutMulticastPkts

#                                                          + DeltaifOutBroadcastPkts          );

#

#                                  TotalPkts           = TotalInPkts + TotalOutPkts;

#

#                                  TotalOctets        = DeltaifOutOctets + DeltaifInOctets;

#

#                                              DEFINE TotalUtilization    DB INT;

#                                              DEFINE Throughput        DB INT;

#

#               TotalUtilization = ((TotalPkts*(12)) + TotalOctets*8)*100/(DeltaT * ifSpeed);

#               Throughput        = (TotalOctets * 8) *1000 / DeltaT;

##############################################################

 

                                    ENDIF;

                        ENDIF;

            };

END

 


ISDN Type Interface 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]