Logo
Home page Net-SNMP

Archive Search:

Require all words?

Site Search:
Google

INTRODUCTION

TABLE OF CONTENTS

SCALAR OBJECTS

TABLE OBJECTS

Table ifXTable

Table ifStackTable

Table ifRcvAddressTable


DEPRECATED OR OBSOLETE OR HISTORIC OBJECTS


SCALAR OBJECTS

    NameTypeAccessOIDDescription

TABLE OBJECTS

Table ifTestTable

    Table NameifTestTable
    In MIBIF-MIB
    Registered at OID.1.3.6.1.2.1.31.1.3
    Table Description
    This table contains one entry per interface.  It defines
    objects which allow a network manager to instruct an agent
    to test an interface for various faults.  Tests for an
    interface are defined in the media-specific MIB for that
    interface.  After invoking a test, the object ifTestResult
    can be read to determine the outcome.  If an agent can not
    perform the test, ifTestResult is set to so indicate.  The
    object ifTestCode can be used to provide further test-
    specific or interface-specific (or even enterprise-specific)
    information concerning the outcome of the test.  Only one
    test can be in progress on each interface at any one time.
    If one test is in progress when another test is invoked, the
    second test is rejected.  Some agents may reject a test when
    a prior test is active on another interface.
    
    Before starting a test, a manager-station must first obtain
    'ownership' of the entry in the ifTestTable for the
    interface to be tested.  This is accomplished with the
    ifTestId and ifTestStatus objects as follows:
    
              try_again:
      get (ifTestId, ifTestStatus)
      while (ifTestStatus != notInUse)
          /*
           * Loop while a test is running or some other
           * manager is configuring a test.
           */
          short delay
          get (ifTestId, ifTestStatus)
      }
    
      /*
       * Is not being used right now -- let's compete
       * to see who gets it.
       */
      lock_value = ifTestId
    
      if ( set(ifTestId = lock_value, ifTestStatus = inUse,
               ifTestOwner = 'my-IP-address') == FAILURE)
          /*
           * Another manager got the ifTestEntry -- go
           * try again
           */
          goto try_again;
    
      /*
       * I have the lock
       */
      set up any test parameters.
    
      /*
       * This starts the test
       */
      set(ifTestType = test_to_run);
    
      wait for test completion by polling ifTestResult
    
      when test completes, agent sets ifTestResult
           agent also sets ifTestStatus = 'notInUse'
    
      retrieve any additional test results, and ifTestId
    
      if (ifTestId == lock_value+1) results are valid
    
    A manager station first retrieves the value of the
    appropriate ifTestId and ifTestStatus objects, periodically
    repeating the retrieval if necessary, until the value of
    ifTestStatus is 'notInUse'.  The manager station then tries
    to set the same ifTestId object to the value it just
    retrieved, the same ifTestStatus object to 'inUse', and the
    corresponding ifTestOwner object to a value indicating
    itself.  If the set operation succeeds then the manager has
    obtained ownership of the ifTestEntry, and the value of the
    ifTestId object is incremented by the agent (per the
    semantics of TestAndIncr).  Failure of the set operation
    indicates that some other manager has obtained ownership of
    the ifTestEntry.
    
    Once ownership is obtained, any test parameters can be
    setup, and then the test is initiated by setting ifTestType.
    On completion of the test, the agent sets ifTestStatus to
    'notInUse'.  Once this occurs, the manager can retrieve the
    results.  In the (rare) event that the invocation of tests
    by two network managers were to overlap, then there would be
    a possibility that the first test's results might be
    overwritten by the second test's results prior to the first
    
    results being read.  This unlikely circumstance ca
    
    Row Description
    An entry containing objects for invoking tests on an
    interface.
    

    ifTestTable Indexes:

    NameTypeAccessDescription
    1
    ifIndex
    INTEGER32
    Legal values: 1 .. 2147483647
    InterfaceIndex
    ReadOnly

    Note: this object is based on the InterfaceIndex TEXTUAL-CONVENTION.

    A unique value, greater than zero, for each interface.  It
    is recommended that values are assigned contiguously
    starting from 1.  The value for each interface sub-layer
    must remain constant at least from one re-initialization of
    the entity's network management system to the next re-
    initialization.
    

    Other ifTestTable Columns:

    NameTypeAccessDescription
    1
    ifTestId
    DEPRECATED
    INTEGER
    Legal values: 0 .. 2147483647
    TestAndIncr
    ReadWrite

    Note: this object is based on the TestAndIncr TEXTUAL-CONVENTION.

    This object identifies the current invocation of the
    interface's test.
    
    2
    ifTestStatus
    DEPRECATED
    INTEGER
    ValueLabel/Meaning
    1notInUse
    2inUse
    ReadWrite
    This object indicates whether or not some manager currently
    has the necessary 'ownership' required to invoke a test on
    this interface.  A write to this object is only successful
    when it changes its value from 'notInUse(1)' to 'inUse(2)'.
    After completion of a test, the agent resets the value back
    to 'notInUse(1)'.
    
    3
    ifTestType
    DEPRECATED
    OBJECTID
    AutonomousType
    ReadWrite

    Note: this object is based on the AutonomousType TEXTUAL-CONVENTION.

    A control variable used to start and stop operator-
    initiated interface tests.  Most OBJECT IDENTIFIER values
    assigned to tests are defined elsewhere, in association with
    specific types of interface.  However, this document assigns
    a value for a full-duplex loopback test, and defines the
    special meanings of the subject identifier:
    
        noTest  OBJECT IDENTIFIER ::= { 0 0 }
    
    When the value noTest is written to this object, no action
    is taken unless a test is in progress, in which case the
    test is aborted.  Writing any other value to this object is
    
    only valid when no test is currently in progress, in which
    case the indicated test is initiated.
    
    When read, this object always returns the most recent value
    that ifTestType was set to.  If it has not been set since
    the last initialization of the network management subsystem
    on the agent, a value of noTest is returned.
    
    4
    ifTestResult
    DEPRECATED
    INTEGER
    ValueLabel/Meaning
    1none
    2success
    3inProgress
    4notSupported
    5unAbleToRun
    6aborted
    7failed
    ReadOnly
    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.
    
    5
    ifTestCode
    DEPRECATED
    OBJECTID
    ReadOnly
    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.  The value may have the semantics of either the
    AutonomousType or InstancePointer textual conventions as
    defined in RFC 2579.  The identifier:
    
        testCodeUnknown  OBJECT IDENTIFIER ::= { 0 0 }
    
    is defined for use if no additional result code is
    available.
    
    6
    ifTestOwner
    DEPRECATED
    OCTETSTR
    Legal Lengths: 0 .. 255
    OwnerString
    ReadWrite

    Note: this object is based on the OwnerString TEXTUAL-CONVENTION.

    The entity which currently has the 'ownership' required to
    invoke a test on this interface.
    


NOTIFICATIONS



TEXTUAL CONVENTIONS

TREE VIEW

Tree view generated by running: snmptranslate -Tp IF-MIB::ifMIBObjects

+--ifMIBObjects(1)
   |
   +--ifXTable(1)
   |  |
   |  +--ifXEntry(1)
   |     |
   |     +-- -R-- String    ifName(1)
   |     |        Textual Convention: DisplayString
   |     |        Size: 0..255
   |     +-- -R-- Counter   ifInMulticastPkts(2)
   |     +-- -R-- Counter   ifInBroadcastPkts(3)
   |     +-- -R-- Counter   ifOutMulticastPkts(4)
   |     +-- -R-- Counter   ifOutBroadcastPkts(5)
   |     +-- -R-- Counter64 ifHCInOctets(6)
   |     +-- -R-- Counter64 ifHCInUcastPkts(7)
   |     +-- -R-- Counter64 ifHCInMulticastPkts(8)
   |     +-- -R-- Counter64 ifHCInBroadcastPkts(9)
   |     +-- -R-- Counter64 ifHCOutOctets(10)
   |     +-- -R-- Counter64 ifHCOutUcastPkts(11)
   |     +-- -R-- Counter64 ifHCOutMulticastPkts(12)
   |     +-- -R-- Counter64 ifHCOutBroadcastPkts(13)
   |     +-- -RW- EnumVal   ifLinkUpDownTrapEnable(14)
   |     |        Values: enabled(1), disabled(2)
   |     +-- -R-- Gauge     ifHighSpeed(15)
   |     +-- -RW- EnumVal   ifPromiscuousMode(16)
   |     |        Textual Convention: TruthValue
   |     |        Values: true(1), false(2)
   |     +-- -R-- EnumVal   ifConnectorPresent(17)
   |     |        Textual Convention: TruthValue
   |     |        Values: true(1), false(2)
   |     +-- -RW- String    ifAlias(18)
   |     |        Textual Convention: DisplayString
   |     |        Size: 0..64
   |     +-- -R-- TimeTicks ifCounterDiscontinuityTime(19)
   |              Textual Convention: TimeStamp
   |
   +--ifStackTable(2)
   |  |
   |  +--ifStackEntry(1)
   |     |  Index: ifStackHigherLayer, ifStackLowerLayer
   |     |
   |     +-- ---- Integer32 ifStackHigherLayer(1)
   |     |        Textual Convention: InterfaceIndexOrZero
   |     |        Range: 0..2147483647
   |     +-- ---- Integer32 ifStackLowerLayer(2)
   |     |        Textual Convention: InterfaceIndexOrZero
   |     |        Range: 0..2147483647
   |     +-- CR-- EnumVal   ifStackStatus(3)
   |              Textual Convention: RowStatus
   |              Values: active(1), notInService(2), notReady(3), createAndGo(4), createAndWait(5), destroy(6)
   |
   +--ifTestTable(3)
   |  |
   |  +--ifTestEntry(1)
   |     |
   |     +-- -RW- INTEGER   ifTestId(1)
   |     |        Textual Convention: TestAndIncr
   |     |        Range: 0..2147483647
   |     +-- -RW- EnumVal   ifTestStatus(2)
   |     |        Values: notInUse(1), inUse(2)
   |     +-- -RW- ObjID     ifTestType(3)
   |     |        Textual Convention: AutonomousType
   |     +-- -R-- EnumVal   ifTestResult(4)
   |     |        Values: none(1), success(2), inProgress(3), notSupported(4), unAbleToRun(5), aborted(6), failed(7)
   |     +-- -R-- ObjID     ifTestCode(5)
   |     +-- -RW- String    ifTestOwner(6)
   |              Textual Convention: OwnerString
   |              Size: 0..255
   |
   +--ifRcvAddressTable(4)
   |  |
   |  +--ifRcvAddressEntry(1)
   |     |  Index: ifIndex, ifRcvAddressAddress
   |     |
   |     +-- ---- String    ifRcvAddressAddress(1)
   |     |        Textual Convention: PhysAddress
   |     +-- CR-- EnumVal   ifRcvAddressStatus(2)
   |     |        Textual Convention: RowStatus
   |     |        Values: active(1), notInService(2), notReady(3), createAndGo(4), createAndWait(5), destroy(6)
   |     +-- CR-- EnumVal   ifRcvAddressType(3)
   |              Values: other(1), volatile(2), nonVolatile(3)
   |
   +-- -R-- TimeTicks ifTableLastChange(5)
   +-- -R-- TimeTicks ifStackLastChange(6)

Valid CSS!


Last modified: Wednesday, 01-Aug-2018 04:41:28 UTC
For questions regarding web content and site functionality, please write to the net-snmp-users mail list.