RDK-B
MOCA HAL APIs

Description

Functions

int moca_GetIfConfig (unsigned long ifIndex, moca_cfg_t *pmoca_config)
 
int moca_SetIfConfig (unsigned long ifIndex, moca_cfg_t *pmoca_config)
 
int moca_IfGetDynamicInfo (unsigned long ifIndex, moca_dynamic_info_t *pmoca_dynamic_info)
 
int moca_IfGetStaticInfo (unsigned long ifIndex, moca_static_info_t *pmoca_static_info)
 
int moca_IfGetStats (unsigned long ifIndex, moca_stats_t *pmoca_stats)
 
int moca_GetNumAssociatedDevices (unsigned long ifIndex, unsigned long *pulCount)
 
int moca_IfGetExtCounter (unsigned long ifIndex, moca_mac_counters_t *pmoca_mac_counters)
 
int moca_IfGetExtAggrCounter (unsigned long ifIndex, moca_aggregate_counters_t *pmoca_aggregate_counts)
 
int moca_GetMocaCPEs (unsigned long ifIndex, moca_cpe_t *cpes, int *pnum_cpes)
 
int moca_GetAssociatedDevices (unsigned long ifIndex, moca_associated_device_t **ppdevice_array)
 
int moca_FreqMaskToValue (unsigned char *mask)
 
unsigned char moca_HardwareEquipped (void)
 
int moca_GetFullMeshRates (unsigned long ifIndex, moca_mesh_table_t *pDeviceArray, unsigned long *pulCount)
 
int moca_GetFlowStatistics (unsigned long ifIndex, moca_flow_table_t *pDeviceArray, unsigned long *pulCount)
 
int moca_GetResetCount (unsigned long *resetcnt)
 
int moca_setIfAcaConfig (int interfaceIndex, moca_aca_cfg_t acaCfg)
 
int moca_getIfAcaConfig (int interfaceIndex, moca_aca_cfg_t *acaCfg)
 
int moca_cancelIfAca (int interfaceIndex)
 
int moca_getIfAcaStatus (int interfaceIndex, moca_aca_stat_t *pacaStat)
 
int moca_getIfScmod (int interfaceIndex, int *pnumOfEntries, moca_scmod_stat_t **ppscmodStat)
 

Function Documentation

◆ moca_GetIfConfig()

int moca_GetIfConfig ( unsigned long  ifIndex,
moca_cfg_t pmoca_config 
)

@description Gets the MoCA Configuration Parameters that were previously set.

Parameters
ifIndex- Index of the MoCA Interface.
pmoca_config- Configuration Parameters

Instance Number when Multiple MoCA interfaces exist.
0 - In the case of only one interface.
Get the Alias Name for the interface
Flag if the interface is Enabled.
Flag if the Local Node's preference to be Network Coordinator
Flag if Privacy is Enabled
Current Frequency Mask (bitmask)
Privacy password (Valid if Privacy is Enabled)
Maximum Tx Power Limit
AutoPowerControlPhyRate: PowerCtrlPhyTarget
Used as a reference to achieve the PHY rate by adjusting power.
Tx Power Limit for transmitting beacons
Maximum Ingress/Egress Bandwidth Thresholds
Reset Condition of the MoCA Node
Flag if the Node is configured to operate in mixed mode (both 1.0 & 1.1 versions).
Flag if the Node is Scanning
Flag if the Auto Power Control is Enabled
Node Taboo Mask (indicates what frequencies Node should avoid)
Channel Scan Mask (indicated what frequencies Node should scan for beacons)  
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected   
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system  calls. It should probably just send a message to a driver event handler task. 

◆ moca_SetIfConfig()

int moca_SetIfConfig ( unsigned long  ifIndex,
moca_cfg_t pmoca_config 
)

@description Sets the MoCA Configuration Parameters.

Parameters
ifIndex- Index of the MoCA Interface.
pmoca_config- Configuration Parameters

Instance Number when Multiple MoCA interfaces exist.
0 - In the case of only one interface.
Set the Alias Name for the interface
Enable/Disable the interface.
Enable/Disable the Node's preference to be Network Coordinator
Enable/Disable Privacy
Set of Frequencies that can be used for forming network (bitmask)
Privacy password (Valid if Privacy is Enabled)
Maximum Tx Power Limit
AutoPowerControlPhyRate: PowerCtrlPhyTarget
Used as a reference to achieve the PHY rate by adjusting power.
Tx Power Limit for transmitting beacons
Maximum Ingress/Egress Bandwidth Thresholds
Reset MoCA Node
Enable/Disable the Node to operate in mixed mode (both 1.0 & 1.1 versions).
Enable/Disable the Node to operate in single frequency mode or scanning mode.
Enable/Disable Auto Power Control.
Set of Frequencis to Avoid (bitmask)
Set of Frequencies to Scan for Beacons (bitmask)  
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected   
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system  calls. It should probably just send a message to a driver event handler task. 

◆ moca_IfGetDynamicInfo()

int moca_IfGetDynamicInfo ( unsigned long  ifIndex,
moca_dynamic_info_t pmoca_dynamic_info 
)

@description Gets the Dynamic Status information on the interface & its associated network.

Parameters
ifIndex- Index of the MoCA Interface.
pmoca_dynamic_info_t- Dynamic Information on the interface and its associated network. The Following information is expected.
Status of the Local Interface Inferface (Up/Down/ etc.)
Last Link Status Change (Up/Down/ etc.)
Maximum Ingress/Egress Bandwidth
Current Version of the MoCA Protocol
Node ID of the Network Coordinator
Local Interface Node ID
Node ID of the Backup Network Coordinator
If Privacy is enabled on the network
Current Frequency Mask
Current Operating Frequency
Last Operating Frequency
Tx Broadcast Rate
Flag if MaxIngress/MaxEgress Bandwidth Threshold Reached
Number of Client Devices Connected
Network Coordinator MAC Address  
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected   
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system  calls. It should probably just send a message to a driver event handler task. 

◆ moca_IfGetStaticInfo()

int moca_IfGetStaticInfo ( unsigned long  ifIndex,
moca_static_info_t pmoca_static_info 
)

@description Gets the Static Information from the Local Node

Parameters
ifIndex- Index of the MoCA Interface.
pmoca_static_info- Static Information of the interface
Interface Name (for example: moca0)
MAC Address of the Interface
Firmware Version of the MoCA Firmware
Maximum PHY rate in Mbps
Highest Version of MoCA Protocol that the Node Supports
Frequencies that Node can Operate on (Bit Mask)
Frequenies to Avoid on Network (Bit Mask)
Beacon Backoff in dB
Flag if Node is Capable of QAM-256.
Flag that indicates if Node is capable of Packet Aggregation.  
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected   
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system  calls. It should probably just send a message to a driver event handler task. 

◆ moca_IfGetStats()

int moca_IfGetStats ( unsigned long  ifIndex,
moca_stats_t pmoca_stats 
)

@description Gets the Statistics on the Interface at Network Layer

Parameters
ifIndex- Index of the MoCA Interface.
pmoca_stats- Statistics on the interface (Network layer)

Number of Bytes Sent & Received
Number of Packets Sent & Received
Number of Errors in Sent & Received Packets
Number of Unicast Packets Sent & Received
Number of Packets Discard (Tx & Rx side)
Number of Multicast Packets Sent & Received
Number of Broadcast Packets Sent & Received
Number of Unknown Protocol Packets Received
Aggregate Averages of Packet Counts (Tx & Rx)  
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected   
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system  calls. It should probably just send a message to a driver event handler task. 

◆ moca_GetNumAssociatedDevices()

int moca_GetNumAssociatedDevices ( unsigned long  ifIndex,
unsigned long *  pulCount 
)

@description Gets the Number of Nodes on the MoCA network.

Parameters
ifIndex- Index of the MoCA Interface.
pulCount- Number of Nodes on the network.  
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected   
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system  calls. It should probably just send a message to a driver event handler task. 

◆ moca_IfGetExtCounter()

int moca_IfGetExtCounter ( unsigned long  ifIndex,
moca_mac_counters_t pmoca_mac_counters 
)

@description Gets the Statistics on the Interface at MoCA MAC Layer.

Parameters
ifIndex- Index of the MoCA Interface.
pmoca_mac_counters- MoCA MAC Layer Statiscs

Number of MAP packets
Number of Reservation Request Packets
Number of Link Control Packets
Number of Admission Request Packets
Number of Probes
Number of Beacons ** Please Note that this API is valid only if the Node is Network Coordinator.  
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected   
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system  calls. It should probably just send a message to a driver event handler task. 

◆ moca_IfGetExtAggrCounter()

int moca_IfGetExtAggrCounter ( unsigned long  ifIndex,
moca_aggregate_counters_t pmoca_aggregate_counts 
)

@description Gets the Aggregate DATA units Transferred (Tx & Rx)

Parameters
ifIndex- Index of the MoCA Interface.
pmoca_aggregate_counts- Aggregate Tx/Rx Counters

Aggregate Tx Payload Data Units (Not MoCA Control Packets).
Aggregate Rx Payload Data Units (Not MoCA Control Packets).
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected   
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system  calls. It should probably just send a message to a driver event handler task. 

◆ moca_GetMocaCPEs()

int moca_GetMocaCPEs ( unsigned long  ifIndex,
moca_cpe_t cpes,
int *  pnum_cpes 
)

@description Get MAC Address of all the Nodes Connected on MoCA Network.

Parameters
ifIndex- Index of the MoCA Interface.
pmoca_cpes- List of MAC Addresses of MoCA Nodes.
pnum_cpes- Number of MoCA Nodes in the List.
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected   
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system  calls. It should probably just send a message to a driver event handler task. 

◆ moca_GetAssociatedDevices()

int moca_GetAssociatedDevices ( unsigned long  ifIndex,
moca_associated_device_t **  ppdevice_array 
)

@description Get Information on all the associated Devices on the network.

Parameters
ifIndex- Index of the MoCA Interface.
ppdevice_array- Array of set of information for each Node on the network.

MAC Address of the Associated Device
Node ID of the Associated Device
Whether this Node is a Preferred NC.
Highest MoCA Protocol Version that this Node supports
Tx PHY Rate of this Node
Rx PHY Rate of this Node
Tx Power Reduced by this Node
Rx Power Level read by this Node
Tx Broadcast PHY Rate
Rx Broadcast Power Level read by this Node
Number of Transmitted Packets from this Node
Number of Recieved Packets by this Node
Number of (Rx) Error or Missed Packets by this Node
Flag if this Node is capable of QAM-256
Flag if this Node is capable of Packet Aggregation
Receive Signal to Noise Ration
Flag if this Node is Active
Recevie Broadcast PHY Rate
Number of Clients connected to this Node
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected   
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system  calls. It should probably just send a message to a driver event handler task. 

◆ moca_FreqMaskToValue()

int moca_FreqMaskToValue ( unsigned char *  mask)

@description A utility function that converts Mask Value to Frequency Number.

Parameters
mask- Bit Mask of the Frequency.
Returns
Frequency Value for the given Mask.  
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system  calls. It should probably just send a message to a driver event handler task. 

◆ moca_HardwareEquipped()

unsigned char moca_HardwareEquipped ( void  )

@description Functio that returns whether the MoCA Hardware is Equipped or Not.

Parameters
None.
Returns
Flag Indicating whether the Hardware is Equipped or not.
Return values
TRUEif Hardware is present.
FALSEif Hardware is not present.  
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system  calls. It should probably just send a message to a driver event handler task. 

◆ moca_GetFullMeshRates()

int moca_GetFullMeshRates ( unsigned long  ifIndex,
moca_mesh_table_t pDeviceArray,
unsigned long *  pulCount 
)

@description Gets the MoCA Mesh Table.

Parameters
ifIndex- Index of the MoCA Interface.
moca_mesh_table_t- pointer to a mesh table entry
pulCount- number of entries in the table
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected   
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system  calls. It should probably just send a message to a driver event handler task. 

◆ moca_GetFlowStatistics()

int moca_GetFlowStatistics ( unsigned long  ifIndex,
moca_flow_table_t pDeviceArray,
unsigned long *  pulCount 
)

@description Gets the MoCA Flow Table.

Parameters
ifIndex- Index of the MoCA Interface.
moca_flow_table_t- pointer to a flow table entry
pulCount- number of entries in the table
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected   
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system  calls. It should probably just send a message to a driver event handler task. 

◆ moca_GetResetCount()

int moca_GetResetCount ( unsigned long *  resetcnt)

@description Gets the MoCA reset count.

Parameters
resetcnt- number of reset
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected   
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system  calls. It should probably just send a message to a driver event handler task. 

◆ moca_setIfAcaConfig()

int moca_setIfAcaConfig ( int  interfaceIndex,
moca_aca_cfg_t  acaCfg 
)

@description Sets the MoCA Configuration Parameters to start the ACA process.

Parameters
ifIndex- Index of the MoCA Interface.
moca_aca_cfg_t- Configuration Parameters required for MOCA ACA Process
UINT NodeID; * The NodeID where we want to start the ACA testing *
PROBE_TYPE Type; * The Probe Type could be Enum EVM=1 or Quite=0 *
UINT Channel; * The Channel on which ACA test should start *
UINT ReportNodes;* Specifies the MoCA Nodes that are requested to be part of the channel assessment: Setting bits corresponding to Node IDs of these MoCA Nodes to 1 (LSB corresponds to Node ID 0x0). For example: 0000 0000 0000 0101 can be represented as 0x0005, Node 0 and Node 2. *


BOOL ACAStart; * The ACAStart for normal configuration should be 0, if ACAStart is 1 then The Hal should start the process. *

Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected for unknown reason
STATUS_INPROGRESSif already the ACA process running.
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system calls. It should probably just send a message to a driver event handler task. ACAStart bit is set then ACA Process should get start. If user request ACA Start while ACA Process in progress, then HAL should send error saying ACA Is in progress. It should not start new one.

◆ moca_getIfAcaConfig()

int moca_getIfAcaConfig ( int  interfaceIndex,
moca_aca_cfg_t acaCfg 
)

@description Gets the MoCA Configuration Parameters set before starting the ACA process.

Parameters
ifIndex- Index of the MoCA Interface.
moca_aca_cfg_t- Applied Configuration Parameters for MOCA ACA Process
UINT NodeID; * The NodeID *
PROBE_TYPE Type; * The Probe Type could be Enum EVM=1 or Quite=0 *
UINT Channel; * The Channel on which ACA test should start *
UINT ReportNodes;* Specifies the MoCA Nodes that are requested to be part of the channel assessment: Setting bits corresponding to Node IDs of these MoCA Nodes to 1 (LSB corresponds to Node ID 0x0). For example: 0000 0000 0000 0101 can be represented as 0x0005, Node 0 and Node 2. *
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system calls. It should probably just send a message to a driver event handler task.

◆ moca_cancelIfAca()

int moca_cancelIfAca ( int  interfaceIndex)

@description this function uses to cancel the ACA process which already running.

Parameters
ifIndex- Index of the MoCA Interface on which ACA process started.
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected
Execution:\n ASynchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system calls. It should probably just send a message to a driver event handler task.

◆ moca_getIfAcaStatus()

int moca_getIfAcaStatus ( int  interfaceIndex,
moca_aca_stat_t pacaStat 
)

@description Gets the MoCA ACA status after the starting the ACA process.

Parameters
ifIndex- Index of the MoCA Interface.
moca_aca_stat_t- Applied Configuration Parameters for MOCA ACA Process and ACA Process stats. moca_aca_cfg_t - Applied Configuration Parameters for MOCA ACA Process
UINT NodeID; * The NodeID *
PROBE_TYPE Type; * The Probe Type could be Enum EVM=1 or Quite=0 *
UINT Channel; * The Channel on which ACA test should start *
UINT ReportNodes; * Specifies the MoCA Nodes that are requested to be part of the channel assessment: Setting bits corresponding to Node IDs of these MoCA Nodes to 1 (LSB corresponds to Node ID 0x0). For example: 0000 0000 0000 0101 can be represented as 0x0005, Node 0 and Node 2. *
STATUS stat; * SUCCESS=0, Fail-BADCHANNEL=1,Fail-NoEVMPROBE=2, Fail=3,In-Progress=4 *
INT RxPower; * Total RX Power in DBM *
INT ACAPowProfile[512]; * Power Profile Representation for each channel in twos complement way*
BOOL ACATrapCompleted; * True for When Powerprofile ready *
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system calls. It should probably just send a message to a driver event handler task.

◆ moca_getIfScmod()

int moca_getIfScmod ( int  interfaceIndex,
int *  pnumOfEntries,
moca_scmod_stat_t **  ppscmodStat 
)

@description Gets the MoCA SCMODE status after the starting the ACA process.

Parameters
ifIndex- Index of the MoCA Interface.
moca_scmod_stat_t- Status of test between Transmit and recieve node.
INT TxNode; * The NODE ID of Transmit MOCA NODE. *
INT RxNode; * The Node ID of Receive MOCA Node. *
INT Channel; The Primary channel or Secondary channel used to calculate the NPER and VLPER *
UCHAR Mod[512]; * Subcarrier MODULATION used to calcuate the NPER and VLPER between two nodes *
UCHAR Nper[512]; * Each NPER of between two nodes on Corresponding Channel *
UCHAR Vlper[512]; * Each Vlper of between two nodes on Corresponding Channel *
Returns
The status of the operation.
Return values
STATUS_SUCCESSif successful.
STATUS_FAILUREif any error is detected
Execution:\n Synchronous.
Side Effects:\n None.
Note
This function must not suspend and must not invoke any blocking system calls. It should probably just send a message to a driver event handler task.