/******************************************************************************* | |
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. | |
******************************************************************************/ | |
/****************************************************************************** | |
** FILE : gponOnuMngr.h ** | |
** ** | |
** DESCRIPTION : This file contains ONU GPON Manager definitions ** | |
******************************************************************************* | |
* * | |
* MODIFICATION HISTORY: * | |
* * | |
* 29Oct06 Oren Ben Hayun created * | |
* =========================================================================== * | |
******************************************************************************/ | |
#ifndef _ONU_GPON_MNGR_H | |
#define _ONU_GPON_MNGR_H | |
/* Include Files | |
------------------------------------------------------------------------------*/ | |
/* Definitions | |
------------------------------------------------------------------------------*/ | |
/* Disable Message disable/Enable Options */ | |
#define GPON_ONU_DISABLE (0xFF) | |
#define GPON_ONU_ENABLE_ALL (0x0F) | |
#define GPON_ONU_ENABLE_ONU (0x00) | |
/* timer sub types */ | |
#define TIMER_T01_EXPIRE (1) | |
#define TIMER_T02_EXPIRE (2) | |
#define TIMER_PEE_EXPIRE (3) | |
/* stats sub types */ | |
#define STATS_ACCMULATE (1) | |
#define STATS_RESET (2) | |
#define STATS_SHOW (3) | |
/* Alarms Types */ | |
#define ONU_PON_MNGR_LOS_ALARM (0) | |
#define ONU_PON_MNGR_LOF_ALARM (1) | |
#define ONU_PON_MNGR_LCDG_ALARM (2) | |
/* Assign Alloc Id Types */ | |
#define ONU_GPON_ATM_PAYLOAD (0) | |
#define ONU_GPON_GEM_PAYLOAD (1) | |
#define ONU_GPON_DBA_PAYLOAD (2) | |
#define ONU_GPON_DEALLOCATE (255) | |
/* Enums | |
------------------------------------------------------------------------------*/ | |
/* Typedefs | |
------------------------------------------------------------------------------*/ | |
typedef MV_STATUS (*DISABLESTATSETFUNC)(MV_BOOL disable); | |
typedef struct | |
{ | |
MV_U32 msgType; | |
MV_U32 subType; | |
MV_U32 status; | |
MV_U32 param; | |
}S_MngrMsg; | |
typedef struct | |
{ | |
MV_U32 msgType; | |
MV_U32 subType; | |
MV_U8 onuId; | |
MV_U8 msgId; | |
MV_U8 data[10]; | |
}S_MngrDebugMsg; | |
/* Global variables | |
------------------------------------------------------------------------------*/ | |
/* Global functions | |
------------------------------------------------------------------------------*/ | |
/* Interrupt handler Functions */ | |
void onuGponPonMngIntrAlarmHandler(MV_U32 alarm, MV_BOOL alarmStatus); | |
void onuGponPonMngIntrMessageHandler(void); | |
void onuGponPonMngIntrBeCounterHandler(void); | |
#ifndef PON_FPGA | |
void onuGponPonMngIntrDgHandler(void); | |
#endif /* PON_FPGA */ | |
/* Timer handler Functions */ | |
void onuGponTimerFifoAuditHndl(unsigned long data); | |
/* State Machine Functions */ | |
void onuGponPonMngPloamProcess(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngRandomDelayGen4SN_Equ(void); | |
void onuGponPonMngIsrNotExpected(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngOverheadMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngSerialNumberMaskMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngOnuIdMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngRangeTimeMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngDactOnuIdMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngDisSnMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngCfgVpVcMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngEncrptPortIdMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngAssignAllocIdMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngNoMsgMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngPopupMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngCfgPortIdMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngPhyEquErrMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngChgPwrLvlMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngPstMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngKeySwitchTimeMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngExtBurstMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngPonIdMaintenanceMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngTimerT01Hndl(unsigned long data); | |
void onuGponPonMngTimerT02Hndl(unsigned long data); | |
void onuGponPonMngTimerPeeHndl(unsigned long data); | |
void onuGponPonMngTimerT01ExpireHndl(void); | |
void onuGponPonMngTimerT02ExpireHndl(void); | |
void onuGponPonMngTimerPeeExpireHndl(void); | |
void onuGponTimerTxPwrHndl(unsigned long data); | |
/* Alarm Functions */ | |
void onuGponPonMngGenCritAlarm(E_OnuGponAlarmType alarmType_e, MV_U8 dummyVal, MV_U8 *dummyPtr); | |
void onuGponPonMngCanCritAlarm(E_OnuGponAlarmType alarmType_e, MV_U8 dummyVal, MV_U8 *dummyPtr); | |
void onuGponPonMngGenMemAlarm(E_OnuGponAlarmType alarmType_e, MV_U8 dummyVal, MV_U8 *dummyPtr); | |
/* Operation State Functions */ | |
void onuGponPonMngConfigPortIdMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngReqPassMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngBerIntervalMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngPhyEquipErrMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngReqKeyMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngEncryptPortIdMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngKeySwitchTimwMsg(MV_U8 onuId, MV_U8 msgId, MV_U8 *msgData); | |
void onuGponPonMngOverheadManualModeSet(MV_BOOL mode); | |
MV_BOOL onuGponPonMngOverheadManualModeGet(void); | |
MV_U32 onuGponPonMngrFifoErrCountersGet(MV_U32 *suspiciousCounter); | |
MV_STATUS onuGponPonMngDisableSetRegister(DISABLESTATSETFUNC disableFunc); | |
/* Macros | |
------------------------------------------------------------------------------*/ | |
#endif /* _ONU_GPON_MNGR_H */ |