RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
...
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.
...
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.
...
Figure 1-2: A Typical In-home MoCA Network
MoCA object in its DML layer:
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> CcspMoCADM.cfg: <DataModels> |
Has two modules:-
Data model southbound 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.
Code Block |
---|
For eg: $ ./dmcli eRT getv " |
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.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. |
Once the system is fully initialized, set the health as Green
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_CcdIfGetComponentAuthor
MoCA object in its DML layer:
Code Block |
---|
Device.MoCA.Interface.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_MixedModeEnable Device.MoCA.Interface.1.X_CISCO_COM_ChannelScanningStatus Device.MoCA.Interface.1.X_CISCO_COM_AutoPowerControlEnableAlias Device.MoCA.Interface.1.X_CISCO_COM_EnableTabooBitName Device.MoCA.Interface.1.X_CISCO_COM_CycleMasterLastChange Device.MoCA.Interface.1.AutoPowerControlPhyRateLowerLayers Device.MoCA.Interface.1.X_CISCO_COM_BestNetworkCoordinatorIDUpstream Device.MoCA.Interface.1.X_CISCO_NetworkCoordinatorMACAddressMACAddress Device.MoCA.Interface.1.X_CISCO_COM_ChannelScanMaskFirmwareVersion Device.MoCA.Interface.1.X_CISCO_COM_NumberOfConnectedClientsMaxBitRate Device.MoCA.Interface.1.LinkUpTimeMaxIngressBW Device.MoCA.Interface.1.AssociatedDeviceNumberOfEntriesMaxEgressBW Device.MoCA.Interface.1.X_CISCO_COM_PeerTableNumberOfEntriesHighestVersion Device.MoCA.Interface.1.X_RDKCENTRAL-COM_MeshTableNumberOfEntries DeviceCurrentVersion Device.MoCA.Interface.1.Stats.BytesSentNetworkCoordinator Device.MoCA.Interface.1.Stats.BytesReceivedNodeID Device.MoCA.Interface.1.Stats.PacketsSentMaxNodes Device.MoCA.Interface.1.Stats.PacketsReceivedPreferredNC Device.MoCA.Interface.1.Stats.ErrorsSentBackupNC Device.MoCA.Interface.1.Stats.ErrorsReceivedPrivacyEnabledSetting Device.MoCA.Interface.1.Stats.UnicastPacketsSentPrivacyEnabled Device.MoCA.Interface.1.Stats.UnicastPacketsReceivedFreqCapabilityMask Device.MoCA.Interface.1.Stats.DiscardPacketsSentFreqCurrentMaskSetting Device.MoCA.Interface.1.Stats.DiscardPacketsReceivedFreqCurrentMask Device.MoCA.Interface.1.Stats.MulticastPacketsSentCurrentOperFreq Device.MoCA.Interface.1.Stats.MulticastPacketsReceivedLastOperFreq Device.MoCA.Interface.1.Stats.BroadcastPacketsSentKeyPassphrase Device.MoCA.Interface.1.Stats.BroadcastPacketsReceivedTxPowerLimit Device.MoCA.Interface.1.Stats.UnknownProtoPacketsReceivedPowerCntlPhyTarget Device.MoCA.Interface.1.Stats.ResetBeaconPowerLimit Device.MoCA.Interface.1.Stats.X_CISCO_COM_ExtAggrAverageTxNetworkTabooMask Device.MoCA.Interface.1.Stats.X_CISCO_COM_ExtAggrAverageRxNodeTabooMask Device.MoCA.Interface.1.Stats.X_CISCO_COM_ExtCounterTableNumberOfEntriesTxBcastRate Device.MoCA.Interface.1.Stats.X_CISCO_COM_ExtAggrCounterTableNumberOfEntriesTxBcastPowerReduction Device.MoCA.Interface.1.QAM256Capable Device.Stats.X_CISCO_COM_ExtAggrCounterTableMoCA.Interface.1.TxPacketAggregationCapability Device.MoCA.Interface.1.Stats.X_CISCO_COM_ExtAggrCounterTable.1.RxReset Device.MoCA.Interface.1.QoS.X_CISCO_COM_EnabledMixedMode Device.MoCA.Interface.1.QoS.EgressNumFlowsX_CISCO_COM_ChannelScanning Device.MoCA.Interface.1.QoS.IngressNumFlowsX_CISCO_COM_AutoPowerControlEnable Device.MoCA.Interface.1.QoS.FlowStatsNumberOfEntriesX_CISCO_COM_EnableTabooBit Device.MoCA.Interface.1.X_CISCO_COM_PeerTableCycleMaster Device.MoCA.Interface.1.PeerSpeedAutoPowerControlPhyRate 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 CcspMoCADM.cfg which in turn specifies DmXml TR181-MoCA.XML
Column |
---|
CcspMoCA.cfg : Component> CcspMoCADM.cfg: <DataModels> |
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.
Code Block |
---|
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. |
Once the system is fully initialized, set the health as Green
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_CcdIfGetComponentAuthor
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
...
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 |
Retrieve value using dmcli command
$ dmcli eRT getv 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): 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.NodeID type: uint, value: 0 Parameter 3 name: Device.MoCA.Interface.1.AssociatedDevice.1. Execution succeed.X_CISCO_COM_RxBcastRate type: uint, value: 630 Parameter 14 name: Device.MoCA.Interface.1.AssociatedDevice.1.MACAddressPreferredNC type: stringbool, value: 12:BF:60:2E:4F:0Dfalse Parameter 25 name: Device.MoCA.Interface.1.AssociatedDevice.1.NodeIDHighestVersion type: uintstring, value: 020 Parameter 36 name: Device.MoCA.Interface.1.AssociatedDevice.1.X_CISCO_COM_RxBcastRatePHYTxRate type: uint, value: 630658 Parameter 47 name: Device.MoCA.Interface.1.AssociatedDevice.1.PreferredNCPHYRxRate type: booluint, value: false674 Parameter 58 name: Device.MoCA.Interface.1.AssociatedDevice.1.HighestVersionTxPowerControlReduction type: stringuint, value: 2030 Parameter 69 name: Device.MoCA.Interface.1.AssociatedDevice.1.PHYTxRateRxPowerLevel type: uintint, value: 658-47 Parameter 710 name: Device.MoCA.Interface.1.AssociatedDevice.1.PHYRxRateTxBcastRate type: uint, value: 674641 Parameter 811 name: Device.MoCA.Interface.1.AssociatedDevice.1.TxPowerControlReductionRxBcastPowerLevel type: uint, value: 300 Parameter 912 name: Device.MoCA.Interface.1.AssociatedDevice.1.RxPowerLevelTxPackets type: intuint, value: -475509 Parameter 1013 name: Device.MoCA.Interface.1.AssociatedDevice.1.TxBcastRateRxPackets type: uint, value: 64120680 Parameter 1114 name: Device.MoCA.Interface.1.AssociatedDevice.1.RxBcastPowerLevelRxErroredAndMissedPackets type: uint, value: 0 Parameter 1215 name: Device.MoCA.Interface.1.AssociatedDevice.1.TxPacketsQAM256Capable type: uintbool, value: 5509true Parameter 1316 name: Device.MoCA.Interface.1.AssociatedDevice.1.RxPacketsPacketAggregationCapability type: uint, value: 206801 Parameter 1417 name: Device.MoCA.Interface.1.AssociatedDevice.1.RxErroredAndMissedPacketsRxSNR type: uint, value: 08 Parameter 1518 name: Device.MoCA.Interface.1.AssociatedDevice.1.QAM256CapableActive type: bool, value: true Parameter 1619 name: Device.MoCA.Interface.1.AssociatedDevice.1.PacketAggregationCapabilityX_CISCO_COM_NumberOfClients type: uint, value: 10 Parameter 1720 name: Device.MoCA.Interface.1.AssociatedDevice.12.RxSNRMACAddress type: uint, value: 8: string, value: D4:0A:A9:1B:5D:5C Parameter 1821 name: Device.MoCA.Interface.1.AssociatedDevice.12.ActiveNodeID type: booluint, value: true2 Parameter 1922 name: Device.MoCA.Interface.1.AssociatedDevice.12.X_CISCO_COM_NumberOfClientsRxBcastRate type: uint, value: 0271 Parameter 2023 name: Device.MoCA.Interface.1.AssociatedDevice.2.MACAddressPreferredNC type: stringbool, value: D4:0A:A9:1B:5D:5Ctrue Parameter 2124 name: Device.MoCA.Interface.1.AssociatedDevice.2.NodeIDHighestVersion type: uintstring, value: 211 Parameter 2225 name: Device.MoCA.Interface.1.AssociatedDevice.2.X_CISCO_COM_RxBcastRatePHYTxRate type: uint, value: 271277 Parameter 2326 name: Device.MoCA.Interface.1.AssociatedDevice.2.PreferredNCPHYRxRate type: booluint, value: true272 Parameter 2427 name: Device.MoCA.Interface.1.AssociatedDevice.2.HighestVersionTxPowerControlReduction type: stringuint, value: 1129 Parameter 2528 name: Device.MoCA.Interface.1.AssociatedDevice.2.PHYTxRateRxPowerLevel type: uintint, value: 277-53 Parameter 2629 name: Device.MoCA.Interface.1.AssociatedDevice.2.PHYRxRateTxBcastRate type: uint, value: 272274 Parameter 2730 name: Device.MoCA.Interface.1.AssociatedDevice.2.TxPowerControlReductionRxBcastPowerLevel type: uint, value: 290 Parameter 2831 name: Device.MoCA.Interface.1.AssociatedDevice.2.RxPowerLevelTxPackets type: intuint, value: -534198 Parameter 2932 name: Device.MoCA.Interface.1.AssociatedDevice.2.TxBcastRateRxPackets type: uint, value: 274102237 Parameter 3033 name: Device.MoCA.Interface.1.AssociatedDevice.2.RxBcastPowerLevelRxErroredAndMissedPackets type: uint, value: 0 Parameter 3134 name: Device.MoCA.Interface.1.AssociatedDevice.2.TxPacketsQAM256Capable type: uintbool, value: 4198true Parameter 3235 name: Device.MoCA.Interface.1.AssociatedDevice.2.RxPacketsPacketAggregationCapability type: uint, value: 1022371 Parameter 3336 name: Device.MoCA.Interface.1.AssociatedDevice.2.RxErroredAndMissedPacketsRxSNR type: uint, value: 08 Parameter 3437 name: Device.MoCA.Interface.1.AssociatedDevice.2.QAM256CapableActive type: bool, value: true Parameter 3538 name: Device.MoCA.Interface.1.AssociatedDevice.2.PacketAggregationCapabilityX_CISCO_COM_NumberOfClients type: uint, value: 10 Parameter 3639 name: Device.MoCA.Interface.1.AssociatedDevice.23.RxSNRMACAddress type: uintstring, value: 838:5F:66:16:2C:D1 Parameter 3740 name: Device.MoCA.Interface.1.AssociatedDevice.23.ActiveNodeID type: booluint, value: true3 Parameter 3841 name: Device.MoCA.Interface.1.AssociatedDevice.23.X_CISCO_COM_NumberOfClientsRxBcastRate type: uint, value: 0629 Parameter 3942 name: Device.MoCA.Interface.1.AssociatedDevice.3.MACAddressPreferredNC type: stringbool, value: 38:5F:66:16:2C:D1false Parameter 4043 name: Device.MoCA.Interface.1.AssociatedDevice.3.NodeIDHighestVersion type: uintstring, value: 320 Parameter 4144 name: Device.MoCA.Interface.1.AssociatedDevice.3.X_CISCO_COM_RxBcastRatePHYTxRate type: uint, value: 629684 Parameter 4245 name: Device.MoCA.Interface.1.AssociatedDevice.3.PreferredNCPHYRxRate type: booluint, value: false674 Parameter 4346 name: Device.MoCA.Interface.1.AssociatedDevice.3.HighestVersionTxPowerControlReduction type: stringuint, value: 2030 Parameter 4447 name: Device.MoCA.Interface.1.AssociatedDevice.3.PHYTxRateRxPowerLevel type: uintint, value: 684-50 Parameter 4548 name: Device.MoCA.Interface.1.AssociatedDevice.3.PHYRxRateTxBcastRate type: uint, value: 674641 Parameter 4649 name: Device.MoCA.Interface.1.AssociatedDevice.3.TxPowerControlReductionRxBcastPowerLevel type: uint, value: 300 Parameter 4750 name: Device.MoCA.Interface.1.AssociatedDevice.3.RxPowerLevelTxPackets type: intuint, value: -502081 Parameter 4851 name: Device.MoCA.Interface.1.AssociatedDevice.3.TxBcastRateRxPackets type: uint, value: 6418589 Parameter 4952 name: Device.MoCA.Interface.1.AssociatedDevice.3.RxBcastPowerLevelRxErroredAndMissedPackets type: uint, value: 0 Parameter 5053 name: Device.MoCA.Interface.1.AssociatedDevice.3.TxPacketsQAM256Capable type: uintbool, value: 2081true Parameter 5154 name: Device.MoCA.Interface.1.AssociatedDevice.3.RxPacketsPacketAggregationCapability type: uint, value: 85891 Parameter 5255 name: Device.MoCA.Interface.1.AssociatedDevice.3.RxErroredAndMissedPacketsRxSNR type: uint, value: 08 Parameter 5356 name: Device.MoCA.Interface.1.AssociatedDevice.3.QAM256CapableActive type: bool, value: true Parameter 5457 name: Device.MoCA.Interface.1.AssociatedDevice.3.PacketAggregationCapability.3.X_CISCO_COM_NumberOfClients type: uint, value: 1 Parameter 55 name: Device.MoCA.Interface.1.AssociatedDevice.3.RxSNR 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: 00 |
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 |