Spectrum NRM_RunningFirmware attribute not populating for some device models.

Document ID : KB000045787
Last Modified Date : 14/02/2018
Show Technical Document Details

SUMMARY: We have several different device models where the Spectrum NRM_RunningFirmware attribute id 0x12de0 is not being populated. How can we get Spectrum to populate the NRM_RunningFirmware attribute?

 

INSTRUCTIONS: Out of the box, there are 4 attributes involved with populating the NRM_RunningFirmware attribute: 

 

sysDescr attribute id 0x10052 

NRM_RunningFirmware_Source attribute id 0x12de4 

NRM_RunningFirmwareAttr attribute id 0x12de1 

NRM_RunningFirmwareFilters attribute id 0x12de2 

 

The way it works is the default value of NRM_RunningFirmwareAttr is 0x10052 which is the attribute id for sysDescr. The NRM_RunningFirmwareFilters attribute contains a list of 14 regular expression filters that are applied to the value of the sysDescr attribute. For example, "(?<!h\/w)s\/?w\_?\s*Rev(?:ision)?:?\s*([^\s;,\n\r]+)". Spectrum starts at the top of this list and applies the filter to the value of sysDescr. If Spectrum gets a value after applying a filter, then Spectrum populates the NRM_RunningFirmware_Source attribute with the filter number that returned a value. For example, if the 2nd filter in the list returned a value, then the value of NRM_RunningFirmware_Source will be set to 0x10052:2. It then populates the NRM_RunningFirmware attribute with the value from the applied filter. 

The following is an example of a device where the NRM_RunningFirmwareAttr was populated by the first filter in the NRM_RunningFirmwareFilters attribute:

444077_1.png

 

For devices where the NRM_RunningFirmwareAttr is not populated, there are two possible ways to get Spectrum to populate it.

 

1. If you have a device where the NRM_RunningFirmware attribute is not being populated but the sysDesc does contain the firmware information, a new regexp can be added to the NRM_RunningFirmwareFilters attribute to find it. The change must be done using the Model Type Editor. For example, a Nortel router that has the following for the value of sysDesc:

 

ERS-8806 (7.2.20.0) 

 

Assuming "7.2.20.0" in the above sysDesc is the firmware version of the device, the following regexp can be added to the NRM_RunningFirmwareFilters attribute to populate the NRM_RunningFirmware attribute. 

 

(^ERS)*([0-9]*[.][0-9]*[.][0-9]*[.][0-9]*)

 

2. If you have a device where the NRM_RunningFirmware attribute is not being populated and the sysDescr does not contain information about the firmware rev but there is another attribute that does, the NRM_RunningFirmwareAttr can be populated with this other attribute id in addition to the sysDesc attribute. The NRM_RunningFirmwareAttr is a list of attributes to test the filters against. This attribute can only be modified using the Model Type Editor. If this method is used, the NRM_RunningFirmwareFilters attribute may also need a new regexp to filter for and extract the firmware version information to populate the NRM_RunningFirmware attribute. 

 

After making these changes using he Model Type Editor a reconfigure of current models of this type must be done by right mouse clicking on the model and selecting Reconfiguration -> Reconfigure Model from the menu. Then check the value of the NRM_RunningFirmware attribute.