/******************************************************************************* | |
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 : gponOnuApi.h ** | |
** ** | |
** DESCRIPTION : This file contains ONU GPON API definitions ** | |
******************************************************************************* | |
* * | |
* MODIFICATION HISTORY: * | |
* * | |
* 29Oct06 Oren Ben Hayun created * | |
* =========================================================================== * | |
******************************************************************************/ | |
#ifndef _ONU_GPON_API_H | |
#define _ONU_GPON_API_H | |
/* Include Files | |
------------------------------------------------------------------------------*/ | |
#include "gponOnuHeader.h" | |
/* Definitions | |
------------------------------------------------------------------------------*/ | |
#define GPON_ONU_ITEM_NOT_CONIGURED (0xFFFFFFFF) | |
#define GPON_MAX_GEMPORTID (4095) | |
/* Notify Types */ | |
#define GPON_NOTIFY_OPERATION (0) | |
#define GPON_NOTIFY_ALARM (1) | |
#define GPON_NOTIFY_OMCC (2 | |
/* Counter Sizes */ | |
#define GPON_ONU_RX_PLOAM_CNT_SIZE (21) | |
#define GPON_ONU_TX_PLOAM_CNT_SIZE (10) | |
/* Operational Statuses */ | |
#define GPON_ONU_STATUS_DISCONNECTED (0) /* No Downstream sync */ | |
#define GPON_ONU_STATUS_NOT_RANGED (1) /* Downstream sync, not ranged */ | |
#define GPON_ONU_STATUS_RANGED (2) /* Ranged */ | |
#define GPON_ONU_STATUS_MAX (GPON_ONU_STATUS_RANGED) | |
/* Alarms */ | |
#define GPON_ONU_ALARM_LOS (0) | |
#define GPON_ONU_ALARM_LOF (1) | |
#define GPON_ONU_ALARM_LCDA (2) | |
#define GPON_ONU_ALARM_LCDG (3) | |
#define GPON_ONU_ALARM_SF (4) | |
#define GPON_ONU_ALARM_SD (5) | |
#define GPON_ONU_ALARM_TF (6) | |
#define GPON_ONU_ALARM_SUF (7) | |
#define GPON_ONU_ALARM_MEM (8) | |
#define GPON_ONU_ALARM_DACT (9) | |
#define GPON_ONU_ALARM_DIS (10) | |
#define GPON_ONU_ALARM_MIS (11) | |
#define GPON_ONU_ALARM_PEE (12) | |
#define GPON_ONU_ALARM_RDI (13) | |
#define GPON_ONU_ALARM_STATUS_OFF (0) | |
#define GPON_ONU_ALARM_STATUS_ON (1) | |
/* Enums | |
------------------------------------------------------------------------------*/ | |
/* Structs | |
------------------------------------------------------------------------------*/ | |
typedef struct | |
{ | |
MV_U8 password[10]; | |
MV_U8 serialNumber[8]; | |
MV_U32 onuId; | |
MV_U32 state; | |
MV_U32 sdThreshold; | |
MV_U32 sfThreshold; | |
MV_U32 localBerInterval; | |
MV_U32 remoteBerInterval; | |
MV_U32 omccPortId; | |
MV_U32 constDelay; | |
MV_U32 eqDelay; | |
}S_OnuInfo; | |
typedef struct | |
{ | |
MV_U32 bip8; | |
MV_U32 plend; | |
}S_RxStandardApiPm; | |
typedef struct | |
{ | |
MV_U32 start; | |
MV_U32 stop; | |
MV_U32 order; | |
MV_U32 polarity; | |
MV_U32 mask; | |
}S_apiBurstConfig; | |
/* Typedefs | |
------------------------------------------------------------------------------*/ | |
typedef void (*ALARMNOTIFYFUNC)(MV_U32 alarm, MV_U32 status); | |
typedef void (*OMCCNOTIFYFUNC)(MV_U32 omccPortId); | |
typedef void (*DISABLENOTIFYFUNC)(MV_BOOL disable); | |
/* Global variables | |
------------------------------------------------------------------------------*/ | |
/* Global functions | |
------------------------------------------------------------------------------*/ | |
/* Init API | |
------------------------------------------------------------------------------*/ | |
MV_STATUS onuGponApiInit(MV_U8 *serialNumber, | |
MV_U8 *password, | |
MV_BOOL disabled, | |
MV_U32 sn_src, | |
MV_U32 fecHyst, | |
MV_U32 couplingMode); | |
/* Notify API | |
------------------------------------------------------------------------------*/ | |
MV_STATUS onuGponApiStatusNotifyRegister(STATUSNOTIFYFUNC notifyCallBack); | |
MV_STATUS onuGponApiAlarmNotifyRegister(ALARMNOTIFYFUNC notifyCallBack); | |
MV_STATUS onuGponApiOmccNotifyRegister(OMCCNOTIFYFUNC notifyCallBack); | |
MV_STATUS onuGponApiDisableNotifyRegister(DISABLENOTIFYFUNC notifyCallBack); | |
/* Ber API | |
------------------------------------------------------------------------------*/ | |
MV_STATUS onuGponApiBerThresholdConfig(MV_U32 sd, MV_U32 sf); | |
MV_STATUS onuGponApiBerIntervalConfig(MV_U32 interval); | |
MV_STATUS onuGponApiBerCoefficientConfig(MV_U32 denominator, MV_U32 numerator); | |
/* Tcont API | |
------------------------------------------------------------------------------*/ | |
MV_STATUS onuGponApiTcontConfig(MV_U32 allocId, MV_U32 tcontId); | |
MV_STATUS onuGponApiTcontClear(MV_U32 tcontId); | |
MV_STATUS onuGponApiTcontsReset(void); | |
/* GEM API | |
------------------------------------------------------------------------------*/ | |
MV_STATUS onuGponApiGemOmccIdConfig(MV_U32 gemPortid, MV_BOOL valid); | |
MV_STATUS onuGponApiGemPortIdConfig(MV_U32 gemPortid); | |
MV_STATUS onuGponApiGemPortIdClear(MV_U32 gemPortid); | |
#ifdef MV_GPON_STATIC_GEM_PORT | |
MV_STATUS onuGponApiGemPortIdStaticConfigReset(void); | |
MV_STATUS onuGponApiGemPortIdStaticConfigFlag(MV_U32 flag); | |
MV_STATUS onuGponApiGemConfig(MV_U32* gemmap, E_GponIoctlGemAction action); | |
MV_STATUS onuGponApiGemClearAll(MV_BOOL savePorts); | |
MV_STATUS onuGponApiGemRestoreAll(void); | |
#endif /* MV_GPON_STATIC_GEM_PORT */ | |
/* Information API | |
------------------------------------------------------------------------------*/ | |
MV_STATUS onuGponApiInformationGet(S_OnuInfo *onuInfo); | |
/* Alarm API | |
------------------------------------------------------------------------------*/ | |
MV_STATUS onuGponApiAlarmsGet(MV_U32 *alarms); | |
/* PM API | |
------------------------------------------------------------------------------*/ | |
MV_STATUS onuGponApiPmFecPmGet(S_GponIoctlFecPm *fecPm, MV_BOOL a_clear); | |
MV_STATUS onuGponApiPmRxPloamPmGet(S_GponIoctlPloamRxPm *rxPloamPm, MV_BOOL a_clear); | |
MV_STATUS onuGponApiPmRxBwMapPmGet(S_GponIoctlBwMapPm *rxBwMapPm, MV_BOOL a_clear); | |
MV_STATUS onuGponApiPmRxBwMapPmDumpSet(MV_BOOL enable); | |
void onuGponApiPmRxBwMapPmDump(MV_U32 currstate, MV_U32 newstate); | |
MV_STATUS onuGponApiAdvancedPloamsCounterGet(S_GponIoctlPloamTxPm *txPloamPm, S_GponIoctlPloamRxPm *rxPloamPm, MV_BOOL a_clear); | |
MV_STATUS onuGponApiGemRxCounterGet(S_GponIoctlGemRxPm *gemPm, MV_BOOL a_clear); | |
MV_STATUS onuGponApiGemTxCounterGet(S_GponIoctlGemTxPm *txPm, MV_BOOL a_clear); | |
MV_STATUS onuGponApiPmRxStandardPmGet(S_RxStandardApiPm *rxStandardPm, MV_BOOL a_clear); | |
/* Genral API | |
------------------------------------------------------------------------------*/ | |
MV_STATUS onuGponApiBurstConfigSet(S_apiBurstConfig *burstConfigSet); | |
MV_STATUS onuGponApiBurstConfigGet(S_apiBurstConfig *burstConfigGet); | |
void onuGponApiResetAllCtr(void); | |
void onuGponApiUponDebugSet(MV_U32 mode); | |
MV_U32 onuGponApiUponDebugGet(void); | |
MV_STATUS onuGponApiAdminStateSet(MV_U32 mode); | |
MV_STATUS onuGponApiFecStatusGet(MV_U32 *fecMode); | |
MV_STATUS onuGponApiCouplingModeSet(MV_U32 couplingMode); | |
/* Sn Mask API | |
------------------------------------------------------------------------------*/ | |
MV_STATUS onuGponApiSnMaskConfig(MV_BOOL enable, MV_BOOL match); | |
/* Interoperability API | |
------------------------------------------------------------------------------*/ | |
MV_STATUS onuGponApiExtendedBurstSet(MV_BOOL enable, MV_U32 range, MV_U32 oper); | |
MV_STATUS onuGponApiExtendedBurstDelaySet(MV_BOOL enable, MV_U32 syncDel, MV_U32 operDel); | |
MV_STATUS onuGponApiDelimiterSet(MV_BOOL enable, MV_U32 delimiter); | |
MV_STATUS onuGponApiOnuIdSet(MV_BOOL enable, MV_U32 onuId); | |
MV_STATUS onuGponApiOmccPortIdSet(MV_BOOL enable, MV_U32 portId); | |
MV_STATUS onuGponApiEqualizationDelaySet(MV_BOOL enable, MV_U32 eqD); | |
MV_STATUS onuGponApiEqualizationDelayChange(MV_U32 direction, MV_U32 size); | |
/* GEM Port MIB Counters PM API | |
------------------------------------------------------------------------------*/ | |
MV_STATUS onuGponApiGemPortPmConfig(S_GponIoctlGemPortPmConfig *ioctlGemPortPmConfig); | |
MV_STATUS onuGponApiGemPortPmGet(S_GponIoctlGemPortMibCounters *ioctlGemPortMibCounters); | |
MV_STATUS onuGponApiGemPortPmReset(void); | |
/* Dying Gasp API | |
------------------------------------------------------------------------------*/ | |
MV_STATUS onuGponApiDgCallbackRegister(DYINGGASPFUNC dgCallBack); | |
/* Link status API | |
------------------------------------------------------------------------------*/ | |
MV_STATUS onuGponApiLinkStatusCallbackRegister(void); | |
MV_BOOL onuGponLinkIsUp(void); | |
/* Macros | |
------------------------------------------------------------------------------*/ | |
#endif /* _ONU_GPON_API_H */ | |