TROPIC-PSD-MIB DEFINITIONS ::= BEGIN

-- (c) Copyright 2023 Nokia Networks. All rights reserved.
-- This software is the confidential and proprietary property of
-- Nokia and may only be used in accordance with the terms of the
-- license agreement provided with this software.

IMPORTS
    OBJECT-TYPE, MODULE-IDENTITY, Counter32,
    Integer32, Unsigned32, NOTIFICATION-TYPE    FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, DateAndTime,
    RowStatus, TruthValue, MacAddress           FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP,
    NOTIFICATION-GROUP                          FROM SNMPv2-CONF
    SnmpAdminString                             FROM SNMP-FRAMEWORK-MIB
    InetAddress, InetAddressPrefixLength,
    InetAddressType                             FROM INET-ADDRESS-MIB
    ifIndex, InterfaceIndexOrZero               FROM IF-MIB
    tnOtukEntry                                 FROM TROPIC-OTUODU-MIB
    tnOthOdukNimEntry, tnOthOdukTtpEntry,
    tnOthOdukTEntry                             FROM TROPIC-OTH-MIB
    tnNetIfEntry, tnNetIfIndex                  FROM TROPIC-L1SERVICE-MIB
    tnLagCommandEntry                           FROM TN-LAG-MIB
    tnOamPingCtlEntry                           FROM TN-OAM-TEST-MIB
    dot1agCfmMepEntry, Dot1agCfmCcmInterval,
    Dot1agCfmMepIdOrZero                        FROM IEEE8021-CFM-MIB
    tnShelfIndex                                FROM TROPIC-SHELF-MIB
    tnSlotIndex                                 FROM TROPIC-SLOT-MIB
    TnSfpType, TnCondition, TnCommand,
    AluWdmTypeOfNetIfOperation                  FROM TROPIC-TC
    AluWdmPmonPolicyType                        FROM TN-PMON-MIB
    TmnxEnabledDisabled, TnSwitchID             FROM TN-TC-MIB
    tnGenericTrapSeqNumber,
    tnGenericTrapObject,
    tnGenericTrapObjectInstance,
    tnGenericTrapTime, tnGenericTrapCategory,
    tnGenericTrapDescr, tnGenericTrapData,
    tnGenericTrapObjectValueType,
    tnGenericTrapObjectCounter32Val,
    tnGenericTrapObjectUnsigned32Val,
    tnGenericTrapObjectTimeTicksVal,
    tnGenericTrapObjectInteger32Val,
    tnGenericTrapObjectOctetStringVal,
    tnGenericTrapObjectIpAddressVal,
    tnGenericTrapObjectOidVal,
    tnGenericTrapObjectCounter64Val,
    tnGenericTrapDateAndTime,
    tnGenericTrapConfigurationChangeCounter     FROM TROPIC-GENERIC-NOTIFICATION-MIB
    tnOthIfIndex, tnOthIfIndexLo                FROM TROPIC-OTH-MIB
    tnStatsInterval                             FROM TROPIC-STATISTICS-MIB
    tnPsdMIB, tnPsdModules                      FROM TROPIC-GLOBAL-REG;

tnPsdMibModule MODULE-IDENTITY
    LAST-UPDATED    "202301040000Z"
    ORGANIZATION    "Nokia"
    CONTACT-INFO    "Nokia
                     Attn: Jeff Donnelly
                     600 Mountain Avenue
                     New Providence, NJ 07974

                     Phone: +1 732 221 6408
                     Email: jeff.donnelly@nokia.com"

    DESCRIPTION "The Photonic Service Demarcation MIB."

    REVISION    "202301040000Z"
    DESCRIPTION "Removed never used value faultLocPwrIntf(6) from
                 TropicPsdFaultLocationType.
                 Added tnPsdPowerInputTable, and related configuration
                 change notification and conformance groups. Added module
                 compliance tnPsd2R500Compliance containing the new
                 conformance groups. Added faultLocPowerInput(24) to
                 TropicPsdFaultLocationType.
                 Obsoleted object tnPsdShelfIsdSwVersion, added object
                 tnPsdShelfIsdSwRelease."

    REVISION    "202212220000Z"
    DESCRIPTION "Added following new system mode to TropicPsdSystemMode:
                  - otnNid2x1GbEor10GbEClientOtu2OduFlexNetworkMode(11)"

    REVISION    "202210230000Z"
    DESCRIPTION "Added tnPsdAlsChangeNotif.
                 Renamed tnPsdAlsConfigChangeNotifGroup into
                 tnPsdAlsNotifGroup, and added tnPsdAlsChangeNotif."

    REVISION    "202210120000Z"
    DESCRIPTION "Added tnPsdAlsTable, tnPsdAlsConfigChangeNotif, tnPsdAlsGroup
                 and tnPsdAlsConfigChangeNotifGroup.
                 Added tnPsdR500Compliance."

    REVISION    "202108110000Z"
    DESCRIPTION "Enhanced tnPsdNetIfTable with IPv6 objects :
                  - tnPsdNetIfIp6AddrType
                  - tnPsdNetIfIp6Addr
                  - tnPsdNetIfIp6PrefixLen
                  - tnPsdNetIfRemoteIp6AddrType
                  - tnPsdNetIfRemoteIp6Addr
                  - tnPsdNetIfMonitoring6"

    REVISION    "202106100000Z"
    DESCRIPTION "Added tnPsdEthStatsPortConfigTable, tnPsdEthStatsPortConfigChangeNotif,
                 tnPsdPmEthStatsGroup and tnPsdPmEthStatsConfigChangeNotifGroup."

    REVISION    "202009291200Z"
    DESCRIPTION "Added following new system mode to TropicPsdSystemMode:
                  - otnNid1GbEor10GbEClientOtu2OduFlexNetworkMode(10)
                 Added tnPsdSnmpTrapDestSnmpVersion and tnPsdSnmpTrapDestUserName
                 to the tnPsdSnmpTrapDestTable."

    REVISION    "202002251200Z"
    DESCRIPTION "Added tnPsdOdukTtpPrbsTable, tnPsdOdukTtpPrbsConfigChangeNotif,
                 tnPsdOdukTtpPrbsTestResultTable, tnPsdOtn3Group and
                 tnPsdOtnConfigChangeNotif3Group.
                 Enhanced description of tnPsdSystemAbnormalState with PRBS
                 enabling conditions.
                 Added tnPsdProxyArpTable, tnPsdProxyArpConfigChangeNotif,
                 tnPsdIp3Group and tnPsdIpConfigChangeNotif3Group.
                 Added tnPsdR200Compliance."

    REVISION    "201804301200Z"
    DESCRIPTION "Added tnPsdSfpInfoTuningOkNotif.
                 Removed tnPsdInterfaceConfigChangeNotif2Group and
                 added tnPsdInterfaceStateChangeNotifGroup and
                 tnPsdInterfaceEventNotifGroup."

    REVISION    "201803191200Z"
    DESCRIPTION "Added tnPsdSoamTable and tnPsdSoamConfigChangeNotif."

    REVISION    "201802231200Z"
    DESCRIPTION "Updated the contact info."

    REVISION    "201802141200Z"
    DESCRIPTION "Added tunable SFP objects:
                 - tnPsdSfpProgrammedChannel
                 - tnPsdSfpInfoTunable
                 - tnPsdSfpInfoFrequency
                 - tnPsdSfpInfoFrequencyLow
                 - tnPsdSfpInfoFrequencyHigh
                 - tnPsdSfpInfoFrequencyGrid
                 - tnPsdSfpInfoTuningStatus
                 Added status change trap tnPsdSfpInfoTuningStatusChangeNotif.
                 Reorganized module compliances per release.
                 All former module compliances are removed. Conformance groups
                 are added the applicable release compliance e.g.
                 tnPsdR100Compliance and tnPsdR110Compliance.
                 Moved tnPsdIpGroup to tnPsdIp2Group:
                 - tnPsdNetIfMonitoring
                 - tnPsdNetIfEthFacilityTypeOfOperation
                 - tnPsdNetIfEthFacilityPriorityEgress
                 - tnPsdNetIfEthFacilityDropEligibleEgress
                 Moved tnPsdIpConfigChangeNotifGroup to
                 tnPsdIpConfigChangeNotif2Group:
                 - tnPsdNetIfConfigChangeNotif
                 - tnPsdNetIfEthFacilityConfigChangeNotif
                 Moved tnPsdIpCreDelNotifGroup to
                 tnPsdIpCreDelNotif2Group:
                 - tnPsdNetIfEthFacilityCreationNotif
                 - tnPsdNetIfEthFacilityDeletionNotif
                 Moved tnPsdOtnGroup to tnPsdOtn2Group:
                 - tnPsdOdukTtpDmReflection
                 - tnPsdOdukTtpDmSessionType
                 - tnPsdOdukTtpDmStart
                 - tnPsdOdukTtpDmOnDemandResultStatus
                 - tnPsdOdukTtpDmOnDemandResultRoundTrip
                 Moved tnPsdOtnConfigChangeNotifGroup to
                 tnPsdOtnConfigChangeNotif2Group:
                 - tnPsdOdukTtpDmConfigChangeNotif"

    REVISION    "201709251200Z"
    DESCRIPTION "Removed the following notifications:
                 - tnPsdLagProtLosRaisedNotif
                 - tnPsdLagProtLosClearedNotif
                 These traps are replaced by:
                 (TROPIC-GENERIC-NOTIFICATION-MIB)
                 - tnGenericLagProtLosRaisedNotif
                 - tnGenericLagProtLosClearedNotif
                 Added software upgrade event notifications:
                 - tnPsdSwActivateNotif
                 - tnPsdSwCommitNotif
                 Added tnGenericTrapDateAndTime to tnPsdSwRestartNotif.
                 Modified tnPsdOamEthCfmTestTable.
                 Added to tnPsdOamEthCfmPingCtlTable:
                 - tnPsdOamEthCfmPingCtlAvailFlrThreshold
                 - tnPsdOamEthCfmPingCtlAvailFlrNumOfIntervals
                 - tnPsdOamEthCfmPingCtlAvailFlrInterval15Min
                 - tnPsdOamEthCfmPingCtlAvailFlrInterval1Day
                 Removed tnPsdOamEthCfmPingCtlConfigChangeNotif."

    REVISION    "201708181200Z"
    DESCRIPTION "Added on-demand test tables:
                 - tnPsdDot1agCfmMepDmTWTestTable
                 - tnPsdDot1agCfmMepSlmTWTestTable
                 Added pro-active test tables:
                 - tnPsdOamEthCfmPingCtlTable
                 - tnPsdOamEthCfmTestTable
                 Added tnPsdNetIfMonitoring, tnPsdNetIfEthFacilityTable.
                 Changed access of tnPsdNetIfIpAddrType, tnPsdNetIfIpAddr,
                 tnPsdNetIfIpPrefixLen from read-only to read-create.
                 Renamed tnPsdOdukTtpDmTableConfigChangeNotif to
                 tnPsdOdukTtpDmTableConfigChangeNotif."

    REVISION    "201707071200Z"
    DESCRIPTION "Added tnPsdCfmTransportIdentifier.
                 Added ODUk path delay measurement tables and attribute value
                 change notifications:
                 - tnPsdOdukTtpDmTable
                 - tnPsdOdukTtpDmOnDemandResultTable
                 - tnPsdOdukTtpDmTableConfigChangeNotif
                 Added tnGenericTrapEntityType to alarm traps.
                 Added tnGenericTrapDateAndTime and
                 tnGenericTrapConfigurationChangeCounter to all attribute
                 value change traps to conform with tnGenericTrapBufferEntry.
                 Added tnPsdLagCommandTable.
                 Added following notifications:
                 - tnPsdLagProtLosRaisedNotif
                 - tnPsdLagProtLosClearedNotif
                 Added following to TropicPsdFaultLocationType:
                 - faultLocSlm(15)
                 - faultLocDm(16)
                 - faultLocMep(17)
                 - faultLocLag(18)
                 - faultLocLogIntfDP(19)
                 - faultLocLogIntfDPC(20)
                 - faultLocLogIntfDPN(21)
                 - faultLocOdukPmC(22)
                 - faultLocOtukC(23)
                 Added following new system modes to
                 TropicPsdSystemMode:
                 - otnNidOtu1ClientOtu1NetworkMode(6)
                 - otnNidOtu2ClientOtu2NetworkMode(7)
                 - otnNidOtu2eClientOtu2eNetworkMode(8)
                 - ethNid1GbEor10GbEClient10GbENetworkMode(9)"

    REVISION    "201704101200Z"
    DESCRIPTION "Modified TropicPsdCardSerialNumber."

    REVISION    "201703061200Z"
    DESCRIPTION "Renamed tnPsdEnforceSrcIpToLoopbackIp to
                 tnPsdEnforceSrcIpV4ToLoopbackIpV4.
                 Added tnPsdEnforceSrcIpV6ToLoopbackIpV6."

    REVISION    "201702061200Z"
    DESCRIPTION "Added tnPsdSwRestartNotif.
                 Modified DISPLAY-HINT of TropicPsdSfpBitRate.
                 Added tnPsdShelfRestartConfigChangeNotif.
                 Added TEXTUAL-CONVENTION TropicPsdSfpVendorSerialNumber
                 for tnPsdSfpInfoWavelength and added tnPsdSfpInfoClassOfWdm
                 to tnPsdSfpInfoTable.
                 Added DEFVAL for tnPsdShelfLocation and changed type
                 to SnmpAdminString. Changed TEXTUAL-CONVENTION
                 TropicPsdNetInterfaceIndexOrZero to
                 TropicPsdNetIfIndexOrZero.
                 Changed index of tnPsdStaticRouteTable and
                 tnPsdActualRouteTable.
                 Modified DEFVAL of tnPsdStaticRouteMetric.
                 Added tnPsdFaultTable for raise and clear persistence
                 time configuration.
                 Added tnPsdNetIfOperStatus, tnPsdNetIfRemoteIpAddrType
                 and tnPsdNetIfRemoteIpAddr to tnPsdNetIfTable and
                 added tnPsdNetIfOperStatusChangeNotif."

    REVISION    "201612211200Z"
    DESCRIPTION "Added tnPsdActualRouteTable, tnPsdAsapTable,
                 tnPsdAsapFaultProfileTable.
                 Added definitions for Smart Connect procedure:
                 - tnPsdSystemSmartConnectLed.
                 Added definitions to support Performance Monitoring File
                 Transfers:
                  - Scalar objects tnPsdSysDiscoveryServerAddrType and
                    tnPsdSysDiscoveryServerAddr to support IPv4 and IPv6.
                 Removed tnPsdShelfSerialNumber.
                 Added tnPsdShelfRealTimePower to tnPsdShelfTable.
                 Added tnPsdOtukTable, tnPsdOdukNimTable tnPsdOdukTtpTable,
                 tnPsdOdukTTable.
                 Added attribute value change traps definitions to
                 tnPsdEquipmentNotifs, tnPsdInterfaceNotifs, tnPsdSnmpNotifs,
                 tnPsdTimeNotifs, tnPsdIpNotifs, tnPsdFaultNotifs,
                 tnPsdOtnNotifs.
                 Added dying gasp trap."

    REVISION    "201610281200Z"
    DESCRIPTION "Initial version."

    ::= { tnPsdModules 1 }

-------------------------------------------------------------------------------
-- Groups in the PSD MIB Module
-------------------------------------------------------------------------------

tnPsdSystem                  OBJECT IDENTIFIER ::= { tnPsdMIB 1 }
tnPsdSystemObjects           OBJECT IDENTIFIER ::= { tnPsdSystem 1 }
tnPsdSystemConformance       OBJECT IDENTIFIER ::= { tnPsdSystem 2 }
tnPsdSystemGroups            OBJECT IDENTIFIER ::= { tnPsdSystemConformance 2 }

tnPsdEquipment               OBJECT IDENTIFIER ::= { tnPsdMIB 2 }
tnPsdEquipmentNotifs         OBJECT IDENTIFIER ::= { tnPsdEquipment 0 }
tnPsdEquipmentObjects        OBJECT IDENTIFIER ::= { tnPsdEquipment 1 }
tnPsdEquipmentConformance    OBJECT IDENTIFIER ::= { tnPsdEquipment 2 }
tnPsdEquipmentGroups         OBJECT IDENTIFIER ::= { tnPsdEquipmentConformance 2 }

tnPsdInterface               OBJECT IDENTIFIER ::= { tnPsdMIB 3 }
tnPsdInterfaceNotifs         OBJECT IDENTIFIER ::= { tnPsdInterface 0 }
tnPsdInterfaceObjects        OBJECT IDENTIFIER ::= { tnPsdInterface 1 }
tnPsdInterfaceConformance    OBJECT IDENTIFIER ::= { tnPsdInterface 2 }
tnPsdInterfaceGroups         OBJECT IDENTIFIER ::= { tnPsdInterfaceConformance 2 }

tnPsdSnmp                    OBJECT IDENTIFIER ::= { tnPsdMIB 4 }
tnPsdSnmpNotifs              OBJECT IDENTIFIER ::= { tnPsdSnmp 0 }
tnPsdSnmpObjects             OBJECT IDENTIFIER ::= { tnPsdSnmp 1 }
tnPsdSnmpConformance         OBJECT IDENTIFIER ::= { tnPsdSnmp 2 }
tnPsdSnmpGroups              OBJECT IDENTIFIER ::= { tnPsdSnmpConformance 2 }

tnPsdDatabase                OBJECT IDENTIFIER ::= { tnPsdMIB 5 }
tnPsdDatabaseObjects         OBJECT IDENTIFIER ::= { tnPsdDatabase 1 }
tnPsdDatabaseConformance     OBJECT IDENTIFIER ::= { tnPsdDatabase 2 }
tnPsdDatabaseGroups          OBJECT IDENTIFIER ::= { tnPsdDatabaseConformance 2 }

tnPsdSoftware                OBJECT IDENTIFIER ::= { tnPsdMIB 6 }
tnPsdSoftwareNotifs          OBJECT IDENTIFIER ::= { tnPsdSoftware 0 }
tnPsdSoftwareObjects         OBJECT IDENTIFIER ::= { tnPsdSoftware 1 }
tnPsdSoftwareConformance     OBJECT IDENTIFIER ::= { tnPsdSoftware 2 }
tnPsdSoftwareGroups          OBJECT IDENTIFIER ::= { tnPsdSoftwareConformance 2 }

tnPsdTime                    OBJECT IDENTIFIER ::= { tnPsdMIB 7 }
tnPsdTimeNotifs              OBJECT IDENTIFIER ::= { tnPsdTime 0 }
tnPsdTimeObjects             OBJECT IDENTIFIER ::= { tnPsdTime 1 }
tnPsdTimeConformance         OBJECT IDENTIFIER ::= { tnPsdTime 2 }
tnPsdTimeGroups              OBJECT IDENTIFIER ::= { tnPsdTimeConformance 2 }

tnPsdIp                      OBJECT IDENTIFIER ::= { tnPsdMIB 8 }
tnPsdIpNotifs                OBJECT IDENTIFIER ::= { tnPsdIp 0 }
tnPsdIpObjects               OBJECT IDENTIFIER ::= { tnPsdIp 1 }
tnPsdIpConformance           OBJECT IDENTIFIER ::= { tnPsdIp 2 }
tnPsdIpGroups                OBJECT IDENTIFIER ::= { tnPsdIpConformance 2 }

tnPsdFault                   OBJECT IDENTIFIER ::= { tnPsdMIB 9 }
tnPsdFaultNotifs             OBJECT IDENTIFIER ::= { tnPsdFault 0 }
tnPsdFaultObjects            OBJECT IDENTIFIER ::= { tnPsdFault 1 }
tnPsdFaultConformance        OBJECT IDENTIFIER ::= { tnPsdFault 2 }
tnPsdFaultGroups             OBJECT IDENTIFIER ::= { tnPsdFaultConformance 2 }

tnPsdSysDiscovery            OBJECT IDENTIFIER ::= { tnPsdMIB 10 }
tnPsdSysDiscoveryObjects     OBJECT IDENTIFIER ::= { tnPsdSysDiscovery 1 }
tnPsdSysDiscoveryConformance OBJECT IDENTIFIER ::= { tnPsdSysDiscovery 2 }
tnPsdSysDiscoveryGroups      OBJECT IDENTIFIER ::= { tnPsdSysDiscoveryConformance 2 }

tnPsdOtn                     OBJECT IDENTIFIER ::= { tnPsdMIB 11 }
tnPsdOtnNotifs               OBJECT IDENTIFIER ::= { tnPsdOtn 0 }
tnPsdOtnObjects              OBJECT IDENTIFIER ::= { tnPsdOtn 1 }
tnPsdOtnConformance          OBJECT IDENTIFIER ::= { tnPsdOtn 2 }
tnPsdOtnGroups               OBJECT IDENTIFIER ::= { tnPsdOtnConformance 2 }

tnPsdCfm                     OBJECT IDENTIFIER ::= { tnPsdMIB 12 }
tnPsdCfmNotifs               OBJECT IDENTIFIER ::= { tnPsdCfm 0 }
tnPsdCfmObjects              OBJECT IDENTIFIER ::= { tnPsdCfm 1 }
tnPsdCfmConformance          OBJECT IDENTIFIER ::= { tnPsdCfm 2 }
tnPsdCfmGroups               OBJECT IDENTIFIER ::= { tnPsdCfmConformance 2 }

tnPsdPm                      OBJECT IDENTIFIER ::= { tnPsdMIB 13 }
tnPsdPmNotifs                OBJECT IDENTIFIER ::= { tnPsdPm 0 }
tnPsdPmObjects               OBJECT IDENTIFIER ::= { tnPsdPm 1 }
tnPsdPmConformance           OBJECT IDENTIFIER ::= { tnPsdPm 2 }
tnPsdPmGroups                OBJECT IDENTIFIER ::= { tnPsdPmConformance 2 }

tnPsdPowerInput              OBJECT IDENTIFIER ::= { tnPsdMIB 14 }
tnPsdPowerInputNotifs        OBJECT IDENTIFIER ::= { tnPsdPowerInput 0 }
tnPsdPowerInputObjects       OBJECT IDENTIFIER ::= { tnPsdPowerInput 1 }
tnPsdPowerInputConformance   OBJECT IDENTIFIER ::= { tnPsdPowerInput 2 }
tnPsdPowerInputGroups        OBJECT IDENTIFIER ::= { tnPsdPowerInputConformance 2 }

tnPsdAgentCapability         OBJECT IDENTIFIER ::= { tnPsdMIB 100 }

tnPsdMIBCompliance           OBJECT IDENTIFIER ::= { tnPsdMIB 200 }

-------------------------------------------------------------------------------
-- Type Definitions
-------------------------------------------------------------------------------

TropicPsdAsapIndexType ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "d"
    STATUS         current
    DESCRIPTION    "Index for Alarm Severity Assignment Profiles (ASAPs)."
    SYNTAX         Unsigned32 (1..4294967295)

TropicPsdAvailabilityStatus ::= TEXTUAL-CONVENTION
    STATUS         current
    DESCRIPTION    "The availability status."
    SYNTAX         INTEGER {
                       available(1),
                       unavailable(2)
                   }

TropicPsdCardCLEICode ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "10a"
    STATUS         current
    DESCRIPTION    "Readable Card CLEI Code string."
    SYNTAX         OCTET STRING (SIZE(0..10))

TropicPsdCardCompanyIdentifier ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "4a"
    STATUS         current
    DESCRIPTION    "Readable Card Company Identifier string."
    SYNTAX         OCTET STRING (SIZE(0..4))

TropicPsdCardCustomerInvField ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "44a"
    STATUS         current
    DESCRIPTION    "Readable Card Customer Inventory Field string."
    SYNTAX         OCTET STRING (SIZE(0..44))

TropicPsdCardDate ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "6a"
    STATUS         current
    DESCRIPTION    "Readable Card Date string.
                    Format is yymmdd (yy=year, mm=month, dd=day)."
    SYNTAX         OCTET STRING (SIZE(0..6))

TropicPsdCardFactoryIdentifier ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "4a"
    STATUS         current
    DESCRIPTION    "Readable Card Factory Identifier string."
    SYNTAX         OCTET STRING (SIZE(0..4))

TropicPsdCardMnemonic ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "8a"
    STATUS         current
    DESCRIPTION    "Readable Card Mnemonic string."
    SYNTAX         OCTET STRING (SIZE(0..8))

TropicPsdCardPartNumber ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "14a"
    STATUS         current
    DESCRIPTION    "Readable Card (Unit and SW) Part Number string."
    SYNTAX         OCTET STRING (SIZE(0..14))

TropicPsdCardSerialNumber ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "18a"
    STATUS         current
    DESCRIPTION    "Readable Card Serial Number string."
    SYNTAX         OCTET STRING (SIZE(0..18))

TropicPsdDdmDataType ::= TEXTUAL-CONVENTION
    STATUS         current
    DESCRIPTION    "Types of Digital Diagnostics Monitoring (DDM) Data."
    SYNTAX         INTEGER {
                       ddmVoltage(1),
                       ddmTemperature(2),
                       ddmLaserBiasCurrent(3),
                       ddmTransmittedPower(4),
                       ddmReceivedPower(5)
                   }

TropicPsdDapi ::= TEXTUAL-CONVENTION
  DISPLAY-HINT "1x:"
  STATUS  current
  DESCRIPTION      "The Destination Access Point Identifier (DAPI)."
  SYNTAX           OCTET STRING (SIZE(16))

TropicPsdFaultAlarmTime ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "d"
    STATUS         current
    DESCRIPTION    "Alarm raise or clear persistence time, in deciseconds."
    SYNTAX         Unsigned32

TropicPsdFaultLocationType ::= TEXTUAL-CONVENTION
    STATUS         current
    DESCRIPTION    "Fault Location types."
    SYNTAX         INTEGER {
                       faultLocUnknown(0),
                       faultLocShelf(1),
                       faultLocSlot(2),
                       faultLocSystem(3),
                       faultLocIntfDP(4),
                       faultLocIntfMP(5),
                       faultLocOtuk(7),
                       faultLocOdukT(8),
                       faultLocOdukPm(9),
                       faultLocOdukP(10),
                       faultLocNetIf(11),
                       faultLocIntfDPN(12),
                       faultLocIntfDPC(13),
                       faultLocAps(14),
                       faultLocSlm(15),
                       faultLocDm(16),
                       faultLocMep(17),
                       faultLocLag(18),
                       faultLocLogIntfDP(19),
                       faultLocLogIntfDPC(20),
                       faultLocLogIntfDPN(21),
                       faultLocOdukPmC(22),
                       faultLocOtukC(23),
                       faultLocPowerInput(24)
                   }

TropicPsdFaultSeverity ::= TEXTUAL-CONVENTION
    STATUS         current
    DESCRIPTION    "Fault Severity types."
    SYNTAX         INTEGER {
                       critical(1),
                       major(2),
                       minor(3),
                       notAlarmed(7),
                       warning(12)
                   }

TropicPsdIsdId ::= TEXTUAL-CONVENTION
    STATUS         current
    DESCRIPTION    "ISD (Image System Database) identifier."
    SYNTAX         INTEGER {
                        isd0(1),
                        isd1(2)
                    }

TropicPsdIsdStatus ::= TEXTUAL-CONVENTION
    STATUS         current
    DESCRIPTION    "ISD status."
    SYNTAX         INTEGER {
                        isdActive(1),
                        isdInactive(2),
                        isdError(3),
                        isdSoak(4)
                    }

TropicPsdNetIfIndexOrZero ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "d"
    STATUS         current
    DESCRIPTION    "This textual convention is an extension to tnNetIfIndex in
                    TROPIC-L1SERVICE-MIB.
                    The latter defines a greater then zero value used to
                    identify a network interface. This extension permits the
                    additional value zero.
                    The value zero means that no network interface is
                    referenced."
    SYNTAX          Unsigned32 (0..512)

TropicPsdNtpServerIndexType ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "d"
    STATUS         current
    DESCRIPTION    "Index for NTP servers."
    SYNTAX         Unsigned32 (1..4294967295)

TropicPsdPriorityValue ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "d"
    STATUS         current
    DESCRIPTION    "The priority value part of the 802.1Q header."
    SYNTAX         Unsigned32 (0..7)

TropicPsdRestartType ::= TEXTUAL-CONVENTION
    STATUS         current
    DESCRIPTION    "The type of restart."
    SYNTAX         INTEGER {
                        noCmd(1),
                        warm(2),
                        cold(3)
                    }

TropicPsdSapi ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "1x:"
    STATUS         current
    DESCRIPTION    "The Source Access Point Identifier (SAPI)."
    SYNTAX         OCTET STRING (SIZE(16))

TropicPsdSfpAluPartNumber ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "12a"
    STATUS         current
    DESCRIPTION    "Readable SFP Alcatel-Lucent Part Number string."
    SYNTAX         OCTET STRING (SIZE(0..12))

TropicPsdSfpAluSerialNumber ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "18a"
    STATUS         current
    DESCRIPTION    "Readable SFP Alcatel-Lucent Serial Number string."
    SYNTAX         OCTET STRING (SIZE(0..18))

TropicPsdSfpBitRate ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "1x:"
    STATUS         current
    DESCRIPTION    "Bit rate in units of 100 Mbit/s."
    SYNTAX         OCTET STRING (SIZE(1))

TropicPsdSfpCLEICode ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "10a"
    STATUS         current
    DESCRIPTION    "Readable SFP CLEI Code string."
    SYNTAX         OCTET STRING (SIZE(0..10))

TropicPsdSfpConnectorType ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "1x:"
    STATUS         current
    DESCRIPTION    "Type of SFP connector."
    SYNTAX         OCTET STRING (SIZE(1))

TropicPsdSfpIcs ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "6a"
    STATUS         current
    DESCRIPTION    "Readable SFP Interchangeability Marker string."
    SYNTAX         OCTET STRING (SIZE(0..6))

TropicPsdSfpIdentifier ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "1x:"
    STATUS         current
    DESCRIPTION    "Type for the SFP identifier. The value is identical to
                    the first 2 bytes of the MSA (Multi Source Agreement)
                    page. The first byte indicates the identifier (Type of
                    serial transceiver) and the second byte indicates the
                    extended identifier."
    SYNTAX         OCTET STRING (SIZE(2))

TropicPsdSfpLinkLength ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "1x:"
    STATUS         current
    DESCRIPTION    "SFP link length."
    SYNTAX         OCTET STRING (SIZE(5))

TropicPsdSfpNokiaPartNumber ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "12a"
    STATUS         current
    DESCRIPTION    "Readable SFP Nokia Part Number string."
    SYNTAX         OCTET STRING (SIZE(0..12))

TropicPsdSfpPartNumber ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "16a"
    STATUS         current
    DESCRIPTION    "Readable SFP Part Number string."
    SYNTAX         OCTET STRING (SIZE(0..16))

TropicPsdSfpRevisionNumber ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "4a"
    STATUS         current
    DESCRIPTION    "Readable SFP Revision Number string."
    SYNTAX         OCTET STRING (SIZE(0..4))

TropicPsdSfpTransceiverCode ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "1x:"
    STATUS         current
    DESCRIPTION    "Type of SFP transceiver codes for electrical
                    or optical compatibility."
    SYNTAX         OCTET STRING (SIZE(8))

TropicPsdSfpVendorDate ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "8a"
    STATUS         current
    DESCRIPTION    "Readable SFP Vendor Date string."
    SYNTAX         OCTET STRING (SIZE(0..8))

TropicPsdSfpVendorName ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "16a"
    STATUS         current
    DESCRIPTION    "Readable SFP Vendor Name string."
    SYNTAX         OCTET STRING (SIZE(0..16))

TropicPsdSfpVendorOUI ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "1x:"
    STATUS         current
    DESCRIPTION    "SFP Vendor OUI."
    SYNTAX         OCTET STRING (SIZE(3))

TropicPsdSfpVendorSerialNumber ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "16a"
    STATUS         current
    DESCRIPTION    "Readable SFP Vendor Serial Number string."
    SYNTAX         OCTET STRING (SIZE(0..16))

TropicPsdSfpVendorSpecific ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "1x:"
    STATUS         current
    DESCRIPTION    "SFP Vendor Specific Data."
    SYNTAX         OCTET STRING (SIZE(32))

TropicPsdSfpWavelength ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "d-2"
    STATUS         current
    DESCRIPTION    "SFP wavelength in units of 0.01 nm (nanometer)."
    SYNTAX         Unsigned32

TropicPsdShelfRealTimePower ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "d-1"
    STATUS         current
    DESCRIPTION    "Shelf real time power in units of 0.1 Watt."
    SYNTAX         Unsigned32

TropicPsdSnmpPortNumberType ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "d"
    STATUS         current
    DESCRIPTION    "The UDP port number that is used for SNMP request,
                    response or trap messages."
    SYNTAX         Unsigned32 (1..4294967295)

TropicPsdSystemMode ::= TEXTUAL-CONVENTION
    STATUS         current
    DESCRIPTION    "The System Mode."
    SYNTAX         INTEGER {
                        factoryDefault(1),
                        otnNid1GbeClientOtu1NetworkMode(2),
                        otnNid1GbeClientOtu2NetworkMode(3),
                        otnNid10GbeClientOtu2NetworkMode(4),
                        otnNid10GbeClientOtu2eNetworkMode(5),
                        otnNidOtu1ClientOtu1NetworkMode(6),
                        otnNidOtu2ClientOtu2NetworkMode(7),
                        otnNidOtu2eClientOtu2eNetworkMode(8),
                        ethNid1GbEor10GbEClient10GbENetworkMode(9),
                        otnNid1GbEor10GbEClientOtu2OduFlexNetworkMode(10),
                        otnNid2x1GbEor10GbEClientOtu2OduFlexNetworkMode(11)
                    }

TropicPsdTransportIdentifier ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "d"
    STATUS         current
    DESCRIPTION    "The transport identifier.
                    The value of this object is used in the 16 bit transport
                    identifier field of a VLAN tag."
    SYNTAX         Unsigned32 (0..'FFFF'h)

TropicPsdVlanId ::= TEXTUAL-CONVENTION
    DISPLAY-HINT   "d"
    STATUS         current
    DESCRIPTION    "The Virtual Local Area Network identifier."
    SYNTAX         Integer32 (1..4094)

-------------------------------------------------------------------------------
-- PSD System Scalars
-------------------------------------------------------------------------------

tnPsdSystemMode OBJECT-TYPE
    SYNTAX         TropicPsdSystemMode
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "PSD System Mode.
                    When the value of this object is unequal to
                    factoryDefault(1) only the value factoryDefault(1) can be
                    provisioned. As a consequence of a change to the value
                    factoryDefault(1) the NE databases are cleared and
                    the NE performs a cold restart. When the NE comes up
                    remote connectivity is not possible.
                    When the value of this object is equal to
                    factoryDefault(1) any other supported value that is
                    unequal to factoryDefault(1) can be provisioned.
                    As a consequence of a change from factoryDefault(1) to
                    another system mode the NE databases will not be cleared."
    ::= { tnPsdSystemObjects 1 }

tnPsdSystemModeDescr OBJECT-TYPE
    SYNTAX         SnmpAdminString
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Description of the PSD System Mode."
    ::= { tnPsdSystemObjects 2 }

tnPsdSystemAbnormalState OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Indicates the abnormal state of the system.
                    The system enters the abnormal state when
                    one of the following conditions exist:
                    - Terminal loopback also known as diagnostic loopback.
                    - ODUk PRBS generator or monitor enabled.
                    - Internal system temperature too high."
    ::= { tnPsdSystemObjects 3 }

tnPsdSystemSmartConnectLed OBJECT-TYPE
    SYNTAX         INTEGER {
                        off(1),
                        blue(2),
                        blueBlink1Hz(3),
                        blueBlink5Hz(4)
                   }

    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Smart-Connect is a functional procedure that initiates
                    automatic provisioning and network testing.
                    The provisioning of the smart connect LED is part of the
                    smart connect procedure.
                    This object can be used to control the smart connect LED."
    ::= { tnPsdSystemObjects 4 }

-------------------------------------------------------------------------------
-- PSD Dying Gasp Trap Notification
-------------------------------------------------------------------------------

tnPsdDyingGaspNotif NOTIFICATION-TYPE
    STATUS      current
    DESCRIPTION "PSD Dying Gasp trap.
                 Just before an envisioned power outage the PSD sends this
                 trap at least once to the configured destination(s)."
::= { tnPsdEquipmentNotifs 1 }

-------------------------------------------------------------------------------
-- PSD Shelf Table
-------------------------------------------------------------------------------

tnPsdShelfTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdShelfEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD shelf table."
    ::= { tnPsdEquipmentObjects 1 }

tnPsdShelfEntry OBJECT-TYPE
    SYNTAX         TnPsdShelfEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdShelfTable."
    INDEX { tnShelfIndex }
    ::= { tnPsdShelfTable 1 }

TnPsdShelfEntry ::=
    SEQUENCE {
        tnPsdShelfName             SnmpAdminString,
        tnPsdShelfDescr            SnmpAdminString,
        tnPsdShelfType             OBJECT IDENTIFIER,
        tnPsdShelfLocation         SnmpAdminString,
        tnPsdShelfLatitude         SnmpAdminString,
        tnPsdShelfLongitude        SnmpAdminString,
        tnPsdShelfAltitude         SnmpAdminString,
        tnPsdShelfRealTimePower    TropicPsdShelfRealTimePower
        }

tnPsdShelfName OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Shelf name (an abbreviated description)."
    DEFVAL         { "" }
    ::= { tnPsdShelfEntry 1 }

tnPsdShelfDescr OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..255))
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Shelf description."
    DEFVAL         { "" }
    ::= { tnPsdShelfEntry 2 }

tnPsdShelfType OBJECT-TYPE
    SYNTAX         OBJECT IDENTIFIER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Shelf type."
    ::= { tnPsdShelfEntry 3 }

tnPsdShelfLocation OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Shelf location string."
    DEFVAL         { "" }
    ::= { tnPsdShelfEntry 4 }

tnPsdShelfLatitude OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Shelf latitude.
                    Free format to store the latitude part of GPS coordinates."
    DEFVAL         { "" }
    ::= { tnPsdShelfEntry 5 }

tnPsdShelfLongitude OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Shelf longitude.
                    Free format to store the longitude part of GPS
                    coordinates."
    DEFVAL         { "" }
    ::= { tnPsdShelfEntry 6 }

tnPsdShelfAltitude OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Shelf altitude.
                    Free format to store the altitude part of GPS coordinates."
    DEFVAL         { "" }
    ::= { tnPsdShelfEntry 7 }

tnPsdShelfRealTimePower OBJECT-TYPE
    SYNTAX         TropicPsdShelfRealTimePower
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Shelf real time power."
    ::= { tnPsdShelfEntry 8 }

tnPsdShelfConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD Shelf (TROPIC-PSD-MIB, tnPsdShelfTable)
                 configuration change notification."
::= { tnPsdEquipmentNotifs 2 }

-------------------------------------------------------------------------------
-- PSD Shelf Restart Table
-------------------------------------------------------------------------------

tnPsdShelfRestartTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdShelfRestartEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD shelf restart table."
    ::= { tnPsdEquipmentObjects 6 }

tnPsdShelfRestartEntry OBJECT-TYPE
    SYNTAX         TnPsdShelfRestartEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdShelfRestartTable."
    INDEX { tnShelfIndex }
    ::= { tnPsdShelfRestartTable 1 }

TnPsdShelfRestartEntry ::=
    SEQUENCE {
        tnPsdShelfRestart TropicPsdRestartType
        }

tnPsdShelfRestart OBJECT-TYPE
    SYNTAX         TropicPsdRestartType
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Shelf restart."
    DEFVAL         { noCmd }
    ::= { tnPsdShelfRestartEntry 1 }

tnPsdShelfRestartConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD Shelf Restart (TROPIC-PSD-MIB, tnPsdShelfRestartTable)
                 configuration change notification."
::= { tnPsdEquipmentNotifs 3 }

-------------------------------------------------------------------------------
-- PSD Restart event notification
-------------------------------------------------------------------------------

tnPsdSwRestartNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapDescr,
        tnGenericTrapData,
        tnGenericTrapDateAndTime
    }
    STATUS current
    DESCRIPTION "Notification of a software restart event."
    ::= { tnPsdEquipmentNotifs 4 }

-------------------------------------------------------------------------------
-- PSD Slot Table
-------------------------------------------------------------------------------

tnPsdSlotTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdSlotEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD slot table."
    ::= { tnPsdEquipmentObjects 2 }

tnPsdSlotEntry OBJECT-TYPE
    SYNTAX         TnPsdSlotEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdSlotTable."
    INDEX { tnShelfIndex, tnSlotIndex }
    ::= { tnPsdSlotTable 1 }

TnPsdSlotEntry ::=
    SEQUENCE {
        tnPsdSlotType     OBJECT IDENTIFIER
        }

tnPsdSlotType OBJECT-TYPE
    SYNTAX         OBJECT IDENTIFIER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Type of slot."
    ::= { tnPsdSlotEntry 1 }

-------------------------------------------------------------------------------
-- PSD Card Table
-------------------------------------------------------------------------------

tnPsdCardTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdCardEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD card table."
    ::= { tnPsdEquipmentObjects 3 }

tnPsdCardEntry OBJECT-TYPE
    SYNTAX         TnPsdCardEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdCardTable."
    INDEX { tnShelfIndex, tnSlotIndex }
    ::= { tnPsdCardTable 1 }

TnPsdCardEntry ::=
    SEQUENCE {
        tnPsdCardInvStatus       TropicPsdAvailabilityStatus,
        tnPsdCardCompanyID       TropicPsdCardCompanyIdentifier,
        tnPsdCardMnemonic        TropicPsdCardMnemonic,
        tnPsdCardCLEI            TropicPsdCardCLEICode,
        tnPsdCardUnitPartNumber  TropicPsdCardPartNumber,
        tnPsdCardSwPartNumber    TropicPsdCardPartNumber,
        tnPsdCardFactoryID       TropicPsdCardFactoryIdentifier,
        tnPsdCardSerialNumber    TropicPsdCardSerialNumber,
        tnPsdCardDate            TropicPsdCardDate,
        tnPsdCardCustInvField    TropicPsdCardCustomerInvField
        }

tnPsdCardInvStatus OBJECT-TYPE
    SYNTAX         TropicPsdAvailabilityStatus
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Card inventory availability status.
                    When the value of this object is unavailable(2),
                    the values of all other objects of the same table
                    row are not relevant."
    ::= { tnPsdCardEntry 1 }

tnPsdCardCompanyID OBJECT-TYPE
    SYNTAX         TropicPsdCardCompanyIdentifier
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Card company identifier."
    ::= { tnPsdCardEntry 2 }

tnPsdCardMnemonic OBJECT-TYPE
    SYNTAX         TropicPsdCardMnemonic
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Card mnemonic."
    ::= { tnPsdCardEntry 3 }

tnPsdCardCLEI OBJECT-TYPE
    SYNTAX         TropicPsdCardCLEICode
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Card CLEI Code."
    ::= { tnPsdCardEntry 4 }

tnPsdCardUnitPartNumber OBJECT-TYPE
    SYNTAX         TropicPsdCardPartNumber
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Card Unit (manufacturing) Part Number."
    ::= { tnPsdCardEntry 5 }

tnPsdCardSwPartNumber OBJECT-TYPE
    SYNTAX         TropicPsdCardPartNumber
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Card Software Part Number."
    ::= { tnPsdCardEntry 6 }

tnPsdCardFactoryID OBJECT-TYPE
    SYNTAX         TropicPsdCardFactoryIdentifier
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Card factory identifier."
    ::= { tnPsdCardEntry 7 }

tnPsdCardSerialNumber OBJECT-TYPE
    SYNTAX         TropicPsdCardSerialNumber
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Card serial number."
    ::= { tnPsdCardEntry 8 }

tnPsdCardDate OBJECT-TYPE
    SYNTAX         TropicPsdCardDate
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Card date."
    ::= { tnPsdCardEntry 9 }

tnPsdCardCustInvField OBJECT-TYPE
    SYNTAX         TropicPsdCardCustomerInvField
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Card customer inventory field."
    ::= { tnPsdCardEntry 10 }

-------------------------------------------------------------------------------
-- PSD SFP Configuration Table
-------------------------------------------------------------------------------

tnPsdSfpConfigTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdSfpConfigEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "SFP configuration table."
    ::= { tnPsdInterfaceObjects 1 }

tnPsdSfpConfigEntry OBJECT-TYPE
    SYNTAX         TnPsdSfpConfigEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdSfpConfigTable."
    INDEX { ifIndex }
    ::= { tnPsdSfpConfigTable 1 }

TnPsdSfpConfigEntry ::=
    SEQUENCE {
        tnPsdSfpType              TnSfpType,
        tnPsdSfpProgrammedChannel Unsigned32
        }

tnPsdSfpType OBJECT-TYPE
    SYNTAX         TnSfpType
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "SFP type validation control, influences the SFP validation
                    process:
                    - standardSfp(1) the SFP is Nokia coded
                    - userSfp(2)     the SFP is not Nokia coded"
    ::= { tnPsdSfpConfigEntry 1 }

tnPsdSfpProgrammedChannel OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "SFP ITU channel number used to configure a tunable SFP."
    ::= { tnPsdSfpConfigEntry 2 }

tnPsdSfpConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD SFP (TROPIC-PSD-MIB, tnPsdSfpConfigTable)
                 configuration change notification."
::= { tnPsdInterfaceNotifs 1 }

-------------------------------------------------------------------------------
-- PSD SFP Info Table
-------------------------------------------------------------------------------

tnPsdSfpInfoTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdSfpInfoEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "SFP configuration table."
    ::= { tnPsdInterfaceObjects 3 }

tnPsdSfpInfoEntry OBJECT-TYPE
    SYNTAX         TnPsdSfpInfoEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdSfpInfoTable."
    INDEX { ifIndex }
    ::= { tnPsdSfpInfoTable 1 }

TnPsdSfpInfoEntry ::=
    SEQUENCE {
        tnPsdSfpInfoInvStatus           TropicPsdAvailabilityStatus,
        tnPsdSfpInfoPhysicalIdentifier  TropicPsdSfpIdentifier,
        tnPsdSfpInfoClassOfWdm          INTEGER,
        tnPsdSfpInfoConnectorType       TropicPsdSfpConnectorType,
        tnPsdSfpInfoTransceiverCode     TropicPsdSfpTransceiverCode,
        tnPsdSfpInfoBitRateNominal      TropicPsdSfpBitRate,
        tnPsdSfpInfoLinkType            INTEGER,
        tnPsdSfpInfoLinkMaxLength       Unsigned32,
        tnPsdSfpInfoLinkLengthOverrun   TruthValue,
        tnPsdSfpInfoLinkLengthUnits     INTEGER,
        tnPsdSfpInfoLinkLength          TropicPsdSfpLinkLength,
        tnPsdSfpInfoVendorName          TropicPsdSfpVendorName,
        tnPsdSfpInfoVendorOUI           TropicPsdSfpVendorOUI,
        tnPsdSfpInfoPartNumber          TropicPsdSfpPartNumber,
        tnPsdSfpInfoRevisionNumber      TropicPsdSfpRevisionNumber,
        tnPsdSfpInfoWavelength          TropicPsdSfpWavelength,
        tnPsdSfpInfoBitRateMaximum      TropicPsdSfpBitRate,
        tnPsdSfpInfoBitRateMinimum      TropicPsdSfpBitRate,
        tnPsdSfpInfoVendorSerialNumber  TropicPsdSfpVendorSerialNumber,
        tnPsdSfpInfoVendorDate          TropicPsdSfpVendorDate,
        tnPsdSfpInfoVendorSpecific      TropicPsdSfpVendorSpecific,
        tnPsdSfpInfoCLEI                TropicPsdSfpCLEICode,
        tnPsdSfpInfoAluPartNumber       TropicPsdSfpAluPartNumber,
        tnPsdSfpInfoAluSerialNumber     TropicPsdSfpAluSerialNumber,
        tnPsdSfpInfoIcs                 TropicPsdSfpIcs,
        tnPsdSfpInfoNokiaPartNumber     TropicPsdSfpNokiaPartNumber,
        tnPsdSfpInfoTunable             TruthValue,
        tnPsdSfpInfoFrequency           SnmpAdminString,
        tnPsdSfpInfoFrequencyLow        SnmpAdminString,
        tnPsdSfpInfoFrequencyHigh       SnmpAdminString,
        tnPsdSfpInfoFrequencyGrid       SnmpAdminString,
        tnPsdSfpInfoTuningStatus        INTEGER
        }

tnPsdSfpInfoInvStatus OBJECT-TYPE
    SYNTAX         TropicPsdAvailabilityStatus
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP inventory availability status.
                    When the value of this object is unavailable(2),
                    the values of all other objects of the same table
                    row are not relevant."
    ::= { tnPsdSfpInfoEntry 1 }

tnPsdSfpInfoPhysicalIdentifier OBJECT-TYPE
    SYNTAX         TropicPsdSfpIdentifier
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP transceiver type (identifier and extended identifier)."
    ::= { tnPsdSfpInfoEntry 2 }

tnPsdSfpInfoClassOfWdm OBJECT-TYPE
    SYNTAX         INTEGER {
                       other(1),
                       bw(2),
                       cwdm(3),
                       dwdm(4)
                   }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP class of WDM.
                    Indicates whether the SFP module type is black and white
                    (bw), CWDM, DWDM, or other(1) in case none of these values
                    apply."
    ::= { tnPsdSfpInfoEntry 3 }

tnPsdSfpInfoConnectorType OBJECT-TYPE
    SYNTAX         TropicPsdSfpConnectorType
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP connector type."
    ::= { tnPsdSfpInfoEntry 4 }

tnPsdSfpInfoTransceiverCode OBJECT-TYPE
    SYNTAX         TropicPsdSfpTransceiverCode
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP transceiver code."
    ::= { tnPsdSfpInfoEntry 5 }

tnPsdSfpInfoBitRateNominal OBJECT-TYPE
    SYNTAX         TropicPsdSfpBitRate
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP nominal bit rate."
    ::= { tnPsdSfpInfoEntry 6 }

tnPsdSfpInfoLinkType OBJECT-TYPE
    SYNTAX         INTEGER {
                       linkTypeNotApplicable(0),
                       link9umCoreFibre(1),
                       link50umCoreFibre(2),
                       link62um5CoreFibre(3),
                       linkCopperCable(4)
                   }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP link type."
    ::= { tnPsdSfpInfoEntry 7 }

tnPsdSfpInfoLinkMaxLength OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Maximum length of SFP link."
    ::= { tnPsdSfpInfoEntry 8 }

tnPsdSfpInfoLinkLengthOverrun OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP link length overrun."
    ::= { tnPsdSfpInfoEntry 9 }

tnPsdSfpInfoLinkLengthUnits OBJECT-TYPE
    SYNTAX         INTEGER {
                       unitsNotApplicable(0),
                       unitsM1(1),
                       unitsM10(10),
                       unitsKm1(1000)
                   }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP link length units."
    ::= { tnPsdSfpInfoEntry 10 }

tnPsdSfpInfoLinkLength OBJECT-TYPE
    SYNTAX         TropicPsdSfpLinkLength
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP link length."
    ::= { tnPsdSfpInfoEntry 11 }

tnPsdSfpInfoVendorName OBJECT-TYPE
    SYNTAX         TropicPsdSfpVendorName
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP vendor name."
    ::= { tnPsdSfpInfoEntry 12 }

tnPsdSfpInfoVendorOUI OBJECT-TYPE
    SYNTAX         TropicPsdSfpVendorOUI
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP vendor OUI."
    ::= { tnPsdSfpInfoEntry 13 }

tnPsdSfpInfoPartNumber OBJECT-TYPE
    SYNTAX         TropicPsdSfpPartNumber
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP part number."
    ::= { tnPsdSfpInfoEntry 14 }

tnPsdSfpInfoRevisionNumber OBJECT-TYPE
    SYNTAX         TropicPsdSfpRevisionNumber
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP revision number."
    ::= { tnPsdSfpInfoEntry 15 }

tnPsdSfpInfoWavelength OBJECT-TYPE
    SYNTAX         TropicPsdSfpWavelength
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP wavelength."
    ::= { tnPsdSfpInfoEntry 16 }

tnPsdSfpInfoBitRateMaximum OBJECT-TYPE
    SYNTAX         TropicPsdSfpBitRate
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP maximum bit rate."
    ::= { tnPsdSfpInfoEntry 17 }

tnPsdSfpInfoBitRateMinimum OBJECT-TYPE
    SYNTAX         TropicPsdSfpBitRate
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP minimum bit rate."
    ::= { tnPsdSfpInfoEntry 18 }

tnPsdSfpInfoVendorSerialNumber OBJECT-TYPE
    SYNTAX         TropicPsdSfpVendorSerialNumber
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP vendor serial number."
    ::= { tnPsdSfpInfoEntry 19 }

tnPsdSfpInfoVendorDate OBJECT-TYPE
    SYNTAX         TropicPsdSfpVendorDate
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP vendor date."
    ::= { tnPsdSfpInfoEntry 20 }

tnPsdSfpInfoVendorSpecific OBJECT-TYPE
    SYNTAX         TropicPsdSfpVendorSpecific
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP vendor specific data."
    ::= { tnPsdSfpInfoEntry 21 }

tnPsdSfpInfoCLEI OBJECT-TYPE
    SYNTAX         TropicPsdSfpCLEICode
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP CLEI Code."
    ::= { tnPsdSfpInfoEntry 22 }

tnPsdSfpInfoAluPartNumber OBJECT-TYPE
    SYNTAX         TropicPsdSfpAluPartNumber
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP Alcatel-Lucent part number."
    ::= { tnPsdSfpInfoEntry 23 }

tnPsdSfpInfoAluSerialNumber OBJECT-TYPE
    SYNTAX         TropicPsdSfpAluSerialNumber
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP Alcatel-Lucent serial number."
    ::= { tnPsdSfpInfoEntry 24 }

tnPsdSfpInfoIcs OBJECT-TYPE
    SYNTAX         TropicPsdSfpIcs
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP interchangeability marker string."
    ::= { tnPsdSfpInfoEntry 25 }

tnPsdSfpInfoNokiaPartNumber OBJECT-TYPE
    SYNTAX         TropicPsdSfpNokiaPartNumber
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "SFP Nokia part number."
    ::= { tnPsdSfpInfoEntry 26 }

tnPsdSfpInfoTunable OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Indicates whether the inserted SFP is tunable."
    ::= { tnPsdSfpInfoEntry 27 }

tnPsdSfpInfoFrequency OBJECT-TYPE
    SYNTAX         SnmpAdminString(SIZE(1..20))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The actual by SFP applied frequency in Hz.
                    If unsupported the value '0' is returned."
    ::= { tnPsdSfpInfoEntry 28 }

tnPsdSfpInfoFrequencyLow OBJECT-TYPE
    SYNTAX         SnmpAdminString(SIZE(1..20))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The absolute lowest supported frequency value in Hz, as
                    supported by SFP. If unsupported the value '0' is
                    returned."
    ::= { tnPsdSfpInfoEntry 29 }

tnPsdSfpInfoFrequencyHigh OBJECT-TYPE
    SYNTAX         SnmpAdminString(SIZE(1..20))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The absolute highest supported frequency value in Hz, as
                    supported by SFP. If unsupported the value '0' is
                    returned."
    ::= { tnPsdSfpInfoEntry 30 }

tnPsdSfpInfoFrequencyGrid OBJECT-TYPE
    SYNTAX         SnmpAdminString(SIZE(1..20))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The actual by the SFP supported grid in Hz. If unsupported
                    the value '0' is returned."
    ::= { tnPsdSfpInfoEntry 31 }

tnPsdSfpInfoTuningStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                       notApplicable(0),
                       tuningOK(1),
                       tuningFreqProvisionedToZero(2),
                       tuningInProgress(3),
                       tuningFreqProvisionedOutOfRange(4),
                       tuningFailure(5)
                   }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The current tuning status. If unsupported the value
                    notApplicable(0) is returned."
    ::= { tnPsdSfpInfoEntry 32 }

tnPsdSfpInfoTuningStatusChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime
    }
    STATUS current
    DESCRIPTION "The SFP tuning status (TROPIC-PSD-MIB,
                 tnPsdSfpInfoTuningStatus) change notification."
    ::= { tnPsdInterfaceNotifs 2 }

tnPsdSfpInfoTuningOkNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapDescr,
        tnGenericTrapData,
        tnGenericTrapDateAndTime
    }
    STATUS current
    DESCRIPTION "The SFP tuning OK event notification."
    ::= { tnPsdInterfaceNotifs 3 }

-------------------------------------------------------------------------------
--  PSD DDM (Digital Diagnostic Monitoring) Data Table
-------------------------------------------------------------------------------

tnPsdDdmDataTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdDdmDataEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD table for Digital Diagnostics Monitoring
                    (DDM) Data of optical SFPs."
    ::= { tnPsdInterfaceObjects 4 }

tnPsdDdmDataEntry OBJECT-TYPE
    SYNTAX         TnPsdDdmDataEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdDdmDataTable."
    INDEX { ifIndex, tnPsdDdmDataType }
    ::= { tnPsdDdmDataTable 1 }

TnPsdDdmDataEntry ::=
    SEQUENCE {
        tnPsdDdmDataType   TropicPsdDdmDataType,
        tnPsdDdmDataValue  Integer32
        }

tnPsdDdmDataType OBJECT-TYPE
    SYNTAX         TropicPsdDdmDataType
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Identifies the DDM Data parameter."
    ::= { tnPsdDdmDataEntry 1 }

tnPsdDdmDataValue OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The value of the DDM Data parameter.

                    The following units and granularities are applied,
                    depending on the value of object tnPsdDdmDataType :
                     - ddmVoltage          : Volt            - 0.0001 Volt
                     - ddmTemperature      : Degrees Celsius - 0.1 degrees
                     - ddmLaserBiasCurrent : mA              - 0.001 mA
                     - ddmTransmittedPower : dBm             - 0.1 dBm
                     - ddmReceivedPower    : dBm             - 0.1 dBm"
    ::= { tnPsdDdmDataEntry 2 }

-------------------------------------------------------------------------------
-- PSD LAG Command Table
-------------------------------------------------------------------------------

tnPsdLagCommandTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdLagCommandEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD Link Aggregation Group Command table."
    ::= { tnPsdInterfaceObjects 5 }

tnPsdLagCommandEntry OBJECT-TYPE
    SYNTAX         TnPsdLagCommandEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdLagCommandTable."
    AUGMENTS { tnLagCommandEntry }
    ::= { tnPsdLagCommandTable 1 }

TnPsdLagCommandEntry ::=
    SEQUENCE {
        tnPsdLagCommandSubgroupSelected         TruthValue
        }

tnPsdLagCommandSubgroupSelected OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Indicates whether or not a subgroup is selected."
    ::= { tnPsdLagCommandEntry 1 }

-------------------------------------------------------------------------------
-- PSD Automatic Laser Shutdown (ALS) Table
-------------------------------------------------------------------------------

tnPsdAlsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdAlsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "ALS table."
    ::= { tnPsdInterfaceObjects 6 }

tnPsdAlsEntry OBJECT-TYPE
    SYNTAX         TnPsdAlsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdAlsTable."
    INDEX { ifIndex }
    ::= { tnPsdAlsTable 1 }

TnPsdAlsEntry ::=
    SEQUENCE {
        tnPsdAlsEnabled            TruthValue,
        tnPsdAlsWaitToRestart      Unsigned32,
        tnPsdAlsTxTime             Unsigned32,
        tnPsdAlsState              INTEGER,
        tnPsdAlsActiveCheck        TruthValue,
        tnPsdAlsActiveCheckForTest TruthValue
        }

tnPsdAlsEnabled OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Values :
                    - true(1)  - ALS enabled for the interface
                    - false(2) - ALS disabled for the interface"
    DEFVAL         { false }
    ::= { tnPsdAlsEntry 1 }

tnPsdAlsWaitToRestart OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "ALS Wait-To-Restart time in seconds.
                    Value range is 60 - 300 seconds."
    DEFVAL         { 100 }
    ::= { tnPsdAlsEntry 2 }

tnPsdAlsTxTime OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "ALS TX Time in 0.1 seconds.
                    Value range is 20 - 100 seconds.
                    Step size is 5 (0.5 seconds)."
    DEFVAL         { 20 }
    ::= { tnPsdAlsEntry 3 }

tnPsdAlsState OBJECT-TYPE
    SYNTAX         INTEGER {
                       active(1),
                       inactive(2)
                   }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "ALS active state."
    ::= { tnPsdAlsEntry 4 }

tnPsdAlsActiveCheck OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Setting this object to true(1) starts a manual
                    ALS-active-check, enabling the laser for the
                    time configured for tnPsdAlsTxTime.
                    Setting this object to false(2) has no effect."
    ::= { tnPsdAlsEntry 5 }

tnPsdAlsActiveCheckForTest OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Setting this object to true(1) starts a manual
                    ALS-active-check, enabling the laser for 90
                    seconds.
                    Setting this object to false(2) has no effect."
    ::= { tnPsdAlsEntry 6 }

tnPsdAlsConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD ALS (TROPIC-PSD-MIB, tnPsdAlsTable)
                 configuration change notification."
::= { tnPsdInterfaceNotifs 4 }

tnPsdAlsChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime
    }
    STATUS current
    DESCRIPTION "PSD ALS (TROPIC-PSD-MIB, tnPsdAlsTable)
                 change notification."
    ::= { tnPsdInterfaceNotifs 5 }

-------------------------------------------------------------------------------
-- PSD SNMP Trap Destination Server Table
-------------------------------------------------------------------------------

tnPsdSnmpTrapDestTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdSnmpTrapDestEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD SNMP trap destination server table."
    ::= { tnPsdSnmpObjects 1 }

tnPsdSnmpTrapDestEntry OBJECT-TYPE
    SYNTAX         TnPsdSnmpTrapDestEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdSnmpTrapDestTable."
    INDEX { tnPsdSnmpTrapDestServerId }
    ::= { tnPsdSnmpTrapDestTable 1 }

TnPsdSnmpTrapDestEntry ::=
    SEQUENCE {
        tnPsdSnmpTrapDestServerId     OCTET STRING,
        tnPsdSnmpTrapDestAddrType     InetAddressType,
        tnPsdSnmpTrapDestAddr         InetAddress,
        tnPsdSnmpTrapDestPort         TropicPsdSnmpPortNumberType,
        tnPsdSnmpTrapDestCommunity    OCTET STRING,
        tnPsdSnmpTrapDestDyingGasp    TruthValue,
        tnPsdSnmpTrapDestRowStatus    RowStatus,
        tnPsdSnmpTrapDestSnmpVersion  INTEGER,
        tnPsdSnmpTrapDestUserName     SnmpAdminString
        }

tnPsdSnmpTrapDestServerId OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(0..32))
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "The SNMP trap destination server identifier.
                    This is a unique value that identifies the table entry."
    ::= { tnPsdSnmpTrapDestEntry 1 }

tnPsdSnmpTrapDestAddrType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "Type of Internet address of the SNMP trap destination
                    server.

                    This object must always be included in an SNMP SET PDU
                    together with object tnPsdSnmpTrapDestAddr."
    DEFVAL         { unknown }
    ::= { tnPsdSnmpTrapDestEntry 2 }

tnPsdSnmpTrapDestAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "Internet address of the SNMP trap destination server.

                    This object must always be included in an SNMP SET PDU
                    together with object tnPsdSnmpTrapDestAddrType."
    ::= { tnPsdSnmpTrapDestEntry 3 }

tnPsdSnmpTrapDestPort OBJECT-TYPE
    SYNTAX         TropicPsdSnmpPortNumberType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The UDP port number that is used to send SNMP traps
                    to this trap destination server."
    DEFVAL         { 162 }
    ::= { tnPsdSnmpTrapDestEntry 4 }

tnPsdSnmpTrapDestCommunity OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The SNMPv2c community name string that is used to send
                    SNMPv2c traps to this trap destination server.
                    Only applicable for SNMPv2c trap destinations."
    DEFVAL         { "alarm" }
    ::= { tnPsdSnmpTrapDestEntry 5 }

tnPsdSnmpTrapDestDyingGasp OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "Just before an envisioned power outage the PSD sends at
                    least once a dying gasp trap to this trap destination
                    server.
                    Only applicable for SNMPv2c trap destinations."
    DEFVAL         { false }
    ::= { tnPsdSnmpTrapDestEntry 6 }

tnPsdSnmpTrapDestRowStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "A RowStatus object for creation, deletion, activation
                    and deactivation of entries in this table."
    ::= { tnPsdSnmpTrapDestEntry 7 }

tnPsdSnmpTrapDestSnmpVersion OBJECT-TYPE
    SYNTAX         INTEGER {
                       snmpv2c(2),
                       snmpv3(3)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The SNMP version used when formatting the traps."
    ::= { tnPsdSnmpTrapDestEntry 8 }

tnPsdSnmpTrapDestUserName OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "A human readable string representing the name of the
                    SNMPv3 user on whose behalf SNMPv3 traps are generated.
                    Only applicable for SNMPv3 trap destinations.

                    Important:
                    The syntax of this object is identical to that of
                    object usmUserName in the SNMP-USER-BASED-SM-MIB."
    ::= { tnPsdSnmpTrapDestEntry 9 }

tnPsdSnmpTrapDestConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD SNMP trap destination (TROPIC-PSD-MIB,
                 tnPsdSnmpTrapDestTable) configuration change
                 notification."
::= { tnPsdSnmpNotifs 1 }

tnPsdSnmpTrapDestCreationNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD SNMP trap destination (TROPIC-PSD-MIB,
                 tnPsdSnmpTrapDestTable) creation notification."
::= { tnPsdSnmpNotifs 2 }

tnPsdSnmpTrapDestDeletionNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD SNMP trap destination (TROPIC-PSD-MIB,
                 tnPsdSnmpTrapDestTable) deletion notification."
::= { tnPsdSnmpNotifs 3 }

-------------------------------------------------------------------------------
-- PSD Database Objects
-------------------------------------------------------------------------------

tnPsdDatabaseBackupAndRestoreRemoteHostAddrType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Type of internet address of the backup and restore server.

                    This object must always be included in an SNMP SET PDU
                    together with object
                    tnPsdDatabaseBackupAndRestoreRemoteHostAddr."
    DEFVAL         { unknown }
    ::= { tnPsdDatabaseObjects 1 }

tnPsdDatabaseBackupAndRestoreRemoteHostAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Internet address of the backup and restore server.
                    The type of this address is determined by the value
                    of object tnPsdDatabaseBackupAndRestoreRemoteHostAddrType.

                    This object must always be included in an SNMP SET PDU
                    together with object
                    tnPsdDatabaseBackupAndRestoreRemoteHostAddrType.

                    The default value is a zero-length string."
    ::= { tnPsdDatabaseObjects 2 }

-------------------------------------------------------------------------------
-- PSD Software Objects
-------------------------------------------------------------------------------

tnPsdSoftwareRemoteHostAddrType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Type of internet address of the software download server.

                    This object must always be included in an SNMP SET PDU
                    together with object tnPsdSoftwareRemoteHostAddr."
    DEFVAL         { unknown }
    ::= { tnPsdSoftwareObjects 1 }

tnPsdSoftwareRemoteHostAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Internet address of the software download server.
                    The type of this address is determined by the value of
                    object tnPsdSoftwareRemoteHostAddrType.

                    This object must always be included in an SNMP SET PDU
                    together with object tnPsdSoftwareRemoteHostAddrType.

                    The default value is a zero-length string."
    ::= { tnPsdSoftwareObjects 2 }

-------------------------------------------------------------------------------
-- PSD Software notifications
-------------------------------------------------------------------------------

tnPsdSwActivateNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapDescr,
        tnGenericTrapData,
        tnGenericTrapDateAndTime
    }
    STATUS current
    DESCRIPTION "Notification of a software activate event."
    ::= { tnPsdSoftwareNotifs 1 }

tnPsdSwCommitNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapDescr,
        tnGenericTrapData,
        tnGenericTrapDateAndTime
    }
    STATUS current
    DESCRIPTION "Notification of a software commit event."
    ::= { tnPsdSoftwareNotifs 2 }

-------------------------------------------------------------------------------
-- PSD Shelf ISD Table
-------------------------------------------------------------------------------

tnPsdShelfIsdTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdShelfIsdEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD shelf Image Software Database (ISD) table.
                    Contains information on the contents of all ISDs
                    (SW banks) of all shelves."
    ::= { tnPsdSoftwareObjects 3 }

tnPsdShelfIsdEntry OBJECT-TYPE
    SYNTAX         TnPsdShelfIsdEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdShelfIsdTable."
    INDEX { tnShelfIndex, tnPsdShelfIsdId }
    ::= { tnPsdShelfIsdTable 1 }

TnPsdShelfIsdEntry ::=
    SEQUENCE {
        tnPsdShelfIsdId           TropicPsdIsdId,
        tnPsdShelfIsdStatus       TropicPsdIsdStatus,
        tnPsdShelfIsdBuildTime    DateAndTime,
        tnPsdShelfIsdItemCode     SnmpAdminString,
        --tnPsdShelfIsdSwVersion    SnmpAdminString,
        tnPsdShelfIsdMaintenance  TruthValue,
        tnPsdShelfIsdCompatible   TruthValue,
        tnPsdShelfIsdSwRelease    SnmpAdminString
        }

tnPsdShelfIsdId OBJECT-TYPE
    SYNTAX         TropicPsdIsdId
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Identifier of the SW ISD (SW bank)."
    ::= { tnPsdShelfIsdEntry 1 }

tnPsdShelfIsdStatus OBJECT-TYPE
    SYNTAX         TropicPsdIsdStatus
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Status of the SW ISD (SW bank)."
    ::= { tnPsdShelfIsdEntry 2 }

tnPsdShelfIsdBuildTime OBJECT-TYPE
    SYNTAX         DateAndTime
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Date and time when the SW was built."
    ::= { tnPsdShelfIsdEntry 3 }

tnPsdShelfIsdItemCode OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(1..7))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "ISD software item code."
    ::= { tnPsdShelfIsdEntry 4 }

--tnPsdShelfIsdSwVersion OBJECT-TYPE
--    SYNTAX         SnmpAdminString (SIZE(5..8))
--    MAX-ACCESS     read-only
--    STATUS         obsolete
--    DESCRIPTION    "ISD software version.
--                    Format is 'XX.YY.ZZ' :
--                      XX : Major release number (1 or 2 digits)
--                      YY : Minor release number (1 or 2 digits)
--                      ZZ : Bug fix release number (1 or 2 digits)"
--    ::= { tnPsdShelfIsdEntry 5 }

tnPsdShelfIsdMaintenance OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Indicates whether the ISD contains a maintenance load."
    ::= { tnPsdShelfIsdEntry 6 }

tnPsdShelfIsdCompatible OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "For a maintenance SW load, object tnPsdShelfIsdMaintenance
                    having value true(1), indicates the compatibility of the
                    maintenance load relative to the software version from
                    which it is derived."
    ::= { tnPsdShelfIsdEntry 7 }

tnPsdShelfIsdSwRelease OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..20))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "ISD software release."
    ::= { tnPsdShelfIsdEntry 8 }

-------------------------------------------------------------------------------
-- PSD Shelf Time Table
-------------------------------------------------------------------------------

tnPsdShelfTimeTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdShelfTimeEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD shelf time table."
    ::= { tnPsdTimeObjects 1 }

tnPsdShelfTimeEntry OBJECT-TYPE
    SYNTAX         TnPsdShelfTimeEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdShelfTimeTable."
    INDEX { tnShelfIndex }
    ::= { tnPsdShelfTimeTable 1 }

TnPsdShelfTimeEntry ::=
    SEQUENCE {
        tnPsdShelfTime  DateAndTime
        }

tnPsdShelfTime OBJECT-TYPE
    SYNTAX         DateAndTime
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Shelf time.
                    Can only be set when object tnPsdNtpState of
                    table tnPsdNtpTable with the same value of
                    tnShelfIndex is disabled."
    ::= { tnPsdShelfTimeEntry 1 }

tnPsdShelfTimeConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD Shelf time (TROPIC-PSD-MIB, tnPsdShelfTimeTable)
                 configuration change notification."
::= { tnPsdTimeNotifs 1 }

-------------------------------------------------------------------------------
-- PSD NTP Table
-------------------------------------------------------------------------------

tnPsdNtpTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdNtpEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD Network Timing Protocol (NTP) table."
    ::= { tnPsdTimeObjects 2 }

tnPsdNtpEntry OBJECT-TYPE
    SYNTAX         TnPsdNtpEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdNtpTable."
    INDEX { tnShelfIndex }
    ::= { tnPsdNtpTable 1 }

TnPsdNtpEntry ::=
    SEQUENCE {
        tnPsdNtpState    INTEGER,
        tnPsdNtpStatus   INTEGER,
        tnPsdNtpStratum  Unsigned32,
        tnPsdNtpAccuracy Unsigned32
        }

tnPsdNtpState OBJECT-TYPE
    SYNTAX         INTEGER {
                       enabled(1),
                       disabled(2)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "The NTP state indicating whether or not NTP is enabled
                    or disabled."
    ::= { tnPsdNtpEntry 1 }

tnPsdNtpStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                       notSynchronized(1),
                       synchronized(2),
                       initializing(3),
                       unreachable(4),
                       unknown(5)
                   }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The NTP status."
    ::= { tnPsdNtpEntry 2 }

tnPsdNtpStratum OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The NTP stratum value."
    ::= { tnPsdNtpEntry 3 }

tnPsdNtpAccuracy OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The NTP accuracy (root dispersion)."
    ::= { tnPsdNtpEntry 4 }

tnPsdNtpConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD NTP (TROPIC-PSD-MIB, tnPsdNtpTable)
                 configuration change notification."
::= { tnPsdTimeNotifs 2 }

-------------------------------------------------------------------------------
-- PSD NTP Server Table
-------------------------------------------------------------------------------

tnPsdNtpServerTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdNtpServerEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD Network Timing Protocol (NTP) server table."
    ::= { tnPsdTimeObjects 3 }

tnPsdNtpServerEntry OBJECT-TYPE
    SYNTAX         TnPsdNtpServerEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdNtpServerTable."
    INDEX { tnShelfIndex, tnPsdNtpServerIndex }
    ::= { tnPsdNtpServerTable 1 }

TnPsdNtpServerEntry ::=
    SEQUENCE {
        tnPsdNtpServerIndex            TropicPsdNtpServerIndexType,
        tnPsdNtpServerAddrType         InetAddressType,
        tnPsdNtpServerAddr             InetAddress,
        tnPsdNtpServerSystemServer     TruthValue,
        tnPsdNtpServerReachable        TruthValue,
        tnPsdNtpServerReachabilityData Unsigned32,
        tnPsdNtpServerPollTime         Unsigned32
        }

tnPsdNtpServerIndex OBJECT-TYPE
    SYNTAX         TropicPsdNtpServerIndexType
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "NTP server index."
    ::= { tnPsdNtpServerEntry 1 }

tnPsdNtpServerAddrType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Type of internet address of the NTP Server.

                    This object must always be included in an SNMP SET PDU
                    together with object tnPsdNtpServerAddr."
    DEFVAL         { unknown }
    ::= { tnPsdNtpServerEntry 2 }

tnPsdNtpServerAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Internet address of the NTP Server.

                    This object must always be included in an SNMP SET PDU
                    together with object tnPsdNtpServerAddrType."
    ::= { tnPsdNtpServerEntry 3 }

tnPsdNtpServerSystemServer OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Indicates whether or not the NTP server is selected
                    as system server."
    ::= { tnPsdNtpServerEntry 4 }

tnPsdNtpServerReachable OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Indicates whether or not the NTP server is reachable."
    ::= { tnPsdNtpServerEntry 5 }

tnPsdNtpServerReachabilityData OBJECT-TYPE
    SYNTAX         Unsigned32(0..255)
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The reachability data of the NTP server.
                    The value is an eight bit number that represents the
                    status of the last eight NTP transactions between the PSD
                    and the NTP time server. Each bit indicates whether or not
                    a single transaction was successful.
                    A bit value of one indicates a successful transaction
                    For example, a value of (175) (10101111B) indicates
                    that two valid responses were not received during the last
                    eight polls. However, the last four polls worked fine."
    ::= { tnPsdNtpServerEntry 6 }

tnPsdNtpServerPollTime OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The poll interval expressed in log base 2 seconds."
    ::= { tnPsdNtpServerEntry 7 }

tnPsdNtpServerConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD NTP server (TROPIC-PSD-MIB, tnPsdNtpServerTable)
                 configuration change notification."
::= { tnPsdTimeNotifs 3 }

-------------------------------------------------------------------------------
-- PSD IP objects
-------------------------------------------------------------------------------

tnPsdEnforceSrcIpV4ToLoopbackIpV4 OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Indicates whether or not the IPv4 address of the loopback
                    interface (also known as System IP address) is enforced
                    as IPv4 source address or not.
                    When the value of this object is set to false, the source
                    IPv4 address of autonomous IPv4 messages is equal to the
                    IPv4 address of the interface the packet was sent from.
                    When the value of this object is set to true, the source
                    IPv4 address of the loopback interface is used for
                    autonomous IPv4 messages.
                    It is the users responsibility that the loopback interface
                    has a valid IP address assigned."
    ::= { tnPsdIpObjects 1 }

tnPsdEnforceSrcIpV6ToLoopbackIpV6 OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Indicates whether or not the IPv6 address of the loopback
                    interface (also known as System IP address) is enforced
                    as IPv6 source address or not.
                    When the value of this object is set to false, the source
                    IPv6 address of autonomous IPv6 messages is equal to the
                    IPv6 address of the interface the packet was sent from.
                    When the value of this object is set to true, the source
                    IPv6 address of the loopback interface is used for
                    autonomous IPv6 messages.
                    It is the users responsibility that the loopback interface
                    has a valid IP address assigned."

    ::= { tnPsdIpObjects 2 }

-------------------------------------------------------------------------------
-- PSD Manual IPv4 Address Table
-------------------------------------------------------------------------------

tnPsdManualIpv4AddressTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdManualIpv4AddressEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD manual IPv4 address table."
    ::= { tnPsdIpObjects 3 }

tnPsdManualIpv4AddressEntry OBJECT-TYPE
    SYNTAX         TnPsdManualIpv4AddressEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdManualIpv4AddressTable."
    INDEX { ifIndex }
    ::= { tnPsdManualIpv4AddressTable 1 }

TnPsdManualIpv4AddressEntry ::=
    SEQUENCE {
        tnPsdManualIpv4AddressAddrType         InetAddressType,
        tnPsdManualIpv4AddressAddr             InetAddress,
        tnPsdManualIpv4AddressPrefixLen        InetAddressPrefixLength
        }

tnPsdManualIpv4AddressAddrType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Type of tnPsdManualIpv4AddressAddr IP address.
                    Fixed ipv4(1)."
    ::= { tnPsdManualIpv4AddressEntry 1 }

tnPsdManualIpv4AddressAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "The manually configured IPv4 address.
                    Only IPv4 addresses are allowed for this object.

                    A value of all zeros (0.0.0.0) indicates that no manual
                    IPv4 address is provisioned for this interface.

                    This object must always be included in an SNMP SET PDU
                    together with object tnPsdManualIpv4AddressPrefixLen."
    DEFVAL         {'00000000'H}
    ::= { tnPsdManualIpv4AddressEntry 2 }

tnPsdManualIpv4AddressPrefixLen OBJECT-TYPE
    SYNTAX         InetAddressPrefixLength
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Configured IPv4 address prefix length.

                    This object must always be included in a SNMP SET PDU
                    together with object tnPsdManualIpv4AddressAddr."
    DEFVAL         { 0 }
    ::= { tnPsdManualIpv4AddressEntry 3 }

tnPsdManualIpv4AddressConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD manual IPv4 address (TROPIC-PSD-MIB,
                 tnPsdManualIpv4AddressTable)
                 configuration change notification."
::= { tnPsdIpNotifs 1 }

-------------------------------------------------------------------------------
-- PSD Manual IPv6 Address Table
-------------------------------------------------------------------------------

tnPsdManualIpv6AddressTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdManualIpv6AddressEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD manual IPv6 address table."
    ::= { tnPsdIpObjects 4 }

tnPsdManualIpv6AddressEntry OBJECT-TYPE
    SYNTAX         TnPsdManualIpv6AddressEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdManualIpv6AddressTable."
    INDEX { ifIndex }
    ::= { tnPsdManualIpv6AddressTable 1 }

TnPsdManualIpv6AddressEntry ::=
    SEQUENCE {
        tnPsdManualIpv6AddressAddrType         InetAddressType,
        tnPsdManualIpv6AddressAddr             InetAddress,
        tnPsdManualIpv6AddressPrefixLen        InetAddressPrefixLength
        }

tnPsdManualIpv6AddressAddrType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Type of tnPsdManualIpv6AddressAddr IP address.
                    Fixed ipv6(2)."
    ::= { tnPsdManualIpv6AddressEntry 1 }

tnPsdManualIpv6AddressAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "The manually configured IPv6 address for this interface.
                    Only IPv6 addresses are allowed for this object.

                    A value of all zeros (::) indicates that no manual IPv6
                    address is provisioned for this interface. In this case
                    Stateless Address Auto-configuration (SLAAC) is enabled
                    for this interface.
                    By setting this object value to a value other then all
                    zeros (::) SLAAC is disabled.

                    This object must always be included in an SNMP SET PDU
                    together with object tnPsdManualIpv6AddressPrefixLen."
    DEFVAL         {'00000000000000000000000000000000'H}
    ::= { tnPsdManualIpv6AddressEntry 2 }

tnPsdManualIpv6AddressPrefixLen OBJECT-TYPE
    SYNTAX         InetAddressPrefixLength
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Configured IPv6 address prefix length.

                    This object must always be included in a SNMP SET PDU
                    together with object tnPsdManualIpv6AddressAddr."
    DEFVAL         { 0 }
    ::= { tnPsdManualIpv6AddressEntry 3 }

tnPsdManualIpv6AddressConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD manual IPv6 address (TROPIC-PSD-MIB,
                 tnPsdManualIpv6AddressTable)
                 configuration change notification."
::= { tnPsdIpNotifs 2 }

-------------------------------------------------------------------------------
-- PSD Actual IP Address Table
-------------------------------------------------------------------------------

tnPsdActualIpAddressTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdActualIpAddressEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD actual IP address table."
    ::= { tnPsdIpObjects 5 }

tnPsdActualIpAddressEntry OBJECT-TYPE
    SYNTAX         TnPsdActualIpAddressEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdActualIpAddressTable."
    INDEX { ifIndex, tnPsdActualIpAddressAddrType, tnPsdActualIpAddressAddr }
    ::= { tnPsdActualIpAddressTable 1 }

TnPsdActualIpAddressEntry ::=
    SEQUENCE {
        tnPsdActualIpAddressAddrType   InetAddressType,
        tnPsdActualIpAddressAddr       InetAddress,
        tnPsdActualIpAddressPrefixLen  InetAddressPrefixLength
        }

tnPsdActualIpAddressAddrType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Actual IP address type."
    ::= { tnPsdActualIpAddressEntry 1 }

tnPsdActualIpAddressAddr OBJECT-TYPE
    SYNTAX         InetAddress(SIZE(16))
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Actual IP address.
                    The size of this object type is limited to support IPv4
                    and IPv6 addresses without zone indexes."
    ::= { tnPsdActualIpAddressEntry 2 }

tnPsdActualIpAddressPrefixLen OBJECT-TYPE
    SYNTAX         InetAddressPrefixLength
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Actual IP address prefix length."
    ::= { tnPsdActualIpAddressEntry 3 }

-------------------------------------------------------------------------------
-- PSD DHCP Client Table
-------------------------------------------------------------------------------

tnPsdDhcpClientTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdDhcpClientEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD DHCP client table."
    ::= { tnPsdIpObjects 6 }

tnPsdDhcpClientEntry OBJECT-TYPE
    SYNTAX         TnPsdDhcpClientEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdDhcpClientTable."
    INDEX { ifIndex }
    ::= { tnPsdDhcpClientTable 1 }

TnPsdDhcpClientEntry ::=
    SEQUENCE {
        tnPsdDhcpClientV4Enabled   TruthValue
        }

tnPsdDhcpClientV4Enabled OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Enable the DHCPv4 client on this interface."
    DEFVAL         { false }
    ::= { tnPsdDhcpClientEntry 1 }

tnPsdDhcpClientConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD DHCP Client (TROPIC-PSD-MIB,
                 tnPsdDhcpClientTable)
                 configuration change notification."
::= { tnPsdIpNotifs 3 }

-------------------------------------------------------------------------------
-- PSD IP Static Route Table
-------------------------------------------------------------------------------

tnPsdStaticRouteTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdStaticRouteEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD static route table."
    ::= { tnPsdIpObjects 7 }

tnPsdStaticRouteEntry OBJECT-TYPE
    SYNTAX         TnPsdStaticRouteEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdStaticRouteTable."
    INDEX { tnPsdStaticRouteDestType, tnPsdStaticRouteDest,
            tnPsdStaticRoutePrefixLen, tnPsdStaticRouteGatewayType,
            tnPsdStaticRouteGateway, tnPsdStaticRouteIfIndex,
            tnPsdStaticRouteNetIfIndex }
    ::= { tnPsdStaticRouteTable 1 }

TnPsdStaticRouteEntry ::=
    SEQUENCE {
        tnPsdStaticRouteDestType         InetAddressType,
        tnPsdStaticRouteDest             InetAddress,
        tnPsdStaticRoutePrefixLen        InetAddressPrefixLength,
        tnPsdStaticRouteGatewayType      InetAddressType,
        tnPsdStaticRouteGateway          InetAddress,
        tnPsdStaticRouteIfIndex          InterfaceIndexOrZero,
        tnPsdStaticRouteNetIfIndex       TropicPsdNetIfIndexOrZero,
        tnPsdStaticRouteMetric           Integer32,
        tnPsdStaticRouteRowStatus        RowStatus
        }

tnPsdStaticRouteDestType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Static route destination IP address type."
    ::= { tnPsdStaticRouteEntry 1 }

tnPsdStaticRouteDest OBJECT-TYPE
    SYNTAX         InetAddress(SIZE(16))
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Static route destination IP address.
                    The size of this object type is limited to support IPv4
                    and IPv6 addresses without zone indexes."
    ::= { tnPsdStaticRouteEntry 2 }

tnPsdStaticRoutePrefixLen OBJECT-TYPE
    SYNTAX         InetAddressPrefixLength
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Static route prefix length."
    ::= { tnPsdStaticRouteEntry 3 }

tnPsdStaticRouteGatewayType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Static route gateway IP address type."
    ::= { tnPsdStaticRouteEntry 4 }

tnPsdStaticRouteGateway OBJECT-TYPE
    SYNTAX         InetAddress(SIZE(16))
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Static route gateway IP address.
                    The size of this object type is limited to support of
                    IPv4 and IPv6 addresses without zone indexes."
    ::= { tnPsdStaticRouteEntry 5 }

tnPsdStaticRouteIfIndex OBJECT-TYPE
    SYNTAX         InterfaceIndexOrZero
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "The ifIndex value that identifies the local interface
                    through which the gateway of this route should be
                    reached. A value of 0 is valid and represents the
                    scenario where no interface is specified."
    ::= { tnPsdStaticRouteEntry 6 }

tnPsdStaticRouteNetIfIndex OBJECT-TYPE
    SYNTAX         TropicPsdNetIfIndexOrZero
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "The tnNetIfIndex value that identifies a network
                    interface instance over an Embedded Communication
                    Channel (ECC) or in-band ethernet management channel
                    through which the gateway of this route should be reached.
                    A value of zero is valid and represents the
                    scenario where no network interface is specified."
    ::= { tnPsdStaticRouteEntry 7 }

tnPsdStaticRouteMetric OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "Metric for this route."
    DEFVAL         { 100 }
    ::= { tnPsdStaticRouteEntry 8 }

tnPsdStaticRouteRowStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The row status object used for creation, deletion,
                    activation and deactivation of entries in this table.
                    A row entry cannot be modified when the status is
                    marked as active(1)."
    ::= { tnPsdStaticRouteEntry 9 }

tnPsdStaticRouteConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD static route (TROPIC-PSD-MIB,
                 tnPsdStaticRouteTable)
                 configuration change notification."
::= { tnPsdIpNotifs 4 }

tnPsdStaticRouteCreationNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD static route (TROPIC-PSD-MIB,
                 tnPsdStaticRouteTable) creation notification."
::= { tnPsdIpNotifs 5 }

tnPsdStaticRouteDeletionNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD static route (TROPIC-PSD-MIB,
                 tnPsdStaticRouteTable) deletion notification."
::= { tnPsdIpNotifs 6 }

-------------------------------------------------------------------------------
-- PSD IP Actual Route Table
-------------------------------------------------------------------------------

tnPsdActualRouteTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdActualRouteEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD actual route table."
    ::= { tnPsdIpObjects 8 }

tnPsdActualRouteEntry OBJECT-TYPE
    SYNTAX         TnPsdActualRouteEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdActualRouteTable."
    INDEX { tnPsdActualRouteDestType, tnPsdActualRouteDest,
            tnPsdActualRoutePrefixLen, tnPsdActualRouteGatewayType,
            tnPsdActualRouteGateway, tnPsdActualRouteIfIndex,
            tnPsdActualRouteNetIfIndex }
    ::= { tnPsdActualRouteTable 1 }

TnPsdActualRouteEntry ::=
    SEQUENCE {
        tnPsdActualRouteDestType         InetAddressType,
        tnPsdActualRouteDest             InetAddress,
        tnPsdActualRoutePrefixLen        InetAddressPrefixLength,
        tnPsdActualRouteGatewayType      InetAddressType,
        tnPsdActualRouteGateway          InetAddress,
        tnPsdActualRouteIfIndex          InterfaceIndexOrZero,
        tnPsdActualRouteNetIfIndex       TropicPsdNetIfIndexOrZero,
        tnPsdActualRouteMetric           Integer32
        }

tnPsdActualRouteDestType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Actual route destination IP address type."
    ::= { tnPsdActualRouteEntry 1 }

tnPsdActualRouteDest OBJECT-TYPE
    SYNTAX         InetAddress(SIZE(16))
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Actual route destination IP address.
                    The size of this object type is limited to support IPv4
                    and IPv6 addresses without zone indexes."
    ::= { tnPsdActualRouteEntry 2 }

tnPsdActualRoutePrefixLen OBJECT-TYPE
    SYNTAX         InetAddressPrefixLength
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Actual route prefix length."
    ::= { tnPsdActualRouteEntry 3 }

tnPsdActualRouteGatewayType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Actual route gateway IP address type."
    ::= { tnPsdActualRouteEntry 4 }

tnPsdActualRouteGateway OBJECT-TYPE
    SYNTAX         InetAddress(SIZE(16))
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Actual route gateway IP address.
                    The size of this object type is limited to support of
                    IPv4 and IPv6 addresses without zone indexes."
    ::= { tnPsdActualRouteEntry 5 }

tnPsdActualRouteIfIndex OBJECT-TYPE
    SYNTAX         InterfaceIndexOrZero
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "The ifIndex value that identifies the local interface
                    through which the gateway of this route should be
                    reached. A value of 0 is valid and represents the
                    scenario where no interface is specified."
    ::= { tnPsdActualRouteEntry 6 }

tnPsdActualRouteNetIfIndex OBJECT-TYPE
    SYNTAX         TropicPsdNetIfIndexOrZero
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "The tnNetIfIndex value that identifies a network
                    interface instance over an Embedded Communication
                    Channel (ECC) or in-band ethernet management channel
                    through which the gateway of this route should be reached.
                    A value of zero is valid and represents the
                    scenario where no network interface is specified."
    ::= { tnPsdActualRouteEntry 7 }

tnPsdActualRouteMetric OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Metric for this route."
    ::= { tnPsdActualRouteEntry 8 }

-------------------------------------------------------------------------------
-- PSD Network Interface Table
-------------------------------------------------------------------------------

tnPsdNetIfTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdNetIfEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD network interface table. For network interfaces over
                    ECC (Embedded Communication Channel) or in-band ethernet
                    management channel."
    ::= { tnPsdIpObjects 9 }

tnPsdNetIfEntry OBJECT-TYPE
    SYNTAX         TnPsdNetIfEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdNetIfTable."
    AUGMENTS { tnNetIfEntry }
    ::= { tnPsdNetIfTable 1 }

TnPsdNetIfEntry ::=
    SEQUENCE {
        tnPsdNetIfIpAddrType           InetAddressType,
        tnPsdNetIfIpAddr               InetAddress,
        tnPsdNetIfIpPrefixLen          InetAddressPrefixLength,
        tnPsdNetIfOperStatus           INTEGER,
        tnPsdNetIfRemoteIpAddrType     InetAddressType,
        tnPsdNetIfRemoteIpAddr         InetAddress,
        tnPsdNetIfMonitoring           INTEGER,
        tnPsdNetIfIp6AddrType          InetAddressType,
        tnPsdNetIfIp6Addr              InetAddress,
        tnPsdNetIfIp6PrefixLen         InetAddressPrefixLength,
        tnPsdNetIfRemoteIp6AddrType    InetAddressType,
        tnPsdNetIfRemoteIp6Addr        InetAddress,
        tnPsdNetIfMonitoring6          INTEGER
        }

tnPsdNetIfIpAddrType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "Type of tnPsdNetIfIpAddr IPv4 address.
                    This object must always be included in an SNMP SET PDU
                    together with tnPsdNetIfIpAddr and tnPsdNetIfIpPrefixLen."
    DEFVAL         { ipv4 }
    ::= { tnPsdNetIfEntry 1 }

tnPsdNetIfIpAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The IPv4 address of the network interface.
                    This object must always be included in an SNMP SET PDU
                    together with tnPsdNetIfIpAddrType and
                    tnPsdNetIfIpPrefixLen."
    DEFVAL         { '00000000'h }
    ::= { tnPsdNetIfEntry 2 }

tnPsdNetIfIpPrefixLen OBJECT-TYPE
    SYNTAX         InetAddressPrefixLength
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "IPv4 address prefix length of the network interface.
                    This object must always be included in an SNMP SET PDU
                    together with tnPsdNetIfIpAddrType and tnPsdNetIfIpAddr."
    DEFVAL         { 32 }
    ::= { tnPsdNetIfEntry 3 }

tnPsdNetIfOperStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                      up(1),
                      down(2),
                      unknown(4)
                   }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The current operational state of the network interface."
    ::= { tnPsdNetIfEntry 4 }

tnPsdNetIfRemoteIpAddrType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Type of tnPsdNetIfRemoteIpAddr IPv4 address."
    ::= { tnPsdNetIfEntry 5 }

tnPsdNetIfRemoteIpAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The IPv4 address of the link neighbor."
    ::= { tnPsdNetIfEntry 6 }

tnPsdNetIfMonitoring OBJECT-TYPE
    SYNTAX         INTEGER {
                       enabled(1),
                       disabled(2)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "Enable ICMP (IPv4) monitoring of the link neighbor."
    DEFVAL         { disabled }
    ::= { tnPsdNetIfEntry 7 }

tnPsdNetIfIp6AddrType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "Type of tnPsdNetIfIpAddr IPv6 address.
                    This object must always be included in an SNMP SET PDU
                    together with tnPsdNetIfIp6Addr and tnPsdNetIfIp6PrefixLen."
    DEFVAL         { ipv6 }
    ::= { tnPsdNetIfEntry 8 }

tnPsdNetIfIp6Addr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The IPv6 address of the network interface.
                    This object must always be included in an SNMP SET PDU
                    together with tnPsdNetIfIp6AddrType and
                    tnPsdNetIfIp6PrefixLen."
    DEFVAL         { '00000000000000000000000000000000'h }
    ::= { tnPsdNetIfEntry 9 }

tnPsdNetIfIp6PrefixLen OBJECT-TYPE
    SYNTAX         InetAddressPrefixLength
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "IPv6 address prefix length of the network interface.
                    This object must always be included in an SNMP SET PDU
                    together with tnPsdNetIfIp6AddrType and tnPsdNetIfIp6Addr."
    DEFVAL         { 128 }
    ::= { tnPsdNetIfEntry 10 }

tnPsdNetIfRemoteIp6AddrType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Type of tnPsdNetIfRemoteIp6Addr IPv6 address."
    ::= { tnPsdNetIfEntry 11 }

tnPsdNetIfRemoteIp6Addr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The IPv6 address of the link neighbor."
    ::= { tnPsdNetIfEntry 12 }

tnPsdNetIfMonitoring6 OBJECT-TYPE
    SYNTAX         INTEGER {
                       enabled(1),
                       disabled(2)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "Enable ICMP (IPv6) monitoring of the link neighbor."
    DEFVAL         { disabled }
    ::= { tnPsdNetIfEntry 13 }

tnPsdNetIfOperStatusChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS current
    DESCRIPTION "The network interface operational status (TROPIC-PSD-MIB,
                 tnPsdNetIfOperStatus) change notification."
    ::= { tnPsdIpNotifs 7 }

tnPsdNetIfConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD Network interface (TROPIC-PSD-MIB,
                 tnPsdNetIfTable)
                 configuration change notification."
::= { tnPsdIpNotifs 8 }

-------------------------------------------------------------------------------
-- PSD Network Interface Ethernet Facility Table
-------------------------------------------------------------------------------

tnPsdNetIfEthFacilityTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdNetIfEthFacilityEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD network interface ethernet facility table
                    for the configuration of in-band management."
    ::= { tnPsdIpObjects 10 }

tnPsdNetIfEthFacilityEntry OBJECT-TYPE
    SYNTAX         TnPsdNetIfEthFacilityEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdNetIfEthFacilityTable."
    INDEX { tnNetIfIndex, tnPsdNetIfEthFacilityTpid,
            tnPsdNetIfEthFacilityVlanId }
    ::= { tnPsdNetIfEthFacilityTable 1 }

TnPsdNetIfEthFacilityEntry ::=
    SEQUENCE {
        tnPsdNetIfEthFacilityTpid               TropicPsdTransportIdentifier,
        tnPsdNetIfEthFacilityVlanId             TropicPsdVlanId,
        tnPsdNetIfEthFacilityTypeOfOperation    AluWdmTypeOfNetIfOperation,
        tnPsdNetIfEthFacilityPriorityEgress     TropicPsdPriorityValue,
        tnPsdNetIfEthFacilityDropEligibleEgress TruthValue
        }

tnPsdNetIfEthFacilityTpid OBJECT-TYPE
    SYNTAX         TropicPsdTransportIdentifier
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "The transport identifier that is used for ethernet
                    in-band management."
    ::= { tnPsdNetIfEthFacilityEntry 1 }

tnPsdNetIfEthFacilityVlanId OBJECT-TYPE
    SYNTAX         TropicPsdVlanId
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "The Virtual Local Area Network identifier that is
                    used for ethernet in-band management."
    ::= { tnPsdNetIfEthFacilityEntry 2 }

tnPsdNetIfEthFacilityTypeOfOperation OBJECT-TYPE
    SYNTAX         AluWdmTypeOfNetIfOperation
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "Create, delete, or modify the ethernet facility
                    information of a network interface instance."
    ::= { tnPsdNetIfEthFacilityEntry 3 }

tnPsdNetIfEthFacilityPriorityEgress OBJECT-TYPE
    SYNTAX         TropicPsdPriorityValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The priority value used in egress ethernet in-band
                    management frames."
    DEFVAL         { 7 }
    ::= { tnPsdNetIfEthFacilityEntry 4 }

tnPsdNetIfEthFacilityDropEligibleEgress OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The drop eligible value used in egress ethernet in-band
                    management frames."
    DEFVAL         { false }
    ::= { tnPsdNetIfEthFacilityEntry 5 }

tnPsdNetIfEthFacilityConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD Network interface ethernet facility (TROPIC-PSD-MIB,
                 tnPsdNetIfEthFacilityTable) configuration change
                 notification."
::= { tnPsdIpNotifs 9 }

tnPsdNetIfEthFacilityCreationNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD Network interface ethernet facility (TROPIC-PSD-MIB,
                 tnPsdNetIfEthFacilityTable) creation notification."
::= { tnPsdIpNotifs 10 }

tnPsdNetIfEthFacilityDeletionNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD Network interface ethernet facility (TROPIC-PSD-MIB,
                 tnPsdNetIfEthFacilityTable) deletion notification."
::= { tnPsdIpNotifs 11 }

-------------------------------------------------------------------------------
-- PSD Proxy ARP Table
-------------------------------------------------------------------------------

tnPsdProxyArpTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdProxyArpEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD Proxy ARP table."
    ::= { tnPsdIpObjects 11 }

tnPsdProxyArpEntry OBJECT-TYPE
    SYNTAX         TnPsdProxyArpEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdProxyArpTable."
    INDEX { ifIndex }
    ::= { tnPsdProxyArpTable 1 }

TnPsdProxyArpEntry ::=
    SEQUENCE {
        tnPsdProxyArp  TmnxEnabledDisabled
        }

tnPsdProxyArp OBJECT-TYPE
    SYNTAX         TmnxEnabledDisabled
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Enable or disable Proxy ARP for the interface."
    DEFVAL         { disabled }
    ::= { tnPsdProxyArpEntry 1 }

tnPsdProxyArpConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD Proxy ARP (TROPIC-PSD-MIB, tnPsdProxyArpTable)
                 configuration change notification."
::= { tnPsdIpNotifs 12 }

-------------------------------------------------------------------------------
-- PSD ASAP Table
-------------------------------------------------------------------------------

tnPsdAsapTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdAsapEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD Alarm Severity Assignment Profile (ASAP) table."
    ::= { tnPsdFaultObjects 1 }

tnPsdAsapEntry OBJECT-TYPE
    SYNTAX         TnPsdAsapEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdAsapTable"
    INDEX { tnShelfIndex, tnPsdAsapIndex }
    ::= { tnPsdAsapTable 1 }

TnPsdAsapEntry ::=
    SEQUENCE {
        tnPsdAsapIndex TropicPsdAsapIndexType,
        tnPsdAsapName  SnmpAdminString
        }

tnPsdAsapIndex OBJECT-TYPE
    SYNTAX         TropicPsdAsapIndexType
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "ASAP index number."
    ::= { tnPsdAsapEntry 1 }

tnPsdAsapName OBJECT-TYPE
    SYNTAX         SnmpAdminString
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Name string for the ASAP."
    DEFVAL         { "" }
    ::= { tnPsdAsapEntry 2 }

tnPsdAsapConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD ASAP (TROPIC-PSD-MIB,
                 tnPsdAsapTable) configuration change
                 notification."
::= { tnPsdFaultNotifs 1 }

-------------------------------------------------------------------------------
-- PSD ASAP Fault Profile Table
-------------------------------------------------------------------------------

tnPsdAsapFaultProfileTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdAsapFaultProfileEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD Alarm Severity Assignment Profile (ASAP) Fault Profile
                    table. Data for all condition - location type combinations
                    within an ASAP."
    ::= { tnPsdFaultObjects 2 }

tnPsdAsapFaultProfileEntry OBJECT-TYPE
    SYNTAX         TnPsdAsapFaultProfileEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdAsapFaultProfileTable"
    INDEX { tnShelfIndex,
            tnPsdAsapIndex,
            tnPsdAsapFaultProfileCondition,
            tnPsdAsapFaultProfileLocationType }
    ::= { tnPsdAsapFaultProfileTable 1 }

TnPsdAsapFaultProfileEntry ::=
    SEQUENCE {
        tnPsdAsapFaultProfileCondition         TnCondition,
        tnPsdAsapFaultProfileLocationType      TropicPsdFaultLocationType,
        tnPsdAsapFaultProfileSeverity          TropicPsdFaultSeverity,
        tnPsdAsapFaultProfileReported          TruthValue,
        tnPsdAsapFaultProfileServiceAffecting  TruthValue,
        tnPsdAsapFaultProfileAlarmText         SnmpAdminString
        }

tnPsdAsapFaultProfileCondition OBJECT-TYPE
    SYNTAX         TnCondition
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Fault condition."
    ::= { tnPsdAsapFaultProfileEntry 1 }

tnPsdAsapFaultProfileLocationType OBJECT-TYPE
    SYNTAX         TropicPsdFaultLocationType
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Fault location type."
    ::= { tnPsdAsapFaultProfileEntry 2 }

tnPsdAsapFaultProfileSeverity OBJECT-TYPE
    SYNTAX         TropicPsdFaultSeverity
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Severity for the condition - location type combination."
    ::= { tnPsdAsapFaultProfileEntry 3 }

tnPsdAsapFaultProfileReported OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Report flag for the condition - location type combination.
                    When set to false this condition is not reported, i.e.
                    no trap is sent and the condition is not logged and not
                    part of the active alarm table."
    ::= { tnPsdAsapFaultProfileEntry 4 }

tnPsdAsapFaultProfileServiceAffecting OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Indicates whether alarms raised for the condition -
                    location type combination are service affecting or not."
    ::= { tnPsdAsapFaultProfileEntry 5 }

tnPsdAsapFaultProfileAlarmText OBJECT-TYPE
    SYNTAX         SnmpAdminString
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Alarm text for the condition - location type combination."
    ::= { tnPsdAsapFaultProfileEntry 6 }

tnPsdAsapFaultProfileConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD ASAP fault profile (TROPIC-PSD-MIB,
                 tnPsdAsapFaultProfileTable) configuration change
                 notification."
::= { tnPsdFaultNotifs 2 }


-------------------------------------------------------------------------------
-- PSD Fault Table
-------------------------------------------------------------------------------

tnPsdFaultTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdFaultEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD shelf level fault table."
    ::= { tnPsdFaultObjects 3 }

tnPsdFaultEntry OBJECT-TYPE
    SYNTAX         TnPsdFaultEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdFaultTable"
    INDEX { tnShelfIndex }
    ::= { tnPsdFaultTable 1 }

TnPsdFaultEntry ::=
    SEQUENCE {
        tnPsdFaultAlarmRaiseTime TropicPsdFaultAlarmTime,
        tnPsdFaultAlarmClearTime TropicPsdFaultAlarmTime
        }

tnPsdFaultAlarmRaiseTime OBJECT-TYPE
    SYNTAX         TropicPsdFaultAlarmTime
    UNITS          "deciseconds"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Raise persistence time for all alarms of the shelf."
    DEFVAL         { 25 }
    ::= { tnPsdFaultEntry 1 }

tnPsdFaultAlarmClearTime OBJECT-TYPE
    SYNTAX         TropicPsdFaultAlarmTime
    UNITS          "deciseconds"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Clear persistence time for all alarms of the shelf."
    DEFVAL         { 100 }
    ::= { tnPsdFaultEntry 2 }

tnPsdFaultConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD fault  (TROPIC-PSD-MIB, tnPsdFaultTable) configuration
                 change notification."
::= { tnPsdFaultNotifs 3 }

-------------------------------------------------------------------------------
-- PSD System Discovery Objects
-------------------------------------------------------------------------------

tnPsdSysDiscoveryServerAddrType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Type of Internet address of the system discovery file
                    server.

                    This object must always be included in an SNMP SET PDU
                    together with object tnPsdSysDiscoveryServerAddr."
    DEFVAL         { unknown }
    ::= { tnPsdSysDiscoveryObjects 1 }

tnPsdSysDiscoveryServerAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Internet address of the system discovery file server.
                    The type of this address is determined by the value
                    of object tnPsdSysDiscoveryServerAddrType.

                    This object must always be included in an SNMP SET PDU
                    together with object tnPsdSysDiscoveryServerAddrType.

                    The default value is a zero-length string."
    ::= { tnPsdSysDiscoveryObjects 2 }

-------------------------------------------------------------------------------
-- PSD OTUk Table
-------------------------------------------------------------------------------

tnPsdOtukTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdOtukEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD OTUk table."
    ::= { tnPsdOtnObjects 1 }

tnPsdOtukEntry OBJECT-TYPE
    SYNTAX         TnPsdOtukEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdOtukTable"
    AUGMENTS { tnOtukEntry }
    ::= { tnPsdOtukTable 1 }

TnPsdOtukEntry ::=
    SEQUENCE {
        tnPsdOtukSapiAccepted    TropicPsdSapi,
        tnPsdOtukSapiExpected    TropicPsdSapi,
        tnPsdOtukSapiTransmitted TropicPsdSapi,
        tnPsdOtukDapiAccepted    TropicPsdDapi,
        tnPsdOtukDapiExpected    TropicPsdDapi,
        tnPsdOtukDapiTransmitted TropicPsdDapi
        }

tnPsdOtukSapiAccepted OBJECT-TYPE
    SYNTAX         TropicPsdSapi
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "OTUk accepted SAPI."
    ::= { tnPsdOtukEntry 1 }

tnPsdOtukSapiExpected OBJECT-TYPE
    SYNTAX         TropicPsdSapi
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "OTUk expected SAPI."
    ::= { tnPsdOtukEntry 2 }

tnPsdOtukSapiTransmitted OBJECT-TYPE
    SYNTAX         TropicPsdSapi
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "OTUk transmitted SAPI."
    ::= { tnPsdOtukEntry 3 }

tnPsdOtukDapiAccepted OBJECT-TYPE
    SYNTAX         TropicPsdDapi
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "OTUk accepted DAPI."
    ::= { tnPsdOtukEntry 4 }

tnPsdOtukDapiExpected OBJECT-TYPE
    SYNTAX         TropicPsdDapi
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "OTUk expected DAPI."
    ::= { tnPsdOtukEntry 5 }

tnPsdOtukDapiTransmitted OBJECT-TYPE
    SYNTAX         TropicPsdDapi
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "OTUk transmitted DAPI."
    ::= { tnPsdOtukEntry 6 }

tnPsdOtukConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD OTUk (TROPIC-PSD-MIB, tnPsdOtukTable)
                 configuration change notification."
::= { tnPsdOtnNotifs 1 }

-------------------------------------------------------------------------------
-- PSD ODUk NIM Table
-------------------------------------------------------------------------------

tnPsdOdukNimTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdOdukNimEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD ODUk NIM table."
    ::= { tnPsdOtnObjects 2 }

tnPsdOdukNimEntry OBJECT-TYPE
    SYNTAX         TnPsdOdukNimEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdOdukNimTable"
    AUGMENTS { tnOthOdukNimEntry }
    ::= { tnPsdOdukNimTable 1 }

TnPsdOdukNimEntry ::=
    SEQUENCE {
        tnPsdOdukNimSapiAccepted    TropicPsdSapi,
        tnPsdOdukNimSapiExpected    TropicPsdSapi,
        tnPsdOdukNimDapiAccepted    TropicPsdDapi,
        tnPsdOdukNimDapiExpected    TropicPsdDapi
        }

tnPsdOdukNimSapiAccepted OBJECT-TYPE
    SYNTAX         TropicPsdSapi
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "ODUk NIM accepted SAPI."
    ::= { tnPsdOdukNimEntry 1 }

tnPsdOdukNimSapiExpected OBJECT-TYPE
    SYNTAX         TropicPsdSapi
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "ODUk NIM expected SAPI."
    ::= { tnPsdOdukNimEntry 2 }

tnPsdOdukNimDapiAccepted OBJECT-TYPE
    SYNTAX         TropicPsdDapi
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "ODUk NIM accepted DAPI."
    ::= { tnPsdOdukNimEntry 3 }

tnPsdOdukNimDapiExpected OBJECT-TYPE
    SYNTAX         TropicPsdDapi
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "ODUk NIM expected DAPI."
    ::= { tnPsdOdukNimEntry 4 }

tnPsdOdukNimConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD ODUk NIM (TROPIC-PSD-MIB, tnPsdOdukNimTable)
                 configuration change notification."
::= { tnPsdOtnNotifs 2 }

-------------------------------------------------------------------------------
-- PSD ODUk TTP Table
-------------------------------------------------------------------------------

tnPsdOdukTtpTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdOdukTtpEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD ODUk TTP table."
    ::= { tnPsdOtnObjects 3 }

tnPsdOdukTtpEntry OBJECT-TYPE
    SYNTAX         TnPsdOdukTtpEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdOdukTtpTable"
    AUGMENTS { tnOthOdukTtpEntry }
    ::= { tnPsdOdukTtpTable 1 }

TnPsdOdukTtpEntry ::=
    SEQUENCE {
        tnPsdOdukTtpSapiAccepted    TropicPsdSapi,
        tnPsdOdukTtpSapiExpected    TropicPsdSapi,
        tnPsdOdukTtpSapiTransmitted TropicPsdSapi,
        tnPsdOdukTtpDapiAccepted    TropicPsdDapi,
        tnPsdOdukTtpDapiExpected    TropicPsdDapi,
        tnPsdOdukTtpDapiTransmitted TropicPsdDapi
        }

tnPsdOdukTtpSapiAccepted OBJECT-TYPE
    SYNTAX         TropicPsdSapi
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "ODUk TTP accepted SAPI."
    ::= { tnPsdOdukTtpEntry 1 }

tnPsdOdukTtpSapiExpected OBJECT-TYPE
    SYNTAX         TropicPsdSapi
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "ODUk TTP expected SAPI."
    ::= { tnPsdOdukTtpEntry 2 }

tnPsdOdukTtpSapiTransmitted OBJECT-TYPE
    SYNTAX         TropicPsdSapi
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "ODUk TTP transmitted SAPI."
    ::= { tnPsdOdukTtpEntry 3 }

tnPsdOdukTtpDapiAccepted OBJECT-TYPE
    SYNTAX         TropicPsdDapi
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "ODUk TTP accepted DAPI."
    ::= { tnPsdOdukTtpEntry 4 }

tnPsdOdukTtpDapiExpected OBJECT-TYPE
    SYNTAX         TropicPsdDapi
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "ODUk TTP expected DAPI."
    ::= { tnPsdOdukTtpEntry 5 }

tnPsdOdukTtpDapiTransmitted OBJECT-TYPE
    SYNTAX         TropicPsdDapi
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "ODUk TTP transmitted DAPI."
    ::= { tnPsdOdukTtpEntry 6 }

tnPsdOdukTtpConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD ODUk TTP (TROPIC-PSD-MIB, tnPsdOdukTtpTable)
                 configuration change notification."
::= { tnPsdOtnNotifs 3 }

-------------------------------------------------------------------------------
-- PSD ODUkT (TCM) Table
-------------------------------------------------------------------------------

tnPsdOdukTTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdOdukTEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD ODUkT (TCM) table."
    ::= { tnPsdOtnObjects 4 }

tnPsdOdukTEntry OBJECT-TYPE
    SYNTAX         TnPsdOdukTEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdOdukTTable"
    AUGMENTS { tnOthOdukTEntry }
    ::= { tnPsdOdukTTable 1 }

TnPsdOdukTEntry ::=
    SEQUENCE {
        tnPsdOdukTSapiAccepted    TropicPsdSapi,
        tnPsdOdukTSapiExpected    TropicPsdSapi,
        tnPsdOdukTSapiTransmitted TropicPsdSapi,
        tnPsdOdukTDapiAccepted    TropicPsdDapi,
        tnPsdOdukTDapiExpected    TropicPsdDapi,
        tnPsdOdukTDapiTransmitted TropicPsdDapi
        }

tnPsdOdukTSapiAccepted OBJECT-TYPE
    SYNTAX         TropicPsdSapi
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "ODUkT (TCM) accepted SAPI."
    ::= { tnPsdOdukTEntry 1 }

tnPsdOdukTSapiExpected OBJECT-TYPE
    SYNTAX         TropicPsdSapi
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "ODUkT (TCM) expected SAPI."
    ::= { tnPsdOdukTEntry 2 }

tnPsdOdukTSapiTransmitted OBJECT-TYPE
    SYNTAX         TropicPsdSapi
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "ODUkT (TCM) transmitted SAPI."
    ::= { tnPsdOdukTEntry 3 }

tnPsdOdukTDapiAccepted OBJECT-TYPE
    SYNTAX         TropicPsdDapi
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "ODUkT (TCM) accepted DAPI."
    ::= { tnPsdOdukTEntry 4 }

tnPsdOdukTDapiExpected OBJECT-TYPE
    SYNTAX         TropicPsdDapi
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "ODUkT (TCM) expected DAPI."
    ::= { tnPsdOdukTEntry 5 }

tnPsdOdukTDapiTransmitted OBJECT-TYPE
    SYNTAX         TropicPsdDapi
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "ODUkT (TCM) transmitted DAPI."
    ::= { tnPsdOdukTEntry 6 }

tnPsdOdukTConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD ODUkT (TROPIC-PSD-MIB, tnPsdOdukTTable)
                 configuration change notification."
::= { tnPsdOtnNotifs 4 }

-------------------------------------------------------------------------------
-- PSD ODUk TTP Delay Measurement Table
-------------------------------------------------------------------------------

tnPsdOdukTtpDmTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdOdukTtpDmEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD ODUk TTP delay measurement table."
    ::= { tnPsdOtnObjects 5 }

tnPsdOdukTtpDmEntry OBJECT-TYPE
    SYNTAX         TnPsdOdukTtpDmEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdOdukTtpDmTable"
    INDEX { tnOthIfIndex, tnOthIfIndexLo }
    ::= { tnPsdOdukTtpDmTable 1 }

TnPsdOdukTtpDmEntry ::=
    SEQUENCE {
        tnPsdOdukTtpDmReflection   INTEGER,
        tnPsdOdukTtpDmSessionType  INTEGER,
        tnPsdOdukTtpDmStart        TruthValue
        }

tnPsdOdukTtpDmReflection OBJECT-TYPE
    SYNTAX         INTEGER {
                       enabled(1),
                       disabled(2)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Enable or disable delay measurement reflection
                    on a ODUk path termination point."
    ::= { tnPsdOdukTtpDmEntry 1 }

tnPsdOdukTtpDmSessionType OBJECT-TYPE
    SYNTAX         INTEGER {
                       onDemand(1),
                       proActive(2)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "The delay measurement session type.
                    This object indicates whether the current session is
                    defined to be 'Proactive' or 'On-Demand'.
                    This object must always be included in an SNMP SET PDU
                    together with object tnPsdOdukTtpDmStart."
    DEFVAL         { onDemand }
    ::= { tnPsdOdukTtpDmEntry 2 }

tnPsdOdukTtpDmStart OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "A delay measurement is started when value true(1) is
                    given and a entry is created in the
                    tnPsdOdukTtpDmOnDemandResultTable.
                    In case value false(2) is given, no action is
                    performed. Upon read the value will always be false.
                    This object must always be included in an SNMP SET PDU
                    together with object tnPsdOdukTtpDmSessionType.
                    A measurement must be completed before a new measurement
                    can be started, otherwise the request is ignored."
    DEFVAL         { false }
    ::= { tnPsdOdukTtpDmEntry 3 }

tnPsdOdukTtpDmConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD ODUk TTP delay measurement (TROPIC-PSD-MIB,
                 tnPsdOdukTtpDmTable) configuration change notification."
::= { tnPsdOtnNotifs 5 }

-------------------------------------------------------------------------------
-- PSD ODUk TTP Delay Measurement result Table
-------------------------------------------------------------------------------

tnPsdOdukTtpDmOnDemandResultTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdOdukTtpDmOnDemandResultEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD ODUk TTP delay measurement result table."
    ::= { tnPsdOtnObjects 6 }

tnPsdOdukTtpDmOnDemandResultEntry OBJECT-TYPE
    SYNTAX         TnPsdOdukTtpDmOnDemandResultEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdOdukTtpDmOnDemandResultTable"
    INDEX { tnOthIfIndex, tnOthIfIndexLo }
    ::= { tnPsdOdukTtpDmOnDemandResultTable 1 }

TnPsdOdukTtpDmOnDemandResultEntry ::=
    SEQUENCE {
        tnPsdOdukTtpDmOnDemandResultStatus      INTEGER,
        tnPsdOdukTtpDmOnDemandResultRoundTrip   Integer32
        }

tnPsdOdukTtpDmOnDemandResultStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                       busy(1),
                       terminated(2),
                       finished(3)
                   }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The status of the latest on-demand delay measurement.
                    The value of this object has the following meaning:
                    - busy(1)      : measurement in progress.
                    - terminated(2): measurement stopped due to OTN defect.
                    - finished(3)  : measurement completed."
    ::= { tnPsdOdukTtpDmOnDemandResultEntry 1 }

tnPsdOdukTtpDmOnDemandResultRoundTrip OBJECT-TYPE
    SYNTAX         Integer32
    UNITS          "microseconds"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The delay measurement round trip delay value expressed
                    in microseconds.
                    The value -1 indicates that the round trip delay value
                    is not available."
    ::= { tnPsdOdukTtpDmOnDemandResultEntry 2 }

-------------------------------------------------------------------------------
-- PSD ODUk TTP PRBS Table
-------------------------------------------------------------------------------

tnPsdOdukTtpPrbsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdOdukTtpPrbsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD ODUk TTP PRBS table."
    ::= { tnPsdOtnObjects 7 }

tnPsdOdukTtpPrbsEntry OBJECT-TYPE
    SYNTAX         TnPsdOdukTtpPrbsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdOdukTtpPrbsTable"
    INDEX { tnOthIfIndex, tnOthIfIndexLo }
    ::= { tnPsdOdukTtpPrbsTable 1 }

TnPsdOdukTtpPrbsEntry ::=
    SEQUENCE {
        tnPsdOdukTtpPrbsGenerator         TmnxEnabledDisabled,
        tnPsdOdukTtpPrbsGeneratorInvert   TruthValue,
        tnPsdOdukTtpPrbsMonitor           TmnxEnabledDisabled,
        tnPsdOdukTtpPrbsMonitorInvert     TruthValue,
        tnPsdOdukTtpPrbsErrorPropagation  TruthValue
        }

tnPsdOdukTtpPrbsGenerator OBJECT-TYPE
    SYNTAX         TmnxEnabledDisabled
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Enable or disable the PRBS generator.

                    When writing, this object must always be included
                    in an SNMP SET PDU together with object
                    tnPsdOdukTtpPrbsGeneratorInvert belonging to the
                    same table entry."
    DEFVAL         { disabled }
    ::= { tnPsdOdukTtpPrbsEntry 1 }

tnPsdOdukTtpPrbsGeneratorInvert OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Configure whether the PRBS generator inserts
                    an inverted PRBS signal or not.

                    When writing, this object must always be included
                    in an SNMP SET PDU together with object
                    tnPsdOdukTtpPrbsGenerator belonging to the same
                    table entry."
    DEFVAL         { false }
    ::= { tnPsdOdukTtpPrbsEntry 2 }

tnPsdOdukTtpPrbsMonitor OBJECT-TYPE
    SYNTAX         TmnxEnabledDisabled
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Enable or disable the PRBS monitor.

                    When writing, this object must always be included
                    in an SNMP SET PDU together with object
                    tnPsdOdukTtpPrbsMonitorInvert belonging to the
                    same table entry."
    DEFVAL         { disabled }
    ::= { tnPsdOdukTtpPrbsEntry 3 }

tnPsdOdukTtpPrbsMonitorInvert OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Configure whether the PRBS monitor expects
                    an inverted PRBS signal or not.

                    When writing, this object must always be included
                    in an SNMP SET PDU together with object
                    tnPsdOdukTtpPrbsMonitor belonging to the same
                    table entry."
    DEFVAL         { false }
    ::= { tnPsdOdukTtpPrbsEntry 4 }

tnPsdOdukTtpPrbsErrorPropagation OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Configure whether the PRBS monitor propagates
                    errors to the PRBS generator or not."
    DEFVAL         { false }
    ::= { tnPsdOdukTtpPrbsEntry 5 }

tnPsdOdukTtpPrbsConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD ODUk TTP PRBS measurement (TROPIC-PSD-MIB,
                 tnPsdOdukTtpPrbsTable) configuration change notification."
::= { tnPsdOtnNotifs 6 }

-------------------------------------------------------------------------------
-- PSD ODUk TTP PRBS result Table
-------------------------------------------------------------------------------

tnPsdOdukTtpPrbsTestResultTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdOdukTtpPrbsTestResultEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD ODUk TTP PRBS test result table."
    ::= { tnPsdOtnObjects 8 }

tnPsdOdukTtpPrbsTestResultEntry OBJECT-TYPE
    SYNTAX         TnPsdOdukTtpPrbsTestResultEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdOdukTtpPrbsTestResultTable"
    INDEX { tnOthIfIndex, tnOthIfIndexLo }
    ::= { tnPsdOdukTtpPrbsTestResultTable 1 }

TnPsdOdukTtpPrbsTestResultEntry ::=
    SEQUENCE {
        tnPsdOdukTtpPrbsLockTime      Unsigned32,
        tnPsdOdukTtpPrbsTSE           Counter32,
        tnPsdOdukTtpPrbsBitErrorRate  SnmpAdminString
        }

tnPsdOdukTtpPrbsLockTime OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The time, in seconds, since the PRBS monitor
                    is locked."
    ::= { tnPsdOdukTtpPrbsTestResultEntry 1 }

tnPsdOdukTtpPrbsTSE OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The number of measured test sequence errors
                    (bit errors)."
    ::= { tnPsdOdukTtpPrbsTestResultEntry 2 }

tnPsdOdukTtpPrbsBitErrorRate OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..7))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The test bit error rate.
                    Format: #.#E-##"
    ::= { tnPsdOdukTtpPrbsTestResultEntry 3 }

-------------------------------------------------------------------------------
-- PSD Connectivity Fault Management Scalars
-------------------------------------------------------------------------------

tnPsdCfmTransportIdentifier OBJECT-TYPE
    SYNTAX         TropicPsdTransportIdentifier
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "The Connectivity Fault Management (CFM) transport
                    identifier.
                    The value of this object is used in the 16 bit transport
                    identifier field of Virtual Local Area Network tagged CFM
                    frames."
    DEFVAL         { '8100'h }
    ::= { tnPsdCfmObjects 1 }

-------------------------------------------------------------------------------
-- PSD OAM Ethernet Connectivity Fault Management Ping Control Table
-------------------------------------------------------------------------------

tnPsdOamEthCfmPingCtlTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdOamEthCfmPingCtlEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD OAM Ethernet Connectivity Fault Management (CFM) Ping
                    Control table.
                    This table is part of the configuration of pro-active
                    Ethernet CFM tests."
    ::= { tnPsdCfmObjects 2 }

tnPsdOamEthCfmPingCtlEntry OBJECT-TYPE
    SYNTAX         TnPsdOamEthCfmPingCtlEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdOamEthCfmPingCtlTable"
    AUGMENTS        { tnOamPingCtlEntry }

    ::= { tnPsdOamEthCfmPingCtlTable 1 }

TnPsdOamEthCfmPingCtlEntry ::=
    SEQUENCE {
        tnPsdOamEthCfmPingCtlPriority               TropicPsdPriorityValue,
        tnPsdOamEthCfmPingCtlAvailFlrThreshold      Unsigned32,
        tnPsdOamEthCfmPingCtlAvailFlrNumOfIntervals Unsigned32,
        tnPsdOamEthCfmPingCtlAvailFlrInterval15Min  Unsigned32,
        tnPsdOamEthCfmPingCtlAvailFlrInterval1Day   Unsigned32
        }

tnPsdOamEthCfmPingCtlPriority OBJECT-TYPE
    SYNTAX         TropicPsdPriorityValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The priority value that is used in the egress CFM PDU."
    DEFVAL         { 7 }
    ::= { tnPsdOamEthCfmPingCtlEntry 1 }

tnPsdOamEthCfmPingCtlAvailFlrThreshold OBJECT-TYPE
    SYNTAX         Unsigned32(0..100)
    UNITS          "percent"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The threshold which if exceeded marks an availability
                    Frame Loss Ratio (FLR) delta-t
                    (see tnPsdOamEthCfmPingCtlAvailFlrInterval15Min and
                    tnPsdOamEthCfmPingCtlAvailFlrInterval1Day) as bad."
    DEFVAL         { 50 }
    ::= { tnPsdOamEthCfmPingCtlEntry 2 }

tnPsdOamEthCfmPingCtlAvailFlrNumOfIntervals OBJECT-TYPE
    SYNTAX         Unsigned32(1..10)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The number of consecutive time intervals over which
                    to assess availability."
    DEFVAL         { 10 }
    ::= { tnPsdOamEthCfmPingCtlEntry 3 }

tnPsdOamEthCfmPingCtlAvailFlrInterval15Min OBJECT-TYPE
    SYNTAX         Unsigned32
    UNITS          "seconds"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The availability interval to be used in evaluating the
                    availability/unavailability status for 15-min Loss
                    Measurement PM monitoring. This object is equivalent to
                    the Availability parameter of 'delta_t' as specified by
                    MEF 10.2.1"
    DEFVAL         { 60 }
    ::= { tnPsdOamEthCfmPingCtlEntry 4 }

tnPsdOamEthCfmPingCtlAvailFlrInterval1Day OBJECT-TYPE
    SYNTAX         Unsigned32
    UNITS          "seconds"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The availability interval to be used in evaluating the
                    availability/unavailability status for 1-day Loss
                    Measurement PM monitoring. This object is equivalent to
                    the Availability parameter of 'delta_t' as specified by
                    MEF 10.2.1"
    DEFVAL         { 60 }
    ::= { tnPsdOamEthCfmPingCtlEntry 5 }

-------------------------------------------------------------------------------
-- PSD OAM Ethernet Connectivity Fault Management Test Table
-------------------------------------------------------------------------------

tnPsdOamEthCfmTestTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdOamEthCfmTestEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "This table provides an overview of the Ethernet
                    Connectivity Fault Management (CFM) OAM test
                    configuration."
    ::= { tnPsdCfmObjects 3 }

tnPsdOamEthCfmTestEntry OBJECT-TYPE
    SYNTAX         TnPsdOamEthCfmTestEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdOamEthCfmTestTable"
    INDEX { tnPsdOamEthCfmTestSwitchId,
            tnPsdOamEthCfmTestSrcMdIndex,
            tnPsdOamEthCfmTestSrcMaIndex,
            tnPsdOamEthCfmTestSrcMepId,
            tnPsdOamEthCfmTestMode,
            tnPsdOamEthCfmTestPriority,
            tnPsdOamEthCfmTestInterval,
            tnPsdOamEthCfmTestSize,
            tnPsdOamEthCfmTestTgtMacAddr }
    ::= { tnPsdOamEthCfmTestTable 1 }

TnPsdOamEthCfmTestEntry ::=
    SEQUENCE {
        tnPsdOamEthCfmTestSwitchId   TnSwitchID,
        tnPsdOamEthCfmTestSrcMdIndex Unsigned32,
        tnPsdOamEthCfmTestSrcMaIndex Unsigned32,
        tnPsdOamEthCfmTestSrcMepId   Dot1agCfmMepIdOrZero,
        tnPsdOamEthCfmTestMode       AluWdmPmonPolicyType,
        tnPsdOamEthCfmTestPriority   TropicPsdPriorityValue,
        tnPsdOamEthCfmTestInterval   Unsigned32,
        tnPsdOamEthCfmTestSize       Unsigned32,
        tnPsdOamEthCfmTestTgtMacAddr MacAddress,
        tnPsdOamEthCfmTestName       SnmpAdminString }

tnPsdOamEthCfmTestSwitchId OBJECT-TYPE
    SYNTAX         TnSwitchID(0 .. 2147483647)
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "The switch ID which uniquely identifies a switching
                    domain."
    ::= { tnPsdOamEthCfmTestEntry 1 }

tnPsdOamEthCfmTestSrcMdIndex OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "The source CFM maintenance domain index of the test."
    ::= { tnPsdOamEthCfmTestEntry 2 }

tnPsdOamEthCfmTestSrcMaIndex OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "The source CFM maintenance association index of the test."
    ::= { tnPsdOamEthCfmTestEntry 3 }

tnPsdOamEthCfmTestSrcMepId OBJECT-TYPE
    SYNTAX         Dot1agCfmMepIdOrZero
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "The source Maintenance association End Point Identifier
                    of the test."
    ::= { tnPsdOamEthCfmTestEntry 4 }

tnPsdOamEthCfmTestMode OBJECT-TYPE
    SYNTAX         AluWdmPmonPolicyType
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Identifies the test application."
    ::= { tnPsdOamEthCfmTestEntry 5 }

tnPsdOamEthCfmTestPriority OBJECT-TYPE
    SYNTAX         TropicPsdPriorityValue
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "The priority value that is used in the egress CFM PDU."
    ::= { tnPsdOamEthCfmTestEntry 6}

tnPsdOamEthCfmTestInterval OBJECT-TYPE
    SYNTAX         Unsigned32
    UNITS          "milliseconds"
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "The time between two successive request PDUs."
    ::= { tnPsdOamEthCfmTestEntry 7 }

tnPsdOamEthCfmTestSize OBJECT-TYPE
    SYNTAX         Unsigned32
    UNITS          "octets"
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "The size of the request PDU."
    ::= { tnPsdOamEthCfmTestEntry 8 }

tnPsdOamEthCfmTestTgtMacAddr OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "The MAC address of the remote MEP."
    ::= { tnPsdOamEthCfmTestEntry 9 }

tnPsdOamEthCfmTestName OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(1..32))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "The test name."
    ::= { tnPsdOamEthCfmTestEntry 10 }

-------------------------------------------------------------------------------
-- PSD MEP On-demand two-way Delay Measurement Test Configuration Table
-------------------------------------------------------------------------------

tnPsdDot1agCfmMepDmTWTestTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdDot1agCfmMepDmTWTestEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "This table contains additional objects for
                    the on-demand two-way delay measurement configuration."
    ::= { tnPsdCfmObjects 4 }

tnPsdDot1agCfmMepDmTWTestEntry OBJECT-TYPE
    SYNTAX         TnPsdDot1agCfmMepDmTWTestEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdDot1agCfmMepDmTWTestTable"
    AUGMENTS        { dot1agCfmMepEntry }
    ::= { tnPsdDot1agCfmMepDmTWTestTable 1 }

TnPsdDot1agCfmMepDmTWTestEntry ::=
    SEQUENCE {
        tnPsdDot1agCfmMepDmTWTestStatus     TmnxEnabledDisabled
        }

tnPsdDot1agCfmMepDmTWTestStatus OBJECT-TYPE
    SYNTAX         TmnxEnabledDisabled
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "This object is used to control and provide access to
                    the on-demand test state."
    DEFVAL         { disabled }
    ::= { tnPsdDot1agCfmMepDmTWTestEntry 1 }

tnPsdDot1agCfmMepDmTWTestConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD MEP On-demand two-way Delay Measurement Test
                 (TROPIC-PSD-MIB, tnPsdDot1agCfmMepDmTWTestTable)
                 configuration change notification."
::= { tnPsdCfmNotifs 2 }

-------------------------------------------------------------------------------
-- PSD MEP On-demand two-way Synthetic Loss Measurement (SLM) Test
-- Configuration Table
-------------------------------------------------------------------------------

tnPsdDot1agCfmMepSlmTWTestTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdDot1agCfmMepSlmTWTestEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "This table contains additional objects for the
                    on-demand two-way Synthetic Loss Measurement (SLM)
                    configuration."
    ::= { tnPsdCfmObjects 5 }

tnPsdDot1agCfmMepSlmTWTestEntry OBJECT-TYPE
    SYNTAX         TnPsdDot1agCfmMepSlmTWTestEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdDot1agCfmMepSlmTWTestTable."
    AUGMENTS        { dot1agCfmMepEntry }

    ::= { tnPsdDot1agCfmMepSlmTWTestTable 1 }

TnPsdDot1agCfmMepSlmTWTestEntry ::=
    SEQUENCE {
        tnPsdDot1agCfmMepSlmTWInterval     Dot1agCfmCcmInterval
        }

tnPsdDot1agCfmMepSlmTWInterval OBJECT-TYPE
    SYNTAX         Dot1agCfmCcmInterval
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The value specifies the SLM request PDU interval."
    DEFVAL         { interval1s }
    ::= { tnPsdDot1agCfmMepSlmTWTestEntry 1 }

tnPsdDot1agCfmMepSlmTWTestConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD MEP On-demand two-way Synthetic Loss Measurement (SLM)
                 Test (TROPIC-PSD-MIB, tnPsdDot1agCfmMepSlmTWTestTable)
                 configuration change notification."
::= { tnPsdCfmNotifs 3 }

-------------------------------------------------------------------------------
-- PSD SOAM Table
-------------------------------------------------------------------------------

tnPsdSoamTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdSoamEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD Service OAM table."
    ::= { tnPsdCfmObjects 6 }

tnPsdSoamEntry OBJECT-TYPE
    SYNTAX         TnPsdSoamEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdSoamTable."
    INDEX { ifIndex }
    ::= { tnPsdSoamTable 1 }

TnPsdSoamEntry ::=
    SEQUENCE {
        tnPsdSoamEnable     TruthValue
        }

tnPsdSoamEnable OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Enable SOAM on this interface."
    DEFVAL         { false }
    ::= { tnPsdSoamEntry 1 }

tnPsdSoamConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD Service OAM (TROPIC-PSD-MIB, tnPsdSoamTable)
                 configuration change notification."
::= { tnPsdCfmNotifs 4 }

-------------------------------------------------------------------------------
-- PSD PM Scalars
-------------------------------------------------------------------------------

tnPsdPmTcaReportingMethod OBJECT-TYPE
    SYNTAX         INTEGER {
                       transient(1),
                       standing(2)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "The Threshold Crossing Alert (TCA) reporting method.
                    The transient(1) method treats each observation interval
                    separately. As soon as a threshold value is reached or
                    crossed for a given counter, a TR (Threshold Report)
                    notification is sent. At the end of the observation
                    interval a RTR (Reset Threshold Report) notification is
                    sent, provided that a TR was sent.
                    For the standing(2) method, as soon as the current count in
                    the bin crosses the set threshold value during the ongoing
                    observation interval a TR notification is sent. A
                    corresponding RTR notification is sent when at the end of a
                    full observation interval, the current count stays below
                    the reset threshold, provided that the previous
                    notification was a TR."
    DEFVAL         { transient }
    ::= { tnPsdPmObjects 1 }

-------------------------------------------------------------------------------
-- PSD Ethernet Statistics Port Configuration Table
-------------------------------------------------------------------------------

tnPsdEthStatsPortConfigTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdEthStatsPortConfigEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "PSD Port Ethernet PM configuration table."
    ::= { tnPsdPmObjects 2 }

tnPsdEthStatsPortConfigEntry OBJECT-TYPE
    SYNTAX         TnPsdEthStatsPortConfigEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdEthStatsPortConfigTable."
    INDEX { ifIndex, tnStatsInterval }
    ::= { tnPsdEthStatsPortConfigTable 1 }

TnPsdEthStatsPortConfigEntry ::=
    SEQUENCE {
        tnPsdEthStatsPortClear TnCommand
    }

tnPsdEthStatsPortClear OBJECT-TYPE
    SYNTAX         TnCommand
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Setting this object to value execute(2) clears the
                    current bin with Ethernet statistics for the specific
                    interface and interval.
                    Setting this object to value noCmd(1) has no effect.
                    A read of this object always returns noCmd(1)."
    ::= { tnPsdEthStatsPortConfigEntry 1 }

tnPsdEthStatsPortConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD Port Ethernet PM (TROPIC-PSD-MIB,
                 tnPsdEthStatsPortConfigTable) configuration
                 change notification."
::= { tnPsdPmNotifs 1 }

-------------------------------------------------------------------------------
-- PSD Power Input Table
-------------------------------------------------------------------------------

tnPsdPowerInputTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF TnPsdPowerInputEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Power Input table."
    ::= { tnPsdPowerInputObjects 1 }

tnPsdPowerInputEntry OBJECT-TYPE
    SYNTAX         TnPsdPowerInputEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Entry in tnPsdPowerInputTable."
    INDEX { tnShelfIndex, tnPsdPowerInputIndex }
    ::= { tnPsdPowerInputTable 1 }

TnPsdPowerInputEntry ::=
    SEQUENCE {
        tnPsdPowerInputIndex      Unsigned32,
        tnPsdPowerInputMonitoring INTEGER
        }

tnPsdPowerInputIndex OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    "Power Input index."
    ::= { tnPsdPowerInputEntry 1 }

tnPsdPowerInputMonitoring OBJECT-TYPE
    SYNTAX         INTEGER {
                       enabled(1),
                       disabled(2)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Power Input monitoring state."
    ::= { tnPsdPowerInputEntry 2 }

tnPsdPowerInputConfigChangeNotif NOTIFICATION-TYPE
    OBJECTS {
        tnGenericTrapSeqNumber,
        tnGenericTrapObject,
        tnGenericTrapObjectInstance,
        tnGenericTrapTime,
        tnGenericTrapCategory,
        tnGenericTrapObjectValueType,
        tnGenericTrapObjectCounter32Val,
        tnGenericTrapObjectUnsigned32Val,
        tnGenericTrapObjectTimeTicksVal,
        tnGenericTrapObjectInteger32Val,
        tnGenericTrapObjectOctetStringVal,
        tnGenericTrapObjectIpAddressVal,
        tnGenericTrapObjectOidVal,
        tnGenericTrapObjectCounter64Val,
        tnGenericTrapDateAndTime,
        tnGenericTrapConfigurationChangeCounter
    }
    STATUS      current
    DESCRIPTION "PSD Power Input (TROPIC-PSD-MIB, tnPsdPowerInputTable)
                 configuration change notification."
::= { tnPsdPowerInputNotifs 1 }

-------------------------------------------------------------------------------
-- Conformance Group Definitions
-------------------------------------------------------------------------------

tnPsdSystemGroup OBJECT-GROUP
    OBJECTS {
        tnPsdSystemMode,
        tnPsdSystemModeDescr,
        tnPsdSystemAbnormalState,
        tnPsdSystemSmartConnectLed
    }
    STATUS         current
    DESCRIPTION    "PSD System conformance group."
    ::= { tnPsdSystemGroups 1 }

tnPsdShelfGroup OBJECT-GROUP
    OBJECTS {
        tnPsdShelfName,
        tnPsdShelfDescr,
        tnPsdShelfType,
        tnPsdShelfLocation,
        tnPsdShelfLatitude,
        tnPsdShelfLongitude,
        tnPsdShelfAltitude,
        tnPsdShelfRealTimePower,
        tnPsdShelfRestart
    }
    STATUS         current
    DESCRIPTION    "PSD Shelf conformance group."
    ::= { tnPsdEquipmentGroups 1 }

tnPsdSlotGroup OBJECT-GROUP
    OBJECTS {
        tnPsdSlotType
    }
    STATUS         current
    DESCRIPTION    "PSD Slot conformance group."
    ::= { tnPsdEquipmentGroups 2 }

tnPsdCardGroup OBJECT-GROUP
    OBJECTS {
        tnPsdCardInvStatus,
        tnPsdCardCompanyID,
        tnPsdCardMnemonic,
        tnPsdCardCLEI,
        tnPsdCardUnitPartNumber,
        tnPsdCardSwPartNumber,
        tnPsdCardFactoryID,
        tnPsdCardSerialNumber,
        tnPsdCardDate,
        tnPsdCardCustInvField
    }
    STATUS         current
    DESCRIPTION    "PSD Card conformance group."
    ::= { tnPsdEquipmentGroups 3 }

tnPsdEquipmentEventGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdDyingGaspNotif,
        tnPsdSwRestartNotif
    }
    STATUS         current
    DESCRIPTION    "PSD Equipment event notifications group."
    ::= { tnPsdEquipmentGroups 4 }

tnPsdEquipmentChangeGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdShelfConfigChangeNotif,
        tnPsdShelfRestartConfigChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD Equipment configuration change notifications group."
    ::= { tnPsdEquipmentGroups 5 }

tnPsdSfpGroup OBJECT-GROUP
    OBJECTS {
        tnPsdSfpType,
        tnPsdSfpInfoInvStatus,
        tnPsdSfpInfoPhysicalIdentifier,
        tnPsdSfpInfoClassOfWdm,
        tnPsdSfpInfoConnectorType,
        tnPsdSfpInfoTransceiverCode,
        tnPsdSfpInfoBitRateNominal,
        tnPsdSfpInfoLinkType,
        tnPsdSfpInfoLinkMaxLength,
        tnPsdSfpInfoLinkLengthOverrun,
        tnPsdSfpInfoLinkLengthUnits,
        tnPsdSfpInfoLinkLength,
        tnPsdSfpInfoVendorName,
        tnPsdSfpInfoVendorOUI,
        tnPsdSfpInfoPartNumber,
        tnPsdSfpInfoRevisionNumber,
        tnPsdSfpInfoWavelength,
        tnPsdSfpInfoBitRateMaximum,
        tnPsdSfpInfoBitRateMinimum,
        tnPsdSfpInfoVendorSerialNumber,
        tnPsdSfpInfoVendorDate,
        tnPsdSfpInfoVendorSpecific,
        tnPsdSfpInfoCLEI,
        tnPsdSfpInfoAluPartNumber,
        tnPsdSfpInfoAluSerialNumber,
        tnPsdSfpInfoIcs,
        tnPsdSfpInfoNokiaPartNumber
    }
    STATUS         current
    DESCRIPTION    "PSD SFP conformance group."
    ::= { tnPsdInterfaceGroups 1 }

tnPsdDdmDataGroup OBJECT-GROUP
    OBJECTS {
        tnPsdDdmDataValue
    }
    STATUS         current
    DESCRIPTION    "PSD DDM data conformance group."
    ::= { tnPsdInterfaceGroups 2 }

tnPsdInterfaceConfigChangeNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdSfpConfigChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD interface configuration change notifications group."
    ::= { tnPsdInterfaceGroups 3 }

tnPsdLagGroup OBJECT-GROUP
    OBJECTS {
        tnPsdLagCommandSubgroupSelected
    }
    STATUS         current
    DESCRIPTION    "PSD LAG conformance group."
    ::= { tnPsdInterfaceGroups 4 }

tnPsdSfp2Group OBJECT-GROUP
    OBJECTS {
        tnPsdSfpProgrammedChannel,
        tnPsdSfpInfoTunable,
        tnPsdSfpInfoFrequency,
        tnPsdSfpInfoFrequencyLow,
        tnPsdSfpInfoFrequencyHigh,
        tnPsdSfpInfoFrequencyGrid,
        tnPsdSfpInfoTuningStatus
    }
    STATUS         current
    DESCRIPTION    "PSD SFP conformance group 2"
    ::= { tnPsdInterfaceGroups 5 }

tnPsdInterfaceStateChangeNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdSfpInfoTuningStatusChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD interface state change notifications group."
    ::= { tnPsdInterfaceGroups 6 }

tnPsdInterfaceEventNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdSfpInfoTuningOkNotif
    }
    STATUS         current
    DESCRIPTION    "PSD interface event notifications group."
    ::= { tnPsdInterfaceGroups 7 }

tnPsdAlsGroup OBJECT-GROUP
    OBJECTS {
        tnPsdAlsEnabled,
        tnPsdAlsWaitToRestart,
        tnPsdAlsTxTime,
        tnPsdAlsState,
        tnPsdAlsActiveCheck,
        tnPsdAlsActiveCheckForTest
    }
    STATUS         current
    DESCRIPTION    "PSD ALS conformance group."
    ::= { tnPsdInterfaceGroups 8 }

tnPsdAlsNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdAlsConfigChangeNotif,
        tnPsdAlsChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD ALS notifications group."
    ::= { tnPsdInterfaceGroups 9 }

tnPsdSnmpTrapDestGroup OBJECT-GROUP
    OBJECTS {
        tnPsdSnmpTrapDestAddrType,
        tnPsdSnmpTrapDestAddr,
        tnPsdSnmpTrapDestPort,
        tnPsdSnmpTrapDestCommunity,
        tnPsdSnmpTrapDestDyingGasp,
        tnPsdSnmpTrapDestRowStatus
    }
    STATUS         current
    DESCRIPTION    "PSD SNMP trap destination server conformance group."
    ::= { tnPsdSnmpGroups 1 }

tnPsdSnmpConfigChangeNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdSnmpTrapDestConfigChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD SNMP configuration change notifications group."
    ::= { tnPsdSnmpGroups 2 }

tnPsdSnmpCreDelNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdSnmpTrapDestCreationNotif,
        tnPsdSnmpTrapDestDeletionNotif
    }
    STATUS         current
    DESCRIPTION    "PSD SNMP (TROPIC-PSD-MIB) creation and deletion
                    notifications group."
    ::= { tnPsdSnmpGroups 3 }

tnPsdSnmpTrapDest2Group OBJECT-GROUP
    OBJECTS {
        tnPsdSnmpTrapDestAddrType,
        tnPsdSnmpTrapDestAddr,
        tnPsdSnmpTrapDestPort,
        tnPsdSnmpTrapDestCommunity,
        tnPsdSnmpTrapDestDyingGasp,
        tnPsdSnmpTrapDestRowStatus,
        tnPsdSnmpTrapDestSnmpVersion,
        tnPsdSnmpTrapDestUserName
    }
    STATUS         current
    DESCRIPTION    "PSD SNMP trap destination server conformance
                    group 2."
    ::= { tnPsdSnmpGroups 4 }

tnPsdDatabaseGroup OBJECT-GROUP
    OBJECTS {
        tnPsdDatabaseBackupAndRestoreRemoteHostAddrType,
        tnPsdDatabaseBackupAndRestoreRemoteHostAddr
    }
    STATUS         current
    DESCRIPTION    "PSD Database conformance group."
    ::= { tnPsdDatabaseGroups 1 }

tnPsdSoftwareGroup OBJECT-GROUP
    OBJECTS {
        tnPsdSoftwareRemoteHostAddrType,
        tnPsdSoftwareRemoteHostAddr,
        tnPsdShelfIsdStatus,
        tnPsdShelfIsdBuildTime,
        tnPsdShelfIsdItemCode,
        --tnPsdShelfIsdSwVersion,
        tnPsdShelfIsdMaintenance,
        tnPsdShelfIsdCompatible,
        tnPsdShelfIsdSwRelease
    }
    STATUS         current
    DESCRIPTION    "PSD Software conformance group."
    ::= { tnPsdSoftwareGroups 1 }

tnPsdSoftwareEventGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdSwActivateNotif,
        tnPsdSwCommitNotif
    }
    STATUS         current
    DESCRIPTION    "PSD Software event notifications group."
    ::= { tnPsdSoftwareGroups 2 }

tnPsdTimeGroup OBJECT-GROUP
    OBJECTS {
        tnPsdShelfTime,
        tnPsdNtpState,
        tnPsdNtpStatus,
        tnPsdNtpStratum,
        tnPsdNtpAccuracy,
        tnPsdNtpServerAddrType,
        tnPsdNtpServerAddr,
        tnPsdNtpServerSystemServer,
        tnPsdNtpServerReachable,
        tnPsdNtpServerReachabilityData,
        tnPsdNtpServerPollTime
    }
    STATUS         current
    DESCRIPTION    "PSD Time conformance group."
    ::= { tnPsdTimeGroups 1 }

tnPsdTimeConfigChangeNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdShelfTimeConfigChangeNotif,
        tnPsdNtpConfigChangeNotif,
        tnPsdNtpServerConfigChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD Time configuration change notifications group."
    ::= { tnPsdTimeGroups 2 }

tnPsdIpGroup OBJECT-GROUP
    OBJECTS {
        tnPsdEnforceSrcIpV4ToLoopbackIpV4,
        tnPsdEnforceSrcIpV6ToLoopbackIpV6,
        tnPsdManualIpv4AddressAddrType,
        tnPsdManualIpv4AddressAddr,
        tnPsdManualIpv4AddressPrefixLen,
        tnPsdManualIpv6AddressAddrType,
        tnPsdManualIpv6AddressAddr,
        tnPsdManualIpv6AddressPrefixLen,
        tnPsdActualIpAddressPrefixLen,
        tnPsdDhcpClientV4Enabled,
        tnPsdStaticRouteMetric,
        tnPsdStaticRouteRowStatus,
        tnPsdActualRouteMetric,
        tnPsdNetIfIpAddrType,
        tnPsdNetIfIpAddr,
        tnPsdNetIfIpPrefixLen,
        tnPsdNetIfOperStatus,
        tnPsdNetIfRemoteIpAddrType,
        tnPsdNetIfRemoteIpAddr,
        tnPsdNetIfIp6AddrType,
        tnPsdNetIfIp6Addr,
        tnPsdNetIfIp6PrefixLen,
        tnPsdNetIfRemoteIp6AddrType,
        tnPsdNetIfRemoteIp6Addr
    }
    STATUS         current
    DESCRIPTION    "PSD IP conformance group."
    ::= { tnPsdIpGroups 1 }

tnPsdIpConfigChangeNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdManualIpv4AddressConfigChangeNotif,
        tnPsdManualIpv6AddressConfigChangeNotif,
        tnPsdDhcpClientConfigChangeNotif,
        tnPsdStaticRouteConfigChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD IP (TROPIC-PSD-MIB) configuration change notifications
                    group."
    ::= { tnPsdIpGroups 2 }

tnPsdIpCreDelNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdStaticRouteCreationNotif,
        tnPsdStaticRouteDeletionNotif
    }
    STATUS         current
    DESCRIPTION    "PSD IP (TROPIC-PSD-MIB) creation and deletion
                    notifications group."
    ::= { tnPsdIpGroups 3 }

tnPsdIpStateChangeNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdNetIfOperStatusChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD IP (TROPIC-PSD-MIB) state change notifications group."
    ::= { tnPsdIpGroups 4 }

tnPsdIp2Group OBJECT-GROUP
    OBJECTS {
        tnPsdNetIfMonitoring,
        tnPsdNetIfMonitoring6,
        tnPsdNetIfEthFacilityTypeOfOperation,
        tnPsdNetIfEthFacilityPriorityEgress,
        tnPsdNetIfEthFacilityDropEligibleEgress
    }
    STATUS         current
    DESCRIPTION    "PSD IP conformance group 2."
    ::= { tnPsdIpGroups 5 }

tnPsdIpConfigChangeNotif2Group NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdNetIfConfigChangeNotif,
        tnPsdNetIfEthFacilityConfigChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD IP (TROPIC-PSD-MIB) configuration change notifications
                    group 2."
    ::= { tnPsdIpGroups 6 }

tnPsdIpCreDelNotif2Group NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdNetIfEthFacilityCreationNotif,
        tnPsdNetIfEthFacilityDeletionNotif
    }
    STATUS         current
    DESCRIPTION    "PSD IP (TROPIC-PSD-MIB) creation and deletion
                    notifications group 2."
    ::= { tnPsdIpGroups 7 }

tnPsdIp3Group OBJECT-GROUP
    OBJECTS {
        tnPsdProxyArp
    }
    STATUS         current
    DESCRIPTION    "PSD IP conformance group 3."
    ::= { tnPsdIpGroups 8 }

tnPsdIpConfigChangeNotif3Group NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdProxyArpConfigChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD IP (TROPIC-PSD-MIB) configuration change notifications
                    group 3."
    ::= { tnPsdIpGroups 9 }

tnPsdFaultGroup OBJECT-GROUP
    OBJECTS {
        tnPsdAsapName,
        tnPsdAsapFaultProfileSeverity,
        tnPsdAsapFaultProfileReported,
        tnPsdAsapFaultProfileServiceAffecting,
        tnPsdAsapFaultProfileAlarmText,
        tnPsdFaultAlarmRaiseTime,
        tnPsdFaultAlarmClearTime
    }
    STATUS         current
    DESCRIPTION    "PSD Fault conformance group"
    ::= { tnPsdFaultGroups 1 }

tnPsdFaultChangeNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdAsapConfigChangeNotif,
        tnPsdAsapFaultProfileConfigChangeNotif,
        tnPsdFaultConfigChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD Fault (TROPIC-PSD-MIB) configuration change
                    notifications group."
    ::= { tnPsdFaultGroups 2 }

tnPsdSysDiscoveryGroup OBJECT-GROUP
    OBJECTS {
        tnPsdSysDiscoveryServerAddrType,
        tnPsdSysDiscoveryServerAddr
    }
    STATUS         current
    DESCRIPTION    "PSD System Discovery conformance group"
    ::= { tnPsdSysDiscoveryGroups 1 }

tnPsdOtnGroup OBJECT-GROUP
    OBJECTS {
        tnPsdOtukSapiAccepted,
        tnPsdOtukSapiExpected,
        tnPsdOtukSapiTransmitted,
        tnPsdOtukDapiAccepted,
        tnPsdOtukDapiExpected,
        tnPsdOtukDapiTransmitted,
        tnPsdOdukNimSapiAccepted,
        tnPsdOdukNimSapiExpected,
        tnPsdOdukNimDapiAccepted,
        tnPsdOdukNimDapiExpected,
        tnPsdOdukTtpSapiAccepted,
        tnPsdOdukTtpSapiExpected,
        tnPsdOdukTtpSapiTransmitted,
        tnPsdOdukTtpDapiAccepted,
        tnPsdOdukTtpDapiExpected,
        tnPsdOdukTtpDapiTransmitted,
        tnPsdOdukTSapiAccepted,
        tnPsdOdukTSapiExpected,
        tnPsdOdukTSapiTransmitted,
        tnPsdOdukTDapiAccepted,
        tnPsdOdukTDapiExpected,
        tnPsdOdukTDapiTransmitted
    }
    STATUS         current
    DESCRIPTION    "PSD OTN conformance group"
    ::= { tnPsdOtnGroups 1 }

tnPsdOtnConfigChangeNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdOtukConfigChangeNotif,
        tnPsdOdukNimConfigChangeNotif,
        tnPsdOdukTtpConfigChangeNotif,
        tnPsdOdukTConfigChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD OTN (TROPIC-PSD-MIB) configuration change
                    notifications group."
    ::= { tnPsdOtnGroups 2 }

tnPsdOtn2Group OBJECT-GROUP
    OBJECTS {
        tnPsdOdukTtpDmReflection,
        tnPsdOdukTtpDmSessionType,
        tnPsdOdukTtpDmStart,
        tnPsdOdukTtpDmOnDemandResultStatus,
        tnPsdOdukTtpDmOnDemandResultRoundTrip
    }
    STATUS         current
    DESCRIPTION    "PSD OTN conformance group 2."
    ::= { tnPsdOtnGroups 3 }

tnPsdOtnConfigChangeNotif2Group NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdOdukTtpDmConfigChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD OTN (TROPIC-PSD-MIB) configuration change
                    notifications group 2."
    ::= { tnPsdOtnGroups 4 }

tnPsdOtn3Group OBJECT-GROUP
    OBJECTS {
        tnPsdOdukTtpPrbsGenerator,
        tnPsdOdukTtpPrbsGeneratorInvert,
        tnPsdOdukTtpPrbsMonitor,
        tnPsdOdukTtpPrbsMonitorInvert,
        tnPsdOdukTtpPrbsErrorPropagation,
        tnPsdOdukTtpPrbsLockTime,
        tnPsdOdukTtpPrbsTSE,
        tnPsdOdukTtpPrbsBitErrorRate
    }
    STATUS         current
    DESCRIPTION    "PSD OTN conformance group 3."
    ::= { tnPsdOtnGroups 5 }

tnPsdOtnConfigChangeNotif3Group NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdOdukTtpPrbsConfigChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD OTN (TROPIC-PSD-MIB) configuration change
                    notifications group 3."
    ::= { tnPsdOtnGroups 6 }

tnPsdCfmGroup OBJECT-GROUP
    OBJECTS {
        tnPsdCfmTransportIdentifier,
        tnPsdOamEthCfmPingCtlPriority,
        tnPsdOamEthCfmPingCtlAvailFlrThreshold,
        tnPsdOamEthCfmPingCtlAvailFlrNumOfIntervals,
        tnPsdOamEthCfmPingCtlAvailFlrInterval15Min,
        tnPsdOamEthCfmPingCtlAvailFlrInterval1Day,
        tnPsdOamEthCfmTestName,
        tnPsdDot1agCfmMepDmTWTestStatus,
        tnPsdDot1agCfmMepSlmTWInterval,
        tnPsdSoamEnable
    }
    STATUS         current
    DESCRIPTION    "PSD CFM conformance group."
    ::= { tnPsdCfmGroups 1 }

tnPsdCfmConfigChangeNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
         tnPsdDot1agCfmMepDmTWTestConfigChangeNotif,
         tnPsdDot1agCfmMepSlmTWTestConfigChangeNotif,
         tnPsdSoamConfigChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD CFM (TROPIC-PSD-MIB) configuration change
                    notifications group."
    ::= { tnPsdCfmGroups 2 }

tnPsdPmGroup OBJECT-GROUP
    OBJECTS {
        tnPsdPmTcaReportingMethod
    }
    STATUS         current
    DESCRIPTION    "PSD Performance Monitoring conformance group."
    ::= { tnPsdPmGroups 1 }

tnPsdPmEthStatsGroup OBJECT-GROUP
    OBJECTS {
        tnPsdEthStatsPortClear
    }
    STATUS         current
    DESCRIPTION    "PSD Performance Monitoring Ethernet Statistics
                    conformance group."
    ::= { tnPsdPmGroups 2 }

tnPsdPmEthStatsConfigChangeNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
         tnPsdEthStatsPortConfigChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD Performance Monitoring Ethernet Statistics
                    configuration change notifications group."
    ::= { tnPsdPmGroups 3 }

tnPsdPowerInputGroup OBJECT-GROUP
    OBJECTS {
        tnPsdPowerInputMonitoring
    }
    STATUS         current
    DESCRIPTION    "PSD Power Input conformance group."
    ::= { tnPsdPowerInputGroups 1 }

tnPsdPowerInputNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        tnPsdPowerInputConfigChangeNotif
    }
    STATUS         current
    DESCRIPTION    "PSD Power Input notifications group."
    ::= { tnPsdPowerInputGroups 2 }

-------------------------------------------------------------------------------
-- Compliance Statements
-------------------------------------------------------------------------------

tnPsdR100Compliance MODULE-COMPLIANCE
    STATUS         current
    DESCRIPTION    "PSD Release 1.0.0 compliance."
    MODULE
    MANDATORY-GROUPS {
        tnPsdSystemGroup,
        tnPsdShelfGroup,
        tnPsdSlotGroup,
        tnPsdCardGroup,
        tnPsdEquipmentEventGroup,
        tnPsdEquipmentChangeGroup,
        tnPsdSfpGroup,
        tnPsdDdmDataGroup,
        tnPsdInterfaceConfigChangeNotifGroup,
        tnPsdSnmpTrapDestGroup,
        tnPsdSnmpConfigChangeNotifGroup,
        tnPsdSnmpCreDelNotifGroup,
        tnPsdDatabaseGroup,
        tnPsdSoftwareGroup,
        tnPsdTimeGroup,
        tnPsdTimeConfigChangeNotifGroup,
        tnPsdIpGroup,
        tnPsdIpConfigChangeNotifGroup,
        tnPsdIpCreDelNotifGroup,
        tnPsdIpStateChangeNotifGroup,
        tnPsdFaultGroup,
        tnPsdFaultChangeNotifGroup,
        tnPsdSysDiscoveryGroup,
        tnPsdOtnGroup,
        tnPsdOtnConfigChangeNotifGroup
    }
    ::= { tnPsdMIBCompliance 1 }

tnPsdR110Compliance MODULE-COMPLIANCE
    STATUS         current
    DESCRIPTION    "PSD Release 1.1.0 compliance."
    MODULE
    MANDATORY-GROUPS {
        tnPsdSystemGroup,
        tnPsdShelfGroup,
        tnPsdSlotGroup,
        tnPsdCardGroup,
        tnPsdEquipmentEventGroup,
        tnPsdEquipmentChangeGroup,
        tnPsdSfpGroup,
        tnPsdSfp2Group,
        tnPsdDdmDataGroup,
        tnPsdInterfaceConfigChangeNotifGroup,
        tnPsdInterfaceStateChangeNotifGroup,
        tnPsdInterfaceEventNotifGroup,
        tnPsdLagGroup,
        tnPsdSnmpTrapDestGroup,
        tnPsdSnmpConfigChangeNotifGroup,
        tnPsdSnmpCreDelNotifGroup,
        tnPsdDatabaseGroup,
        tnPsdSoftwareGroup,
        tnPsdSoftwareEventGroup,
        tnPsdTimeGroup,
        tnPsdTimeConfigChangeNotifGroup,
        tnPsdIpGroup,
        tnPsdIp2Group,
        tnPsdIpConfigChangeNotifGroup,
        tnPsdIpConfigChangeNotif2Group,
        tnPsdIpCreDelNotifGroup,
        tnPsdIpCreDelNotif2Group,
        tnPsdIpStateChangeNotifGroup,
        tnPsdFaultGroup,
        tnPsdFaultChangeNotifGroup,
        tnPsdSysDiscoveryGroup,
        tnPsdOtnGroup,
        tnPsdOtn2Group,
        tnPsdOtnConfigChangeNotifGroup,
        tnPsdOtnConfigChangeNotif2Group,
        tnPsdCfmGroup,
        tnPsdCfmConfigChangeNotifGroup,
        tnPsdPmGroup
    }
    ::= { tnPsdMIBCompliance 2 }

tnPsdR200Compliance MODULE-COMPLIANCE
    STATUS         current
    DESCRIPTION    "PSD Release 2.0.0 compliance."
    MODULE
    MANDATORY-GROUPS {
        tnPsdSystemGroup,
        tnPsdShelfGroup,
        tnPsdSlotGroup,
        tnPsdCardGroup,
        tnPsdEquipmentEventGroup,
        tnPsdEquipmentChangeGroup,
        tnPsdSfpGroup,
        tnPsdSfp2Group,
        tnPsdDdmDataGroup,
        tnPsdInterfaceConfigChangeNotifGroup,
        tnPsdInterfaceStateChangeNotifGroup,
        tnPsdInterfaceEventNotifGroup,
        tnPsdLagGroup,
        tnPsdSnmpTrapDestGroup,
        tnPsdSnmpConfigChangeNotifGroup,
        tnPsdSnmpCreDelNotifGroup,
        tnPsdDatabaseGroup,
        tnPsdSoftwareGroup,
        tnPsdSoftwareEventGroup,
        tnPsdTimeGroup,
        tnPsdTimeConfigChangeNotifGroup,
        tnPsdIpGroup,
        tnPsdIp2Group,
        tnPsdIp3Group,
        tnPsdIpConfigChangeNotifGroup,
        tnPsdIpConfigChangeNotif2Group,
        tnPsdIpConfigChangeNotif3Group,
        tnPsdIpCreDelNotifGroup,
        tnPsdIpCreDelNotif2Group,
        tnPsdIpStateChangeNotifGroup,
        tnPsdFaultGroup,
        tnPsdFaultChangeNotifGroup,
        tnPsdSysDiscoveryGroup,
        tnPsdOtnGroup,
        tnPsdOtn2Group,
        tnPsdOtn3Group,
        tnPsdOtnConfigChangeNotifGroup,
        tnPsdOtnConfigChangeNotif2Group,
        tnPsdOtnConfigChangeNotif3Group,
        tnPsdCfmGroup,
        tnPsdCfmConfigChangeNotifGroup,
        tnPsdPmGroup
    }
    ::= { tnPsdMIBCompliance 3 }

tnPsdR300Compliance MODULE-COMPLIANCE
    STATUS         current
    DESCRIPTION    "PSD Release 3.0.0 compliance."
    MODULE
    MANDATORY-GROUPS {
        tnPsdSystemGroup,
        tnPsdShelfGroup,
        tnPsdSlotGroup,
        tnPsdCardGroup,
        tnPsdEquipmentEventGroup,
        tnPsdEquipmentChangeGroup,
        tnPsdSfpGroup,
        tnPsdSfp2Group,
        tnPsdDdmDataGroup,
        tnPsdInterfaceConfigChangeNotifGroup,
        tnPsdInterfaceStateChangeNotifGroup,
        tnPsdInterfaceEventNotifGroup,
        tnPsdLagGroup,
        tnPsdSnmpTrapDest2Group,
        tnPsdSnmpConfigChangeNotifGroup,
        tnPsdSnmpCreDelNotifGroup,
        tnPsdDatabaseGroup,
        tnPsdSoftwareGroup,
        tnPsdSoftwareEventGroup,
        tnPsdTimeGroup,
        tnPsdTimeConfigChangeNotifGroup,
        tnPsdIpGroup,
        tnPsdIp2Group,
        tnPsdIp3Group,
        tnPsdIpConfigChangeNotifGroup,
        tnPsdIpConfigChangeNotif2Group,
        tnPsdIpConfigChangeNotif3Group,
        tnPsdIpCreDelNotifGroup,
        tnPsdIpCreDelNotif2Group,
        tnPsdIpStateChangeNotifGroup,
        tnPsdFaultGroup,
        tnPsdFaultChangeNotifGroup,
        tnPsdSysDiscoveryGroup,
        tnPsdOtnGroup,
        tnPsdOtn2Group,
        tnPsdOtn3Group,
        tnPsdOtnConfigChangeNotifGroup,
        tnPsdOtnConfigChangeNotif2Group,
        tnPsdOtnConfigChangeNotif3Group,
        tnPsdCfmGroup,
        tnPsdCfmConfigChangeNotifGroup,
        tnPsdPmGroup
    }
    ::= { tnPsdMIBCompliance 4 }

tnPsdR400Compliance MODULE-COMPLIANCE
    STATUS         current
    DESCRIPTION    "PSD Release 4.0.0 compliance."
    MODULE
    MANDATORY-GROUPS {
        tnPsdSystemGroup,
        tnPsdShelfGroup,
        tnPsdSlotGroup,
        tnPsdCardGroup,
        tnPsdEquipmentEventGroup,
        tnPsdEquipmentChangeGroup,
        tnPsdSfpGroup,
        tnPsdSfp2Group,
        tnPsdDdmDataGroup,
        tnPsdInterfaceConfigChangeNotifGroup,
        tnPsdInterfaceStateChangeNotifGroup,
        tnPsdInterfaceEventNotifGroup,
        tnPsdLagGroup,
        tnPsdSnmpTrapDest2Group,
        tnPsdSnmpConfigChangeNotifGroup,
        tnPsdSnmpCreDelNotifGroup,
        tnPsdDatabaseGroup,
        tnPsdSoftwareGroup,
        tnPsdSoftwareEventGroup,
        tnPsdTimeGroup,
        tnPsdTimeConfigChangeNotifGroup,
        tnPsdIpGroup,
        tnPsdIp2Group,
        tnPsdIp3Group,
        tnPsdIpConfigChangeNotifGroup,
        tnPsdIpConfigChangeNotif2Group,
        tnPsdIpConfigChangeNotif3Group,
        tnPsdIpCreDelNotifGroup,
        tnPsdIpCreDelNotif2Group,
        tnPsdIpStateChangeNotifGroup,
        tnPsdFaultGroup,
        tnPsdFaultChangeNotifGroup,
        tnPsdSysDiscoveryGroup,
        tnPsdOtnGroup,
        tnPsdOtn2Group,
        tnPsdOtn3Group,
        tnPsdOtnConfigChangeNotifGroup,
        tnPsdOtnConfigChangeNotif2Group,
        tnPsdOtnConfigChangeNotif3Group,
        tnPsdCfmGroup,
        tnPsdCfmConfigChangeNotifGroup,
        tnPsdPmGroup,
        tnPsdPmEthStatsGroup,
        tnPsdPmEthStatsConfigChangeNotifGroup
    }
    ::= { tnPsdMIBCompliance 5 }

tnPsdR500Compliance MODULE-COMPLIANCE
    STATUS         current
    DESCRIPTION    "PSD Release 5.0.0 compliance."
    MODULE
    MANDATORY-GROUPS {
        tnPsdSystemGroup,
        tnPsdShelfGroup,
        tnPsdSlotGroup,
        tnPsdCardGroup,
        tnPsdEquipmentEventGroup,
        tnPsdEquipmentChangeGroup,
        tnPsdSfpGroup,
        tnPsdSfp2Group,
        tnPsdDdmDataGroup,
        tnPsdInterfaceConfigChangeNotifGroup,
        tnPsdInterfaceStateChangeNotifGroup,
        tnPsdInterfaceEventNotifGroup,
        tnPsdLagGroup,
        tnPsdAlsGroup,
        tnPsdAlsNotifGroup,
        tnPsdSnmpTrapDest2Group,
        tnPsdSnmpConfigChangeNotifGroup,
        tnPsdSnmpCreDelNotifGroup,
        tnPsdDatabaseGroup,
        tnPsdSoftwareGroup,
        tnPsdSoftwareEventGroup,
        tnPsdTimeGroup,
        tnPsdTimeConfigChangeNotifGroup,
        tnPsdIpGroup,
        tnPsdIp2Group,
        tnPsdIp3Group,
        tnPsdIpConfigChangeNotifGroup,
        tnPsdIpConfigChangeNotif2Group,
        tnPsdIpConfigChangeNotif3Group,
        tnPsdIpCreDelNotifGroup,
        tnPsdIpCreDelNotif2Group,
        tnPsdIpStateChangeNotifGroup,
        tnPsdFaultGroup,
        tnPsdFaultChangeNotifGroup,
        tnPsdSysDiscoveryGroup,
        tnPsdOtnGroup,
        tnPsdOtn2Group,
        tnPsdOtn3Group,
        tnPsdOtnConfigChangeNotifGroup,
        tnPsdOtnConfigChangeNotif2Group,
        tnPsdOtnConfigChangeNotif3Group,
        tnPsdCfmGroup,
        tnPsdCfmConfigChangeNotifGroup,
        tnPsdPmGroup,
        tnPsdPmEthStatsGroup,
        tnPsdPmEthStatsConfigChangeNotifGroup
    }
    ::= { tnPsdMIBCompliance 6 }

tnPsd2R500Compliance MODULE-COMPLIANCE
    STATUS         current
    DESCRIPTION    "PSD-2 Release 5.0.0 compliance. Contains specific
                    compliance groups for PSD-2 in addition to those
                    in tnPsdR500Compliance."
    MODULE
    MANDATORY-GROUPS {
        tnPsdPowerInputGroup,
        tnPsdPowerInputNotifGroup
    }
    ::= { tnPsdMIBCompliance 7 }

END
