Former ARRIS employee here and part of the team that wrote the DOCSIS HMS-MMM specification. Here's a link to the specifications for version 3.1 - https://www.cablelabs.com/specifications/search?category=DOC.... Understanding how these devices work will make understanding the software much easier. I will warn you however that most of the magic is in the hardware. Also note that the surfboard line originated at Motorola.
I’m kind of curious how these modems work. Looking at the filesystem dump, these modems run a full OS. But why? It’s purely a device that routes IP traffic, right? Couldn’t an FPGA or ASIC handle that better?
I assume, from skimming your link, that DOCSIS describes the first two/three network layers. What was your specialization? More the signal stuff, or more the digital part? What did you find hardest about the standard?
And what OS did ARRIS use for these modems? Looks like something Unix-y, but what exactly? You say the magic is in the hardware, so what function did the OS have?
Also I assume that price was extremely important for ISPs? Or did their wish for certain features dictate more powerful hardware somehow? Were their wishes already clear by the time the third version was written? Or were they still fully part of the team?
Feel free to skip any or all questions :) I am curious but do not wish to impose on you.
these modems run a full OS. But why? ... Couldn’t an FPGA or ASIC handle that better?
These modems don't just have an OS (Linux in my case) but a kitchen sink of additional software. I have a similar Arris modem, the SB6141. The modem has its own internal web page where Arris acknowledges the licenses for all the software used.
You can get an idea of the complexity by looking at the list of software included. I'm sure there are countless security bugs, hence why this cable modem is on the Internet side of my own firewall.
The table below shows list of Open Source Licenses
and corresponding Software Components
used in this product.
GPLv2:
Busybox 1.4.2
Kernel 2.6.18
Bridge Utils 1.0.4
Ruli 1.19
Syslogkd 1.4
Udhcp 0.9.7
Utelnetd 0.1.2
Uboot 1.2.0
Squashfs 4.57.0
Udev 0.055
Kconfig 1.4
Envutils
Iostat2.2
Exmap 0.9
Mkimage
LGPLv2.1:
7zip
Liboop 1.0
uClibc 0.9.27
Sme
Flex BSD:
Flex 2.5.4
OpenSSL:
OpenSSL 1.0.2p
TI Kerebos 1.1.2
Matt Johnson MIT, TDCAL, Tatu Ylonen, PuTTY MIT, OpenSSH BSD:
Dropbear 0.50
Libtomcrypt 1.0
Libtommath 1.0
Wide Project BSD, Emanual Dreyfus BSD, University of California BSD:
Ipsec Tools 0.6.6
Abraham vd Merwe BSD, Texas Instruments BSD:
Libber 0.4.2
Texas Instruments BSD:
TI NetDK Libs 1.2.0
TI Docsis 1.2.0
Wide BSD, ISC MIT, Texas Instruments BSD, Todd Miller BSD:
TI DHCPv6 1.3
Portions under Jef Poskanzer MIT:
TI Webserver 1.2.0
University of California BSD, Texas Instruments BSD:
TFTP 0.17
Gray Watson MIT, MIT MIT, Textil Computer Design MIT, USC/ISI MIT:
DMalloc 5.5.2
Portions under University of California BSD:
TI Icc 1.1.2
Likely because each ISP pushes configurations remotely and you need a way to update the fpgas. Things like your upload/download speeds are controlled by the modem not the head end. Additionally there is a web interface for initial setup and troubleshooting.
The hardware contains the QAM256 modulators and demodulators as well as the hardware you'd expect in your typical SOHO router. Each of the original six MegaHertz NTSC analog channels now carries multiple HDTV digital channels and the same technology that streams the bits for the TV channels streams the bits for Internet service. The (peak) speeds that can be provided by your CATV ISP exceed the BPS that can be provided by a single channel so DOCSIS 3.0 and above includes channel bonding which allows packets to be sent in parallel and reassembled in the right order (still in the PHY layer from an OSI model perspective). The upstream channels use essentially the same technology but on frequencies below 54 MHz.
The OS is required to manage the RF hardware such as channel tuning, channel bonding, etc in the same way most network switching/routing in a SOHO device is only managed by the sometimes undersized ARM processor. You have to pick a more powerful home router if you want to add VPN, local DNS, etc - good luck getting these to run on the typical DOCSIS modem.
I was originally an embedded systems engineer and helped create all sorts of devices before I joined the CATV industry. I got into RF engineering through my work on fiber optics transceivers (both analog and digital) and then moved to a software only role where I specialized in OAM&P for head-end, plant and CPE. To be clear, I didn't work on DOCSIS hardware design per se - I understand the technology but have no experience with wide-band RF ASICs. I'm not sure there's anything especially hard in the DOCSIS specifications but it requires a pretty broad expertise - the real triumph of DOCSIS is that it's standardized across CATV companies as well as equipment providers. , Politically, it's certainly hard to establish that kind of agreement and then act on it.
I was part of ARRIS through their merger with C-COR and the DOCSIS modem technology we're talking about was acquired from Motorola so I'm pretty far away from that engineering and manufacturing. We built a lot of the head-end computing on Solaris which gradually shifted to Linux but the CPE devices would have been using a Linux or BSD from early on.
Price is extremely important to the CATV vendors and they tended to negotiate prices just to the point you wouldn't go out of business. But performance was important because with DOCSIS 2.0 they were still competing with the idea that CATV Internet was only marginally better than DSL and the phone companies were promising FttP (remember Verizon FIOS?). DOCSIS 3.0 is clearly superior to DSL and now that the phone companies have given up on FttP the technology has won. I'm no longer in the CATV business but would be surprised if there were ever a DOCSIS 4.0. Maybe 5G speeds and prices will allow the phone companies to once again compete without the expense of the OSP (building and maintaining a HFC CATV plant is horribly expensive).
One answer you didn't ask for - CPE devices like DOCSIS 3.0 modems are manufactured at consumer volumes and prices ... I believe the cost is now under $30 US. Instead of renting your modem from your CATV provider, find one on sale and buy it outright. The modem we're discussing is about $140 on Amazon but I'd be shocked if the CATV company was paying more than $45 or $50 in bulk. So if they rent the device to you for $5 it's all profit after 10 months. You can buy a refurbished for much less or go with a new but lower-end model and save yourself some money in the long run.
Finally, as noted elsewhere in this thread, don't use this device as your home's firewall or router. While you have a web interface to manage a small part of its behavior, the WHOLE device can be managed remotely by your cable company. Anecdotally, I've definitely had the configuration in my modem "reset" several times - good luck keeping the Xfinity wi-fi radio turned off (but you can cut the antenna off the circuit board like I did). I also wouldn't guarantee that your device isn't spying on you - has your ISP ever volunteered to manage the other devices in your home? Guess how they know what's connected!
Sorry it took a while for me to respond - yesterday was busy and I didn't want to try to compose the above on my phone.
I guess that tells you how long I've been using a modem that I own?
At $14 per month you can get a pretty nice modem if you invest six months of payments ... my current modem is seven years old at this point so it's saved me over $1000.
Your comment is fascinating and well worth the wait due to the insider info. I'm going to re-read it in a bit to understand it fully, but suffice to say: thank you very much. This is why I come here :)