CcspEPONAgent
Introduction
EPON (Ethernet Passive Optical Network) uses a passive optical network. DPoE (Data Over Cable Service Interface Specification (DOCSIS) Provisioning of Ethernet Passive Optical Network) specifications implement the DOCSIS service layer interface on existing Ethernet PON. EPON Agent component provides an abstraction layer known as DPoE Hardware Abstraction Layer.
Architecture
- EPON Agent is a CCSP component that exposes TR181 parameters related to the DPoE ONU interface characteristics.
- EPON agent provides info like packet buffer capabilities to the DPoE System, the maximum rate at which OAM PDUs are transmitted on a link, and version of the ONU firmware etc.
- Maintains a TR181 data model XML file with dbus object path as /com/cisco/spvtg/ccsp/epon.
- Has a layered architecture similar to any other CCSP component.
Access Layer
- Access Layer interfaces with the CCSP message bus
- Receives any set or get calls and pass them onto the DML layer to manage the data which is in the request.
Data Model Management Layer
- Maintains the parameter list specified in the Data model XML file.
- Data Model Management Layer loads all data model access APIs from the Data model XML file
- The data model implementation in shared library interfaces HAL Integration (backend) Layer by calling backend integration APIs.
EPON Agent HAL Integration (backend) Layer, a.k.a, component-specific HAL
- This layer makes calls to underlying the DPoE ONU HAL functions, Linux system calls/commands, third party modules, open-source modules etc.
- This layer will be more component-specific.
Objects
EPON Agent objects in its DML layer:
Device.DPoE. Device.DPoE.DPoE_FirmwareInfo. Device.DPoE.DPoE_ChipInfo. Device.DPoE.DPoE_ManufacturerInfo. Device.DPoE.DPoE_DeviceSysDescrInfo. Device.DPoE.DPoE_OnuPacketBufferCapabilities. Device.DPoE.DPoE_LlidForwardingState. Device.DPoE.DPoE_OamFrameRate. Device.DPoE.DPoE_DynamicMacTable. Device.DPoE.DPoE_StaticMacTable. Device.DPoE.DPoE_OnuLinkStatistics.
DPoE HAL
This HAL layer is intended to support DPoE drivers through an open API based on the DOCSIS Provisioning of EPON Specifications.
dpoe_hal.h file provides the function call prototypes and structure definitions used for the RDK-Broadband DPoE hardware abstraction layer.
dpoe_hal.h will be available in the CMF repo path ./rdkb/components/opensource/ccsp/halinterface/
Some of the DPoE Subsystem level function prototypes are listed below:
Function | Description |
dpoe_getOnuId | The ONU ID is a non-volatile number that uniquely identifies a physical DPoE ONU. All logical links on a DPoE ONU report the same DPoE ONU ID, despite having different link MAC addresses. This function is called to fetch the DPoE parameter: Device.DPoE.Mac_address |
dpoe_getFirmwareInfo | The DPoE ONU firmware version number uniquely identifies a particular version of the ONU firmware. Format is defined by the ONU vendor. This function is called to fetch the DPoE parameters listed below: Device.DPoE.DPoE_FirmwareInfo.bootVersion |
dpoe_getManufacturerInfo | This function will return information corresponding to multiple OAM messages. This function is called to fetch the DPoE parameters listed below: Device.DPoE.DPoE_ManufacturerInfo.info |
dpoe_getMaxLogicalLinks | The maximum number of logical links the ONU supports on the EPON. |
dpoe_getNumberOfNetworkPorts | This attribute provides the total number of TU interface ports on the ONU. This function is called to fetch the DPoE parameter: Device.DPoE.NumberOfNetworkPorts |
dpoe_getNumberOfS1Interfaces | This attribute provides the number of S1 interfaces on the DPoE ONU. This function is called to fetch the DPoE parameter: Device.DPoE.NumberOfS1Interfaces |
dpoe_getOnuPacketBufferCapabilities | This message provides a means for the DPoE ONU to convey information about packet buffer capabilities to the DPoE System. This function is called to fetch the DPoE parameters listed below: Device.DPoE.DPoE_OnuPacketBufferCapabilities.upstreamQueues |
dpoe_getLlidForwardingState | This attribute represents the current traffic state for an LLID. This function is called to fetch the DPoE parameters listed below: Device.DPoE.DPoE_LlidForwardingState.link |
dpoe_getOamFrameRate | This attribute represents the maximum rate at which OAM PDUs are transmitted on a link. This function is called to fetch the DPoE parameters listed below: Device.DPoE.DPoE_OamFrameRate.link |
dpoe_getDeviceSysDescrInfo | This function will return multiple pieces of device system information: Vendor Name, Model Number, HardwareInfo. This function is called to fetch the DPoE parameters listed below: Device.DPoE.DPoE_DeviceSysDescrInfo.vendorName |
dpoe_setResetOnu | This attribute resets the ONU, as if from power on. This function is called to fetch the DPoE parameter: Device.DPoE.ResetOnu |
dpoe_getDynamicMacAddressAgeLimit | This attribute represents Dynamic MAC learning table age limit. This function is called to fetch the DPoE parameter: Device.DPoE.DynamicMacAddressAgeLimit |
dpoe_getDynamicMacLearningTableSize | This attribute is a capability attribute that represents the maximum size of the DPoE ONU MAC address learning table for the entire DPoE ONU. This function is called to fetch the DPoE parameter: Device.DPoE.DynamicMacLearningTableSize |
dpoe_getDynamicMacTable | This attribute represents the dynamically learned MAC address rules. This function is called to fetch the DPoE parameters listed below: Device.DPoE.DPoE_DynamicMacTable.link |
dpoe_getStaticMacTable | This attribute represents the statically provisioned MAC address table This function is called to fetch the DPoE parameters listed below: Device.DPoE.DPoE_StaticMacTable.link |
dpoe_getMacLearningAggregateLimit | This message represents the aggregate dynamic MAC address limitfor the DPoE ONU as a whole. This is the maximum number of addresses that can be learned by all ports combined. This function is called to fetch the DPoE parameter: Device.DPoE.MacLearningAggregateLimit |
dpoe_setClearOnuLinkStatistics | This function will clear all statistics for the DPoE ONU. This function is called to fetch the DPoE parameter: Device.DPoE.ClearOnuLinkStatistics |