Net2/usr/src/contrib/isode/snmp/ifx.my

-- ifx.my - Generic Interface Extensions MIB

-- $Header: /f/osi/snmp/RCS/ifx.my,v 7.2 91/02/22 09:43:21 mrose Interim $
--
-- 
-- $Log:	ifx.my,v $
-- Revision 7.2  91/02/22  09:43:21  mrose
-- Interim 6.8
-- 
-- Revision 7.1  91/01/11  13:02:42  mrose
-- update
-- 
-- Revision 7.0  90/09/26  19:21:21  mrose
-- *** empty log message ***
-- 

--
--				  NOTICE
--
--    Acquisition, use, and distribution of this module and related
--    materials are subject to the restrictions of a license agreement.
--    Consult the Preface in the User's Manual for the full terms of
--    this agreement.
--
--


          RFCxxxx-MIB DEFINITIONS ::= BEGIN


          --        Extensions to MIB-II's Generic Interface Table

          IMPORTS
                  experimental, Counter FROM RFC1155-SMI
                  DisplayString         FROM RFC1158-MIB
                  PhysAddress           FROM RFC-mmmm-MIB-II
                  OBJECT-TYPE           FROM RFC-oooo;


          --  This MIB Module uses the extended OBJECT-TYPE macro as
          --  defined in [10]


          ifExtensions  OBJECT IDENTIFIER ::= { experimental 6 }



          --   Generic Interface Extension Table
          --
          --  This group of objects is mandatory for all types of
          --  subnetwork interface.

          ifExtnsTable  OBJECT-TYPE
                        SYNTAX SEQUENCE OF IfExtnsEntry
                        ACCESS not-accessible
                        STATUS mandatory
                        DESCRIPTION
                               "A list of interfaces extension entries.
                                The number of entries is given by the value
                                of ifNumber, defined in [4,6]."
                        ::= { ifExtensions 1 }

          ifExtnsEntry  OBJECT-TYPE
                        SYNTAX IfExtnsEntry
                        ACCESS not-accessible
                        STATUS mandatory
                        DESCRIPTION
                               "An extension to the interfaces entry,
                                defined in [4,6], containing additional







                                objects at the subnetwork layer and below
                                for a particular interface."
                        INDEX  { ifExtnsIfIndex }
                        ::= { ifExtnsTable 1 }

          IfExtnsEntry ::= SEQUENCE {
                               ifExtnsIfIndex
                                       INTEGER,
                               ifExtnsChipSet
                                       OBJECT IDENTIFIER,
                               ifExtnsRevWare
                                       DisplayString,
                               ifExtnsMulticastsTransmittedOks
                                       Counter,
                               ifExtnsBroadcastsTransmittedOks
                                       Counter,
                               ifExtnsMulticastsReceivedOks
                                       Counter,
                               ifExtnsBroadcastsReceivedOks
                                       Counter,
                               ifExtnsPromiscuous
                                       INTEGER
                           }

          ifExtnsIfIndex  OBJECT-TYPE
                        SYNTAX INTEGER
                        ACCESS read-only
                        STATUS mandatory
                        DESCRIPTION
                               "The value of this object identifies the
                                interface for which this entry contains
                                extended management information.  The value
                                of this object for a particular interface
                                has the same value as the ifIndex object,
                                defined in [4,6], for the same interface."
                        ::= { ifExtnsEntry 1 }

          ifExtnsChipSet  OBJECT-TYPE
                        SYNTAX OBJECT IDENTIFIER
                        ACCESS read-only
                        STATUS mandatory
                        DESCRIPTION
                               "This object identifies the hardware chip
                                set being used in the interface.  The
                                assignment of OBJECT IDENTIFIERs to various







                                types of hardware chip sets is defined
                                elsewhere.  This document assigns only the
                                value: unknownChipSet for use if the chip
                                set in use is unknown.
                                    Note that unknownChipSet is a
                                syntactically valid object identifier, and
                                any conformant implementation of ASN.1 and
                                the BER must be able to generate and
                                recognize this value."
                        ::= { ifExtnsEntry 2 }

          --  for unknown hardware chip set
          unknownChipSet  OBJECT IDENTIFIER ::= { 0 0 }

          ifExtnsRevWare  OBJECT-TYPE
                        SYNTAX DisplayString (SIZE (0..255))
                        ACCESS read-only
                        STATUS mandatory
                        DESCRIPTION
                               "An arbitrary octet string that describes
                                the firmware version of this interface.
                                It is intended that this should be human
                                readable.  It must only contain ASCII
                                printable characters.  Typically this
                                will be the firmware version of the main
                                interface software."
                        ::= { ifExtnsEntry 3 }

          ifExtnsMulticastsTransmittedOks OBJECT-TYPE
                        SYNTAX Counter
                        ACCESS read-only
                        STATUS mandatory
                        DESCRIPTION
                               "The count of frames successfully
                                transmitted to a subnetwork or link-layer
                                multicast destination address other than a
                                broadcast address.  For a MAC layer protocol,
                                this includes both Group and Functional
                                addresses."
                        ::= { ifExtnsEntry 4 }

          ifExtnsBroadcastsTransmittedOks OBJECT-TYPE
                        SYNTAX Counter
                        ACCESS read-only
                        STATUS mandatory







                        DESCRIPTION
                               "The count of frames successfully
                                transmitted to a subnetwork or link-layer
                                broadcast addresses.  It does not include
                                frames sent to a multicast address."
                        ::= { ifExtnsEntry 5 }

          ifExtnsMulticastsReceivedOks OBJECT-TYPE
                        SYNTAX Counter
                        ACCESS read-only
                        STATUS mandatory
                        DESCRIPTION
                               "The count of frames successfully received
                                that are directed to an active subnetwork
                                or link-layer multicast address (for a MAC
                                layer protocol, this includes both Group and
                                Functional addresses). This does not include
                                frames directed to a broadcast address, nor
                                frames received with errors."
                        ::= { ifExtnsEntry 6 }

          ifExtnsBroadcastsReceivedOks OBJECT-TYPE
                        SYNTAX Counter
                        ACCESS read-only
                        STATUS mandatory
                        DESCRIPTION
                               "The count of frames successfully received
                                that are directed to a subnetwork or
                                link-layer broadcast address."
                        ::= { ifExtnsEntry 7 }

          ifExtnsPromiscuous  OBJECT-TYPE
                        SYNTAX INTEGER {
                                    true(1),
                                    false(2)
                               }
                        ACCESS read-only  -- Note: agent implementors are
                                          -- encouraged to extend this
                                          -- access to read-write if that
                                          -- makes sense in their agent.
                        STATUS mandatory
                        DESCRIPTION
                               "This object has a value of false(2) if
                                this interface only accepts packets/frames
                                that are addressed to this station. This







                                object has a value of true(1) when the
                                station accepts all packets/frames
                                transmitted on the media.  The value
                                true(1) is only legal on certain types of
                                media.  If legal, setting this object to a
                                value of true(1) may require the interface
                                to be reset before becoming effective."
                        ::= { ifExtnsEntry 8 }

          --
          --    Generic Interface Test Table
          --
          -- This group of objects is optional, but if the table is
          -- implemented, all objects in the table must be implemented.

          ifExtnsTestTable   OBJECT-TYPE
                        SYNTAX  SEQUENCE OF IfExtnsTestEntry
                        ACCESS  not-accessible
                        STATUS  mandatory
                        DESCRIPTION
                                "This table contains one entry per
                                interface."
                        ::= { ifExtensions 2 }

          ifExtnsTestEntry OBJECT-TYPE
                        SYNTAX  IfExtnsTestEntry
                        ACCESS  not-accessible
                        STATUS  mandatory
                        DESCRIPTION
                                "An entry containing objects for
                                invoking tests on an interface."
                        INDEX   { ifExtnsTestIfIndex }
                        ::= { ifExtnsTestTable 1 }

          IfExtnsTestEntry ::= SEQUENCE {
                                   ifExtnsTestIfIndex
                                       INTEGER,
                                   ifExtnsTestUser
                                       OCTET STRING,
                                   ifExtnsTestCommunity
                                       OCTET STRING,
                                   ifExtnsTestType
                                       OBJECT IDENTIFIER,
                                   ifExtnsTestResult
                                       INTEGER,







                                   ifExtnsTestCode
                                       OBJECT IDENTIFIER
                               }

          ifExtnsTestUser  OBJECT-TYPE
                        SYNTAX  OCTET STRING
                        ACCESS  read-only
                        STATUS  mandatory
                        DESCRIPTION
                               "This object contains the name of the
                                authentication service user [9] who
                                originated the SNMP Message which invoked
                                the current or most recent test on this
                                interface.  If the authentication service
                                user is unknown or undefined, this value
                                contains the zero-length string."
                        ::= { ifExtnsTestEntry 1 }

          ifExtnsTestCommunity  OBJECT-TYPE
                        SYNTAX  OCTET STRING
                        ACCESS  read-only
                        STATUS  mandatory
                        DESCRIPTION
                               "This object contains the name of the
                                SNMP authentication community [9] which
                                was used to authenticate the SNMP Message
                                which invoked the current or most recent
                                test on this interface.  If the
                                authentication community is unknown or
                                undefined, this value contains the
                                zero-length string."
                        ::= { ifExtnsTestEntry 2 }

          ifExtnsTestIfIndex  OBJECT-TYPE
                        SYNTAX  INTEGER
                        ACCESS  read-only
                        STATUS  mandatory
                        DESCRIPTION
                               "The value of this object identifies the
                                interface for which this entry contains
                                information on interface tests.  The value
                                of this object for a particular interface
                                has the same value as the ifIndex object,
                                defined in [4,6], for the same interface."
                        ::= { ifExtnsTestEntry 3 }








          ifExtnsTestType  OBJECT-TYPE
                        SYNTAX  OBJECT IDENTIFIER
                        ACCESS  read-write
                        STATUS  mandatory
                        DESCRIPTION
                               "A control variable used to start and stop
                                operator-initiated interface tests.  If
                                the value noTest is written, then this
                                aborts any test in progress, or if no test
                                is in progress, acts as a no-operation.
                                If any other value is used, writing to
                                this object is only valid when no test is
                                currently in progress, in which case the
                                indicated test is initiated.
                                    Most OBJECT IDENTIFIER values assigned
                                to tests are defined elsewhere, in associ-
                                ation with specific types of interface.
                                However, this document does assign a value
                                for a full-duplex loopback test.  Also,
                                the subject identifier, noTest, is defined
                                here.
                                    Note that noTest is a syntactically
                                valid object identifier, and any conformant
                                implementation of ASN.1 and BER must be able
                                to generate and recognize this value.
                                    When read, this object always returns
                                the most recent value that ifExtnsTestType
                                was set to.  If it has not been set since
                                the last initialization of the network
                                management subsystem on the node, it returns
                                a value of noTest."
                        ::= { ifExtnsTestEntry 4 }

          --  abort Test in progress/ no Test in progress
          noTest OBJECT IDENTIFIER ::= { 0 0 }

          wellKnownTests OBJECT IDENTIFIER ::= { ifExtensions 4 }

          --  full-duplex loopback test
          testFullDuplexLoopBack OBJECT IDENTIFIER ::= { wellKnownTests 1 }

          ifExtnsTestResult  OBJECT-TYPE
                        SYNTAX  INTEGER {
                                    none(1),  -- no test yet requested







                                    success(2),
                                    inProgress(3),
                                    notSupported(4),
                                    unAbleToRun(5), -- due to state of system
                                    aborted(6),
                                    failed(7)
                                }
                        ACCESS  read-only
                        STATUS  mandatory
                        DESCRIPTION
                               "This object contains the result of the most
                                recently requested test, or the value
                                none(1) if no tests have been requested since
                                the last reset.  Note that this facility
                                provides no provision for saving the results
                                of one test when starting another, as could
                                be required if used by multiple managers
                                concurrently."
                        ::= { ifExtnsTestEntry 5 }

          ifExtnsTestCode  OBJECT-TYPE
                        SYNTAX  OBJECT IDENTIFIER
                        ACCESS  read-only
                        STATUS  mandatory
                        DESCRIPTION
                               "This object contains a code which contains
                                more specific information on the test result,
                                for example an error-code after a failed
                                test.  Error codes and other values this
                                object may take are specific to the type of
                                interface and/or test.  However, one subject
                                identifier, testCodeUnknown, is defined here
                                for use if no additional result code is
                                available.
                                    Note that testCodeUnknown is a
                                syntactically valid object identifier, and
                                any conformant implementation of ASN.1 and
                                the BER must be able to generate and
                                recognize this value."
                        ::= { ifExtnsTestEntry 6 }

          --  no additional result code available
          testCodeUnknown  OBJECT IDENTIFIER ::= { 0 0 }









          --   Generic Receive Address Table
          --
          -- This group of objects is mandatory for all types of
          -- interfaces which can receive packets/frames addressed to
          -- more than one address.

          ifExtnsRcvAddrTable  OBJECT-TYPE
                        SYNTAX SEQUENCE OF IfExtnsRcvAddrEntry
                        ACCESS not-accessible
                        STATUS mandatory
                        DESCRIPTION
                               "This table contains an entry for each
                                address (broadcast, multicast, or uni-cast)
                                for which the system will receive packets/
                                frames on a particular interface.  When an
                                interface is operating in promiscuous mode,
                                entries are only required for those
                                addresses for which the system would receive
                                frames were it not operating in promiscuous
                                mode."
                        ::= { ifExtensions 3 }

          ifExtnsRcvAddrEntry  OBJECT-TYPE
                        SYNTAX IfExtnsRcvAddrEntry
                        ACCESS not-accessible
                        STATUS mandatory
                        DESCRIPTION
                               "A list of objects identifying an address
                                for which the system will accept packets/
                                frames on a particular interface."
                        INDEX  { ifExtnsRcvAddrIfIndex, ifExtnsRcvAddress }
                        ::= { ifExtnsRcvAddrTable 1 }

          IfExtnsRcvAddrEntry ::= SEQUENCE {
                                      ifExtnsRcvAddrIfIndex
                                          INTEGER,
                                      ifExtnsRcvAddress
                                          PhysAddress,
                                      ifExtnsRcvAddrStatus
                                          INTEGER
                                  }

          ifExtnsRcvAddrIfIndex  OBJECT-TYPE
                        SYNTAX INTEGER
                        ACCESS read-only







                        STATUS mandatory
                        DESCRIPTION
                               "The value of ifIndex, defined in [4,6],
                                of an interface which recognizes this
                                entry's address."
                        ::= { ifExtnsRcvAddrEntry 1 }

          ifExtnsRcvAddress OBJECT-TYPE
                        SYNTAX PhysAddress
                        ACCESS read-only
                        STATUS mandatory
                        DESCRIPTION
                               "An address for which the system will
                                accept packets/frames on this entry's
                                interface."
                        ::= { ifExtnsRcvAddrEntry 2 }

          ifExtnsRcvAddrStatus OBJECT-TYPE
                        SYNTAX INTEGER {
                                   other(1),
                                   invalid(2),
                                   volatile(3),
                                   nonVolatile(4)
                               }
                        ACCESS read-write
                        STATUS mandatory
                        DESCRIPTION
                               "This object has the value nonVolatile(4)
                                for those entries in the table which are
                                valid and will not be deleted by the next
                                restart of the managed system.  Entries
                                having the value volatile(3) are valid
                                and exist, but have not been saved, so
                                that will not exist after the next
                                restart of the managed system.  Entries
                                having the value other(1) are valid and
                                exist but are not classified as to whether
                                they will continue to exist after the next
                                restart.  Entries having the value invalid(2)
                                are invalid and do not represent an address
                                for which an interface accepts frames.
                                    Setting an object instance to one of
                                the values other(1), volatile(3), or
                                nonVolatile(4) causes the corresponding
                                entry to exist or continue to exist, and







                                to take on the respective status as regards
                                the next restart of the managed system.
                                    Setting an object instance to the value
                                invalid(2) causes the corresponding entry
                                to become invalid or cease to exist.
                                    It is an implementation-specific matter
                                as to whether the agent removes an
                                invalidated entry from the table.
                                Accordingly, management stations must be
                                prepared to receive tabular information
                                from agents that corresponds to entries not
                                currently in use.  Proper interpretation of
                                such entries requires examination of the
                                relevant ifExtnsRcvAddrStatus object
                                instance."
                        DEFVAL  { volatile }
                        ::= { ifExtnsRcvAddrEntry 3 }

          END