Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.



Info

This page is under development

Table of Contents

Introduction

...

The data over cable service interface specification (DOCSIS) specifies the protocol for exchanging bidirectional transfer of Internet protocol (IP) traffic, between the cable system headend and customer locations.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: a

  • A cable modem on the customer

...

  • end 
  • cable modem termination system (CMTS) at the cable provider's end.

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.

...

  • CM Agent is a CCSP component that exposes TR181 parameters related to CM/DOCSIS interface characteristics.
  • CM agent provides info like : Upstream channels, downstream channels, boot file name, DOCSIS log, etc along with CM interface details.
  • Maintains a TR181 data model XML file with dbus object path as /com/cisco/spvtg/ccsp/cm
  • Has a layered architecture similar to any other CCSP component

...

  • Access Layer interfaces with the CCSP message bus
  • Receives any set or get calls and passes pass them onto the DML layer to manage the data which is in the request.

Data Model Management Layer

  • Maintains the parameter list specified in the Data model XML file.
  • Data Model Management Layer loads all data model access APIs from the Datamodel Data model XML file
  • The data model implementation in shared library interfaces HAL Integration (backend) Layer by calling backend integration APIs.

CM Agent HAL Integration (backend) Layer, a.k.a, component-specific HAL

  • This layer make makes calls to underlying HAL functions, Linux system calls/commands, third party modules, open-source modules etc.
  • This layer will be more component-specific.

Code Flow


Objects

CMAgent object in its DML layer:

Panel

Device.X_RDKCENTRAL-COM_CableModem.

...

Dmcli


Retrieving  cable modem values using dmcli

Panel
$ dmcli eRT getv Device.X_RDKCENTRAL-COM_CableModem.
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(eRT.com.cisco.spvtg.ccsp.cm): Device.X_RDKCENTRAL-COM_CableModem.
Execution succeed.
Parameter    1 name: Device.X_RDKCENTRAL-COM_CableModem.DsOfdmChanNumberOfEntries
               type:       uint,    value: 0
Parameter    2 name: Device.X_RDKCENTRAL-COM_CableModem.UsOfdmaChanNumberOfEntries
               type:       uint,    value: 0
Parameter    3 name: Device.X_RDKCENTRAL-COM_CableModem.StatusOfdmaNumberOfEntries
               type:       uint,    value: 0

CM HAL

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.c provides h provides function call prototypes and structure definitions used for the RDK-Broadband CM HAL.

Git repo: https://code.rdkcentral.com/r/plugins/gitiles/rdkb/components/opensource/ccsp/halinterface/+/rdk-next/cm_hal.h 

Some example APIs APIs  are listed below:

...

APIs
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