How to create a cable modem config file

Cable modems get their operational parameters using config files. These config files define what the internet subscription will be, what additional services are activated and other configuration details. This blog post will get you started creating your own modem config file.

What’s a config file

The config file is sent to the cable modem as part of the provisioning process at boot time, using the TFTP protocol.

It’s a binary file consisting of different TLV (type-length-value) encodings. The value of a TLV can again be a TLV, thus creating a tree-like structure of TLVs and sub TLVs.

To create a config file, you can use a convenient textual form and leave the encoding to a software tool, e.g. our freely available DOCSIS config file editor.

The essentials

At the very least, these TLVs need to be present:

  • Network Access Control: enabling or disabling network access for the customer using the cable modem
  • Upstream Service Flow: describing how packets will be sent upstream (from the modem into the network)
  • Downstream Service Flow: describing how packets will be sent downstream (from the network to the modem)

Example:

Network Access Control:on
Upstream Service Flow Encodings
  Service Flow Reference:1
  Quality of Service Parameter Set:provisioned admitted active
Downstream Service Flow Encodings
  Service Flow Reference:2
  Quality of Service Parameter Set:provisioned admitted active

There, you’re done. You’ve just created a working config file! Note that this is the config file you start with when launching the DOCSIS config file editor. Two other necessary TLVs, CM and CMTS MIC are added automatically by the editor.

Adding a speed profile

All done? Well… there are a few shortcomings to this config file. It grants unlimited internet speed, to name but one.

So we need additional sub TLVs to refine the service flows. To create a 160/10 Mbps downstream/upstream internet subscription for example, you can use the following service flow configuration:

Upstream Service Flow Encodings
  Service Flow Reference:1
  Quality of Service Parameter Set:provisioned admitted active
  Upstream Maximum Sustained Traffic Rate:10000000
  Maximum Traffic Burst:10654
Downstream Service Flow Encodings
  Service Flow Reference:2
  Quality of Service Parameter Set:provisioned admitted active
  Downstream Maximum Sustained Traffic Rate:160000000
  Maximum Traffic Burst:10654

The Maximum Sustained Traffic Rate limits the speed, while the Maximum Traffic Burst setting allows tweaking the observed latency.  You can read the gory details, including a lot of other service flow encodings in the MULPI spec, Annex C.

Adding additional services

With our internet service completed, it’s time to add other services.

For a voice service e.g. the signaling packets (used to set up a call) need a higher priority than the internet packets. The actual voice packets will use a dynamically created service flow, so we don’t need to worry about those in our config file.

Let’s create the additional service flows (note the unique reference numbers):

Upstream Service Flow Encodings
  Service Flow Reference:3
  Quality of Service Parameter Set:provisioned admitted active
  Traffic Priority:7
Downstream Service Flow Encodings
  Service Flow Reference:4
  Quality of Service Parameter Set:provisioned admitted active
  Traffic Priority:7

Traffic Priority ranges from 0 to 7 (higher is more priority). Therefore these service flows will get priority over the internet service flows (with a default priority of 0).

Adding a classifier

To make sure that the voice signaling packets will use those newly defined service flows, and not the internet service flows, we add classifiers that map or “classify” a certain packet to a certain service flow, e.g. for an NCS-based VoIP service:

Upstream Packet Classification Encoding
  Classifier Reference:1
  Service Flow Reference:3
  IP Packet Classification Encodings
    IP Protocol:17
    TCP/UDP Source Port Start:2427
    TCP/UDP Source Port End:2427
    TCP/UDP Destination Port Start:2427
    TCP/UDP Destination Port End:2427
Downstream Packet Classification Encoding
  Classifier Reference:2
  Service Flow Reference:4
  IP Packet Classification Encodings
    IP Protocol:17
    TCP/UDP Source Port Start:2427
    TCP/UDP Source Port End:2427
    TCP/UDP Destination Port Start:2427
    TCP/UDP Destination Port End:2427

The modem will now classify upstream UDP packets originating from and destined to port 2427 on the service flow with reference 3, which is our high-priority service flow. Likewise, the CMTS will classify the downstream voice signaling packets on service flow with reference number 4.

All packets that are not matched by a classifier are put on the primary service flow, this is the first service flow that is encountered in the config file.

Adding SNMP access

A lot of operators are still using SNMPv2 as the main protocol to remotely manage the modems. A number of TLVs are available for easy configuration of this SNMP coexistence:

SNMPv1v2c Coexistence Configuration
  SNMPv1v2c Community Name:private
  SNMPv1v2c Transport Address Access
    SNMPv1v2c Transport Address:10.10.10.0/0
    SNMPv1v2c Transport Address Mask:255.255.255.0/0
  SNMPv1v2c Access View Type:read-write
  SNMPv1v2c Access View Name:docsisManagerView

These settings will allow SNMP v1/v2 read-write access from a management station within the 10.10.10.0/24 subnet to all the MIBs in the docsisManagerView (defined in the OSS spec, basically everything) using community string private.

What’s next?

Glueing the pieces from the previous paragraphs together, you’ve created an SNMPv2 manageable cable modem with a 160/10 internet subscription and high-priority voice signaling.

Other services (like e.g. eRouter or L2VPN) or configuration options (like filters, software upgrade parameters or vendor specific settings) can simply be added to this config file. Annex C of the MULPI spec gives a full overview of the possible TLVs in a config file.

Reader interactions

54 Replies to “How to create a cable modem config file”

  1. I see Euro DOCSIS support but what about US DOCSIS support?

    Reply

  2. David Van Deynse July 15, 2015 at 7:05 am

    Hi John. Basically, (US) DOCSIS and EuroDOCSIS config files are the same. So our config file editor supports both.

    Reply

  3. Hello,
    i created a cable modem config file i need but how to make it work now (how to make mondem read that file, ty.

    Reply

  4. David Van Deynse May 23, 2016 at 7:20 am

    Hi Luja,
    The operator controls the config file a modem will get at boot time through the provisioning process (it’s a DHCP option).

    Reply

  5. There is no need to add “End of File” marker in the end? Cisco specs for config files says “the configuration file MUST have an “End of File” marker. This in done by a data maker, the values MUST be ff.. “

    Reply

  6. David Van Deynse June 7, 2016 at 7:07 am

    Hi Alex,
    Yes, an End of File marker (0xFF) needs to be present, as you can see in the first paragraph (“What’s a config file”). The Excentis Config File Editor will automatically add the EoF (or End-Of-Data EOD) marker to your file when you save it. It also automatically adds the CM and CMTS MICs, you also don’t need to specify those in the GUI editor.

    Reply

  7. We are a small private cable operator (PCO) in US, and we are using wireless cable modems. We will like to set some parameters using the CM config file for wireless on the cable modem… e.g. wifi channel and SSID and enable remote access. How do we do that using the config file ? Do you have a sample config file you can provide.

    Thanks for all your great work!

    Reply

  8. David Van Deynse December 2, 2016 at 7:08 am

    Hi Carl,
    Configuring wireless on the cable modem is typically done using MIBs, either vendor specific or e.g. using the CLAB-WIFI-MIB. You can add those MIBs to the config file using TLV-11 (SNMP MIB Object).
    Example, to configure the SSID name:
    SNMP MIB Object(clabWIFISSIDName.10101):1.3.6.1.4.1.4491.2.5.1.1.4.1.5.10101, Octet String, MySSID

    Reply

  9. Ok let’s say I’m about to piece together the config file from this information. How does one get it to the modem and upload/install/place the file on the modem? And where do I put it?

    Reply

  10. David Van Deynse January 9, 2017 at 7:09 am

    Hi Jesse,
    Fetching the config file is part of the provisioning process controlled by the operator. So, once you’ve created a config file, you (as an operator) put in on a tftp server and configure the dhcp server to include the tftp server address and file name in the modem’s dhcp options. Usually, these functions (dhcp, tftp) are integrated in provisioning server systems.
    So the modem gets the config file name from its dhcp options and then fetches it using tftp. Next, the modem sends the contents of the config file to the CMTS in the registration process, thus putting the settings into action.

    Reply

  11. Hi I am trying to enable DUT filtering on a basic docsis config file to have the CM work on a TLS (transparent LAN service) setup, any guidance on doing so is greatly appreciated!
    thanks
    Carlos

    Reply

  12. David Van Deynse January 19, 2017 at 7:10 am

    Hi Carlos,
    That’s TLV 45, to generally enable DUT filtering, simply add

    Downstream Unencrypted Traffic Filtering
    DUT Control:on

    to your config file.

    Reply

  13. Hello

    I work in French Guyane with operateur telecom GUYACOM , I take care of the network HFC in Cayenne , now i work in projet DOCSIS with Teleste and i have probleme with configuration the file for configuraiton DHCP .
    do you can help me please for this problemes .$

    Reply

  14. David Van Deynse April 11, 2017 at 7:13 am

    Hi Nadioui,
    Thanks for your question. We will get in touch with you to see what we can do to help you out.

    Reply

  15. Hi,
    How can I specify certicficate/mfgcvcdata for modem update using Excentis?

    Reply

  16. David Van Deynse May 9, 2017 at 7:14 am

    Hi Cristian,
    You can use TLV 32 (Manufacturer Code Verification Certificate) for that. Easiest way is to add the CVC file using the GUI.

    Reply

  17. Hello again David,
    Thanks for last time, it’s working :), but now I can’t set the username and password for a Technicolor/Thomson modem TC7210. Could you help me with this one also? Thanks in advance 🙂
    Best regards,
    Cristian

    Reply

  18. David Van Deynse May 30, 2017 at 7:15 am

    Hi Cristian,
    That’s typically done using TLV43 (Vendor Specific Extension Field). For the exact encoding there, you’ll need to check with Technicolor/Thomson, since this field is -as it says- vendor specific.
    Another option would be to use TLV11 (MIB) and add the vendor proprietary MIB.

    Reply

  19. Hi to all
    I am facing a problem with the VOIP.
    I use Cable Modems CBN CH6541e / CH6643e on Motorola BSR 64000 CMTS.

    Are there any general/specific MIBs for these models in order to negotiatie and/or manually specify the codec i want to use for SIP.

    For eg. i want to specify codec PCMA.
    Thank you for your time.

    Endrit.H

    Reply

  20. David Van Deynse June 9, 2017 at 7:16 am

    Hi Endrit,
    The voice parameters are configured using the EDVA config file, not the modem config file. We have a separate blog post on that:
    https://www.excentis.com/blog/packetcable-20-edva-config-files

    Reply

  21. Sastivel Subramanian August 28, 2017 at 7:16 am

    I need to update the speed in bootfile qbp.cfg , please let me know how
    I can download this bootfile and update the speed. Upstream and Downstream values.

    Thanks in Advance.

    Reply

  22. David Van Deynse September 5, 2017 at 7:17 am

    Hi Sastivel,
    Once you’ve updated the speed values in the configuration file, you need to upload it to the TFTP server and reboot the modem, so that it fetches the new bootfile containing the new speed values.

    Reply

  23. Thanks for your response David, the file which I mentioned “bootfile qbp.cfg” is placed in router or Server or CMTS I’m not sure about it, but I’m able to see the file name in router config steps,

    So please advice how I can download this file “bootfile qbp.cfg” ?

    Reply

  24. David Van Deynse September 6, 2017 at 7:18 am

    Hi Sastivel,
    The filename is in the DHCP message towards the CM. The file itself is placed on the TFTP server, where the CM will fetch it after it completes its DHCP cycle.

    Reply

  25. David Van Deynse September 8, 2017 at 7:19 am

    Hi Marcelo,
    If your CM supports the eRouter spec, you can configure it using the eRouter TLVs in the CM config file, e.g. to put it into IPv4 router mode:
    eRouter Configuration Encodings
    eRouter Initialization Mode Encoding:IPv4

    If your CM does not support the eRouter spec, you’ll need to look into vendor specific MIBs to do so in the config file. Same for changing the IP range on the client side.

    Reply

  26. Thanks David for the clarification, Why docsis config file editor not allowing to update the downstream value more than 55216000.

    Reply

  27. Hi Sastivel,
    That limitation is present only in the DOCSIS 1.0 Class of Service encoding. That was the very first version of DOCSIS and downstream speeds were indeed physically limited to that value.

    Reply

  28. Thanks for the clarification it’s really helpful, we have currently 50Mbps Output Line, But with these values we can only able to transmit up to 3Mbps via CMTS, we have checked in the main line and CPE’s.

    The current Values in the Server as follows:
    *Euro-DOCSIS 1.0 Class of Service Configuration*
    Class ID:1
    Maximum Downstream Rate:55216000
    Maximum Upstream Rate:10240000
    Upstream Channel Priority:7
    Class-of-Service Privacy Enable:0

    We are updating in Arris Correnerstone CMTS docsis 1.1

    Thanks a lot for your help.

    Reply

  29. i am a lan technician and new to the CMTS for forgive what may be an obvious question. my client current has .cm configuration files in their CMTS since network is so small. how can i use your Docsis configuration tool to define new configuration files. for example I want to enable SNMP on the cable modem and saw your example. but I’m not sure if i can simply copy and paste your config example into the CMTS. thanks

    Reply

  30. David Van Deynse March 23, 2018 at 7:21 am

    Hi Tony,
    So you mean that the CMTS is acting as provisioning system (or at least TFTP server) as well? You can’t simply copy-paste, since config files are binary, so you’ll need to write the binary version (with added integrity checks), but you can do that with our DOCSIS Configfile Editor, yes.

    Reply

  31. I work with an ISP and I have built a config file that we are going to be using with the CM1000 on D3.1 plant, but I need to setup Remote management credentials. I’m able to hit the CM1000 remotely via the mgmt IP, but the credentials I use locally to login do not work. I would like to setup a password via the config file.

    Reply

  32. For DPoG its the same?

    Reply

  33. Hi Jonathan, as already said in the support portal, you need a private mib for that.
    Hi Pablo, what exactly do you mean?

    Reply

  34. Hi Guys, here it is my question, how can we enable syslog messages in a cable modem in otder to be sent to a CMTS? I know that SNMP notification and syslog message can be set in the CM’s configuration file. Do you have a exaple?

    Reply

  35. David Van Deynse January 2, 2019 at 7:23 am

    Hi Raul,
    This can be configured using MIBs, and MIBs can be added in the configfile using TLV-11.
    As an example, for the syslog server, this would look like the following
    (ipv4 10.0.0.1 address):
    SNMP MIB Object(docsDevEvSyslogAddressType.0):1.3.6.1.2.1.69.1.5.9.0,
    Integer, 1
    SNMP MIB Object(docsDevEvSyslogAddress.0):1.3.6.1.2.1.69.1.5.10.0, Octet String, 10.0.0.1

    Reply

  36. Mario Walgraeve May 27, 2019 at 7:23 am

    Hi David, I am trying to get some Arris (TG1652)modem in Lan Pass Thru mode, by means of the config file via eRouter MIB Objet. Seem the command is not accepted, but config file is loaded. SNMP command via MIB browser works. Any idea what could be the reason?
    Is the line eRouter SNMPv1v2c Coexistence Configuration neede in the config file in this case?

    Reply

  37. David Van Deynse May 27, 2019 at 7:24 am

    Hi Mario,
    Adding
    eRouter Configuration Encodings
    eRouter Initialization Mode Encoding:Disabled
    to your modem config file should be enough.
    There are some exceptions, please check chapter 6 (eRouter initialization) of the eRouter spec (CM-SP-eRouter-I20-190515).

    Reply

  38. I work with CM CISCO DPC3008, they are in bridge mode, I need them not to do it. I need you to assign a different IP range on the client side. Thank you

    Reply

  39. Hi,
    we are small ISP in Slovakia. I need to help with a specific problem. We used CM Cisco CM3010 and Arris CM820S combinated with old models arris cm550B in our docsis networks. If I am testing speed behind the CMTS with PC plug direct to a docsis 3.0 modem, there is about 120-160Mbps downsteam with 8channels bonding with DS SNR more than 42, ping latency about 13ms – This is a maximum speed limit if CMTS 3.0 is behind the microwave radio (we used Alcoma, SIAE, Ericsson). If i connect CMTS direct in our switch in server room (without microwave), there is speed more than 300Mbps with similar docsis parameters. But if i test a speed behind a microwave (before cmts), the speed is ok, full speed of microwave capacity – like 660Mbps, 2ms ping. Please, where may be a problem? We try to many changes in cm file, but problem still occurs.
    Thanks
    Andy

    Reply

  40. hello I have the following problem I need to create a configuration file for my hitron cgnv2 modem, since currently the configuration file you are using is not working try to generate one with Excentis Docsis Config File Editor but I was not lucky can indicate how to do it, thanks.

    Reply

  41. Hi
    I am using SB6141E now. Now Internet speed is 300/30 using 8down channel and 4up channel. In my config I didn’t limited upload speed. it probably be 120mbps. but is doesn’t. What is going on? I can’t fit it. Thanks!

    Reply

  42. David Van Deynse July 9, 2020 at 7:26 am

    Hi Fred,
    Without any limits in the config file (or 0 = unlimited), the config file is indeed not the source of the limitation. We’ll contact you to discuss other options.
    Best regards,
    David.

    Reply

  43. Hi David,
    Thanks for your attention!
    https://s1.ax1x.com/2020/07/06/Ui9w7R.png
    Here is my config files pictures,I limited for 120Mbps,but in Speedtest.net testing it’s only about 30mbps,is just a single upstream channel’s speed,do I need to add anything’s else in the config files?
    Best regards
    Fred

    Reply