
-- =================================================================
-- Copyright (C) 2021 by VENKO. All rights reserved.
-- Description:  The MIB module defines MIB objects which provides GPON and EPON management NMS interfaces.
-- Reference:
-- Version: V1.00
-- ================================================================

XPON-MIB DEFINITIONS ::= BEGIN
        IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Integer32, Gauge32, TimeTicks, Opaque  
                FROM SNMPv2-SMI
            DisplayString
                FROM SNMPv2-TC
	    OBJECT-GROUP, NOTIFICATION-GROUP
		FROM SNMPv2-CONF
            agentxObjects
                FROM AGENTX-MIB;


        xponMIB MODULE-IDENTITY
            LAST-UPDATED "202101250900Z"
            ORGANIZATION "Venko"
            CONTACT-INFO
                         "Venko Networks
                          Email: support@venkonetworks.com
                         "
            DESCRIPTION "The MIB module defines MIB objects which provides GPON and EPON management NMS interfaces."

--  Revision history  
            REVISION     "202101250900Z"
            DESCRIPTION "V1.00, Initial version."
            ::= { agentxObjects  30188 }

	xPonControlObjects 	OBJECT IDENTIFIER ::= { xponMIB 1 }
	oltPonTheradEntry 	OBJECT IDENTIFIER ::= { xPonControlObjects 1 }
	oltPonTables	     	OBJECT IDENTIFIER ::= { xPonControlObjects 2 }
	
	threadingMIBNotifications   OBJECT IDENTIFIER ::= { xponMIB 2 }
	threadingMIBConformance     OBJECT IDENTIFIER ::= { xponMIB 3 }


-- hwXponOltInfoEntry begin
	threadingString OBJECT-TYPE
    		SYNTAX      DisplayString
    		MAX-ACCESS  read-only
    		STATUS      current
    		DESCRIPTION
        		"A string. Curious about its contents?"
    		::= { oltPonTheradEntry 1 }

--  1.3.6.1.4.1.30188.800.3.9.3.4
        oltPonRowCount OBJECT-TYPE
            	SYNTAX Gauge32
            	MAX-ACCESS  read-write
            	STATUS  current
            	DESCRIPTION
                	"This object indicates number of Row in Table"
            	::= { oltPonTables 1 }


--  1.3.6.1.4.1.5875.800.3.9.3.4
	oltPonInfoTable OBJECT-TYPE
		SYNTAX SEQUENCE OF OltPonInfoEntry 
		MAX-ACCESS not-accessible
		STATUS current
		DESCRIPTION
			"Table of Olts"
		::= { oltPonTables 2 }

		
--  1.3.6.1.4.1.5875.800.3.9.3.4.1
	oltPonInfoEntry OBJECT-TYPE
		SYNTAX OltPonInfoEntry 
		MAX-ACCESS not-accessible
		STATUS current
		DESCRIPTION
			"Row Description"
		INDEX { oltPonIndex }
		::= { oltPonInfoTable 1 }
		
	OltPonInfoEntry ::=
		SEQUENCE { 
			oltPonIndex		DisplayString,
			oltPonManufacture	DisplayString,
			oltPonVendor		DisplayString,
			oltPonModel		DisplayString,
			oltPonSerialNumber	DisplayString,	
			oltPonFwVersion		DisplayString,
			oltPonMacAddress	DisplayString,
			oltPonLaserStatus	Integer32,
			oltPonEnable		Integer32,
			oltPonMode		DisplayString,
			oltPonOnlineTime	DisplayString,
			oltPonUptime		Unsigned32,
			oltPonResetCount	Integer32,
			oltPonOnuCount		Integer32,
			oltPonName		DisplayString,
			oltPonUptimeString	DisplayString,
			oltPonTempASIC Integer32,
			oltPonTempXCVR Integer32,
			oltPonTempLASER Integer32
		 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.1
	oltPonIndex OBJECT-TYPE
		SYNTAX DisplayString
		MAX-ACCESS  not-accessible
		STATUS current
		DESCRIPTION
			"Olt Index"
		::= { oltPonInfoEntry 1 }
	
--  1.3.6.1.4.1.5875.800.3.9.3.4.1.2
	oltPonManufacture OBJECT-TYPE
		SYNTAX DisplayString
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"OLT Manufacturer"
		::= { oltPonInfoEntry 2 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.3
        oltPonVendor OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "OLT Manufacturer"
                ::= { oltPonInfoEntry 3 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.4
	oltPonModel	OBJECT-TYPE
		SYNTAX DisplayString
		MAX-ACCESS read-write
		STATUS current
		DESCRIPTION
			"OLT Model"
		::= { oltPonInfoEntry 4 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.5
	oltPonSerialNumber	OBJECT-TYPE
		SYNTAX DisplayString
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"OLT Serial Number"
		::= { oltPonInfoEntry 5 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.6
	oltPonFwVersion OBJECT-TYPE
		SYNTAX DisplayString
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"OLT Firmware Version"
		::= { oltPonInfoEntry 6 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.7
	oltPonMacAddress	OBJECT-TYPE
		SYNTAX DisplayString
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"OLT MacAddress"
		::= { oltPonInfoEntry 7 }
		
--  1.3.6.1.4.1.5875.800.3.9.3.4.1.8
	oltPonLaserStatus	OBJECT-TYPE
		SYNTAX Integer32
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"OLT Laser Status"
		::= { oltPonInfoEntry 8 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.9
        oltPonEnable       OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "OLT Pon Mode"
                ::= { oltPonInfoEntry 9 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.10
        oltPonMode       OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "OLT Pon Mode"
                ::= { oltPonInfoEntry 10 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.11
        oltPonOnlineTime       OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "OLT Oline Time"
                ::= { oltPonInfoEntry 11 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.12
	oltPonUptime	OBJECT-TYPE
		SYNTAX Unsigned32
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"OLT Uptime in seconds"
		::= { oltPonInfoEntry 12 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.13
	oltPonResetCount	OBJECT-TYPE
		SYNTAX Integer32
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"OLT Reset Count"
		::= { oltPonInfoEntry 13 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.14
        oltPonOnuCount        OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "ONU Count"
                ::= { oltPonInfoEntry 14 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.15
        oltPonName      OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "OLT Name"
                ::= { oltPonInfoEntry 15 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.16
        oltPonUptimeString      OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "OLT Uptime"
                ::= { oltPonInfoEntry 16 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.17
	oltPonTempASIC	OBJECT-TYPE
		SYNTAX Integer32
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"OLT Asic Temperature"
		::= { oltPonInfoEntry 17 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.18
	oltPonTempXCVR	OBJECT-TYPE
		SYNTAX Integer32
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"OLT XCVR Temperature"
		::= { oltPonInfoEntry 18 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.19
	oltPonTempLASER	OBJECT-TYPE
		SYNTAX Integer32
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"OLT Laser Temperature"
		::= { oltPonInfoEntry 19 }




--  1.3.6.1.4.1.5875.800.3.9.3.3
        onuPonRowCount OBJECT-TYPE
		SYNTAX Gauge32
		MAX-ACCESS  read-write
		STATUS  current
		DESCRIPTION
			"ONU Row count"
		::= { oltPonTables 3 }

--  1.3.6.1.4.1.5875.800.3.9.3.3
	onuPonInfoTable OBJECT-TYPE
		SYNTAX SEQUENCE OF OnuPonInfoEntry 
		MAX-ACCESS not-accessible
		STATUS current
		DESCRIPTION
			"ONU Table Info"
		::= { oltPonTables 4 }

		
--  1.3.6.1.4.1.5875.800.3.9.3.3.1
	onuPonInfoEntry OBJECT-TYPE
		SYNTAX OnuPonInfoEntry 
		MAX-ACCESS not-accessible
		STATUS current
		DESCRIPTION
			"Row Description"
		INDEX { oltPonIndex, onuPonId }
		::= { onuPonInfoTable 1 }

		
	OnuPonInfoEntry ::=
		SEQUENCE { 
			onuPonId		DisplayString,
			oltPonId		DisplayString,
                        onuPonVendor		DisplayString,
			onuPonSerialNumber	DisplayString,
                        onuPonFWVersion         DisplayString,
                        onuPonEquipmentID       DisplayString,
                        onuPonStatus		DisplayString,
			onuOltPonTXOpticalPower	DisplayString,
			onuOltPonRXOpticalPower	DisplayString,
			onuPonTXOpticalPower	DisplayString,
			onuPonRXOpticalPower	DisplayString,
                        onuOltPonRXPreFECBER    DisplayString,
                        onuOltPonRXPostFECBER   DisplayString,
			onuPonRXPreFECBER	DisplayString,
			onuPonRXPostFECBER	DisplayString,
			onuPonServiceName       DisplayString,
			onuPonTXFrames		Integer32,
			onuPonRXFrames		Integer32,
			onuPonTXOctets		Integer32,
			onuPonRXOctets		Integer32,
			onuPonTXRate		Integer32,
			onuPonRXRate		Integer32,
			onuPonName		DisplayString,
			onuPonIdString          DisplayString
		 }

--  1.3.6.1.4.1.5875.800.3.9.3.3.1.1
	onuPonId OBJECT-TYPE
		SYNTAX DisplayString
		MAX-ACCESS  not-accessible
		STATUS current
		DESCRIPTION
			"ONU Index"
		::= { onuPonInfoEntry 1 }

--  1.3.6.1.4.1.5875.800.3.9.3.3.1.1
	oltPonId OBJECT-TYPE
		SYNTAX DisplayString
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"Olt Id"
		::= { onuPonInfoEntry 2 }

--  1.3.6.1.4.1.5875.800.3.9.3.3.1.2
        onuPonVendor OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                        "ONU Vendor"
                ::= { onuPonInfoEntry 3 }

--  1.3.6.1.4.1.5875.800.3.9.3.3.1.2
	onuPonSerialNumber OBJECT-TYPE
		SYNTAX DisplayString
		MAX-ACCESS read-write
		STATUS current
		DESCRIPTION
			"ONU Serial Number"
		::= { onuPonInfoEntry 4 }

--  1.3.6.1.4.1.5875.800.3.9.3.3.1.2
        onuPonFWVersion OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                        "ONU FW Version"
                ::= { onuPonInfoEntry 5 }

--  1.3.6.1.4.1.5875.800.3.9.3.3.1.2
        onuPonEquipmentID OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                        "ONU Equipment ID"
                ::= { onuPonInfoEntry 6 }

--  1.3.6.1.4.1.5875.800.3.9.3.3.1.2
        onuPonStatus OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                        "ONU Status"
                ::= { onuPonInfoEntry 7 }
		
--  1.3.6.1.4.1.5875.800.3.9.3.3.1.4
	onuOltPonTXOpticalPower OBJECT-TYPE
		SYNTAX Opaque
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"OLT Tx Optical Level"
		::= { onuPonInfoEntry 8 }
	
--  1.3.6.1.4.1.5875.800.3.9.3.3.1.5
	onuOltPonRXOpticalPower OBJECT-TYPE
		SYNTAX DisplayString
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"OLT RX Optical Level"
		::= { onuPonInfoEntry 9 }

		
--  1.3.6.1.4.1.5875.800.3.9.3.3.1.8
	onuPonTXOpticalPower OBJECT-TYPE
		SYNTAX DisplayString
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"ONU TX Optical Level"
		::= { onuPonInfoEntry 10 }

		
--  1.3.6.1.4.1.5875.800.3.9.3.3.1.9
	onuPonRXOpticalPower OBJECT-TYPE
		SYNTAX DisplayString
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"ONU RX Optical Level"
		::= { onuPonInfoEntry 11 }

--  1.3.6.1.4.1.5875.800.3.9.3.3.1.6
        onuOltPonRXPreFECBER OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "OLT RX Pre FEC BER"
                ::= { onuPonInfoEntry 12 }


--  1.3.6.1.4.1.5875.800.3.9.3.3.1.7
        onuOltPonRXPostFECBER    OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "OLT RX Post FEC BER"
                ::= { onuPonInfoEntry 13 }


--  1.3.6.1.4.1.5875.800.3.9.3.3.1.10
	onuPonRXPreFECBER OBJECT-TYPE
		SYNTAX DisplayString
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"ONU RX Pre FEC BER"
		::= { onuPonInfoEntry 14 }

		
--  1.3.6.1.4.1.5875.800.3.9.3.3.1.11
	onuPonRXPostFECBER OBJECT-TYPE
		SYNTAX DisplayString
		MAX-ACCESS read-only
		STATUS current
		DESCRIPTION
			"ONU RX Post FEC BER"
		::= { onuPonInfoEntry 15 }

--  1.3.6.1.4.1.5875.800.3.9.3.3.1.11
        onuPonServiceName OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "ONU Service Name"
                ::= { onuPonInfoEntry 16 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.13
        onuPonTXFrames	OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "OLT Tx Frames"
                ::= { onuPonInfoEntry 17 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.13
        onuPonRXFrames	OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "ONU Rx Frames"
                ::= { onuPonInfoEntry 18 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.13
        onuPonTXOctets	OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "ONU Tx Octets"
                ::= { onuPonInfoEntry 19 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.13
        onuPonRXOctets	OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "ONU Tx Octets"
                ::= { onuPonInfoEntry 20 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.13
        onuPonTXRate	OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "ONU Tx Rate"
                ::= { onuPonInfoEntry 21 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.13
        onuPonRXRate	OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "ONU RX Rate"
                ::= { onuPonInfoEntry 22 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.23
        onuPonName    OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "ONU Name"
                ::= { onuPonInfoEntry 23 }

--  1.3.6.1.4.1.5875.800.3.9.3.4.1.24
	onuPonIdString	OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "ONU ID String"
                ::= { onuPonInfoEntry 24 }


-- hwXponOltInfoEntry end

------------------------------------------------------------------------
-- Notifications
------------------------------------------------------------------------

events      OBJECT IDENTIFIER ::= { threadingMIBNotifications 0 }
operation   OBJECT IDENTIFIER ::= { threadingMIBNotifications 1 }

threadingStringChange NOTIFICATION-TYPE
    OBJECTS {
        threadingString
    }
    STATUS  current
    DESCRIPTION
        "A threadingStringChange notification signifies that there has
        been a change to the value of threadingString."
    ::= { events 1 }

threadingStringChangeNotificationsEnabled OBJECT-TYPE
    SYNTAX      ThreadingNotificationStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Controls whether threadingStringChange notifications are
        enabled or disabled."
    ::= { operation 1 }

------------------------------------------------------------------------
-- Conformance
------------------------------------------------------------------------

threadingMIBGroups      OBJECT IDENTIFIER ::= { threadingMIBConformance 1 }

threadingMIBScalarsGroup OBJECT-GROUP
    OBJECTS {
        threadingString,
        threadingStringChangeNotificationsEnabled
    }
    STATUS  current
    DESCRIPTION
        "A collection of objects related to threadingScalars."
    ::= { threadingMIBGroups 1 }

threadingMIBScalarsNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        threadingStringChange
    }
    STATUS  current
    DESCRIPTION
        "The notifications which indicate specific changes in
        threadingScalars."
    ::= { threadingMIBGroups 2 }


END
