#ifndef _UMAP_STRUCT_CM_H_
#define _UMAP_STRUCT_CM_H_

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

/*************************************************************************/
/*************************************************************************/

struct UMAP_AtmTrafficDescrIndexNext_S
{
   UMAP_U16 atmTrafficDescrParamIndex; 
};

//! 26 bytes
struct UMAP_AtmTrafficDescrParam_S
{
   UMAP_U16 atmTrafficDescrParamIndex;
   UMAP_U8  atmTrafficDescrType;
   UMAP_U32 atmTrafficDescrParam1;
   UMAP_U32 atmTrafficDescrParam2;
   UMAP_U32 atmTrafficDescrParam3;
   UMAP_U32 atmTrafficDescrParam4;
   UMAP_U32 atmTrafficDescrParam5;
   UMAP_U8  atmServiceCategory;
   UMAP_U8  atmTrafficFrameDiscard; 
   UMAP_U8  atmTrafficDescrRowStatus;
   UMAP_U8  atmTrafficUseCount;
};

//! 13 bytes
struct UMAP_AtmVpl_S
{
   UMAP_U16    ifIndex; 
   UMAP_U16    atmVplVpi;
   UMAP_U8     atmVplAdminStatus;
   UMAP_U8     atmVplOperStatus;
   UMAP_U16    atmVplRxTrafficDescrIndex;
   UMAP_U16    atmVplTxTrafficDescrIndex;
   UMAP_U8     atmVplCastType;   //only support "Point-to-Point"
   UMAP_U8     atmVplConnKind;   //only support "PVC"
   UMAP_U8     atmVplRowStatus;
};

//! 16 bytes
struct UMAP_AtmVcl_S
{
   UMAP_U16 ifIndex;
   UMAP_U16 atmVclVpi;
   UMAP_U16 atmVclVci;
   UMAP_U8  atmVclAdminStatus;
   UMAP_U8  atmVclOperStatus;
   UMAP_U16 atmVclRxTrafficDescrIndex;
   UMAP_U16 atmVclTxTrafficDescrIndex;
   UMAP_U8  atmVclAal5EncapType;
   UMAP_U8  atmVclCastType;   //only support "Point-to-Point"
   UMAP_U8  atmVclConnKind;   //only support "PVC"
   UMAP_U8  atmVclRowStatus;
   UMAP_U8    atmVclInUse; //0 = not in use, 1= in use;
};


struct UMAP_AtmInterfaceConf_S
{
   UMAP_U16    atmInterfaceMaxVpcs;
   UMAP_U16    atmInterfaceMaxVccs;
   UMAP_U16    atmInterfaceConfVpcs;
   UMAP_U16    atmInterfaceConfVccs;
   UMAP_U16    atmInterfaceMaxActiveVpiBits;
   UMAP_U16    atmInterfaceMaxActiveVciBits;
};

/*************************************************************************/
/*************************************************************************/

struct UMAP_WinpathPhyEnet_S
{
   UMAP_U32 PhyEnetPortIndex;
   UMAP_U32 PhyEnetMode;
};

//! 10 bytes
struct UMAP_WinpathIfc_S
{
   UMAP_U16 IfcIndex;
   UMAP_U8  IfcType;
   UMAP_U8  IfcDevIndex;
   UMAP_U8  IfcConnectionType;
   UMAP_U16 IfcRxConnectionIdx;
   UMAP_U16 IfcTxConnectionIdx;
// UMAP_U8  IfcAdminStatus;
// UMAP_U8  IfcOperStatus;
   UMAP_U8  IfcRowStatus;
};

//! 16 bytes
struct UMAP_WinpathBridgePort_S
{
   UMAP_U16 BridgePortIfcIndex;
//   UMAP_U16 BridgePortLaIfcIndex;  deprecate from wls 2.0 
   UMAP_U16 BridgePortDefaultVlan;
   UMAP_U8  BridgePortDefaultVlanTagging; //
   UMAP_U8  BridgePortVpmtMode;
   UMAP_U8  BridgePortNodeLinkAggrMode; //
   UMAP_U8  BridgePortIngressMode;
   UMAP_U8  BridgePortLinkMode;  
   UMAP_U8  BridgePortVlanStacking; 
   UMAP_U16 BridgePortMaxMac; 
   UMAP_U8  BridgePortRowStatus;
};

struct UMAP_WinpathBridgeSrcMacFilter_S
{
   UMAP_U16  srcMacFilterIndex;
   UMAP_U16  srcMacFilterBpIndex;
   UMAP_Char srcMacFilterSrcMac[25];
   UMAP_U32  srcMacFilterRowStatus;
};

struct UMAP_WinpathBridgeIpFilter_S
{
   UMAP_U16  ipFilterIndex;
   UMAP_U16  ipFilterBpIndex;
   UMAP_Char ipFilterSrcIpStart[16];
   UMAP_Char ipFilterSrcIpEnd[16];
   UMAP_Char ipFilterDstIpStart[16];
   UMAP_Char ipFilterDstIpEnd[16];
   UMAP_U32  ipFilterRowStatus;
};

struct UMAP_WinpathBridgePrioTagFilter_S
{
   UMAP_U32 prioTagFilterIndex;
   UMAP_U32 prioTagFilterInputBridgePort;
   UMAP_U32 prioTagFilterOutgoingVlanPriority;
   UMAP_U32 prioTagFilterIncomingVlanPriority;
   UMAP_U32 prioTagFilterRowStatus;
};

struct UMAP_WinpathBridge_S
{
   UMAP_Char winpathBridgeHostIp[16];
   UMAP_Char winpathBridgeHostGw[16];
   UMAP_Char winpathBridgeHostMac[6];
};

struct UMAP_WinpathDebug_S
{
   UMAP_U32  DebugConfigLine;
   UMAP_Char DebugConfigKey[48];
   UMAP_Char DebugConfigValue[64];
};

struct UMAP_WinpathIgmp_S
{
   UMAP_U32 winpathIgmpSnoopingMode;
   UMAP_U32 winpathIgmpProxyMode;
   UMAP_U32 winpathIgmpFilterMode;
   UMAP_U32 winpathIgmpTimeoutQuery;
   UMAP_U32 winpathIgmpTimeoutUri;
   UMAP_U32 winpathIgmpTimeoutBc;
   UMAP_U32 winpathIgmpTimeoutMrt;
   UMAP_U32 winpathIgmpTimeoutLmqt;
   UMAP_U32 winpathIgmpTimeoutGmt;
};

struct UMAP_WinpathIgmpGroup_S
{
   UMAP_Char IgmpGroupIp[16];
   UMAP_U32  IgmpGroupVlan;
   UMAP_U32  IgmpGroupAddActions;
   UMAP_U32  IgmpGroupNumOfEntries;
   UMAP_Char IgmpGroupBitmap[512];
   UMAP_U32  IgmpGroupRowStatus;
};

/*************************************************************************/
/*************************************************************************/

struct UMAP_Sntp_S
{
   UMAP_U16  sntpPollingInterval;
   UMAP_U16  sntpRetryCount;
   UMAP_U16  sntpTimeout;
   UMAP_Char sntpTimeZone[16];
   UMAP_Char sntpClock[32];
   UMAP_Char sntpHostName[32];
   UMAP_Char sntpServerIp[16];
};

struct UMAP_DhcpRelay_S
{
   UMAP_Char dhcpServerIpAddr[16];
};

struct UMAP_User_S
{
   UMAP_Char userName[32];
   UMAP_Char userPassword[32];
   UMAP_U8   userAccessLevel;
   UMAP_Char userComment[32];
};

struct UMAP_Syslog_S
{
   UMAP_Char syslogIpAddr[16];
}; 

struct UMAP_Http_S
{
   UMAP_U16 httpPort;
}; 

/*************************************************************************/
/*************************************************************************/

/////////////////////////////////bridge////////////////////////////////////
//dot1d
struct UMAP_TpFdb_S
{
   UMAP_Char tpFdbAddress[6];
   UMAP_U32  tpFdbPort;
   UMAP_U32  tpFdbStatus;
};

// propietary
struct UMAP_FdbStatic_S
{
   UMAP_U16  fdbStaticIndex;
   UMAP_U8   fdbStaticMac[6];
   UMAP_U16  fdbStaticOutBportIndex;
   UMAP_U16  fdbStaticVlanId;
   UMAP_U8   fdbStaticProcessMode;
   UMAP_U8   fdbStaticRowStatus;
};

//dot1d 
struct UMAP_TpStatic_S
{
   UMAP_Char tpStaticAddress[6];
   UMAP_U32  tpStaticReceivePort;
   UMAP_U8   tpStaticAllowedToGoTo[120];
   UMAP_U32  tpStaticStatus;
};

//dot1d
struct UMAP_Stp_S
{
   UMAP_U32  stpProtocolSpecification;
   UMAP_U32  stpPriority;
   UMAP_U32  stpTimeSinceTopologyChange;
   UMAP_U32  stpTopChanges;
   UMAP_U8   stpDesignatedRoot[8];
   UMAP_U32  stpRootCost;
   UMAP_U32  stpRootPort;
   UMAP_U32  stpMaxAge;
   UMAP_U32  stpHelloTime;
   UMAP_U32  stpHoldTime;
   UMAP_U32  stpForwardDelay;
   UMAP_U32  stpBridgeMaxAge;
   UMAP_U32  stpBridgeHelloTime;
   UMAP_U32  stpBridgeForwardDelay;
};

struct UMAP_StpPort_S
{
   UMAP_U16  stpPortIndex;
   UMAP_U32  stpPortPriority;
   UMAP_U32  stpPortState;
   UMAP_U32  stpPortEnable;
   UMAP_U32  stpPortPathCost;
   UMAP_U8   stpPortDesignatedRoot[8];
   UMAP_U32  stpPortDesignatedCost;
   UMAP_U8   stpPortDesignatedBridge[8];
   UMAP_U32  stpPortDesignatedPort;
   UMAP_U32  stpPortForwardTransitions;
};

// propietary
struct UMAP_MemberSet_S
{
   UMAP_U16  memberSetIndex;
   UMAP_U16  memberSetBportIndex;
   UMAP_U16  memberSetVlanId;
   UMAP_U8   memberSetTagged;
   UMAP_U8   memberSetRowStatus; 
};

//dot1q qbridge
struct UMAP_VlanStatic_S
{
   UMAP_U16  vlanId;
   UMAP_Char vlanStaticName[32];
   UMAP_U8   vlanStaticEgressPorts[120];
   UMAP_U8   vlanStaticUntaggedPorts[120];
   UMAP_U32  vlanStaticRowStatus;
};

struct UMAP_PortVlan_S
{
   UMAP_U8   portVlanIngressFiltering;
};

//dot1d pbridge
struct UMAP_Dot1dPortPriority_S
{
   UMAP_U32 dot1dPortDefaultUserPriority;
   UMAP_U32 dot1dPortNumTrafficClasses;
};

//dot1d pbridge
struct UMAP_Dot1dTrafficClass_S
{
   UMAP_U32 dot1dTrafficClassPriority;
   UMAP_U32 dot1dTrafficClass;
   UMAP_U16 dot1dProtocol;          //not standard
   UMAP_U16 dot1dVclIndex;          //not standard
   UMAP_U16 dot1dEnetChannelIndex;  //not standard
};

/*************************************************************************/
/*************************************************************************/

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

// SHDSL2_GET_SPAN_STATUS_TABLE
struct UMAP_ShdslSpanStatus_S
{
   UMAP_U32 ifIndex;
   UMAP_U16 shdslStatusNumAvailRepeaters ; //always 0 --reserve
   UMAP_U32 shdslStatusMaxAttainableLineRate ;
   UMAP_U32 shdslStatusActualLineRate ;
   UMAP_U16 shdslStatusTransmissionModeCurrent ;
};

//SHDSL2_GET_INVENTORY_TABLE
struct UMAP_ShdslInventory_S
{
   UMAP_U32 ifIndex;
   UMAP_U32 shdslInvIndex;
   UMAP_U8 shdslInvVendorID[8] ;
   UMAP_U8 shdslInvVendorModelNumber[12] ;
   UMAP_U8 shdslInvVendorSerialNumber[12] ;
   UMAP_U16 shdslInvVendorEOCSoftwareVersion ;
   UMAP_U16 shdslInvStandardVersion ;
   UMAP_U8 shdslInvVendorListNumber[3] ;
   UMAP_U8 shdslInvVendorIssueNumber[2] ;
   UMAP_U8 shdslInvVendorSoftwareVersion[6] ;
   UMAP_U8 shdslInvEquipmentCode[10] ;
   UMAP_U8 shdslInvVendorOther[12] ;
   UMAP_U16 shdslInvTransmissionModeCapability ; //reserve
};


struct UMAP_ShdslSpanConf_S
{
   UMAP_U32 ifIndex; 
   UMAP_U32 shdslInvIndex;
   UMAP_U32 sdslSpanConfNumRepeaters;
   UMAP_U16 shdslEndpointSide; //reserve
   UMAP_U16 shdslEndpointWirePair ; //reserve --always 2 wires
   UMAP_U16 shdslSpanConfProfile;
   UMAP_U16 shdslEndpointAlarmConfProfile;
};

struct UMAP_ShdslSpanConfProfile_S
{
   UMAP_U16  shdslSpanConfProfileIndex;
   UMAP_Char shdslSpanConfProfileName[32];
   UMAP_U32 shdslSpanConfWireInterface ; //2-wire only --default value : SHDSL2_GSMIB_hdsl2ShdslTwoWire
   UMAP_U32 shdslSpanConfMinLineRate ; //default value : 72000
   UMAP_U32 shdslSpanConfMaxLineRate ; //default value : 1552000
   UMAP_U16 shdslSpanConfPSD ; //default value : SHDSL2_GSMIB_hdsl2ShdslSymmetric
   UMAP_U16 shdslSpanConfTransmissionMode ; //default value : SHDSL2_GSMIB_hdsl2ShdslRegion1
   UMAP_U16 shdslSpanConfRemoteEnabled ; //reserve --default value : SHDSL2_GSMIB_hdsl2ShdslEnabled
   UMAP_U16 shdslSpanConfPowerFeeding ; //reserve --default value : SHDSL2_GSMIB_hdsl2ShdslNoPower
   UMAP_S16 shdslSpanConfCurrCondTargetMarginDown ; //range 0~10 dB --default value : 5dB
   UMAP_S16 shdslSpanConfWorstCaseTargetMarginDown ; //range -10~10 dB --default value : 0dB
   UMAP_S16 shdslSpanConfCurrCondTargetMarginUp ; //range 0~10 dB --default value : 5dB
   UMAP_S16 shdslSpanConfWorstCaseTargetMarginUp ; //range -10~10 dB --default value : 0dB
   UMAP_U16 shdslSpanConfUsedTargetMargins ; //default value : SHDSL2_GSMIB_hdsl2ShdslCurrCondDown
   UMAP_U16 shdslSpanConfReferenceClock ; //reserve --default value : SHDSL2_GSMIB_hdsl2ShdslLocalClk
   UMAP_U16 shdslSpanConfLineProbeEnable ; //default value : SHDSL2_GSMIB_hdsl2ShdslProbeDisable
};

struct UMAP_ShdslEndpointAlarmConfProfile_S
{
   UMAP_U16  shdslEndpointAlarmProfileIndex;
   UMAP_Char shdslEndpointAlarmProfileName[32];
   UMAP_S16 shdslEndpointThreshLoopAttenuation ; //range:-127~128 default value : 50dB  // -ve values not supported
   UMAP_S16 shdslEndpointThreshSNRMargin ; //range:-127~128 default value : 1dB   // -ve values not supported
   UMAP_U16 shdslEndpointThreshES ; //default value : 5s
   UMAP_U16 shdslEndpointThreshSES ; //default value : 5s
   UMAP_U16 shdslEndpointThreshCRCanomalies ; //default value : 1000
   UMAP_U16 shdslEndpointThreshLOSWS ; //default value : 10s
   UMAP_U16 shdslEndpointThreshUAS ; //default value : 10s
};

struct UMAP_ShdslBinding_S
{
   UMAP_U32 ifIndex;
   UMAP_U16 shdslLineProfileIndex ;
   UMAP_U16 shdslAlarmProfileIndex ;
// UMAP_U16 extraProfileIndex ;
};
//SHDSL2_SET_PORT_ENABLE
struct UMAP_ShdslPortEnable_S
{
   UMAP_U32 ifIndex;
   UMAP_U16 enableFlag ; // 0:disable, 1:enable -->SHDSL2_ENABLE_FLAG_ENUM

};

struct UMAP_ShdslEndpointMaint_S
{
   UMAP_U32 ifIndex; 
   UMAP_U32 shdslInvIndex;
   UMAP_U32 shdslMaintLoopbackConfig;
   UMAP_U32 shdslMaintTipRingReversal;
   UMAP_U32 shdslMaintPowerBackOff;
   UMAP_U32 shdslMaintSoftRestart;  
};

struct UMAP_ShdslUnitMaint_S
{
   UMAP_U32 ifIndex; 
   UMAP_U32 shdslInvIndex;
   UMAP_U32 shdslMaintLoopbackTimeout;
   UMAP_U32 shdslMaintUnitPowerSource; 
};

/*************************************************************************/
/*************************************************************************/

struct UMAP_SnmpTargetAddr_S
{
   UMAP_Char snmpTargetAddrName[32];
   UMAP_U32  snmpTargetAddrDomain;
   UMAP_Char snmpTargetAddrTAddress[16];
   UMAP_U32  snmpTargetAddrTimeout;
   UMAP_U32  snmpTargetAddrRetryCount;
   UMAP_Char snmpTargetAddrTagList[32];
   UMAP_Char snmpTargetAddrParams[32];
   UMAP_U32  snmpTargetAddrStorageType;
   UMAP_Char snmpTargetAddrTMask[16]; //snmpTargetAddrExtTable
   UMAP_U32  snmpTargetAddrMMS; //snmpTargetAddrExtTable
   UMAP_U32  snmpTargetAddrAddrRowStatus;
};


struct UMAP_SnmpNotify_S
{
   UMAP_Char snmpNotifyName[32];
   UMAP_Char snmpNotifyTag[32];
   UMAP_U32  snmpNotifyType;
   UMAP_U32  snmpNotifyStorageType;
   UMAP_U32  snmpNotifyRowStatus;
};

struct UMAP_SnmpCommunity_S
{
   UMAP_Char snmpCommunityIndex[32];
   UMAP_Char snmpCommunityName[64];
   UMAP_Char snmpCommunitySecurityName[32];
   UMAP_Char snmpCommunityContextEngineId[32];
   UMAP_Char snmpCommunityContextName[32];
   UMAP_Char snmpCommunityTransportTag[32];
   UMAP_U32  snmpCommunityStorageType;
   UMAP_U32  snmpCommunityStatus;
};

/*************************************************************************/
/*************************************************************************/

struct UMAP_Xdsl_S
{
   UMAP_U8  xdslCoding;
   UMAP_U16 xdslLineServiceProfileIndexNext;
   UMAP_U16 xdslLineServiceProfileMaxIndex;
   UMAP_U16 xdslSpectrumProfileIndexNext;
   UMAP_U16 xdslSpectrumProfileMaxIndex;
   UMAP_U16 xdslTestPOTSlineTestDuration;
};

struct UMAP_XdslLine_S
{
   UMAP_U16 ifIndex;
   UMAP_Char xdslLinePortId[32];
   UMAP_Char xdslLinePortDescr[48];
   UMAP_Char xdslLinePortPhoneNbr[32];
};

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

struct UMAP_XdslLineConf_S
{
   UMAP_U16 ifIndex;
   UMAP_U16 xdslLineServiceProfileNbr;
   UMAP_U16 xdslLineSpectrumProfileNbr;
   UMAP_U16 xdslLineIsdnSplitterOptimization;   //!ADSL24_SPLITTER_OPTIMIZATION_ENUM
   UMAP_U32 xdslLineOpModeMask_01;           //!ADSL24_LINE_OP_MODE_01_ENUM
   UMAP_U32 xdslLineOpModeMask_02;           //!ADSL24_LINE_OP_MODE_02_ENUM
   UMAP_U32 xdslLineOpModeBoardCapability_01; //ADSL24_LINE_OP_MODE_01_ENUM
   UMAP_U32 xdslLineOpModeBoardCapability_02; //ADSL24_LINE_OP_MODE_02_ENUM
   UMAP_U16 xdslLineCarrierDataMode;         //!ADSL24_CARRIER_DATA_MODE_ENUM
   UMAP_U16 xdslLineLoopDiagnosticsMode;     //!ADSL24_LOOP_DIAGNOSTICS_MODE_ENUM
   UMAP_U16 xdslLineBondingModeChannel1;     //!ADSL24_LINE_BONDING_MODE_ENUM
   UMAP_U16 xdslLineBondingModeChannel2;     //!ADSL24_LINE_BONDING_MODE_ENUM
   UMAP_U16 xdslLineBondingModeChannel3;     //!ADSL24_LINE_BONDING_MODE_ENUM
   UMAP_U16 xdslLineBondingModeChannel4;     //!ADSL24_LINE_BONDING_MODE_ENUM 
   UMAP_U16 xdslLineSeltMode;
};

struct UMAP_XdslLineServiceProfile_S
{
   UMAP_U16  xdslLineServiceProfileIndex;
   UMAP_Char xdslLineServiceProfileName[32];
   UMAP_U16  xdslLineRAModeDownstream;    //!ADSL24_LINE_RATE_MODE_ENUM
   UMAP_U16  xdslLineRAModeUpstream;      //!ADSL24_LINE_RATE_MODE_ENUM
   UMAP_U16  xdslLineNumberChannels;      //!range:1~4.
   UMAP_U8   xdslLineServiceProfileRowStatus;
};


struct UMAP_XdslLineServiceProfileChannel_S
{
   UMAP_U16 xdslLineServiceProfileChannelNumber;
   UMAP_U16 xdsllineServiceProfileIndex;
   UMAP_U16 xdslRARatioDownstream;              //!range: 0..100 %
   UMAP_U16 xdslRARatioUpstream;                //!range: 0..100 %
   UMAP_U16 xdslMinBitrateDownstream;           //!0..65535 kbit/s, DEFVAL{1024}
   UMAP_U16 xdslMinBitrateUpstream;             //!0..65535 kbit/s, DEFVAL{64}
   UMAP_U16 xdslPlannedBitrateDownstream;       //!0..65535 kbit/s, DEFVAL{1536}
   UMAP_U16 xdslPlannedBitrateUpstream;         //!0..65535 kbit/s, DEFVAL{128}
   UMAP_U16 xdslMaxBitrateDownstream;           //!0..65535 kbit/s, DEFVAL{6144}
   UMAP_U16 xdslMaxBitrateUpstream;             //!0..65535 kbit/s, DEFVAL{640}
   UMAP_U16 xdslL2LowPowerBitrateDownstream;    //!0..65535 kbit/s, DEFVAL{128}
   UMAP_U16 xdslMaxInterleavingDelayDownstream; //!1..63 ms, DEFVAL{16}
   UMAP_U16 xdslMaxInterleavingDelayUpstream;   //!1..63 ms, DEFVAL{16}
   UMAP_U16 xdslMinImpNoiseProtDownstream;      //!0..80 tenth symbols
   UMAP_U16 xdslMinImpNoiseProtUpstream;        //!0..80 tenth symbols  
};

struct UMAP_XdslLineSpectrumProfile_S
{
   UMAP_U16  xdslLineSpectrumProfileIndex;
   UMAP_Char xdslLineSpectrumProfileName[32];
   UMAP_U32  xdslLineOpMode_01;                       //!ADSL24_LINE_OP_MODE_01_ENUM
   UMAP_U32  xdslLineOpMode_02;                       //!ADSL24_LINE_OP_MODE_02_ENUM
   UMAP_U16  xdslLineMinNoiseMarginDownstream;        //!0..310 tenth dB, DEFVAL{0}
   UMAP_U16  xdslLineMinNoiseMarginUpstream;          //!0..310 tenth dB, DEFVAL{0}
   UMAP_U16  xdslLineTargetNoiseMarginDownstream;     //!0..310 tenth dB, DEFVAL{60}
   UMAP_U16  xdslLineTargetNoiseMarginUpstream;       //!0..310 tenth dB, DEFVAL{60}
   UMAP_U16  xdslLineMaxNoiseMarginDownstream;        //!0..310,511 tenth dB, DEFVAL{511}
   UMAP_U16  xdslLineMaxNoiseMarginUpstream;          //!0..310,511 tenth dB, DEFVAL{511}
   UMAP_U8   xdslLineCarrierMaskDownstream[64];
   UMAP_U8   xdslLineCarrierMaskUpstream[8];
   UMAP_U8   xdslLineRfiBands[40];
   UMAP_U16  xdslLinePowerMgtMode;                    //!ADSL24_POWER_MGT_MODE_ENUM
   UMAP_U16  xdslLineL0Time;                          //!0..1800 seconds, DEFVAL{255}
   UMAP_U16  xdslLineL2Time;                          //!0..1800 seconds, DEFVAL{60}
   UMAP_U16  xdslLineL2Atpr;                          //!0..31 dB, DEFVAL{3}  
   UMAP_U8   xdslLineSpectrumProfileRowStatus;
   UMAP_U8   xdslLineSpectrumProfileModifyStatus;
};

struct UMAP_XdslLineSpectrumProfileAdslAdsl2_S
{
   UMAP_U16 xdslLineSpectrumProfileIndex;
   UMAP_U16 adslModemFeatures;                     //!0: disable, 1: enable
   UMAP_U16 adslMaxAggregatePowerLevelDownstream;  //!0..255 tenth dBm, DEFVAL{255}
   UMAP_U16 adslMaxAggregatePowerLevelUpstream;    //!0..255 tenth dBm, DEFVAL{255}
   UMAP_S16 adslMaxPsdLevelDownstream;             //!-600..-400 tenth dBm/Hz, DEFVAL{-400}
   UMAP_S16 adslMaxPsdLevelUpstream;               //!-600..-380 tenth dBm/Hz, DEFVAL{-380}
   UMAP_U16 adslPsdShapeDownstream;                //!ADSL24_PSD_SHAPE_ENUM
   UMAP_U8  adslCustomPsdShapeDownstream[64];
   UMAP_U16 adslPsdShapeUpstream;                  //!ADSL24_PSD_SHAPE_ENUM
   UMAP_U8  adslCustomPsdShapeUpstream[64];
   UMAP_U16 adslPboModeUpstream;                   //!0:OFF, 1:ON
   UMAP_U16 adslMaxRxAggregatePowerLevelUpstream;  //!-255..255 tenth dBm, DEFVAL{255}
};

struct UMAP_XdslLineSpectrumProfileReAdsl2_S
{
   UMAP_U16 xdslLineSpectrumProfileIndex;
   UMAP_U16 reAdsl2ModemFeatures;                     //!0: disable, 1: enable
   UMAP_U16 reAdsl2MaxAggregatePowerLevelDownstream;  //!0..255 tenth dBm, DEFVAL{255}
   UMAP_U16 reAdsl2MaxAggregatePowerLevelUpstream;    //!0..255 tenth dBm, DEFVAL{255}
   UMAP_S16 reAdsl2MaxPsdLevelDownstream;             //!600..-370 tenth dBm/Hz, DEFVAL{-370}
   UMAP_S16 reAdsl2MaxPsdLevelUpstream;               //!600..-329 tenth dBm/Hz, DEFVAL{-329}
   UMAP_U16 reAdsl2PsdShapeDownstream;                //!ADSL24_PSD_SHAPE_ENUM
   UMAP_U8  reAdsl2CustomPsdShapeDownstream[64];
   UMAP_U16 reAdsl2PsdShapeUpstream;                  //!DSL24_PSD_SHAPE_ENUM
   UMAP_U8  reAdsl2CustomPsdShapeUpstream[64];
   UMAP_U16 reAdsl2PboModeUpstream;                   //!0:OFF, 1:ON
   UMAP_U16 reAdsl2MaxRxAggregatePowerLevelUpstream;  //!-255..255 tenth dBm, DEFVAL{255} 
};

struct UMAP_XdslLineSpectrumProfileAdsl2Plus_S
{
   UMAP_U16 xdslLineSpectrumProfileIndex;
   UMAP_U16 adsl2PlusModemFeatures;                      //!0: disable, 1: enable
   UMAP_U16 adsl2PlusMaxAggregatePowerLevelDownstream;   //!0..255 tenth dBm, DEFVAL{255}
   UMAP_U16 adsl2PlusMaxAggregatePowerLevelUpstream;     //!0..255 tenth dBm, DEFVAL{255}
   UMAP_S16 adsl2PlusMaxPsdLevelDownstream;              //!-600..-400 tenth dBm/Hz, DEFVAL{-400}
   UMAP_S16 adsl2PlusMaxPsdLevelUpstream;                //!-600..-380 tenth dBm/Hz, DEFVAL{-380}
   UMAP_U16 adsl2PlusPsdShapeDownstream;                 //!ADSL2PLUS_PSD_SHAPE_ENUM
   UMAP_U8  adsl2PlusCustomPsdShapeDownstream[64];
   UMAP_U16 adsl2PlusPsdShapeUpstream;                   //!ADSL2PLUS_PSD_SHAPE_ENUM
   UMAP_U8  adsl2PlusCustomPsdShapeUpstream[64];
   UMAP_U16 adsl2PlusPboModeUpstream;                    //!0:OFF, 1:ON
   UMAP_U16 adsl2PlusMaxRxAggregatePowerLevelUpstream;   //!-255..255 tenth dBm, DEFVAL{255}
};


struct UMAP_XdslXturInventory_S
{
   UMAP_U16  ifIndex;
   UMAP_Char xdslXturInvModemVendorID[16];
   UMAP_Char xdslXturInvSystemVendorID[16];
   UMAP_Char xdslXturInvSystemSerialNumber[32];
   UMAP_Char xdslXturInvSystemVersionNumber[34];
   UMAP_Char xdslXturInvSelfTestResults[8];
};

struct UMAP_XdslXtucInventory_S
{
   UMAP_U16  ifIndex;
   UMAP_Char xdslXtucInvSystemSerialNumber[32];
   UMAP_Char xdslXtucInvSystemVersionNumber[34];
   UMAP_Char xdslXtucInvSystemVendorID[16];
   UMAP_Char xdslXtucInvModemVendorID[16];
};


struct UMAP_XdslLineOperData_S
{
   UMAP_U16  ifIndex;
   UMAP_U16 xdslLineRelCapacityOccupationUpstream;   //!0..100 %
   UMAP_S16 xdslLineNoiseMarginUpstream;             //!-640..630 tenth dB
   UMAP_S16 xdslLineOutputPowerDownstream;           //!-310..310 tenth dB
   UMAP_U16 xdslLineSignalAttenuationUpstream;       //!0..1270 tenth dB
   UMAP_U16 xdslLineLoopAttenuationUpstream;         //!0..1270 tenth dB
   UMAP_U32 xdslLineActualOpMode_01;                 //!ADSL24_LINE_OP_MODE_01_ENUM
   UMAP_U32 xdslLineActualOpMode_02;                 //!ADSL24_LINE_OP_MODE_02_ENUM
   UMAP_U32 xdslLineXtucOpModeCapabilities_01;       //!ADSL24_LINE_OP_MODE_01_ENUM
   UMAP_U32 xdslLineXtucOpModeCapabilities_02;       //!ADSL24_LINE_OP_MODE_02_ENUM
   UMAP_U16 xdslLineLastTxStateDownstream;           //!??
   UMAP_S16 xdslLineActualPsdDownstream;             //!-900..0 tenth dBm/Hz
};


struct UMAP_XdslFarEndLineOperData_S
{
   UMAP_U16 ifIndex;
   UMAP_U16 xdslFarEndLineRelCapacityOccupationDownstream;//!0..100 %
   UMAP_S16 xdslFarEndLineNoiseMarginDownstream;          //!-640..630 tenth dB
   UMAP_S16 xdslFarEndLineOutputPowerUpstream;            //!-310..310 tenth dB
   UMAP_U16 xdslFarEndLineSignalAttenuationDownstream;    //!0..1270 tenth dB
   UMAP_U16 xdslFarEndLineLoopAttenuationDownstream;      //!0..1270 tenth dB
   UMAP_U32 xdslFarEndLineXturOpModeCapabilities_01;      //!ADSL24_LINE_OP_MODE_01_ENUM
   UMAP_U32 xdslFarEndLineXturOpModeCapabilities_02;      //!ADSL24_LINE_OP_MODE_02_ENUM
   UMAP_U16 xdslFarEndLineLastTxStateUpstream;            //!??
   UMAP_S16 xdslFarEndLineActualPsdUpstream;              //!-900..0 tenth dBm/Hz
};

struct UMAP_XdslChannelOperData_S
{
   UMAP_U16 ifIndex;
   UMAP_U16 xdslChannelActualBitrateUpstream;               //!0..65535 kbits/s
   UMAP_U16 xdslChannelAttainableBitrateUpstream;           //!0..65535 kbits/s
   UMAP_U16 xdslChannelActualInterleavingDelayDownstream;   //!0..255 ms
   UMAP_U16 xdslChannelActualImpNoiseProtDownstream;        //!0..80 tenth symbols
};

struct UMAP_XdslFarEndChannelOperData_S
{
   UMAP_U16 ifIndex;
   UMAP_U16 xdslFarEndChannelActualBitrateUpstream;            //!0..65535 kbits/s
   UMAP_U16 xdslFarEndChannelAttainableBitrateUpstream;        //!0..65535 kbits/s
   UMAP_U16 xdslFarEndChannelActualInterleavingDelayDownstream;//!0..255 ms
   UMAP_U16 xdslFarEndChannelActualImpNoiseProtDownstream;     //!0..80 tenth symbols
};

struct UMAP_XdslLineCarrierData_S
{
   UMAP_U16 ifIndex;
   UMAP_U8  xdslLineCarrierLoadDownstream[64];
   UMAP_U8  xdslLineCarrierGainDownstream[32];
   UMAP_U8  xdslLineCarrierTssDownstream[32]; //have to send 2 times
   UMAP_U8  xdslLineCarrierSnrDownstream[64];
   UMAP_U8  xdslLineCarrierQlnDownstream[64];
   UMAP_U8  xdslLineCarrierHlinDownstream[32];  //have to send 4 times
   UMAP_U8  xdslLineCarrierHlogDownstream[64]; //have to send 2 times
   UMAP_U16 xdslLineCarrierSpacingDownstream; //!ADSL24_LINE_CARR_SPACING_ENUM   
};

struct UMAP_XdslFarEndLineCarrierData_S
{
   UMAP_U16 ifIndex;
   UMAP_U8  xdslFarEndLineCarrierLoadUpstream[64];
   UMAP_U8  xdslFarEndLineCarrierGainUpstream[32]; //have to send 16 times
   UMAP_U8  xdslFarEndLineCarrierTssUpstream[32]; //have to send 16 times
   UMAP_U8  xdslFarEndLineCarrierSnrUpstream[64]; //have to send 8 times
   UMAP_U8  xdslFarEndLineCarrierQlnUpstream[64]; //have to send 8 times
   UMAP_U8  xdslFarEndLineCarrierHlinUpstream[32]; //have to send 32 times
   UMAP_U8  xdslFarEndLineCcarrierHlogUpstream[64]; //have to send 16 times
   UMAP_U16 xdslFarEndLineCarrierSpacingUpstream; //!ADSL24_LINE_CARR_SPACING_ENUM
};

struct UMAP_XdslLineFailureStatus_S
{
   UMAP_U16 ifIndex;
   UMAP_U16 xdslLineFailureStatus; //!ADSL24_LINE_FAILURE_STATUS_ENUM
};

struct UMAP_XdslFarEndLineFailureStatus_S
{
   UMAP_U16 ifIndex;
   UMAP_U16 xdslFarEndLineFailureStatus; //!ADSL24_LINE_FE_FAILURE_STATUS_ENUM
};

struct UMAP_XdslTest_S
{
   UMAP_U16 xdslTestPOTSlineTestDuration;
};

struct UMAP_XdslXtucSeltData_S
{
   UMAP_U16  ifIndex;
   UMAP_U8   xdslSeltNoise[64];
   UMAP_U8   xdslSeltUncalEcho[64];
   UMAP_U8   xdslSeltUncalEchoVar[64];
   UMAP_U8   xdslSeltCompEcho[64];
   UMAP_U8   xdslSeltEchoRefAvailableFlag[64];
   UMAP_U8   xdslSeltEchoOpen[64];
   UMAP_U8   xdslSeltEchoShort[64];
   UMAP_U8   xdslSeltEchoLoad[64];
};

struct UMAP_XdslLineTcaThreshold_S
{
   UMAP_U16 ifIndex;
   UMAP_U16 xdslLineTcaEnable;  //!0:disable, 1:enable
   UMAP_U16 xdslLineIntervalESsTcaThreshold;    //!0..900
   UMAP_U16 xdslLineIntervalSESsTcaThreshold;   //!0..900
   UMAP_U16 xdslLineIntervalUASsTcaThreshold;   //!0..900
   UMAP_U32 xdslLine1DayESsTcaThreshold;        //!0..86400
   UMAP_U32 xdslLine1DaySESsTcaThreshold;       //!0..86400
   UMAP_U32 xdslLine1DayUASsTcaThreshold;       //!0..86400
   UMAP_U16 xdslFarEndLineIntervalESsTcaThreshold;  //!0..900
   UMAP_U16 xdslFarEndLineIntervalSESsTcaThreshold; //!0..900
   UMAP_U16 xdslFarEndLineIntervalUASsTcaThreshold; //!0..900
   UMAP_U32 xdslFarEndLine1DayESsTcaThreshold;      //!0..86400
   UMAP_U32 xdslFarEndLine1DaySESsTcaThreshold;     //!0..86400
   UMAP_U32 xdslFarEndLine1DayUASsTcaThreshold;     //!0..86400
};

/*************************************************************************/
/*************************************************************************/



struct UMAP_Vpmt_S
{
   UMAP_U16 VpmtIndex;
   UMAP_U16 VpmtTxVcl[8];
   UMAP_U16 VpmtPriority[8];
   UMAP_U8  VpmtDenyMode[8];
   
};

struct UMAP_EnetTrafficDescrParam_S
{
   UMAP_U16 enetTrafficDescrParamIndex;
   UMAP_U8  enetTrafficDescrType;
   UMAP_U32 enetTrafficDescrParam1;
   UMAP_U32 enetTrafficDescrParam2;
   UMAP_U32 enetTrafficDescrParam3;
   UMAP_U8  enetServiceCategory;
   UMAP_U8  enetTrafficQosType;  
   UMAP_U8  enetTrafficDescrRowStatus;
   UMAP_U8  enetTrafficUseCount;
};

struct UMAP_EnetChannel_S
{
   UMAP_U16 ifIndex; 
   UMAP_U16 enetTrafficDescrIndex;
};

/*************************************************************************/
/*************************************************************************/

#endif
