Proactive Network Maintenance - Pre-equalization Grouping
Identifying and fixing issues in the network proactively instead of reacting, when customers start contacting your support service, has become the modus operandi for service providers. For cable, standards on how to do so are defined in the CableLabs PNM paper. A major part of this standard is Pre-equalization. This post will go deeper into the pre-equalization coefficients and how they can be grouped to find potential groups of modems that exhibit a similar issue. This can be used to indicate a common issue with a cable these modems share.
Before we take a look at the actual PNM grouping algorithm, let's understand a few preliminaries. First, pre-equalization coefficients consist of 24 complex numbers. The coefficients are also called taps. The 8th complex number is usually the main tap. Based on these taps, a number of metrics can be computed. A few examples include the Main Tap Compression (MTC) or the Main Tap Ratio (MTR). Most of these metrics require energy, which is defined as the magnitude of a complex number x:
For instance, if y is the main tap energy divided by the energy of all other taps, MTR is 10*log(y). MTR on its own is already quite useful. The CableLabs specification defines a few thresholds based on the MTR value. For instance, in a usual network, MTR less than 18 dB would indicate a very bad issue, while anything above or equal to 25 dB is fine (and anything in between is a marginal MTR).
With these preliminaries out of the way, we may now take a look at the PNM grouping algorithm. The PNM grouping algorithm is defined per fiber node, i.e. we analyze each fiber node separately. Specifically, we execute the following steps:
Determine all modems connected to a fiber node.
Obtain the pre-equalization coefficients for each modem.
Calculate MTR for each modem.
Filter the modems by their MTR (any modem with a MTR >= 25 can be safely ignored).
Group the modems by their channel.
For each group with n modems, go through all n(n+1)/2 combinations without replacement and compute a similarity (more on that below).
A PNM group now consists of modems that are similar to at least one other in the group. There can be multiple groups in a given fiber node.
When plotted on a map, these groups are usually localized, i.e. all modems are neighbors. As for the similarity measure, there are multiple possibilities here. One that is described by the standard is converting both pre-equalization coefficients of two prospective modems into frequency domain, taking the inverse FFT and then calculating the SNR on that. A very high SNR indicates high similarity and vice versa. Note: in this case SNR and MTR are calculated in a similar way.
Step 7 is quite interesting - a good library that helps in building such graphs is networkx. These modems are by definition weakly connected (a modem is not necessarily similar to all others in its group), and this is exactly what the networkx function weakly_connected_components gives us.
The above algorithm unfortunately runs in O(n2), where n is the number of modems. There are fiber nodes with thousands of modems, which can make this algorithm quickly run up to millions of comparisons. That is why the filtering step is extremely important. Below you can see a histogram of MTR values for a given channel in a fiber node. Nearly 60% of modems can be filtered due to having an MTR >= 25, which dramatically reduces the running time of the algorithm.
There are a few more tweaks possible (more filtering) to further improve the running time. And, the taps lend themselves nicely to clustering algorithms such as DBSCAN. But more on that in future posts.
*The figures do not represent a product by Axiros, but merely illustrate the algorithm and can be seen as complementary information.