RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
This page is under development
This section summarises technical specifications for operation of Multimedia Over Coax Alliance (MoCA) devices (“nodes”) using in-home coaxial wiring for transport of multimedia content. It describes the MoCA node protocol stack and physical network model.
The MoCA system network model creates a coax network which supports communications between a convergence layer in one MoCA node to the corresponding convergence layer in another MoCA node. The protocol stack of a MoCA node is shown in Figure 1-1. The MoCA specification does not include layers above the convergence layer.
Figure 1-1: MoCA Node Protocol Stack
Typical in-home coaxial networks are configured as a branching tree topology. The point of connection to the first splitter is called the Root Node. The MoCA nodes inside the home communicate with each other by having their signals traverse across one or more splitters. The signal path transmission between two MoCA nodes is the superposition of several individual paths. Each individual signal path may have a different magnitude and delay resulting in an aggregate signal path with frequency nulls, large attenuation, and significant delay spread. The MoCA Network will operate under these channel conditions.
Figure 1-2: A Typical In-home MoCA Network
MoCA object in its DML layer:
Device.MoCA.Interface. Device.MoCA.Interface.1.Enable Device.MoCA.Interface.1.Status Device.MoCA.Interface.1.Alias Device.MoCA.Interface.1.Name Device.MoCA.Interface.1.LastChange Device.MoCA.Interface.1.LowerLayers Device.MoCA.Interface.1.Upstream Device.MoCA.Interface.1.MACAddress Device.MoCA.Interface.1.FirmwareVersion Device.MoCA.Interface.1.MaxBitRate Device.MoCA.Interface.1.MaxIngressBW Device.MoCA.Interface.1.MaxEgressBW Device.MoCA.Interface.1.HighestVersion Device.MoCA.Interface.1.CurrentVersion Device.MoCA.Interface.1.NetworkCoordinator Device.MoCA.Interface.1.NodeID Device.MoCA.Interface.1.MaxNodes Device.MoCA.Interface.1.PreferredNC Device.MoCA.Interface.1.BackupNC Device.MoCA.Interface.1.PrivacyEnabledSetting Device.MoCA.Interface.1.PrivacyEnabled Device.MoCA.Interface.1.FreqCapabilityMask Device.MoCA.Interface.1.FreqCurrentMaskSetting Device.MoCA.Interface.1.FreqCurrentMask Device.MoCA.Interface.1.CurrentOperFreq Device.MoCA.Interface.1.LastOperFreq Device.MoCA.Interface.1.KeyPassphrase Device.MoCA.Interface.1.TxPowerLimit Device.MoCA.Interface.1.PowerCntlPhyTarget Device.MoCA.Interface.1.BeaconPowerLimit Device.MoCA.Interface.1.NetworkTabooMask Device.MoCA.Interface.1.NodeTabooMask Device.MoCA.Interface.1.TxBcastRate Device.MoCA.Interface.1.TxBcastPowerReduction Device.MoCA.Interface.1.QAM256Capable Device.MoCA.Interface.1.PacketAggregationCapability Device.MoCA.Interface.1.X_CISCO_COM_Reset Device.MoCA.Interface.1.X_CISCO_COM_MixedMode Device.MoCA.Interface.1.X_CISCO_COM_ChannelScanning Device.MoCA.Interface.1.X_CISCO_COM_AutoPowerControlEnable Device.MoCA.Interface.1.X_CISCO_COM_EnableTabooBit Device.MoCA.Interface.1.X_CISCO_COM_CycleMaster Device.MoCA.Interface.1.AutoPowerControlPhyRate Device.MoCA.Interface.1.X_CISCO_COM_BestNetworkCoordinatorID Device.MoCA.Interface.1.X_CISCO_NetworkCoordinatorMACAddress Device.MoCA.Interface.1.X_CISCO_COM_ChannelScanMask Device.MoCA.Interface.1.X_CISCO_COM_NumberOfConnectedClients Device.MoCA.Interface.1.LinkUpTime Device.MoCA.Interface.1.AssociatedDeviceNumberOfEntries Device.MoCA.Interface.1.X_CISCO_COM_PeerTableNumberOfEntries Device.MoCA.Interface.1.X_RDKCENTRAL-COM_MeshTableNumberOfEntries Device.MoCA.Interface.1.Stats.BytesSent Device.MoCA.Interface.1.Stats.BytesReceived Device.MoCA.Interface.1.Stats.PacketsSent Device.MoCA.Interface.1.Stats.PacketsReceived Device.MoCA.Interface.1.Stats.ErrorsSent Device.MoCA.Interface.1.Stats.ErrorsReceived Device.MoCA.Interface.1.Stats.UnicastPacketsSent Device.MoCA.Interface.1.Stats.UnicastPacketsReceived Device.MoCA.Interface.1.Stats.DiscardPacketsSent Device.MoCA.Interface.1.Stats.DiscardPacketsReceived Device.MoCA.Interface.1.Stats.MulticastPacketsSent Device.MoCA.Interface.1.Stats.MulticastPacketsReceived Device.MoCA.Interface.1.Stats.BroadcastPacketsSent Device.MoCA.Interface.1.Stats.BroadcastPacketsReceived Device.MoCA.Interface.1.Stats.UnknownProtoPacketsReceived Device.MoCA.Interface.1.Stats.Reset Device.MoCA.Interface.1.Stats.X_CISCO_COM_ExtAggrAverageTx Device.MoCA.Interface.1.Stats.X_CISCO_COM_ExtAggrAverageRx Device.MoCA.Interface.1.Stats.X_CISCO_COM_ExtCounterTableNumberOfEntries Device.MoCA.Interface.1.Stats.X_CISCO_COM_ExtAggrCounterTableNumberOfEntries Device.MoCA.Interface.1.Stats.X_CISCO_COM_ExtAggrCounterTable.1.Tx Device.MoCA.Interface.1.Stats.X_CISCO_COM_ExtAggrCounterTable.1.Rx Device.MoCA.Interface.1.QoS.X_CISCO_COM_Enabled Device.MoCA.Interface.1.QoS.EgressNumFlows Device.MoCA.Interface.1.QoS.IngressNumFlows Device.MoCA.Interface.1.QoS.FlowStatsNumberOfEntries Device.MoCA.Interface.1.X_CISCO_COM_PeerTable.1.PeerSpeed Device.MoCA.Interface.1.X_CISCO_COM_PeerTable.2.PeerSpeed
Moca Component registers with the CR using config files and xml files. CcspMoCA.cfg specifies the datamodel. XmlConfig file is CcspMoCADM.cfg which in turn specifies DmXml TR181-MoCA.XML
Has two modules:-
Data model south bound API(board_sbapi) calls HAL APIs which abstract hardware configuration and status fetching.
The implementation of HAL APIs depends on platform SDK because different SoC vendors have different implementations for Moca.
When dmcli command is used to get or set a value , cosa_moca_dml.c in middle_layer_src is invoked.
For eg: $ ./dmcli eRT getv "Device.MoCA.Interface.1.LinkUpTime" Component path is eRT.com.cisco.spvtg.ccsp.moca. Depending on parameter datatype (Bool/uLong/String) described in TR181-MoCA.XML, the corresponding API in ./middle_layer_src/cosa_moca_dml.c (here, Interface1_GetParamUlongValue()) is called and collects values for the query parameter from moca HAL layer through board-sbapi.
Initializes Ccsp Datamodel for Moca
# Cdm_Init(bus_handle, subSys, NULL, NULL, pComponentName); where pComponentName =CCSP_COMPONENT_NAME_MoCA = com.cisco.spvtg.ccsp.moca" and subSys can be PC,Simulator,CableModem, eRouter etc
In ssp_messagebus_interface.c, ssp_Mbi_MessageBusEngage()// connect to dbus daemon with component name, component path etc
In ssp_action.c, Ssp_create() Create component common data model object and interface ComponentCommonDmInit(g_pComponent_COMMON_moca);
Ssp_engage() -Moca Data model configuration and registration
RegisterCcspDataModel() //Register Moca DML with component name,path,version,namespace etc
/*Once system is fully initialized */ g_pComponent_COMMON_moca->Health = CCSP_COMMON_COMPONENT_HEALTH_Green;
Have some other functions like
* ssp_cancel //to unregister component
* ssp_CcdIfGetComponentName
* ssp_CcdIfGetComponentVersion
* ssp_CcdIfGetComponentAuthorSome example APIs are listed below:
moca_GetIfConfig / moca_SetIfConfig moca_IfGetStaticInfo moca_IfGetDynamicInfo moca_IfGetStats moca_GetNumAssociatedDevices moca_GetAssociatedDevices moca_FreqMaskToValue moca_GetMocaCPEs moca_HardwareEquipped