...
HAL can be common-HAL or component-specific-HAL. Components may define a component specific HAL to hardware drivers, that are only used by that component
draw.io Diagram |
---|
|
Gliffy Diagram |
---|
macroId | f73e975f-6c0c-47b2-ab85-f837122379ee |
---|
name | hal into diag.drawio |
---|
diagramWidth | 791 |
---|
revision | 2 | pagePin | 1 |
---|
|
Component Specific HAL
- HAL APIs will be available in the CMF repo path: "../rdkb/components/opensource/ccsp/hal/source/"
- PandM HAL Integration (back-end) Layer is also known as component specific HAL.
- This layer makes call to underlying Linux system calls/commands, third party modules, open source modules and other CCSP components to execute the requests.
- This layer will be more component specific and will be providing APIs to CCSP so as to manage a particular hardware module of the system.
- Following are some of the component specific HALs available in "../rdkb/components/opensource/ccsp/hal/source/" path.
- Wifi
- MoCA
- MTA Agent
- CM
- Ethernet Switch
- DHCPv4C
- Virtual LAN
- Firewall
- DPoE
- BluetoothEthernet Switch
- MSO_Management
- Voice
- WAN
- TR69_TLV
Wi-Fi HAL
All HAL functions prototypes and structure definitions are available in wifi_hal.h file.
MOCA HAL
All HAL functions prototypes and structure definitions are available in moca_hal.h file.
- MoCA HAL is used for the RDK-Broadband MoCA hardware hardware abstraction layer.
- An abstraction layer, mainly for interacting with MoCA driver.
- Some of the The APIs are :
- moca_GetIfConfig
- moca_SetIfConfig
- moca_IfGetDynamicInfo
- moca_IfGetStatsIfGetStaticInfo
- moca_IfGetStats
- moca_GetNumAssociatedDevices
- moca_IfGetExtCounter
- moca_IfGetExtAggrCounter
- moca_GetMocaCPEs
- moca_GetAssociatedDevices
- moca_FreqMaskToValue
- moca_HardwareEquipped
- moca_GetFullMeshRates
- moca_GetFlowStatistics
- moca_GetResetCount
- moca_setIfAcaConfig
- moca_getIfAcaConfig
- moca_cancelIfAca
- moca_getIfAcaStatus
- moca_getIfScmod
- To see the API specification of MoCA HAL please refer - MoCA HAL APIsTo see the API specification of MoCA HAL please refer - https://rdkwiki.com/doxygen/rdkb/dd/d80/group___m_o_c_a___h_a_l___a_p_i_s.html
MTA HAL
All HAL functions prototypes and structure definitions are available in mta_hal.h file. An MTA can deliver Home Phone service in addition to High Speed Internet.
- MTA HAL used for the RDK-Broadband hardware abstraction layer for Cable Modem.
- An abstraction layer, implemented to interact with MTA device.
- mta_hal.c file provides the function call prototypes and structure definitions used for the MTA hardware abstraction layer.
- Some of the APIs are :
- mta_hal_InitDB
- mta_hal_GetDHCPInfo
- mta_hal_LineTableGetNumberOfEntries
- mta_hal_LineTableGetEntry
- mta_hal_TriggerDiagnostics
- mta_hal_GetServiceFlowGetCalls
- mta_hal_GetDectDectGetEnable
- mta_hal_DectSetEnable.
- mta_hal_DectGetRegistrationMode
- mta_hal_DectSetRegistrationMode
- mta_hal_DectDeregisterDectHandset
- mta_hal_GetCalls
- mta_hal_GetDect
- mta_hal_GetDectPIN
- mta_hal_SetDectPIN
- mta_hal_GetHandsets
- mta_hal_GetCALLP
- mta_hal_GetDSXLogs
- mta_hal_GetDSXLogEnable
- mta_hal_SetDSXLogEnable
- To see the API specification of MTA HAL please refer - MTA HAL APIs To see the API specification of MTA HAL please refer - https://rdkwiki.com/doxygen/rdkb/dc/db7/group___m_t_a___h_a_l___a_p_i_s.html
CM HAL
All HAL functions prototypes and structure definitions are available in cm_hal.h file.
- CM HAL is used for the RDK-Broadband hardware abstraction layer for Cable Modem.
- It provides interface that cable modem software developers can use to interface to RDK-B.
- Some of the APIs are :
- cm_hal_InitDB
- docsis_InitDS
- docsis_InitUS
- docsis_getCMStatus
- docsis_GetDSChannel
- docsis_GetUsStatus
- docsis_GetUSChannel
- docsis_GetDOCSISInfo
- docsis_GetNumOfActiveTxChannels
- docsis_GetNumOfActiveRxChannels
- docsis_GetErrorCodewords
- docsis_SetMddIpModeOverride
- docsis_GetMddIpModeOverride
- docsis_GetUSChannelId
- docsis_SetUSChannelId
- docsis_GetDownFreq
- docsis_SetStartFreq
- docsis_GetDocsisEventLogItems
- cm_hal_GetDHCPInfo
- cm_hal_GetCPEList
- To see the API specification of CM HAL please refer - https://rdkwiki.com/doxygen/rdkb/dd/d9e/group___c_m___h_a_l___a_p_i_s.html CM HAL APIs
Ethernet Switch HAL
All HAL functions prototypes and structure definitions are available in ccsp_hal_ethsw.h file.
- It provides implementation for Ethernet Switch Control.
- Based on how vendor exposes their driver capabilities in user space, the HAL API’s can be implemented in hal-ethsw-generic/git/source/ethsw/ccsp_hal_ethsw.c
- Some of the The APIs are :
- CcspHalEthSwInit
- CcspHalEthSwGetPortStatus
- CcspHalEthSwGetPortCfg
- CcspHalEthSwSetPortCfg
- CcspHalEthSwGetPortAdminStatus
- CcspHalEthSwSetPortAdminStatus
- CcspHalEthSwSetAgingSpeed
- CcspHalEthSwLocatePortByMacAddress
- CcspHalExtSw_getAssociatedDevice
- CcspHalExtSw_ethAssociatedDevice_callback_register
- CcspHalExtSw_getEthWanEnable
- CcspHalExtSw_setEthWanEnable
- CcspHalExtSw_getEthWanPort
- CcspHalExtSw_setEthWanPort
- GWP_RegisterEthWan_Callback
- GWP_GetEthWanLinkStatus
- GWP_GetEthWanInterfaceName
- To see the API specification of Ethernet Switch HAL please refer - Ethernet Switch HAL APIsTo see the API specification of Ethernet Switch HAL please refer - https://rdkwiki.com/doxygen/rdkb/d1/d63/group___e_t_h_s_w___h_a_l___a_p_i_s.html
DHCPv4C HAL
All HAL functions prototypes and structure definitions are available in dhcpv4c_api.h file.
- DHCPv4C HAL is used for the RDK-B DHCPv4 Client Status abstraction layer.
- DHCPv4C HAL API's functionality should be implemented by OEMs.
- dhcpv4c_api.c provides the function call prototypes and structure definitions used for the RDK-Broadband DHCPv4 Client Status abstraction layer.
- Some of the APIs are :
- dhcpv4c_get_ert_lease_time
- dhcpv4c_get_ert_remain_lease_time
- dhcpv4c_get_ert_remain_renew_time
- dhcpv4c_get_ert_remain_rebind_time
- dhcpv4c_get_ert_config_attempts
- dhcpv4c_get_ert_ifname
- dhcpv4c_get_ert_fsm_state
- dhcpv4c_get_ert_ip_addr
- dhcpv4c_get_ert_mask
- dhcpv4c_get_ert_gw
- dhcpv4c_get_ert_dns_svrs
- dhcpv4c_get_ert_mask_dhcp_svr
- dhcpv4c_get_ecm_lease_time
- dhcpv4c_get_ecm_remain_lease_time
- dhcpv4c_get_ecm_remain_renew_time
- dhcpv4c_get_ecm_remain_rebind_time
- dhcpv4c_get_ecm_config_attempts
- dhcpv4c_get_ecm_ifname
- dhcpv4c_get_ecm_fsm_state
- dhcpv4c_get_ecm_ip_addr
- To see the API specification of DHCPv4C HAL please refer - DHCPv4C HAL APIsTo see the API specification of DHCPv4C HAL please refer - https://rdkwiki.com/doxygen/rdkb/db/d07/group___d_h_c_p_v4_c___h_a_l___a_p_i_s.html
VLAN HAL
All HAL functions prototypes and structure definitions are available in vlan_hal.h file.
- VLAN HAL is or the RDK-B Broadband VLAN abstraction layer.
- VLAN HAL layer is intended to support VLAN drivers through the System Calls.
- Some of the The APIs are :
- vlan_hal_addGroup
- vlan_hal_delGroup
- vlan_hal_addInterface
- vlan_hal_delInterface
- vlan_hal_printGroup
- vlan_hal_printAllGroup
- vlan_hal_delete_all_Interfaces
- _is_this_group_available_in_linux_bridge
- _is_this_interface_available_in_linux_bridge
- _is_this_interface_available_in_given_linux_bridge
- _get_shell_outputbuffer
- insert_VLAN_ConfigEntry
- delete_VLAN_ConfigEntry
- get_vlanId_for_GroupName
- print_all_vlanId_Configuration
- To see the API specification of VLAN HAL please refer - VLAN HAL APIsTo see the API specification of VLAN HAL please refer - https://rdkwiki.com/doxygen/rdkb/d6/d34/group___v_l_a_n___h_a_l___a_p_i_s.html
Firewall HAL
All HAL functions prototypes and structure definitions are available in hal_firewall.h file.
- This module is responsible for setting firewall rules like port forwarding, port triggering Parental control etc.
- Some of the APIs are :
- firewall_service_init
- firewall_service_start
- firewall_service_restart
- GetHttpPortValue
- firewall_service_stop
- firewall_service_close
- GetHttpPortValue
- Wan2lan_log_deletion_setup
- Wan2lan_log_insertion_setup
- GettingWanIP_remotemgmt_deletion_logsetup
- GettingWanIP_remotemgmt_insertion_logsetup
- DeleteRemoteManagementIptablesRules
- AddRemoteManagementIptablesRules
- DisablingHttps
- EnablingHttps
- DisablingHttp
- EnablingHttp
- SetHttpPort
- SetHttpsPort
- RemoteManagementiptableRulessetoperation
- BasicRouting_Wan2Lan_SetupConnection
- To see the API specification of Firewall HAL please refer - Firewall HAL APIsTo see the API specification of Firewall HAL please refer - https://rdkwiki.com/doxygen/rdkb/da/da8/group___f_i_r_e_w_a_l_l___h_a_l___a_p_i_s.html
DPOE HAL
All HAL functions prototypes and structure definitions are available in dpoe_hal.h file.
- DPOE HAL is used for the RDK-Broadband DPoE hardware abstraction layer as per the DPoE-SP-OAMv1.0-I08-140807 specification.
- Some of the APIs are :
- dpoe_getOnuId
- dpoe_getFirmwareInfo
- dpoe_setResetOnugetEponChipInfo
- dpoe_getStaticMacTablegetManufacturerInfo
- dpoe_getNumberOfNetworkPorts
- dpoe_getNumberOfS1Interfaces
- dpoe_getOnuPacketBufferCapabilities
- dpoe_getOamFrameRate
- dpoe_getLlidForwardingState
- dpoe_getDeviceSysDescrInfo
- dpoe_getMaxLogicalLinks
- dpoe_setResetOnu
- dpoe_getStaticMacTable
- dpoe_getEponMode
- dpoe_getDynamicMacAddressAgeLimit
- dpoe_getDynamicMacLearningTableSize
- dpoe_getDynamicMacTable
- dpoe_getStaticMacTable
- dpoe_getMacLearningAggregateLimit
- dpoe_getOnuLinkStatistics
- To see the API specification of DPOE HAL please refer - DPOE HAL APIsTo see the API specification of DPOE HAL please refer - https://rdkwiki.com/doxygen/rdkb/d5/dba/group___d_po_e___h_a_l___a_p_i_s.html
Bluetooth HAL
All HAL functions prototypes and structure definitions are available in bt_hal.h file.
MSO Management HAL
All HAL functions prototypes and structure definitions are available in mso_mgmt_hal.h file.
Voice HAL
All HAL functions prototypes and structure definitions are available in voice_hal.h file.
- Voice HAL is used for the RDK-Broadband hardware abstraction layer for VoIP.
- Some of the APIs are :
- voice_hal_Init
- voice_hal_InitDB
- voice_hal_Deinit
- voice_hal_DeinitDB
- voice_hal_setVoiceProcessState
- voice_hal_getVoiceProcessState
- voice_hal_getVoiceProcessStatus
- voice_hal_getConfigSoftwareVersion
- voice_hal_getCountProfiles
- voice_hal_getServiceVersiongetCountServices
- voice_hal_setIpAddressFamilygetCountServices
- voice_hal_getCountLines
- voice_hal_getCountPhyInterfaces
- voice_hal_setIpAddressFamily
- voice_hal_getBoundIfName
- voice_hal_setBoundIfName
- voice_hal_setIpAddressFamily
- voice_hal_getIpAddressFamily
- voice_hal_setLinkState
- voice_hal_setIpWanAddress
- To see the API specification of Voice HAL please refer - Voice HAL APIsTo see the API specification of Voice HAL please refer - https://rdkwiki.com/doxygen/rdkb/de/d78/group___v_o_i_c_e___h_a_l___a_p_i_s.html
WAN HAL
All HAL functions prototypes and structure definitions are available in in wan_hal.h file.
- Some of the The APIs are :
- wan_hal_Init
- wan_hal_SetSelfHealConfig
- wan_hal_SetWanConnectionEnable
- wan_hal_SetSelfHealConfig
- wan_hal_GetWanOEUpstreamCurrRate
- wan_hal_GetWanOEDownstreamCurrRate
- wan_hal_SetQoSConfiguration
- wan_hal_RestartWanService
- To see the API specification of WAN HAL please refer - https://rdkwiki.com/doxygen/rdkb/dc/d2d/group___w_a_n___h_a_l___a_p_i_s.html WAN HAL APIs
TR69_TLV HAL
All HAL functions prototypes and structure definitions are available in Tr69_Tlv.h file.
- Telemetry Key fields and data fields are stored in the database as TLV (Tag, Length, Value)
- Tag - uniquely identifies the field.
- Length - gives the size (in number of bytes) of the data associated with the field.
- Value - contains the actual data associated with the field stored in network byte ordering.
Common HAL
- A common HAL provides the necessary abstraction to all the CCSP components to interface with other common hardware components.
- Eg : Platform HAL
Platform HAL
- Platform HAL is an abstraction layer, implemented to interact with cable modem device for getting the hardware specific details such as Firmware Name, Boot loader Version, etc.
- This HAL layer is intended to support platform drivers
- platform_hal.c file provides the function call prototypes and structure definitions used for the platform hardware abstraction layer
- Some of the APIs are :
- platform_hal_GetDeviceConfigStatus
- platform_hal_GetTelnetEnable
- platform_hal_GetSSHEnable
- platform_hal_SetSSHEnable
- platform_hal_GetSNMPEnable
- platform_hal_SetSNMPEnable
- platform platform_hal_GetSerialNumber
- platform_hal_GetWebUITimeout
- platform_hal_SetWebUITimeout
- platform_hal_GetWebAccessLevel
- platform_hal_SetWebAccessLevel
- platform_hal_PandMDBInit
- platform_hal_DocsisParamsDBInit
- platform_hal_GetModelName
- platform_hal_GetFirmwareName
- platform_hal_GetHardwareVersion
- platform_hal_GetSoftwareVersion
- platform_hal_GetBootloaderVersion
- platform_hal_GetBaseMacAddress
- platform_hal_GetHardware
To see the API specification of Platform HAL please refer - Platform HAL APIs