How I can monitor Channel Utilization Load for the Cisco Access Point.
search cancel

How I can monitor Channel Utilization Load for the Cisco Access Point.

book

Article ID: 226797

calendar_today

Updated On:

Products

CA Spectrum

Issue/Introduction

I have created a watch on next table attribute of a Cisco WLC (like Catalyst 9800)

bsnAPIfLoadChannelUtilization

The alarm is generated when the threshold is exceeded, however the alarm doesn't include the AP name, but the instance Id of the above table attribute. 

The AP name can be obtained from bsnAPName attribute, but the instance's ID from both table attributes are not exactly the same.

For example, 0.39.227.55.56.32.0 and 0.39.227.55.56.32.1 instance id in bsnAPIfLoadChannelUtilization correspond to 0.39.227.55.56.32 in bsnAPName.

Basically the instance ID is the same, except by the last part.

 

 

Environment

Release : 10.4.1

Component : Spectrum OneClick

Cause

When a threshold is exceeded on an instance attribute from a watch, the instance that exceeded the threshold is passed on to the resulting event as event variable "8".

If other table attribute contains the human readable value you would like to include in the alarm, you can use the steps described on next technical document to accomplish that:

How to add additional instance information to an event created from an instance SpectroWatch in CA Spectrum
https://knowledge.broadcom.com/external/article?articleId=140165

However, as explained in the above document, the only basic requirement for doing this is that the table from where you want to collect the additional information from MUST be instanced in the same way as the table the SpectroWatch is using in the watch expression.

Like in this example, instance ID 1 from locIfInCRC, has a value of 0, and its description can be obtained from the value of IfDescr instance ID 1.

As bsnAPIfLoadChannelUtilization and bsnAPName Instance IDs just partially matches, you can still use an Event Procedure to get the value from bsnAPName attribute, but you need to include a regular expression to get from bsnAPIfLoadChannelUtilization instance ID the valid Instance ID for bsnAPName

Resolution

To accomplish the goal, Engineering has provided, and successfully tested next Event Procedure

0xfff0000b P " \
 CreateEventWithVariables( \
  { C CURRENT_MODEL }, \
  { H 0xfff0000d }, \
  SetEventVariable( \
   SetEventVariable( \
       SetEventVariable( \
           SetEventVariable( \
               SetEventVariable( \
                   SetEventVariable( \
                       SetEventVariable( \
                           GetEventVariableList(), \
                           { U 20 }, \
                           ReadAttributeInstance( \
                                { C CURRENT_MODEL }, \
                                { H 0x213a52 }, \
                                GetRegexp( \
                                   ToString( GetEventVariable({U 8}) ), \
                                   {S\"^(.*(?=\.)(?=..))\"}, \
                                   {U 1} )) ), \
                       { U 11 }, \
                       GetEventVariable({U 11})), \
                   { U 8 }, \
                   GetEventVariable({U 8})), \
               { U 7 }, \
               GetEventVariable({U 7})), \
           { U 6 }, \
           GetEventVariable({U 6})), \
       { U 4 }, \
       GetEventVariable({U 4})), \
   { U 2 }, \
   GetEventVariable({U 2}))) "