Blog / Get Your Tech On

DOCSIS and Cable Modems – How it works :: UCD

DOCSIS and Cable Modems – How it works :: UCD

Just as a picture is worth a thousand words, so is a complete Upstream Channel Descriptor (UCD) as seen by a cable modem.  This message, sent every two seconds by the the CMTS, contains an enormous amount of valuable information that every cable modem on a DOCSIS network needs to know in order to communicate.  Often undervalued, the UCD is a virtual Hitchhiker’s Guide to the DOCSIS network!  So without any further ado, let me show you an example of a full UCD message and then explain its contents further:

 

Downstream MAC type = UCD
MAC FC (HEX) = C2
MAC PARM/EHDR length (HEX) = 00
MAC LEN (HEX) = 016A
MAC HCS (HEX) = F52B
PDU bytes = 362
PDU DA (HEX) = 01E02F000001
PDU SA (HEX) = 0000CA240217
PDU Type/Len (HEX)= 0158
MMH Version (HEX)= 01
MMH Type (HEX)= 02
————————————-
MMM Type: UCD
Upstream Channel ID (HEX) = 01
Config. Change Count = 3
Mini-Slot Size = 64
Downstream Channel ID (HEX) = 0B
Symbol Rate = 1 (160000 symbols/sec)
Upstream Frequency = 26750000 Hz
Preamble Pattern =
CC CC CC CC CC CC CC CC CC CC CC CC CC CC 0D 0D
A9 17 D9 C3 52 2F B3 86 A4 5F 67 0D 48 BE CE 1A
91 7D 9C 35 22 FB 38 6A 45 F6 70 D4 8B EC E1 A9
17 D9 C3 52 2F B3 86 A4 5F 67 0D 48 BE CE 1A 91
F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3
F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 33 F7 33 F7
88 84 04 4C C4 84 C0 0C 44 08 08 CC 8C 0C 80 48
88 40 44 CC 48 4C 00 C4 40 80 8C C8 C0 C8 04 88

Burst Descriptor = Request
IUC = 1
Modulation Type = 16QAM
Differential Encoding = OFF
Preamble Length = 128 bits
Preamble Offset = 624 bits
Preamble = F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 33 F7
FEC Correction = OFF
FEC Codeword = 16
Scrambler Seed (HEX) = 0152
Max Burst Size = 0
Guard Time Size = 8
Last Codeword Length = Fixed
Scrambler = ON
Burst Descriptor = Initial Maintenance
IUC = 3
Modulation Type = QPSK
Differential Encoding = OFF
Preamble Length = 128 bits
Preamble Offset = 0 bits
Preamble = CC CC CC CC CC CC CC CC CC CC CC CC CC CC 0D 0D
FEC Correction = 5
FEC Codeword = 34
Scrambler Seed (HEX) = 0152
Max Burst Size = 0
Guard Time Size = 48
Last Codeword Length = Fixed
Scrambler = ON
Burst Descriptor = Station Maintenance
IUC = 4
Modulation Type = QPSK
Differential Encoding = OFF
Preamble Length = 128 bits
Preamble Offset = 0 bits
Preamble = CC CC CC CC CC CC CC CC CC CC CC CC CC CC 0D 0D
FEC Correction = OFF
FEC Codeword = 16
Scrambler Seed (HEX) = 0152
Max Burst Size = 0
Guard Time Size = 48
Last Codeword Length = Fixed
Scrambler = ON
Burst Descriptor = Short Data Grant
IUC = 5
Modulation Type = 16QAM
Differential Encoding = OFF
Preamble Length = 144 bits
Preamble Offset = 608 bits
Preamble = F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 33 F7
FEC Correction = 1
FEC Codeword = 16
Scrambler Seed (HEX) = 0152
Max Burst Size = 5
Guard Time Size = 8
Last Codeword Length = Shortened
Scrambler = ON
Burst Descriptor = Long Data Grant
IUC = 6
Modulation Type = 16QAM
Differential Encoding = OFF
Preamble Length = 160 bits
Preamble Offset = 592 bits
Preamble = F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 33 F7
FEC Correction = 1
FEC Codeword = 20
Scrambler Seed (HEX) = 0152
Max Burst Size = 0
Guard Time Size = 8
Last Codeword Length = Shortened
Scrambler = ON
————————————-

WOW!  It’s surprising just how much information is contained in a UCD.  There is one UCD sent every two (2) seconds on the downstream channel for each upstream channel on a CMTS line card, so a 1×8 line card is sending eight (8) UCDs every two (2) seconds because each upstream can be configured differently.  One more thing, the UCD I provided above is for a DOCSIS 1.x configuration, which is much simpler than a DOCSIS 2.0 or DOCSIS 3.0 UCD.  DOCSIS 2.0 and 3.0 UCDs contain information on S-CDMA, A-TDMA, logical channels and even bonded channels.  We can save that for another blog.  Let’s start simple first.

In the UCD above, the first item of real interest is the PDU DA or essentially the Destination MAC Address of this particular message, which is 01E02F000001.  This MAC address is defined in the DOCSIS specification Annexes where it states “The following multicast address MUST be used to address the set of all CM MAC sublayers; for example, when transmitting Allocation Map PDUs:” and then lists the above MAC address.  So if you happen to read any of the DOCSIS specifications, pay particular attention to the Annexes as they contain very valuable information and it took me quite some time to realize the origin of this MAC address!  The PDU SA is of course the Source MAC Address of the CMTS itself and will change from CMTS line card to line card.

The Upstream Channel ID indicates which channel this particular UCD correlates to with respect to a physical upstream RF port on the CMTS line card.  Some CMTS vendors start numbering ports at zero (0) and increment up on each card, resetting to zero (0) 0n the next card while other vendors allow unique numbering for each upstream port based upon slot location.

Symbol Rate = 1 (160000 symbols/sec)
Upstream Frequency = 26750000 Hz

Symbol Rate and Upstream Frequency (discussed in this blog) are globally defined in the UCD header for all burst profiles.  In this case, the symbol rate is 160 ksym/sec and the center frequency of the upstream DOCSIS channel is 26.75 MHz.

The Preamble Pattern (next in the UCD) is a string of HEX symbols.  This represents the entire preamble that “could” be used by a cable modem.  What actually happens is that only sections of the preamble are used for different bursts (IUCs) as defined by the “Preamble Length” and “Preamble Offset” listed under each IUC type.  The corresponding preamble that is used as defined by the preamble length and offset is shown in each burst descriptor section.   At the beginning of each IUC type is the Burst Descriptor name.  For this UCD, the available types of bursts are:

  • Request (IUC=1): This is the message sent by the cable modem when it has IP data to transmit.
  • Initial Maintenance (IUC=3):  These are the Range Requests sent by a cable modem to the CMTS in a contention window when a cable modem firsts starts to “range” with a CMTS (i.e. when a cable modem first registers).
  • Station Maintenance (IUC=4):  Once cable modems are online they send a Range Request message at least once every 30 seconds (per the DOCSIS specificaton) using the Station Maintenance burst descriptor.  This allows the CMTS to send a Range Response message which will make any adjustments to the modem’s frequency, timing, power, and equalization as necessary (Note T3 and T4 timeout are associated with this process – to be covered later under a troubleshooting blog).
  • Short Data Grant (IUC=5):  The short data grant contains user data of small packet sizes, defined by the CMTS, typically 128 bytes or less.
  • Long Data Grant (IUC=6):  The long data grant contains user data of large packet sizes, also defined by the CMTS and is typically larger than 128 bytes.

Under each Burst Descriptor you will notice that a Modulation Type is defined.  In this example, either QPSK or 16-QAM is used.  The usage of more than one modulation type in a UCD message is called a “mixed-mode” profile.  Essentially, the cable modem transmits QPSK for some data and 16-QAM for other data as defined by the burst descriptors.

Other parameters defined in the UCD include Differential Encoding toggle bit, FEC parameters, Scrambler seed, Max Burst Size, Guard Time Size, Last Codeword Length, and the Scrambler toggle On/Off switch.  I will not go into the details of these parameters at this time as they go very far into the nuts and bolts of CMTS configuration as well DOCSIS optimization.  This will be saved for a blog of its own.

Take some time first to really understand the UCD.  It is a message of enourmous importance and will really help you understand how a cable modem can transmit different modulations for different messages.  I will be building on this fundamental concept on many future blogs.

If you are in need of consulting / design services, go to The Volpe Firm, Inc You can also contact us through our online web portal or call directly at:
Ph:+1-404-424-8202.

About the Author:

Brady Volpe - AuthorBrady Volpe is the author of many industry articles and papers and owner The Volpe Firm, Inc.  He has over 20 years of broadband cable and telecommunications industry experience specializing in DOCSIS, EPON, VoIP, video, IPTV, RF, and fiber optic transport.

 

11 comments

  1. Slimjim100
    February 28, 2009

    Brady,

    Yet another very well explained blog post. I really appreciate you taking the time to blog about the inter details of DOCSIS and how the protocol and specification works. Too many engineers working in the MSO field fail to learn how DOCSIS works and just take as Magic and focus on the IP network side of things. Remember with our layer 1 & @ we never get to layer 3 where everyone feels comfortable. Thanks again for your well explained post!

    Cheers,

    Brian Wilson

    • Brady
      February 28, 2009

      Thanks for the feedback Brian, it is much appreciated. -Brady

  2. Ishwar
    March 3, 2009

    for the guys who are new to DOCSIS,
    ICU means “Interval Usage Code” the name it self explains all

    Thanks Brady for the blog, This is to early to ask but I cant hold myself I have to get the answer for this question
    What about the delay involved in the transmition of these msgs like if CMTS sends UCD at time interval t1 the CM will receive this at time interval t2 ?

    • Brady
      March 3, 2009

      Hi Ishwar,
      If you are talking about prorogation delay, well an electromagnetic signal propagates through coax cable at about 1.17 nanoseconds per foot. :-) But I suspect that you were referring to a T1 timeout as defined in Annex B of the DOCSIS 2.0 specification. A T1 Timeout occurs when a cable modem fails to receive a UCD after five (5) consecutive UCD broadcast intervals. Since the UCD broadcast interval is two (2) seconds, a T1 timeout should occur at 2 * 5 = 10 seconds. T1 timeouts are actually pretty rare, but if you have them you probably have some pretty substantial downstream impairments or faulty equipment.

      My next blog due out this afternoon will talk a lot more about T3 And T4 timeouts, which are much more common.

      -Brady

  3. Carol
    March 3, 2009

    Hi Brady,

    I’m wondering if there is a typo or two in this post.

    First, I think the symbol rate should be 1600000 symbols/sec, if it is 1.6M as you state in the text.

    Second, I think the Preamble Offset for the Request IUC should be 640 instead of 624, or am I misunderstanding how that’s derived? If I did understand it as an index into the Preamble Pattern sent by the CMTS, then I’m assuming that only the the length and offset are really sent by the modem as that would be enough to derive the preamble itself.

    Sorry if the second question is very elementary, but I’m brand new to docsis.

    Thanks! Carol

    PS: I think the second paragraph of the explanation should read “is the PDU DA” instead of “in the PDU DA”.

    • Brady
      March 3, 2009

      Carol,

      I really should recruit you to help me on these blogs – you are reading them very thoroughly! You are correct on the symbol rate, it is 160 ksym/sec, the lowest rate DOCSIS supports. 1.6 Msym/sec is not even a supported rate, so I completely dropped the ball there. Supported DOCSIS rates are 160, 320, 640, 1280, 2560 and 5120 ksym/sec. Yes, I also made a typo – I’ll fix these in a minute and no one will know aside from these comments. :-)

      Regarding the preamble offset, I have double checked this and believe that it is correct. 624/8 bits = 78 bytes. Counting in from the beginning of the preamble 78 bytes (two hex characters) leaves you with 14 “F3″ bytes left in the preamble before the first “33″ byte. This matches exactly with the Request preamble shown. Maybe I’m not seeing what you are seeing.

      -Brady

  4. Carol
    March 3, 2009

    Hmmm, when I cut and paste the preamble into the text editor, I see 80 words before the start of the line ending in “33 F7″, but I’m sure there’s something I’m misunderstanding that makes you come up with 78.

    Anyway, thanks for your speedy reply and this great blog!

    Oh, and you might want to wait till I note that 160Ksym/sec would be correct and 1.6Msym/sec would be wrong before you recruit me! :-)

  5. Priya
    October 13, 2009

    Hi Brady,

    I got really confused at one point. UCD contains the US frequency to be used for transmitting from CM right. But if there are 8 US for 1 DS and 8 UCDs are sent,Then what will each UCD contain and which US frquency will be chosen??

    I know This is a silly question but I’m helpless.

    Could you please help me??

    Thanks,
    Priya

  6. Sathish Kumar
    November 12, 2009

    Hi Brady,

    Yet another informative post. Simply these posts are real stepping stones to understand the base of working of Cable modem.

    Enormous amount of info is present in UCD.
    This PDU DA 01E02F000001, you mentioned this a Multicast address.

    Whether this address is unique for each UCD, that will be sent for CM’s ?

    Thanks,
    Sathish.

    • Brady
      December 8, 2009

      Sathish,

      The MAC address you identified, 01E02F000001 is called out in Annex A of the DOCSIS specification. This is defined using the Ethernet/ISO8802-3 [ISO8802-3] convention. Specifically, it states:

      The following multicast address MUST be used to address the set of all CM MAC sublayers; for example, when transmitting Allocation Map PDUs:
      01-E0-2F-00-00-01

      So, to answer your question, yes, it will be sent with all UCDs.

      Regards,
      -Brady

  7. Charter Cable Channels
    November 4, 2011

    Hello! I want to say that this post is amazing, nice written and come with almost all important infos. I’d like to peer more posts like this .

Leave a Reply

Name*

e-Mail * (will not be published)

Website