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:
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 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.
Slimjim100
February 28, 2009Brady,
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, 2009Thanks for the feedback Brian, it is much appreciated. -Brady
Ishwar
March 3, 2009for 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, 2009Hi Ishwar,
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.
If you are talking about prorogation delay, well an electromagnetic signal propagates through coax cable at about 1.17 nanoseconds per foot.
My next blog due out this afternoon will talk a lot more about T3 And T4 timeouts, which are much more common.
-Brady
Carol
March 3, 2009Hi 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, 2009Carol,
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
Carol
March 3, 2009Hmmm, 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!
Priya
October 13, 2009Hi 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
Sathish Kumar
November 12, 2009Hi 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, 2009Sathish,
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
Charter Cable Channels
November 4, 2011Hello! 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 .