# DIMENSIONING APPROACH FOR DATA NETWORKS

A network dimensioning algorithm for networks, such as DOCSIS 3.1 networks are described. The present system and method combines per-profile traffic characteristics, available bandwidth, legacy coexistence, and detail overhead contributions of cyclic prefix, pilots, excluded subcarriers, FEC, and bit loading among other parameters.

## Latest Cable Television Laboratories, Inc. Patents:

**Description**

**BACKGROUND**

Cable data networks have evolved throughout the years to the current fairly complex system that DOCSIS 3.1 represents. The DOCSIS 3.1 multicarrier system has a variety of sources of overhead that have to be taken into account when estimating capacity. The introduction of profiles has introduced a new layer of complexity as each profile depending on its traffic characteristics and the channel conditions of its related end-devices will have its own efficiency estimate. The determination of resources consumed allow cable operators to determine how to best assign spectrum, network device ports and how to configure the network devices to meet desire performance levels for their subscribers. It is also a tool for operators to determine the appropriate time to upgrade and purchase equipment as the demand for capacity continues to grow.

**SUMMARY OF THE INVENTION**

A network dimensioning algorithm for networks, such as that included in DOCSIS 3.1, is described. The algorithm combines per profile traffic characteristics, available bandwidth, legacy coexistence and detail overhead contributions of cyclic prefix, pilots, excluded subcarriers, FEC and bit loading, among other parameters.

The present dimensioning approach to data networks system and method may be implemented externally to the cable modem terminal system (CMTS) and the cable modem (CM) for purposes of collecting data therefrom. In addition, the present system and method may also collect data regarding traffic through the CMTS and CM. The collected data is utilized according to the instructions presented here for the calculation of capacity and efficiency, which may then be used to select the appropriate transmission patterns, and thereby the best balance of efficiency and robustness for a given network path.

In an embodiment, in addition to the collection of CMTS configuration parameters that rely on the CMTS's internal algorithms, the present dimensioning system may also externally optimizes the CMTS data based on traffic and channel conditions and then communicate the results back to the CMTS. Based at least in part on the results, the upstream algorithm assesses whether greater efficiencies may be gained by utilizing a lower modulation order body minislot and transmitting through the impairment or by skipping over the impairment and begin the transmission of an edge minislot.

In an example of a downstream embodiment, a similar process to that described above in the upstream embodiments may be used. For example, in the case of a wideband interferer, like LTE ingress, carriers are not automatically excluded. Instead, an ingress level and the OFDM signal level per profile assessment is made to determine the use of FEC and frequency interleaving to overcome, rather than avoid, the wideband interference.

**BRIEF DESCRIPTION OF THE FIGURES**

**1**, **4***a *and **4***a+* of

**DETAILED DESCRIPTION OF THE FIGURES**

Cable data networks have evolved throughout the years to their current level of complexity, as described in the DOCSIS 3.1 implementation. This multicarrier data network system has a plurality of overhead sources that must to be taken into account when calculating system capacity. Adding profiles has introduced an extra layer of complexity due to the fact that efficiency estimates are profile dependent. That is, each profile depends on at least data traffic characteristics and end-device channel conditions. A diagram showing some general dependencies that may be taken into account is shown in

**100** in an embodiment. System **100** includes a user population **102**, which influences profiles' services and applications **104**, profiles' packet size distributions **106**, and profiles' channel conditions **108**. Profiles services and applications **104** and packet size distribution **106** influence profiles' traffic signatures **110**. Profiles' channel conditions **108** influences profiles' configuration parameters **112** Profiles' traffic signatures **110** and profiles' configuration parameters **112** together are inputs into a capacity estimation function **114**, which in turn output a per profile overall capacity and efficiency **116**.

The user population **102** is a group of data service users that as an aggregate has specific transmission characteristics. The user population sharing specific network configuration parameters, channel conditions and traffic characteristics is used to estimate the network resources it consumes.

The services and applications **104** are defined as follows. A service is defined as a two-way data connection to a subscriber that meets specific levels of performance and is associated to certain traffic characteristics. In this context, an application is a specific purpose program that uses two-way data connection and is also associated with certain traffic characteristics.

The packet size distribution **106** describes the different packet length statistics in bytes or bits of upstream or downstream transmissions. This distribution provides insight on transport efficiency as the overhead of a shorter packet is different than the overhead of a longer packet.

The channel conditions **108** indicate the noise, distortion and other unwanted signal characteristics occupying the different portions of the channel spectrum. The channel conditions provide the necessary information to decide how to use the channel and transmit the desired information carrying signals.

Traffic signatures **110** describe the transmission characteristics using attributes such as number of packets in transmission, packet duration or length (packet size distribution) and period of time of transmission. Traffic signatures can be defined for individual subscriber transmissions, for transmissions related to specific services or applications or by any selection or grouping of subscribers or traffic.

Configuration parameters **112** indicate the operational settings selected by operators or automatically set by the network equipment.

The capacity estimation function **114** estimates the effective capacity available from the network under the conditions assumed and configurations selected. It is a collection of algorithms that use a diversity of inputs such as configuration parameters and traffic signatures to provide the effective capacity.

**200** utilized in a data network. The present embodiment is described for use in a DOCSIS 3.1 environment, although it will be understood that the present method may be adapted to other data networks without departing from the scope herein. The method of

Step **202** starts method **200**, which then moves to step **204**.

In step **204**, method **200** identifies the legacy use of spectrum and node capacities to determine the total downstream DOCSIS 3.1 occupied spectrum in nodes Method **200** then moves to step **206**.

In step **206**, method **200** determines both the unused spectrum and unusable spectrum within the total occupied spectrum of the date network. Method **200** then moves to step **208**.

In step **208**, method **200** examines the first (or the next) i-th channel, for example, utilizing a downstream FFT function. Method **200** then moves to step **210**.

In step **210**, method **200** collects PLC data. Method **200** then moves to step **212** where method **200** collects traffic data. Examples of method steps **210** and **212** are shown in detail in **200** then moves to step **214**.

In step **214**, method. **200** utilizes cyclic prefix data and net symbol period data to determine a time efficiency which may be represent, for example, as a percentage. Method **200** then moves to step **216**.

In step **216**, method **200** determined the modulated bandwidth of the system and stores the upper bound for a number of subcarriers in, for example, a temporary storage variable “S.”. Method **200** then moves to step **218**.

In step **218**, method **200** utilizes the occupied bandwidth and guard band or encompassed bandwidth to determine an upper and a lower active sub-carriers frequency. Method **200** then moves to decision step **220**.

In decision step **220**, method **200** determines if the occupied bandwidth and guard band are available. if step **220** determines that the occupied bandwidth and guard band are available, then method **200** moves to step **222**, where method **200** utilizes the occupied BW and guard band or the encompassed bandwidth to determine upper and lower active subcarriers frequencies. Method **200** then moves to the first step of **220** that no occupied bandwidth and guard bands are available, then step **220** moves to step **224**, where method **200** updates the potential subcarriers variable “S” from the encompassed bandwidth. One example of updating the “s” variable is by performing the calculation

[((Upper edge active subcarrier frequency)−(lower edge active subcarrier frequency))/subcarrier spacing]

Method **200** then moves to the first step of

**300**, which is one example of step **210** of **210** is a step of collecting PHY Link Channel (PLC) information. In step **302**, method **300** first determines the subcarrier spacing of i-th channel from PLC acquisition.

In step **304**, method **300** retrieves the cyclic prefix of i-th channel.

In step **306**, method **300** determines the roll-off window of i-th channel.

In step **308**, method **300** determines lower and upper edges of i-th channel.

In step **310**, method **300** determines the number of excluded subcarriers of i-th channel.

In step **312**, method **300** calculates the aggregate bandwidth of the excluded sub-bands for the i-th channel.

In step **314**, method **300** determines all of the “M” profile's bit-loading vs. frequency for the i-th channel.

In step **316**, method **300** retrieves the number of continuous pilots outside of the PLC in i-th channel

In step **318**, method **300** adds eight (8) to the outside PLC continuous pilots to generate a total number of continuous pilots.

In step **320**, method **300** calculates the number of staggered pilots in i-th channel.

In step **322**, method **300** determines the number of PLC subcarriers. The number of PLC subcarriers is 8 for a subcarrier spacing of 50 KHz and is equal to 16 for a subcarrier spacing of 25 KHz.

Method **300** then moves to step **212** of method **200**,

**400**, which is one example of step **212** of **212** is a step of collecting network traffic data. In step **402**, method **400** estimates a profile cycling period for each of the M profiles in i-th channels.

In step **404**, method **400** determines the number of users for each of the M profiles in i-th channels.

In step **406**, method **400** measures the volumes in bytes for each of the profiles in i-th channels.

In step **408**, method **400** measures the average number of packets for each of the M profiles in i-th channels, Method **400** then moves to step **214** of method **200**,

**222** or **224** of method **300** move to step **502** of **500**.

In step **502**, method. **500** subtracts the excluded subcarrier to update the “S” variable.

In step **504**, method **500** converts the excluded bands to subcarriers and subtract then from the “S” variable to further update it.

In step **506**, method **500** subtracts the continuous pilots that are not in the 6 MHz PLC from the “S” variable to further update it.

In step **508**, method **500** subtracts the 8 continuous pilots that are in the 6 MHz PLC from the “S” variable to further update it.

In step **510**, method **500** subtracts the staggered/scattered pilots that are in the 6 MHz PLC from the “S” variable to further update it.

In step **512**, method **500** determines the number of PLC subcarriers. The number of PLC subcarriers is 8 for a subcarrier spacing of 50 KHz and is equal to 16 for a subcarrier spacing of 25 KHz.

In step **514**, method **500** determines the frequency efficiency by dividing value stored in the “S” variable by the occupied bandwidth, which results in the frequency efficiency which may be represented, for example, as a percentage.

In step **516**, method **500** utilizes the profile bit loading to determine the available raw bits for each profile/symbol.

In step **518**, method **500** utilizes the Forward Error Correction (FEC), for example, using LDPC & BCH parity bits: 1968 bits. Info bits=14323 bits, Full Length CW bits=16200, to determine a 1st pass at an estimated elective number of bits available for each profile/symbol.

In step **520**, method **500** utilizes the number of profiles, volume traffic consumption per profile, and profile cycle duration to determine the average number of symbols per profile cycle to estimate the number of full and shortened codewords for each profile.

In step **522**, method **500**, based on number of full and shortened codewords, the number of NCP messages, and the number of subcarriers used for NCP Messages, adjust, in a second pass, the estimated effective number of bits available for each profile/symbol after including NCP Overhead.

In step **524**, method. **500** utilizes the number of effective bits in a profile, multiplied by the time efficiency and divided by the product of occupied bandwidth and symbols/profile, obtain the effective efficiency in b/s/Hz in each of the profiles.

In step **526**, method **500** multiplies the efficiency in each profile by the occupied bandwidth to determine a profile throughput in b/s.

In step **528**, method **500** (and **200**) determines if method **500** has completed its process of all i-th channels. If method **500** determines it has not complete the process, method **500** moves to step **208** of **500** ends.

Step **602** starts method **600**.

In step **604** determine total upstream DOCSIS 3.1 occupied spectrum in a node based on legacy use of spectrum and node capacities.

In step **606**, method **600** determines what portion of the total occupied spectrum is the unused spectrum and the unusable spectrum.

In step **608**, step **600** examines the first i-th channel, if this is the first pass through the method; otherwise method **600** examines the next i-th channel. This examination process may be performed, for example, using an upstream FFT Block.

In step **610**, method **600** collects data. One exemplary data collection step **610** is shown in detail in **700**.

In step **612**, method **600** utilizes cyclic prefix and net symbol period to determine time efficiency, for example, as a percentage.

In step **614**, method **600** determines traffic and FEC impact. One exemplary step **614** is shown in detail in **800**.

In step **616** method **600** calculates a total # of both and edge minislots in each M profile from the number of grants per profile plus the number of additional edge minislots.

In step **618**, method **600** calculates raw bit capacity for each M profile from profile modulation and pilot pattern versus frequency information.

In step **620**, method **600** utilizes an effective code rate calculation for each of the profiles to calculate an effective bit capacity after FEC overhead.

In step **622**, method **600** determines efficiency in b/s/Hz for each of the M profiles utilizing time efficiency and occupied bandwidth metrics.

In step **624**, method **600** determines a profile throughput in bits/sec by multiplying efficiency in each profile by the occupied bandwidth.

In decision step **626**, method **600** determines if it is done with all i-th channels. If in step **626** it is determined that method **600** is not done with all i-th channels, it moves to step **610**, and otherwise method **600** ends.

**700**, which is one example of step **610** of **702** method **700** determines the subcarrier spacing of an i-th channel.

In step **704**, method **700** determines the i-th channel's cyclic prefix.

In step **706**, method **700** determines the i-th channel's roll-off window.

In step **708**, method **700** determines the i-th channel's lower and upper edges.

In step **710**, method **700** calculates potential # of subcarriers and store in temp variable “S” based on the retrieved i-th channel's lower and upper edges.

In step **712**, method **700** determines minislot parameters, for example, the number of subcarriers, the number of symbol, etc.

In step **714**, method **700** calculated the frame duration from “K”, the symbols per frame.

In step **716**, method **700** determines a list of intelligent occupancy of upstream spectrum by legacy systems on the network, including center frequency, bandwidth, and expected modulation order.

In step **718** method **700** calculates the minimum gaps required for legacy systems on the network and determines the position and width of excluded sub-bands.

In step **720**, method **700** determines the position of excluded subcarriers based on signal-to-noise-ratio (SNR).

In step **722**, method **700** determines the guard band(s) required.

In step **724**, method. **700** determines a list of usable body and gap-related-edge minislots (a.k.a. additional edge minislots) in the i-th channel, from the guard band, excluded subcarriers and excluded sub-bands, such that a minislot generation efficiency is determined.

In step **726**, method **700** calculates, for each of the profiles, the effective bit capacity after FEC overhead utilizing the effective code rate.

In step **728**, method **700** determines the per profile effective code rate.

Method **700** then moves to step **612** of

**800**, which is one example of step **614** of **802**, method **800** measures a packet size distribution and a volume of traffic in the profiles.

In step **804**, method **800** calculates the number of minislots required for each burst size biased on packet size distribution and configuration.

In step **806**, method **800** calculates the number of minislots required for each burst size based on the traffic generated in each profile.

In step **808**, method **800** calculates the aggregate number of minislots consumed per profile.

In step **810**, method **800** calculates the number of simultaneous grants per profile based on traffic characteristics and configuration.

In step **812**, method **800** calculates the per packet size effective code rate.

In step **814**, method **800** determines the per profile effective code rate.

Method **800** then moves to step **616** of

In **902** of the legacy signal to the closest active OFDM/OFDMA subcarrier. The roll-off window requires additional samples that are added to the symbol and have the effect of lowering the energy adjacent to the signal by rolling-off and decreasing the adjacent energy in amplitude at a higher rate than the traditional configured scenario without the additional roll-off samples. This reduces the total amount of energy in the adjacent channel and allows the adjacent portion of the spectrum be occupied by another signal such as a legacy DOCSIS signal. Graph **900** of **902** optimization. In this example, a 64 QAM DOCSIS legacy system that requires 27 dB CNR coexist with an OFDMA system, which operates at a specific power level/bandwidth that is located at a specific frequency separation from the edge of the legacy signal. The time overhead needed in the form of Cyclic Prefix is calculated using an adjacency optimization algorithm plus the delay spread that is obtained from the channel conditions.

**2602**.

**1**, **4***a, ***4***a*+, **4***b, *and **4***b*+. The formulas that produce the results for use cases **1**, **4***a, *and **4***a*+ are shown in **5***a, ***5***a*+, **5***b*, **5***b*+, and **6***a. ***6***a*+, **6***b, *and **6***b*+. In addition, **4***a*-**6***b*+ cases for mixing of DOCSIS 3.1 and 3.0 systems at a 5% mixing penalty.

**1**-**3**.

Those skilled in the art will appreciate the use of legacy and DOCSIS 3.1 systems, methods and, data in its application to the present dimensioning approach to data networks.

Changes may be made in the above methods and systems without departing from the scope hereof. It should thus be noted that the matter contained in the above description or shown in the accompanying drawings should be interpreted as illustrative and not in a limiting sense. The following claims are intended to cover all generic and specific features described herein, as well as all statements of the scope of the present method and system, which, as a matter of language, might be said to fall there between.

## Claims

1. A method for dimensioning a downstream data network, comprising:

- determining a total number of downstream DOCSIS 3.1 occupied spectrum in a node;

- determining unused spectrum and unusable spectrum within a total occupied spectrum;

- examining an i-th channel;

- collecting PHY link channel data;

- collecting traffic data;

- determining time efficiency based on cyclic prefix and net symbol period;

- determining a modulated bandwidth and storing an upper bound on a number of subcarriers in a temporary variable “S”;

- determining an upper and a lower active subcarrier frequency based on one or more of an occupied bandwidth, a guardband and an encompassed bandwidth;

- updating the variable “S” by subtracting from the “S” variable (1) excluded subcarriers, (2) excluded bands converted to subcarriers, (2) continuous pilots that are not in 6 MHz PLC, (4) 8 continuous pilots that are in 6 MHz PLC, (5) staggered/scattered pilots in the 6 MHz PLC;

- determining the number of PLC subcarriers;

- calculating a frequency efficiency by dividing the variable “S” by the occupied bandwidth;

- determining available raw bits for each profile/symbol using profile bit loading data;

- determining a first estimated effective number of bits available for each profile/symbol based on FEC data;

- determining an average number of symbols per profile cycle to estimate a number of full and shortened codewords for each profile based on the number of profiles, a volume traffic consumption per profile, and a profile cycle duration;

- adjusting the estimated effective number of bits available for each profile/symbol after including an NCP Overhead based on a number of full and shortened codewords, a number of NCP messages, and a number of subcarriers used for NCP Messages;

- obtaining the effective efficiency in b/s/Hz in each of the profiles based on a number of effective bits in a profile multiplied by the time efficiency and divided by the product of occupied bandwidth and symbols/profile; and

- determining a profile throughput in bits per second by multiplying the efficiency in each profile by the occupied bandwidth.

**Patent History**

**Publication number**: 20210314207

**Type:**Application

**Filed**: Aug 6, 2015

**Publication Date**: Oct 7, 2021

**Applicant**: Cable Television Laboratories, Inc. (Louisville, CO)

**Inventors**: Luis Alberto Campos (Superior, CO), Joseph Padden (Boulder, CO)

**Application Number**: 14/820,425

**Classifications**

**International Classification**: H04L 27/26 (20060101); H04L 5/00 (20060101); H04L 12/24 (20060101);