RDK-B
cm_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: cm_hal.h
39 
40  For CCSP Component: CcspCMAgent
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  hardware abstraction layer for Cable Modem
49 
50  ---------------------------------------------------------------
51 
52  environment:
53 
54  This HAL layer is intended to support cable modem drivers
55  through an open API.
56  Changes may be needed to support different hardware enviornments.
57 
58  ---------------------------------------------------------------
59 
60  author:
61 
62  Cisco
63  Comcast
64 
65 **********************************************************************/
66 
67 
68 #ifndef __CM_HAL_H__
69 #define __CM_HAL_H__
70 
71 #include <stdint.h>
72 #include <sys/time.h>
73 
74 /**********************************************************************
75  CONSTANT DEFINITIONS
76 **********************************************************************/
77 #define OFDM_PARAM_STR_MAX_LEN 64
78 
79 #ifdef __cplusplus
80 extern "C"{
81 #endif
82 
83 
84 #ifndef CHAR
85 #define CHAR char
86 #endif
87 
88 #ifndef UCHAR
89 #define UCHAR unsigned char
90 #endif
91 
92 #ifndef BOOLEAN
93 #define BOOLEAN unsigned char
94 #endif
95 
96 #ifndef USHORT
97 #define USHORT unsigned short
98 #endif
99 
100 #ifndef UINT8
101 #define UINT8 unsigned char
102 #endif
103 
104 #ifndef INT
105 #define INT int
106 #endif
107 
108 #ifndef UINT
109 #define UINT unsigned int
110 #endif
111 
112 #ifndef LONG
113 #define LONG long
114 #endif
115 
116 #ifndef ULONG
117 #define ULONG unsigned long
118 #endif
119 
120 #ifndef TRUE
121 #define TRUE 1
122 #endif
123 
124 #ifndef FALSE
125 #define FALSE 0
126 #endif
127 
128 #ifndef ENABLE
129 #define ENABLE 1
130 #endif
131 
132 #ifndef RETURN_OK
133 #define RETURN_OK 0
134 #endif
135 
136 #ifndef RETURN_ERR
137 #define RETURN_ERR -1
138 #endif
139 
140 #ifndef IPV4_ADDRESS_SIZE
141 #define IPV4_ADDRESS_SIZE 4
142 #endif
143 
144 #ifndef ANSC_IPV4_ADDRESS
145 /*
146  * While we're trying really hard to smooth the procedure of switch-over from IPv4 to IPv4, there
147  * are many places where using the IP address as an integer for comparision and calculation is much
148  * easier than array-based operation.
149  */
150 #define ANSC_IPV4_ADDRESS \
151  union \
152  { \
153  unsigned char Dot[IPV4_ADDRESS_SIZE]; \
154  uint32_t Value; \
155  }
156 #endif
157 
158 /**
159 * @defgroup CM_HAL CM HAL
160 *
161 * Cable Modem HAL component provides interface that cable modem software developers can use to interface to RDK-B.
162 *
163 * @defgroup CM_HAL_TYPES CM HAL Data Types
164 * @ingroup CM_HAL
165 *
166 * @defgroup CM_HAL_APIS CM HAL APIs
167 * @ingroup CM_HAL
168 *
169 **/
170 
171 
172 /**
173  * @addtogroup CM_HAL_TYPES
174  * @{
175  */
176 
177 /**********************************************************************
178  STRUCTURE DEFINITIONS
179 **********************************************************************/
180 
181 typedef struct
183  ULONG ChannelID;
184  CHAR Frequency[64];
185  CHAR PowerLevel[64];
186  CHAR SNRLevel[64];
187  CHAR Modulation[64];
188  ULONG Octets;
189  ULONG Correcteds;
190  ULONG Uncorrectables;
191  CHAR LockStatus[64];
192 }
194 
195 typedef struct
198  CHAR Frequency[64];
199  CHAR PowerLevel[64];
200  CHAR ChannelType[64];
201  CHAR SymbolRate[64];
202  CHAR Modulation[64];
203  CHAR LockStatus[64];
204 }
206 
207 typedef struct
209 {
210  CHAR DOCSISVersion[64];
211  CHAR DOCSISDownstreamScanning[64];
212  CHAR DOCSISDownstreamRanging[64];
213  CHAR DOCSISUpstreamScanning[64];
214  CHAR DOCSISUpstreamRanging[64];
215  CHAR DOCSISTftpStatus[64];
216  CHAR DOCSISDataRegComplete[64];
218  CHAR DOCSISConfigFileName[64];
220  CHAR ToDStatus[64];
223  ANSC_IPV4_ADDRESS UpgradeServerIP;
225  CHAR UpstreamServiceFlowParams[64];
226  CHAR DownstreamServiceFlowParams[64];
227  CHAR DOCSISDownstreamDataRate[64];
228  CHAR DOCSISUpstreamDataRate[64];
229  CHAR CoreVersion[64];
230 }
232 
233 typedef struct
238 }
240 
241 /*
242 typedef enum
243 {
244  PRI_EMERGENCY = 1,
245  PRI_ALERT,
246  PRI_CRITICAL,
247  PRI_ERROR,
248  PRI_WARNING,
249  PRI_NOTICE,
250  PRI_INFORMATION,
251  PRI_DEBUG,
252 
253  PRI_LAST = 0xffffffff
254 
255 }CMMGMT_CM_EventMgrPriorit_e;
256 */
257 
258 #define EVM_MAX_EVENT_TEXT 255
259 
260 typedef struct
261 {
263  struct timeval docsDevEvFirstTime;
264  struct timeval docsDevEvLastTime;
268  CHAR docsDevEvText[EVM_MAX_EVENT_TEXT];
269 
271 
272 typedef struct
276 }
278 
279 typedef struct
284  CHAR Time[64];
285  CHAR Description[256];
286 }
288 
289 typedef struct
291 {
292  ANSC_IPV4_ADDRESS IPAddress;
293  CHAR BootFileName[64];
294  ANSC_IPV4_ADDRESS SubnetMask;
295  ANSC_IPV4_ADDRESS Gateway;
296  ANSC_IPV4_ADDRESS TFTPServer;
297  CHAR TimeServer[64];
300  CHAR RebindTimeRemaining[64];
301  CHAR RenewTimeRemaining[64];
302  CHAR MACAddress[64];
303  CHAR DOCSISDHCPStatus[64];
304 }
306 
307 typedef struct
309 {
310  CHAR IPv6Address[40];
311  CHAR IPv6BootFileName[64];
312  CHAR IPv6Prefix[40];
313  CHAR IPv6Router[40];
314  CHAR IPv6TFTPServer[40];
315  CHAR IPv6TimeServer[40];
316 
320 }
322 
323 typedef struct
325 {
326  CHAR IPAddress[32];
327  CHAR MACAddress[32];
328 }
330 
331 //>> Docsis3.1
333  unsigned int ChannelId; /**< The Cable Modem Termination System identification of the OFDM downstream channel within this particular MAC interface. if the interface is down, the object returns the most current value. If the downstream channel ID is unknown, this object returns a value of 0. */
334  unsigned int ChanIndicator; /**< This data type defines the subcarrier spacing for the FFT mode in use. For downstream OFDM channels, if the FFT mode is 4K mode, then spacing is 50 kHz; if it is 8K mode, then the spacing is 25 kHz. For upstream OFDMA channels, if the FFT mode is 2K mode, then the spacing is 50kHz; if the mode is 4K mode, then the spacing is 25kHz. In units of kHz. */
335  /**< other(1), primary(2), backupPrimary(3), nonPrimary(4) */
336  unsigned int SubcarrierZeroFreq; /**< The center frequency of the subcarrier 0 of the OFDM transmission. Note that since ubcarrier 0 is always excluded, it will actually be below the allowed downstream spectrum band. This is the frequency of subcarrier X(0) in the definition of the DFT. */
337  unsigned int FirstActiveSubcarrierNum; /**< The number of the first non-excluded subcarrier. The valid range is 148 to 7895 */
338  unsigned int LastActiveSubcarrierNum; /**< The number of the last non-excluded subcarrier. The valid range is 148 to 7895 */
339  unsigned int NumActiveSubcarriers; /**< The number of active data subcarriers within the OFDM downstream channel (i.e. this exclude subcarriers for continuous pilots and the PLC). For 4K FFT mode, the maximum number of subcarriers including continuous pilots and the PLC cannot exceed 3800, and for 8K FFT mode, the maximum number of active subcarriers including continuous pilots and the PLC cannot be greater than 7600. */
340  /**< There are a minimum of 56 continuous pilots in a 192MHz channel that has no exclusions, and the size of the PLC is 8 subcarriers for 4K FFT mode and 16 subcarriers for 8K FFT mode. Therefore the maximum value of NumActiveSubcarriers is 3736 (or 3800 - 56 - 8) for 4K FFT mode and 7528 (or 7600 - 56 - 16) for 8K FFT mode. */
341  unsigned int SubcarrierSpacing; /**< The subcarrier spacing associated with a particular FFT mode configured on the OFDM downstream channel. If it is 4K mode, then the subcarrier spacing is 50kHz. If it is 8K mode, then the subcarrier spacing is 25kHz. */
342  /**< in kHz */
343  unsigned int CyclicPrefix; /**< Cyclic prefix enables the receiver to overcome the effects of inter-symbol-interference and intercarrier-interference caused by micro-reflections in the channel. There are five possible alues for the length of the CP and the choice depends on the delay spread of the channel - a longer delay spread requires a longer cyclic prefix. The cyclic prefix (in usec) are converted into samples using the sample rate of 204.8 Msamples/s and is an integer multiple of: 1/64 * 20 us. */
344  unsigned int RollOffPeriod; /**< Roll off period maximizes channel capacity by sharpening the edges of the spectrum of the OFDM signal. For windowing purposes another segment at the start of the IDFT output is appended to the end of the IDFT output - the roll-off postfix (RP). There are five possible values for the (RP), and the choice depends on the bandwidth of the channel and the number of exclusion bands within the channel. A larger RP provides sharper edges in the spectrum of the OFDM signal; however, there is a time vs. frequency trade-off. Larger RP values reduce the efficiency of transmission in the time domain, but because the spectral edges are sharper, more useful subcarriers appear in the frequency domain. There is an optimum value for the RP that maximizes capacity for a given bandwidth and/or exclusion band scenario. */
345  unsigned int PlcFreq; /**< This is the PHY Link Channel (PLC) frequency. It is the center frequency of the lowest frequency subcarrier of the PLC. The aim of the PLC is for the CMTS to convey to the CM the physical properties of the OFDM channel */
346  unsigned int NumPilots; /**< The number of continuous pilots configured for the OFDM downstream channel as received in the OCD message. */
347  unsigned int TimeInterleaverDepth; /**< The time interleaving used for this downstream channel as received in the OCD message. */
348  char averageSNR[OFDM_PARAM_STR_MAX_LEN]; /**< The averageSNR value of this downstream channel */
349  char PowerLevel[OFDM_PARAM_STR_MAX_LEN]; /**< The power level of this downstream channel */
350  unsigned long long PlcTotalCodewords; /**< The total number of PLC codewords received by the CM. */
351  unsigned long long PlcUnreliableCodewords; /**< The total number of PLC codewords which failed post-decoding LDPC syndrome check. */
352  unsigned long long NcpTotalFields; /**< The total number of NCP fields received by the CM. */
353  unsigned long long NcpFieldCrcFailures; /**< The total number of NCP fields received by the CM which failed the CRC check. */
354 
356 
357 
359  unsigned int ChannelId; /**< The Cable Modem identification of the OFDMA upstream channel within this particular MAC interface. If the interface is down, the object returns the most current value. If the upstream channel ID is unknown, this object returns a value of 0. */
360  unsigned int ConfigChangeCt; /**< The value of the Configuration Change Count field in the Upstream Channel Descriptor (UCD) MAC Management Message corresponding to this OFDMA channel. */
361  unsigned int SubcarrierZeroFreq; /**< The lower edge frequency of the OFDMA upstream channel in Hz */
362  unsigned int FirstActiveSubcarrierNum; /**< The upper edge of the OFDMA upstream channel. The minimum channel width for an OFDMA upstream channel is 6.4 MHz in 4K mode and 10MHz in 2K mode. The valid range is 74 to 3947. */
363  unsigned int LastActiveSubcarrierNum; /**< The last active subcarrier number. The valid range is 74 to 3947. */
364  unsigned int NumActiveSubcarriers; /**< The number of active subcarriers within the OFDMA upstream channel. The valid range is 1 to 3800. */
365  unsigned int SubcarrierSpacing; /**< The subcarrier spacing associated with a particular FFT mode configured on the OFDMA upstream channel. If it is 2K mode, then the subcarrier spacing is 50kHz. If it is 4K mode, then the subcarrier spacing is 25kHz. */
366  unsigned int CyclicPrefix; /**< Cyclic prefix is added in order to enable the receiver to overcome the effects of inter-symbol interference (ISI) and inter-carrier interference caused by microreflections in the channel. The cyclic prefix (in usec) is converted into samples using the sample rate of 102.4 Msamples/s. There are eleven values for the length of the CP and the choice depends on the delay spread of the channel; a longer delay spread requires a longer cyclic prefix. */
367  unsigned int RollOffPeriod; /**< Windowing is applied in order to maximize channel capacity by sharpening the edges of the spectrum of the OFDMA signal. Windowing is applied in the time domain by tapering (or rolling off) the edges using a raised cosine function. There are eight possible values of roll-off prefix. The Roll-Off Period is given in us and in number of samples using the sample rate of 102.4 Msamples/s. The configuration where Roll-off prefix value is greater than or equal to cyclic prefix value is considered invalid. */
368  unsigned int NumSymbolsPerFrame; /**< The number of symbol periods per frame. For channel bandwidth greater than 72MHz, the maximum number of symbol periods per frame is 18 for 2K mode and 9 for 4K mode. For channel bandwidth less than 72 MHz but greater than 48MHz, the maximum number of symbols per frame is 24 for 2K mode and 12 for 4K mode. For channel bandwidth less than 48MHz, the maximum number of symbol periods is 36 for 2K mode and 18 for 4K mode. The minimum number of symbol periods per frame is 6 for both the FFT modes and is independent of the channel bandwidth. */
369  unsigned int TxPower; /**< The operational transmit power for the associated OFDMA upstream channel.The CM reports its Target Power, P1.6r_n as described in [PHYv3.1]. Valid values for this object are 68 to (213 + (4*(Pmax - 65 dBmV))), since 68 quarter dBmV represents the lowest Tx power value 17 dBmV and 213 represents the nearest quarter dBmV to the highest Tx power value 53.2 dBmV. */
370  unsigned char PreEqEnabled; /**< Whether pre-equalization is enabled on the associated OFDMA upstream channel. */
372 
374  // The full definitions for the fields below can be referenced within DOCS-IF31-MIB.
375  unsigned int ChannelId; // The Cable Modem identification of the
376  // OFDMA upstream channel within this
377  // particular MAC interface. If the
378  // interface is down, the object
379  // returns the most current value.
380  // If the upstream channel ID is unknown,
381  // this object returns a value of 0.
382  unsigned int T3Timeouts; // Number of T3 counter timeouts.
383  unsigned int T4Timeouts; // Number of T4 counter timeouts.
384  unsigned int RangingAborteds; // Number of times ranging process
385  // has been aborted.
386  unsigned int T3Exceededs; // Number of excessive T3 timeouts.
387  unsigned char IsMuted; // Indicates if upstream channel is muted.
388  unsigned int RangingStatus; // Ranging State of CM:
389  // other(1),aborted(2),retriesExceeded(3),
390  // success(4),continue(5),timeoutT4(6)
392 //<< Docsis3.1
393 
394 #define MAX_KICKSTART_ROWS 5
395 
396 typedef struct _fixed_length_buffer {
400 
401 typedef struct _snmpv3_kickstart_row {
405 
406 typedef struct _snmpv3_kickstart_table {
410 
411 typedef struct
413 {
414  UINT usDiplexerSetting; /*Upper Edge in MHz*/
415  UINT dsDiplexerSetting; /*Upper Edge in MHz*/
416 }
418 
419 /** @} */ //END OF GROUP CM_HAL_TYPES
420 
421 
422 /**********************************************************************************
423  *
424  * CM Subsystem level function prototypes
425  *
426 **********************************************************************************/
427 
428 /**
429  * @addtogroup CM_HAL_APIS
430  * @{
431  */
432 
433 /* cm_hal_InitDB : */
434 /**
435 * @description Retrieves the global information for all shared DBs and makes them accessible locally.
436 * @param None
437 *
438 * @return The status of the operation.
439 * @retval RETURN_OK if successful.
440 * @retval RETURN_ERR if any error is detected
441 *
442 * @execution Synchronous.
443 * @sideeffect None.
444 *
445 * @note This function must not suspend and must not invoke any blocking system
446 * calls. It should probably just send a message to a driver event handler task.
447 *
448 */
449 INT cm_hal_InitDB(void);
450 
451 /* docsis_InitDS : */
452 /**
453 * @description Init global PHY level info and DBs and get direct access to DS HW.
454 * @param None
455 *
456 * @return The status of the operation.
457 * @retval RETURN_OK if successful.
458 * @retval RETURN_ERR if any error is detected
459 *
460 * @execution Synchronous.
461 * @sideeffect None.
462 *
463 * @note This function must not suspend and must not invoke any blocking system
464 * calls. It should probably just send a message to a driver event handler task.
465 *
466 */
467 INT docsis_InitDS(void);
468 
469 /* docsis_InitUS : */
470 /**
471 * @description Init global PHY level info and DBs and get direct access to US HW.
472 * @param None
473 *
474 * @return The status of the operation.
475 * @retval RETURN_OK if successful.
476 * @retval RETURN_ERR if any error is detected
477 *
478 * @execution Synchronous.
479 * @sideeffect None.
480 *
481 * @note This function must not suspend and must not invoke any blocking system
482 * calls. It should probably just send a message to a driver event handler task.
483 *
484 */
485 INT docsis_InitUS(void);
486 
487 /* docsis_getCMStatus : */
488 /**
489 * @description Retrieve, format and output the Cable Modem DOCSIS status.
490 * @param CHAR* cm_status - status string, to be returned
491 *
492 * @return The status of the operation.
493 * @retval RETURN_OK if successful.
494 * @retval RETURN_ERR if any error is detected
495 *
496 * @execution Synchronous.
497 * @sideeffect None.
498 *
499 * @note This function must not suspend and must not invoke any blocking system
500 * calls. It should probably just send a message to a driver event handler task.
501 *
502 */
503 INT docsis_getCMStatus(CHAR *cm_status);
504 
505 /* docsis_GetDSChannel : */
506 /**
507 * @description Retrieve all the relevant DS channel info from global DBs.
508 * @param PCMMGMT_CM_DS_CHANNEL * ppinfo - all info of DS channel, to be returned
509 *
510 * @return The status of the operation.
511 * @retval RETURN_OK if successful.
512 * @retval RETURN_ERR if any error is detected
513 *
514 * @execution Synchronous.
515 * @sideeffect None.
516 *
517 * @note This function must not suspend and must not invoke any blocking system
518 * calls. It should probably just send a message to a driver event handler task.
519 *
520 */
522 
523 /* docsis_GetUsStatus : */
524 /**
525 * @description Retrieve all the relevant US channel info from global DBs.
526 * @param USHORT i - index to the US channel
527 * @param PCMMGMT_CM_US_CHANNEL pinfo - info of one US channel, to be returned
528 *
529 * @return The status of the operation.
530 * @retval RETURN_OK if successful.
531 * @retval RETURN_ERR if any error is detected
532 *
533 * @execution Synchronous.
534 * @sideeffect None.
535 *
536 * @note This function must not suspend and must not invoke any blocking system
537 * calls. It should probably just send a message to a driver event handler task.
538 *
539 */
541 
542 /* docsis_GetUSChannel : */
543 /**
544 * @description Retrieve particular US channel information from global DBs.
545 * @param PCMMGMT_CM_US_CHANNEL * ppinfo - all info of US channel, to be returned
546 *
547 * @return The status of the operation.
548 * @retval RETURN_OK if successful.
549 * @retval RETURN_ERR if any error is detected
550 *
551 * @execution Synchronous.
552 * @sideeffect None.
553 *
554 * @note This function must not suspend and must not invoke any blocking system
555 * calls. It should probably just send a message to a driver event handler task.
556 *
557 */
559 
560 /* docsis_GetDOCSISInfo : */
561 /**
562 * @description Retrieve current DOCSIS registration status and report it.
563 * @param PCMMGMT_CM_DOCSIS_INFO pinfo - registration info, to be returned
564 *
565 * @return The status of the operation.
566 * @retval RETURN_OK if successful.
567 * @retval RETURN_ERR if any error is detected
568 *
569 * @execution Synchronous.
570 * @sideeffect None.
571 *
572 * @note This function must not suspend and must not invoke any blocking system
573 * calls. It should probably just send a message to a driver event handler task.
574 *
575 */
577 
578 /* docsis_GetNumOfActiveTxChannels : */
579 /**
580 * @description Retrieve number of US channels actively in use in current registration.
581 * @param ULONG * cnt - pointer to number, to be returned
582 *
583 * @return The status of the operation.
584 * @retval RETURN_OK if successful.
585 * @retval RETURN_ERR if any error is detected
586 *
587 * @execution Synchronous.
588 * @sideeffect None.
589 *
590 * @note This function must not suspend and must not invoke any blocking system
591 * calls. It should probably just send a message to a driver event handler task.
592 *
593 */
595 
596 /* docsis_GetNumOfActiveRxChannels : */
597 /**
598 * @description Retrieve number of DS channels actively in use in current registration.
599 * @Param ULONG * cnt - pointer to number, to be returned
600 *
601 * @return The status of the operation.
602 * @retval RETURN_OK if successful.
603 * @retval RETURN_ERR if any error is detected
604 *
605 * @execution Synchronous.
606 * @sideeffect None.
607 *
608 * @note This function must not suspend and must not invoke any blocking system
609 * calls. It should probably just send a message to a driver event handler task.
610 *
611 */
613 
614 /* docsis_GetErrorCodewords : */
615 /**
616 * @description Scan all active DS channels and report errors in packets received.
617 * @param PCMMGMT_CM_ERROR_CODEWORDS * ppinfo - error info retrieved
618 *
619 * @return The status of the operation.
620 * @retval RETURN_OK if successful.
621 * @retval RETURN_ERR if any error is detected
622 *
623 * @execution Synchronous.
624 * @sideeffect None.
625 *
626 * @note This function must not suspend and must not invoke any blocking system
627 * calls. It should probably just send a message to a driver event handler task.
628 *
629 */
631 
632 /* docsis_GetMddIpModeOverride : */
633 /**
634 * @description Retrieve the current MIMO status.
635 * @param CHAR *pValue - status retrieved
636 *
637 * @return The status of the operation.
638 * @retval RETURN_OK if successful.
639 * @retval RETURN_ERR if any error is detected
640 *
641 * @execution Synchronous.
642 * @sideeffect None.
643 *
644 * @note This function must not suspend and must not invoke any blocking system
645 * calls. It should probably just send a message to a driver event handler task.
646 *
647 */
649 
650 /* docsis_SetMddIpModeOverride : */
651 /**
652 * @description Set the current global MIMO status.
653 * @param CHAR *pValue - status to be set to
654 *
655 * @return The status of the operation.
656 * @retval RETURN_OK if successful.
657 * @retval RETURN_ERR if any error is detected
658 *
659 * @execution Synchronous.
660 * @sideeffect None.
661 *
662 * @note This function must not suspend and must not invoke any blocking system
663 * calls. It should probably just send a message to a driver event handler task.
664 *
665 */
667 
668 /* docsis_GetUSChannelId : */
669 /**
670 * @description Retrieve the US channel ID in its MAC domain.
671 * @param none
672 *
673 * @return UINT8 - Channel ID
674 *
675 * @execution Synchronous.
676 * @sideeffect None.
677 *
678 * @note This function must not suspend and must not invoke any blocking system
679 * calls. It should probably just send a message to a driver event handler task.
680 *
681 */
683 
684 /* docsis_SetUSChannelId : */
685 /**
686 * @description Set the US channel ID in its MAC domain.
687 * @param INT index = Index to set the Upstream Channel ID to
688 *
689 * @return None
690 *
691 * @execution Synchronous.
692 * @sideeffect None.
693 *
694 * @note This function must not suspend and must not invoke any blocking system
695 * calls. It should probably just send a message to a driver event handler task.
696 *
697 */
698 void docsis_SetUSChannelId(INT index);
699 
700 /* docsis_GetDownFreq : */
701 /**
702 * @description Retrieve the current primary channel DS channel frequency from the LKF table.
703 * @param None
704 *
705 * @return ULONG - channel frequency
706 *
707 * @execution Synchronous.
708 * @sideeffect None.
709 *
710 * @note This function must not suspend and must not invoke any blocking system
711 * calls. It should probably just send a message to a driver event handler task.
712 *
713 */
715 
716 /* docsis_SetStartFreq : */
717 /**
718 * @description Change the DS primary channel frequency in the LKF table.
719 * @param ULONG value - frequency to get set to
720 *
721 * @return None
722 *
723 * @execution Synchronous.
724 * @sideeffect None.
725 *
726 * @note This function must not suspend and must not invoke any blocking system
727 * calls. It should probably just send a message to a driver event handler task.
728 *
729 */
730 void docsis_SetStartFreq(ULONG value);
731 
732 /* docsis_GetDownFreq : */
733 /**
734 * @description Retrieve the DOCSIS event log entries and display it.
735 * @param CMMGMT_CM_EventLogEntry_t *entryArray - entries to be returned
736 * @param INT len - length of log entries
737 *
738 * @return INT - number of log entries retrieved
739 *
740 * @execution Synchronous.
741 * @sideeffect None.
742 *
743 * @note This function must not suspend and must not invoke any blocking system
744 * calls. It should probably just send a message to a driver event handler task.
745 *
746 */
748 
749 /* docsis_ClearDocsisEventLog : */
750 /**
751 * @description Clear the DOCSIS event log.
752 * @param None
753 *
754 * @return The status of the operation.
755 * @retval RETURN_OK if successful.
756 * @retval RETURN_ERR if any error is detected
757 *
758 * @execution Synchronous.
759 * @sideeffect None.
760 *
761 * @note This function must not suspend and must not invoke any blocking system
762 * calls. It should probably just send a message to a driver event handler task.
763 *
764 */
766 
767 /* cm_hal_GetDHCPInfo : */
768 /**
769 * @description Retrieve all the relevant DHCP info for this CM.
770 * @param PCMMGMT_CM_DHCP_INFO pInfo - all DHCP info for CM, to be returned
771 *
772 * @return The status of the operation.
773 * @retval RETURN_OK if successful.
774 * @retval RETURN_ERR if any error is detected
775 *
776 * @execution Synchronous.
777 * @sideeffect None.
778 *
779 * @note This function must not suspend and must not invoke any blocking system
780 * calls. It should probably just send a message to a driver event handler task.
781 *
782 */
784 
785 /* cm_hal_GetIPv6DHCPInfo : */
786 /**
787 * @description Retrieve all the relevant IPv6 DHCP info for this CM.
788 * @param PCMMGMT_CM_IPV6DHCP_INFO pInfo - all IPv6 DHCP info for CM, to be returned
789 *
790 * @return The status of the operation.
791 * @retval RETURN_OK if successful.
792 * @retval RETURN_ERR if any error is detected
793 *
794 * @execution Synchronous.
795 * @sideeffect None.
796 *
797 * @note This function must not suspend and must not invoke any blocking system
798 * calls. It should probably just send a message to a driver event handler task.
799 *
800 */
802 
803 /* cm_hal_GetCPEList : */
804 /**
805 * @description Retrieve list of CPEs connected to the CM
806 * @param PCMMGMT_DML_CPE_LIST * ppCPEList - List of all CPE, to be returned
807 * @param ULONG* InstnaceNum - Number of instances, to be returned
808 * @param CHAR* LanMode - input of "router" or "bridge" mode of the modem
809 *
810 * @return The status of the operation.
811 * @retval RETURN_OK if successful.
812 * @retval RETURN_ERR if any error is detected
813 *
814 * @execution Synchronous.
815 * @sideeffect None.
816 *
817 * @note This function must not suspend and must not invoke any blocking system
818 * calls. It should probably just send a message to a driver event handler task.
819 *
820 */
821 INT cm_hal_GetCPEList(PCMMGMT_DML_CPE_LIST * ppCPEList, ULONG* InstanceNum, CHAR* LanMode);
822 
823 /* cm_hal_GetMarket : */
824 /**
825 * @description Retrieve the market of this modem
826 * @param CHAR* market - Name of the market for this modem, "US" or "EURO", to be returned
827 *
828 * @return The status of the operation.
829 * @retval RETURN_OK if successful.
830 * @retval RETURN_ERR if any error is detected
831 *
832 * @execution Synchronous.
833 * @sideeffect None.
834 *
835 * @note This function must not suspend and must not invoke any blocking system
836 * calls. It should probably just send a message to a driver event handler task.
837 *
838 */
839 INT cm_hal_GetMarket(CHAR* market);
840 
841 /* HTTP Download HAL API Prototype */
842 
843 /* cm_hal_Set_HTTP_DL_Url - 1 */
844 
845 /**
846 * @description Set Http Download Settings
847 * @param char* pHttpUrl
848 * @param char* pfilename
849 *
850 * @return the status of the operation
851 * @retval RETURN_OK if successful.
852 * @retval RETURN_ERR if any Downloading is in process or Url string is invalided.
853 */
854 INT cm_hal_Set_HTTP_Download_Url (char* pHttpUrl, char* pfilename);
855 
856 /* cm_hal_Get_HTTP_Download_Url: */
857 
858 /**
859 * @description Get Http Download Url
860 * @param char* pHttpUrl
861 * @param char* pfilename
862 * @return the status of the operation.
863 * @retval RETURN_OK if successful.
864 * @retval RETURN_ERR if http url string is empty.
865 */
866 INT cm_hal_Get_HTTP_Download_Url (char *pHttpUrl, char* pfilename);
867 
868 /* cm_hal_Set_HTTP_Download_Interface: */
869 /**
870 * @description Set the HTTP Download Interface
871 * @param unsigned int interface - interface=0 for wan0, interface=1 for erouter0
872 * @return the status of the operation.
873 * @retval RETURN_OK if successful.
874 * @retval RETURN_ERR if any error is detected
875 */
876 /* interface=0 for wan0, interface=1 for erouter0 */
877 INT cm_hal_Set_HTTP_Download_Interface(unsigned int interface);
878 
879 /* cm_hal_Get_HTTP_Download_Interface: */
880 /**
881 * @description Get the HTTP Download Interface
882 * @param unsigned int* pinterface - interface=0 for wan0, interface=1 for erouter0
883 * @return the status of the operation.
884 * @retval RETURN_OK if successful.
885 * @retval RETURN_ERR if any error is detected
886 */
887 /* interface=0 for wan0, interface=1 for erouter0 */
888 INT cm_hal_Get_HTTP_Download_Interface(unsigned int* pinterface);
889 
890 /* cm_hal_HTTP_Download - 3 */
891 /**
892 * @description Start Http Download
893 * @param <None>
894 * @return the status of the operation.
895 * @retval RETURN_OK if successful.
896 * @retval RETURN_ERR if any Downloading is in process.
897 *
898 * @execution Synchronous.
899 * @sideeffect None.
900 *
901 * @note This function must not suspend and must not invoke any blocking system
902 * calls. It should probably just send a message to a driver event handler task.
903 */
905 
906 /* cm_hal_ Get_HTTP_Download _Status ? 4 */
907 /**
908 * @description Get the HTTP Download Status
909 * @param <None>
910 * @return the status of the HTTP Download.
911 * @retval 0 - Download is not started.
912 * @retval 0-100 - Values of percent of download.
913 * @retval 200 - Download is completed and waiting for reboot.
914 * @retval 400 - Invalided Http server Url
915 * @retval 401 - Cannot connect to Http server
916 * @retval 402 - File is not found on Http server
917 * @retval 403 - HW_Type_DL_Protection Failure
918 * @retval 404 - HW Mask DL Protection Failure
919 * @retval 405 - DL Rev Protection Failure
920 * @retval 406 - DL Header Protection Failure
921 * @retval 407 - DL CVC Failure
922 * @retval 500 - General Download Failure
923 *
924 */
926 
927 /* cm_hal_Reboot_Ready - 5 */
928 /**
929 * @description Get the Reboot Ready Status
930 * @param ULONG *pValue- Values of 1 for Ready, 2 for Not Ready
931 * @return the status of the operation.
932 * @retval RETURN_OK if successful.
933 * @retval RETURN_ERR if any error is detected
934 */
935 INT cm_hal_Reboot_Ready(ULONG *pValue);
936 
937 /* cm_hal_HTTP_DL_Reboot_Now - 6*/
938 /**
939 * @description Http Download Reboot Now
940 * @param <None>
941 * @return the status of the reboot operation.
942 * @retval RETURN_OK if successful.
943 * @retval RETURN_ERR if any reboot is in process.
944 */
946 
947 /* cm_hal_FWupdateAndFactoryReset : */
948 /**
949 * @description: Firmware update and factory reset the device
950 * @param char* pUrl - NULL for snmp
951 * @param char* pImagename - NULL for snmp
952 * @return the status of the Firmware update and factory reset operation.
953 * @retval RETURN_OK if successful.
954 * @retval RETURN_ERR if any reboot is in process.
955 */
956 INT cm_hal_FWupdateAndFactoryReset(char* pUrl, char* pImagename);
957 
958 /* cm_hal_ReinitMac : */
959 /**
960 * @description Reinit CM. Performs reinit MAC only to same DS/US
961 * @param None
962 *
963 
964 * @return The status of the operation.
965 * @retval RETURN_OK if successful.
966 * @retval RETURN_ERR if any error is detected
967 *
968 * @execution Synchronous.
969 * @sideeffect None.
970 *
971 * @note This function must not suspend and must not invoke any blocking system
972 * calls. It should probably just send a message to a driver event handler task.
973 *
974 
975 */
977 
978 /* docsis_GetProvIpType : */
979 /**
980 * @description Retrieve the provisioned wan0 IP type
981 * @param CHAR* pValue - ip type currently provisioned on wan0
982 * values are "IPv4", "IPv6", or "unknown"
983 *
984 * @return The status of the operation.
985 * @retval RETURN_OK if successful.
986 * @retval RETURN_ERR if any error is detected
987 *
988 * @execution Synchronous.
989 * @sideeffect None.
990 *
991 * @note This function must not suspend and must not invoke any blocking system
992 * calls. It should probably just send a message to a driver event handler task.
993 *
994 */
995 INT docsis_GetProvIpType(CHAR *pValue);
996 
997 /* docsis_GetCert : */
998 /**
999 * @description Retrieve the location of the certificate
1000 * @param CHAR* pCert - certificate location, to be returned
1001 *
1002 * @return The status of the operation.
1003 * @retval RETURN_OK if successful.
1004 * @retval RETURN_ERR if any error is detected
1005 *
1006 * @execution Synchronous.
1007 * @sideeffect None.
1008 *
1009 * @note This function must not suspend and must not invoke any blocking system
1010 * calls. It should probably just send a message to a driver event handler task.
1011 *
1012 */
1013 INT docsis_GetCert(CHAR* pCert);
1014 
1015 /* docsis_GetCertStatus : */
1016 /**
1017 * @description Retrieve status of the certificate
1018 * @param ULONG *pVal - certificate status, to be returned
1019 *
1020 * @return The status of the operation.
1021 * @retval RETURN_OK if successful.
1022 * @retval RETURN_ERR if any error is detected
1023 *
1024 * @execution Synchronous.
1025 * @sideeffect None.
1026 *
1027 * @note This function must not suspend and must not invoke any blocking system
1028 * calls. It should probably just send a message to a driver event handler task.
1029 *
1030 */
1032 
1033 
1034 /* cm_hal_Get_CableModemResetCount : */
1035 /**
1036 * @description Retrieve the count of cable modem reset
1037 * @param ULONG *resetcnt - Count to be returned
1038 *
1039 * @return The status of the operation.
1040 * @retval RETURN_OK if successful.
1041 * @retval RETURN_ERR if any error is detected
1042 *
1043 * @execution Synchronous.
1044 * @sideeffect None.
1045 
1046 *
1047 * @note This function must not suspend and must not invoke any blocking system
1048 * calls. It should probably just send a message to a driver event handler task.
1049 *
1050 */
1052 
1053 /* cm_hal_Get_LocalResetCount : */
1054 /**
1055 * @description Retrieve the count of local reset
1056 * @param ULONG *resetcnt - Count to be returned
1057 *
1058 * @return The status of the operation.
1059 * @retval RETURN_OK if successful.
1060 * @retval RETURN_ERR if any error is detected
1061 *
1062 * @execution Synchronous.
1063 * @sideeffect None.
1064 *
1065 * @note This function must not suspend and must not invoke any blocking system
1066 * calls. It should probably just send a message to a driver event handler task.
1067 *
1068 */
1069 
1071 
1072 /* cm_hal_Get_DocsisResetCount : */
1073 /**
1074 * @description Retrieve the count of docsis reset
1075 * @param ULONG *resetcnt - Count to be returned
1076 *
1077 * @return The status of the operation.
1078 * @retval RETURN_OK if successful.
1079 * @retval RETURN_ERR if any error is detected
1080 *
1081 * @execution Synchronous.
1082 * @sideeffect None.
1083 *
1084 * @note This function must not suspend and must not invoke any blocking system
1085 * calls. It should probably just send a message to a driver event handler task.
1086 *
1087 */
1088 
1090 
1091 /* cm_hal_Get_ErouterResetCount : */
1092 /**
1093 * @description Retrieve the count of erouter reset
1094 * @param ULONG *resetcnt - Count to be returned
1095 *
1096 * @return The status of the operation.
1097 * @retval RETURN_OK if successful.
1098 * @retval RETURN_ERR if any error is detected
1099 *
1100 * @execution Synchronous.
1101 * @sideeffect None.
1102 *
1103 * @note This function must not suspend and must not invoke any blocking system
1104 * calls. It should probably just send a message to a driver event handler task.
1105 *
1106 */
1107 
1109 
1110 /* cm_hal_HTTP_LED_Flash : */
1111 /**
1112 *@description Enable/Disable HTTP LED Flashing
1113 * @param BOOLEAN *bLEDFlashState - Enable/Disable LED Flash
1114 *
1115 * @return The status of the operation.
1116 * @retval RETURN_OK if successful.
1117 * @retval RETURN_ERR if any error is detected
1118 *
1119 * @execution Synchronous.
1120 * @sideeffect None.
1121 *
1122 * @note This function must not suspend and must not invoke any blocking system
1123 * calls. It should probably just send a message to a driver event handler task.
1124 *
1125 */
1126 
1127 INT cm_hal_HTTP_LED_Flash( BOOLEAN LedFlash );
1128 
1129 //>> Docsis3.1
1130 /* docsis_GetDsOfdmChanTable : */
1131 /**
1132 *@description Get the Downstream DSOF channel table (docsIf31CmDsOfdmChanTable)
1133 * @param PDOCSIF31_CM_DS_OFDM_CHAN *ppinfo - Ponter to get the return array
1134 * @param int *output_NumberOfEntries - Array size need to be return with output_NumberOfEntries
1135 * @return The status of the operation.
1136 * @retval RETURN_OK if successful.
1137 * @retval RETURN_ERR if any error is detected
1138 *
1139 * @execution Synchronous.
1140 * @sideeffect None.
1141 *
1142 * @note HAL function need to allocate the array of DOCSIF31_CM_DS_OFDM_CHAN and return with ppinfo.
1143 *
1144 */
1145 INT docsis_GetDsOfdmChanTable(PDOCSIF31_CM_DS_OFDM_CHAN *ppinfo, int *output_NumberOfEntries);
1146 
1147 /* docsis_GetUsOfdmaChanTable : */
1148 /**
1149 *@description Get the Upstream DSOFA channel table (docsIf31CmUsOfdmaChanTables)
1150 * @param PDOCSIF31_CM_US_OFDMA_CHAN *ppinfo - Ponter to get the return array
1151 * @param int *output_NumberOfEntries - Array size need to be return with output_NumberOfEntries
1152 * @return The status of the operation.
1153 * @retval RETURN_OK if successful.
1154 * @retval RETURN_ERR if any error is detected
1155 *
1156 * @execution Synchronous.
1157 * @sideeffect None.
1158 *
1159 * @note HAL function need to allocate the array of DOCSIF31_CM_US_OFDMA_CHAN and return with ppinfo.
1160 *
1161 */
1162 INT docsis_GetUsOfdmaChanTable(PDOCSIF31_CM_US_OFDMA_CHAN *ppinfo, int *output_NumberOfEntries);
1163 
1164 /* docsis_GetStatusOfdmaUsTable : */
1165 /**
1166 *@description Get the Upstream DSOFA channel status table (docsIf31CmStatusOfdmaUsTable)
1167 * @param PDOCSIF31_CMSTATUSOFDMA_US *ppinfo - Ponter to get the return array
1168 * @param int *output_NumberOfEntries - Array size need to be return with output_NumberOfEntries
1169 * @return The status of the operation.
1170 * @retval RETURN_OK if successful.
1171 * @retval RETURN_ERR if any error is detected
1172 *
1173 * @execution Synchronous.
1174 * @sideeffect None.
1175 *
1176 * @note HAL function need to allocate the array of DOCSIF31_CMSTATUSOFDMA_US and return with ppinfo.
1177 *
1178 */
1179 INT docsis_GetStatusOfdmaUsTable(PDOCSIF31_CMSTATUSOFDMA_US *ppinfo, int *output_NumberOfEntries);
1180 //<< Docsis3.1
1181 
1182 /* cm_hal_snmpv3_kickstart_initialize: */
1183 /**
1184 * @description Configure the SNMPv3 security parameters on the CM.
1185 * @param snmpv3_kickstart_table_t * pKickstart_Table - a pointer to the SNMPv3 kickstart table
1186 *
1187 * @return The status of the operation.
1188 * @retval RETURN_OK if successful.
1189 * @retval RETURN_ERR if any error is detected
1190 *
1191 * @execution Synchronous.
1192 * @sideeffect None.
1193 *
1194 *
1195 */
1197 /** @} */ //END OF GROUP CM_HAL_APIS
1198 
1199 
1200 /* docsis_IsEnergyDetected: */
1201 /**
1202 * @description Get the docsis energy to detect WAN mode.
1203 * @param BOOLEAN *pEnergyDetected , 0 for No Docsis, 1 if DOCSIS is connected
1204 *
1205 * @return The status of the operation.
1206 * @retval RETURN_OK if successful.
1207 * @retval RETURN_ERR if any error is detected
1208 *
1209 * @execution Synchronous.
1210 * @sideeffect None.
1211 *
1212 *
1213 */
1214 
1215 INT docsis_IsEnergyDetected( BOOLEAN *pEnergyDetected );
1216 
1217 
1218 /* cm_hal_set_ReinitMacThreshold: */
1219 /**
1220 * @description Set ReinitMacThreshold value.
1221 * @param ULONG value , value to be set
1222 *
1223 * @return The status of the operation.
1224 * @retval RETURN_OK if successful.
1225 * @retval RETURN_ERR if any error is detected
1226 *
1227 * @execution Synchronous.
1228 * @sideeffect None.
1229 *
1230 */
1232 
1233 /* cm_hal_get_ReinitMacThreshold: */
1234 /**
1235 * @description Get ReinitMacThreshold value.
1236 * @param ULONG* pValue , value to be returned
1237 *
1238 * @return The status of the operation.
1239 * @retval RETURN_OK if successful.
1240 * @retval RETURN_ERR if any error is detected
1241 *
1242 * @execution Synchronous.
1243 * @sideeffect None.
1244 *
1245 */
1247 
1248 /* cm_hal_get_DiplexerSettings: */
1249 /**
1250 * @description Get Current Diplexer Settings.
1251 * @param CM_DIPLEXER_SETTINGS* pValue , value to be returned
1252 *
1253 * @return The status of the operation.
1254 * @retval RETURN_OK if successful.
1255 * @retval RETURN_ERR if any error is detected
1256 *
1257 * @execution Synchronous.
1258 * @sideeffect None.
1259 *
1260 */
1262 
1263 /* cm_hal_Diplexer_Variation_Callback: */
1264 /**
1265 * @description Receive Current Diplexer Settings via this callback.
1266 * @param CM_DIPLEXER_SETTINGS stCMDiplexerValue , value to be received
1267 *
1268 * @return The status of the operation.
1269 * @retval RETURN_OK if successful.
1270 * @retval RETURN_ERR if any error is detected
1271 *
1272 * @execution Synchronous.
1273 * @sideeffect None.
1274 *
1275 */
1277 
1278 /* cm_hal_Register_DiplexerVariationCallback: */
1279 /**
1280 * @description To register callback for receiving dynamic diplexer settings
1281 * @param cm_hal_DiplexerVariationCallback callback_proc , callback prototype
1282 *
1283 * @return The status of the operation.
1284 * @retval RETURN_OK if successful.
1285 * @retval RETURN_ERR if any error is detected
1286 *
1287 * @execution Synchronous.
1288 * @sideeffect None.
1289 *
1290 */
1292 
1293 #ifdef __cplusplus
1294 }
1295 #endif
1296 
1297 #endif
1298 
_CMMGMT_CM_DS_CHANNEL
Definition: cm_hal.h:181
cm_hal_snmpv3_kickstart_initialize
int cm_hal_snmpv3_kickstart_initialize(snmpv3_kickstart_table_t *pKickstart_Table)
_snmpv3_kickstart_table::kickstart_values
snmp_kickstart_row_t * kickstart_values[5]
Definition: cm_hal.h:408
CMMGMT_CM_EventLogEntry_t::docsDevEvId
unsigned int docsDevEvId
Definition: cm_hal.h:267
cm_hal_HTTP_Download_Reboot_Now
int cm_hal_HTTP_Download_Reboot_Now()
_CMMGMT_DML_DOCSISLOG_FULL::Index
unsigned long Index
Definition: cm_hal.h:281
_CMMGMT_DML_CPE_LIST
Definition: cm_hal.h:323
_DOCSIF31_CM_US_OFDMA_CHAN::CyclicPrefix
unsigned int CyclicPrefix
Definition: cm_hal.h:366
_CMMGMT_CM_DHCP_INFO::TimeOffset
int TimeOffset
Definition: cm_hal.h:298
cm_hal_GetDHCPInfo
int cm_hal_GetDHCPInfo(PCMMGMT_CM_DHCP_INFO pInfo)
_DOCSIF31_CM_DS_OFDM_CHAN::PlcTotalCodewords
unsigned long long PlcTotalCodewords
Definition: cm_hal.h:350
_snmpv3_kickstart_row::security_name
fixed_length_buffer_t security_name
Definition: cm_hal.h:402
docsis_SetUSChannelId
void docsis_SetUSChannelId(int index)
docsis_GetStatusOfdmaUsTable
int docsis_GetStatusOfdmaUsTable(PDOCSIF31_CMSTATUSOFDMA_US *ppinfo, int *output_NumberOfEntries)
CMMGMT_CM_DS_CHANNEL
struct _CMMGMT_CM_DS_CHANNEL CMMGMT_CM_DS_CHANNEL
cm_hal_HTTP_Download
int cm_hal_HTTP_Download()
_DOCSIF31_CM_DS_OFDM_CHAN::PowerLevel
char PowerLevel[64]
Definition: cm_hal.h:349
_CMMGMT_CM_DHCP_INFO::LeaseTimeRemaining
unsigned long LeaseTimeRemaining
Definition: cm_hal.h:299
_fixed_length_buffer
Definition: cm_hal.h:396
_DOCSIF31_CM_DS_OFDM_CHAN::TimeInterleaverDepth
unsigned int TimeInterleaverDepth
Definition: cm_hal.h:347
_DOCSIF31_CM_US_OFDMA_CHAN::LastActiveSubcarrierNum
unsigned int LastActiveSubcarrierNum
Definition: cm_hal.h:363
cm_hal_Set_HTTP_Download_Url
int cm_hal_Set_HTTP_Download_Url(char *pHttpUrl, char *pfilename)
CMMGMT_CM_DHCP_INFO
struct _CMMGMT_CM_DHCP_INFO CMMGMT_CM_DHCP_INFO
ULONG
#define ULONG
Definition: cm_hal.h:117
PCMMGMT_DML_CM_LOG
struct _CMMGMT_DML_CM_LOG * PCMMGMT_DML_CM_LOG
_CMMGMT_CM_DOCSIS_INFO::MaxCpeAllowed
unsigned long MaxCpeAllowed
Definition: cm_hal.h:224
UINT8
#define UINT8
Definition: cm_hal.h:101
cm_hal_set_ReinitMacThreshold
int cm_hal_set_ReinitMacThreshold(unsigned long value)
_CMMGMT_CM_ERROR_CODEWORDS::UnerroredCodewords
unsigned long UnerroredCodewords
Definition: cm_hal.h:235
DOCSIF31_CM_DS_OFDM_CHAN
struct _DOCSIF31_CM_DS_OFDM_CHAN DOCSIF31_CM_DS_OFDM_CHAN
CMMGMT_DML_DOCSISLOG_FULL
struct _CMMGMT_DML_DOCSISLOG_FULL CMMGMT_DML_DOCSISLOG_FULL
docsis_GetDocsisEventLogItems
int docsis_GetDocsisEventLogItems(CMMGMT_CM_EventLogEntry_t *entryArray, int len)
docsis_GetDSChannel
int docsis_GetDSChannel(PCMMGMT_CM_DS_CHANNEL *ppinfo)
cm_hal_FWupdateAndFactoryReset
int cm_hal_FWupdateAndFactoryReset(char *pUrl, char *pImagename)
_DOCSIF31_CM_DS_OFDM_CHAN::SubcarrierSpacing
unsigned int SubcarrierSpacing
Definition: cm_hal.h:341
_DOCSIF31_CM_US_OFDMA_CHAN::NumSymbolsPerFrame
unsigned int NumSymbolsPerFrame
Definition: cm_hal.h:368
CMMGMT_DML_CPE_LIST
struct _CMMGMT_DML_CPE_LIST CMMGMT_DML_CPE_LIST
OFDM_PARAM_STR_MAX_LEN
#define OFDM_PARAM_STR_MAX_LEN
Definition: cm_hal.h:77
_snmpv3_kickstart_row::security_number
fixed_length_buffer_t security_number
Definition: cm_hal.h:403
cm_hal_Get_HTTP_Download_Interface
int cm_hal_Get_HTTP_Download_Interface(unsigned int *pinterface)
_CMMGMT_CM_DOCSIS_INFO
Definition: cm_hal.h:207
_CMMGMT_CM_US_CHANNEL
Definition: cm_hal.h:195
INT
#define INT
Definition: cm_hal.h:105
cm_hal_ReinitMac
int cm_hal_ReinitMac()
PCMMGMT_CM_DHCP_INFO
struct _CMMGMT_CM_DHCP_INFO * PCMMGMT_CM_DHCP_INFO
_DOCSIF31_CM_US_OFDMA_CHAN
Definition: cm_hal.h:358
CMMGMT_CM_EventLogEntry_t::docsDevEvLevel
unsigned int docsDevEvLevel
Definition: cm_hal.h:266
fixed_length_buffer_t
struct _fixed_length_buffer fixed_length_buffer_t
cm_hal_GetMarket
int cm_hal_GetMarket(char *market)
docsis_SetMddIpModeOverride
int docsis_SetMddIpModeOverride(char *pValue)
snmpv3_kickstart_table_t
struct _snmpv3_kickstart_table snmpv3_kickstart_table_t
_DOCSIF31_CM_DS_OFDM_CHAN::SubcarrierZeroFreq
unsigned int SubcarrierZeroFreq
Definition: cm_hal.h:336
_CMMGMT_CM_DOCSIS_INFO::DOCSISTftpAttempts
unsigned long DOCSISTftpAttempts
Definition: cm_hal.h:219
_CMMGMT_CM_IPV6DHCP_INFO::IPv6RebindTimeRemaining
unsigned long IPv6RebindTimeRemaining
Definition: cm_hal.h:318
docsis_InitUS
int docsis_InitUS(void)
_CMMGMT_CM_IPV6DHCP_INFO::IPv6LeaseTimeRemaining
unsigned long IPv6LeaseTimeRemaining
Definition: cm_hal.h:317
docsis_GetNumOfActiveRxChannels
int docsis_GetNumOfActiveRxChannels(unsigned long *cnt)
_CMMGMT_CM_ERROR_CODEWORDS
Definition: cm_hal.h:233
_CMMGMT_CM_US_CHANNEL::ChannelID
unsigned long ChannelID
Definition: cm_hal.h:197
_CM_DIPLEXER_SETTINGS::dsDiplexerSetting
unsigned int dsDiplexerSetting
Definition: cm_hal.h:415
_DOCSIF31_CM_DS_OFDM_CHAN::ChanIndicator
unsigned int ChanIndicator
Definition: cm_hal.h:334
CM_DIPLEXER_SETTINGS
struct _CM_DIPLEXER_SETTINGS CM_DIPLEXER_SETTINGS
_DOCSIF31_CM_DS_OFDM_CHAN::ChannelId
unsigned int ChannelId
Definition: cm_hal.h:333
_DOCSIF31_CMSTATUSOFDMA_US::RangingStatus
unsigned int RangingStatus
Definition: cm_hal.h:388
_DOCSIF31_CM_DS_OFDM_CHAN::LastActiveSubcarrierNum
unsigned int LastActiveSubcarrierNum
Definition: cm_hal.h:338
PCMMGMT_CM_US_CHANNEL
struct _CMMGMT_CM_US_CHANNEL * PCMMGMT_CM_US_CHANNEL
PDOCSIF31_CM_DS_OFDM_CHAN
struct _DOCSIF31_CM_DS_OFDM_CHAN * PDOCSIF31_CM_DS_OFDM_CHAN
_snmpv3_kickstart_table::n_rows
unsigned char n_rows
Definition: cm_hal.h:407
docsis_GetNumOfActiveTxChannels
int docsis_GetNumOfActiveTxChannels(unsigned long *cnt)
_CMMGMT_CM_DOCSIS_INFO::DOCSISDHCPAttempts
unsigned long DOCSISDHCPAttempts
Definition: cm_hal.h:217
_CMMGMT_DML_DOCSISLOG_FULL::EventID
unsigned long EventID
Definition: cm_hal.h:282
_fixed_length_buffer::buffer
unsigned char * buffer
Definition: cm_hal.h:398
_DOCSIF31_CM_US_OFDMA_CHAN::FirstActiveSubcarrierNum
unsigned int FirstActiveSubcarrierNum
Definition: cm_hal.h:362
PCMMGMT_DML_DOCSISLOG_FULL
struct _CMMGMT_DML_DOCSISLOG_FULL * PCMMGMT_DML_DOCSISLOG_FULL
PCMMGMT_CM_DS_CHANNEL
struct _CMMGMT_CM_DS_CHANNEL * PCMMGMT_CM_DS_CHANNEL
docsis_InitDS
int docsis_InitDS(void)
USHORT
#define USHORT
Definition: cm_hal.h:97
_DOCSIF31_CM_US_OFDMA_CHAN::SubcarrierSpacing
unsigned int SubcarrierSpacing
Definition: cm_hal.h:365
_DOCSIF31_CM_US_OFDMA_CHAN::ChannelId
unsigned int ChannelId
Definition: cm_hal.h:359
cm_hal_Get_LocalResetCount
int cm_hal_Get_LocalResetCount(unsigned long *resetcnt)
_DOCSIF31_CMSTATUSOFDMA_US::T4Timeouts
unsigned int T4Timeouts
Definition: cm_hal.h:383
docsis_GetProvIpType
int docsis_GetProvIpType(char *pValue)
_DOCSIF31_CM_DS_OFDM_CHAN::RollOffPeriod
unsigned int RollOffPeriod
Definition: cm_hal.h:344
cm_hal_Get_HTTP_Download_Url
int cm_hal_Get_HTTP_Download_Url(char *pHttpUrl, char *pfilename)
_DOCSIF31_CM_DS_OFDM_CHAN::NumPilots
unsigned int NumPilots
Definition: cm_hal.h:346
BOOLEAN
#define BOOLEAN
Definition: cm_hal.h:93
_DOCSIF31_CM_DS_OFDM_CHAN::NcpTotalFields
unsigned long long NcpTotalFields
Definition: cm_hal.h:352
docsis_GetDsOfdmChanTable
int docsis_GetDsOfdmChanTable(PDOCSIF31_CM_DS_OFDM_CHAN *ppinfo, int *output_NumberOfEntries)
PCMMGMT_DML_CPE_LIST
struct _CMMGMT_DML_CPE_LIST * PCMMGMT_DML_CPE_LIST
cm_hal_HTTP_LED_Flash
int cm_hal_HTTP_LED_Flash(unsigned char LedFlash)
_CM_DIPLEXER_SETTINGS::usDiplexerSetting
unsigned int usDiplexerSetting
Definition: cm_hal.h:414
cm_hal_Get_ErouterResetCount
int cm_hal_Get_ErouterResetCount(unsigned long *resetcnt)
_CMMGMT_DML_CM_LOG::EnableLog
unsigned char EnableLog
Definition: cm_hal.h:274
_CMMGMT_DML_DOCSISLOG_FULL::EventLevel
unsigned long EventLevel
Definition: cm_hal.h:283
docsis_SetStartFreq
void docsis_SetStartFreq(unsigned long value)
cm_hal_GetCPEList
int cm_hal_GetCPEList(PCMMGMT_DML_CPE_LIST *ppCPEList, unsigned long *InstanceNum, char *LanMode)
_DOCSIF31_CM_US_OFDMA_CHAN::RollOffPeriod
unsigned int RollOffPeriod
Definition: cm_hal.h:367
docsis_GetMddIpModeOverride
int docsis_GetMddIpModeOverride(char *pValue)
_CMMGMT_DML_DOCSISLOG_FULL
Definition: cm_hal.h:279
_DOCSIF31_CM_US_OFDMA_CHAN::SubcarrierZeroFreq
unsigned int SubcarrierZeroFreq
Definition: cm_hal.h:361
PCMMGMT_CM_ERROR_CODEWORDS
struct _CMMGMT_CM_ERROR_CODEWORDS * PCMMGMT_CM_ERROR_CODEWORDS
cm_hal_get_DiplexerSettings
int cm_hal_get_DiplexerSettings(CM_DIPLEXER_SETTINGS *pValue)
docsis_GetUsStatus
int docsis_GetUsStatus(unsigned short i, PCMMGMT_CM_US_CHANNEL pinfo)
CHAR
#define CHAR
Definition: cm_hal.h:85
_CMMGMT_CM_ERROR_CODEWORDS::UncorrectableCodewords
unsigned long UncorrectableCodewords
Definition: cm_hal.h:237
ANSC_IPV4_ADDRESS
#define ANSC_IPV4_ADDRESS
Definition: cm_hal.h:150
cm_hal_Get_DocsisResetCount
int cm_hal_Get_DocsisResetCount(unsigned long *resetcnt)
cm_hal_Reboot_Ready
int cm_hal_Reboot_Ready(unsigned long *pValue)
_CMMGMT_CM_DHCP_INFO
Definition: cm_hal.h:289
docsis_GetUsOfdmaChanTable
int docsis_GetUsOfdmaChanTable(PDOCSIF31_CM_US_OFDMA_CHAN *ppinfo, int *output_NumberOfEntries)
DOCSIF31_CM_US_OFDMA_CHAN
struct _DOCSIF31_CM_US_OFDMA_CHAN DOCSIF31_CM_US_OFDMA_CHAN
_DOCSIF31_CMSTATUSOFDMA_US::RangingAborteds
unsigned int RangingAborteds
Definition: cm_hal.h:384
cm_hal_Set_HTTP_Download_Interface
int cm_hal_Set_HTTP_Download_Interface(unsigned int interface)
docsis_IsEnergyDetected
int docsis_IsEnergyDetected(unsigned char *pEnergyDetected)
_fixed_length_buffer::length
unsigned short length
Definition: cm_hal.h:397
_CMMGMT_DML_CM_LOG::ClearDocsisLog
unsigned char ClearDocsisLog
Definition: cm_hal.h:275
CMMGMT_CM_EventLogEntry_t
Definition: cm_hal.h:260
PDOCSIF31_CM_US_OFDMA_CHAN
struct _DOCSIF31_CM_US_OFDMA_CHAN * PDOCSIF31_CM_US_OFDMA_CHAN
CMMGMT_DML_CM_LOG
struct _CMMGMT_DML_CM_LOG CMMGMT_DML_CM_LOG
CMMGMT_CM_US_CHANNEL
struct _CMMGMT_CM_US_CHANNEL CMMGMT_CM_US_CHANNEL
_DOCSIF31_CM_US_OFDMA_CHAN::TxPower
unsigned int TxPower
Definition: cm_hal.h:369
docsis_getCMStatus
int docsis_getCMStatus(char *cm_status)
cm_hal_DiplexerVariationCallback
int(* cm_hal_DiplexerVariationCallback)(CM_DIPLEXER_SETTINGS stCMDiplexerValue)
Definition: cm_hal.h:1276
CMMGMT_CM_IPV6DHCP_INFO
struct _CMMGMT_CM_IPV6DHCP_INFO CMMGMT_CM_IPV6DHCP_INFO
_DOCSIF31_CM_US_OFDMA_CHAN::NumActiveSubcarriers
unsigned int NumActiveSubcarriers
Definition: cm_hal.h:364
_DOCSIF31_CM_DS_OFDM_CHAN::NumActiveSubcarriers
unsigned int NumActiveSubcarriers
Definition: cm_hal.h:339
_DOCSIF31_CM_DS_OFDM_CHAN::PlcFreq
unsigned int PlcFreq
Definition: cm_hal.h:345
_DOCSIF31_CMSTATUSOFDMA_US::T3Timeouts
unsigned int T3Timeouts
Definition: cm_hal.h:382
cm_hal_Register_DiplexerVariationCallback
int cm_hal_Register_DiplexerVariationCallback(cm_hal_DiplexerVariationCallback callback_proc)
PDOCSIF31_CMSTATUSOFDMA_US
struct _DOCSIF31_CMSTATUSOFDMA_US * PDOCSIF31_CMSTATUSOFDMA_US
CMMGMT_CM_EventLogEntry_t::docsDevEvCounts
unsigned int docsDevEvCounts
Definition: cm_hal.h:265
cm_hal_InitDB
int cm_hal_InitDB(void)
cm_hal_Get_CableModemResetCount
int cm_hal_Get_CableModemResetCount(unsigned long *resetcnt)
docsis_GetUSChannel
int docsis_GetUSChannel(PCMMGMT_CM_US_CHANNEL *ppinfo)
_snmpv3_kickstart_row
Definition: cm_hal.h:401
cm_hal_get_ReinitMacThreshold
int cm_hal_get_ReinitMacThreshold(unsigned long *pValue)
docsis_GetCertStatus
int docsis_GetCertStatus(unsigned long *pVal)
PCMMGMT_CM_IPV6DHCP_INFO
struct _CMMGMT_CM_IPV6DHCP_INFO * PCMMGMT_CM_IPV6DHCP_INFO
_DOCSIF31_CMSTATUSOFDMA_US::IsMuted
unsigned char IsMuted
Definition: cm_hal.h:387
CMMGMT_CM_EventLogEntry_t::docsDevEvIndex
unsigned int docsDevEvIndex
Definition: cm_hal.h:262
_DOCSIF31_CM_DS_OFDM_CHAN::NcpFieldCrcFailures
unsigned long long NcpFieldCrcFailures
Definition: cm_hal.h:353
snmp_kickstart_row_t
struct _snmpv3_kickstart_row snmp_kickstart_row_t
_CMMGMT_CM_IPV6DHCP_INFO
Definition: cm_hal.h:307
_CMMGMT_CM_ERROR_CODEWORDS::CorrectableCodewords
unsigned long CorrectableCodewords
Definition: cm_hal.h:236
docsis_GetErrorCodewords
int docsis_GetErrorCodewords(PCMMGMT_CM_ERROR_CODEWORDS *ppinfo)
_DOCSIF31_CM_US_OFDMA_CHAN::PreEqEnabled
unsigned char PreEqEnabled
Definition: cm_hal.h:370
docsis_GetCert
int docsis_GetCert(char *pCert)
_DOCSIF31_CM_DS_OFDM_CHAN::CyclicPrefix
unsigned int CyclicPrefix
Definition: cm_hal.h:343
cm_hal_Get_HTTP_Download_Status
int cm_hal_Get_HTTP_Download_Status()
PCMMGMT_CM_DOCSIS_INFO
struct _CMMGMT_CM_DOCSIS_INFO * PCMMGMT_CM_DOCSIS_INFO
_DOCSIF31_CM_US_OFDMA_CHAN::ConfigChangeCt
unsigned int ConfigChangeCt
Definition: cm_hal.h:360
docsis_GetDOCSISInfo
int docsis_GetDOCSISInfo(PCMMGMT_CM_DOCSIS_INFO pinfo)
docsis_GetUSChannelId
unsigned char docsis_GetUSChannelId(void)
docsis_ClearDocsisEventLog
int docsis_ClearDocsisEventLog(void)
_CMMGMT_CM_DOCSIS_INFO::NetworkAccess
unsigned char NetworkAccess
Definition: cm_hal.h:222
_DOCSIF31_CM_DS_OFDM_CHAN
Definition: cm_hal.h:332
_DOCSIF31_CM_DS_OFDM_CHAN::averageSNR
char averageSNR[64]
Definition: cm_hal.h:348
EVM_MAX_EVENT_TEXT
#define EVM_MAX_EVENT_TEXT
Definition: cm_hal.h:258
_DOCSIF31_CMSTATUSOFDMA_US
Definition: cm_hal.h:373
_DOCSIF31_CM_DS_OFDM_CHAN::PlcUnreliableCodewords
unsigned long long PlcUnreliableCodewords
Definition: cm_hal.h:351
UINT
#define UINT
Definition: cm_hal.h:109
_CMMGMT_CM_DOCSIS_INFO::BPIState
unsigned char BPIState
Definition: cm_hal.h:221
docsis_GetDownFreq
unsigned long docsis_GetDownFreq(void)
DOCSIF31_CMSTATUSOFDMA_US
struct _DOCSIF31_CMSTATUSOFDMA_US DOCSIF31_CMSTATUSOFDMA_US
cm_hal_GetIPv6DHCPInfo
int cm_hal_GetIPv6DHCPInfo(PCMMGMT_CM_IPV6DHCP_INFO pInfo)
CMMGMT_CM_DOCSIS_INFO
struct _CMMGMT_CM_DOCSIS_INFO CMMGMT_CM_DOCSIS_INFO
_DOCSIF31_CMSTATUSOFDMA_US::ChannelId
unsigned int ChannelId
Definition: cm_hal.h:375
_CMMGMT_DML_CM_LOG
Definition: cm_hal.h:272
_CM_DIPLEXER_SETTINGS
Definition: cm_hal.h:411
CMMGMT_CM_ERROR_CODEWORDS
struct _CMMGMT_CM_ERROR_CODEWORDS CMMGMT_CM_ERROR_CODEWORDS
MAX_KICKSTART_ROWS
#define MAX_KICKSTART_ROWS
Definition: cm_hal.h:394
_snmpv3_kickstart_table
Definition: cm_hal.h:406
_DOCSIF31_CM_DS_OFDM_CHAN::FirstActiveSubcarrierNum
unsigned int FirstActiveSubcarrierNum
Definition: cm_hal.h:337
_DOCSIF31_CMSTATUSOFDMA_US::T3Exceededs
unsigned int T3Exceededs
Definition: cm_hal.h:386
_CMMGMT_CM_IPV6DHCP_INFO::IPv6RenewTimeRemaining
unsigned long IPv6RenewTimeRemaining
Definition: cm_hal.h:319