RFC1229-MIB
上传用户:aonuowh
上传日期:2021-05-23
资源大小:35390k
文件大小:22k
源码类别:

SNMP编程

开发平台:

C/C++

  1. -- Changes to RFC1229 (Interface Extensions MIB):
  2. --      Changes from RFC-1239 applied which include:
  3. --              removing import of experimental,
  4. --              adding import of mib-2, changing
  5. --              ifExtensions to be { mib-2 12 }
  6. --              instead of { experimental 6 }
  7. -- dperkins@scruznet.com
  8.           RFC1229-MIB DEFINITIONS ::= BEGIN
  9.           -- RFC1229
  10.           -- May 91
  11.           --     Extensions to MIB-II's Generic Interface Table
  12.           IMPORTS
  13.                   Counter                       FROM RFC1155-SMI
  14.                   mib-2, DisplayString, PhysAddress    
  15.                                                 FROM RFC1213-MIB
  16.                   OBJECT-TYPE                   FROM RFC-1212;
  17.           ifExtensions  OBJECT IDENTIFIER ::= { mib-2 12 }
  18.           --   Generic Interface Extension Table
  19.           --
  20.           --  This group of objects is mandatory for all types of
  21.           --  subnetwork interface.
  22.           ifExtnsTable  OBJECT-TYPE
  23.                   SYNTAX SEQUENCE OF IfExtnsEntry
  24.                   ACCESS not-accessible
  25.                   STATUS mandatory
  26.                   DESCRIPTION
  27.                          "A list of interfaces extension entries.
  28.                           The number of entries is given by the value
  29.                           of ifNumber, defined in [4,6]."
  30.                   ::= { ifExtensions 1 }
  31.           ifExtnsEntry  OBJECT-TYPE
  32.                   SYNTAX IfExtnsEntry
  33.                   ACCESS not-accessible
  34.                   STATUS mandatory
  35.                   DESCRIPTION
  36.                          "An extension to the interfaces entry,
  37.                           defined in [4,6], containing additional
  38.                           objects at the subnetwork layer and below
  39.                           for a particular interface."
  40.                   INDEX  { ifExtnsIfIndex }
  41.                   ::= { ifExtnsTable 1 }
  42.           IfExtnsEntry ::=
  43.                   SEQUENCE {
  44.                       ifExtnsIfIndex
  45.                           INTEGER,
  46.                       ifExtnsChipSet
  47.                           OBJECT IDENTIFIER,
  48.                       ifExtnsRevWare
  49.                           DisplayString,
  50.                       ifExtnsMulticastsTransmittedOks
  51.                           Counter,
  52.                       ifExtnsBroadcastsTransmittedOks
  53.                           Counter,
  54.                       ifExtnsMulticastsReceivedOks
  55.                           Counter,
  56.                       ifExtnsBroadcastsReceivedOks
  57.                           Counter,
  58.                       ifExtnsPromiscuous
  59.                           INTEGER
  60.                   }
  61.           ifExtnsIfIndex  OBJECT-TYPE
  62.                   SYNTAX INTEGER
  63.                   ACCESS read-only
  64.                   STATUS mandatory
  65.                   DESCRIPTION
  66.                          "The value of this object identifies the
  67.                           interface for which this entry contains
  68.                           extended management information.  The value
  69.                           of this object for a particular interface
  70.                           has the same value as the ifIndex object,
  71.                           defined in [4,6], for the same interface."
  72.                   ::= { ifExtnsEntry 1 }
  73.           ifExtnsChipSet  OBJECT-TYPE
  74.                   SYNTAX OBJECT IDENTIFIER
  75.                   ACCESS read-only
  76.                   STATUS mandatory
  77.                   DESCRIPTION
  78.                          "This object identifies the hardware chip
  79.                           set being used in the interface.  The
  80.                           assignment of OBJECT IDENTIFIERs to various
  81.                           types of hardware chip sets is managed
  82.                           by the IANA.  If the hardware chip set is
  83.                           unknown, the object identifier
  84.                           unknownChipSet OBJECT IDENTIFIER ::= { 0 0 }
  85.                           is returned.  Note that unknownChipSet is a
  86.                           syntactically valid object identifier, and
  87.                           any conformant implementation of ASN.1 and
  88.                           the BER must be able to generate and
  89.                           recognize this value."
  90.                   ::= { ifExtnsEntry 2 }
  91.           ifExtnsRevWare  OBJECT-TYPE
  92.                   SYNTAX DisplayString (SIZE (0..255))
  93.                   ACCESS read-only
  94.                   STATUS mandatory
  95.                   DESCRIPTION
  96.                          "An arbitrary octet string that describes
  97.                           the firmware version of this interface.
  98.                           It is intended that this should be human
  99.                           readable.  It must only contain ASCII
  100.                           printable characters.  Typically this
  101.                           will be the firmware version of the main
  102.                           interface software."
  103.                   ::= { ifExtnsEntry 3 }
  104.           ifExtnsMulticastsTransmittedOks OBJECT-TYPE
  105.                   SYNTAX Counter
  106.                   ACCESS read-only
  107.                   STATUS mandatory
  108.                   DESCRIPTION
  109.                          "The count of frames successfully
  110.                           transmitted to a subnetwork or link-layer
  111.                           multicast destination address other than a
  112.                           broadcast address.  For a MAC layer protocol,
  113.                           this includes both Group and Functional
  114.                           addresses."
  115.                   ::= { ifExtnsEntry 4 }
  116.           ifExtnsBroadcastsTransmittedOks OBJECT-TYPE
  117.                   SYNTAX Counter
  118.                   ACCESS read-only
  119.                   STATUS mandatory
  120.                   DESCRIPTION
  121.                          "The count of frames successfully
  122.                           transmitted to a subnetwork or link-layer
  123.                           broadcast addresses.  It does not include
  124.                           frames sent to a multicast address."
  125.                   ::= { ifExtnsEntry 5 }
  126.           ifExtnsMulticastsReceivedOks OBJECT-TYPE
  127.                   SYNTAX Counter
  128.                   ACCESS read-only
  129.                   STATUS mandatory
  130.                   DESCRIPTION
  131.                          "The count of frames successfully received
  132.                           that are directed to an active subnetwork
  133.                           or link-layer multicast address (for a MAC
  134.                           layer protocol, this includes both Group and
  135.                           Functional addresses). This does not include
  136.                           frames directed to a broadcast address, nor
  137.                           frames received with errors."
  138.                   ::= { ifExtnsEntry 6 }
  139.           ifExtnsBroadcastsReceivedOks OBJECT-TYPE
  140.                   SYNTAX Counter
  141.                   ACCESS read-only
  142.                   STATUS mandatory
  143.                   DESCRIPTION
  144.                          "The count of frames successfully received
  145.                           that are directed to a subnetwork or
  146.                           link-layer broadcast address.  This does not
  147.                           include frames received with errors."
  148.                   ::= { ifExtnsEntry 7 }
  149.           ifExtnsPromiscuous  OBJECT-TYPE
  150.                   SYNTAX INTEGER {
  151.                               true(1),
  152.                               false(2)
  153.                          }
  154.                   ACCESS read-only  -- Note: agent implementors are
  155.                                     -- encouraged to extend this
  156.                                     -- access to read-write if that
  157.                                     -- makes sense in their agent.
  158.                   STATUS mandatory
  159.                   DESCRIPTION
  160.                          "This object has a value of false(2) if
  161.                           this interface only accepts packets/frames
  162.                           that are addressed to this station. This
  163.                           object has a value of true(1) when the
  164.                           station accepts all packets/frames
  165.                           transmitted on the media.  The value
  166.                           true(1) is only legal on certain types of
  167.                           media.  If legal, setting this object to a
  168.                           value of true(1) may require the interface
  169.                           to be reset before becoming effective."
  170.                   ::= { ifExtnsEntry 8 }
  171.           --
  172.           --    Generic Interface Test Table
  173.           --
  174.           -- This group of objects is optional, but if the table is
  175.           -- implemented, all objects in the table must be implemented.
  176.           ifExtnsTestTable   OBJECT-TYPE
  177.                   SYNTAX  SEQUENCE OF IfExtnsTestEntry
  178.                   ACCESS  not-accessible
  179.                   STATUS  mandatory
  180.                   DESCRIPTION
  181.                           "This table contains one entry per interface."
  182.                   ::= { ifExtensions 2 }
  183.           ifExtnsTestEntry OBJECT-TYPE
  184.                   SYNTAX  IfExtnsTestEntry
  185.                   ACCESS  not-accessible
  186.                   STATUS  mandatory
  187.                   DESCRIPTION
  188.                           "An entry containing objects for invoking
  189.                            tests on an interface."
  190.                   INDEX   { ifExtnsTestIfIndex }
  191.                   ::= { ifExtnsTestTable 1 }
  192.           IfExtnsTestEntry ::=
  193.                   SEQUENCE {
  194.                       ifExtnsTestIfIndex
  195.                           INTEGER,
  196.                       ifExtnsTestCommunity
  197.                           OCTET STRING,
  198.                       ifExtnsTestRequestId
  199.                           INTEGER,
  200.                       ifExtnsTestType
  201.                           OBJECT IDENTIFIER,
  202.                       ifExtnsTestResult
  203.                           INTEGER,
  204.                       ifExtnsTestCode
  205.                           OBJECT IDENTIFIER
  206.                   }
  207.           ifExtnsTestIfIndex  OBJECT-TYPE
  208.                   SYNTAX  INTEGER
  209.                   ACCESS  read-only
  210.                   STATUS  mandatory
  211.                   DESCRIPTION
  212.                          "The value of this object identifies the
  213.                           interface for which this entry contains
  214.                           information on interface tests.  The value
  215.                           of this object for a particular interface
  216.                           has the same value as the ifIndex object,
  217.                           defined in [4,6], for the same interface."
  218.                   ::= { ifExtnsTestEntry 1 }
  219.           ifExtnsTestCommunity  OBJECT-TYPE
  220.                   SYNTAX  OCTET STRING
  221.                   ACCESS  read-only
  222.                   STATUS  mandatory
  223.                   DESCRIPTION
  224.                          "This object contains the name of the SNMP
  225.                           authentication community [5] which was used
  226.                           to authenticate the SNMP Message which invoked
  227.                           the current or most recent test on this
  228.                           interface.  If the authentication community
  229.                           is unknown or undefined, this value contains
  230.                           the zero-length string."
  231.                   ::= { ifExtnsTestEntry 2 }
  232.           ifExtnsTestRequestId  OBJECT-TYPE
  233.                   SYNTAX  INTEGER
  234.                   ACCESS  read-only
  235.                   STATUS  mandatory
  236.                   DESCRIPTION
  237.                          "This object contains the value of the
  238.                           request-id field in the SNMP PDU [5] which
  239.                           invoked the current or most recent test on
  240.                           this interface.  If the request-id is
  241.                           unknown or undefined, this value contains
  242.                           the value zero."
  243.                   ::= { ifExtnsTestEntry 3 }
  244.           ifExtnsTestType  OBJECT-TYPE
  245.                   SYNTAX  OBJECT IDENTIFIER
  246.                   ACCESS  read-write
  247.                   STATUS  mandatory
  248.                   DESCRIPTION
  249.                          "A control variable used to start and stop
  250.                           operator-initiated interface tests.
  251.                               Most OBJECT IDENTIFIER values assigned
  252.                           to tests are defined elsewhere, in associ-
  253.                           ation with specific types of interface.
  254.                           However, this document assigns a value for
  255.                           a full-duplex loopback test, and defines the
  256.                           special meanings of the subject identifier:
  257.                             noTest  OBJECT IDENTIFIER ::= { 0 0 }
  258.                           When the value noTest is written to this
  259.                           object, no action is taken unless a test is
  260.                           in progress, in which case the test is
  261.                           aborted.  Writing any other value to this
  262.                           object is only valid when no test is
  263.                           currently in progress, in which case the
  264.                           indicated test is initiated.
  265.                               Note that noTest is a syntactically valid
  266.                           object identifier, and any conformant
  267.                           implementation of ASN.1 and BER must be able
  268.                           to generate and recognize this value.
  269.                               When read, this object always returns
  270.                           the most recent value that ifExtnsTestType
  271.                           was set to.  If it has not been set since
  272.                           the last initialization of the network
  273.                           management subsystem on the agent, a value
  274.                           of noTest is returned."
  275.                   ::= { ifExtnsTestEntry 4 }
  276.           wellKnownTests OBJECT IDENTIFIER ::= { ifExtensions 4 }
  277.           --  full-duplex loopback test
  278.           testFullDuplexLoopBack OBJECT IDENTIFIER ::=
  279.                                                   { wellKnownTests 1 }
  280.           ifExtnsTestResult  OBJECT-TYPE
  281.                   SYNTAX  INTEGER {
  282.                               none(1),        -- no test yet requested
  283.                               success(2),
  284.                               inProgress(3),
  285.                               notSupported(4),
  286.                               unAbleToRun(5), -- due to state of system
  287.                               aborted(6),
  288.                               failed(7)
  289.                           }
  290.                   ACCESS  read-only
  291.                   STATUS  mandatory
  292.                   DESCRIPTION
  293.                          "This object contains the result of the most
  294.                           recently requested test, or the value
  295.                           none(1) if no tests have been requested since
  296.                           the last reset.  Note that this facility
  297.                           provides no provision for saving the results
  298.                           of one test when starting another, as could
  299.                           be required if used by multiple managers
  300.                           concurrently."
  301.                   ::= { ifExtnsTestEntry 5 }
  302.           ifExtnsTestCode  OBJECT-TYPE
  303.                   SYNTAX  OBJECT IDENTIFIER
  304.                   ACCESS  read-only
  305.                   STATUS  mandatory
  306.                   DESCRIPTION
  307.                          "This object contains a code which contains
  308.                           more specific information on the test result,
  309.                           for example an error-code after a failed
  310.                           test.  Error codes and other values this
  311.                           object may take are specific to the type of
  312.                           interface and/or test.  However, one subject
  313.                           identifier:
  314.                           testCodeUnknown  OBJECT IDENTIFIER ::= { 0 0 }
  315.                           for use if no additional result code is
  316.                           available.
  317.                               Note that testCodeUnknown is a
  318.                           syntactically valid object identifier, and
  319.                           any conformant implementation of ASN.1 and
  320.                           the BER must be able to generate and
  321.                           recognize this value."
  322.                   ::= { ifExtnsTestEntry 6 }
  323.           --   Generic Receive Address Table
  324.           --
  325.           -- This group of objects is mandatory for all types of
  326.           -- interfaces which can receive packets/frames addressed to
  327.           -- more than one address.
  328.           ifExtnsRcvAddrTable  OBJECT-TYPE
  329.                   SYNTAX SEQUENCE OF IfExtnsRcvAddrEntry
  330.                   ACCESS not-accessible
  331.                   STATUS mandatory
  332.                   DESCRIPTION
  333.                          "This table contains an entry for each
  334.                           address (broadcast, multicast, or uni-cast)
  335.                           for which the system will receive packets/
  336.                           frames on a particular interface.  When an
  337.                           interface is operating in promiscuous mode,
  338.                           entries are only required for those addresses
  339.                           for which the system would receive frames
  340.                           were it not operating in promiscuous mode."
  341.                   ::= { ifExtensions 3 }
  342.           ifExtnsRcvAddrEntry  OBJECT-TYPE
  343.                   SYNTAX IfExtnsRcvAddrEntry
  344.                   ACCESS not-accessible
  345.                   STATUS mandatory
  346.                   DESCRIPTION
  347.                          "A list of objects identifying an address
  348.                           for which the system will accept packets/
  349.                           frames on a particular interface."
  350.                   INDEX  { ifExtnsRcvAddrIfIndex, ifExtnsRcvAddress }
  351.                   ::= { ifExtnsRcvAddrTable 1 }
  352.           IfExtnsRcvAddrEntry ::=
  353.                   SEQUENCE {
  354.                       ifExtnsRcvAddrIfIndex
  355.                           INTEGER,
  356.                       ifExtnsRcvAddress
  357.                           PhysAddress,
  358.                       ifExtnsRcvAddrStatus
  359.                           INTEGER
  360.                   }
  361.           ifExtnsRcvAddrIfIndex  OBJECT-TYPE
  362.                   SYNTAX INTEGER
  363.                   ACCESS read-only
  364.                   STATUS mandatory
  365.                   DESCRIPTION
  366.                          "The value of ifIndex, defined in [4,6], of an
  367.                           interface which recognizes this entry's
  368.                           address."
  369.                   ::= { ifExtnsRcvAddrEntry 1 }
  370.           ifExtnsRcvAddress OBJECT-TYPE
  371.                   SYNTAX PhysAddress
  372.                   ACCESS read-only
  373.                   STATUS mandatory
  374.                   DESCRIPTION
  375.                          "An address for which the system will accept
  376.                           packets/frames on this entry's interface."
  377.                   ::= { ifExtnsRcvAddrEntry 2 }
  378.           ifExtnsRcvAddrStatus OBJECT-TYPE
  379.                   SYNTAX INTEGER {
  380.                              other(1),
  381.                              invalid(2),
  382.                              volatile(3),
  383.                              nonVolatile(4)
  384.                          }
  385.                   ACCESS read-write
  386.                   STATUS mandatory
  387.                   DESCRIPTION
  388.                          "This object has the value nonVolatile(4)
  389.                           for those entries in the table which are
  390.                           valid and will not be deleted by the next
  391.                           restart of the managed system.  Entries
  392.                           having the value volatile(3) are valid
  393.                           and exist, but have not been saved, so
  394.                           that will not exist after the next
  395.                           restart of the managed system.  Entries
  396.                           having the value other(1) are valid and
  397.                           exist but are not classified as to whether
  398.                           they will continue to exist after the next
  399.                           restart.  Entries having the value invalid(2)
  400.                           are invalid and do not represent an address
  401.                           for which an interface accepts frames.
  402.                               Setting an object instance to one of
  403.                           the values other(1), volatile(3), or
  404.                           nonVolatile(4) causes the corresponding
  405.                           entry to exist or continue to exist, and
  406.                           to take on the respective status as regards
  407.                           the next restart of the managed system.
  408.                               Setting an object instance to the value
  409.                           invalid(2) causes the corresponding entry
  410.                           to become invalid or cease to exist.
  411.                               It is an implementation-specific matter
  412.                           as to whether the agent removes an
  413.                           invalidated entry from the table.
  414.                           Accordingly, management stations must be
  415.                           prepared to receive tabular information
  416.                           from agents that corresponds to entries not
  417.                           currently in use.  Proper interpretation of
  418.                           such entries requires examination of the
  419.                           relevant ifExtnsRcvAddrStatus object
  420.                           instance."
  421.                   DEFVAL  { volatile }
  422.                   ::= { ifExtnsRcvAddrEntry 3 }
  423.           END