Versions Compared

Key

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

Table of Contents
maxLevel1

Info

This page is under development

toc

Introduction

This section summarises technical specifications for the operation of Multimedia Over Coax Alliance (MoCA) devices (“nodes”) using in-home coaxial wiring for the transport of multimedia content. It describes the MoCA node protocol stack and the physical network model.

The MoCA system network model creates a coax network which that 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.

draw.io Diagram
diagramNameMoCA Node Protocol Stack1.drawio
revision1
Image Removed

Figure 1-1: MoCA Node Protocol Stack

Physical Network Model

Typical in-home coaxial networks are configured as a branching tree topology.  The point of connection  to 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.

draw.io Diagram
diagramNameSAMPLE-IN PROGRESS.drawio
revision1
Image Removed

Figure 1-2: A Typical In-home MoCA Network

Objects

MoCA object in its DML layer: 

Code Block
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

Code Flow

 Moca Component registers with the CR  using config files and xml files.

CcspMoCA.cfg specifies the datamodel,  XmlConfig file  CcspMoCADM.cfg which in turn specifies DmXml  TR181-MoCA.XML

Column

CcspMoCA.cfg :

Component>
<ID>com.cisco.spvtg.ccsp.moca</ID>
<Name>com.cisco.spvtg.ccsp.moca</Name>                                                                                            
<Version>1</Version>
<DbusPath>/com/cisco/spvtg/ccsp/moca</DbusPath>
<DataModelXmlCfg>CcspMoCADM.cfg</DataModelXmlCfg>                                               
</Component>

CcspMoCADM.cfg:

<DataModels>
<DmXml>TR181-MoCA.XML</DmXml>
</DataModels>

Code Flow

 Moca Component registers with the CR  using config files and XML files.

CcspMoCA.cfg specifies the datamodel,  XmlConfig file  CcspMoCADM.cfg which in turn specifies DmXml  TR181-MoCA.XML

Column

CcspMoCA.cfg :

Component>
<ID>com.cisco.spvtg.ccsp.moca</ID>
<Name>com.cisco.spvtg.ccsp.moca</Name>                                                                                            
<Version>1</Version>
<DbusPath>/com/cisco/spvtg/ccsp/moca</DbusPath>
<DataModelXmlCfg>CcspMoCADM.cfg</DataModelXmlCfg>                                               
</Component>

CcspMoCADM.cfg:

<DataModels>
<DmXml>TR181-MoCA.XML</DmXml>
</DataModels>

  • Name of the component =>com.cisco.spvtg.ccsp.moca
  • Version of the component =
  • Name of the component =>com.cisco.spvtg.ccsp.moca
  • Version of the component =>1
  • D-Bus path to reach the component => /com/cisco/spvtg/ccsp/moca
  • Namespaces supported by the component =>moca parameters
  • If CcspMoca binary executes properly, a file /tmp/moca_initialized is created
  • CcspMoca module consists of  2 parts
    •   TR-181   -  DataModel Layer provides details of parameters and objects supported by the moca component.
    •   MoCASsp  – involves Moca component registration  with ComponentRegistry via  CCsp DBUS

...

  •  board_sbapi  -  Linked to moca-hal layer
  •  middle_layer_src – To handle query  to moca  parameters  

Data model south bound southbound API(board_sbapi) calls HAL APIs  which 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  When dmcli command is used to get or set a value, cosa_moca_dml.c in middle_layer_src is invoked.

...

                   Once the  system is fully initialized, set the health as Green 

                    g_pComponent_COMMON_moca->Health = CCSP_COMMON_COMPONENT_HEALTH_Green;

...

        *   ssp_CcdIfGetComponentAuthor

MoCA HAL

  • MoCA HAL is an abstraction layer, implemented for interacting with MoCA driver. 
  • MoCA HAL API's functionality should be implemented by OEMs.
  • moca_hal.c provides function call prototypes and structure definitions used for the RDK-Broadband MoCA HAL.

Some example APIs are listed below:

Code Block
moca_GetIfConfig / moca_SetIfConfig
moca_IfGetStaticInfo
moca_IfGetDynamicInfo
moca_IfGetStats
moca_GetNumAssociatedDevices
moca_GetAssociatedDevices
moca_FreqMaskToValue
moca_GetMocaCPEs
moca_HardwareEquipped

Retrieve value using dmcli command

...


Objects

MoCA object in its DML layer: 

Panel

Device.MoCA.Interface.

Retrieve value using dmcli command

Code Block
$ dmcli eRT getv Device.MoCA.Interface.1.AssociatedDevice.

CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(eRT.com.cisco.spvtg.ccsp.moca): Device.MoCA.Interface.1.AssociatedDevice.
Execution succeed.
Parameter 1 name: Device.MoCA.Interface.1.AssociatedDevice.

...

Code Block
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(eRT.com.cisco.spvtg.ccsp.moca)1.MACAddress
type: string, value: 12:BF:60:2E:4F:0D
Parameter 2 name: Device.MoCA.Interface.1.AssociatedDevice.1.
Execution succeed.NodeID
type: uint, value: 0
Parameter 13 name: Device.MoCA.Interface.1.AssociatedDevice.1.MACAddressX_CISCO_COM_RxBcastRate
type: stringuint, value: 12:BF:60:2E:4F:0D630
Parameter 24 name: Device.MoCA.Interface.1.AssociatedDevice.1.NodeIDPreferredNC
type: uintbool, value: 0false
Parameter 35 name: Device.MoCA.Interface.1.AssociatedDevice.1.X_CISCO_COM_RxBcastRateHighestVersion
type: uintstring, value: 63020
Parameter 46 name: Device.MoCA.Interface.1.AssociatedDevice.1.PreferredNCPHYTxRate
type: booluint, value: false658
Parameter 57 name: Device.MoCA.Interface.1.AssociatedDevice.1.HighestVersionPHYRxRate
type: stringuint, value: 20674
Parameter 68 name: Device.MoCA.Interface.1.AssociatedDevice.1.PHYTxRateTxPowerControlReduction
type: uint, value: 65830
Parameter 79 name: Device.MoCA.Interface.1.AssociatedDevice.1.PHYRxRateRxPowerLevel
type: uintint, value: 674-47
Parameter 810 name: Device.MoCA.Interface.1.AssociatedDevice.1.TxPowerControlReductionTxBcastRate
type: uint, value: 30641
Parameter 911 name: Device.MoCA.Interface.1.AssociatedDevice.1.RxPowerLevelRxBcastPowerLevel
type: intuint, value: -470
Parameter 1012 name: Device.MoCA.Interface.1.AssociatedDevice.1.TxBcastRateTxPackets
type: uint, value: 6415509
Parameter 1113 name: Device.MoCA.Interface.1.AssociatedDevice.1.RxBcastPowerLevelRxPackets
type: uint, value: 020680
Parameter 1214 name: Device.MoCA.Interface.1.AssociatedDevice.1.TxPacketsRxErroredAndMissedPackets
type: uint, value: 55090
Parameter 1315 name: Device.MoCA.Interface.1.AssociatedDevice.1.RxPacketsQAM256Capable
type: uintbool, value: 20680true
Parameter 1416 name: Device.MoCA.Interface.1.AssociatedDevice.1.RxErroredAndMissedPacketsPacketAggregationCapability
type: uint, value: 01
Parameter 1517 name: Device.MoCA.Interface.1.AssociatedDevice.1.QAM256CapableRxSNR
type: booluint, value: true8
Parameter 1618 name: Device.MoCA.Interface.1.AssociatedDevice.1.PacketAggregationCapabilityActive
type: uintbool, value: 1true
Parameter 1719 name: Device.MoCA.Interface.1.AssociatedDevice.1.RxSNRX_CISCO_COM_NumberOfClients
type: uint, value: 80
Parameter 1820 name: Device.MoCA.Interface.1.AssociatedDevice.12.ActiveMACAddress
type: boolstring, value: trueD4:0A:A9:1B:5D:5C
Parameter 1921 name: Device.MoCA.Interface.1.AssociatedDevice.1.X_CISCO_COM_NumberOfClients2.NodeID
type: uint, value: 02
Parameter 2022 name: Device.MoCA.Interface.1.AssociatedDevice.2.MACAddressX_CISCO_COM_RxBcastRate
type: stringuint, value: D4:0A:A9:1B:5D:5C271
Parameter 2123 name: Device.MoCA.Interface.1.AssociatedDevice.2.NodeIDPreferredNC
type: uintbool, value: 2true
Parameter 2224 name: Device.MoCA.Interface.1.AssociatedDevice.2.X_CISCO_COM_RxBcastRateHighestVersion
type: uintstring, value: 27111
Parameter 2325 name: Device.MoCA.Interface.1.AssociatedDevice.2.PreferredNCPHYTxRate
type: booluint, value: true277
Parameter 2426 name: Device.MoCA.Interface.1.AssociatedDevice.2.HighestVersionPHYRxRate
type: stringuint, value: 11272
Parameter 2527 name: Device.MoCA.Interface.1.AssociatedDevice.2.PHYTxRateTxPowerControlReduction
type: uint, value: 27729
Parameter 2628 name: Device.MoCA.Interface.1.AssociatedDevice.2.PHYRxRateRxPowerLevel
type: uintint, value: 272-53
Parameter 2729 name: Device.MoCA.Interface.1.AssociatedDevice.2.TxPowerControlReductionTxBcastRate
type: uint, value: 29274
Parameter 2830 name: Device.MoCA.Interface.1.AssociatedDevice.2.RxPowerLevelRxBcastPowerLevel
type: intuint, value: -530
Parameter 2931 name: Device.MoCA.Interface.1.AssociatedDevice.2.TxBcastRateTxPackets
type: uint, value: 2744198
Parameter 3032 name: Device.MoCA.Interface.1.AssociatedDevice.2.RxBcastPowerLevelRxPackets
type: uint, value: 0102237
Parameter 3133 name: Device.MoCA.Interface.1.AssociatedDevice.2.TxPacketsRxErroredAndMissedPackets
type: uint, value: 41980
Parameter 3234 name: Device.MoCA.Interface.1.AssociatedDevice.2.RxPacketsQAM256Capable
type: uintbool, value: 102237true
Parameter 3335 name: Device.MoCA.Interface.1.AssociatedDevice.2.RxErroredAndMissedPacketsPacketAggregationCapability
type: uint, value: 01
Parameter 3436 name: Device.MoCA.Interface.1.AssociatedDevice.2.QAM256CapableRxSNR
type: booluint, value: true8
Parameter 3537 name: Device.MoCA.Interface.1.AssociatedDevice.2.PacketAggregationCapabilityActive
type: uintbool, value: 1true
Parameter 3638 name: Device.MoCA.Interface.1.AssociatedDevice.2.RxSNRX_CISCO_COM_NumberOfClients
type: uint, value: 80
Parameter 3739 name: Device.MoCA.Interface.1.AssociatedDevice.23.ActiveMACAddress
type: boolstring, value: true38:5F:66:16:2C:D1
Parameter 3840 name: Device.MoCA.Interface.1.AssociatedDevice.2.X_CISCO_COM_NumberOfClients3.NodeID
type: uint, value: 03
Parameter 3941 name: Device.MoCA.Interface.1.AssociatedDevice.3.MACAddressX_CISCO_COM_RxBcastRate
type: stringuint, value: 38:5F:66:16:2C:D1629
Parameter 4042 name: Device.MoCA.Interface.1.AssociatedDevice.3.NodeIDPreferredNC
type: uintbool, value: 3false
Parameter 4143 name: Device.MoCA.Interface.1.AssociatedDevice.3.X_CISCO_COM_RxBcastRateHighestVersion
type: uintstring, value: 62920
Parameter 4244 name: Device.MoCA.Interface.1.AssociatedDevice.3.PreferredNCPHYTxRate
type: booluint, value: false684
Parameter 4345 name: Device.MoCA.Interface.1.AssociatedDevice.3.HighestVersionPHYRxRate
type: stringuint, value: 20674
Parameter 4446 name: Device.MoCA.Interface.1.AssociatedDevice.3.PHYTxRateTxPowerControlReduction
type: uint, value: 68430
Parameter 4547 name: Device.MoCA.Interface.1.AssociatedDevice.3.PHYRxRateRxPowerLevel
type: uintint, value: 674-50
Parameter 4648 name: Device.MoCA.Interface.1.AssociatedDevice.3.TxPowerControlReductionTxBcastRate
type: uint, value: 30641
Parameter 4749 name: Device.MoCA.Interface.1.AssociatedDevice.3.RxPowerLevelRxBcastPowerLevel
type: intuint, value: -500
Parameter 4850 name: Device.MoCA.Interface.1.AssociatedDevice.3.TxBcastRateTxPackets
type: uint, value: 6412081
Parameter 4951 name: Device.MoCA.Interface.1.AssociatedDevice.3.RxBcastPowerLevelRxPackets
type: uint, value: 08589
Parameter 5052 name: Device.MoCA.Interface.1.AssociatedDevice.3.TxPacketsRxErroredAndMissedPackets
type: uint, value: 20810
Parameter 5153 name: Device.MoCA.Interface.1.AssociatedDevice.3.RxPacketsQAM256Capable
type: uintbool, value: 8589true
Parameter 5254 name: Device.MoCA.Interface.1.AssociatedDevice.3.RxErroredAndMissedPacketsPacketAggregationCapability
type: uint, value: 01
Parameter 5355 name: Device.MoCA.Interface.1.AssociatedDevice.3.QAM256CapableRxSNR
type: booluint, value: true8
Parameter 5456 name: Device.MoCA.Interface.1.AssociatedDevice.3.PacketAggregationCapabilityActive
type: uintbool, value: 1true
Parameter 5557 name: Device.MoCA.Interface.1.AssociatedDevice.3.RxSNRX_CISCO_COM_NumberOfClients
type: uint, value: 8
Parameter 56 name: Device.MoCA.Interface.1.AssociatedDevice.3.Active
type: bool, value: true
Parameter 57 name: Device.MoCA.Interface.1.AssociatedDevice.3.X_CISCO_COM_NumberOfClients
type: uint, value: 0

...

0

HAL APIs

Some example APIs are listed below:

APIs
moca_GetIfConfig
moca_SetIfConfig
moca_IfGetStaticInfo
moca_IfGetDynamicInfo
moca_IfGetStats
moca_GetNumAssociatedDevices
moca_GetAssociatedDevices
moca_GetResetCount
moca_GetFlowStatistics
moca_HardwareEquipped
moca_getIfScmod
moca_getIfAcaStatus
moca_cancelIfAca
moca_getIfAcaConfig
moca_setIfAcaConfig
moca_GetFullMeshRates
moca_FreqMaskToValue
moca_GetMocaCPEs
moca_IfGetExtAggrCounter
moca_IfGetExtCounter

References

...