RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
When a cable company offers Internet access over the cable, Internet information can use the same cables. Putting both upstream and downstream data on the cable television system requires two types of equipment:
The CMTS takes the traffic coming in from a group of customers on a single channel and routes it to an Internet service provider (ISP) for connection to the Internet. At the head-end, the cable providers will have, or lease space for a third-party ISP to have, servers for accounting and logging, Dynamic Host Configuration Protocol (DHCP) for assigning and administering the IP addresses of all the cable system's users, and control servers.
RDK-B was designed to support any wide area network (WAN) type e.g DOCSIS, EPON. Gateways using RDK-B may provide a DOCSIS interface, but that DOCSIS code is typically tied to a particular piece of silicon and may even be provided by that silicon vendor. And the core philosophy of RDK-B was to be hardware and WAN type independent.
To address this situation, RDK-B does not include DOCSIS. It only includes components that provide an abstraction layer software interface to third party WAN. For the DOCSIS WAN, this component is known as the Cable Modem (CM) Agent. CM Agent provides interfaces for integrating WAN interfaces with RDK-B. RDK-B is not tied to DOCSIS and may be used with any WAN interface. Other RDK-B software components can be created that provide interfaces to other WANs.
Access Layer
Data Model Management Layer
CM Agent HAL Integration (backend) Layer, a.k.a, component-specific HAL
CMAgent object in its DML layer:
Device.X_RDKCENTRAL-COM_CableModem.
Retrieving cable modem values using dmcli
This hardware abstraction layer (HAL) concept is used for every interface.
The CM HAL provides a well-defined software interface that cable modem software developers can use to interface to RDK-B.
cm_hal.h provides function call prototypes and structure definitions used for the RDK-Broadband CM HAL.
Git repo: rdkb-halif-cm/include/cm_hal.h at main · rdkcentral/rdkb-halif-cm
Some example APIs are listed below:
cm_hal_InitDB |
docsis_InitDS |
docsis_InitUS |
docsis_getCMStatus |
docsis_GetDSChannel |
docsis_GetUsStatus |
docsis_GetUSChannel |
docsis_GetDOCSISInfo |
docsis_GetNumOfActiveTxChannels |
docsis_GetNumOfActiveRxChannels |
docsis_GetErrorCodewords |
docsis_GetMddIpModeOverride |
docsis_SetMddIpModeOverride |
docsis_GetUSChannelId |
docsis_GetDownFreq |
docsis_SetStartFreq |
docsis_GetDocsisEventLogItems |
docsis_ClearDocsisEventLog |
cm_hal_GetDHCPInfo |
cm_hal_GetIPv6DHCPInfo |
cm_hal_GetCPEList |
cm_hal_GetMarket |
cm_hal_Set_HTTP_Download_Url |
cm_hal_Get_HTTP_Download_Url |
cm_hal_Set_HTTP_Download_Interface |
cm_hal_Get_HTTP_Download_Interface |
cm_hal_HTTP_Download |
cm_hal_Get_HTTP_Download_Status |
cm_hal_Reboot_Ready |
cm_hal_HTTP_Download_Reboot_Now |
cm_hal_FWupdateAndFactoryReset |
cm_hal_ReinitMac |
docsis_GetProvIpType |
docsis_GetCert |
docsis_GetCertStatus |
cm_hal_Get_CableModemResetCount |
cm_hal_Get_LocalResetCount |
cm_hal_Get_DocsisResetCount |
cm_hal_Get_ErouterResetCount |
cm_hal_HTTP_LED_Flash |
docsis_GetDsOfdmChanTable |
docsis_GetUsOfdmaChanTable |