RDK-B
moca_hal.h
Go to the documentation of this file.
1 /*
2  * If not stated otherwise in this file or this component's LICENSE file the
3  * following copyright and licenses apply:
4  *
5  * Copyright 2016 RDK Management
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18 */
19 
20 /**********************************************************************
21  Copyright [2014] [Cisco Systems, Inc.]
22 
23  Licensed under the Apache License, Version 2.0 (the "License");
24  you may not use this file except in compliance with the License.
25  You may obtain a copy of the License at
26 
27  http://www.apache.org/licenses/LICENSE-2.0
28 
29  Unless required by applicable law or agreed to in writing, software
30  distributed under the License is distributed on an "AS IS" BASIS,
31  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
32  See the License for the specific language governing permissions and
33  limitations under the License.
34 **********************************************************************/
35 
36 /**********************************************************************
37 
38  module: moca_hal.h
39 
40  For CCSP Component: MoCA_Provisioning_and_management
41 
42  ---------------------------------------------------------------
43 
44  description:
45 
46  This header file gives the function call prototypes and
47  structure definitions used for the RDK-Broadband
48  MoCA hardware abstraction layer
49 
50  ---------------------------------------------------------------
51 
52  environment:
53 
54  This HAL layer is intended to support MoCA drivers
55  through an open API. The current implementation created
56  below this HAL supports MoCA.
57  Changes may be needed to support other MoCA enviornments.
58 
59  ---------------------------------------------------------------
60 
61  author:
62 
63  Cisco
64 
65 **********************************************************************/
66 
67 #ifndef __MOCA_HAL_H__
68 #define __MOCA_HAL_H__
69 
70 
71 #ifndef ULONG
72 #define ULONG unsigned long
73 #endif
74 
75 #ifndef BOOL
76 #define BOOL unsigned char
77 #endif
78 
79 #ifndef CHAR
80 #define CHAR char
81 #endif
82 
83 #ifndef UCHAR
84 #define UCHAR unsigned char
85 #endif
86 
87 #ifndef INT
88 #define INT int
89 #endif
90 
91 #ifndef UINT
92 #define UINT unsigned int
93 #endif
94 
95 #ifndef TRUE
96 #define TRUE 1
97 #endif
98 
99 #ifndef FALSE
100 #define FALSE 0
101 #endif
102 
103 #ifndef ENABLE
104 #define ENABLE 1
105 #endif
106 
107 #ifndef STATUS_SUCCESS
108 #define STATUS_SUCCESS 0
109 #endif
110 
111 #ifndef STATUS_FAILURE
112 #define STATUS_FAILURE -1
113 #endif
114 
115 #ifndef STATUS_NOT_AVAILABLE
116 #define STATUS_NOT_AVAILABLE -2
117 #endif
118 
119 /**
120 * @defgroup MOCA_HAL MoCA HAL
121 *
122 * MoCA HAL is an abstraction layer, mainly for interacting with MoCA driver.
123 *
124 * @defgroup MOCA_HAL_TYPES MOCA HAL Data Types
125 * @ingroup MOCA_HAL
126 *
127 * @defgroup MOCA_HAL_APIS MOCA HAL APIs
128 * @ingroup MOCA_HAL
129 *
130 **/
131 
132 /**
133  * @addtogroup MOCA_HAL_TYPES
134  * @{
135  */
136 
137 #define kMoca_MaxCpeList 256
138 #define kMoca_MaxMocaNodes 16
139 #define MAC_PADDING 12 /**< RDKB expects 6 byte MAC, padding required for platforms handling as 18 bytes MAC */
140 
141 #define STATUS_INPROGRESS -1 /**< If ACA process already running */
142 #define STATUS_NO_NODE -2 /**< If specified NODE not exist */
143 #define STATUS_INVALID_PROBE -3 /**< If HAL API called with invalid probe TYPE */
144 #define STATUS_INVALID_CHAN -4 /**< If HAL API called with invalid channel */
145 
146 /**********************************************************************
147  ENUMERATION DEFINITIONS
148 **********************************************************************/
149 #ifndef MOCA_VAR
150 typedef enum
151 {
152  IF_STATUS_Up = 1,
160 #endif
161 
162 typedef enum
163 {
166 }PROBE_TYPE;
167 
168 #if 0
169 typedef enum
170 {
171  STAT_SUCCESS =0,
172  STAT_FAIL_BADCHANNEL,
173  STAT_FAIL_NOEVMPROBE,
174  STAT_FAIL,
175  STAT_INPROGRESS
176 }ACA_STATUS;
177 #endif
178 /**********************************************************************
179  STRUCTURE DEFINITIONS
180 **********************************************************************/
181 typedef struct {
182  ULONG InstanceNumber; /**< Instance Number when Multiple MoCA interfaces exist. 0 - In the case of only one interface. */
183  CHAR Alias[64]; /**< Set the Alias Name for the interface */
184  BOOL bEnabled; /**< Enable/Disable the interface. */
185  BOOL bPreferredNC; /**< Enable/Disable the Node's preference to be Network Coordinator */
186  BOOL PrivacyEnabledSetting; /**< Enable/Disable Link Privacy. A Password is required when Privacy is enabled */
187  UCHAR FreqCurrentMaskSetting[128]; /**< Set of Frequencies that should be used for forming network (bitmask) */
188  CHAR KeyPassphrase[18]; /**< Privacy Password. This field is valid only if the Link Privacy is enabled. */
189  INT TxPowerLimit; /**< Maximum Transmission Power allowed */
190  ULONG AutoPowerControlPhyRate; /**< AutoPowerControlPhyRate: PowerCtrlPhyTarget Used as a reference to achieve the PHY rate by adjusting power. */
191  ULONG BeaconPowerLimit; /**< Maximum Transmission Power Allowed when transmitting Beacons */
192  ULONG MaxIngressBWThreshold; /**< Maximum Ingress Bandwidth Thresholds */
193  ULONG MaxEgressBWThreshold; /**< Maximum Egress Bandwidth Thresholds */
194  BOOL Reset; /**< Reset MoCA Configuration Parameters to Defaults */
195  BOOL MixedMode; /**< Enable/Disable the Node to operate in mixed mode (1.0/1.1/2.0 versions).
196  i.e Enable backward compatibility on the MoCA Protocol Versions. */
197  BOOL ChannelScanning; /**< Enable/Disable the Node to operate in single frequency mode or scanning mode. */
198  BOOL AutoPowerControlEnable; /**< Enable/Disable adjusting Power to achieve the Target PHY rate */
199  BOOL EnableTabooBit; /**< Enable/Disable the Node to support Taboo Mask */
200  UCHAR NodeTabooMask[128]; /**< Set of Frequencis to Avoid (bitmask) */
201  UCHAR ChannelScanMask[128]; /**< Set of Frequencies to Scan for Beacons to form network (bitmask).
202  Very often, this is same as FreqCurrentMaskSetting. */
204 
205 typedef struct {
206  /**< Interface Name (for example: moca0) */
207  CHAR Name[64]; /**< Uniquely identifying the entry */
208  UCHAR MacAddress[6 + MAC_PADDING]; /**< MAC Address of the Local Node */
209  CHAR FirmwareVersion[64]; /**< Firmware Version of the MoCA Firmware */
210  ULONG MaxBitRate; /**< Maximum PHY Rate that the Node can support */
211  CHAR HighestVersion[64]; /**< Highest Version of the MoCA Protocol that the Local Node Supports */
212  UCHAR FreqCapabilityMask[8]; /**< Frequencies that the Local Node supports (bitmask) */
213  UCHAR NetworkTabooMask[128]; /**< Frequencies that the Local Node does not support (bitmask) */
214  ULONG TxBcastPowerReduction; /**< Beacon Backoff in dB */
215  BOOL QAM256Capable; /**< Local Node is QAM-256 Capable or Not */
216  BOOL PacketAggregationCapability; /**< Local Node can aggregate Ethernet Packets for MoCA PDU transfers */
218 
219 #ifndef MOCA_VAR
220 typedef struct {
221  /**< Current Status of the LoCAL Interface (Up/Down etc.) */
223  ULONG LastChange; /**< Last Link Status Change (Up/Down/ etc.) */
224  ULONG MaxIngressBW; /**< Maximum Ingress Bandwidth reached */
225  ULONG MaxEgressBW; /**< Maximum Egress Bandwidth reached */
226  CHAR CurrentVersion[64]; /**< Current Operating MoCA Protocol Version Valid Values: 1.0, 1.1, 2.0 */
227  ULONG NetworkCoordinator; /**< Node ID of the Network Coordinator.
228  Valid Values: 0-7 (Protocol: 1.0)
229  Valid Values: 0-15 (Protocol: 1.1, 2.0) */
230  ULONG NodeID; /**< Node ID of the Local Node.
231  Valid Values: 0-7 (Protocol: 1.0)
232  Valid Values: 0-15 (Protocol: 1.1, 2.0) */
233  ULONG BackupNC; /**< Node ID of the Backup Network Coordinator
234  Valid Values: 0-7 (Protocol: 1.0)
235  Valid Values: 0-15 (Protocol: 1.1, 2.0) */
236  BOOL PrivacyEnabled; /**< If Privacy is enabled on the network */
237  UCHAR FreqCurrentMask[8]; /**< This should be same as the Configured Frequencies that the Node can operate */
238  ULONG CurrentOperFreq; /**< The Current Frequency on which the Node formed the Network */
239  ULONG LastOperFreq; /**< The Last Operating Frequency on which the Node formed the Network earlier */
240  ULONG TxBcastRate; /**< Transmission Broadcast Rate */
241  BOOL MaxIngressBWThresholdReached; /**< Flag Indicating that the Ingress Bandwidth reached the Maximum Threshold Set */
242  BOOL MaxEgressBWThresholdReached; /**< Flag Indicating that the Egress Bandwidth reached the Maximum Threshold Set */
243  ULONG NumberOfConnectedClients; /**< Number of Nodes on the MoCA Network
244  - Cannot exceed the maximum supported by MoCA Protocol. */
245  CHAR NetworkCoordinatorMACAddress[18]; /**< Network Coordinator MAC Address */
246  ULONG LinkUpTime; /**< Indicate the length of time this node has been connected to the MoCA network with at least one other node */
247 
248 
250 #endif
251 
252 typedef struct {
253  ULONG BytesSent; /**< Number of Bytes Sent & Received */
254  ULONG BytesReceived; /**< Number of Bytes Sent & Received */
255 
256  ULONG PacketsSent; /**< Number of Packets Sent & Received */
257  ULONG PacketsReceived; /**< Number of Packets Sent & Received */
258 
259  ULONG ErrorsSent; /**< Number of Errors in Sent & Received Packets */
260  ULONG ErrorsReceived; /**< Number of Errors in Sent & Received Packets */
261 
262  ULONG UnicastPacketsSent; /**< Number of Unicast Packets Sent */
263  ULONG UnicastPacketsReceived; /**< Number of Unicast Packets Received */
264 
265  ULONG DiscardPacketsSent; /**< Number of Packets Discard (Tx side) */
266  ULONG DiscardPacketsReceived; /**< Number of Packets Discard (Rx side) */
267 
268  ULONG MulticastPacketsSent; /**< Number of Multicast Packets Sent */
269  ULONG MulticastPacketsReceived; /**< Number of Multicast Packets Received */
270 
271  ULONG BroadcastPacketsSent; /**< Number of Broadcast Packets Sent */
272  ULONG BroadcastPacketsReceived; /**< Number of Broadcast Packets Received */
273 
274  ULONG UnknownProtoPacketsReceived; /**< Number of Unknown Protocol Packets Received */
275 
276  ULONG ExtAggrAverageTx; /**< Aggregate Averages of Packet Counts (Tx) */
277  ULONG ExtAggrAverageRx; /**< Aggregate Averages of Packet Counts (Rx) */
278 } moca_stats_t;
279 
280 
281 typedef struct {
282  ULONG Map; /**< Number of MAP packets */
283  ULONG Rsrv; /**< Number of Reservation Request Packets */
284  ULONG Lc; /**< Number of Link Control Packets */
285  ULONG Adm; /**< Number of Admission Request Packets */
286  ULONG Probe; /**< Number of Probes */
287  ULONG Async; /**< Number of Beacons */
289 
290 typedef struct {
291  ULONG Tx; /**< Aggregate Tx Payload Data Units (Not MoCA Control Packets). */
292  ULONG Rx; /**< Aggregate Rx Payload Data Units (Not MoCA Control Packets). */
294 
295 typedef struct {
296  CHAR mac_addr[6]; /**< MAC Address of the Node */
297 } moca_cpe_t;
298 
299 typedef struct {
300  /**< This Data Structure corresponds to information of
301  the associated device on the network. The term
302  'this Node' pertains to that particulard device for
303  which the information in this data structure is
304  valid */
305 
306  UCHAR MACAddress[6 + MAC_PADDING]; /**< MAC Address of the Associated Device */
307  ULONG NodeID; /**< Node ID of the Associated Device */
308  BOOL PreferredNC; /**< Whether this Node is a Preferred NC. */
309  CHAR HighestVersion[64]; /**< Highest MoCA Protocol Version that this Node supports */
310  ULONG PHYTxRate; /**< Tx PHY Rate of this Node */
311  ULONG PHYRxRate; /**< Rx PHY Rate of this Node */
312  ULONG TxPowerControlReduction; /**< Tx Power Reduced by this Node */
313  INT RxPowerLevel; /**< Rx Power Level read by this Node */
314  ULONG TxBcastRate; /**< Tx Broadcast PHY Rate */
315  INT RxBcastPowerLevel; /**< Rx Broadcast Power Level read by this Node */
316  ULONG TxPackets; /**< Number of Transmitted Packets from this Node */
317  ULONG RxPackets; /**< Number of Recieved Packets by this Node */
318  ULONG RxErroredAndMissedPackets; /**< Number of (Rx) Error or Missed Packets by this Node */
319  BOOL QAM256Capable; /**< Flag if this Node is capable of QAM-256 */
320  BOOL PacketAggregationCapability; /**< Flag if this Node is capable of Packet Aggregation */
321  ULONG RxSNR; /**< Receive Signal to Noise Ration */
322  BOOL Active; /**< Flag if this Node is Active */
323  ULONG RxBcastRate; /**< Recevie Broadcast PHY Rate */
324  ULONG NumberOfClients; /**< Number of Clients connected to this Node */
326 
327 #ifndef MOCA_VAR
328 typedef struct {
329  /**< This data structure represents teh MoCA mesh PHY rate table.
330  This table contains the unicast transmit PHY rate between all
331  pair of nodes in the MoCA Network.*/
332 
333  ULONG RxNodeID; /**< The node ID of the receive MoCA node is used as one of the
334  index to order the mesh PHY rate table. */
335 
336  ULONG TxNodeID; /**< The node ID of the transmit MoCA node is used as one of the
337  index to order the mesh PHY rate table. */
338 
339  ULONG TxRate; /**< Indicate the transmit PHY rate in Mbps from the MoCA node
340  identified by 'mocaMeshTxNodeIndex' to the MoCA node identified by 'mocaMeshRxNodeIndex'. */
341 
342  ULONG TxRateNper; /**< Only for MoCA 2.x */
343  ULONG TxRateVlper; /**< Only for MoCA 2.x */
344 
346 #endif
347 
348 typedef struct {
349  /**< This Data Structure respresents the MoCA interface flow statistics
350  table. This table provides statistics of ingress PQoS flow in the
351  MoCA interface. */
352 
353  ULONG FlowID; /**< Indicate the flow ID of a PQoS flow. */
354  ULONG IngressNodeID; /**< Indicate the flow ID of a Ingress PQoS flow. */
355  ULONG EgressNodeID; /**< Indicate the flow ID of a Egress PQoS flow. */
356  ULONG FlowTimeLeft; /**< Indicate the LEASE_TIME_LEFT of the PQoS flow identified by
357  'mocaIfFlowID' in which this MoCA interface is an ingress node for this PQoS flow. */
358  char DestinationMACAddress[18]; /**< Indicate the Destination Address (DA) of Ethernet packets of
359  the PQoS Flow for which this node is the ingress node */
360  ULONG PacketSize; /**< Indicate the number of MoCA aggregation MoCA frames. */
361  ULONG PeakDataRate; /**< Indicate the T_PEAK_DATA_RATE of the PQoS flow identified by
362  'mocaIfFlowID' in which this MoCA interface is an ingress node for the PQoS flow. */
363  ULONG BurstSize; /**< Indicate the T_BURST_SIZE of the PQoS flow identified by
364  'mocaIfFlowID' in which this MoCA interface is an ingress node for this PQoS flow. */
365  ULONG FlowTag; /**< Indicate the FLOW_TAG of the PQoS flow identified by 'mocaIfFlowID' in which this MoCA interface is an ingress node
366  for this PQoS flow. The FLOW_TAG carries application specific content of this PQoS flow. */
367  ULONG LeaseTime; /**< Indicate the T_LEASE_TIME of the PQoS flow identified by
368  'mocaIfFlowID' in which this MoCA interface is an ingress node for this PQoS flow. */
370 
371 typedef INT ( * moca_associatedDevice_callback)(ULONG ifIndex, moca_associated_device_t *moca_dev); //This call back will be invoked when new MoCA client is Actived or Inactived.moca_associated_device_t.Active is used to indicate activation/inactivation
372 
373 typedef struct moca_assoc_pnc_info {
374  ULONG mocaNodeIndex; /**< The index of this node */
375  BOOL mocaNodePreferredNC; /**< Whether this Node is a Preferred NC. */
376  ULONG mocaNodeMocaversion; /**< The MoCA version of this node */
378 
379 
380 typedef struct{
381  INT TxNode; /**< The NODE ID of Transmit MOCA NODE. */
382  INT RxNode; /**< The Node ID of Receive MOCA Node. */
383  INT Channel; /**< The Primary channel or Secondary channel used to calculate the NPER and VLPER */
384  UCHAR Mod[512]; /**< Subcarrier MODULATION used to calcuate the NPER and VLPER between two nodes */
385  UCHAR Nper[512]; /**< Each NPER of between two nodes on Corresponding Channel */
386  UCHAR Vlper[512]; /**< Each Vlper of between two nodes on Corresponding Channel */
388 
389 
390 typedef struct {
391  UINT NodeID; /**< The NodeID where we want to start the ACA testing */
392  PROBE_TYPE Type; /**< The Probe Type could be Enum EVM=1 or Quite=0 */
393  UINT Channel; /**< The Channel on which ACA test should start */
394  UINT ReportNodes;/**< Specifies the MoCA Nodes that are requested to be part of the channel assessment: Setting bits
395 corresponding to Node IDs of these MoCA Nodes to 1 (LSB corresponds to Node ID 0x0).
396  For example:
397  0000 0000 0000 0101 can be represented as 0x0005, Node 0 and Node 2. */
398  BOOL ACAStart; /**< The ACAStart will indiacte to start the ACA process or not. 0 for no action , 1 for config and
399 start
400  the process */
402 
403 typedef struct{
404  moca_aca_cfg_t acaCfg; /**< the current configuration on ACA process started */
405  INT stat;/**< SUCCESS=0, Fail-BADCHANNEL=1,Fail-NoEVMPROBE=2, Fail=3,In-Progress=4 */
406  INT RxPower; /**< Total RX Power in DBM */
407  INT ACAPowProfile[512]; /**< Power Profile Representation for each channel*/
408  BOOL ACATrapCompleted; /**< mocaIfAcaStatusTrapCompleted ReadOnly parameter,
409  it will be TRUE when PowerPorfile is ready */
411 /** @} */ //END OF GROUP MOCA_HAL_TYPES
412 
413 void moca_associatedDevice_callback_register(moca_associatedDevice_callback callback_proc); //Callback registration function.
414 
415 /**
416  * @addtogroup MOCA_HAL_APIS
417  * @{
418  */
419 /**********************************************************************************
420  *
421  * MoCA Subsystem level function prototypes
422  *
423 **********************************************************************************/
424 /* moca_GetIfConfig() function */
425 /**
426 * @description Gets the MoCA Configuration Parameters that were previously set.
427 * @param ifIndex - Index of the MoCA Interface.
428 * @param pmoca_config - Configuration Parameters
429 * \n\n Instance Number when Multiple MoCA interfaces exist.
430 * \n 0 - In the case of only one interface.
431 * \n Get the Alias Name for the interface
432 * \n Flag if the interface is Enabled.
433 * \n Flag if the Local Node's preference to be Network Coordinator
434 * \n Flag if Privacy is Enabled
435 * \n Current Frequency Mask (bitmask)
436 * \n Privacy password (Valid if Privacy is Enabled)
437 * \n Maximum Tx Power Limit
438 * \n AutoPowerControlPhyRate: PowerCtrlPhyTarget
439 * \n Used as a reference to achieve the PHY rate by adjusting power.
440 * \n Tx Power Limit for transmitting beacons
441 * \n Maximum Ingress/Egress Bandwidth Thresholds
442 * \n Reset Condition of the MoCA Node
443 * \n Flag if the Node is configured to operate in mixed mode (both 1.0 & 1.1 versions).
444 * \n Flag if the Node is Scanning
445 * \n Flag if the Auto Power Control is Enabled
446 * \n Node Taboo Mask (indicates what frequencies Node should avoid)
447 * \n Channel Scan Mask (indicated what frequencies Node should scan for beacons)
448 * 
449 * @return The status of the operation.
450 * @retval STATUS_SUCCESS if successful.
451 * @retval STATUS_FAILURE if any error is detected 
452 * 
453 * @execution Synchronous.
454 * @sideeffect None.
455 *
456 * @note This function must not suspend and must not invoke any blocking system 
457 * calls. It should probably just send a message to a driver event handler task. 
458 *
459 */
460 INT moca_GetIfConfig(ULONG ifIndex, moca_cfg_t *pmoca_config);
461 
462 /* moca_SetIfConfig() function */
463 /**
464 * @description Sets the MoCA Configuration Parameters.
465 * @param ifIndex - Index of the MoCA Interface.
466 * @param pmoca_config - Configuration Parameters
467 * \n\n Instance Number when Multiple MoCA interfaces exist.
468 * \n 0 - In the case of only one interface.
469 * \n Set the Alias Name for the interface
470 * \n Enable/Disable the interface.
471 * \n Enable/Disable the Node's preference to be Network Coordinator
472 * \n Enable/Disable Privacy
473 * \n Set of Frequencies that can be used for forming network (bitmask)
474 * \n Privacy password (Valid if Privacy is Enabled)
475 * \n Maximum Tx Power Limit
476 * \n AutoPowerControlPhyRate: PowerCtrlPhyTarget
477 * \n Used as a reference to achieve the PHY rate by adjusting power.
478 * \n Tx Power Limit for transmitting beacons
479 * \n Maximum Ingress/Egress Bandwidth Thresholds
480 * \n Reset MoCA Node
481 * \n Enable/Disable the Node to operate in mixed mode (both 1.0 & 1.1 versions).
482 * \n Enable/Disable the Node to operate in single frequency mode or scanning mode.
483 * \n Enable/Disable Auto Power Control.
484 * \n Set of Frequencis to Avoid (bitmask)
485 * \n Set of Frequencies to Scan for Beacons (bitmask)
486 * 
487 * @return The status of the operation.
488 * @retval STATUS_SUCCESS if successful.
489 * @retval STATUS_FAILURE if any error is detected 
490 * 
491 * @execution Synchronous.
492 * @sideeffect None.
493 *
494 * @note This function must not suspend and must not invoke any blocking system 
495 * calls. It should probably just send a message to a driver event handler task. 
496 *
497 */
498 INT moca_SetIfConfig(ULONG ifIndex, moca_cfg_t *pmoca_config);
499 
500 /* moca_IfGetDynamicInfo() function */
501 /**
502 * @description Gets the Dynamic Status information on the interface & its
503 * associated network.
504 * @param ifIndex - Index of the MoCA Interface.
505 * @param pmoca_dynamic_info_t -
506 * Dynamic Information on the interface and its associated network.
507 * The Following information is expected.
508 * \n Status of the Local Interface Inferface (Up/Down/ etc.)
509 * \n Last Link Status Change (Up/Down/ etc.)
510 * \n Maximum Ingress/Egress Bandwidth
511 * \n Current Version of the MoCA Protocol
512 * \n Node ID of the Network Coordinator
513 * \n Local Interface Node ID
514 * \n Node ID of the Backup Network Coordinator
515 * \n If Privacy is enabled on the network
516 * \n Current Frequency Mask
517 * \n Current Operating Frequency
518 * \n Last Operating Frequency
519 * \n Tx Broadcast Rate
520 * \n Flag if MaxIngress/MaxEgress Bandwidth Threshold Reached
521 * \n Number of Client Devices Connected
522 * \n Network Coordinator MAC Address
523 * 
524 * @return The status of the operation.
525 * @retval STATUS_SUCCESS if successful.
526 * @retval STATUS_FAILURE if any error is detected 
527 * 
528 * @execution Synchronous.
529 * @sideeffect None.
530 *
531 * @note This function must not suspend and must not invoke any blocking system 
532 * calls. It should probably just send a message to a driver event handler task. 
533 *
534 */
535 INT moca_IfGetDynamicInfo(ULONG ifIndex, moca_dynamic_info_t *pmoca_dynamic_info);
536 
537 /* moca_IfGetStaticInfo() function */
538 /**
539 * @description Gets the Static Information from the Local Node
540 * @param ifIndex - Index of the MoCA Interface.
541 * @param pmoca_static_info - Static Information of the interface
542 * \n Interface Name (for example: moca0)
543 * \n MAC Address of the Interface
544 * \n Firmware Version of the MoCA Firmware
545 * \n Maximum PHY rate in Mbps
546 * \n Highest Version of MoCA Protocol that the Node Supports
547 * \n Frequencies that Node can Operate on (Bit Mask)
548 * \n Frequenies to Avoid on Network (Bit Mask)
549 * \n Beacon Backoff in dB
550 * \n Flag if Node is Capable of QAM-256.
551 * \n Flag that indicates if Node is capable of Packet Aggregation.
552 * 
553 * @return The status of the operation.
554 * @retval STATUS_SUCCESS if successful.
555 * @retval STATUS_FAILURE if any error is detected 
556 * 
557 * @execution Synchronous.
558 * @sideeffect None.
559 *
560 * @note This function must not suspend and must not invoke any blocking system 
561 * calls. It should probably just send a message to a driver event handler task. 
562 *
563 */
564 INT moca_IfGetStaticInfo(ULONG ifIndex, moca_static_info_t *pmoca_static_info);
565 
566 /* moca_IfGetStats() function */
567 /**
568 * @description Gets the Statistics on the Interface at Network Layer
569 * @param ifIndex - Index of the MoCA Interface.
570 * @param pmoca_stats - Statistics on the interface (Network layer)
571 * \n\n Number of Bytes Sent & Received
572 * \n Number of Packets Sent & Received
573 * \n Number of Errors in Sent & Received Packets
574 * \n Number of Unicast Packets Sent & Received
575 * \n Number of Packets Discard (Tx & Rx side)
576 * \n Number of Multicast Packets Sent & Received
577 * \n Number of Broadcast Packets Sent & Received
578 * \n Number of Unknown Protocol Packets Received
579 * \n Aggregate Averages of Packet Counts (Tx & Rx)
580 * 
581 * @return The status of the operation.
582 * @retval STATUS_SUCCESS if successful.
583 * @retval STATUS_FAILURE if any error is detected 
584 * 
585 * @execution Synchronous.
586 * @sideeffect None.
587 *
588 * @note This function must not suspend and must not invoke any blocking system 
589 * calls. It should probably just send a message to a driver event handler task. 
590 *
591 */
592 INT moca_IfGetStats(ULONG ifIndex, moca_stats_t *pmoca_stats);
593 
594 /* moca_GetNumAssociatedDevices() function */
595 /**
596 * @description Gets the Number of Nodes on the MoCA network.
597 * @param ifIndex - Index of the MoCA Interface.
598 * @param pulCount - Number of Nodes on the network.
599 * 
600 * @return The status of the operation.
601 * @retval STATUS_SUCCESS if successful.
602 * @retval STATUS_FAILURE if any error is detected 
603 * 
604 * @execution Synchronous.
605 * @sideeffect None.
606 *
607 * @note This function must not suspend and must not invoke any blocking system 
608 * calls. It should probably just send a message to a driver event handler task. 
609 *
610 */
611 INT moca_GetNumAssociatedDevices(ULONG ifIndex, ULONG *pulCount);
612 
613 /* moca_IfGetExtCounter() function */
614 /**
615 * @description Gets the Statistics on the Interface at MoCA MAC Layer.
616 * @param ifIndex - Index of the MoCA Interface.
617 * @param pmoca_mac_counters - MoCA MAC Layer Statiscs
618 * \n\n Number of MAP packets
619 * \n Number of Reservation Request Packets
620 * \n Number of Link Control Packets
621 * \n Number of Admission Request Packets
622 * \n Number of Probes
623 * \n Number of Beacons
624 * ** Please Note that this API is valid only if the Node is
625 * Network Coordinator.
626 * 
627 * @return The status of the operation.
628 * @retval STATUS_SUCCESS if successful.
629 * @retval STATUS_FAILURE if any error is detected 
630 * 
631 * @execution Synchronous.
632 * @sideeffect None.
633 *
634 * @note This function must not suspend and must not invoke any blocking system 
635 * calls. It should probably just send a message to a driver event handler task. 
636 *
637 */
638 INT moca_IfGetExtCounter(ULONG ifIndex, moca_mac_counters_t *pmoca_mac_counters);
639 
640 /* moca_IfGetExtAggrCounter() function */
641 /**
642 * @description Gets the Aggregate DATA units Transferred (Tx & Rx)
643 * @param ifIndex - Index of the MoCA Interface.
644 * @param pmoca_aggregate_counts - Aggregate Tx/Rx Counters
645 * \n\n Aggregate Tx Payload Data Units (Not MoCA Control Packets).
646 * \n Aggregate Rx Payload Data Units (Not MoCA Control Packets).
647 *
648 * @return The status of the operation.
649 * @retval STATUS_SUCCESS if successful.
650 * @retval STATUS_FAILURE if any error is detected 
651 * 
652 * @execution Synchronous.
653 * @sideeffect None.
654 *
655 * @note This function must not suspend and must not invoke any blocking system 
656 * calls. It should probably just send a message to a driver event handler task. 
657 *
658 */
659 INT moca_IfGetExtAggrCounter(ULONG ifIndex, moca_aggregate_counters_t *pmoca_aggregate_counts);
660 
661 /* moca_GetMocaCPEs() function */
662 /**
663 * @description Get MAC Address of all the Nodes Connected on MoCA Network.
664 * @param ifIndex - Index of the MoCA Interface.
665 * @param pmoca_cpes - List of MAC Addresses of MoCA Nodes.
666 * @param pnum_cpes - Number of MoCA Nodes in the List.
667 *
668 * @return The status of the operation.
669 * @retval STATUS_SUCCESS if successful.
670 * @retval STATUS_FAILURE if any error is detected 
671 * 
672 * @execution Synchronous.
673 * @sideeffect None.
674 *
675 * @note This function must not suspend and must not invoke any blocking system 
676 * calls. It should probably just send a message to a driver event handler task. 
677 *
678 */
679 INT moca_GetMocaCPEs(ULONG ifIndex, moca_cpe_t *cpes, INT *pnum_cpes);
680 
681 /* moca_GetAssociatedDevices() function */
682 /**
683 * @description Get Information on all the associated Devices on the network.
684 * @param ifIndex - Index of the MoCA Interface.
685 * @param ppdevice_array - Array of set of information for each Node on the network.
686 * \n\n MAC Address of the Associated Device
687 * \n Node ID of the Associated Device
688 * \n Whether this Node is a Preferred NC.
689 * \n Highest MoCA Protocol Version that this Node supports
690 * \n Tx PHY Rate of this Node
691 * \n Rx PHY Rate of this Node
692 * \n Tx Power Reduced by this Node
693 * \n Rx Power Level read by this Node
694 * \n Tx Broadcast PHY Rate
695 * \n Rx Broadcast Power Level read by this Node
696 * \n Number of Transmitted Packets from this Node
697 * \n Number of Recieved Packets by this Node
698 * \n Number of (Rx) Error or Missed Packets by this Node
699 * \n Flag if this Node is capable of QAM-256
700 * \n Flag if this Node is capable of Packet Aggregation
701 * \n Receive Signal to Noise Ration
702 * \n Flag if this Node is Active
703 * \n Recevie Broadcast PHY Rate
704 * \n Number of Clients connected to this Node
705 *
706 * @return The status of the operation.
707 * @retval STATUS_SUCCESS if successful.
708 * @retval STATUS_FAILURE if any error is detected 
709 * 
710 * @execution Synchronous.
711 * @sideeffect None.
712 *
713 * @note This function must not suspend and must not invoke any blocking system 
714 * calls. It should probably just send a message to a driver event handler task. 
715 *
716 */
718 
719 
720 /* moca_FreqMaskToValue() function */
721 /**
722 * @description A utility function that converts Mask Value to Frequency Number.
723 * @param mask - Bit Mask of the Frequency.
724 *
725 * @return Frequency Value for the given Mask.
726 * 
727 * @execution Synchronous.
728 * @sideeffect None.
729 *
730 * @note This function must not suspend and must not invoke any blocking system 
731 * calls. It should probably just send a message to a driver event handler task. 
732 *
733 */
734 //INT moca_FreqMaskToValue(UINT mask);
736 
737 /* moca_HardwareEquipped() function */
738 /**
739 * @description Functio that returns whether the MoCA Hardware is Equipped or Not.
740 * @param None.
741 *
742 * @return Flag Indicating whether the Hardware is Equipped or not.
743 * @retval TRUE if Hardware is present.
744 * @retval FALSE if Hardware is not present.
745 * 
746 * @execution Synchronous.
747 * @sideeffect None.
748 *
749 * @note This function must not suspend and must not invoke any blocking system 
750 * calls. It should probably just send a message to a driver event handler task. 
751 *
752 */
754 
755 /* moca_IfGetMeshTable() function */
756 /**
757 * @description Gets the MoCA Mesh Table.
758 * @param ifIndex - Index of the MoCA Interface.
759 * @param moca_mesh_table_t - pointer to a mesh table entry
760 * @param pulCount - number of entries in the table
761 * @return The status of the operation.
762 * @retval STATUS_SUCCESS if successful.
763 * @retval STATUS_FAILURE if any error is detected 
764 * 
765 * @execution Synchronous.
766 * @sideeffect None.
767 *
768 * @note This function must not suspend and must not invoke any blocking system 
769 * calls. It should probably just send a message to a driver event handler task. 
770 *
771 */
772 #ifndef MOCA_VAR
773 INT moca_GetFullMeshRates(ULONG ifIndex, moca_mesh_table_t *pDeviceArray, ULONG *pulCount);
774 #endif
775 
776 /* moca_GetFlowStatistics() function */
777 /**
778 * @description Gets the MoCA Flow Table.
779 * @param ifIndex - Index of the MoCA Interface.
780 * @param moca_flow_table_t - pointer to a flow table entry
781 * @param pulCount - number of entries in the table
782 * @return The status of the operation.
783 * @retval STATUS_SUCCESS if successful.
784 * @retval STATUS_FAILURE if any error is detected 
785 * 
786 * @execution Synchronous.
787 * @sideeffect None.
788 *
789 * @note This function must not suspend and must not invoke any blocking system 
790 * calls. It should probably just send a message to a driver event handler task. 
791 *
792 */
793 INT moca_GetFlowStatistics(ULONG ifIndex, moca_flow_table_t *pDeviceArray, ULONG *pulCount);
794 
795 /* moca_GetResetCount() function */
796 /**
797 * @description Gets the MoCA reset count.
798 * @param resetcnt - number of reset
799 * @return The status of the operation.
800 * @retval STATUS_SUCCESS if successful.
801 * @retval STATUS_FAILURE if any error is detected 
802 * 
803 * @execution Synchronous.
804 * @sideeffect None.
805 *
806 * @note This function must not suspend and must not invoke any blocking system 
807 * calls. It should probably just send a message to a driver event handler task. 
808 *
809 */
810 
811 INT moca_GetResetCount(ULONG *resetcnt);
812 
813 /****************************************************************/
814 /* moca_SetIfAcaConfig() function */
815 /**
816 * @description Sets the MoCA Configuration Parameters to start the ACA process.
817 * @param ifIndex - Index of the MoCA Interface.
818 * @param moca_aca_cfg_t - Configuration Parameters required for MOCA ACA Process
819 * \n UINT NodeID; * The NodeID where we want to start the ACA testing *
820 * \n PROBE_TYPE Type; * The Probe Type could be Enum EVM=1 or Quite=0 *
821 * \n UINT Channel; * The Channel on which ACA test should start *
822 * \n UINT ReportNodes;* Specifies the MoCA Nodes that are requested to be part of the channel assessment: Setting
823 * bits corresponding to Node IDs of these MoCA Nodes to 1 (LSB corresponds to Node ID 0x0).
824  For example:
825  0000 0000 0000 0101 can be represented as 0x0005, Node 0 and Node 2. *
826 *
827 * \n BOOL ACAStart; * The ACAStart for normal configuration should be 0, if ACAStart is 1 then
828  The Hal should start the process. *
829 * @return The status of the operation.
830 * @retval STATUS_SUCCESS if successful.
831 * @retval STATUS_FAILURE if any error is detected for unknown reason
832 * @retval STATUS_INPROGRESS if already the ACA process running.
833 *
834 * @execution Synchronous.
835 * @sideeffect None.
836 *
837 * @note This function must not suspend and must not invoke any blocking system
838 * calls. It should probably just send a message to a driver event handler task.
839 * ACAStart bit is set then ACA Process should get start. If user request ACA Start while ACA Process
840 * in progress, then HAL should send error saying ACA Is in progress. It should not start new one.
841 *
842 */
843 int moca_setIfAcaConfig(int interfaceIndex, moca_aca_cfg_t acaCfg);
844 /****************************************************************/
845 /* moca_GetIfAcaConfig() function */
846 /**
847 * @description Gets the MoCA Configuration Parameters set before starting the ACA process.
848 * @param ifIndex - Index of the MoCA Interface.
849 * @param moca_aca_cfg_t - Applied Configuration Parameters for MOCA ACA Process
850 * \n UINT NodeID; * The NodeID *
851 * \n PROBE_TYPE Type; * The Probe Type could be Enum EVM=1 or Quite=0 *
852 * \n UINT Channel; * The Channel on which ACA test should start *
853 * \n UINT ReportNodes;* Specifies the MoCA Nodes that are requested to be part of the channel assessment: Setting
854 * bits corresponding to Node IDs of these MoCA Nodes to 1 (LSB corresponds to Node ID 0x0).
855  For example:
856  0000 0000 0000 0101 can be represented as 0x0005, Node 0 and Node 2. *
857 * @return The status of the operation.
858 * @retval STATUS_SUCCESS if successful.
859 * @retval STATUS_FAILURE if any error is detected
860 *
861 * @execution Synchronous.
862 * @sideeffect None.
863 *
864 * @note This function must not suspend and must not invoke any blocking system
865 * calls. It should probably just send a message to a driver event handler task.
866 *
867 */
868 int moca_getIfAcaConfig(int interfaceIndex, moca_aca_cfg_t *acaCfg);
869 
870 /****************************************************************/
871 /* moca_cancelIfAca() function */
872 /**
873 * @description this function uses to cancel the ACA process which already running.
874 * @param ifIndex - Index of the MoCA Interface on which ACA process started.
875 * @return The status of the operation.
876 * @retval STATUS_SUCCESS if successful.
877 * @retval STATUS_FAILURE if any error is detected
878 *
879 * @execution ASynchronous.
880 * @sideeffect None.
881 *
882 * @note This function must not suspend and must not invoke any blocking system
883 * calls. It should probably just send a message to a driver event handler task.
884 */
885 int moca_cancelIfAca(int interfaceIndex);
886 
887 
888 /****************************************************************/
889 /* moca_getIfAcaStatus() function */
890 /**
891 * @description Gets the MoCA ACA status after the starting the ACA process.
892 * @param ifIndex - Index of the MoCA Interface.
893 * @param moca_aca_stat_t - Applied Configuration Parameters for MOCA ACA Process and
894 * ACA Process stats.
895 * moca_aca_cfg_t - Applied Configuration Parameters for MOCA ACA Process
896 * \n UINT NodeID; * The NodeID *
897 * \n PROBE_TYPE Type; * The Probe Type could be Enum EVM=1 or Quite=0 *
898 * \n UINT Channel; * The Channel on which ACA test should start *
899 * \n UINT ReportNodes; * Specifies the MoCA Nodes that are requested to be part of the channel assessment: Setting
900 * bits corresponding to Node IDs of these MoCA Nodes to 1 (LSB corresponds to Node ID 0x0).
901  For example:
902  0000 0000 0000 0101 can be represented as 0x0005, Node 0 and Node 2. *
903 * \n STATUS stat; * SUCCESS=0, Fail-BADCHANNEL=1,Fail-NoEVMPROBE=2, Fail=3,In-Progress=4 *
904 * \n INT RxPower; * Total RX Power in DBM *
905 * \n INT ACAPowProfile[512]; * Power Profile Representation for each channel in twos complement way*
906 * \n BOOL ACATrapCompleted; * True for When Powerprofile ready *
907 * @return The status of the operation.
908 * @retval STATUS_SUCCESS if successful.
909 * @retval STATUS_FAILURE if any error is detected
910 *
911 * @execution Synchronous.
912 * @sideeffect None.
913 *
914 * @note This function must not suspend and must not invoke any blocking system
915 * calls. It should probably just send a message to a driver event handler task.
916 *
917 */
918 int moca_getIfAcaStatus(int interfaceIndex,moca_aca_stat_t *pacaStat);
919 
920 /****************************************************************/
921 /* moca_getIfScmod() function */
922 /**
923 * @description Gets the MoCA SCMODE status after the starting the ACA process.
924 * @param ifIndex - Index of the MoCA Interface.
925 * @param moca_scmod_stat_t - Status of test between Transmit and recieve node.
926 * \n INT TxNode; * The NODE ID of Transmit MOCA NODE. *
927 * \n INT RxNode; * The Node ID of Receive MOCA Node. *
928 * \n INT Channel; The Primary channel or Secondary channel used to calculate the NPER and VLPER *
929 * \n UCHAR Mod[512]; * Subcarrier MODULATION used to calcuate the NPER and VLPER between two nodes *
930 * \n UCHAR Nper[512]; * Each NPER of between two nodes on Corresponding Channel *
931 * \n UCHAR Vlper[512]; * Each Vlper of between two nodes on Corresponding Channel *
932 * @return The status of the operation.
933 * @retval STATUS_SUCCESS if successful.
934 * @retval STATUS_FAILURE if any error is detected
935 *
936 * @execution Synchronous.
937 * @sideeffect None.
938 * @note This function must not suspend and must not invoke any blocking system
939 * calls. It should probably just send a message to a driver event handler task.
940 *
941 */
942 
943 int moca_getIfScmod(int interfaceIndex,int *pnumOfEntries,moca_scmod_stat_t **ppscmodStat);
944 
945 
946 /** @} */ //END OF GROUP MOCA_HAL_APIS
947 #endif
948 
moca_associated_device_t::QAM256Capable
unsigned char QAM256Capable
Definition: moca_hal.h:319
moca_aca_stat_t::acaCfg
moca_aca_cfg_t acaCfg
Definition: moca_hal.h:404
INT
#define INT
Definition: moca_hal.h:88
moca_aca_stat_t::ACATrapCompleted
unsigned char ACATrapCompleted
Definition: moca_hal.h:408
moca_aca_stat_t
Definition: moca_hal.h:403
moca_getIfAcaConfig
int moca_getIfAcaConfig(int interfaceIndex, moca_aca_cfg_t *acaCfg)
moca_aggregate_counters_t::Tx
unsigned long Tx
Definition: moca_hal.h:291
moca_stats_t::DiscardPacketsSent
unsigned long DiscardPacketsSent
Definition: moca_hal.h:265
IF_STATUS_Dormant
@ IF_STATUS_Dormant
Definition: moca_hal.h:157
moca_FreqMaskToValue
int moca_FreqMaskToValue(unsigned char *mask)
moca_IfGetStats
int moca_IfGetStats(unsigned long ifIndex, moca_stats_t *pmoca_stats)
moca_stats_t::ExtAggrAverageTx
unsigned long ExtAggrAverageTx
Definition: moca_hal.h:276
moca_GetFullMeshRates
int moca_GetFullMeshRates(unsigned long ifIndex, moca_mesh_table_t *pDeviceArray, unsigned long *pulCount)
moca_mac_counters_t::Async
unsigned long Async
Definition: moca_hal.h:287
moca_IfGetStaticInfo
int moca_IfGetStaticInfo(unsigned long ifIndex, moca_static_info_t *pmoca_static_info)
IF_STATUS_LowerLayerDown
@ IF_STATUS_LowerLayerDown
Definition: moca_hal.h:159
moca_stats_t::PacketsSent
unsigned long PacketsSent
Definition: moca_hal.h:256
moca_associated_device_t
Definition: moca_hal.h:299
IF_STATUS_Up
@ IF_STATUS_Up
Definition: moca_hal.h:154
moca_dynamic_info_t::LinkUpTime
unsigned long LinkUpTime
Definition: moca_hal.h:246
moca_scmod_stat_t
Definition: moca_hal.h:380
moca_GetIfConfig
int moca_GetIfConfig(unsigned long ifIndex, moca_cfg_t *pmoca_config)
moca_stats_t::MulticastPacketsReceived
unsigned long MulticastPacketsReceived
Definition: moca_hal.h:269
moca_dynamic_info_t::BackupNC
unsigned long BackupNC
Definition: moca_hal.h:233
moca_aca_cfg_t::Type
PROBE_TYPE Type
Definition: moca_hal.h:392
moca_stats_t::BroadcastPacketsReceived
unsigned long BroadcastPacketsReceived
Definition: moca_hal.h:272
moca_dynamic_info_t::MaxIngressBWThresholdReached
unsigned char MaxIngressBWThresholdReached
Definition: moca_hal.h:241
moca_stats_t::BytesReceived
unsigned long BytesReceived
Definition: moca_hal.h:254
moca_stats_t::BytesSent
unsigned long BytesSent
Definition: moca_hal.h:253
moca_aca_stat_t::RxPower
int RxPower
Definition: moca_hal.h:406
moca_associated_device_t::TxPackets
unsigned long TxPackets
Definition: moca_hal.h:316
moca_GetNumAssociatedDevices
int moca_GetNumAssociatedDevices(unsigned long ifIndex, unsigned long *pulCount)
moca_mac_counters_t::Lc
unsigned long Lc
Definition: moca_hal.h:284
moca_aca_cfg_t
Definition: moca_hal.h:390
moca_associated_device_t::PHYTxRate
unsigned long PHYTxRate
Definition: moca_hal.h:310
moca_associated_device_t::TxBcastRate
unsigned long TxBcastRate
Definition: moca_hal.h:314
moca_aggregate_counters_t::Rx
unsigned long Rx
Definition: moca_hal.h:292
moca_dynamic_info_t::MaxEgressBW
unsigned long MaxEgressBW
Definition: moca_hal.h:225
moca_associated_device_t::RxErroredAndMissedPackets
unsigned long RxErroredAndMissedPackets
Definition: moca_hal.h:318
moca_flow_table_t::EgressNodeID
unsigned long EgressNodeID
Definition: moca_hal.h:355
moca_if_status_t
moca_if_status_t
Definition: moca_hal.h:150
moca_mesh_table_t::TxRateNper
unsigned long TxRateNper
Definition: moca_hal.h:342
moca_associated_device_t::TxPowerControlReduction
unsigned long TxPowerControlReduction
Definition: moca_hal.h:312
moca_static_info_t::MaxBitRate
unsigned long MaxBitRate
Definition: moca_hal.h:210
IF_STATUS_NotPresent
@ IF_STATUS_NotPresent
Definition: moca_hal.h:158
moca_associated_device_t::RxPackets
unsigned long RxPackets
Definition: moca_hal.h:317
moca_cfg_t
Definition: moca_hal.h:181
moca_scmod_stat_t::Channel
int Channel
Definition: moca_hal.h:383
moca_GetMocaCPEs
int moca_GetMocaCPEs(unsigned long ifIndex, moca_cpe_t *cpes, int *pnum_cpes)
PROBE_EVM
@ PROBE_EVM
Definition: moca_hal.h:165
moca_aca_cfg_t::Channel
unsigned int Channel
Definition: moca_hal.h:393
moca_stats_t
Definition: moca_hal.h:252
moca_stats_t::PacketsReceived
unsigned long PacketsReceived
Definition: moca_hal.h:257
moca_scmod_stat_t::TxNode
int TxNode
Definition: moca_hal.h:381
moca_assoc_pnc_info_t
struct moca_assoc_pnc_info moca_assoc_pnc_info_t
moca_stats_t::ExtAggrAverageRx
unsigned long ExtAggrAverageRx
Definition: moca_hal.h:277
moca_SetIfConfig
int moca_SetIfConfig(unsigned long ifIndex, moca_cfg_t *pmoca_config)
moca_cpe_t
Definition: moca_hal.h:295
moca_dynamic_info_t::CurrentOperFreq
unsigned long CurrentOperFreq
Definition: moca_hal.h:238
moca_IfGetExtCounter
int moca_IfGetExtCounter(unsigned long ifIndex, moca_mac_counters_t *pmoca_mac_counters)
moca_associated_device_t::NodeID
unsigned long NodeID
Definition: moca_hal.h:307
moca_dynamic_info_t::LastChange
unsigned long LastChange
Definition: moca_hal.h:223
moca_GetFlowStatistics
int moca_GetFlowStatistics(unsigned long ifIndex, moca_flow_table_t *pDeviceArray, unsigned long *pulCount)
moca_stats_t::ErrorsReceived
unsigned long ErrorsReceived
Definition: moca_hal.h:260
moca_GetAssociatedDevices
int moca_GetAssociatedDevices(unsigned long ifIndex, moca_associated_device_t **ppdevice_array)
moca_flow_table_t::IngressNodeID
unsigned long IngressNodeID
Definition: moca_hal.h:354
moca_mesh_table_t::TxRateVlper
unsigned long TxRateVlper
Definition: moca_hal.h:343
IF_STATUS_Unknown
@ IF_STATUS_Unknown
Definition: moca_hal.h:156
moca_associated_device_t::RxPowerLevel
int RxPowerLevel
Definition: moca_hal.h:313
moca_dynamic_info_t::NodeID
unsigned long NodeID
Definition: moca_hal.h:230
moca_associated_device_t::PacketAggregationCapability
unsigned char PacketAggregationCapability
Definition: moca_hal.h:320
moca_stats_t::UnicastPacketsSent
unsigned long UnicastPacketsSent
Definition: moca_hal.h:262
moca_mesh_table_t::TxRate
unsigned long TxRate
Definition: moca_hal.h:339
moca_static_info_t::PacketAggregationCapability
unsigned char PacketAggregationCapability
Definition: moca_hal.h:216
moca_cancelIfAca
int moca_cancelIfAca(int interfaceIndex)
moca_HardwareEquipped
unsigned char moca_HardwareEquipped(void)
ULONG
#define ULONG
Definition: moca_hal.h:72
moca_associatedDevice_callback_register
void moca_associatedDevice_callback_register(moca_associatedDevice_callback callback_proc)
moca_flow_table_t::FlowTag
unsigned long FlowTag
Definition: moca_hal.h:365
moca_getIfAcaStatus
int moca_getIfAcaStatus(int interfaceIndex, moca_aca_stat_t *pacaStat)
moca_assoc_pnc_info::mocaNodeIndex
unsigned long mocaNodeIndex
Definition: moca_hal.h:374
moca_associatedDevice_callback
int(* moca_associatedDevice_callback)(unsigned long ifIndex, moca_associated_device_t *moca_dev)
Definition: moca_hal.h:371
UINT
#define UINT
Definition: moca_hal.h:92
moca_associated_device_t::RxSNR
unsigned long RxSNR
Definition: moca_hal.h:321
moca_mac_counters_t::Probe
unsigned long Probe
Definition: moca_hal.h:286
moca_mac_counters_t::Map
unsigned long Map
Definition: moca_hal.h:282
moca_flow_table_t::BurstSize
unsigned long BurstSize
Definition: moca_hal.h:363
moca_associated_device_t::NumberOfClients
unsigned long NumberOfClients
Definition: moca_hal.h:324
moca_flow_table_t::FlowID
unsigned long FlowID
Definition: moca_hal.h:353
moca_scmod_stat_t::RxNode
int RxNode
Definition: moca_hal.h:382
moca_associated_device_t::RxBcastRate
unsigned long RxBcastRate
Definition: moca_hal.h:323
moca_GetResetCount
int moca_GetResetCount(unsigned long *resetcnt)
moca_aca_stat_t::stat
int stat
Definition: moca_hal.h:405
moca_mac_counters_t
Definition: moca_hal.h:281
moca_dynamic_info_t::Status
moca_if_status_t Status
Definition: moca_hal.h:222
MAC_PADDING
#define MAC_PADDING
Definition: moca_hal.h:139
moca_static_info_t::QAM256Capable
unsigned char QAM256Capable
Definition: moca_hal.h:215
moca_dynamic_info_t
Definition: moca_hal.h:220
moca_dynamic_info_t::LastOperFreq
unsigned long LastOperFreq
Definition: moca_hal.h:239
moca_mac_counters_t::Adm
unsigned long Adm
Definition: moca_hal.h:285
moca_associated_device_t::PreferredNC
unsigned char PreferredNC
Definition: moca_hal.h:308
moca_dynamic_info_t::NetworkCoordinator
unsigned long NetworkCoordinator
Definition: moca_hal.h:227
moca_aca_cfg_t::ReportNodes
unsigned int ReportNodes
Definition: moca_hal.h:394
moca_flow_table_t::PacketSize
unsigned long PacketSize
Definition: moca_hal.h:360
moca_flow_table_t::PeakDataRate
unsigned long PeakDataRate
Definition: moca_hal.h:361
moca_associated_device_t::RxBcastPowerLevel
int RxBcastPowerLevel
Definition: moca_hal.h:315
moca_associated_device_t::PHYRxRate
unsigned long PHYRxRate
Definition: moca_hal.h:311
moca_mesh_table_t
Definition: moca_hal.h:328
CHAR
#define CHAR
Definition: moca_hal.h:80
moca_flow_table_t::LeaseTime
unsigned long LeaseTime
Definition: moca_hal.h:367
IF_STATUS_Down
@ IF_STATUS_Down
Definition: moca_hal.h:155
moca_flow_table_t
Definition: moca_hal.h:348
moca_setIfAcaConfig
int moca_setIfAcaConfig(int interfaceIndex, moca_aca_cfg_t acaCfg)
moca_IfGetDynamicInfo
int moca_IfGetDynamicInfo(unsigned long ifIndex, moca_dynamic_info_t *pmoca_dynamic_info)
moca_assoc_pnc_info
Definition: moca_hal.h:373
moca_dynamic_info_t::TxBcastRate
unsigned long TxBcastRate
Definition: moca_hal.h:240
moca_dynamic_info_t::MaxIngressBW
unsigned long MaxIngressBW
Definition: moca_hal.h:224
moca_stats_t::DiscardPacketsReceived
unsigned long DiscardPacketsReceived
Definition: moca_hal.h:266
PROBE_TYPE
PROBE_TYPE
Definition: moca_hal.h:162
moca_IfGetExtAggrCounter
int moca_IfGetExtAggrCounter(unsigned long ifIndex, moca_aggregate_counters_t *pmoca_aggregate_counts)
moca_stats_t::BroadcastPacketsSent
unsigned long BroadcastPacketsSent
Definition: moca_hal.h:271
moca_stats_t::UnicastPacketsReceived
unsigned long UnicastPacketsReceived
Definition: moca_hal.h:263
moca_aca_cfg_t::ACAStart
unsigned char ACAStart
Definition: moca_hal.h:398
moca_mesh_table_t::TxNodeID
unsigned long TxNodeID
Definition: moca_hal.h:336
moca_mesh_table_t::RxNodeID
unsigned long RxNodeID
Definition: moca_hal.h:333
moca_stats_t::UnknownProtoPacketsReceived
unsigned long UnknownProtoPacketsReceived
Definition: moca_hal.h:274
moca_assoc_pnc_info::mocaNodePreferredNC
unsigned char mocaNodePreferredNC
Definition: moca_hal.h:375
moca_dynamic_info_t::PrivacyEnabled
unsigned char PrivacyEnabled
Definition: moca_hal.h:236
moca_aggregate_counters_t
Definition: moca_hal.h:290
IF_STATUS_Error
@ IF_STATUS_Error
Definition: moca_hal.h:160
moca_dynamic_info_t::NumberOfConnectedClients
unsigned long NumberOfConnectedClients
Definition: moca_hal.h:243
PROBE_QUITE
@ PROBE_QUITE
Definition: moca_hal.h:164
moca_assoc_pnc_info::mocaNodeMocaversion
unsigned long mocaNodeMocaversion
Definition: moca_hal.h:376
moca_stats_t::MulticastPacketsSent
unsigned long MulticastPacketsSent
Definition: moca_hal.h:268
moca_static_info_t::TxBcastPowerReduction
unsigned long TxBcastPowerReduction
Definition: moca_hal.h:214
moca_static_info_t
Definition: moca_hal.h:205
moca_getIfScmod
int moca_getIfScmod(int interfaceIndex, int *pnumOfEntries, moca_scmod_stat_t **ppscmodStat)
moca_dynamic_info_t::MaxEgressBWThresholdReached
unsigned char MaxEgressBWThresholdReached
Definition: moca_hal.h:242
moca_associated_device_t::Active
unsigned char Active
Definition: moca_hal.h:322
moca_aca_cfg_t::NodeID
unsigned int NodeID
Definition: moca_hal.h:391
UCHAR
#define UCHAR
Definition: moca_hal.h:84
moca_mac_counters_t::Rsrv
unsigned long Rsrv
Definition: moca_hal.h:283
BOOL
#define BOOL
Definition: moca_hal.h:76
moca_flow_table_t::FlowTimeLeft
unsigned long FlowTimeLeft
Definition: moca_hal.h:356
moca_stats_t::ErrorsSent
unsigned long ErrorsSent
Definition: moca_hal.h:259