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:

FunctionDescription
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
Device.DPoE.DPoE_FirmwareInfo.bootCrc32
Device.DPoE.DPoE_FirmwareInfo.appVersion
dpoe_getManufacturerInfo

This function will return information corresponding to multiple OAM messages.
- Date of Manufacture (D7/00 05) encoded in Binary Coded Decimal (BCD) digits as YYYYMMDD.
- Manufacturer Info (D7/00 06) typically contains a serial number, and possibly other manufacturing information. Format is defined by the ONU vendor.
- ONU Manufacturer Organization Name (D7/00 0E) represents the organization which manufactured the D-ONU.

This function is called to fetch the DPoE parameters listed below:

Device.DPoE.DPoE_ManufacturerInfo.info
Device.DPoE.DPoE_ManufacturerInfo.organizationName
Device.DPoE.DPoE_ManufacturerInfo.manufacturerDate
dpoe_getMaxLogicalLinksThe 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
Device.DPoE.DPoE_OnuPacketBufferCapabilities.upQueuesMaxPerLink
Device.DPoE.DPoE_OnuPacketBufferCapabilities.upQueueIncrement
Device.DPoE.DPoE_OnuPacketBufferCapabilities.downstreamQueues
Device.DPoE.DPoE_OnuPacketBufferCapabilities.dnQueuesMaxPerPort
Device.DPoE.DPoE_OnuPacketBufferCapabilities.dnQueueIncrement
Device.DPoE.DPoE_OnuPacketBufferCapabilities.totalPacketBuffer
Device.DPoE.DPoE_OnuPacketBufferCapabilities.dnPacketBuffer
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
Device.DPoE.DPoE_LlidForwardingState.forwardingState
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
Device.DPoE.DPoE_OamFrameRate.maxRate
Device.DPoE.DPoE_OamFrameRate.minRate
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
Device.DPoE.DPoE_DeviceSysDescrInfo.modelNumber
Device.DPoE.DPoE_DeviceSysDescrInfo.hardwareVersion
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
Device.DPoE.DPoE_DynamicMacTable.macAddress
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
Device.DPoE.DPoE_StaticMacTable.macAddress
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



  • No labels