#ifndef _UMAP_STRUCT_PM_H_
#define _UMAP_STRUCT_PM_H_

#include "umap_const.h"
#include "umap_type.h"
#include "umap_enum.h" 

///////////////////////////////////////bridge/////////////////////////

//dot3
struct UMAP_EnetStats_S
{
	UMAP_U32 EnetStatsIndex;
	UMAP_U32 EnetStatsAlignmentErrors;
	UMAP_U32 EnetStatsFCSErrors;
	UMAP_U32 EnetStatsSingleCollisionFrames;
	UMAP_U32 EnetStatsMultipleCollisionFrames;
	UMAP_U32 EnetStatsSQETestErrors;
	UMAP_U32 EnetStatsDeferredTransmissions;
	UMAP_U32 EnetStatsLateCollisions;
	UMAP_U32 EnetStatsExcessiveCollisions;
	UMAP_U32 EnetStatsInternalMacTransmitErrors;
	UMAP_U32 EnetStatsCarrierSenseErrors;
	UMAP_U32 EnetStatsFrameTooLongs;
	UMAP_U32 EnetStatsInternalMacReceiveErrors;
	UMAP_U32 EnetStatsSymbolErrors;
	UMAP_U32 EnetStatsDuplexStatus;
	UMAP_U32 EnetStatsRateControlAbility;
	UMAP_U32 EnetStatsRateControlStatus;
};

//dot3
struct UMAP_EnetHcStats_S
{
	UMAP_U64 EnetHcStatsIndex;
	UMAP_U64 EnetHcStatsAlignmentErrors;
	UMAP_U64 EnetHcStatsFCSErrors;
	UMAP_U64 EnetHcStatsInternalMacTransmitErrors;
	UMAP_U64 EnetHcStatsFrameTooLongs;
	UMAP_U64 EnetHcStatsInternalMacReceiveErrors;
	UMAP_U64 EnetHcStatsSymbolErrors;
};

//dot1d
struct UMAP_TpPort_S
{
	UMAP_U16 TpPortIndex;
	UMAP_U32 TpPortMaxInfo;
	UMAP_U32 TpPortInFrames;
	UMAP_U32 TpPortOutFrames;
	UMAP_U32 TpPortInDiscards;
};

/////////////////////////////////////////shdsl//////////////////////////

//SHDSL2_GET_ENDPOINT_CURR_PM
struct UMAP_ShdslEndpointCurr_S
{
	UMAP_U32 ifIndex;
	UMAP_U32 shdslInvIndex;
	UMAP_U16 shdslEndpointSide; //reserve
	UMAP_U16 shdslEndpointWirePair ; //reserve --always 2 wires
	UMAP_S16 shdslEndpointCurrAtn ; //range:-127~128 dB
	UMAP_S16 shdslEndpointCurrSnrMgn ; //range:-127~128 dB
	UMAP_U16 shdslEndpointCurrStatus ; //reserve Because FW takes care of it and CM doesn't need to handle it.
	UMAP_U16 shdslEndpointCurr15MinTimeElapsed ;
	UMAP_U16 shdslEndpointCurr15MinES ;
	UMAP_U16 shdslEndpointCurr15MinSES ;
	UMAP_U32 shdslEndpointCurr15MinCRCanomalies ;
	UMAP_U16 shdslEndpointCurr15MinLOSWS ;
	UMAP_U16 shdslEndpointCurr15MinUAS ;
//	U32 shdslGsRxHecErrorCnt ;
};

//SHDSL2_RPT_15MIN_INTERVAL_PM
struct UMAP_Shdsl15MinInterval_S
{
	UMAP_U32 ifIndex;
	UMAP_U32 shdslInvIndex;
	UMAP_U16 shdslEndpointSide; //reserve
	UMAP_U16 shdslEndpointWirePair ; //reserve --always 2 wires
	UMAP_U32 shdsl15MinIntervalNumber;
	UMAP_U16 shdsl15MinIntervalES ;
	UMAP_U16 shdsl15MinIntervalSES ;
	UMAP_U16 shdsl15MinIntervalLOSWS ;
	UMAP_U16 shdsl15MinIntervalUAS ;
	UMAP_U32 shdsl15MinIntervalCRCanomalies ;
//	U32 shdslGsRxHecErrorCnt ;
};


//////////////////////alcatel xdsl/////////////////////////////////


struct UMAP_XdslLineInterval_S
{
	UMAP_U16 ifIndex;
	UMAP_U32 xdslLineIntervalNumber;
   UMAP_U32 xdslLineIntervalLOS;
   UMAP_U32 xdslLineIntervalLOF;
   UMAP_U32 xdslLineIntervalLOM;
   UMAP_U32 xdslLineIntervalLPR;
   UMAP_U32 xdslLineIntervalESE;
   UMAP_U32 xdslLineIntervalES;
   UMAP_U32 xdslLineIntervalSES;
   UMAP_U32 xdslLineIntervalUAS;
   UMAP_U32 xdslLineIntervalReInit;
   UMAP_U32 xdslLineIntervalFailedInit;
   UMAP_U32 xdslLineIntervalCellCount;
   UMAP_U32 xdslLineIntervalHEC;
   UMAP_U16 xdslLineIntervalMeasuredTime;    //0..900
   UMAP_U16 xdslLineIntervalInvalidDataFlag; //0:False ,1:True
};

struct UMAP_XdslFarEndLineInterval_S
{
	UMAP_U16 ifIndex;
	UMAP_U32 xdslFarEndLineIntervalNumber;
   UMAP_U32 xdslFarEndLineIntervalLOS;
   UMAP_U32 xdslFarEndLineIntervalLOF;
   UMAP_U32 xdslFarEndLineIntervalLOM;
   UMAP_U32 xdslFarEndLineIntervalLPR;
   UMAP_U32 xdslFarEndLineIntervalESE;
   UMAP_U32 xdslFarEndLineIntervalES;
   UMAP_U32 xdslFarEndLineIntervalSES;
   UMAP_U32 xdslFarEndLineIntervalUAS;
   UMAP_U32 xdslFarEndLineIntervalReInit;
   UMAP_U32 xdslFarEndLineIntervalFailedInit;
   UMAP_U32 xdslFarEndLineIntervalCellCount;
   UMAP_U16 xdslFarEndLineIntervalMeasuredTime;      //0..900
   UMAP_U16 xdslFarEndLineIntervalInvalidDataFlag; //0:False ,1:True
};

struct UMAP_XdslChannelInterval_S
{
	UMAP_U16 ifIndex;
	UMAP_U32 xdslChannelIntervalNumber;
   UMAP_U32 xdslChannelIntervalCVs;
   UMAP_U32 xdslChannelIntervalFECCs;
   UMAP_U16 xdslChannelIntervalMeasuredTime;         //0..900
   UMAP_U16 xdslChannelIntervalInvalidDataFlag; //0:False ,1:True
};

struct UMAP_XdslFarEndChannelInterval_S
{
	UMAP_U16 ifIndex;
	UMAP_U32 xdslFarEndChannelIntervalNumber;
   UMAP_U32 xdslFarEndChannelIntervalCVs;
   UMAP_U32 xdslFarEndChannelIntervalFECCs;
   UMAP_U16 xdslFarEndChannelIntervalMeasuredTime;       //0..900
   UMAP_U16 xdslFarEndChannelIntervalInvalidDataFlag; //0:False ,1:True
};


struct UMAP_XdslLine1Day_S
{
	UMAP_U16 ifIndex;
	UMAP_U32 xdslLine1DayNumber;
   UMAP_U32 xdslLine1DayLOS;
   UMAP_U32 xdslLine1DayLOF;
   UMAP_U32 xdslLine1DayLOM;
   UMAP_U32 xdslLine1DayLPR;
   UMAP_U32 xdslLine1DayESE;
   UMAP_U32 xdslLine1DayES;
   UMAP_U32 xdslLine1DaySES;
   UMAP_U32 xdslLine1DayUAS;
   UMAP_U32 xdslLine1DayReInit;
   UMAP_U32 xdslLine1DayFailedInit;
   UMAP_U32 xdslLine1DayCellCount;
   UMAP_U32 xdslLine1DayHEC;
   UMAP_U32 xdslLine1DayMeasuredTime;    //0..86400
   UMAP_U16 xdslLine1DayInvalidDataFlag; //0:False ,1:True
};


struct UMAP_XdslFarEndLine1Day_S
{
	UMAP_U16 ifIndex;
	UMAP_U32 xdslFarEndLine1DayNumber;
   UMAP_U32 xdslFarEndLine1DayLOS;
   UMAP_U32 xdslFarEndLine1DayLOF;
   UMAP_U32 xdslFarEndLine1DayLOM;
   UMAP_U32 xdslFarEndLine1DayLPR;
   UMAP_U32 xdslFarEndLine1DayESE;
   UMAP_U32 xdslFarEndLine1DayES;
   UMAP_U32 xdslFarEndLine1DaySES;
   UMAP_U32 xdslFarEndLine1DayUAS;
   UMAP_U32 xdslFarEndLine1DayReInit;
   UMAP_U32 xdslFarEndLine1DayFailedInit;
   UMAP_U32 xdslFarEndLine1DayCellCount;
   UMAP_U32 xdslFarEndLine1DayMeasuredTime;      //0..86400
   UMAP_U16 xdslFarEndLine1DayInvalidDataFlag; //0:False ,1:True
};

struct UMAP_XdslChannel1Day_S
{
	UMAP_U16 ifIndex;
	UMAP_U32 xdslChannel1DayNumber;
   UMAP_U32 xdslChannel1DayCVs;
   UMAP_U32 xdslChannel1DayFECCs;
   UMAP_U32 xdslChannel1DayMeasuredTime;         //0..86400
   UMAP_U16 xdslChannel1DayInvalidDataFlag; //0:False ,1:True
};

struct UMAP_XdslFarEndChannel1Day_S
{
	UMAP_U16 ifIndex;
	UMAP_U32 xdslFarEndChannel1DayNumber;
   UMAP_U32 xdslFarEndChannel1DayCVs;
   UMAP_U32 xdslFarEndChannel1DayFECCs;
   UMAP_U32 xdslFarEndChannel1DayMeasuredTime;       //0..86400
   UMAP_U16 xdslFarEndChannel1DayInvalidDataFlag; //0:False ,1:True
};

struct UMAP_XdslPerfInfo_S
{
	UMAP_U16 ifIndex;
   UMAP_U16 xdslPerfCurrentIntervalTimeElapsed;     //1..900
   UMAP_U32 xdslPerfCurrent1DayTimeElapsed;     //1..86400
};

#endif
