PDN-SFP-MIB DEFINITIONS ::= BEGIN

-------------------------------------------------------------------
--  Copyright (C) 2003, Paradyne. All rights reserved.
--
--  This MIB Enables an NMS to extract and Display information associated
--  with the SFP modules. 
-------------------------------------------------------------------

IMPORTS
    Integer32,
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    DisplayString, DateAndTime
        FROM SNMPv2-TC
    ifIndex
       FROM IF-MIB
     pdn-ietf-drafts
       FROM PDN-HEADER-MIB;


pdnSfp  MODULE-IDENTITY
        LAST-UPDATED "200304230000Z"
        ORGANIZATION "Paradyne Corp MIB Working Group"
        CONTACT-INFO "Paradyne Networks, Inc.
              8545, 126th Ave. N.,
              Largo, FL 33779
              www.paradyne.com

             General Comments to:
                mibwg_team@paradyne.com

             Editors: Prakash Easwar"

        DESCRIPTION 
              "SFP is short for Small Form-Factor Pluggable (SFP) Transceiver. 
              They  plug into an SFP Compaitble Port and allow for compact
              Hardware design
              SFP modules contain an EEPROM containing information about the
              part. This MIB defines objects which will allow an NMS to extract
              the information from the SFP modules in a MIB format.
              The MIB objects defined in this MIB are based on the 
              **Small Form Factor Pluggable (SFP) Transceiver MultiSource Agreement(MSA)**
              Since SFP MODULES are an extension of the port itself, the ifIndex for a
              sfp Compatible Port will be used to access information from these modules.
              The Entity MIB (RFC 2737) Should Contain Entries for Each SFP Module.
              SFP to Port to PortIfIndex can be acheived via the Entity MIB (RFC2737)"
       REVISION "200304230000Z"
            DESCRIPTION "Added new enum to sfpEncoding MIB Object"
       REVISION "200302010000Z"
            DESCRIPTION "Initial MIB Creation"
   
         ::= { pdn-ietf-drafts 3 }

sfpMIBObjects   OBJECT IDENTIFIER ::= { pdnSfp 1 }
sfpMIBNotifications OBJECT IDENTIFIER ::= { pdnSfp 2 }
sfpMIBConformance  OBJECT IDENTIFIER ::= { pdnSfp 3 }

--
-- START OF sfp mib definitions
--

sfpCompatibleInterfaceCount OBJECT-TYPE
     SYNTAX	Integer32
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The number of physical ports in the system which are sfp compatible"
     ::= { sfpMIBObjects 1 }

sfpInfoTable OBJECT-TYPE
       SYNTAX SEQUENCE OF SfpInfoEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
         "The sfp information table."
       ::= { sfpMIBObjects 2 }

sfpInfoEntry OBJECT-TYPE
     SYNTAX	SfpInfoEntry
     MAX-ACCESS not-accessible
     STATUS current
     DESCRIPTION
       "An entry in the SFP Information Table"
     INDEX { ifIndex }
     ::= { sfpInfoTable 1 }

SfpInfoEntry ::= SEQUENCE {
       sfpIdentifier INTEGER,
       sfpVendorSpecificIdentifier OCTET STRING,
       sfpExtIdentifier INTEGER,
       sfpConnector INTEGER, 
       sfpVendorSpecificConnector OCTET STRING,
       sfpTransceiverComplianceCodes BITS,
       sfpFibreChannelLinkLength BITS,
       sfpFibreChannelTransmitterTechnology BITS,
       sfpFibreChannelTransmissionMedia BITS,
       sfpFibreChannelTransmissionSpeed BITS,
       sfpEncoding INTEGER,
       sfpBRNominal100Mbps Integer32,
       sfpLength9MiKm Integer32,
       sfpLength9Mi100M Integer32,
       sfpLength50Mi10M Integer32,
       sfpLength62Pt5Mi10M Integer32,
       sfpLengthCopperM Integer32,
       sfpVendorName DisplayString,
       sfpVendorOUI  OCTET STRING,
       sfpVendorPN DisplayString,
       sfpVendorSN DisplayString,
       sfpVendorRev DisplayString,
       sfpLaserWavelength Integer32,
       sfpOptions BITS,
       sfpBRMin Integer32,
       sfpBRMax Integer32,
       sfpVendorDate DateAndTime,
       sfpVendorSpecificLotCode OCTET STRING,
       sfpVendorSpecificData OCTET STRING,
       sfpStatusCurrent  BITS
     }

sfpIdentifier OBJECT-TYPE
     SYNTAX	INTEGER {
              unknown(1),
              gbic(2),
              fixed(3),
              sfp(4),
              other(5)
            }
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The type of serial transceiver
                 unknown -- Unknown or unspecified
                 gbic -- GBIC
                 fixed -- Module/connector soldered to motherboard
                 sfp -- SFP transceiver
                 other -- Vendor specific"
     ::= { sfpInfoEntry 1 }

sfpVendorSpecificIdentifier OBJECT-TYPE
     SYNTAX	 OCTET STRING (SIZE(1))
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The vendor specific identifier. This Object will be set to
        value other than {0,0} only if sfpIdentifier returns a value of
        other"
     ::= { sfpInfoEntry 2 }

sfpExtIdentifier OBJECT-TYPE
     SYNTAX	INTEGER {
              unknown(1),
              simd(2)
            }
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The type of serial transceiver
                 unknown -- Unknown or unspecified
                 simd -- Serial ID module Definition"
     ::= { sfpInfoEntry 3 }

sfpConnector OBJECT-TYPE
     SYNTAX	INTEGER {
              unknown(1),
              sc(2),
              fcscc1(3),
              fcscc2(4),
              bnctnc(5),
              fcch(6),
              fiberJack(7),
              lc(8),
              mtrj(9),
              mu(10),
              sg(11),
              opticalPigtail(12),
              hssdcii(13),
              copperPigtail(14),
              other(15)
            }
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The type of external connector provided
                 unknown -- Unknown or unspecified
                 sc -- SC
                 fcscc1 -- Fibre Channel Style 1 copper connector
                 fcscc2 -- Fibre Channel Style 2 copper connector
                 bnctnc -- BNC-TNC
                 fcch -- Fibre Channel coaxial headers
                 fiberJack -- Fiber Jack
                 lc -- LC
                 mtrj -- MT-RJ
                 mu -- MU
                 sg -- SG
                 opticalPigtail -- Optical Pigtail
                 hssdcii -- HSSDC II
                 copperPigtail -- Copper Pigtail
                 other -- Vendor specific"
     ::= { sfpInfoEntry 4 }

sfpVendorSpecificConnector OBJECT-TYPE
     SYNTAX	 OCTET STRING (SIZE(1))
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The type of vendor specific Connector. This Object will be set to
        value other than {0,0} only if sfpConnector returns a value of
        other"
     ::= { sfpInfoEntry 5 }

sfpTransceiverComplianceCodes OBJECT-TYPE
     SYNTAX	BITS {
              unknown(0),
              oc48LongReach1(1),
              oc48LongReach2(2),
              oc48LongReach3(3),
              oc48IntermediateReach1(4),
              oc48IntermediateReach2(5),
              oc48ShortReach(6),
              oc12SMLongReach1(7),
              oc12SMLongReach2(8),
              oc12SMLongReach3(9),
              oc12SMIntermediateReach1(10),
              oc12SMIntermediateReach2(11),
              oc12MMShortReach(12),
              oc3SMLongReach1(13),
              oc3SMLongReach2(14),
              oc3SMLongReach3(15),
              oc3SMIntermediateReach1(16),
              oc3SMIntermediateReach2(17),
              oc3MMShortReach(18),
              base1000T(19),
              base1000CX(20),
              base1000LX(21),
              base1000SX(22),
              sx1x(23),
              lx1x(24),
              copperActive1x(25),
              copperPassive1x(26)
            }
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The sfp transceiver codes for sonet
                 unknown -- Unknown

                 -- SONET Compliance Codes --

                 oc48LongReach1  -- OC-48, long reach, SONET LR-1 Compliant
                 oc48LongReach2  -- OC-48, long reach, SONET LR-2 Compliant
                 oc48LongReach3  -- OC-48, long reach, SONET LR-3 Compliant
                 oc48IntermediateReach1 -- OC-48, intermediate reach, SONET IR-1  Compliant
                 oc48IntermediateReach2 -- OC-48, intermediate reach, SONET IR-2 Compliant
                 oc48ShortReach -- OC-48 short reach, SONET SR Compliant
                 oc12SMLongReach1  -- OC-12, single mode long reach, SONET LR-1 Compliant
                 oc12SMLongReach2  -- OC-12, single mode long reach, SONET LR-2 Compliant
                 oc12SMLongReach3  -- OC-12, single mode long reach, SONET LR-3 Compliant
                 oc12SMIntermediateReach1 -- OC-12, songle mode intermediate reach, SONET IR-1  Compliant
                 oc12SMIntermediateReach2 -- OC-12, songle mode intermediate reach, SONET IR-2 Compliant
                 oc12MMShortReach -- OC-12 multi-mode short reach, SONET SR Compliant
                 oc3SMLongReach1 -- OC-3, single mode long reach, SONET LR-1 Compliant
                 oc3SMLongReach2 -- OC-3, single mode long reach, SONET LR-2 Compliant
                 oc3SMLongReach3 -- OC-3, single mode long reach, SONET LR-3 Compliant
                 oc3SMIntermediateReach1 -- OC-3, songle mode intermediate reach, SONET IR-1  Compliant
                 oc3SMIntermediateReach2 -- OC-3, songle mode intermediate reach, SONET IR-2 Compliant
                 oc3MMShortReach -- OC-3 multi-mode short reach, SONET SR Compliant

                 -- Gigabit Ethernet Compliance Codes --

                 base1000T -- 1000BASE-T 
                 base1000CX -- 1000BASE-CX
                 base1000LX -- 1000BASE-LX
                 base1000SX -- 1000BASE-SX

                 -- Infiniband Compliance Codes --
                 
                 lx1x -- 1X LX
                 sx1x -- 1X SX
                 copperActive1x -- 1X Copper Active
                 copperPassive1x -- 1X Copper Passive"
     ::= { sfpInfoEntry 6 }

sfpFibreChannelLinkLength OBJECT-TYPE
     SYNTAX	BITS {
			  unknown(0),
              veryLong(1),
              short(2),
              intermediate(3),
              long(4)
            }
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The link length for fibre
                 unknown -- Unknown
                 veryLong -- very long distance
                 short -- short distance
                 intermediate -- intermediate distance
                 long -- long distance
                 notFibre -- The transmission is media is not Fibre"
     ::= { sfpInfoEntry 7 }

sfpFibreChannelTransmitterTechnology OBJECT-TYPE
     SYNTAX	BITS {
			  unknown(0),
              lc(1),
              el1(2),
              el2(3),
              sn(4),
              sl(5),
              ll(6)
            }
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The fibre channel transmitter technology
                 unknown -- Unknown
                 lc -- Longwave Laser
                 el1 -- Electrical inter-enclosure
                 el2 -- Electrical intra-enclosure
                 sn -- Shortwave laser w/o OFC
                 sl -- Shortwave laser w/ OFC
                 ll -- Longwave Laser"
     ::= { sfpInfoEntry 8 }

sfpFibreChannelTransmissionMedia OBJECT-TYPE
     SYNTAX	BITS {
              unknown(0),
              tw(1),
              tp(2),
              mi(3),
              tv(4),
              m6(5),
              m5(6),
              sm(7)
            }
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The fibre channel transmitter technology
                 unknown -- Unknown
                 tw -- Twin Axial Pair
                 tp -- Shielded Twisted Pair
                 mi -- Miniature Coax
                 tv -- Video Coax
                 m6 -- Multi-mode, 62.5mi
                 m5 -- Multi-mode, 50mi
                 sm -- Single Mode"
     ::= { sfpInfoEntry 9 }

sfpFibreChannelTransmissionSpeed OBJECT-TYPE
     SYNTAX	BITS {
			  unknown(0),
              mbps400(1),
              mbps200(2),
              mbps100(3)
            }
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The fibre channel transmission speed
                 unknown -- Unknown
                 mbps400 -- Twin Axial Pair
                 mbps200 -- Shielded Twisted Pair
                 mbps100 -- Miniature Coax"
     ::= { sfpInfoEntry 10 }

sfpEncoding OBJECT-TYPE
     SYNTAX	INTEGER {
              unknown(1),
              b8b10(2),
              b4b5(3),
              nrz(4),
              manchester(5),
              sonetScrambled(6)
            }
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The type of serial encoding that is the nominal
        design target of the particular SFP transceiver
                 unknown -- Unknown or unspecified
                 b8b10 -- 8B10B
                 b4b5 -- 4B5B
                 nrz -- NRZ
                 manchester -- Manchester,
                 sonetScrambled -- SONET Scrambled"
     ::= { sfpInfoEntry 11 }

sfpBRNominal100Mbps OBJECT-TYPE
     SYNTAX	Integer32
	 UNITS  "100 Megabits per second (Mbps)"
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The nominal bit rate(BR, nominal) which is specified in unitd of 100mbps, 
        rounded off to the nearest 100 Mbps. The bit rate includes those bits necessary 
        to encode and delimit the signal as well as those bits carrying data information. 
        A value of 0 indicates that the bit rate is not specified and must be determined 
        from the tranceiver technology. The actual information transfer rate will depend 
        on the encoding of the data, as defined by the encoding value."
     ::= { sfpInfoEntry 12 }

sfpLength9MiKm OBJECT-TYPE
     SYNTAX	Integer32
	 UNITS  "Kilometer(Km)"
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The link length that is supported by the sfp transceiver while operating 
        in compliance with applicable standards using single mode fibre (9 micron).
        The value is in units of kilometers. A value of 255 means that the sfp 
        transceiver supports a link length greater than 254 Km.  A value of 0 
        means that the transceiver does not support single mode fibre (9 micron) 
        or that the length information must be determined from the transceiver technology"
     ::= { sfpInfoEntry 13 }

sfpLength9Mi100M  OBJECT-TYPE
     SYNTAX	Integer32
	 UNITS  "100 Meters(M)"
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The link length that is supported by the sfp transceiver while operating in 
        compliance with applicable standards using single mode fibre (9 micron).The 
        value is in units of 100 meters. A value of 255 means that the sfp transceiver 
        supports a link length greater than 25.4 Km.  A value of 0 means that the 
        transceiver does not support single mode fibre (9 micron) or that the length 
        information must be determined from the transceiver technology"
     ::= { sfpInfoEntry 14 }

sfpLength50Mi10M  OBJECT-TYPE
     SYNTAX	Integer32
	 UNITS  "10 Meters(M)"
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The link length that is supported by the sfp transceiver while operating in 
        compliance with applicable standards using multi-mode fibre (50 micron).
        The value is in units of 10 meters. A value of 255 means that the sfp transceiver 
        supports a link length greater than 2.54 Km.  A value of 0 means that the 
        transceiver does not support multi-mode fibre (50 micron) or that the length 
        information must be determined from the transceiver technology"
     ::= { sfpInfoEntry 15 }

sfpLength62Pt5Mi10M  OBJECT-TYPE
     SYNTAX	Integer32
	 UNITS  "10 Meters(M)"
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The link length that is supported by the sfp transceiver while operating in 
        compliance with applicable standards using multi-mode fibre (62.5 micron).
        The value is in units of 10 meters. A value of 255 means that the sfp transceiver 
        supports a link length greater than 2.54 Km.  A value of 0 means that the 
        transceiver does not support multi-mode fibre (62.5 micron) or that the length 
        information must be determined from the transceiver technology"
     ::= { sfpInfoEntry 16 }

sfpLengthCopperM OBJECT-TYPE
     SYNTAX	Integer32
	 UNITS  "1 Meter(M)"
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The link length that is supported by the sfp transceiver while operating 
        in compliance with applicable standards using copper cable. The value is in 
        units of 1 meters. A value of 255 means that the sfp transceiver supports a 
        link length greater than 254 meters. A value of 0 means that the transceiver 
        does not support copper cables or that the length information must be 
        determined from the transceiver technology"
     ::= { sfpInfoEntry 17 }

sfpVendorName OBJECT-TYPE
     SYNTAX	DisplayString (SIZE(0..16))
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The sfp vendor name which is essentially the full name of the corporation, 
        a commonly accepted abbreviation of the name of the corporation, the SCSI 
        company code for the corporation, or the stock exchange code for the corporation."
     ::= { sfpInfoEntry 18 }

sfpVendorOUI OBJECT-TYPE
     SYNTAX	 OCTET STRING (SIZE(3))
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The sfp vendor organizationally unique identifier field (vendor OUI) that 
        contains the IEEE company identifier for the vendor. A value of all zero in 
        the 3 octet field indicates that the vendor OUI is unspecified"
     ::= { sfpInfoEntry 19 }

sfpVendorPN OBJECT-TYPE
     SYNTAX	DisplayString (SIZE(0..16))
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The sfp vendor part number (Vendor PN) or product name if the Vendor PN is 
        unspecified, the null string {0, 0} will be returned"
     ::= { sfpInfoEntry 20 }

sfpVendorSN OBJECT-TYPE
     SYNTAX	DisplayString (SIZE(0..16))
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The sfp vendor serial number (Vendor SN) if the Vendor SN is unspecified, 
        the null string {0, 0} will be returned"
     ::= { sfpInfoEntry 21 }

sfpVendorRev OBJECT-TYPE
     SYNTAX	DisplayString (SIZE(0..4))
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The sfp vendor product revision number (Vendor Rev) 
        if the Vendor Rev is unspecified, the null string {0, 0} will be 
        returned"
     ::= { sfpInfoEntry 22 }

sfpLaserWavelength OBJECT-TYPE
     SYNTAX	Integer32
     UNITS  "Nano Meter(NM)"
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "Nominal Transmitter output wavelength at room temperature."
     ::= { sfpInfoEntry 23 }

sfpOptions OBJECT-TYPE
     SYNTAX	BITS {
              unknown(0),
              rateSelect(1),
              txDisable(2),
              txFault(3),
              losNormal(5),
              losInverted(4)
            }
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The options implemented in the SFP transceiver
                 unknown -- Unknown
                 rateSelect -- RATE_SELECT is implemented. 
                               If this bit is not set, no control of pin is required.
                               If this bit is set, then active control if the rate
                               select pin is required.
                               In Both cases, compliance with mlutiple rate standards
                               should be determined by the following objects 
                                    sfpTransceiverComplianceCodes
                                    sfpFibreChannelTransmissionSpeed
                 txDisable -- TX_DISABLE is impelmented and disables the serial output
                 txFault -- TX_FAULT is implemented.
                 losNormal -- loss of signal implemented
                                los high indicates the received optical power is below the 
                                worst case receiver sensitivity (as defined by the standard
                                in use.
                                los low indicates normal operation
                 losInverted -- loss of signal implemented
                                los low indicates the received optical power is below the 
                                worst case receiver sensitivity (as defined by the standard
                                in use.
                                los high indicates normal operation"
     ::= { sfpInfoEntry 24 }
       
sfpBRMin OBJECT-TYPE
     SYNTAX	Integer32
	 UNITS  "percent below sfpBRNominal"
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The lower bit rate limit at which the SFP transceiver will meet its
        specifications (BR, min) is specified in units of 1% below the nominal
        bit rate. A value of zero indicates that this field is not specified."
     ::= { sfpInfoEntry 25 }

sfpBRMax OBJECT-TYPE
     SYNTAX	Integer32
	 UNITS  "percent above sfpBRNominal"
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The upper bit rate limit at which the SFP transceiver will meet its
        specifications (BR, max) is specified in units of 1% above the nominal
        bit rate. A value of zero indicates that this field is not specified."
     ::= { sfpInfoEntry 26 }

sfpVendorDate OBJECT-TYPE
     SYNTAX	DateAndTime
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The Vendors date"
     ::= { sfpInfoEntry 27 }

sfpVendorSpecificLotCode OBJECT-TYPE
     SYNTAX	OCTET STRING (SIZE(2))
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The Vendor Specific Lot code. A value of {0, 0} indicates that
        the lot code is unspecified"
     ::= { sfpInfoEntry 28 }

sfpVendorSpecificData OBJECT-TYPE
     SYNTAX	OCTET STRING (SIZE(0..32))
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "Vendor Specific Information which can be read from the SFP transceiver"
     ::= { sfpInfoEntry 29 }

sfpStatusCurrent OBJECT-TYPE
     SYNTAX	BITS {
			  unknown(0),
              notInstalled(1),
              installed(2),
              faulty(3),
              operational(4),
              enabled(5),
              disabled(6),
              inValidCCBase(7),
              inValidCCExt(8)
            }
     MAX-ACCESS read-only
     STATUS	current
     DESCRIPTION
       "The current state of the sfp transceiver
                 unknown -- Unknown
                 notInstalled -- the SFP transceiver is not installed
                 installed -- the sfp transceiver has been installed
                 faulty -- the sfp transceiver is faulty
                 operational -- the sfp transceiver is working properly
                 enabled -- the sfp transceiver has been enabled
                 disabled -- the sfp transceiver has been diabled,
                 invalidCCBase -- indicates that the first 64 bytes
                                  of serial information in the SFP 
                                  transceiver is invalid. The check is done by
                                  comparing the 64-th byte with the sum of the contents
                                  of the first 63 bytes (bytes 0 to 62, inclusive).
                 invalidCCExt -- indicates that the first 32 bytes of the extended
                                  serial information in the SFP tranceiver is invalid.
                                  The check is done by comparing theu 95-th byte with the
                                  sum of the contents of the first 32 bytes 
                                  (bytes 64 to 94, inclusive)."
     ::= { sfpInfoEntry 30 }

sfpCommandTable OBJECT-TYPE
       SYNTAX SEQUENCE OF SfpCommandEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
         "The sfp command table."
       ::= { sfpMIBObjects 3 }

sfpCommandEntry OBJECT-TYPE
     SYNTAX	SfpCommandEntry
     MAX-ACCESS not-accessible
     STATUS current
     DESCRIPTION
       "An entry in the SFP Command Table"
     INDEX { ifIndex }
     ::= { sfpCommandTable 1 }

SfpCommandEntry ::= SEQUENCE {
       sfpCommand INTEGER
    }

sfpCommand OBJECT-TYPE
     SYNTAX INTEGER {
                 noCmd(1),
                 enable(2),
                 disable(3),
                 reset(4)
     }
     MAX-ACCESS read-write
     STATUS	current
     DESCRIPTION
       "This Object specifies the command to be applied to the sfp transceiver
        associated with a physical interface
                 noCmd -- no command has been issued to this sfp device
                 enable -- enables the sfp device 
                 disable -- disables the sfp device 
                 reset -- resets the sfp device
        when read the last command issued to the sfp device will be returned or
        noCmd will be returned if a command has not been issued yet"
     ::= { sfpCommandEntry 1 }

sfpNotificationEnable OBJECT-TYPE
     SYNTAX	BITS {
             faulty(0),
             operational(1),
             inserted(2),
             removed(3)
     }
     MAX-ACCESS read-write
     STATUS	current
     DESCRIPTION
       "Provides the ability to enable and disable notifications defined
        in this mib
             faulty
                 indicates sfpEventFaulty notifications should be generated 
                 when the sfp is detected as being faulty
             operational
                 indicates sfpEventOperational notifications should be generated 
                 when the sfp is detected as being working properly
             inserted
                 indicates sfpEventInserted notifications should be generated when 
                 the sfp is insreted into a physical port
             removed
                 indicates sfpEventRemoved notifications should be generated when the 
                 sfp is removed from a physical port"
     DEFVAL { { } }
     ::= { sfpMIBObjects 4 }

------------------------------------------
-- SFP Notifications
------------------------------------------

sfpNotificationsPrefix OBJECT IDENTIFIER
     ::= { sfpMIBNotifications 0 }


sfpEventFaulty NOTIFICATION-TYPE
     OBJECTS { sfpStatusCurrent }
     STATUS current
     DESCRIPTION
     "The sfpEventFaulty notification is sent when the sfp 
      associated with a physical port is detected as being faulty"
     ::= { sfpNotificationsPrefix  1 }

sfpEventOperational NOTIFICATION-TYPE
     OBJECTS { sfpStatusCurrent }
     STATUS current
     DESCRIPTION
     "The sfpEventOperational notification is sent when the sfp 
      associated with a physical port is detected as being working 
      normally"
     ::= { sfpNotificationsPrefix  2 }

sfpEventInserted NOTIFICATION-TYPE
     OBJECTS { sfpStatusCurrent }
     STATUS current
     DESCRIPTION
     "The sfpEventInserted notification is sent when the sfp is inserted 
      into a physical port"
     ::= { sfpNotificationsPrefix  3 }

sfpEventRemoved NOTIFICATION-TYPE
     OBJECTS { sfpStatusCurrent }
     STATUS current
     DESCRIPTION
     "The sfpEventRemoved notification is sent when the sfp is removed 
      from a physical port"
     ::= { sfpNotificationsPrefix  4 }

------------------------------------------
-- Conformance information
------------------------------------------

sfpGroups OBJECT IDENTIFIER ::= { sfpMIBConformance 1 }
sfpCompliances OBJECT IDENTIFIER ::= { sfpMIBConformance 2 }

sfpReadWriteCompliance MODULE-COMPLIANCE
     STATUS  current
     DESCRIPTION
         "Compliance statement configuring the sfp device."
     MODULE

     GROUP sfpCommandGroup
     DESCRIPTION
       "Implementation of this group is optional for all
        sfp implmentations"
     
     GROUP sfpNotificationsGroup
     DESCRIPTION
       "Implementation of this group is optional for all
        sfp implmentations"
 ::= { sfpCompliances 1 }

sfpReadOnlyCompliance MODULE-COMPLIANCE
     STATUS  current
     DESCRIPTION
         "Compliance statement reading the SFP information."
     MODULE
     MANDATORY-GROUPS { sfpMIBObjectsGroup, sfpInformationGroup }
 ::= { sfpCompliances 2 }

sfpNotificationCompliance MODULE-COMPLIANCE
     STATUS  current
     DESCRIPTION
         "Compliance statement sfp device notifications."
     MODULE

     GROUP sfpEventGroup
     DESCRIPTION
       "Implementation of this group is optional for all
        sfp implmentations"
 ::= { sfpCompliances 3 }

--
-- Units of Conformance
--

sfpMIBObjectsGroup OBJECT-GROUP
    OBJECTS {
       sfpCompatibleInterfaceCount
    }
    STATUS  current
    DESCRIPTION
      "A collection of scalar objects in section sfpMIBObjects 
       providing information about sfp compatible intefaces"
    ::= { sfpGroups 1 }

sfpInformationGroup OBJECT-GROUP
   OBJECTS {
       sfpIdentifier,
       sfpVendorSpecificIdentifier,
       sfpExtIdentifier,
       sfpConnector, 
       sfpVendorSpecificConnector,
       sfpTransceiverComplianceCodes,
       sfpFibreChannelLinkLength,
       sfpFibreChannelTransmitterTechnology,
       sfpFibreChannelTransmissionMedia,
       sfpFibreChannelTransmissionSpeed,
       sfpEncoding,
       sfpBRNominal100Mbps,
       sfpLength9MiKm,
       sfpLength9Mi100M,
       sfpLength50Mi10M,
       sfpLength62Pt5Mi10M,
       sfpLengthCopperM,
       sfpVendorName,
       sfpVendorOUI,
       sfpVendorPN,
       sfpVendorSN,
       sfpVendorRev,
       sfpLaserWavelength,
       sfpOptions,
       sfpBRMin,
       sfpBRMax,
       sfpVendorDate,
       sfpVendorSpecificLotCode,
       sfpVendorSpecificData,
       sfpStatusCurrent
    }
    STATUS  current
    DESCRIPTION
      "A collection of sfpInfoTable objects providing
       information applicable to sfp transceivers."
    ::= { sfpGroups 2 }

sfpCommandGroup OBJECT-GROUP
    OBJECTS {
      sfpCommand
    }
    STATUS  current
    DESCRIPTION
       "A collection of sfpCommandTable objects providing
        a way to issue commands to an sfp transceiver."
    ::= { sfpGroups 3 }

sfpNotificationsGroup OBJECT-GROUP
    OBJECTS {
        sfpNotificationEnable
    }
    STATUS  current
    DESCRIPTION
      "A collection of scalar objects in section sfpMIBObjects 
       to enable/disable notifications sent by the agent"
    ::= { sfpGroups 4 }


sfpEventGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        sfpEventFaulty,
        sfpEventOperational,
        sfpEventInserted,
        sfpEventRemoved 
    }
    STATUS  current
    DESCRIPTION
      "A collection of sfp notifications"
    ::= { sfpGroups 5 }

END