This document explains the use of Static and Dynamic Map Advance and introduces a new Dynamic Map Advance feature that allows users to configure a hard-set limit—called the max-delay—so that the timing offset from rogue modems does not increment out-of-control. This document also addresses the issue where some cable modems that run older code might violate certain parts of the Data-over-Cable Service Interface Specifications (DOCSIS) and might seem to drift away from the cable modem termination system (CMTS) and report huge timing offsets. This may cause serious issues because all of the other cable modems on the same upstream segment depend on the farthest modem for the Dynamic Map Advance timing offset. The farthest cable modem appears to be a rogue modem, which can cause the other cable modems to drop offline or exhibit poor performance.
Although the modem vendor bears the responsibility to fix this issue with a newer firmware revision, a workaround may be implemented on the CMTS until the cable modem firmware is provided. The workaround is to switch the map advance from dynamic to static, to keep the offset to a reasonable setting. This document describes the use of this workaround and introduces a new Dynamic Map Advance feature that allows service providers to configure a hard-set limit so that, if certain modems increment to excessive Timing Offset ticks, they do not make all of the other modems behave poorly (other compliant modems are not affected ).
Readers of this document should have knowledge of these topics:
A good understanding of the DOCSIS protocol.
Experience in Radio Frequency (RF) technologies.
Experience with the Cisco IOS® Software command line.
The information in this document is based on these software and hardware versions:
Cisco uBR series of CMTS products, which include these series:
uBR10000
uBR7100
uBR7200
uBR7200VXR
Cisco IOS Software Release 12.1(10)EC1 and later
Cisco IOS Software Release 12.2(8)BC1 and later
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
For more information on document conventions, refer to the Cisco Technical Tips Conventions.
Static Map Advance is a fixed, pre-set, look-ahead time in MAPs based on the farthest DOCSIS propagation delay allowed for any cable modem. DOCSIS specifies a limit for one-way transit delay as less than 0.8 milliseconds. The speed of light in a vacuum is 2.99×108 m/s. Because this is not a vacuum, multiply this speed by the velocity of propagation constant for the fiber core, which is on the order of 0.67. Hard-line, coaxial cable is about 0.87, thus, fiber is slower than coaxial. Convert to miles and multiply by the 0.8 ms transit delay specification to find the fiber distance allowed for the farthest modem.
2.99×108 m/s × 0.67 × 0.8 × 10-3 seconds × 6.214×10-4 miles/m = 99.58 miles
To perform this calculation in kilometers:
2.99×108 m/s × 0.67 × 0.8 × 10-3 seconds = 160.26 kilometers
These calculations are why many people quote 100 miles (or 160 kilometers) as the one-way distance for the farthest modem in a DOCSIS system. The fixed time for Static Map Advance is computed based on the delay introduced by the downstream (DS) interleaving, processing delay, some buffer delay, and the worst-case scenario of 100 miles. This is regardless of the current propagation delay of the farthest cable modem in the network. For example, if you are using 64-QAM on the DS at 32:4 interleaving, the Static Map Advance is 200 for processing delay + 980 from interleaving + 500 for the buffer + 1800 for plant delay = 3480 microseconds. See the next Note for explanations of these values.
Note:
The 500 microsecond buffer is a constant value that equals the worst case CMTS processing delay between the time that a MAP is created and the time that it is sent to the physical sublayer (PHY) chip. This value is not mandated by DOCSIS, but it is part of Cisco’s implementation.
The 980 microsecond interleaving delay is the time between when a MAP is received at the PHY chip and when it is sent on the wire. This value depends on the downstream modulation and interleaving. This is derived from DOCSIS RFI specification Table 4-11, which in our example is 0.98 ms (for I=32 and J=4 using 64-QAM).
The 200 microsecond processing delay is a constant value. It is mandated by DOCSIS that a cable modem must respond to a MAP within 200 microseconds.
Finally, 1800 microseconds is the the worst case propagation delay for a complete round-trip in a 100 mile plant (the maximum plant size defined in DOCSIS 1.1 section 2.1 Broadband Access Network) and assumes a worst case propagation of 8 microseconds per mile and 200 microseconds of extra padding.
This is the command syntax for Static Map Advance:
cable map-advance [static]
For additional information, refer to the cable ip-multicast-echo command.
Dynamic Map Advance is a Cisco patent-pending function that helps achieve a better packet per second (PPS) throughput effect on the upstream (US). It is an algorithm that automatically tunes the look-ahead time in MAPs based on the farthest cable modem currently associated with a particular upstream port. Ideally, the use of Dynamic Map Advance can significantly improve individual modem upstream performance. For more information on DOCSIS performance variables and optimization, refer to Understanding Data Throughput in a DOCSIS World.
This is the command syntax for Dynamic Map Advance:
cable map-advance dynamic [safety]
For additional information, refer to the cable ip-multicast-echo command.
The timing offset of a cable modem is an important value that indicates the physical medium round trip delay between a cable modem, the CMTS, and other delays such as DS Interleaver, processor, and internal modem Timing Offset numbers. It is very important to understand that the timing offset value is calculated from the max-delay based on the farthest cable modem in a given segment and the built-in modem delay. The built-in modem delay is different in various vendors. These are the various built-in modem delay values implemented by specific brands of cable modems (this is not an official list):
Cable Modem Vendor | Built-In Delay Value |
---|---|
3Com | 1200 |
Acternal DSLAM | 2947 |
Cisco CVA122 | 1920 |
Com21 | 1239 |
Hukk CM1000 | 2930 |
Motorola Surfboard | 2025 |
RCA | 1500 |
Scientific Atlanta | 2950 |
Terayon | 200 |
Texas Instruments | 1800 |
Toshiba | 1220 |
uBR905 | 2800 |
uBR924 | 1920 |
uBR925 | 2400 |
If you are using Static Map Advance, all of the modem timing offsets are always derived from a max-delay based on 100 miles. Dynamic Map Advance, on the other hand, can learn which cable modem in a segment is truly the farthest away from the CMTS. It more precisely derives the timing offset, to tune the look-ahead time in the MAP accordingly. The CMTS and cable modem need to have an accurate idea of the correct Timing Offset, so that US transmissions from cable modems are properly synchronized to arrive at the CMTS at the appropriate time. This is an example of how to configure Static Map Advance:
CMTS# configure terminal Enter configuration commands, one per line, and end with CNTL/Z. CMTS(config)# interface cable 3/0 !--- Specify cable interface. CMTS(config-if)# cable map-advance static CMTS(config-if)# end
Because Static Map Advance is based solely on a distance of 100 miles, it may not be sufficient or optimum for the fiber distance of the farthest modem. This is especially significant if the farthest cable modem is actually a very short distance away, physically.
Today, newer versions of Cisco IOS software on the CMTS have features that can alleviate this issue of “run away” or rogue modems. They limit the largest offset to a value defined by the max-delay and a safety factor. Cisco IOS Software Release 12.1(10) EC1 or 12.2(8)BC1 and later are used to help with the problems seen when some modems increment to excessive numbers (like 20,000 Timing Offset ticks) and make all of the other modems behave poorly. As previously mentioned in the introduction, the only fix for this problem prior to Cisco IOS Software Releases 12.1(10) EC1 and 12.2(8)BC1 is to disable Dynamic Map Advance and instead implement Static Map Advance. While this corrects rogue modems, it penalizes all other modems with potentially slower US throughput. The static command assumes a distance of 100 miles of fiber plant and sets the map advance based on that latency. The previously mentioned Cisco IOS Software Releases allow the user to put in a hard-set number for Dynamic and Static Map Advance. So, if you know the distance of the farthest modem, you can figure out the microseconds delay and put it in the command:
cable map-advance dynamic [safety] [max-delay]
or
cable map-advance static [max-delay]
A common question is “When do I use static map advance and when do I use dynamic?”
Dynamic Map Advance polls the farthest modem every 15 minutes, to check if it is offline. If it finds the modem to be offline, it polls the next farthest modem until it finds one that is online and then updates the dynamic algorithm. On the other hand, Static Map Advance uses the max-delay value regardless of the distance to the farthest modem. In a typical situation, always use Dynamic Map Advance.
With Dynamic Map Advance, the actual map advance is optimized to correlate with the farthest modem, assuming that all modems are well-behaved and never have invalid timing offsets. If, however, a modem has invalid offsets, then the map advance is set to the maximum. Dynamic Map Advance has the advantage that it can provide better PPS throughput on the US.
With Static Map Advance, there is no attempt to optimize the delay to the farthest modem. This mode is mostly useful as a debugging tool in cases where Dynamic Map Advance errors are suspected.
The safety value controls the amount of extra look-ahead time in MAPs, to account for any inaccuracies in the measurement system and to account for internal software latencies. If you use even larger values, you might increase the run-time look-ahead in MAPs, but you could reduce the US performance. Therefore, it is recommended that you use the default settings. The minimum dynamic safety is 300 and the maximum safety is 1500. The default safety is 1000 and the default max-delay is 1800.
Router(config-if)# cable map-advance dynamic 1000 1800
Cisco IOS Software Releases 12.1(10) EC1 or later and 12.2(8)BC1 or later use the Initial Maintenance Timing Offset when a modem first comes online. It uses this value after initial maintenance (periodic ranging) instead of the Timing Offset value, which can increment over time and cause the Dynamic Map Advance to be inaccurate. When you use the newest code, even if the modems increment, the Dynamic Map Advance is not affected because the CMTS does not use the timing offsets after initial maintenance. It is also advantageous to have the flexibility to set the max-delay in the Static and Dynamic Map Advance for tracking purposes, as explained in the Modems That Exceed Their Max Timing Offset After Setting Limits on the Round Trip Delay section. It is also advantageous to add 300, as a buffer, to the max-delay number.
This is an example of the configuration for a scenario where the farthest modem for the entire upstream is about 25 miles away from the CMTS:
CMTS# configure terminal Enter configuration commands, one per line, and end with CNTL/Z. CMTS(config)# interface cable 3/0 !--- Specify cable interface. CMTS(config-if)# cable map-advance dynamic 500 700
In that configuration example, 500 microseconds of safety and 400 microseconds of round-trip max-delay is used. Because the modem is 25 miles away and every mile of fiber causes about 16 microseconds of round trip delay, the maximum delay would be 16 × 25, which equals approximately 400 microseconds. Additionally, 300 is added to account for modem built-in offsets. If you know the approximate distance, you can multiply 16 times the miles of fiber (one-way) or 10 times the kilometers of fiber. The coaxial length is negligible compared to the fiber distance and delay in a typical hybrid fiber-coaxial (HFC) design.
If you know the dB loss instead of the distance, you can use 28 times the dB loss at 1310 nm or 45 times the dB loss at 1550 nm. These numbers are obtained from the knowledge that the loss per kilometer of fiber at 1310 nm is 0.35 dB and is 0.22 dB per kilometer at 1550 nm. Make sure that the loss is from fiber and does not include passive loss from couplers and splices. This is a summary of those equations:
1 / ( 2.99 × 108 m/s × 0.67 × 6.214×10-4 miles/m × 2 for round trip ) = 16 microseconds/mile
16 microseconds/mile / ( 5280 ft/mile × 0.3048 m/ft ) × 1000 m/km = 9.94 microseconds/km
9.94 microseconds/km / 0.35 dB/km = 28.4 microseconds/dB @1310 nm
9.94 microseconds/km / 0.22 dB/km = 45.18 microseconds/dB @1550 nm
Timing Offset ticks are calculated from the setting in the CMTS interface configuration and from other delays such as DS Interleaver, processor, and internal modem Timing Offset numbers. If one bad modem continually increments its time adjustments, it eventually reaches the “cap” (the capacity), stays there, and is marked with a ! for twenty-four hours.
From the previously mentioned example of cable map-advance dynamic 500 700, the timing offset is equal to 700 × 64 / 6.25, which is about 7168 Timing Offset ticks. The show cable modem command displays this output:
Interface Prim Online Timing Rec QoS CPE IP address MAC address Sid State Offset Power Cable3/0/U4 2 online !5570 0.25 5 1 10.125.16.38 0020.4026.b65c Cable3/0/U4 15 online 4967 -0.75 5 1 10.125.16.20 0010.9510.1873 Cable3/0/U4 10 online !7168 -0.25 5 1 10.125.16.15 0004.bdef.5dda
Exclamation points ( ! ) in that output are flags that indicates information of interest about specific cable modems. An ! in the Rec Power column is an alert that a cable modem increased its power level to the maximum transmit level. Cisco cable modems have a maximum transmit power of approximately 61 dBmV. This can be monitored to see if there are any potential problems in the return path.
An ! seen in the Timing Offset column indicates that a specific cable modem has exceeded the maximum timing offset capacity related to the max-delay setting of 700 microseconds (in this scenario). If something should go amiss with the farthest cable modem (for example, it goes offline), the CMTS scans every 15 minutes to see if the farthest cable modem is online. If it is offline, the CMTS finds the next best candidate with the largest max-delay. Later, when the modems re-range with a valid timing offset, you will still see the ! to inform you that this modem exceeded its maximum timing offset at some time during the last twenty-four hours.
The next example output is from a show controllers command with good readings, because it is below the capacity of 7168 Timing Offset ticks. An example of a bad reading is shown after it. The Timing Offset shown in the show controllers cablex/y upstream z lists the highest Timing Offset out of all of the modems on that upstream port, even though the MAPs are scheduled for a whole MAC domain. If you want to reset the Timing Offset, shut and then no shut the US port. The Timing Offset in the show cable modem command displays the current maintenance Timing Offset for each individual cable modem.
CMTS# show controllers cable3/0 upstream 4 Cable3/0 Upstream 4 is up Frequency 25.008 MHz, Channel Width 1.600 MHz, QPSK Symbol Rate 1.280 Msps Spectrum Group is overridden SNR 38.620 dB Nominal Input Power Level 0 dBmV, Tx Timing Offset 5570 (Time Offset Ticks) Ranging Backoff automatic (Start 0, End 3) Ranging Insertion Interval automatic (60 ms) Tx Backoff Start 0, Tx Backoff End 4 Modulation Profile Group 1 Concatenation is enabled part_id=0x3137, rev_id=0x03, rev2_id=0xFF nb_agc_thr=0x0000, nb_agc_nom=0x0000 Range Load Reg Size=0x58 Request Load Reg Size=0x0E Minislot Size in number of Timebase Ticks is = 8 Minislot Size in Symbols = 64 Bandwidth Requests = 0x4BF Piggyback Requests = 0x0 Invalid BW Requests= 0x0 Minislots Requested= 0x161FD Minislots Granted = 0x161FD Minislot Size in Bytes = 16 Map Advance (Dynamic) : 2224 usecs !--- Takes into account the Timing Offset ticks and other processing delays. UCD Count = 609
This is an example of bad output from a show controllers command with older Cisco IOS software, because it is above the capacity of 7168 Timing Offset ticks:
CMTS# show controllers cable3/0 upstream 4 Cable3/0 Upstream 4 is up Frequency 26.000 MHz, Channel Width 1.6 MHz, QPSK Symbol Rate 1.280 Msps Spectrum Group is overridden SNR 35.1180 dB Nominal Input Power Level 0 dBmV, Tx Timing Offset 35671 Ranging Backoff automatic (Start 0, End 3) Ranging Insertion Interval automatic (270 ms) Tx Backoff Start 0, Tx Backoff End 4 Modulation Profile Group 1 Concatenation is enabled part_id=0x3137, rev_id=0x03, rev2_id=0xFF nb_agc_thr=0x0000, nb_agc_nom=0x0000 Range Load Reg Size=0x58 Request Load Reg Size=0x0E Minislot Size in number of Timebase Ticks is = 8 Minislot Size in Symbols = 64 Bandwidth Requests = 0x5BE40B3 Piggyback Requests = 0x7042B0B Invalid BW Requests= 0x11A3E Minislots Requested= 0x55DF81D2 Minislots Granted = 0x55DF81B0 Minislot Size in Bytes = 16 Map Advance (Dynamic) : 2853 usecs !--- show cable modem lists Current Timing Offset while !--- the Map Advance is based on the Initial Timing Offset. UCD Count = 832662 DES Ctrl Reg#0 = C000C043, Reg#1 = 0
The Tx Timing Offset should never be above approximately 18,000 Timing Offset ticks. If so, it would indicate that the farthest modem is more than 100 miles away.
The show cable modem command displays this output:
Interface Prim Online Timing Rec QoS CPE IP address MAC address Sid State Offset Power Cable3/0/U4 2 online !5570 0.25 5 1 10.125.16.38 0020.4026.b65c Cable3/0/U4 15 online !4967 -0.75 5 1 10.125.16.20 0010.9510.1873 Cable3/0/U4 17 online 5393 -0.25 5 1 10.125.16.13 0020.405b.a234 Cable3/0/U4 18 online 5064 0.00 5 1 10.125.16.18 0004.753c.318c Cable3/0/U4 10 online !7168 -0.25 5 1 10.125.16.15 0004.bdef.5dda
If you use the dynamic command with a safety of 500 and a max-delay of 700, then the capacity would equal about 7168 ticks. The previous show command indicates that, at one time, three of the modems exceeded the capacity, because they are marked with an ! . It is recommended that you identify these potentially bad modems by their MAC address, so that you can update their code or replace them.
The show cable modem [mac-address] verbose command displays the current Timing Offset and the Initial Timing Offset:
CMTS# show cable modem 0004.bdef.5dda verbose MAC Address : 0004.bdef.5dda IP Address : 10.125.16.15 Prim Sid : 10 Interface : C3/0/U4 Upstream Power : 0 dBmV (SNR = 36.66 dBmV) Downstream Power : 0 dBmV (SNR = ----- dBmV) Timing Offset : !7168 Initial Timing Offset : 6498 Received Power : -0.25 MAC Version : DOC1.1 Provisioned Mode : DOC1.1 Capabilities : {Frag=Y, Concat=Y, PHS=Y, Priv=BPI+} Sid/Said Limit : {Max Us Sids=4, Max Ds Saids=0} Optional Filtering Support : {802.1P=N, 802.1Q=N} Transmit Equalizer Support : {Taps/Symbol= 1, Num of Taps= 8} Number of CPE IPs : 0(Max CPE IPs = NO LIMIT) CFG Max-CPE : 1 Flaps : 4(Mar 1 00:04:17) Errors : 0 CRCs, 0 HCSes Stn Mtn Failures : 0 aborts, 1 exhausted Total US Flows : 2(2 active) Total DS Flows : 1(1 active) Total US Data : 33 packets, 15364 bytes Total US Throughput : 0 bits/sec, 0 packets/sec Total DS Data : 5 packets, 468 bytes Total DS Throughput : 0 bits/sec, 0 packets/sec Active Classifiers : 1 (Max = NO LIMIT)
Finally, this is an example of output from a show cable modem [mac-address] detail command from a different router, which shows the initial and periodic Timing Offsets displayed when you run EC code:
CMTS# show cable modem 0003.e3fa.5e8f detail Interface : Cable4/0/U0 Primary SID : 8 MAC address : 0003.e3fa.5e8f Max CPEs : 1 Concatenation : yes Receive SNR : 23.43 Initial Timing : 2738 Periodic Timing : 2738
Q. If the capacity is set for 700 microseconds of maximum plant delay and the modem increments to 10000 ticks, does it go offline?
A. The calculated capacity in ticks is about 7168. The modem may or may not go offline. It might think that MAPs are too late, but it might also use its internal offset to adjust the actual time of transmission without thinking that MAPs are too late.
Q. If a misbehaving cable modem stays online, how does the CMTS know which modem to use for the updated Timing Offset?
A. The CMTS uses the capacity value (max-delay) because it can not really know. However, now that the code bases the timing offset calculation on the initial ranging, this is much less of a problem. This means that when the modems first come online with their initial maintenance, the CMTS logs all of the Timing Offsets and sets the Dynamic Map Advance based on the largest Timing Offset logged. Even if some modems increment, the Dynamic Map Advance still stays at the original Timing Offset. The CMTS updates its Dynamic Map Advance for that particular upstream only when new modems that have a larger Timing Offset come online.
Q. Does the CMTS ignore all modems that have reached the capacity?
A. The CMTS ignores all modems because it uses the Initial Maintenance Timing Offset when a modem first comes online instead of the Timing Offset value after initial maintenance, which can increment over time.
Q. What happens when the farthest cable modem from the CMTS exhibits negative Timing Offsets?
A. Negative Timing Offset can transmit Initial Ranging Requests before the correct time. Such an early transmit could interfere with the data transmitted by another modem. Therefore, both the Initial Ranging Request and the data sent by other modems can be corrupted. Cable modems that show a Negative Timing Offset can transmit an initial ranging request every few seconds that overwrites a valid data transmission from other modems. For more information on Negative Timing Offset, refer to Why Do Some Cable Modems Display a Negative Time Offset?
Q. What is the significance of the DS Interleaver with regards to the map advance?
A. The Interleaver setting has a significant effect on the total delay. The default and recommended value is 32. When you increase the Interleaver, you can improve noise stability, but you can also add latency because it increases the Request and Grant round-trip time (RTT). When the RTT increases, it might go from every other MAP opportunity to every third or fourth MAP. If you decrease this number to a smaller value, it can actually reduce the time between the transmission of a MAP packet (which assigns upstream transmit opportunities) and its reception at the cable modem. This increases performance. However, as the Interleaver is reduced, so is noise stability in the downstream; so be sure that you have a good carrier-to-noise ratio. Refer to Understanding Data Throughput in a DOCSIS World for more information.
In the original code, the whole purpose of the “dynamic” map advance was to help the user avoid the calculation of all of the cable lengths and propagation delay in the plant. The CMTS knows the plant size because it looks at the timing offsets of modems and picks the largest offset as a measure of the required map advance.
The original code used periodic ranging to measure timing offsets. Unfortunately, some modems are not DOCSIS-compliant and do not always respond to timing adjustments from the CMTS. As a result, their offsets increment to infinity and, thus, so does the map advance. This happens because of how DOCSIS works. The timing adjustments are deltas (+1/–1) and if the modem does not respond (or responds too slowly) the CMTS continues to send more and more adjustments.
It is possible that, in some environments, there are no non-compliant modems and so there is no problem if you leave the map advance configurations at the default settings. In Cisco IOS Software Release 12.2(8) BC1 or later, the timing offset calculation is based on initial ranging only. This is more reliable then periodic ranging and reduces the need to use values other then the default settings: cable map-advance dynamic 1000 1800.