/******************************************************************************* | |
Copyright (C) Marvell International Ltd. and its affiliates | |
This software file (the "File") is owned and distributed by Marvell | |
International Ltd. and/or its affiliates ("Marvell") under the following | |
alternative licensing terms. Once you have made an election to distribute the | |
File under one of the following license alternatives, please (i) delete this | |
introductory statement regarding license alternatives, (ii) delete the two | |
license alternatives that you have not elected to use and (iii) preserve the | |
Marvell copyright notice above. | |
******************************************************************************** | |
Marvell Commercial License Option | |
If you received this File from Marvell and you have entered into a commercial | |
license agreement (a "Commercial License") with Marvell, the File is licensed | |
to you under the terms of the applicable Commercial License. | |
******************************************************************************** | |
Marvell GPL License Option | |
If you received this File from Marvell, you may opt to use, redistribute and/or | |
modify this File in accordance with the terms and conditions of the General | |
Public License Version 2, June 1991 (the "GPL License"), a copy of which is | |
available along with the File in the license.txt file or by writing to the Free | |
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or | |
on the worldwide web at http://www.gnu.org/licenses/gpl.txt. | |
THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED | |
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY | |
DISCLAIMED. The GPL License provides additional details about this warranty | |
disclaimer. | |
******************************************************************************** | |
Marvell BSD License Option | |
If you received this File from Marvell, you may opt to use, redistribute and/or | |
modify this File under the following licensing terms. | |
Redistribution and use in source and binary forms, with or without modification, | |
are permitted provided that the following conditions are met: | |
* Redistributions of source code must retain the above copyright notice, | |
this list of conditions and the following disclaimer. | |
* Redistributions in binary form must reproduce the above copyright | |
notice, this list of conditions and the following disclaimer in the | |
documentation and/or other materials provided with the distribution. | |
* Neither the name of Marvell nor the names of its contributors may be | |
used to endorse or promote products derived from this software without | |
specific prior written permission. | |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | |
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR | |
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | |
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
******************************************************************************/ | |
/******************************************************************************/ | |
/** **/ | |
/** MODULE : ONU EPON **/ | |
/** **/ | |
/** FILE : eponOnuDb.h **/ | |
/** **/ | |
/** DESCRIPTION : This file contains ONU EPON database definitions **/ | |
/** **/ | |
/****************************************************************************** | |
* * | |
* MODIFICATION HISTORY: * | |
* * | |
* 26Jan10 oren_ben_hayun created * | |
* ========================================================================== * | |
* | |
******************************************************************************/ | |
#ifndef _ONU_EPON_DB_H | |
#define _ONU_EPON_DB_H | |
/* Include Files | |
------------------------------------------------------------------------------*/ | |
/* Definitions | |
------------------------------------------------------------------------------*/ | |
/******************************************************************************/ | |
/* ========================================================================== */ | |
/* Database Definitions */ | |
/* ========================================================================== */ | |
/******************************************************************************/ | |
/* EPON MAC State Definitions */ | |
#define ONU_EPON_REGISTERED (0x01) | |
#define ONU_EPON_NOT_REGISTERD (0x00) | |
/* EPON State Definitions */ | |
#define ONU_EPON_02_REGISTER_PENDING (0x01) | |
#define ONU_EPON_03_OPERATION (0x02) | |
#define ONU_EPON_MAX_NUM_OF_STATE (4) | |
/* EPON Event Definitions */ | |
#define ONU_EPON_REGISTER_MSG_FLAG_ACK (0x01) | |
#define ONU_EPON_REGISTER_MSG_FLAG_DEREG (0x02) | |
#define ONU_EPON_REGISTER_MSG_FLAG_REREG (0x03) | |
#define ONU_EPON_MAX_NUM_OF_EVENT (8) | |
/* EPON Configuration Definitions */ | |
#define ONU_REG_REQ_AUTO_RES (0x01) | |
#define ONU_REG_REQ_SW_RES (0x00) | |
#define ONU_REG_ACK_AUTO_RES (0x01) | |
#define ONU_REG_ACK_SW_RES (0x00) | |
#define ONU_REPORT_AUTO_RES (0x01) | |
#define ONU_REPORT_SW_RES (0x00) | |
#define ONU_RX_PCS_FEC_EN (0x01) | |
#define ONU_RX_PCS_FEC_DIS (0x00) | |
#define ONU_TX_PCS_FEC_EN (0x01) | |
#define ONU_TX_PCS_FEC_DIS (0x00) | |
#define ONU_TX_FEC_DIS (0x00) | |
#define ONU_RX_DIS (0x00) | |
#define ONU_RX_EN (0x01) | |
#define ONU_TX_DIS (0x00) | |
#define ONU_TX_EN (0x01) | |
/* EPON Registration Definitions */ | |
#define ONU_REGISTER (0x01) | |
#define ONU_REGISTER_ACK (0x02) | |
#define ONU_REGISTER_REQ (0x03) | |
/* EPON ONU Sync Time Definitions */ | |
#define ONU_DEF_SYNC_TIME_ADD (0x00) | |
#define ONU_DEF_SYNC_TIME_DIS_DISCOVER_AUTO (0x01) | |
#define ONU_DEF_SYNC_TIME_DIS_GATE_AUTO (0x00) | |
#define ONU_DEF_SYNC_TIME_FORCE_SW (0x00) | |
#define ONU_DEF_SYNC_TIME (0x34) | |
/* EPON ONU DDM Definitions */ | |
#define ONU_DEF_DDM_DELAY (0x08) | |
/* EPON Packet Filtering Definitions */ | |
#define ONU_FORWARD_LLID_ALL_PKT (0x00) | |
#define ONU_FORWARD_LLID_ALL_PKT_FILTER (0x01) | |
#define ONU_FORWARD_LLID_7FFF_MODE_0_PKT (0x01) | |
#define ONU_FORWARD_LLID_7FFF_MODE_1_PKT (0x01) | |
#define ONU_FORWARD_LLID_XXXX_MODE_1_PKT (0x00) | |
#define ONU_DROP_LLID_NNNN_MODE_1_PKT (0x00) | |
/* EPON Error Filtering Definitions */ | |
#define ONU_FORWARD_LLID_CRC_ERR_PKT (0x00) | |
#define ONU_FORWARD_LLID_CRC_ERR_PKT_IGNORE (0x01) | |
#define ONU_FORWARD_LLID_FCS_ERR_PKT (0x00) | |
#define ONU_FORWARD_LLID_GMII_ERR_PKT (0x00) | |
#define ONU_FORWARD_LLID_LEN_ERR_PKT (0x00) | |
/* EPON Packet Forwarding Definitions */ | |
#define ONU_SLOW_FRAME_TO_CTRL_QUEUE (0x00) | |
#define ONU_SLOW_FRAME_TO_RPRT_QUEUE (0x00) | |
#define ONU_RPRT_FRAME_TO_RPRT_QUEUE (0x00) | |
#define ONU_RPRT_FRAME_TO_DATA_QUEUE (0x00) | |
#define ONU_CTRL_FRAME_TO_CTRL_QUEUE (0x01) | |
#define ONU_CTRL_FRAME_TO_DATA_QUEUE (0x00) | |
/* EPON Ether Type Definitions */ | |
#define ONU_MPCP_CTRL_TYPE (0x8808) | |
#define ONU_OAM_CTRL_TYPE (0x8809) | |
/* EPON MAC Address Definitions */ | |
#define ONU_BROADCAST_ADDR_LOW (0xC2000001) | |
#define ONU_BROADCAST_ADDR_HIGH (0x00000180) | |
#define ONU_MAC_ADDR_LOW (0x09b0302c) | |
#define ONU_MAC_ADDR_HIGH (0x00000013) | |
/* EPON LLID Definitions */ | |
#define ONU_UNUSED_LLID (0xFFFF) | |
#define ONU_DEF_TX_LLID (0x07FF) | |
#define ONU_DEF_RX_LLID (0x0000) | |
#define ONU_LLID_VALUE_MASK (0x7FFF) | |
#define ONU_LLID_INDEX_MASK (0x000F) | |
#define ONU_LLID_VALID_MASK (0x0001) | |
#define ONU_LLID_VALUE_SHIFT (0) | |
#define ONU_LLID_INDEX_SHIFT (15) | |
#define ONU_LLID_VALID_SHIFT (19) | |
/* EPON Laser Definitions */ | |
#define ONU_DEF_LASER_ON_TIME (0x10) | |
#define ONU_DEF_LASER_OFF_TIME (0x00) | |
#define ONU_DEF_LASER_ON_OFF_TIME (0x30) | |
/* EPON TXM Definitions */ | |
#ifdef PON_Z1 | |
#define ONU_DEF_TXM_CFG_MODE (0x0) | |
#define ONU_DEF_TXM_CFG_ALIGNMENT (0x1) | |
#define ONU_DEF_TXM_CFG_PRIORITY (0x0) | |
#else /* PON_Z2 */ | |
#define ONU_DEF_TXM_CFG_TFEC_1 (0x2) | |
#define ONU_DEF_TXM_CFG_TFEC_2 (0x2) | |
#define ONU_DEF_TXM_CFG_CTRL_FIFO_DIS_FCS_ON (0x1) | |
#define ONU_DEF_TXM_CFG_CTRL_FIFO_DIS_FCS_OFF (0x0) | |
#define ONU_DEF_TXM_CFG_MASK_GMII_ON (0x1) | |
#define ONU_DEF_TXM_CFG_MASK_GMII_OFF (0x0) | |
#define ONU_DEF_TXM_CFG_BLOCK_DATA_ON (0x1) | |
#define ONU_DEF_TXM_CFG_BLOCK_DATA_OFF (0x0) | |
#define ONU_DEF_TXM_CFG_IPG_ADD (0x1) | |
#define ONU_DEF_TXM_CFG_IPG_DONT_ADD (0x0) | |
#define ONU_DEF_TXM_CFG_MODE_EPON (0x00) | |
#define ONU_DEF_TXM_CFG_MODE_GE (0x01) | |
#define ONU_DEF_TXM_CFG_MODE_TX_DIS (0x10) | |
#define ONU_DEF_TXM_CFG_ALIGNMENT_ODD (0x10) | |
#define ONU_DEF_TXM_CFG_ALIGNMENT_EVEN (0x01) | |
#define ONU_DEF_TXM_CFG_ALIGNMENT_DONT_CARE (0x00) | |
#define ONU_DEF_TXM_CFG_PRIORITY_CTRL_FIRST (0x1) | |
#define ONU_DEF_TXM_CFG_PRIORITY_RPRT_FIRST (0x0) | |
#define ONU_DEF_TXM_CFG_EPON_OVERHEAD (0x0E01) | |
#define ONU_DEF_TXM_CFG_P2P_OVERHEAD (0x0E06) | |
#endif /* PON_Z2 */ | |
/* EPON PCS Definitions */ | |
#define ONU_DEF_PCS_CFG_RX_EN (0x01) | |
#define ONU_DEF_PCS_CFG_TX_EN (0x10) | |
/* P2P PCS Definitions */ | |
#define ONU_P2P_PCS_TX_RX_NEW (0x610) | |
#define ONU_P2P_PCS_TX_NEW (0x611) | |
#define ONU_P2P_PCS_TX_RX_OLD (0x613) | |
/* EPON DDM Definitions */ | |
#define ONU_DEF_DDM_CFG_TX_EN_OR (0x2) | |
#define ONU_DEF_DDM_CFG_POLARITY_HIGH (0x0) | |
#define ONU_DEF_DDM_CFG_POLARITY_LOW (0x1) | |
/* EPON Packet Size */ | |
#define ONU_DEF_MIN_PKT_SIZE (64) | |
#define ONU_DEF_MAX_PKT_SIZE (2040) | |
/* EPON Holdover State */ | |
#define ONU_HOLDOVER_NOT_ACTIVE (0) | |
#define ONU_HOLDOVER_ACTIVE (1) | |
/* EPON Silence State */ | |
#define ONU_SILENCE_NOT_ACTIVE (0) | |
#define ONU_SILENCE_ACTIVE (1) | |
#define ONU_SILENCE_DISABLED (0) | |
#define ONU_SILENCE_ENABLED (1) | |
/* EPON DBA */ | |
#define ONU_DBA_HW_RPRT_MODE (0) | |
#define ONU_DBA_SW_RPRT_MODE (1) | |
#define ONU_DBA_DEF_QUEUES_BIT_MAP (0xFF) | |
#define ONU_DBA_DEF_NUM_OF_QUEUE (8) | |
#define ONU_DBA_DEF_NUM_OF_QUEUESET (1) | |
#define ONU_DBA_MAX_NUM_OF_QUEUE (8) | |
#define ONU_DBA_MAX_NUM_OF_QUEUESET (4) | |
#define ONU_DBA_DEF_QUEUESET_0_THRESHOLD (0x2000) | |
#define ONU_DBA_DEF_QUEUESET_1_THRESHOLD (0x4000) | |
#define ONU_DBA_DEF_QUEUESET_2_THRESHOLD (0x6000) | |
#define ONU_DBA_DEF_QUEUESET_3_THRESHOLD (0xFFFF) | |
#define ONU_DBA_DEF_QUEUESET_DEF_THRESHOLD (0xFFFF) | |
#define ONU_DBA_UPDATE_LLID (2) | |
#define ONU_DBA_ACTIVE_LLID (1) | |
#define ONU_DBA_NON_ACTIVE_LLID (0) | |
#define ONU_DBA_SW_RPRT_NORMAL_DIR (0) | |
#define ONU_DBA_SW_RPRT_REVERSE_DIR (1) | |
#define ONU_OAM_CTRL_MSG (0) | |
#define ONU_OAM_RPRT_MSG (1) | |
#define ONU_OAM_DG_MSG (2) | |
/* EPON FEC */ | |
#define ONU_FEC_CFG_INIT (0) | |
#define ONU_FEC_CFG_RE_INIT (1) | |
/* Enums | |
------------------------------------------------------------------------------*/ | |
/* Typedefs | |
------------------------------------------------------------------------------*/ | |
typedef void (*EPONFUNCPTR) (MV_U8, MV_U8, MV_U8*); | |
/******************************************************************************/ | |
/* ========================================================================== */ | |
/* Database Definitions */ | |
/* ========================================================================== */ | |
/******************************************************************************/ | |
/* ONU EPON General Tables */ | |
typedef struct | |
{ | |
MV_U32 onuEponRegReqAutoRes; /* Register Request Auto Response */ | |
MV_U32 onuEponRegAckAutoRes; /* Register Ack Auto Response */ | |
MV_U32 onuEponReportAutoRes; /* Report Auto Response */ | |
MV_U32 onuEponRxPcsFecEn; /* Rx PCS FEC Enable */ | |
MV_U32 onuEponTxPcsFecEn; /* Tx PCS FEC Enable */ | |
MV_U32 onuEponTxFecEn; /* Tx FEC Enable */ | |
}S_OnuEponConfig; | |
typedef struct | |
{ | |
MV_U32 addressLow; /* MAC Address Low */ | |
MV_U32 addressHigh; /* MAC Address High */ | |
}S_OnuEponMacAddr; | |
typedef struct | |
{ | |
MV_U8 state; /* Is threshold configuration active for the queue */ | |
MV_U16 threshold; /* Queue threshold: range 0 - 65535 */ | |
}S_OnuEponDbaQueue; | |
typedef struct | |
{ | |
MV_U32 active; | |
MV_U32 highestReportQueue; | |
MV_U32 queuesBitMap; | |
MV_U32 numOfQueues; | |
MV_U32 numOfQueueSets; | |
S_OnuEponDbaQueue queueThreshold[EPON_MAX_QUEUE_SET_NUMBER][EPON_MAX_THRESHOLD_SET_RER_QUEUE]; | |
}S_OnuEponDba; | |
typedef struct | |
{ | |
MV_U32 reg; | |
MV_U32 shift; | |
MV_U32 shadowIdx; | |
}S_OnuEponDbaSwRprtRegMap; | |
typedef struct | |
{ | |
MV_U32 reg; | |
MV_U32 shadow; | |
}S_OnuEponDbaShadowRegMap; | |
typedef struct | |
{ | |
MV_U32 onuEponValid[EPON_MAX_MAC_NUM]; /* ONU Valid for sync */ | |
MV_U32 onuEponState[EPON_MAX_MAC_NUM]; /* ONU State */ | |
MV_U32 onuEponSignalDetect; | |
MV_U32 onuEponDsSyncOkPcs; | |
MV_U32 onuEponCtrlType; /* ONU Control Type */ | |
MV_U32 onuEponSyncTime[EPON_MAX_MAC_NUM]; /* ONU Sync Time */ | |
MV_U32 onuEponHoldoverState; | |
MV_U32 onuEponHoldoverTime; | |
MV_U32 onuEponHoldoverExecute; | |
MV_U32 onuEponSilenceState; | |
MV_U32 onuEponDbaMode; /* HW / SW Modes */ | |
MV_U32 onuEponDbaSwQueuesetDir; /* SW Report Queueset Direction */ | |
MV_U32 onuEponDbaSwQueueDir; /* SW Report Queue Direction */ | |
S_OnuEponDba onuEponDba[EPON_MAX_MAC_NUM]; | |
S_OnuEponConfig onuEponCfg; /* ONU Configuration */ | |
S_OnuEponMacAddr onuEponMacAddr[EPON_MAX_MAC_NUM]; /* ONU MAC Address */ | |
S_OnuEponMacAddr onuEponBcastAddr; /* ONU MAC Broadcast Address */ | |
STATUSNOTIFYFUNC onuStatusCallback; | |
DYINGGASPFUNC onuDgCallback; | |
LINKSTATUSFUNC onuLinkStatusCallback; | |
MV_U32 onuEponMode; | |
MV_U32 onuEponP2PForceMode; | |
MV_U32 onuEponPcsCfg; | |
MV_U32 onuEponOverHead; | |
MV_U32 onuEponPhyOutput; | |
MV_U32 onuEponXvrBurstEnPolarity; | |
}S_OnuEponGenTbl; | |
/* ONU EPON Data Path tables */ | |
typedef struct | |
{ | |
MV_U32 slowFrameToCtrlQueue; | |
MV_U32 slowFrameToRprtQueue; | |
MV_U32 rprtFrameToRprtQueue; | |
MV_U32 rprtFrameToDataQueue; | |
MV_U32 ctrlFrameToCtrlQueue; | |
MV_U32 ctrlFrameToDataQueue; | |
}S_OnuEponRxPktForward; | |
typedef struct | |
{ | |
MV_U32 dropLlid1NNN; | |
MV_U32 forwardLlidAll; | |
MV_U32 forwardLlid1XXX; | |
MV_U32 forwardLlid1FFF; | |
MV_U32 forwardLlid0FFF; | |
MV_U32 ignoreLenErr; | |
MV_U32 ignoreGmiiErr; | |
MV_U32 ignoreFcsErr; | |
MV_U32 ignoreLlidCrcErr; | |
}S_OnuEponRxPktFilter; | |
typedef struct | |
{ | |
MV_U32 onuEponRxPktMinSize; /* ONU Rx Packet Min Size */ | |
MV_U32 onuEponRxPktMaxSize; /* ONU Rx Packet Max Size */ | |
S_OnuEponRxPktForward onuEponPktForward; /* ONU Rx Packet Forward */ | |
S_OnuEponRxPktFilter onuEponPktFilter; /* ONU Rx Packet Filter */ | |
MV_U32 onuEponRxLLID[EPON_MAX_MAC_NUM]; /* ONU Rx Packet Rx LLID Array */ | |
MV_U32 onuEponTxLLID[EPON_MAX_MAC_NUM]; /* ONU Rx Packet Tx LLID Array */ | |
}S_OnuEponDatapathTbl; | |
/* ONU EPON DataBase */ | |
typedef struct | |
{ | |
S_OnuEponGenTbl onuEponGenTbl_s; | |
S_OnuEponDatapathTbl onuEponDataPathTbl_s; | |
}S_OnuEponDb; | |
/* Global variables | |
------------------------------------------------------------------------------*/ | |
/* ONU EPON Database */ | |
extern S_OnuEponDb onuEponDb_s; | |
/* Global functions | |
------------------------------------------------------------------------------*/ | |
/* ONU EPON database init function */ | |
MV_STATUS onuEponDbInit(void); | |
MV_STATUS onuEponDbReInit(MV_U32 macId); | |
/* ONU EPON general table API functions */ | |
MV_STATUS onuEponDbOnuValidSet(MV_BOOL onuValid, MV_U32 macId); | |
MV_BOOL onuEponDbOnuValidGet(MV_U32 macId); | |
MV_STATUS onuEponDbOnuStateSet(MV_U32 onuState, MV_U32 macId); | |
MV_U32 onuEponDbOnuStateGet(MV_U32 macId); | |
MV_STATUS onuEponDbOnuSignalDetectSet(MV_U32 onuState); | |
MV_U32 onuEponDbOnuSignalDetectGet(void); | |
MV_STATUS onuEponDbOnuDsSyncOkPcsSet(MV_U32 onuState); | |
MV_U32 onuEponDbOnuDsSyncOkPcsGet(void); | |
MV_STATUS onuEponDbOnuCtrlTypeSet(MV_U32 ctrlType); | |
MV_U32 onuEponDbOnuCtrlTypeGet(void); | |
MV_STATUS onuEponDbOnuSyncTimeSet(MV_U32 syncTime, MV_U32 macId); | |
MV_U32 onuEponDbOnuSyncTimeGet(MV_U32 macId); | |
MV_STATUS onuEponDbOnuMacAddrSet(MV_U32 lowAddr, MV_U32 highAddr, MV_U32 macId); | |
MV_STATUS onuEponDbOnuMacAddrGet(MV_U32 *lowAddr, MV_U32 *highAddr, MV_U32 macId); | |
MV_STATUS onuEponDbOnuBcastAddrSet(MV_U32 lowAddr, MV_U32 highAddr); | |
MV_STATUS onuEponDbOnuBcastAddrGet(MV_U32 *lowAddr, MV_U32 *highAddr); | |
MV_STATUS onuEponDbOnuCfgSet(MV_U32 regReqAutoRes, MV_U32 regAckAutoRes, MV_U32 reportAutoRes, | |
MV_U32 rxPcsFecEn, MV_U32 txPcsFecEn, MV_U32 txFecEn); | |
MV_STATUS onuEponDbOnuCfgGet(MV_U32 *regReqAutoRes, MV_U32 *regAckAutoRes, MV_U32 *reportAutoRes, | |
MV_U32 *rxPcsFecEn, MV_U32 *txPcsFecEn, MV_U32 *txFecEn); | |
MV_STATUS onuEponDbOnuCfgAutoSet(MV_U32 regReqAutoRes, MV_U32 regAckAutoRes, MV_U32 reportAutoRes); | |
MV_STATUS onuEponDbOnuRxFecCfgSet(MV_U32 rxPcsFecEn); | |
MV_STATUS onuEponDbOnuRxFecCfgGet(MV_U32 *rxPcsFecEn); | |
MV_STATUS onuEponDbOnuTxFecCfgGet(MV_U32 *txFecEn, MV_U32 macId); | |
MV_STATUS onuEponDbOnuDbaHighestReportQueueSet(MV_U32 queueNum, MV_U32 macId); | |
MV_U32 onuEponDbOnuDbaHighestReportQueueGet(MV_U32 macId); | |
MV_STATUS onuEponDbOnuDbaQueuesBitMapSet(MV_U32 queuesBitMap, MV_U32 macId); | |
MV_U32 onuEponDbOnuDbaQueuesBitMapGet(MV_U32 macId); | |
MV_STATUS onuEponDbOnuDbaNumOfQueuesSet(MV_U32 numOfQueues, MV_U32 macId); | |
MV_U32 onuEponDbOnuDbaNumOfQueuesGet(MV_U32 macId); | |
MV_STATUS onuEponDbOnuDbaNumOfQueuesetSet(MV_U32 numOfQueueset, MV_U32 macId); | |
MV_U32 onuEponDbOnuDbaNumOfQueuesetGet(MV_U32 macId); | |
MV_STATUS onuEponDbOnuDbaQueueThresholdSet(MV_U32 threshold, MV_U32 state, MV_U32 queueId, | |
MV_U32 queueSet, MV_U32 macId); | |
MV_STATUS onuEponDbOnuDbaQueueThresholdGet(MV_U32 *threshold, MV_U32 *state, MV_U32 queueId, | |
MV_U32 queueSet, MV_U32 macId); | |
MV_STATUS onuEponDbOnuDbaLlidThresholdGet(S_OnuEponDba *llidDba, MV_U32 macId); | |
MV_STATUS onuEponDbOnuDbaLlidActiveStatusSet(MV_U32 status, MV_U32 macId); | |
MV_U32 onuEponDbOnuDbaLlidActiveStatusGet(MV_U32 macId); | |
MV_STATUS onuEponDbOnuDbaModeSet(MV_U32 mode); | |
MV_U32 onuEponDbOnuDbaModeGet(void); | |
MV_STATUS onuEponDbOnuDbaSwModeQueuesetDirSet(MV_U32 dir); | |
MV_U32 onuEponDbOnuDbaSwModeQueuesetDirGet(void); | |
MV_STATUS onuEponDbOnuDbaSwModeQueueDirSet(MV_U32 dir); | |
MV_U32 onuEponDbOnuDbaSwModeQueueDirGet(void); | |
MV_STATUS onuEponDbOnuHoldoverStateSet(MV_U32 state); | |
MV_U32 onuEponDbOnuHoldoverStateGet(void); | |
MV_STATUS onuEponDbOnuHoldoverTimeSet(MV_U32 time); | |
MV_U32 onuEponDbOnuHoldoverTimeGet(void); | |
MV_STATUS onuEponDbOnuHoldoverExecSet(MV_U32 state); | |
MV_U32 onuEponDbOnuHoldoverExecGet(void); | |
MV_STATUS onuEponDbOnuSilenceStateSet(MV_U32 state); | |
MV_U32 onuEponDbOnuSilenceStateGet(void); | |
MV_STATUS onuEponDbOnuSwRprtTimerTypeSet(MV_U32 timerType); | |
MV_U32 onuEponDbOnuSwRprtTimerTypeGet(void); | |
MV_STATUS onuEponDbOnuSwRprtMacTimerIntervalSet(MV_U32 timerInterval); | |
MV_U32 onuEponDbOnuSwRprtMacTimerIntervalGet(void); | |
/* ONU EPON Data Path table API functions */ | |
MV_STATUS onuEponDbPktSizeSet(MV_U32 minSize, MV_U32 maxSize); | |
MV_STATUS onuEponDbPktSizeGet(MV_U32 *minSize, MV_U32 *maxSize); | |
MV_STATUS onuEponDbPktFilterPacketSet(MV_U32 forwardLlidAll, MV_U32 forwardLlid1XXX, | |
MV_U32 forwardLlid1FFF, MV_U32 forwardLlid0FFF, MV_U32 dropLlid1NNN); | |
MV_STATUS onuEponDbPktFilterPacketGet(MV_U32 *forwardLlidAll, MV_U32 *forwardLlid1XXX, | |
MV_U32 *forwardLlid1FFF, MV_U32 *forwardLlid0FFF, MV_U32 *dropLlid1NNN); | |
MV_STATUS onuEponDbPktFilterErrorSet(MV_U32 ignoreLenErr, MV_U32 ignoreGmiiErr, | |
MV_U32 ignoreFcsErr, MV_U32 ignoreLlidCrcErr); | |
MV_STATUS onuEponDbPktFilterErrorGet(MV_U32 *ignoreLenErr, MV_U32 *ignoreGmiiErr, | |
MV_U32 *ignoreFcsErr, MV_U32 *ignoreLlidCrcErr); | |
MV_STATUS onuEponDbPktForwardSet(MV_U32 slowFrameToCtrlQueue, MV_U32 slowFrameToRprtQueue, | |
MV_U32 rprtFrameToRprtQueue, MV_U32 rprtFrameToDataQueue, | |
MV_U32 ctrlFrameToCtrlQueue, MV_U32 ctrlFrameToDataQueue); | |
MV_STATUS onuEponDbPktForwardGet(MV_U32 *slowFrameToCtrlQueue, MV_U32 *slowFrameToRprtQueue, | |
MV_U32 *rprtFrameToRprtQueue, MV_U32 *rprtFrameToDataQueue, | |
MV_U32 *ctrlFrameToCtrlQueue, MV_U32 *ctrlFrameToDataQueue); | |
MV_STATUS onuEponDbPktRxLlidSet(MV_U32 llid, MV_U32 index); | |
MV_STATUS onuEponDbPktRxLlidGet(MV_U32 *llid, MV_U32 index); | |
MV_STATUS onuEponDbPktTxLlidSet(MV_U32 llid, MV_U32 index); | |
MV_STATUS onuEponDbPktTxLlidGet(MV_U32 *llid, MV_U32 index); | |
MV_STATUS onuEponDbStatusNotifySet(STATUSNOTIFYFUNC statusCallback); | |
STATUSNOTIFYFUNC onuEponDbStatusNotifyGet(void); | |
MV_STATUS onuEponDbDgCallbackSet(DYINGGASPFUNC dgCallback); | |
DYINGGASPFUNC onuEponDbDgCallbackGet(void); | |
MV_STATUS onuEponDbLinkStatusCallbackSet(LINKSTATUSFUNC linkStatusCallback); | |
LINKSTATUSFUNC onuEponDbLinkStatusCallbackGet(void); | |
MV_STATUS matchDestAddressToMacId(MV_U8 *destAddr, MV_U32 *macId); | |
MV_STATUS onuEponDbModeSet(MV_U32 mode); | |
MV_U32 onuEponDbModeGet(void); | |
MV_STATUS onuEponDbP2PForceModeSet(MV_U32 mode); | |
MV_U32 onuEponDbP2PForceModeGet(void); | |
MV_STATUS onuEponDbPcsCfgSet(MV_U32 val); | |
MV_U32 onuEponDbPcsCfgGet(void); | |
MV_STATUS onuEponDbOverheadSet(MV_U32 val); | |
MV_U32 onuEponDbOverheadGet(void); | |
MV_STATUS onuEponDbBurstEnablePolaritySet(MV_U32 val); | |
MV_U32 onuEponDbBurstEnablePolarityGet(void); | |
/* Macros | |
------------------------------------------------------------------------------*/ | |
#endif /* _ONU_EPON_DB_H */ | |