Customer Case Study: Windstream

When Automatic Provisioning Is Not Feasible

OpenNMS’s customizability and meta-data DSL feature allow for the discovery of devices that cannot be discovered through automatic provisioning.

Windstream provides high-speed broadband Internet, phone service and digital TV packages to residential customers, and products and services for businesses and government agencies.

Automatic provisioning was not an option for certain network devices due to their design. Windstream needed a fast, simple way to provision nodes that would not impact device performance.

Challenge: Automatic Provisioning Was Impossible

Windstream deploys Calix C7 Multiservice Access Systems (C7s) in its network. C7s work in clusters, where all members of the cluster share the same IP address. Data collection from C7s is complicated, as each device has multiple internal SNMP agents, each of which has its own credentials and settings, all exposed on the same IP address and different ports.

During automatic provisioning, OpenNMS expects each device to have its own IP address and SNMP agent. With C7s, there is no way to build inventory in OpenNMS’s traditional, automated way.

Making SNMP requests against C7 devices is expensive: An overwhelming number of requests, many of which would be discarded if the devices are busy, also means an unacceptable impact on performance.

OpenNMS Solution: Customize Using Meta-Data Feature to Manually Populate Inventory

The OpenNMS Group used its Meta-Data DSL (domain specific language) feature to populate the inventory using the node’s endpoint of the ReST API. A custom script uses meta-data syntax to explicitly identify the ports needed on the physical interface during the provisioning process.

At runtime, the script overwrites the actual port numbers, allowing collection from each SNMP agent, even when other agents on the device share the same IP address. Instead of retrieving data from an entire SNMP table, the script adds the specific SNMP or physical interfaces directly to the database without querying the device, so the Collector can retrieve performance metrics through SNMP, only from those interfaces.