home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_q_t / draft-ietf-snmpv3-appl-04.txt < prev    next >
Text File  |  1997-10-30  |  146KB  |  4,426 lines

  1.  
  2.  
  3.  
  4.  
  5. INTERNET-DRAFT                                             David B. Levi
  6.                                                      SNMP Research, Inc.
  7.                                                               Paul Meyer
  8.                                             Secure Computing Corporation
  9.                                                              Bob Stewart
  10.                                                            Cisco Systems
  11.                                                          28 October 1997
  12.  
  13.  
  14.                           SNMPv3 Applications
  15.                     <draft-ietf-snmpv3-appl-04.txt>
  16.  
  17.  
  18. Status of this Memo
  19.  
  20.    This document is an Internet-Draft. Internet-Drafts are working
  21.    documents of the Internet Engineering Task Force (IETF), its areas,
  22.    and its working groups.  Note that other groups may also distribute
  23.    working documents as Internet-Drafts.
  24.  
  25.    Internet-Drafts are draft documents valid for a maximum of six months
  26.    and may be updated, replaced, or obsoleted by other documents at any
  27.    time.  It is inappropriate to use Internet-Drafts as reference
  28.    material or to cite them other than as ``work in progress.''
  29.  
  30.    To learn the current status of any Internet-Draft, please check the
  31.    ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
  32.    Directories on ds.internic.net (US East Coast), nic.nordu.net
  33.    (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific
  34.    Rim).
  35.  
  36. Copyright Notice
  37.  
  38.    Copyright (C) The Internet Society (date). All Rights Reserved.
  39.  
  40.  
  41. Abstract
  42.  
  43.    This memo describes five types of SNMP applications which make use of
  44.    an SNMP engine as described in [SNMP-ARCH].  The types of application
  45.    described are Command Generators, Command Responders, Notification
  46.    Originators, Notification Receivers, and Proxy Forwarders.
  47.  
  48.    This memo also defines MIB modules for specifying targets of
  49.    management operations, for notification filtering, and for proxy
  50.    forwarding.
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59. SNMPv3 Working Group       Expires April 1998             [Page 1]
  60.  
  61. Internet Draft            SNMPv3 Applications            28 October 1997
  62.  
  63.  
  64.    Table of Contents
  65.  
  66.  
  67.    1 Overview .....................................................    3
  68.    1.1 Command Generator Applications .............................    3
  69.    1.2 Command Responder Applications .............................    3
  70.    1.3 Notification Originator Applications .......................    4
  71.    1.4 Notification Receiver Applications .........................    4
  72.    1.5 Proxy Forwarder Applications ...............................    4
  73.    2 Management Targets ...........................................    6
  74.    3 Elements Of Procedure ........................................    6
  75.    3.1 Command Generator Applications .............................    6
  76.    3.2 Command Responder Applications .............................   10
  77.    3.3 Notification Originator Applications .......................   15
  78.    3.4 Notification Receiver Applications .........................   18
  79.    3.5 Proxy Forwarder Applications ...............................   20
  80.    3.5.1 Request Forwarding .......................................   21
  81.    3.5.1.1 Processing an Incoming Request .........................   21
  82.    3.5.1.2 Processing an Incoming Response ........................   24
  83.    3.5.1.3 Processing an Incoming Report Indication ...............   25
  84.    3.5.2 Notification Forwarding ..................................   26
  85.    4 The Structure of the MIB Modules .............................   30
  86.    4.1 The Management Target MIB Module ...........................   30
  87.    4.1.1 Tag Lists ................................................   30
  88.    4.1.2 Definitions ..............................................   31
  89.    4.2 The Notification MIB Module ................................   45
  90.    4.2.1 Definitions ..............................................   45
  91.    4.3 The Proxy MIB Module .......................................   58
  92.    4.3.1 Definitions ..............................................   58
  93.    5 Identification of Management Targets in Notification Origi-
  94.         nators ....................................................   65
  95.    6 Notification Filtering .......................................   66
  96.    7 Management Target Translation in Proxy  Forwarder  Applica-
  97.         tions .....................................................   68
  98.    7.1 Management Target Translation for Request Forwarding .......   68
  99.    7.2 Management Target Translation for Notification Forwarding
  100.         ...........................................................   69
  101.    8 Intellectual Property ........................................   70
  102.    9 Acknowledgments ..............................................   70
  103.    10 Security Considerations .....................................   71
  104.    11 References ..................................................   73
  105.    12 Editor's Address ............................................   75
  106.    A. Trap Configuration Example ..................................   76
  107.    B. Full Copyright Statement ....................................   78
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115. SNMPv3 Working Group       Expires April 1998             [Page 2]
  116.  
  117. Internet Draft            SNMPv3 Applications            28 October 1997
  118.  
  119.  
  120. 1.  Overview
  121.  
  122.    This document describes five types of SNMP applications:
  123.  
  124.  
  125.        -  Applications which initiate SNMP Get, GetNext, GetBulk, and/or
  126.           Set requests, called 'command generators.'
  127.  
  128.        -  Applications which respond to SNMP Get, GetNext, GetBulk,
  129.           and/or Set requests, called 'command responders.'
  130.  
  131.        -  Applications which generate notifications, called
  132.           'notification originators.'
  133.  
  134.        -  Applications which receive notifications, called 'notification
  135.           receivers.'
  136.  
  137.        -  Applications which forward SNMP Get, GetNext, GetBulk, and/or
  138.           Set requests or notifications, called 'proxy forwarder.'
  139.  
  140.    Note that there are no restrictions on which types of applications
  141.    may be associated with a particular SNMP engine.  For example, a
  142.    single SNMP engine may, in fact, be associated with both command
  143.    generator and command responder applications.
  144.  
  145.  
  146. 1.1.  Command Generator Applications
  147.  
  148.    A command generator application initiates SNMP Get, GetNext, GetBulk,
  149.    and/or Set requests, as well as processing the response to a request
  150.    which it generated.
  151.  
  152.  
  153. 1.2.  Command Responder Applications
  154.  
  155.    A command responder application receives SNMP Get, GetNext, GetBulk,
  156.    and/or Set requests destined for the local system as indicated by the
  157.    fact that the contextEngineID in the received request is equal to
  158.    that of the local engine through which the request was received.  The
  159.    command responder application will perform the appropriate protocol
  160.    operation, using access control, and will generate a response message
  161.    to be sent to the request's originator.
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171. SNMPv3 Working Group       Expires April 1998             [Page 3]
  172.  
  173. Internet Draft            SNMPv3 Applications            28 October 1997
  174.  
  175.  
  176. 1.3.  Notification Originator Applications
  177.  
  178.    A notification originator application conceptually monitors a system
  179.    for particular events or conditions, and generates Trap and/or Inform
  180.    messages based on these events or conditions.  A notification
  181.    originator must have a mechanism for determining where to send
  182.    messages, and what SNMP version and security parameters to use when
  183.    sending messages.  A mechanism and MIB module for this purpose is
  184.    provided in this document.
  185.  
  186.  
  187. 1.4.  Notification Receiver Applications
  188.  
  189.    A notification receiver application listens for notification
  190.    messages, and generates response messages when a message containing
  191.    an Inform PDU is received.
  192.  
  193.  
  194. 1.5.  Proxy Forwarder Applications
  195.  
  196.    A proxy forwarder application forwards SNMP messages.  Note that
  197.    implementation of a proxy forwarder application is optional.  The
  198.    sections describing proxy (4.5, 5.3, and 8) may be skipped for
  199.    implementations that do not include a proxy forwarder application.
  200.  
  201.    The term "proxy" has historically been used very loosely, with
  202.    multiple different meanings.  These different meanings include (among
  203.    others):
  204.  
  205. (1)  the forwarding of SNMP requests to other SNMP entities without
  206.      regard for what managed object types are being accessed; for
  207.      example, in order to forward an SNMP request from one transport
  208.      domain to another, or to translate SNMP requests of one version
  209.      into SNMP requests of another version;
  210.  
  211. (2)  the translation of SNMP requests into operations of some non-SNMP
  212.      management protocol; and
  213.  
  214. (3)  support for aggregated managed objects where the value of one
  215.      managed object instance depends upon the values of multiple other
  216.      (remote) items of management information.
  217.  
  218.    Each of these scenarios can be advantageous; for example, support for
  219.    aggregation of management information can significantly reduce the
  220.    bandwidth requirements of large-scale management activities.
  221.    However, using a single term to cover multiple different scenarios
  222.    causes confusion.
  223.  
  224.  
  225.  
  226.  
  227.  
  228. SNMPv3 Working Group       Expires April 1998             [Page 4]
  229.  
  230. Internet Draft            SNMPv3 Applications            28 October 1997
  231.  
  232.  
  233.    To avoid such confusion, this document uses the term "proxy" with a
  234.    much more tightly defined meaning.  The term "proxy" is used in this
  235.    document to refer to a proxy forwarder application which forwards
  236.    either SNMP requests, notifications, and responses without regard for
  237.    what managed objects are contained within requests or notifications.
  238.    This definition is most closely related to the first definition
  239.    above.  Note, however, that in the SNMP architecture [SNMP-ARCH], a
  240.    proxy forwarder is actually an application, and need not be
  241.    associated with what is traditionally thought of as an SNMP agent.
  242.  
  243.    Specifically, the distinction between a traditional SNMP agent and a
  244.    proxy forwarder application is simple:
  245.  
  246.        -  a proxy forwarder application forwards requests and/or
  247.           notifications to other SNMP engines according to the context,
  248.           and irrespective of the specific managed object types being
  249.           accessed, and forwards the response to such previously
  250.           forwarded messages back to the SNMP engine from which the
  251.           original message was received;
  252.  
  253.        -  in contrast, the command responder application that is part of
  254.           what is traditionally thought of as an SNMP agent, and which
  255.           processes SNMP requests according to the (names of the)
  256.           individual managed object types and instances being accessed,
  257.           is NOT a proxy forwarder application from the perspective of
  258.           this document.
  259.  
  260.    Thus, when a proxy forwarder application forwards a request or
  261.    notification for a particular contextEngineID / contextName pair, not
  262.    only is the information on how to forward the request specifically
  263.    associated with that context, but the proxy forwarder application has
  264.    no need of a detailed definition of a MIB view (since the proxy
  265.    forwarder application forwards the request irrespective of the
  266.    managed object types).
  267.  
  268.    In contrast, a command responder application must have the detailed
  269.    definition of the MIB view, and even if it needs to issue requests to
  270.    other entities, via SNMP or otherwise, that need is dependent on the
  271.    individual managed object instances being accessed (i.e., not only on
  272.    the context).
  273.  
  274.    Note that it is a design goal of a proxy forwarder application to act
  275.    as an intermediary between the endpoints of a transaction.  In
  276.    particular, when forwarding Inform requests, the associated response
  277.    is forwarded when it is received from the target to which the Inform
  278.    request was forwarded, rather than generating a response immediately
  279.    when an Inform request is received.
  280.  
  281.  
  282.  
  283.  
  284.  
  285. SNMPv3 Working Group       Expires April 1998             [Page 5]
  286.  
  287. Internet Draft            SNMPv3 Applications            28 October 1997
  288.  
  289.  
  290. 2.  Management Targets
  291.  
  292.    Some types of applications (notification generators and proxy
  293.    forwarders in particular) require a mechanism for determining where
  294.    and how to send generated messages.  This document provides a
  295.    mechanism and MIB module for this purpose.  The set of information
  296.    that describes where and how to send a message is called a
  297.    'Management Target', and consists of two kinds of information:
  298.  
  299.        -  Destination information, consisting of a transport domain and
  300.           a transport address.  This is also termed a transport
  301.           endpoint.
  302.  
  303.        -  SNMP parameters, consisting of message processing model,
  304.           security model, security level, and security name information.
  305.  
  306.    The SNMP-TARGET-MIB module described later in this document contains
  307.    one table for each of these types of information.  There can be a
  308.    many-to-many relationship in the MIB between these two types of
  309.    information.  That is, there may be multiple transport endpoints
  310.    associated with a particular set of SNMP parameters, or a particular
  311.    transport endpoint may be associated with several sets of SNMP
  312.    parameters.
  313.  
  314.  
  315. 3.  Elements Of Procedure
  316.  
  317.    The following sections describe the procedures followed by each type
  318.    of application when generating messages for transmission or when
  319.    processing received messages.  Applications communicate with the
  320.    Dispatcher using the abstract service interfaces defined in [SNMP-
  321.    ARCH].
  322.  
  323.  
  324. 3.1.  Command Generator Applications
  325.  
  326.    A command generator initiates an SNMP request by calling the
  327.    Dispatcher using the following abstract service interface:
  328.  
  329.        statusInformation =              -- sendPduHandle if success
  330.                                         -- errorIndication if failure
  331.          sendPdu(
  332.          IN   transportDomain           -- transport domain to be used
  333.          IN   transportAddress          -- destination network address
  334.          IN   messageProcessingModel    -- typically, SNMP version
  335.          IN   securityModel             -- Security Model to use
  336.          IN   securityName              -- on behalf of this principal
  337.  
  338.  
  339.  
  340.  
  341.  
  342. SNMPv3 Working Group       Expires April 1998             [Page 6]
  343.  
  344. Internet Draft            SNMPv3 Applications            28 October 1997
  345.  
  346.  
  347.          IN   securityLevel             -- Level of Security requested
  348.          IN   contextEngineID           -- data from/at this entity
  349.          IN   contextName               -- data from/in this context
  350.          IN   pduVersion                -- the version of the PDU
  351.          IN   PDU                       -- SNMP Protocol Data Unit
  352.          IN   expectResponse            -- TRUE or FALSE
  353.               )
  354.  
  355.    Where:
  356.  
  357.        -  The transportDomain is that of the destination of the message.
  358.  
  359.        -  The transportAddress is that of the destination of the
  360.           message.
  361.  
  362.        -  The messageProcessingModel indicates which Message Processing
  363.           Model the application wishes to use.
  364.  
  365.        -  The securityModel is the security model that the application
  366.           wishes to use.
  367.  
  368.        -  The securityName is the security model independent name for
  369.           the principal on whose behalf the application wishes the
  370.           message is to be generated.
  371.  
  372.        -  The securityLevel is the security level that the application
  373.           wishes to use.
  374.  
  375.        -  The contextEngineID is provided by the command generator if it
  376.           wishes to explicitly specify the location of the management
  377.           information it is requesting.
  378.  
  379.        -  The contextName is provided by the command generator if it
  380.           wishes to explicitly specify the local context name for the
  381.           management information it is requesting.
  382.  
  383.        -  The pduVersion indicates the version of the PDU to be sent.
  384.  
  385.        -  The PDU is a value constructed by the command generator
  386.           containing the management operation that the command generator
  387.           wishes to perform.
  388.  
  389.        -  The expectResponse argument indicates that a response is
  390.           expected.
  391.  
  392.    The result of the sendPdu interface indicates whether the PDU was
  393.    successfully sent.  If it was successfully sent, the returned value
  394.  
  395.  
  396.  
  397.  
  398.  
  399. SNMPv3 Working Group       Expires April 1998             [Page 7]
  400.  
  401. Internet Draft            SNMPv3 Applications            28 October 1997
  402.  
  403.  
  404.    will be a sendPduHandle.  The command generator should store the
  405.    sendPduHandle so that it can correlate a response to the original
  406.    request.
  407.  
  408.    The Dispatcher is responsible for delivering the response to a
  409.    particular request to the correct command generator application.  The
  410.    abstract service interface used is:
  411.  
  412.        processResponsePdu(              -- process Response PDU
  413.          IN   messageProcessingModel    -- typically, SNMP version
  414.          IN   securityModel             -- Security Model in use
  415.          IN   securityName              -- on behalf of this principal
  416.          IN   securityLevel             -- Level of Security
  417.          IN   contextEngineID           -- data from/at this SNMP entity
  418.          IN   contextName               -- data from/in this context
  419.          IN   pduVersion                -- the version of the PDU
  420.          IN   PDU                       -- SNMP Protocol Data Unit
  421.          IN   statusInformation         -- success or errorIndication
  422.          IN   sendPduHandle             -- handle from sendPDU
  423.               )
  424.  
  425.    Where:
  426.  
  427.        -  The messageProcessingModel is the value from the received
  428.           response.
  429.  
  430.        -  The securityModel is the value from the received response.
  431.  
  432.        -  The securityName is the value from the received response.
  433.  
  434.        -  The securityLevel is the value from the received response.
  435.  
  436.        -  The contextEngineID is the value from the received response.
  437.  
  438.        -  The contextName is the value from the received response.
  439.  
  440.        -  The pduVersion indicates the version of the PDU in the
  441.           received response.
  442.  
  443.        -  The PDU is the value from the received response.
  444.  
  445.        -  The statusInformation indicates success or failure in
  446.           receiving the response.
  447.  
  448.        -  The sendPduHandle is the value returned by the sendPdu call
  449.           which generated the original request to which this is a
  450.           response.
  451.  
  452.  
  453.  
  454.  
  455.  
  456. SNMPv3 Working Group       Expires April 1998             [Page 8]
  457.  
  458. Internet Draft            SNMPv3 Applications            28 October 1997
  459.  
  460.  
  461.    The procedure when a command generator receives a message is as
  462.    follows:
  463.  
  464. (1)  If the received values of messageProcessingModel, securityModel,
  465.      securityName, contextEngineID, contextName, and pduVersion are not
  466.      all equal to the values used in the original request, the response
  467.      is discarded.
  468.  
  469. (2)  The operation type, request-id, error-status, error-index, and
  470.      variable-bindings are extracted from the PDU and saved.  If the
  471.      request-id is not equal to the value used in the original request,
  472.      the response is discarded.
  473.  
  474. (3)  At this point, it is up to the application to take an appropriate
  475.      action.  The specific action is implementation dependent.  If the
  476.      statusInformation indicates that the request failed, an appropriate
  477.      action might be to attempt to transmit the request again, or to
  478.      notify the person operating the application that a failure
  479.      occurred.
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512. SNMPv3 Working Group       Expires April 1998             [Page 9]
  513.  
  514. Internet Draft            SNMPv3 Applications            28 October 1997
  515.  
  516.  
  517. 3.2.  Command Responder Applications
  518.  
  519.    Before a command responder application can process messages, it must
  520.    first associate itself with an SNMP engine.  The abstract service
  521.    interface used for this purpose is:
  522.  
  523.        statusInformation =        -- success or errorIndication
  524.          registerContextEngineID(
  525.          IN   contextEngineID     -- take responsibility for this one
  526.          IN   pduType             -- the pduType(s) to be registered
  527.               )
  528.  
  529.    Where:
  530.  
  531.        -  The statusInformation indicates success or failure of the
  532.           registration attempt.
  533.  
  534.        -  The contextEngineID is equal to the snmpEngineID of the SNMP
  535.           engine with which the command responder is registering.
  536.  
  537.        -  The pduType indicates a Get, GetNext, GetBulk, or Set pdu.
  538.  
  539.    Note that if another command responder application is already
  540.    registered with an SNMP engine, any further attempts to register with
  541.    the same contextEngineID and pduType will be denied.  This implies
  542.    that separate command responder applications could register
  543.    separately for the various pdu types.  However, in practice this is
  544.    undesirable, and only a single command responder application should
  545.    be registered with an SNMP engine at any given time.
  546.  
  547.    A command responder application can disassociate with an SNMP engine
  548.    using the following abstract service interface:
  549.  
  550.        unregisterContextEngineID(
  551.          IN   contextEngineID     -- give up responsibility for this one
  552.          IN   pduType             -- the pduType(s) to be unregistered
  553.               )
  554.  
  555.    Where:
  556.  
  557.        -  The contextEngineID is equal to the snmpEngineID of the SNMP
  558.           engine with which the command responder is cancelling the
  559.           registration.
  560.  
  561.        -  The pduType indicates a Get, GetNext, GetBulk, or Set pdu.
  562.  
  563.    Once the command responder has registered with the SNMP engine, it
  564.  
  565.  
  566.  
  567.  
  568.  
  569. SNMPv3 Working Group       Expires April 1998            [Page 10]
  570.  
  571. Internet Draft            SNMPv3 Applications            28 October 1997
  572.  
  573.  
  574.    waits to receive SNMP messages.  The abstract service interface used
  575.    for receiving messages is:
  576.  
  577.    processPdu(                     -- process Request/Notification PDU
  578.      IN   messageProcessingModel   -- typically, SNMP version
  579.      IN   securityModel            -- Security Model in use
  580.      IN   securityName             -- on behalf of this principal
  581.      IN   securityLevel            -- Level of Security
  582.      IN   contextEngineID          -- data from/at this SNMP entity
  583.      IN   contextName              -- data from/in this context
  584.      IN   pduVersion               -- the version of the PDU
  585.      IN   PDU                      -- SNMP Protocol Data Unit
  586.      IN   maxSizeResponseScopedPDU -- maximum size of the Response PDU
  587.      IN   stateReference           -- reference to state information
  588.           )                        -- needed when sending a response
  589.  
  590.    Where:
  591.  
  592.        -  The messageProcessingModel indicates which Message Processing
  593.           Model received and processed the message.
  594.  
  595.        -  The securityModel is the value from the received message.
  596.  
  597.        -  The securityName is the value from the received message.
  598.  
  599.        -  The securityLevel is the value from the received message.
  600.  
  601.        -  The contextEngineID is the value from the received message.
  602.  
  603.        -  The contextName is the value from the received message.
  604.  
  605.        -  The pduVersion indicates the version of the PDU in the
  606.           received message.
  607.  
  608.        -  The PDU is the value from the received message.
  609.  
  610.        -  The maxSizeResponseScopedPDU is the maximum allowable size of
  611.           a ScopedPDU containing a Response PDU (based on the maximum
  612.           message size that the originator of the message can accept).
  613.  
  614.        -  The stateReference is a value which references cached
  615.           information about each received request message.  This value
  616.           must be returned to the Dispatcher in order to generate a
  617.           response.
  618.  
  619.    The procedure when a message is received is as follows.
  620.  
  621.  
  622.  
  623.  
  624.  
  625. SNMPv3 Working Group       Expires April 1998            [Page 11]
  626.  
  627. Internet Draft            SNMPv3 Applications            28 October 1997
  628.  
  629.  
  630. (1)  The operation type is determined from the ASN.1 tag value
  631.      associated with the PDU parameter.  The operation type should
  632.      always be one of the types previously registered by the
  633.      application.
  634.  
  635. (2)  The request-id is extracted from the PDU and saved.
  636.  
  637. (3)  If the SNMPv2 operation type is GetBulk, the non-repeaters and
  638.      max-repetitions values are extracted from the PDU and saved.
  639.  
  640. (4)  The variable-bindings are extracted from the PDU and saved.
  641.  
  642. (5)  The management operation represented by the SNMPv2 operation type
  643.      is performed with respect to the relevant MIB view within the
  644.      context named by the contextName, according to the procedures set
  645.      forth in [RFC1905].  The relevant MIB view is determined by the
  646.      securityLevel, securityModel, contextName, securityName, and SNMPv2
  647.      operation type.  To determine whether a particular object instance
  648.      is within the relevant MIB view, the following abstract service
  649.      interface is called:
  650.  
  651.          statusInformation =      -- success or errorIndication
  652.            isAccessAllowed(
  653.            IN   securityModel     -- Security Model in use
  654.            IN   securityName      -- principal who wants to access
  655.            IN   securityLevel     -- Level of Security
  656.            IN   viewType          -- read, write, or notify view
  657.            IN   contextName       -- context containing variableName
  658.            IN   variableName      -- OID for the managed object
  659.                 )
  660.  
  661.      Where:
  662.  
  663.        -  The securityModel is the value from the received message.
  664.  
  665.        -  The securityName is the value from the received message.
  666.  
  667.        -  The securityLevel is the value from the received message.
  668.  
  669.        -  The viewType indicates whether the PDU type is a read or write
  670.           operation.
  671.  
  672.        -  The contextName is the value from the received message.
  673.  
  674.        -  The variableName is the object instance of the variable for
  675.           which access rights are to be checked.
  676.  
  677.  
  678.  
  679.  
  680.  
  681. SNMPv3 Working Group       Expires April 1998            [Page 12]
  682.  
  683. Internet Draft            SNMPv3 Applications            28 October 1997
  684.  
  685.  
  686.      Normally, the result of the management operation will be a new PDU
  687.      value, and processing will continue in step (6) below.  However, at
  688.      any time during the processing of the management operation:
  689.  
  690.        -  If the isAccessAllowed ASI returns a noSuchView,
  691.           noAccessEntry, or noGroupName error, processing of the
  692.           management operation is halted, a PDU value is contructed
  693.           using the values from the originally received PDU, but
  694.           replacing the error_status with an authorizationError code,
  695.           and error_index value of 0, and control is passed to step (6)
  696.           below.
  697.  
  698.        -  If the isAccessAllowed ASI returns an otherError, processing
  699.           of the management operation is halted, a different PDU value
  700.           is contructed using the values from the originally received
  701.           PDU, but replacing the error_status with a genError code, and
  702.           control is passed to step (6) below.
  703.  
  704.        -  If the isAccessAllowed ASI returns a noSuchContext error,
  705.           processing of the management operation is halted, no result
  706.           PDU is generated, the snmpUnknownContexts counter is
  707.           incremented, and control is passed to step (6) below.
  708.  
  709.        -  If the context named by the contextName parameter is
  710.           unavailable, processing of the management operation is halted,
  711.           no result PDU is generated, the snmpUnavailableContexts
  712.           counter is incremented, and control is passed to step (6)
  713.           below.
  714.  
  715.  
  716. (6)  The Dispatcher is called to generate a response or report message.
  717.      The abstract service interface is:
  718.  
  719.      returnResponsePdu(
  720.        IN   messageProcessingModel   -- typically, SNMP version
  721.        IN   securityModel            -- Security Model in use
  722.        IN   securityName             -- on behalf of this principal
  723.        IN   securityLevel            -- same as on incoming request
  724.        IN   contextEngineID          -- data from/at this SNMP entity
  725.        IN   contextName              -- data from/in this context
  726.        IN   pduVersion               -- the version of the PDU
  727.        IN   PDU                      -- SNMP Protocol Data Unit
  728.        IN   maxSizeResponseScopedPDU -- maximum size of the Response PDU
  729.        IN   stateReference           -- reference to state information
  730.                                      -- as presented with the request
  731.        IN   statusInformation        -- success or errorIndication
  732.             )                        -- error counter OID/value if error
  733.  
  734.  
  735.  
  736.  
  737.  
  738. SNMPv3 Working Group       Expires April 1998            [Page 13]
  739.  
  740. Internet Draft            SNMPv3 Applications            28 October 1997
  741.  
  742.  
  743.      Where:
  744.  
  745.        -  The messageProcessingModel is the value from the processPdu
  746.           call.
  747.  
  748.        -  The securityModel is the value from the processPdu call.
  749.  
  750.        -  The securityName is the value from the processPdu call.
  751.  
  752.        -  The securityLevel is the value from the processPdu call.
  753.  
  754.        -  The contextEngineID is the value from the processPdu call.
  755.  
  756.        -  The contextName is the value from the processPdu call.
  757.  
  758.        -  The pduVersion indicates the version of the PDU to be
  759.           returned.  If no result PDU was generated, the pduVersion is
  760.           an undefined value.
  761.  
  762.        -  The PDU is the result generated in step (5) above.  If no
  763.           result PDU was generated, the PDU is an undefined value.
  764.  
  765.        -  The maxSizeResponseScopedPDU is a local value indicating the
  766.           maximum size of a ScopedPDU that the application can accept.
  767.  
  768.        -  The stateReference is the value from the processPdu call.
  769.  
  770.        -  The statusInformation either contains an indication that no
  771.           error occurred and that a response should be generated, or
  772.           contains an indication that an error occurred along with the
  773.           OID and counter value of the appropriate error counter object.
  774.  
  775.    Note that a command responder application should always call the
  776.    returnResponsePdu abstract service interface, even in the event of an
  777.    error such as a resource allocation error.  In the event of such an
  778.    error, the PDU value passed to returnResponsePdu should contain
  779.    appropriate values for errorStatus and errorIndex.
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794. SNMPv3 Working Group       Expires April 1998            [Page 14]
  795.  
  796. Internet Draft            SNMPv3 Applications            28 October 1997
  797.  
  798.  
  799. 3.3.  Notification Originator Applications
  800.  
  801.    A notification originator application generates SNMP notification
  802.    messages.  A notification message may, for example, contain an
  803.    SNMPv2-Trap PDU or an Inform PDU.  However, a particular
  804.    implementation is not required to be capable of generating both types
  805.    of messages.
  806.  
  807.    Notification originator applications require a mechanism for
  808.    identifying the management targets to which notifications should be
  809.    sent.  The particular mechanism used is implementation dependent.
  810.    However, if an implementation makes the configuration of management
  811.    targets SNMP manageable, it MUST use the SNMP-TARGET-MIB module
  812.    described in this document.
  813.  
  814.    When a notification originator wishes to generate a notification, it
  815.    must first determine in which context the information to be conveyed
  816.    in the notification exists, i.e., it must determine the
  817.    contextEngineID and contextName.  It must then determine the set of
  818.    management targets to which the notification should be sent.  The
  819.    application must also determine, for each management target, whether
  820.    the notification message should contain an SNMPv2-Trap PDU or Inform
  821.    PDU, and if it is to contain an Inform PDU, the number of retries and
  822.    retransmission algorithm.
  823.  
  824.    The mechanism by which a notification originator determines this
  825.    information is implementation dependent.  Once the application has
  826.    determined this information, the following procedure is performed for
  827.    each management target:
  828.  
  829. (1)  Any appropriate filtering mechanisms are applied to determine
  830.      whether the notification should be sent to the management target.
  831.      If such filtering mechanisms determine that the notification should
  832.      not be sent, processing continues with the next management target.
  833.      Otherwise,
  834.  
  835. (2)  The appropriate set of variable-bindings is retrieved from local
  836.      MIB instrumentation within the relevant MIB view.  The relevant MIB
  837.      view is determined by the securityLevel, securityModel,
  838.      contextName, and securityName of the management target.  To
  839.      determine whether a particular object instance is within the
  840.      relevant MIB view, the isAccessAllowed abstract service interface
  841.      is used, in the same manner as described in the preceding section.
  842.      If the statusInformation returned by isAccessAllowed does not
  843.      indicate accessAllowed, the notification is not sent to the
  844.      management target.
  845.  
  846.  
  847.  
  848.  
  849.  
  850. SNMPv3 Working Group       Expires April 1998            [Page 15]
  851.  
  852. Internet Draft            SNMPv3 Applications            28 October 1997
  853.  
  854.  
  855. (3)  A PDU is constructed using a locally unique request-id value, an
  856.      operation type of SNMPv2-Trap or Inform, an error-status and
  857.      error-index value of 0, and the variable-bindings supplied
  858.      previously in step (2).
  859.  
  860. (4)  If the notification contains an SNMPv2-Trap PDU, the Dispatcher is
  861.      called using the following abstract service interface:
  862.  
  863.          statusInformation =              -- sendPduHandle if success
  864.                                           -- errorIndication if failure
  865.            sendPdu(
  866.            IN   transportDomain           -- transport domain to be used
  867.            IN   transportAddress          -- destination network address
  868.            IN   messageProcessingModel    -- typically, SNMP version
  869.            IN   securityModel             -- Security Model to use
  870.            IN   securityName              -- on behalf of this principal
  871.            IN   securityLevel             -- Level of Security requested
  872.            IN   contextEngineID           -- data from/at this entity
  873.            IN   contextName               -- data from/in this context
  874.            IN   pduVersion                -- the version of the PDU
  875.            IN   PDU                       -- SNMP Protocol Data Unit
  876.            IN   expectResponse            -- TRUE or FALSE
  877.                 )
  878.  
  879.      Where:
  880.  
  881.        -  The transportDomain is that of the management target.
  882.  
  883.        -  The transportAddress is that of the management target.
  884.  
  885.        -  The messageProcessingModel is that of the management target.
  886.  
  887.        -  The securityModel is that of the management target.
  888.  
  889.        -  The securityName is that of the management target.
  890.  
  891.        -  The securityLevel is that of the management target.
  892.  
  893.        -  The contextEngineID is the value originally determined for the
  894.           notification.
  895.  
  896.        -  The contextName is the value originally determined for the
  897.           notification.
  898.  
  899.        -  The pduVersion is the version of the PDU to be sent.
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906. SNMPv3 Working Group       Expires April 1998            [Page 16]
  907.  
  908. Internet Draft            SNMPv3 Applications            28 October 1997
  909.  
  910.  
  911.        -  The PDU is the value constructed in step (3) above.
  912.  
  913.        -  The expectResponse argument indicates that no response is
  914.           expected.
  915.  
  916.      Otherwise,
  917.  
  918. (5)  If the notification contains an Inform PDU, then:
  919.  
  920.       a)  The Dispatcher is called using the sendPdu abstract service
  921.           interface as described in step (4) above, except that the
  922.           expectResponse argument indicates that a response is expected.
  923.  
  924.       b)   The application caches information about the management
  925.           target.
  926.  
  927.       c)  If a response is received within an appropriate time interval
  928.           from the transport endpoint of the management target, the
  929.           notification is considered acknowledged and the cached
  930.           information is deleted.  Otherwise,
  931.  
  932.       d)  If a response is not received within an appropriate time
  933.           period, or if a report indication is received, information
  934.           about the management target is retrieved from the cache, and
  935.           steps a) through d) are repeated.  The number of times these
  936.           steps are repeated is equal to the previously determined retry
  937.           count.  If this retry count is exceeded, the acknowledgement
  938.           of the notification is considered to have failed, and
  939.           processing of the notification for this management target is
  940.           halted.
  941.  
  942.    Responses to Inform PDU notifications will be received via the
  943.    processResponsePDU abstract service interface.
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962. SNMPv3 Working Group       Expires April 1998            [Page 17]
  963.  
  964. Internet Draft            SNMPv3 Applications            28 October 1997
  965.  
  966.  
  967. 3.4.  Notification Receiver Applications
  968.  
  969.    Notification receiver applications receive SNMP Notification messages
  970.    from the Dispatcher.  Before any messages can be received, the
  971.    notification receiver must register with the Dispatcher using the
  972.    registerContextEngineID abstract service interface.  The parameters
  973.    used are:
  974.  
  975.        -  The contextEngineID is an undefined 'wildcard' value.
  976.           Notifications are delivered to a registered notification
  977.           receiver regardless of the contextEngineID contained in the
  978.           notification message.
  979.  
  980.        -  The pduType indicates the type of notifications that the
  981.           application wishes to receive (for example, SNMPv2-Trap PDUs
  982.           or Inform PDUs).
  983.  
  984.    Once the notification receiver has registered with the Dispatcher,
  985.    messages are received using the processPdu abstract service
  986.    interface.  Parameters are:
  987.  
  988.        -  The messageProcessingModel indicates which Message Processing
  989.           Model received and processed the message.
  990.  
  991.        -  The securityModel is the value from the received message.
  992.  
  993.        -  The securityName is the value from the received message.
  994.  
  995.        -  The securityLevel is the value from the received message.
  996.  
  997.        -  The contextEngineID is the value from the received message.
  998.  
  999.        -  The contextName is the value from the received message.
  1000.  
  1001.        -  The pduVersion indicates the version of the PDU in the
  1002.           received message.
  1003.  
  1004.        -  The PDU is the value from the received message.
  1005.  
  1006.        -  The maxSizeResponseScopedPDU is the maximum allowable size of
  1007.           a ScopedPDU containing a Response PDU (based on the maximum
  1008.           message size that the originator of the message can accept).
  1009.  
  1010.        -  If the message contains an SNMPv2-Trap PDU, the stateReference
  1011.           is undefined and unused.  Otherwise, the stateReference is a
  1012.           value which references cached information about the
  1013.           notification.  This value must be returned to the Dispatcher
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019. SNMPv3 Working Group       Expires April 1998            [Page 18]
  1020.  
  1021. Internet Draft            SNMPv3 Applications            28 October 1997
  1022.  
  1023.  
  1024.           in order to generate a response.
  1025.  
  1026.    When an SNMPv2-Trap PDU is delivered to a notification receiver
  1027.    application, it first extracts the SNMP operation type, request-id,
  1028.    error-status, error-index, and variable-bindings from the PDU.  After
  1029.    this, processing depends on the particular implementation.
  1030.  
  1031.    When an Inform PDU is received, the notification receiver application
  1032.    follows the following procedure:
  1033.  
  1034. (1)  The SNMPv2 operation type, request-id, error-status, error-index,
  1035.      and variable-bindings are extracted from the PDU.
  1036.  
  1037. (2)  A Response PDU is constructed using the extracted request-id and
  1038.      variable-bindings, and with error-status and error-index both set
  1039.      to 0.
  1040.  
  1041. (3)  The Dispatcher is called to generate a response message using the
  1042.      returnResponsePdu abstract service interface.  Parameters are:
  1043.  
  1044.        -  The messageProcessingModel is the value from the processPdu
  1045.           call.
  1046.  
  1047.        -  The securityModel is the value from the processPdu call.
  1048.  
  1049.        -  The securityName is the value from the processPdu call.
  1050.  
  1051.        -  The securityLevel is the value from the processPdu call.
  1052.  
  1053.        -  The contextEngineID is the value from the processPdu call.
  1054.  
  1055.        -  The contextName is the value from the processPdu call.
  1056.  
  1057.        -  The pduVersion indicates the version of the PDU to be
  1058.           returned.
  1059.  
  1060.        -  The PDU is the result generated in step (2) above.
  1061.  
  1062.        -  The maxSizeResponseScopedPDU is a local value indicating the
  1063.           maximum size of a ScopedPDU that the application can accept.
  1064.  
  1065.        -  The stateReference is the value from the processPdu call.
  1066.  
  1067.        -  The statusInformation indicates that no error occurred and
  1068.           that a response should be generated.
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075. SNMPv3 Working Group       Expires April 1998            [Page 19]
  1076.  
  1077. Internet Draft            SNMPv3 Applications            28 October 1997
  1078.  
  1079.  
  1080. 3.5.  Proxy Forwarder Applications
  1081.  
  1082.    A proxy forwarder application deals with forwarding SNMP messages.
  1083.    There are four basic types of messages which a proxy forwarder
  1084.    application may need to forward.  These are grouped according to the
  1085.    PDU type contained in a message, or according to whether a report
  1086.    indication is contained in the message.  The four basic types of
  1087.    messages are:
  1088.  
  1089.        -  Those containing PDU types which were generated by a command
  1090.           generator application (for example, Get, GetNext, GetBulk, and
  1091.           Set PDU types).  These deal with requesting or modifying
  1092.           information located within a particular context.
  1093.  
  1094.        -  Those containing PDU types which were generated by a
  1095.           notification originator application (for example, SNMPv2-Trap
  1096.           and Inform PDU types).  These deal with notifications
  1097.           concerning information located within a particular context.
  1098.  
  1099.        -  Those containing a Response PDU type.  Forwarding of Response
  1100.           PDUs always occurs as a result of receiving a response to a
  1101.           previously forwarded message.
  1102.  
  1103.        -  Those containing a report indication.  Forwarding of report
  1104.           indications always occurs as a result of receiving a report
  1105.           indication for a previously forwarded message.
  1106.  
  1107.    For the first type, the proxy forwarder's role is to deliver a
  1108.    request for management information to an SNMP engine which is
  1109.    "closer" or "downstream in the path" to the SNMP engine which has
  1110.    access to that information, and to deliver the response containing
  1111.    the information back to the SNMP engine from which the request was
  1112.    received.  The context information in a request is used to determine
  1113.    which SNMP engine has access to the requested information, and this
  1114.    is used to determine where and how to forward the request.
  1115.  
  1116.    For the second type, the proxy forwarder's role is to determine which
  1117.    SNMP engines should receive notifications about management
  1118.    information from a particular location.  The context information in a
  1119.    notification message determines the location to which the information
  1120.    contained in the notification applies.  This is used to determine
  1121.    which SNMP engines should receive notification about this
  1122.    information.
  1123.  
  1124.    For the third type, the proxy forwarder's role is to determine which
  1125.    previously forwarded request or notification (if any) the response
  1126.    matches, and to forward the response back to the initiator of the
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132. SNMPv3 Working Group       Expires April 1998            [Page 20]
  1133.  
  1134. Internet Draft            SNMPv3 Applications            28 October 1997
  1135.  
  1136.  
  1137.    request or notification.
  1138.  
  1139.    For the fourth type, the proxy forwarder's role is to determine which
  1140.    previously forwarded request or notification (if any) the report
  1141.    indication matches, and to forward the report indication back to the
  1142.    initiator of the request or notification.
  1143.  
  1144.    When forwarding messages, a proxy forwarder application must perform
  1145.    a translation of incoming management target information into outgoing
  1146.    management target information.  How this translation is performed is
  1147.    implementation specific.  In many cases, this will be driven by a
  1148.    preconfigured translation table.  If a proxy forwarder application
  1149.    makes the contents of this table SNMP manageable, it MUST use the
  1150.    SNMP-PROXY-MIB module defined in this document.
  1151.  
  1152.  
  1153. 3.5.1.  Request Forwarding
  1154.  
  1155.    There are two phases for request forwarding.  First, the incoming
  1156.    request needs to be passed through the proxy application.  Then, the
  1157.    resulting response needs to be passed back.  These phases are
  1158.    described in the following two sections.
  1159.  
  1160.  
  1161. 3.5.1.1.  Processing an Incoming Request
  1162.  
  1163.    A proxy forwarder application that wishes to forward request messages
  1164.    must first register with the Dispatcher using the
  1165.    registerContextEngineID abstract service interface.  The proxy
  1166.    forwarder must register each contextEngineID for which it wishes to
  1167.    forward messages, as well as for each pduType.  Note that as the
  1168.    configuration of a proxy forwarder is changed, the particular
  1169.    contextEngineID values for which it is forwarding may change.  The
  1170.    proxy forwarder should call the registerContextEngineID and
  1171.    unregisterContextEngineID abstract service interfaces as needed to
  1172.    reflect its current configuration.
  1173.  
  1174.    A proxy forwarder application should never attempt to register a
  1175.    value of contextEngineID which is equal to the snmpEngineID of the
  1176.    SNMP engine to which the proxy forwarder is associated.
  1177.  
  1178.    Once the proxy forwarder has registered for the appropriate
  1179.    contextEngineId values, it can start processing messages.  The
  1180.    following procedure is used:
  1181.  
  1182. (1)  A message is received using the processPdu abstract service
  1183.      interface.  The incoming management target information received
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189. SNMPv3 Working Group       Expires April 1998            [Page 21]
  1190.  
  1191. Internet Draft            SNMPv3 Applications            28 October 1997
  1192.  
  1193.  
  1194.      from the processPdu interface is translated into outgoing
  1195.      management target information.  Note that this translation may vary
  1196.      for different values of contextEngineID and/or contextName.  The
  1197.      translation should result in a single management target.
  1198.  
  1199. (2)  If appropriate outgoing management target information cannot be
  1200.      found, the proxy forwarder increments the snmpProxyDrops counter
  1201.      [RFC1907], and then calls the Dispatcher using the
  1202.      returnResponsePdu abstract service interface.  Parameters are:
  1203.  
  1204.        -  The messageProcessingModel is the value from the processPdu
  1205.           call.
  1206.  
  1207.        -  The securityModel is the value from the processPdu call.
  1208.  
  1209.        -  The securityName is the value from the processPdu call.
  1210.  
  1211.        -  The securityLevel is the value from the processPdu call.
  1212.  
  1213.        -  The contextEngineID is the value from the processPdu call.
  1214.  
  1215.        -  The contextName is the value from the processPdu call.
  1216.  
  1217.        -  The pduVersion is the value from the processPdu call.
  1218.  
  1219.        -  The PDU is an undefined value.
  1220.  
  1221.        -  The maxSizeResponseScopedPDU is a local value indicating the
  1222.           maximum size of a ScopedPDU that the application can accept.
  1223.  
  1224.        -  The stateReference is the value from the processPdu call.
  1225.  
  1226.        -  The statusInformation indicates that an error occurred and
  1227.           includes the OID and value of the snmpProxyDrops object.
  1228.  
  1229.      Processing of the message stops at this point.  Otherwise,
  1230.  
  1231. (3)  A new PDU is constructed.  A unique value of request-id should be
  1232.      used in the new PDU (this value will enable a subsequent response
  1233.      message to be correlated with this request).  The remainder of the
  1234.      new PDU is identical to the received PDU, unless the incoming SNMP
  1235.      version is SNMPv2 or SNMPv3 and the outgoing SNMP version is
  1236.      SNMPv1, in which case the proxy forwarder must apply the
  1237.      translation rules as documented in [RFC1908].
  1238.  
  1239. (4)  The proxy forwarder calls the Dispatcher to generate the forwarded
  1240.      message, using the sendPdu abstract service interface.  The
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246. SNMPv3 Working Group       Expires April 1998            [Page 22]
  1247.  
  1248. Internet Draft            SNMPv3 Applications            28 October 1997
  1249.  
  1250.  
  1251.      parameters are:
  1252.  
  1253.        -  The transportDomain is that of the outgoing management target.
  1254.  
  1255.        -  The transportAddress is that of the outgoing management
  1256.           target.
  1257.  
  1258.        -  The messageProcessingModel is that of the outgoing management
  1259.           target.
  1260.  
  1261.        -  The securityModel is that of the outgoing management target.
  1262.  
  1263.        -  The securityName is that of the outgoing management target.
  1264.  
  1265.        -  The securityLevel is that of the outgoing management target.
  1266.  
  1267.        -  The contextEngineID is the value originally received.
  1268.  
  1269.        -  The contextName is the value originally received.
  1270.  
  1271.        -  The pduVersion is the version of the PDU to be sent.
  1272.  
  1273.        -  The PDU is the value constructed in step (3) above.
  1274.  
  1275.        -  The expectResponse argument indicates that a response is
  1276.           expected.  If the sendPdu call is unsuccessful, the proxy
  1277.           forwarder performs the steps described in (2) above.
  1278.           Otherwise:
  1279.  
  1280. (5)  The proxy forwarder caches the following information in order to
  1281.      match an incoming response to the forwarded request:
  1282.  
  1283.        -  The sendPduHandle returned from the call to sendPdu,
  1284.  
  1285.        -  The request-id from the received PDU.
  1286.  
  1287.        -  the contextEngineID,
  1288.  
  1289.        -  the contextName,
  1290.  
  1291.        -  the stateReference,
  1292.  
  1293.        -  the incoming management target information,
  1294.  
  1295.        -  the outgoing management information,
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302. SNMPv3 Working Group       Expires April 1998            [Page 23]
  1303.  
  1304. Internet Draft            SNMPv3 Applications            28 October 1997
  1305.  
  1306.  
  1307.        -  any other information needed to match an incoming response to
  1308.           the forwarded request.
  1309.  
  1310.      If this information cannot be cached (possibly due to a lack of
  1311.      resources), the proxy forwarder performs the steps described in (2)
  1312.      above.  Otherwise:
  1313.  
  1314. (6)  Processing of the request stops until a response to the forwarded
  1315.      request is received, or until an appropriate time interval has
  1316.      expired.  If this time interval expires before a response has been
  1317.      received, the cached information about this request is removed.
  1318.  
  1319.  
  1320. 3.5.1.2.  Processing an Incoming Response
  1321.  
  1322.    A proxy forwarder follows the following procedure when an incoming
  1323.    response is received:
  1324.  
  1325. (1)  The incoming response is received using the processResponsePdu
  1326.      interface.  The proxy forwarder uses the received parameters to
  1327.      locate an entry in its cache of pending forwarded requests.  This
  1328.      is done by matching the received parameters with the cached values
  1329.      of sendPduHandle, contextEngineID, contextName, outgoing management
  1330.      target information, and the request-id contained in the received
  1331.      PDU (the proxy forwarder must extract the request-id for this
  1332.      purpose).  If an appropriate cache entry cannot be found,
  1333.      processing of the response is halted.  Otherwise:
  1334.  
  1335. (2)  The cache information is extracted, and removed from the cache.
  1336.  
  1337. (3)  A new Response PDU is constructed, using the request-id value from
  1338.      the original forwarded request (as extracted from the cache).  All
  1339.      other values are identical to those in the received Response PDU.
  1340.  
  1341. (4)  If the incoming SNMP version is SNMPv1 and the outgoing SNMP
  1342.      version is SNMPv2 or SNMPv3, the proxy forwarder must apply the
  1343.      translation rules documented in [RFC1908].
  1344.  
  1345. (5)  The proxy forwarder calls the Dispatcher using the
  1346.      returnResponsePdu abstract service interface.  Parameters are:
  1347.  
  1348.        -  The messageProcessingModel indicates the Message Processing
  1349.           Model by which the original incoming message was processed.
  1350.  
  1351.        -  The securityModel is that of the original incoming management
  1352.           target extracted from the cache.
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358. SNMPv3 Working Group       Expires April 1998            [Page 24]
  1359.  
  1360. Internet Draft            SNMPv3 Applications            28 October 1997
  1361.  
  1362.  
  1363.        -  The securityName is that of the original incoming management
  1364.           target extracted from the cache.
  1365.  
  1366.        -  The securityLevel is that of the original incoming management
  1367.           target extracted from the cache.
  1368.  
  1369.        -  The contextEngineID is the value extracted from the cache.
  1370.  
  1371.        -  The contextName is the value extracted from the cache.
  1372.  
  1373.        -  The pduVersion indicates the version of the PDU to be
  1374.           returned.
  1375.  
  1376.        -  The PDU is the (possibly translated) Response PDU.
  1377.  
  1378.        -  The maxSizeResponseScopedPDU is a local value indicating the
  1379.           maximum size of a ScopedPDU that the application can accept.
  1380.  
  1381.        -  The stateReference is the value extracted from the cache.
  1382.  
  1383.        -  The statusInformation indicates that no error occurred and
  1384.           that a Response PDU message should be generated.
  1385.  
  1386.  
  1387. 3.5.1.3.  Processing an Incoming Report Indication
  1388.  
  1389.    A proxy forwarder follows the following procedure when an incoming
  1390.    report indication is received:
  1391.  
  1392. (1)  The incoming report indication is received using the
  1393.      processResponsePdu interface.  The proxy forwarder uses the
  1394.      received parameters to locate an entry in its cache of pending
  1395.      forwarded requests.  This is done by matching the received
  1396.      parameters with the cached values of sendPduHandle.  If an
  1397.      appropriate cache entry cannot be found, processing of the report
  1398.      indication is halted.  Otherwise:
  1399.  
  1400. (2)  The cache information is extracted, and removed from the cache.
  1401.  
  1402. (3)  If the original incoming management target information indicates
  1403.      SNMPv1, processing of the report indication is halted.
  1404.  
  1405. (4)  The proxy forwarder calls the Dispatcher using the
  1406.      returnResponsePdu abstract service interface.  Parameters are:
  1407.  
  1408.        -  The messageProcessingModel indicates the Message Processing
  1409.           Model by which the original incoming message was processed.
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415. SNMPv3 Working Group       Expires April 1998            [Page 25]
  1416.  
  1417. Internet Draft            SNMPv3 Applications            28 October 1997
  1418.  
  1419.  
  1420.        -  The securityModel is that of the original incoming management
  1421.           target extracted from the cache.
  1422.  
  1423.        -  The securityName is that of the original incoming management
  1424.           target extracted from the cache.
  1425.  
  1426.        -  The securityLevel is that of the original incoming management
  1427.           target extracted from the cache.
  1428.  
  1429.        -  The contextEngineID is the value extracted from the cache.
  1430.  
  1431.        -  The contextName is the value extracted from the cache.
  1432.  
  1433.        -  The pduVersion indicates the version of the PDU to be
  1434.           returned.
  1435.  
  1436.        -  The PDU is unused.
  1437.  
  1438.        -  The maxSizeResponseScopedPDU is a local value indicating the
  1439.           maximum size of a ScopedPDU that the application can accept.
  1440.  
  1441.        -  The stateReference is the value extracted from the cache.
  1442.  
  1443.        -  The statusInformation contain the contextEngineID,
  1444.           contextName, counter OID, and counter value received in the
  1445.           report indication.
  1446.  
  1447.  
  1448. 3.5.2.  Notification Forwarding
  1449.  
  1450.    A proxy forwarder receives notifications in the same manner as a
  1451.    notification receiver application, using the processPdu abstract
  1452.    service interface.  The following procedure is used when a
  1453.    notification is received:
  1454.  
  1455. (1)  The incoming management target information received from the
  1456.      processPdu interface is translated into outgoing management target
  1457.      information.  Note that this translation may vary for different
  1458.      values of contextEngineId and/or contextName.  The translation may
  1459.      result in multiple management targets.
  1460.  
  1461. (2)  If appropriate outgoing management target information cannot be
  1462.      found and the notification was a Trap, processing of the
  1463.      notification is halted.  If appropriate outgoing management target
  1464.      information cannot be found and the notification was an Inform, the
  1465.      proxy forwarder increments the snmpProxyDrops object, and calls the
  1466.      Dispatcher using the returnResponsePdu abstract service interface.
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472. SNMPv3 Working Group       Expires April 1998            [Page 26]
  1473.  
  1474. Internet Draft            SNMPv3 Applications            28 October 1997
  1475.  
  1476.  
  1477.      The parameters are:
  1478.  
  1479.        -  The messageProcessingModel is the received value.
  1480.  
  1481.        -  The securityModel is the received value.
  1482.  
  1483.        -  The securityName is the received value.
  1484.  
  1485.        -  The securityLevel is the received value.
  1486.  
  1487.        -  The contextEngineID is the received value.
  1488.  
  1489.        -  The contextName is the received value.
  1490.  
  1491.        -  The pduVersion is the received value.
  1492.  
  1493.        -  The PDU is an undefined and unused value.
  1494.  
  1495.        -  The maxSizeResponseScopedPDU is a local value indicating the
  1496.           maximum size of a ScopedPDU that the application can accept.
  1497.  
  1498.        -  The stateReference is the received value.
  1499.  
  1500.        -  The statusInformation indicates that an error occurred and
  1501.           that a Report message should be generated.
  1502.  
  1503.      Processing of the message stops at this point.  Otherwise,
  1504.  
  1505. (3)  The proxy forwarder generates a notification using the procedures
  1506.      described in the preceding section on Notification Originators,
  1507.      with the following exceptions:
  1508.  
  1509.        -  The contextEngineID and contextName values from the original
  1510.           received notification are used.
  1511.  
  1512.        -  The outgoing management targets previously determined are
  1513.           used.
  1514.  
  1515.        -  No filtering mechanisms are applied.
  1516.  
  1517.        -  The variable-bindings from the original received notification
  1518.           are used, rather than retrieving variable-bindings from local
  1519.           MIB instrumentation.  In particular, no access-control is
  1520.           applied to these variable-bindings.
  1521.  
  1522.        -  If for any of the outgoing management targets, the incoming
  1523.           SNMP version is SNMPv1 and the outgoing SNMP version is SNMPv2
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529. SNMPv3 Working Group       Expires April 1998            [Page 27]
  1530.  
  1531. Internet Draft            SNMPv3 Applications            28 October 1997
  1532.  
  1533.  
  1534.           or SNMPv3, the proxy forwarder must apply the translation
  1535.           rules as documented in [RFC1908].
  1536.  
  1537.        -  If for any of the outgoing management targets, the incoming
  1538.           SNMP version is SNMPv2 or SNMPv3, and the outgoing SNMP
  1539.           version is SNMPv1, this outgoing management target is not used
  1540.           when generating the forwarded notifications.
  1541.  
  1542. (4)  If the original received notification contains an SNMPv2-Trap PDU,
  1543.      processing of the notification is now completed.  Otherwise, the
  1544.      original received notification must contain an Inform PDU, and
  1545.      processing continues.
  1546.  
  1547. (5)  If the forwarded notifications included any Inform PDUs, processing
  1548.      continues when the procedures described in the section for
  1549.      Notification Originators determine that either:
  1550.  
  1551.        -  None of the generated notifications containing Inform PDUs
  1552.           have been successfully acknowledged within the longest of the
  1553.           time intervals, in which case processing of the original
  1554.           notification is halted, or,
  1555.  
  1556.        -  At least one of the generated notifications containing Inform
  1557.           PDUs is successfully acknowledged, in which case a response to
  1558.           the original received notification containing an Inform PDU is
  1559.           generated as described in the following steps.
  1560.  
  1561. (6)  A Response PDU is constructed, using the values of request-id and
  1562.      variable-bindings from the original received Inform PDU, and
  1563.      error-status and error-index values of 0.
  1564.  
  1565. (7)  The Dispatcher is called using the returnResponsePdu abstract
  1566.      service interface.  Parameters are:
  1567.  
  1568.        -  The messageProcessingModel is the originally received value.
  1569.  
  1570.        -  The securityModel is the originally received value.
  1571.  
  1572.        -  The securityName is the originally received value.
  1573.  
  1574.        -  The securityLevel is the originally received value.
  1575.  
  1576.        -  The contextEngineID is the originally received value.
  1577.  
  1578.        -  The contextName is the originally received value.
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585. SNMPv3 Working Group       Expires April 1998            [Page 28]
  1586.  
  1587. Internet Draft            SNMPv3 Applications            28 October 1997
  1588.  
  1589.  
  1590.        -  The pduVersion indicates the version of the PDU constructed in
  1591.           step (6) above.
  1592.  
  1593.        -  The PDU is the value constructed in step (6) above.
  1594.  
  1595.        -  The maxSizeResponseScopedPDU is a local value indicating the
  1596.           maximum size of a ScopedPDU that the application can accept.
  1597.  
  1598.        -  The stateReference is the originally received value.
  1599.  
  1600.        -  The statusInformation indicates that no error occurred and
  1601.           that a Response PDU message should be generated.
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641. SNMPv3 Working Group       Expires April 1998            [Page 29]
  1642.  
  1643. Internet Draft            SNMPv3 Applications            28 October 1997
  1644.  
  1645.  
  1646. 4.  The Structure of the MIB Modules
  1647.  
  1648.    There are three separate MIB modules described in this document, the
  1649.    management target MIB, the notification MIB, and the proxy MIB.  The
  1650.    following sections describe the structure of these three MIB modules.
  1651.  
  1652.    The use of these MIBs by particular types of applications is
  1653.    described later in this document:
  1654.  
  1655.        -  The use of the management target MIB and the notification MIB
  1656.           in notification originator applications is described in
  1657.           section 6.
  1658.  
  1659.        -  The use of the notification MIB for filtering notifications in
  1660.           notification originator applications is described in section
  1661.           7.
  1662.  
  1663.        -  The use of the management target MIB and the proxy MIB in
  1664.           proxy forwarding applications is described in section 8.
  1665.  
  1666.  
  1667.  
  1668. 4.1.  The Management Target MIB Module
  1669.  
  1670.    The SNMP-TARGET-MIB module contains objects for defining management
  1671.    targets.  It consists of two tables and conformance/compliance
  1672.    statements.
  1673.  
  1674.    The first table, the snmpTargetAddrTable, contains information about
  1675.    transport domains and addresses.  It also contains an object,
  1676.    snmpTargetAddrTagList, which provides a mechanism for grouping
  1677.    entries.
  1678.  
  1679.    The second table, the snmpTargetParamsTable, contains information
  1680.    about SNMP version and security information to be used when sending
  1681.    messages to particular transport domains and addresses.
  1682.  
  1683.  
  1684. 4.1.1.  Tag Lists
  1685.  
  1686.    The snmpTargetAddrTagList object is used for grouping entries in the
  1687.    snmpTargetAddrTable.  The value of this object contains a list of tag
  1688.    values which are used to select target addresses to be used for a
  1689.    particular operation.
  1690.  
  1691.    A tag value, which may also be used in MIB objects other than
  1692.    snmpTargetAddrTagList, is an arbitrary string of octets, but may not
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698. SNMPv3 Working Group       Expires April 1998            [Page 30]
  1699.  
  1700. Internet Draft            SNMPv3 Applications            28 October 1997
  1701.  
  1702.  
  1703.    contain a delimiter character.  Delimiter characters are defined to
  1704.    be one of the following characters:
  1705.  
  1706.        -  An ASCII space character (0x20).
  1707.  
  1708.        -  An ASCII TAB character (0x09).
  1709.  
  1710.        -  An ASCII carriage return (CR) character (0x0D).
  1711.  
  1712.        -  An ASCII line feed (LF) character (0x0B).
  1713.  
  1714.    In addition, a tag value may not have a zero length.  Generally, a
  1715.    particular MIB object may contain either
  1716.  
  1717.        -  a single tag value, in which case the value of the MIB object
  1718.           may not contain a delimiter character, or:
  1719.  
  1720.        -  a MIB object may contain a list of tag values, separated by
  1721.           single delimiter characters.
  1722.  
  1723.    For a list of tag values, these constraints imply certain
  1724.    restrictions on the value of a MIB object:
  1725.  
  1726.        -  There cannot be a leading or trailing delimiter character.
  1727.  
  1728.        -  There cannot be multiple adjacent delimiter charaters.
  1729.  
  1730.  
  1731. 4.1.2.  Definitions
  1732.  
  1733.    SNMP-TARGET-MIB DEFINITIONS ::= BEGIN
  1734.  
  1735.    IMPORTS
  1736.        TEXTUAL-CONVENTION,
  1737.        MODULE-IDENTITY,
  1738.        OBJECT-TYPE,
  1739.        snmpModules,
  1740.        Integer32
  1741.            FROM SNMPv2-SMI
  1742.  
  1743.        TDomain,
  1744.        TAddress,
  1745.        TimeInterval,
  1746.        RowStatus,
  1747.        StorageType,
  1748.        TestAndIncr
  1749.            FROM SNMPv2-TC
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755. SNMPv3 Working Group       Expires April 1998            [Page 31]
  1756.  
  1757. Internet Draft            SNMPv3 Applications            28 October 1997
  1758.  
  1759.  
  1760.        SnmpSecurityModel,
  1761.        SnmpMessageProcessingModel,
  1762.        SnmpSecurityLevel,
  1763.        SnmpAdminString
  1764.            FROM SNMP-FRAMEWORK-MIB
  1765.  
  1766.        OBJECT-GROUP
  1767.            FROM SNMPv2-CONF;
  1768.  
  1769.    snmpTargetMIB MODULE-IDENTITY
  1770.        LAST-UPDATED "9707140000Z"
  1771.        ORGANIZATION "IETF SNMPv3 Working Group"
  1772.        CONTACT-INFO
  1773.            "WG-email:   snmpv3@tis.com
  1774.             Subscribe:  majordomo@tis.com
  1775.                         In message body:  subscribe snmpv3
  1776.  
  1777.             Chair:      Russ Mundy
  1778.                         Trusted Information Systems
  1779.             Postal:     3060 Washington Rd
  1780.                         Glenwood MD 21738
  1781.                         USA
  1782.             Email:      mundy@tis.com
  1783.             Phone:      +1-301-854-6889
  1784.  
  1785.             Co-editor:  David B. Levi
  1786.                         SNMP Research, Inc.
  1787.             Postal:     3001 Kimberlin Heights Road
  1788.                         Knoxville, TN 37920-9716
  1789.             E-mail:     levi@snmp.com
  1790.             Phone:      +1 423 573 1434
  1791.  
  1792.             Co-editor:  Paul Meyer
  1793.                         Secure Computing Corporation
  1794.             Postal:     2675 Long Lake Road
  1795.                         Roseville, MN 55113
  1796.             E-mail:     paul_meyer@securecomputing.com
  1797.             Phone:      +1 612 628 1592
  1798.  
  1799.             Co-editor:  Bob Stewart
  1800.                         Cisco Systems, Inc.
  1801.             Postal:     170 West Tasman Drive
  1802.                         San Jose, CA 95134-1706
  1803.             E-mail:     bstewart@cisco.com
  1804.             Phone:      +1 603 654 6923"
  1805.        DESCRIPTION
  1806.            "This MIB module defines MIB objects which provide
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812. SNMPv3 Working Group       Expires April 1998            [Page 32]
  1813.  
  1814. Internet Draft            SNMPv3 Applications            28 October 1997
  1815.  
  1816.  
  1817.             mechanisms to remotely configure the parameters used
  1818.             by an SNMP entity for the generation of SNMP messages."
  1819.        REVISION        "9707140000Z"
  1820.        DESCRIPTION
  1821.            "The initial revision."
  1822.        ::= { snmpModules 11 }        -- TBD
  1823.  
  1824.    snmpTargetObjects       OBJECT IDENTIFIER ::= { snmpTargetMIB 1 }
  1825.    snmpTargetConformance   OBJECT IDENTIFIER ::= { snmpTargetMIB 3 }
  1826.  
  1827.    SnmpTagValue ::= TEXTUAL-CONVENTION
  1828.        DISPLAY-HINT "255a"
  1829.        STATUS       current
  1830.        DESCRIPTION
  1831.            "An octet string containing a tag value.
  1832.             Tag values are preferably in human-readable form.
  1833.  
  1834.             To facilitate internationalization, this information
  1835.             is represented using the ISO/IEC IS 10646-1 character
  1836.             set, encoded as an octet string using the UTF-8
  1837.             character encoding scheme described in RFC 2044.
  1838.  
  1839.             Since additional code points are added by amendments
  1840.             to the 10646 standard from time to time,
  1841.             implementations must be prepared to encounter any code
  1842.             point from 0x00000000 to 0x7fffffff.
  1843.  
  1844.             The use of control codes should be avoided, and certain
  1845.             control codes are not allowed as described below.
  1846.  
  1847.             For code points not directly supported by user
  1848.             interface hardware or software, an alternative means
  1849.             of entry and display, such as hexadecimal, may be
  1850.             provided.
  1851.  
  1852.             For information encoded in 7-bit US-ASCII, the UTF-8
  1853.             representation is identical to the US-ASCII encoding.
  1854.  
  1855.             Note that when this TC is used for an object that
  1856.             is used or envisioned to be used as an index, then a
  1857.             SIZE restriction must be specified so that the number
  1858.             sub-identifiers for any object instance do not exceed
  1859.             the limit of 128, as defined by [RFC1905].
  1860.  
  1861.             An object of this type contains a single tag value
  1862.             which is used to select a set of entries in a table.
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868. SNMPv3 Working Group       Expires April 1998            [Page 33]
  1869.  
  1870. Internet Draft            SNMPv3 Applications            28 October 1997
  1871.  
  1872.  
  1873.             A tag value is an arbitrary string of octets, but
  1874.             may not contain a delimiter character.  Delimiter
  1875.             characters are defined to be one of the following:
  1876.  
  1877.                 -  An ASCII space character (0x20).
  1878.  
  1879.                 -  An ASCII TAB character (0x09).
  1880.  
  1881.                 -  An ASCII carriage return (CR) character (0x0D).
  1882.  
  1883.                 -  An ASCII line feed (LF) character (0x0B).
  1884.  
  1885.             Delimiter characters are used to separate tag values
  1886.             in a tag list.  An object of this type may only
  1887.             contain a single tag value, and so delimiter
  1888.             characters are not allowed in a value of this type.
  1889.  
  1890.             Some examples of valid tag values are:
  1891.  
  1892.                 - 'acme'
  1893.  
  1894.                 - 'router'
  1895.  
  1896.                 - 'host'
  1897.  
  1898.             The use of a tag value to select table entries is
  1899.             application and MIB specific."
  1900.        SYNTAX       OCTET STRING (SIZE (0..255))
  1901.  
  1902.    SnmpTagList ::= TEXTUAL-CONVENTION
  1903.        DISPLAY-HINT "255a"
  1904.        STATUS       current
  1905.        DESCRIPTION
  1906.            "An octet string containing a list of tag values.
  1907.             Tag values are preferably in human-readable form.
  1908.  
  1909.             To facilitate internationalization, this information
  1910.             is represented using the ISO/IEC IS 10646-1 character
  1911.             set, encoded as an octet string using the UTF-8
  1912.             character encoding scheme described in RFC 2044.
  1913.  
  1914.             Since additional code points are added by amendments
  1915.             to the 10646 standard from time to time,
  1916.             implementations must be prepared to encounter any code
  1917.             point from 0x00000000 to 0x7fffffff.
  1918.  
  1919.             The use of control codes should be avoided, except as
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925. SNMPv3 Working Group       Expires April 1998            [Page 34]
  1926.  
  1927. Internet Draft            SNMPv3 Applications            28 October 1997
  1928.  
  1929.  
  1930.             described below.
  1931.  
  1932.             For code points not directly supported by user
  1933.             interface hardware or software, an alternative means
  1934.             of entry and display, such as hexadecimal, may be
  1935.             provided.
  1936.  
  1937.             For information encoded in 7-bit US-ASCII, the UTF-8
  1938.             representation is identical to the US-ASCII encoding.
  1939.  
  1940.             An object of this type contains a list of tag values
  1941.             which are used to select a set of entries in a table.
  1942.  
  1943.             A tag value is an arbitrary string of octets, but
  1944.             may not contain a delimiter character.  Delimiter
  1945.             characters are defined to be one of the following:
  1946.  
  1947.                 -  An ASCII space character (0x20).
  1948.  
  1949.                 -  An ASCII TAB character (0x09).
  1950.  
  1951.                 -  An ASCII carriage return (CR) character (0x0D).
  1952.  
  1953.                 -  An ASCII line feed (LF) character (0x0B).
  1954.  
  1955.             Delimiter characters are used to separate tag values
  1956.             in a tag list.  Only a single delimiter character may
  1957.             occur between two tag values.  A tag value may not
  1958.             have a zero length.  These constraints imply certain
  1959.             restrictions on the contents of this object:
  1960.  
  1961.                 - There cannot be a leading or trailing delimiter
  1962.                   character.
  1963.  
  1964.                 - There cannot be multiple adjacent delimiter
  1965.                   characters.
  1966.  
  1967.             Some examples of valid tag lists are:
  1968.  
  1969.                 - An empty string
  1970.  
  1971.                 - 'acme router'
  1972.  
  1973.                 - 'host managerStation'
  1974.  
  1975.             Note that although a tag value may not have a length of
  1976.             zero, an empty string is still valid.  This indicates
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982. SNMPv3 Working Group       Expires April 1998            [Page 35]
  1983.  
  1984. Internet Draft            SNMPv3 Applications            28 October 1997
  1985.  
  1986.  
  1987.             an empty list (i.e. there are no tag values in the list).
  1988.  
  1989.             The use of the tag list to select table entries is
  1990.             application and MIB specific.  Typically, an application
  1991.             will provide one or more tag values, and any entry
  1992.             which contains some combination of these tag values
  1993.             will be selected."
  1994.        SYNTAX       OCTET STRING (SIZE (0..255))
  1995.  
  1996.    --
  1997.    --
  1998.    -- The snmpTargetObjects group
  1999.    --
  2000.    --
  2001.  
  2002.    snmpTargetSpinLock OBJECT-TYPE
  2003.        SYNTAX      TestAndIncr
  2004.        MAX-ACCESS  read-write
  2005.        STATUS      current
  2006.        DESCRIPTION
  2007.            "This object is used to facilitate modification of table
  2008.             entries in the SNMP-TARGET-MIB module by multiple
  2009.             managers.  In particular, it is useful when modifying
  2010.             the value of the snmpTargetAddrTagList object.
  2011.  
  2012.             The procedure for modifying the snmpTargetAddrTagList
  2013.             object is as follows:
  2014.  
  2015.                 1.  Retrieve the value of snmpTargetSpinLock and
  2016.                     of snmpTargetAddrTagList.
  2017.  
  2018.                 2.  Generate a new value for snmpTargetAddrTagList.
  2019.  
  2020.                 3.  Set the value of snmpTargetSpinLock to the
  2021.                     retrieved value, and the value of
  2022.                     snmpTargetAddrTagList to the new value.  If
  2023.                     the set fails for the snmpTargetSpinLock
  2024.                     object, go back to step 1."
  2025.        ::= { snmpTargetObjects 1 }
  2026.  
  2027.    snmpTargetAddrTable OBJECT-TYPE
  2028.        SYNTAX      SEQUENCE OF SnmpTargetAddrEntry
  2029.        MAX-ACCESS  not-accessible
  2030.        STATUS      current
  2031.        DESCRIPTION
  2032.            "A table of transport addresses to be used in the generation
  2033.             of SNMP messages."
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039. SNMPv3 Working Group       Expires April 1998            [Page 36]
  2040.  
  2041. Internet Draft            SNMPv3 Applications            28 October 1997
  2042.  
  2043.  
  2044.        ::= { snmpTargetObjects 2 }
  2045.  
  2046.    snmpTargetAddrEntry OBJECT-TYPE
  2047.        SYNTAX      SnmpTargetAddrEntry
  2048.        MAX-ACCESS  not-accessible
  2049.        STATUS      current
  2050.        DESCRIPTION
  2051.            "A transport address to be used in the generation
  2052.             of SNMP operations.
  2053.  
  2054.             Entries in the snmpTargetAddrTable are created and
  2055.             deleted using the snmpTargetAddrRowStatus object."
  2056.        INDEX { IMPLIED snmpTargetAddrName }
  2057.        ::= { snmpTargetAddrTable 1 }
  2058.  
  2059.    SnmpTargetAddrEntry ::= SEQUENCE {
  2060.        snmpTargetAddrName         SnmpAdminString,
  2061.        snmpTargetAddrTDomain      TDomain,
  2062.        snmpTargetAddrTAddress     TAddress,
  2063.        snmpTargetAddrTimeout      TimeInterval,
  2064.        snmpTargetAddrRetryCount   Integer32,
  2065.        snmpTargetAddrTagList      SnmpTagList,
  2066.        snmpTargetAddrParams       SnmpAdminString,
  2067.        snmpTargetAddrStorageType  StorageType,
  2068.        snmpTargetAddrRowStatus    RowStatus
  2069.    }
  2070.  
  2071.    snmpTargetAddrName OBJECT-TYPE
  2072.        SYNTAX      SnmpAdminString (SIZE(1..32))
  2073.        MAX-ACCESS  not-accessible
  2074.        STATUS      current
  2075.        DESCRIPTION
  2076.            "The locally arbitrary, but unique identifier associated
  2077.             with this snmpTargetAddrEntry."
  2078.        ::= { snmpTargetAddrEntry 1 }
  2079.  
  2080.    snmpTargetAddrTDomain OBJECT-TYPE
  2081.        SYNTAX      TDomain
  2082.        MAX-ACCESS  read-create
  2083.        STATUS      current
  2084.        DESCRIPTION
  2085.            "This object indicates the transport type of the address
  2086.             contained in the snmpTargetAddrTAddress object."
  2087.        ::= { snmpTargetAddrEntry 2 }
  2088.  
  2089.    snmpTargetAddrTAddress OBJECT-TYPE
  2090.        SYNTAX      TAddress
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096. SNMPv3 Working Group       Expires April 1998            [Page 37]
  2097.  
  2098. Internet Draft            SNMPv3 Applications            28 October 1997
  2099.  
  2100.  
  2101.        MAX-ACCESS  read-create
  2102.        STATUS      current
  2103.        DESCRIPTION
  2104.            "This object contains a transport address.  The format of
  2105.             this address depends on the value of the
  2106.             snmpTargetAddrTDomain object."
  2107.        ::= { snmpTargetAddrEntry 3 }
  2108.  
  2109.    snmpTargetAddrTimeout OBJECT-TYPE
  2110.        SYNTAX      TimeInterval
  2111.        MAX-ACCESS  read-create
  2112.        STATUS      current
  2113.        DESCRIPTION
  2114.            "This object should reflect the expected maximum round
  2115.             trip time for communicating with the transport address
  2116.             defined by this row.  When a message is sent to this
  2117.             address, and a response (if one is expected) is not
  2118.             received within this time period, an implementation
  2119.             may assume that the response will not be delivered.
  2120.  
  2121.             Note that the time interval that an application waits
  2122.             for a response may actually be derived from the value
  2123.             of this object.  The method for deriving the actual time
  2124.             interval is implementation dependent.  One such method
  2125.             is to derive the expected round trip time based on a
  2126.             particular retransmission algorithm and on the number
  2127.             of timeouts which have occurred.  The type of message may
  2128.             also be considered when deriving expected round trip
  2129.             times for retransmissions.  For example, if a message is
  2130.             being sent with a securityLevel that indicates both
  2131.             authentication and privacy, the derived value may be
  2132.             increased to compensate for extra processing time spent
  2133.             during authentication and encryption processing."
  2134.        DEFVAL { 1500 }
  2135.        ::= { snmpTargetAddrEntry 4 }
  2136.  
  2137.    snmpTargetAddrRetryCount OBJECT-TYPE
  2138.        SYNTAX      Integer32 (0..255)
  2139.        MAX-ACCESS  read-create
  2140.        STATUS      current
  2141.        DESCRIPTION
  2142.            "This object specifies a default number of retries to be
  2143.             attempted when a response is not received for a generated
  2144.             message.  An application may provide its own retry count,
  2145.             in which case the value of this object is ignored."
  2146.        DEFVAL { 3 }
  2147.        ::= { snmpTargetAddrEntry 5 }
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153. SNMPv3 Working Group       Expires April 1998            [Page 38]
  2154.  
  2155. Internet Draft            SNMPv3 Applications            28 October 1997
  2156.  
  2157.  
  2158.    snmpTargetAddrTagList OBJECT-TYPE
  2159.        SYNTAX      SnmpTagList
  2160.        MAX-ACCESS  read-create
  2161.        STATUS      current
  2162.        DESCRIPTION
  2163.            "This object contains a list of tag values which are
  2164.             used to select target addresses for a particular
  2165.             operation."
  2166.        ::= { snmpTargetAddrEntry 6 }
  2167.  
  2168.    snmpTargetAddrParams OBJECT-TYPE
  2169.        SYNTAX      SnmpAdminString (SIZE(1..32))
  2170.        MAX-ACCESS  read-create
  2171.        STATUS      current
  2172.        DESCRIPTION
  2173.            "The value of this object identifies an entry in the
  2174.             snmpTargetParamsTable.  The identified entry
  2175.             contains SNMP parameters to be used when generating
  2176.             messages to be sent to this transport address."
  2177.        ::= { snmpTargetAddrEntry 7 }
  2178.  
  2179.    snmpTargetAddrStorageType OBJECT-TYPE
  2180.        SYNTAX      StorageType
  2181.        MAX-ACCESS  read-create
  2182.        STATUS      current
  2183.        DESCRIPTION
  2184.            "The storage type for this conceptual row."
  2185.        ::= { snmpTargetAddrEntry 8 }
  2186.  
  2187.    snmpTargetAddrRowStatus OBJECT-TYPE
  2188.        SYNTAX      RowStatus
  2189.        MAX-ACCESS  read-create
  2190.        STATUS      current
  2191.        DESCRIPTION
  2192.            "The status of this conceptual row.
  2193.  
  2194.             To create a row in this table, a manager must
  2195.             set this object to either createAndGo(4) or
  2196.             createAndWait(5).
  2197.  
  2198.             Until instances of all corresponding columns are
  2199.             appropriately configured, the value of the
  2200.             corresponding instance of the snmpTargetAddrRowStatus
  2201.             column is 'notReady'.
  2202.  
  2203.             In particular, a newly created row cannot be made
  2204.             active until the corresponding snmpTargetAddrTDomain
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210. SNMPv3 Working Group       Expires April 1998            [Page 39]
  2211.  
  2212. Internet Draft            SNMPv3 Applications            28 October 1997
  2213.  
  2214.  
  2215.             and snmpTargetAddrTAddress have both been set.
  2216.  
  2217.             The following objects may not be modified while the
  2218.             value of this object is active(1):
  2219.                 - snmpTargetAddrTDomain
  2220.                 - snmpTargetAddrTAddress"
  2221.        ::= { snmpTargetAddrEntry 9 }
  2222.  
  2223.    snmpTargetParamsTable OBJECT-TYPE
  2224.        SYNTAX      SEQUENCE OF SnmpTargetParamsEntry
  2225.        MAX-ACCESS  not-accessible
  2226.        STATUS      current
  2227.        DESCRIPTION
  2228.            "A table of SNMP target information to be used
  2229.             in the generation of SNMP messages."
  2230.        ::= { snmpTargetObjects 3 }
  2231.  
  2232.    snmpTargetParamsEntry OBJECT-TYPE
  2233.        SYNTAX      SnmpTargetParamsEntry
  2234.        MAX-ACCESS  not-accessible
  2235.        STATUS      current
  2236.        DESCRIPTION
  2237.            "A set of SNMP target information.
  2238.  
  2239.             Entries in the snmpTargetParamsTable are created and
  2240.             deleted using the snmpTargetParamsRowStatus object."
  2241.        INDEX { IMPLIED snmpTargetParamsName }
  2242.        ::= { snmpTargetParamsTable 1 }
  2243.  
  2244.    SnmpTargetParamsEntry ::= SEQUENCE {
  2245.        snmpTargetParamsName           SnmpAdminString,
  2246.        snmpTargetParamsMPModel        SnmpMessageProcessingModel,
  2247.        snmpTargetParamsSecurityModel  SnmpSecurityModel,
  2248.        snmpTargetParamsSecurityName   SnmpAdminString,
  2249.        snmpTargetParamsSecurityLevel  SnmpSecurityLevel,
  2250.        snmpTargetParamsStorageType    StorageType,
  2251.        snmpTargetParamsRowStatus      RowStatus
  2252.    }
  2253.  
  2254.    snmpTargetParamsName OBJECT-TYPE
  2255.        SYNTAX      SnmpAdminString (SIZE(1..32))
  2256.        MAX-ACCESS  not-accessible
  2257.        STATUS      current
  2258.        DESCRIPTION
  2259.            "The locally arbitrary, but unique identifier associated
  2260.             with this snmpTargetParamsEntry."
  2261.        ::= { snmpTargetParamsEntry 1 }
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267. SNMPv3 Working Group       Expires April 1998            [Page 40]
  2268.  
  2269. Internet Draft            SNMPv3 Applications            28 October 1997
  2270.  
  2271.  
  2272.    snmpTargetParamsMPModel OBJECT-TYPE
  2273.        SYNTAX      SnmpMessageProcessingModel
  2274.        MAX-ACCESS  read-create
  2275.        STATUS      current
  2276.        DESCRIPTION
  2277.            "The Message Processing Model to be used when generating
  2278.             SNMP messages using this entry."
  2279.        ::= { snmpTargetParamsEntry 2 }
  2280.  
  2281.    snmpTargetParamsSecurityModel OBJECT-TYPE
  2282.        SYNTAX      SnmpSecurityModel (0..254 | 256..2147483647)
  2283.        MAX-ACCESS  read-create
  2284.        STATUS      current
  2285.        DESCRIPTION
  2286.            "The Security Model to be used when generating SNMP
  2287.              messages using this entry."
  2288.        ::= { snmpTargetParamsEntry 3 }
  2289.  
  2290.    snmpTargetParamsSecurityName OBJECT-TYPE
  2291.        SYNTAX      SnmpAdminString
  2292.        MAX-ACCESS  read-create
  2293.        STATUS      current
  2294.        DESCRIPTION
  2295.            "The securityName which identifies the Principal on
  2296.             whose behalf SNMP messages will be generated using
  2297.             this entry."
  2298.        ::= { snmpTargetParamsEntry 4 }
  2299.  
  2300.    snmpTargetParamsSecurityLevel OBJECT-TYPE
  2301.        SYNTAX      SnmpSecurityLevel
  2302.        MAX-ACCESS  read-create
  2303.        STATUS      current
  2304.        DESCRIPTION
  2305.            "The Level of Security to be used when generating
  2306.             SNMP messages using this entry."
  2307.        ::= { snmpTargetParamsEntry 5 }
  2308.  
  2309.    snmpTargetParamsStorageType OBJECT-TYPE
  2310.        SYNTAX      StorageType
  2311.        MAX-ACCESS  read-create
  2312.        STATUS      current
  2313.        DESCRIPTION
  2314.            "The storage type for this conceptual row."
  2315.        ::= { snmpTargetParamsEntry 6 }
  2316.  
  2317.    snmpTargetParamsRowStatus OBJECT-TYPE
  2318.        SYNTAX      RowStatus
  2319.  
  2320.  
  2321.  
  2322.  
  2323.  
  2324. SNMPv3 Working Group       Expires April 1998            [Page 41]
  2325.  
  2326. Internet Draft            SNMPv3 Applications            28 October 1997
  2327.  
  2328.  
  2329.        MAX-ACCESS  read-create
  2330.        STATUS      current
  2331.        DESCRIPTION
  2332.            "The status of this conceptual row.
  2333.  
  2334.             To create a row in this table, a manager must
  2335.             set this object to either createAndGo(4) or
  2336.             createAndWait(5).
  2337.  
  2338.             Until instances of all corresponding columns are
  2339.             appropriately configured, the value of the
  2340.             corresponding instance of the snmpTargetParamsRowStatus
  2341.             column is 'notReady'.
  2342.  
  2343.             In particular, a newly created row cannot be made
  2344.             active until the corresponding
  2345.             snmpTargetParamsMPModel,
  2346.             snmpTargetParamsSecurityModel,
  2347.             snmpTargetParamsSecurityName,
  2348.             and snmpTargetParamsSecurityLevel have all been set.
  2349.  
  2350.             The following objects may not be modified while the
  2351.             value of this object is active(1):
  2352.                 - snmpTargetParamsMPModel
  2353.                 - snmpTargetParamsSecurityModel
  2354.                 - snmpTargetParamsSecurityName
  2355.                 - snmpTargetParamsSecurityLevel"
  2356.        ::= { snmpTargetParamsEntry 7 }
  2357.  
  2358.    snmpUnavailableContexts OBJECT-TYPE
  2359.        SYNTAX       Counter32
  2360.        MAX-ACCESS   read-only
  2361.        STATUS       current
  2362.        DESCRIPTION
  2363.            "The total number of packets received by the SNMP
  2364.             engine which were dropped because the context
  2365.             contained in the mesage was unavailable."
  2366.        ::= { snmpTargetObjects 4 }
  2367.  
  2368.    snmpUnknownContexts OBJECT-TYPE
  2369.        SYNTAX       Counter32
  2370.        MAX-ACCESS   read-only
  2371.        STATUS       current
  2372.        DESCRIPTION
  2373.            "The total number of packets received by the SNMP
  2374.             engine which were dropped because the context
  2375.             contained in the mesage was unknown."
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381. SNMPv3 Working Group       Expires April 1998            [Page 42]
  2382.  
  2383. Internet Draft            SNMPv3 Applications            28 October 1997
  2384.  
  2385.  
  2386.        ::= { snmpTargetObjects 5 }
  2387.  
  2388.    --
  2389.    --
  2390.    -- Conformance information
  2391.    --
  2392.    --
  2393.  
  2394.    snmpTargetCompliances OBJECT IDENTIFIER ::=
  2395.                                            { snmpTargetConformance 1 }
  2396.    snmpTargetGroups      OBJECT IDENTIFIER ::=
  2397.                                            { snmpTargetConformance 2 }
  2398.  
  2399.    --
  2400.    --
  2401.    -- Compliance statements
  2402.    --
  2403.    --
  2404.  
  2405.  
  2406.    snmpTargetCommandResponderCompliance MODULE-COMPLIANCE
  2407.        STATUS      current
  2408.        DESCRIPTION
  2409.            "The compliance statement for SNMP entities which include
  2410.             a command responder application."
  2411.        MODULE -- This Module
  2412.            MANDATORY-GROUPS { snmpTargetCommandResponderGroup }
  2413.        ::= { snmpTargetCompliances 1 }
  2414.  
  2415.    snmpTargetBasicGroup OBJECT-GROUP
  2416.        OBJECTS {
  2417.            snmpTargetSpinLock,
  2418.            snmpTargetAddrTDomain,
  2419.            snmpTargetAddrTAddress,
  2420.            snmpTargetAddrTagList,
  2421.            snmpTargetAddrParams,
  2422.            snmpTargetAddrStorageType,
  2423.            snmpTargetAddrRowStatus,
  2424.            snmpTargetParamsMPModel,
  2425.            snmpTargetParamsSecurityModel,
  2426.            snmpTargetParamsSecurityName,
  2427.            snmpTargetParamsSecurityLevel,
  2428.            snmpTargetParamsStorageType,
  2429.            snmpTargetParamsRowStatus
  2430.        }
  2431.        STATUS      current
  2432.        DESCRIPTION
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438. SNMPv3 Working Group       Expires April 1998            [Page 43]
  2439.  
  2440. Internet Draft            SNMPv3 Applications            28 October 1997
  2441.  
  2442.  
  2443.            "A collection of objects providing basic remote
  2444.             configuration of management targets."
  2445.        ::= { snmpTargetGroups 1 }
  2446.  
  2447.    snmpTargetResponseGroup OBJECT-GROUP
  2448.        OBJECTS {
  2449.            snmpTargetAddrTimeout,
  2450.            snmpTargetAddrRetryCount
  2451.        }
  2452.        STATUS      current
  2453.        DESCRIPTION
  2454.            "A collection of objects providing remote configuration
  2455.             of management targets for applications which generate
  2456.             SNMP messages for which a response message would be
  2457.             expected."
  2458.        ::= { snmpTargetGroups 2 }
  2459.  
  2460.    snmpTargetCommandResponderGroup OBJECT-GROUP
  2461.        OBJECTS {
  2462.            snmpUnavailableContexts,
  2463.            snmpUnknownContexts
  2464.        }
  2465.        STATUS      current
  2466.        DESCRIPTION
  2467.            "A collection of objects required for command responder
  2468.             applications, used for counting error conditions."
  2469.        ::= { snmpTargetGroups 3 }
  2470.  
  2471.    END
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485.  
  2486.  
  2487.  
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494. SNMPv3 Working Group       Expires April 1998            [Page 44]
  2495.  
  2496. Internet Draft            SNMPv3 Applications            28 October 1997
  2497.  
  2498.  
  2499. 4.2.  The Notification MIB Module
  2500.  
  2501.    The SNMP-NOTIFICATION-MIB module contains objects for the remote
  2502.    configuration of the parameters used by an SNMP entity for the
  2503.    generation of notifications.  It consists of three tables and
  2504.    conformance/compliance statements.  The first table, the
  2505.    snmpNotifyTable, contains entries which select which entries in the
  2506.    snmpTargetAddrTable should be used for generating notifications, and
  2507.    the type of notifications to be generated.
  2508.  
  2509.    The second table sparsely augments the snmpTargetAddrTable with an
  2510.    object which is used to associate a set of filters with a particular
  2511.    management target.
  2512.  
  2513.    The third table defines filters which are used to limit the number of
  2514.    notifications which are generated using particular management
  2515.    targets.
  2516.  
  2517.  
  2518. 4.2.1.  Definitions
  2519.  
  2520.    SNMP-NOTIFICATION-MIB DEFINITIONS ::= BEGIN
  2521.  
  2522.    IMPORTS
  2523.        MODULE-IDENTITY,
  2524.        OBJECT-TYPE,
  2525.        snmpModules
  2526.            FROM SNMPv2-SMI
  2527.  
  2528.        RowStatus,
  2529.        StorageType
  2530.            FROM SNMPv2-TC
  2531.  
  2532.        SnmpAdminString
  2533.            FROM SNMP-FRAMEWORK-MIB
  2534.  
  2535.        SnmpTagValue,
  2536.        snmpTargetParamsName
  2537.            FROM SNMP-TARGET-MIB
  2538.  
  2539.        MODULE-COMPLIANCE,
  2540.        OBJECT-GROUP
  2541.            FROM SNMPv2-CONF;
  2542.  
  2543.    snmpNotificationMIB MODULE-IDENTITY
  2544.        LAST-UPDATED "9707140000Z"
  2545.        ORGANIZATION "IETF SNMPv3 Working Group"
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551. SNMPv3 Working Group       Expires April 1998            [Page 45]
  2552.  
  2553. Internet Draft            SNMPv3 Applications            28 October 1997
  2554.  
  2555.  
  2556.        CONTACT-INFO
  2557.            "WG-email:   snmpv3@tis.com
  2558.             Subscribe:  majordomo@tis.com
  2559.                         In message body:  subscribe snmpv3
  2560.  
  2561.             Chair:      Russ Mundy
  2562.                         Trusted Information Systems
  2563.             Postal:     3060 Washington Rd
  2564.                         Glenwood MD 21738
  2565.                         USA
  2566.             Email:      mundy@tis.com
  2567.             Phone:      +1-301-854-6889
  2568.  
  2569.             Co-editor:  David B. Levi
  2570.                         SNMP Research, Inc.
  2571.             Postal:     3001 Kimberlin Heights Road
  2572.                         Knoxville, TN 37920-9716
  2573.             E-mail:     levi@snmp.com
  2574.             Phone:      +1 423 573 1434
  2575.  
  2576.             Co-editor:  Paul Meyer
  2577.                         Secure Computing Corporation
  2578.             Postal:     2675 Long Lake Road
  2579.                         Roseville, MN 55113
  2580.             E-mail:     paul_meyer@securecomputing.com
  2581.             Phone:      +1 612 628 1592
  2582.  
  2583.             Co-editor:  Bob Stewart
  2584.                         Cisco Systems, Inc.
  2585.             Postal:     170 West Tasman Drive
  2586.                         San Jose, CA 95134-1706
  2587.             E-mail:     bstewart@cisco.com
  2588.             Phone:      +1 603 654 6923"
  2589.        DESCRIPTION
  2590.            "This MIB module defines MIB objects which provide
  2591.             mechanisms to remotely configure the parameters
  2592.             used by an SNMP entity for the generation of
  2593.             notifications."
  2594.        REVISION    "9707140000Z"
  2595.        DESCRIPTION
  2596.            "The initial revision."
  2597.        ::= { snmpModules 12 }      -- TBD
  2598.  
  2599.    snmpNotifyObjects       OBJECT IDENTIFIER ::=
  2600.                                              { snmpNotificationMIB 1 }
  2601.    snmpNotifyConformance   OBJECT IDENTIFIER ::=
  2602.                                              { snmpNotificationMIB 3 }
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608. SNMPv3 Working Group       Expires April 1998            [Page 46]
  2609.  
  2610. Internet Draft            SNMPv3 Applications            28 October 1997
  2611.  
  2612.  
  2613.    --
  2614.    --
  2615.    -- The snmpNotifyObjects group
  2616.    --
  2617.    --
  2618.  
  2619.    snmpNotifyTable OBJECT-TYPE
  2620.        SYNTAX      SEQUENCE OF SnmpNotifyEntry
  2621.        MAX-ACCESS  not-accessible
  2622.        STATUS      current
  2623.        DESCRIPTION
  2624.            "This table is used to select management targets which should
  2625.             receive notifications, as well as the type of notification
  2626.             which should be sent to each selected management target."
  2627.        ::= { snmpNotifyObjects 1 }
  2628.  
  2629.    snmpNotifyEntry OBJECT-TYPE
  2630.        SYNTAX      SnmpNotifyEntry
  2631.        MAX-ACCESS  not-accessible
  2632.        STATUS      current
  2633.        DESCRIPTION
  2634.            "An entry in this table selects a set of management targets
  2635.             which should receive notifications, as well as the type of
  2636.             notification which should be sent to each selected
  2637.             management target.
  2638.  
  2639.             Entries in the snmpNotifyTable are created and
  2640.             deleted using the snmpNotifyRowStatus object."
  2641.        INDEX { IMPLIED snmpNotifyName }
  2642.        ::= { snmpNotifyTable 1 }
  2643.  
  2644.    SnmpNotifyEntry ::= SEQUENCE {
  2645.        snmpNotifyName         SnmpAdminString,
  2646.        snmpNotifyTag          SnmpTagValue,
  2647.        snmpNotifyType         INTEGER,
  2648.        snmpNotifyStorageType  StorageType,
  2649.        snmpNotifyRowStatus    RowStatus
  2650.    }
  2651.  
  2652.    snmpNotifyName OBJECT-TYPE
  2653.        SYNTAX      SnmpAdminString (SIZE(1..32))
  2654.        MAX-ACCESS  not-accessible
  2655.        STATUS      current
  2656.        DESCRIPTION
  2657.            "The locally arbitrary, but unique identifier associated
  2658.             with this snmpNotifyEntry."
  2659.        ::= { snmpNotifyEntry 1 }
  2660.  
  2661.  
  2662.  
  2663.  
  2664.  
  2665. SNMPv3 Working Group       Expires April 1998            [Page 47]
  2666.  
  2667. Internet Draft            SNMPv3 Applications            28 October 1997
  2668.  
  2669.  
  2670.    snmpNotifyTag OBJECT-TYPE
  2671.        SYNTAX      SnmpTagValue
  2672.        MAX-ACCESS  read-create
  2673.        STATUS      current
  2674.        DESCRIPTION
  2675.            "This object contains a single tag value which is used
  2676.             to select entries in the snmpTargetAddrTable.  Any entry
  2677.             in the snmpTargetAddrTable which contains a tag value
  2678.             which is equal to the value of an instance of this
  2679.             object is selected.  If this object contains a value
  2680.             of zero length, no entries are selected."
  2681.        ::= { snmpNotifyEntry 2 }
  2682.  
  2683.    snmpNotifyType OBJECT-TYPE
  2684.        SYNTAX      INTEGER {
  2685.                        trap(1),
  2686.                        inform(2)
  2687.                    }
  2688.        MAX-ACCESS  read-create
  2689.        STATUS      current
  2690.        DESCRIPTION
  2691.            "This object determines the type of notification to
  2692.             be generated for entries in the snmpTargetAddrTable
  2693.             selected by the corresponding instance of
  2694.             snmpNotifyTag.
  2695.  
  2696.             If the value of this object is trap(1), then any
  2697.             messages generated for selected rows will contain
  2698.             SNMPv2-Trap PDUs.
  2699.  
  2700.             If the value of this object is inform(2), then any
  2701.             messages generated for selected rows will contain
  2702.             Inform PDUs.
  2703.  
  2704.             Note that if an SNMP entity only supports
  2705.             generation of traps (and not informs), then this
  2706.             object may be read-only."
  2707.        DEFVAL { trap }
  2708.        ::= { snmpNotifyEntry 3 }
  2709.  
  2710.    snmpNotifyStorageType OBJECT-TYPE
  2711.        SYNTAX      StorageType
  2712.        MAX-ACCESS  read-create
  2713.        STATUS      current
  2714.        DESCRIPTION
  2715.            "The storage type for this conceptual row."
  2716.        ::= { snmpNotifyEntry 4 }
  2717.  
  2718.  
  2719.  
  2720.  
  2721.  
  2722. SNMPv3 Working Group       Expires April 1998            [Page 48]
  2723.  
  2724. Internet Draft            SNMPv3 Applications            28 October 1997
  2725.  
  2726.  
  2727.    snmpNotifyRowStatus OBJECT-TYPE
  2728.        SYNTAX      RowStatus
  2729.        MAX-ACCESS  read-create
  2730.        STATUS      current
  2731.        DESCRIPTION
  2732.            "The status of this conceptual row.
  2733.  
  2734.             To create a row in this table, a manager must
  2735.             set this object to either createAndGo(4) or
  2736.             createAndWait(5).
  2737.  
  2738.             Until instances of all corresponding columns are
  2739.             appropriately configured, the value of the
  2740.             corresponding instance of the snmpNotifyRowStatus
  2741.             column is 'notReady'.
  2742.  
  2743.             In particular, a newly created row cannot be made
  2744.             active until the corresponding snmpNotifyTag has
  2745.             been set."
  2746.        ::= { snmpNotifyEntry 5 }
  2747.  
  2748.    snmpNotifyFilterProfileTable OBJECT-TYPE
  2749.        SYNTAX      SEQUENCE OF SnmpNotifyFilterProfileEntry
  2750.        MAX-ACCESS  not-accessible
  2751.        STATUS      current
  2752.        DESCRIPTION
  2753.            "This table is used to associate a notification filter
  2754.             profile with a particular set of target parameters."
  2755.        ::= { snmpNotifyObjects 2 }
  2756.  
  2757.    snmpNotifyFilterProfileEntry OBJECT-TYPE
  2758.        SYNTAX      SnmpNotifyFilterProfileEntry
  2759.        MAX-ACCESS  not-accessible
  2760.        STATUS      current
  2761.        DESCRIPTION
  2762.            "An entry in this table indicates the name of the filter
  2763.             profile to be used when generating notifications using
  2764.             the corresponding entry in the snmpTargetParamsTable.
  2765.  
  2766.             Entries in the snmpNotifyFilterProfileTable are created
  2767.             and deleted using the snmpNotifyFilterProfileRowStatus
  2768.             object."
  2769.        INDEX { IMPLIED snmpTargetParamsName }
  2770.        ::= { snmpNotifyFilterProfileTable 1 }
  2771.  
  2772.    SnmpNotifyFilterProfileEntry ::= SEQUENCE {
  2773.        snmpNotifyFilterProfileName         SnmpAdminString,
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779. SNMPv3 Working Group       Expires April 1998            [Page 49]
  2780.  
  2781. Internet Draft            SNMPv3 Applications            28 October 1997
  2782.  
  2783.  
  2784.        snmpNotifyFilterProfileStorType     StorageType,
  2785.        snmpNotifyFilterProfileRowStatus    RowStatus
  2786.    }
  2787.  
  2788.    snmpNotifyFilterProfileName OBJECT-TYPE
  2789.        SYNTAX      SnmpAdminString (SIZE(1..32))
  2790.        MAX-ACCESS  read-create
  2791.        STATUS      current
  2792.        DESCRIPTION
  2793.            "The name of the filter profile to be used when generating
  2794.             notifications using the corresponding entry in the
  2795.             snmpTargetAddrTable."
  2796.        ::= { snmpNotifyFilterProfileEntry 1 }
  2797.  
  2798.    snmpNotifyFilterProfileStorType OBJECT-TYPE
  2799.        SYNTAX      StorageType
  2800.        MAX-ACCESS  read-create
  2801.        STATUS      current
  2802.        DESCRIPTION
  2803.            "The storage type of this conceptual row."
  2804.        ::= { snmpNotifyFilterProfileEntry 2 }
  2805.  
  2806.    snmpNotifyFilterProfileRowStatus OBJECT-TYPE
  2807.        SYNTAX      RowStatus
  2808.        MAX-ACCESS  read-create
  2809.        STATUS      current
  2810.        DESCRIPTION
  2811.            "The status of this conceptual row.
  2812.  
  2813.             To create a row in this table, a manager must
  2814.             set this object to either createAndGo(4) or
  2815.             createAndWait(5)."
  2816.        ::= { snmpNotifyFilterProfileEntry 3 }
  2817.  
  2818.    snmpNotifyFilterTable OBJECT-TYPE
  2819.        SYNTAX      SEQUENCE OF SnmpNotifyFilterEntry
  2820.        MAX-ACCESS  not-accessible
  2821.        STATUS      current
  2822.        DESCRIPTION
  2823.            "The table of filter profiles.  Filter profiles are used
  2824.             to determine whether particular management targets should
  2825.             receive particular notifications.
  2826.  
  2827.             When a notification is generated, it must be compared
  2828.             with the filters associated with each management target
  2829.             which is configured to receive notifications.  If the
  2830.             notification is matched by a filter, it is not sent to
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836. SNMPv3 Working Group       Expires April 1998            [Page 50]
  2837.  
  2838. Internet Draft            SNMPv3 Applications            28 October 1997
  2839.  
  2840.  
  2841.             the management target with which the filter is
  2842.             associated."
  2843.        ::= { snmpNotifyObjects 3 }
  2844.  
  2845.    snmpNotifyFilterEntry OBJECT-TYPE
  2846.        SYNTAX      SnmpNotifyFilterEntry
  2847.        MAX-ACCESS  not-accessible
  2848.        STATUS      current
  2849.        DESCRIPTION
  2850.            "An element of a filter profile.
  2851.  
  2852.             Entries in the snmpNotifyFilterTable are created and
  2853.             deleted using the snmpNotifyFilterRowStatus object."
  2854.        INDEX {         snmpNotifyFilterProfileName,
  2855.                IMPLIED snmpNotifyFilterSubtree }
  2856.        ::= { snmpNotifyFilterTable 1 }
  2857.  
  2858.    SnmpNotifyFilterEntry ::= SEQUENCE {
  2859.        snmpNotifyFilterSubtree           OBJECT IDENTIFIER,
  2860.        snmpNotifyFilterMask              OCTET STRING,
  2861.        snmpNotifyFilterType              INTEGER,
  2862.        snmpNotifyFilterStorageType       StorageType,
  2863.        snmpNotifyFilterRowStatus         RowStatus
  2864.    }
  2865.  
  2866.    snmpNotifyFilterSubtree OBJECT-TYPE
  2867.        SYNTAX      OBJECT IDENTIFIER
  2868.        MAX-ACCESS  not-accessible
  2869.        STATUS      current
  2870.        DESCRIPTION
  2871.            "The MIB subtree which, when combined with the corresponding
  2872.             instance of snmpNotifyFilterMask, defines a family of
  2873.             subtrees which are included in or excluded from the
  2874.             filter profile."
  2875.        ::= { snmpNotifyFilterEntry 1 }
  2876.  
  2877.    snmpNotifyFilterMask OBJECT-TYPE
  2878.        SYNTAX      OCTET STRING (SIZE(0..16))
  2879.        MAX-ACCESS  read-create
  2880.        STATUS      current
  2881.        DESCRIPTION
  2882.            "The bit mask which, in combination with the corresponding
  2883.             instance of snmpNotifyFilterSubtree, defines a family of
  2884.             subtrees which are included in or excluded from the
  2885.             filter profile.
  2886.  
  2887.             Each bit of this bit mask corresponds to a
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893. SNMPv3 Working Group       Expires April 1998            [Page 51]
  2894.  
  2895. Internet Draft            SNMPv3 Applications            28 October 1997
  2896.  
  2897.  
  2898.             sub-identifier of snmpNotifyFilterSubtree, with the
  2899.             most significant bit of the i-th octet of this octet
  2900.             string value (extended if necessary, see below)
  2901.             corresponding to the (8*i - 7)-th sub-identifier, and
  2902.             the least significant bit of the i-th octet of this
  2903.             octet string corresponding to the (8*i)-th
  2904.             sub-identifier, where i is in the range 1 through 16.
  2905.  
  2906.             Each bit of this bit mask specifies whether or not
  2907.             the corresponding sub-identifiers must match when
  2908.             determining if an OBJECT IDENTIFIER matches this
  2909.             family of filter subtrees; a '1' indicates that an
  2910.             exact match must occur; a '0' indicates 'wild card',
  2911.             i.e., any sub-identifier value matches.
  2912.  
  2913.             Thus, the OBJECT IDENTIFIER X of an object instance
  2914.             is contained in a family of filter subtrees if, for
  2915.             each sub-identifier of the value of
  2916.             snmpNotifyFilterSubtree, either:
  2917.  
  2918.               the i-th bit of snmpNotifyFilterMask is 0, or
  2919.  
  2920.               the i-th sub-identifier of X is equal to the i-th
  2921.               sub-identifier of the value of
  2922.               snmpNotifyFilterSubtree.
  2923.  
  2924.             If the value of this bit mask is M bits long and
  2925.             there are more than M sub-identifiers in the
  2926.             corresponding instance of snmpNotifyFilterSubtree,
  2927.             then the bit mask is extended with 1's to be the
  2928.             required length.
  2929.  
  2930.             Note that when the value of this object is the
  2931.             zero-length string, this extension rule results in
  2932.             a mask of all-1's being used (i.e., no 'wild card'),
  2933.             and the family of filter subtrees is the one
  2934.             subtree uniquely identified by the corresponding
  2935.             instance of snmpNotifyFilterSubtree."
  2936.        DEFVAL { ''H }
  2937.        ::= { snmpNotifyFilterEntry 2 }
  2938.  
  2939.    snmpNotifyFilterType OBJECT-TYPE
  2940.        SYNTAX      INTEGER {
  2941.                        included(1),
  2942.                        excluded(2)
  2943.                    }
  2944.        MAX-ACCESS  read-create
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950. SNMPv3 Working Group       Expires April 1998            [Page 52]
  2951.  
  2952. Internet Draft            SNMPv3 Applications            28 October 1997
  2953.  
  2954.  
  2955.        STATUS      current
  2956.        DESCRIPTION
  2957.            "This object indicates whether the family of filter subtrees
  2958.             defined by this entry are included in or excluded from a
  2959.             filter."
  2960.        DEFVAL { included }
  2961.        ::= { snmpNotifyFilterEntry 3 }
  2962.  
  2963.    snmpNotifyFilterStorageType OBJECT-TYPE
  2964.        SYNTAX      StorageType
  2965.        MAX-ACCESS  read-create
  2966.        STATUS      current
  2967.        DESCRIPTION
  2968.            "The storage type of this conceptual row."
  2969.        ::= { snmpNotifyFilterEntry 4 }
  2970.  
  2971.    snmpNotifyFilterRowStatus OBJECT-TYPE
  2972.        SYNTAX      RowStatus
  2973.        MAX-ACCESS  read-create
  2974.        STATUS      current
  2975.        DESCRIPTION
  2976.            "The status of this conceptual row.
  2977.  
  2978.             To create a row in this table, a manager must
  2979.             set this object to either createAndGo(4) or
  2980.             createAndWait(5)."
  2981.        ::= { snmpNotifyFilterEntry 5 }
  2982.  
  2983.    --
  2984.    --
  2985.    -- Conformance information
  2986.    --
  2987.    --
  2988.  
  2989.    snmpNotifyCompliances OBJECT IDENTIFIER ::=
  2990.                                            { snmpNotifyConformance 1 }
  2991.    snmpNotifyGroups      OBJECT IDENTIFIER ::=
  2992.                                            { snmpNotifyConformance 2 }
  2993.  
  2994.    --
  2995.    --
  2996.    -- Compliance statements
  2997.    --
  2998.    --
  2999.  
  3000.    snmpNotifyBasicCompliance MODULE-COMPLIANCE
  3001.        STATUS      current
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007. SNMPv3 Working Group       Expires April 1998            [Page 53]
  3008.  
  3009. Internet Draft            SNMPv3 Applications            28 October 1997
  3010.  
  3011.  
  3012.        DESCRIPTION
  3013.            "The compliance statement for minimal SNMP entities which
  3014.             implement only SNMP Traps and read-create operations on
  3015.             only the snmpTargetAddrTable."
  3016.        MODULE SNMP-TARGET-MIB
  3017.            MANDATORY-GROUPS { snmpTargetBasicGroup }
  3018.  
  3019.            OBJECT snmpTargetParamsMPModel
  3020.            MIN-ACCESS    read-only
  3021.            DESCRIPTION
  3022.                "Create/delete/modify access is not required."
  3023.  
  3024.            OBJECT snmpTargetParamsSecurityModel
  3025.            MIN-ACCESS    read-only
  3026.            DESCRIPTION
  3027.                "Create/delete/modify access is not required."
  3028.  
  3029.            OBJECT snmpTargetParamsSecurityName
  3030.            MIN-ACCESS    read-only
  3031.            DESCRIPTION
  3032.                "Create/delete/modify access is not required."
  3033.  
  3034.            OBJECT snmpTargetParamsSecurityLevel
  3035.            MIN-ACCESS    read-only
  3036.            DESCRIPTION
  3037.                "Create/delete/modify access is not required."
  3038.  
  3039.            OBJECT snmpTargetParamsStorageType
  3040.            SYNTAX INTEGER {
  3041.                readOnly(5)
  3042.            }
  3043.            MIN-ACCESS    read-only
  3044.            DESCRIPTION
  3045.                "Create/delete/modify access is not required.
  3046.                 Support of the values other(1), volatile(2),
  3047.                 nonVolatile(3), and permanent(4) is not required."
  3048.  
  3049.            OBJECT snmpTargetParamsRowStatus
  3050.            SYNTAX INTEGER {
  3051.                active(1)
  3052.            }
  3053.            MIN-ACCESS    read-only
  3054.            DESCRIPTION
  3055.                "Create/delete/modify access to the
  3056.                 snmpTargetParamsTable is not required.
  3057.                 Support of the values notInService(2), notReady(3),
  3058.                 createAndGo(4), createAndWait(5), and destroy(6) is
  3059.  
  3060.  
  3061.  
  3062.  
  3063.  
  3064. SNMPv3 Working Group       Expires April 1998            [Page 54]
  3065.  
  3066. Internet Draft            SNMPv3 Applications            28 October 1997
  3067.  
  3068.  
  3069.                 not required."
  3070.  
  3071.        MODULE -- This Module
  3072.            MANDATORY-GROUPS { snmpNotifyGroup }
  3073.  
  3074.            OBJECT snmpNotifyTag
  3075.            MIN-ACCESS    read-only
  3076.            DESCRIPTION
  3077.                "Create/delete/modify access is not required."
  3078.  
  3079.            OBJECT snmpNotifyType
  3080.            SYNTAX INTEGER {
  3081.                trap(1)
  3082.            }
  3083.            MIN-ACCESS    read-only
  3084.            DESCRIPTION
  3085.                "Create/delete/modify access is not required.
  3086.                 Support of the value notify(2) is not required."
  3087.  
  3088.            OBJECT snmpNotifyStorageType
  3089.            SYNTAX INTEGER {
  3090.                readOnly(5)
  3091.            }
  3092.            MIN-ACCESS    read-only
  3093.            DESCRIPTION
  3094.                "Create/delete/modify access is not required.
  3095.                 Support of the values other(1), volatile(2),
  3096.                 nonVolatile(3), and permanent(4) is not required."
  3097.  
  3098.            OBJECT snmpNotifyRowStatus
  3099.            SYNTAX INTEGER {
  3100.                active(1)
  3101.            }
  3102.            MIN-ACCESS    read-only
  3103.            DESCRIPTION
  3104.                "Create/delete/modify access to the
  3105.                 snmpNotifyTable is not required.
  3106.                 Support of the values notInService(2), notReady(3),
  3107.                 createAndGo(4), createAndWait(5), and destroy(6) is
  3108.                 not required."
  3109.  
  3110.        ::= { snmpNotifyCompliances 1 }
  3111.  
  3112.    snmpNotifyBasicFiltersCompliance MODULE-COMPLIANCE
  3113.        STATUS      current
  3114.        DESCRIPTION
  3115.            "The compliance statement for SNMP entities which implement
  3116.  
  3117.  
  3118.  
  3119.  
  3120.  
  3121. SNMPv3 Working Group       Expires April 1998            [Page 55]
  3122.  
  3123. Internet Draft            SNMPv3 Applications            28 October 1997
  3124.  
  3125.  
  3126.             SNMP Traps with filtering, and read-create operations on
  3127.             all related tables."
  3128.        MODULE SNMP-TARGET-MIB
  3129.            MANDATORY-GROUPS { snmpTargetBasicGroup }
  3130.        MODULE -- This Module
  3131.            MANDATORY-GROUPS { snmpNotifyGroup,
  3132.                               snmpNotifyFilterGroup }
  3133.        ::= { snmpNotifyCompliances 2 }
  3134.  
  3135.    snmpNotifyFullCompliance MODULE-COMPLIANCE
  3136.        STATUS      current
  3137.        DESCRIPTION
  3138.            "The compliance statement for SNMP entities which either
  3139.             implement only SNMP Informs, or both SNMP Traps and SNMP
  3140.             Informs, plus filtering and read-create operations on
  3141.             all related tables."
  3142.        MODULE SNMP-TARGET-MIB
  3143.            MANDATORY-GROUPS { snmpTargetBasicGroup,
  3144.                               snmpTargetResponseGroup }
  3145.        MODULE -- This Module
  3146.            MANDATORY-GROUPS { snmpNotifyGroup,
  3147.                               snmpNotifyFilterGroup }
  3148.        ::= { snmpNotifyCompliances 3 }
  3149.  
  3150.    snmpNotifyGroup OBJECT-GROUP
  3151.        OBJECTS {
  3152.            snmpNotifyTag,
  3153.            snmpNotifyType,
  3154.            snmpNotifyStorageType,
  3155.            snmpNotifyRowStatus
  3156.        }
  3157.        STATUS      current
  3158.        DESCRIPTION
  3159.            "A collection of objects for selecting which management
  3160.             targets are used for generating notifications, and the
  3161.             type of notification to be generated for each selected
  3162.             management target."
  3163.        ::= { snmpNotifyGroups 1 }
  3164.  
  3165.    snmpNotifyFilterGroup OBJECT-GROUP
  3166.        OBJECTS {
  3167.            snmpNotifyFilterProfileName,
  3168.            snmpNotifyFilterProfileStorType,
  3169.            snmpNotifyFilterProfileRowStatus,
  3170.            snmpNotifyFilterMask,
  3171.            snmpNotifyFilterType,
  3172.            snmpNotifyFilterStorageType,
  3173.  
  3174.  
  3175.  
  3176.  
  3177.  
  3178. SNMPv3 Working Group       Expires April 1998            [Page 56]
  3179.  
  3180. Internet Draft            SNMPv3 Applications            28 October 1997
  3181.  
  3182.  
  3183.            snmpNotifyFilterRowStatus
  3184.        }
  3185.        STATUS      current
  3186.        DESCRIPTION
  3187.            "A collection of objects providing remote configuration
  3188.             of notification filters."
  3189.        ::= { snmpNotifyGroups 2 }
  3190.  
  3191.    END
  3192.  
  3193.  
  3194.  
  3195.  
  3196.  
  3197.  
  3198.  
  3199.  
  3200.  
  3201.  
  3202.  
  3203.  
  3204.  
  3205.  
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215.  
  3216.  
  3217.  
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232.  
  3233.  
  3234. SNMPv3 Working Group       Expires April 1998            [Page 57]
  3235.  
  3236. Internet Draft            SNMPv3 Applications            28 October 1997
  3237.  
  3238.  
  3239. 4.3.  The Proxy MIB Module
  3240.  
  3241.    The SNMP-PROXY-MIB module, which defines MIB objects that provide
  3242.    mechanisms to remotely configure the parameters used by an SNMP
  3243.    entity for proxy forwarding operations, contains a single table.
  3244.    This table, snmpProxyTable, is used to define translations between
  3245.    management targets for use when forwarding messages.
  3246.  
  3247.  
  3248. 4.3.1.  Definitions
  3249.  
  3250.    SNMP-PROXY-MIB DEFINITIONS ::= BEGIN
  3251.  
  3252.    IMPORTS
  3253.        MODULE-IDENTITY,
  3254.        OBJECT-TYPE,
  3255.        snmpModules
  3256.            FROM SNMPv2-SMI
  3257.  
  3258.        RowStatus,
  3259.        StorageType
  3260.            FROM SNMPv2-TC
  3261.  
  3262.        SnmpEngineID,
  3263.        SnmpAdminString
  3264.            FROM SNMP-FRAMEWORK-MIB
  3265.  
  3266.        SnmpTagValue,
  3267.            FROM SNMP-TARGET-MIB
  3268.  
  3269.        MODULE-COMPLIANCE,
  3270.        OBJECT-GROUP
  3271.            FROM SNMPv2-CONF;
  3272.  
  3273.    snmpProxyMIB MODULE-IDENTITY
  3274.        LAST-UPDATED "9706140000Z"
  3275.        ORGANIZATION "IETF SNMPv3 Working Group"
  3276.        CONTACT-INFO
  3277.            "WG-email:   snmpv3@tis.com
  3278.             Subscribe:  majordomo@tis.com
  3279.                         In message body:  subscribe snmpv3
  3280.  
  3281.             Chair:      Russ Mundy
  3282.                         Trusted Information Systems
  3283.             Postal:     3060 Washington Rd
  3284.                         Glenwood MD 21738
  3285.                         USA
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291. SNMPv3 Working Group       Expires April 1998            [Page 58]
  3292.  
  3293. Internet Draft            SNMPv3 Applications            28 October 1997
  3294.  
  3295.  
  3296.             Email:      mundy@tis.com
  3297.             Phone:      +1-301-854-6889
  3298.  
  3299.             Co-editor:  David B. Levi
  3300.                         SNMP Research, Inc.
  3301.             Postal:     3001 Kimberlin Heights Road
  3302.                         Knoxville, TN 37920-9716
  3303.             E-mail:     levi@snmp.com
  3304.             Phone:      +1 423 573 1434
  3305.  
  3306.             Co-editor:  Paul Meyer
  3307.                         Secure Computing Corporation
  3308.             Postal:     2675 Long Lake Road
  3309.                         Roseville, MN 55113
  3310.             E-mail:     paul_meyer@securecomputing.com
  3311.             Phone:      +1 612 628 1592
  3312.  
  3313.             Co-editor:  Bob Stewart
  3314.                         Cisco Systems, Inc.
  3315.             Postal:     170 West Tasman Drive
  3316.                         San Jose, CA 95134-1706
  3317.             E-mail:     bstewart@cisco.com
  3318.             Phone:      +1 603 654 6923"
  3319.        DESCRIPTION
  3320.            "This MIB module defines MIB objects which provide
  3321.             mechanisms to remotely configure the parameters
  3322.             used by a proxy forwarding application."
  3323.        REVISION    "9707140000Z"
  3324.        DESCRIPTION
  3325.            "The initial revision."
  3326.        ::= { snmpModules 13 }      -- TBD
  3327.  
  3328.    snmpProxyObjects        OBJECT IDENTIFIER ::= { snmpProxyMIB 1 }
  3329.    snmpProxyConformance    OBJECT IDENTIFIER ::= { snmpProxyMIB 3 }
  3330.  
  3331.    --
  3332.    --
  3333.    -- The snmpProxyObjects group
  3334.    --
  3335.    --
  3336.  
  3337.    snmpProxyTable OBJECT-TYPE
  3338.        SYNTAX      SEQUENCE OF SnmpProxyEntry
  3339.        MAX-ACCESS  not-accessible
  3340.        STATUS      current
  3341.        DESCRIPTION
  3342.            "The table of translation parameters used by proxy forwarder
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348. SNMPv3 Working Group       Expires April 1998            [Page 59]
  3349.  
  3350. Internet Draft            SNMPv3 Applications            28 October 1997
  3351.  
  3352.  
  3353.             applications for forwarding SNMP messages."
  3354.        ::= { snmpProxyObjects 2 }
  3355.  
  3356.    snmpProxyEntry OBJECT-TYPE
  3357.        SYNTAX      SnmpProxyEntry
  3358.        MAX-ACCESS  not-accessible
  3359.        STATUS      current
  3360.        DESCRIPTION
  3361.            "A set of translation parameters used by a proxy forwarder
  3362.             application for forwarding SNMP messages.
  3363.  
  3364.             Entries in the snmpProxyTable are created and deleted
  3365.             using the snmpProxyRowStatus object."
  3366.        INDEX { IMPLIED snmpProxyName }
  3367.        ::= { snmpProxyTable 1 }
  3368.  
  3369.    SnmpProxyEntry ::= SEQUENCE {
  3370.        snmpProxyName               SnmpAdminString,
  3371.        snmpProxyType               INTEGER,
  3372.        snmpProxyContextEngineID    SnmpEngineID,
  3373.        snmpProxyContextName        SnmpAdminString,
  3374.        snmpProxyTargetParamsIn     SnmpAdminString,
  3375.        snmpProxySingleTargetOut    SnmpAdminString,
  3376.        snmpProxyMultipleTargetOut  SnmpTagValue,
  3377.        snmpProxyStorageType        StorageType,
  3378.        snmpProxyRowStatus          RowStatus
  3379.    }
  3380.  
  3381.    snmpProxyName OBJECT-TYPE
  3382.        SYNTAX      SnmpAdminString (SIZE(1..32))
  3383.        MAX-ACCESS  not-accessible
  3384.        STATUS      current
  3385.        DESCRIPTION
  3386.            "The locally arbitrary, but unique identifier associated
  3387.             with this snmpProxyEntry."
  3388.        ::= { snmpProxyEntry 1 }
  3389.  
  3390.    snmpProxyType OBJECT-TYPE
  3391.        SYNTAX      INTEGER {
  3392.                        read(1),
  3393.                        write(2),
  3394.                        trap(3),
  3395.                        inform(4)
  3396.                    }
  3397.        MAX-ACCESS  read-create
  3398.        STATUS      current
  3399.        DESCRIPTION
  3400.  
  3401.  
  3402.  
  3403.  
  3404.  
  3405. SNMPv3 Working Group       Expires April 1998            [Page 60]
  3406.  
  3407. Internet Draft            SNMPv3 Applications            28 October 1997
  3408.  
  3409.  
  3410.            "The type of message that may be forwarded using
  3411.             the translation parameters defined by this entry."
  3412.        ::= { snmpProxyEntry 2 }
  3413.  
  3414.    snmpProxyContextEngineID OBJECT-TYPE
  3415.        SYNTAX      SnmpEngineID
  3416.        MAX-ACCESS  read-create
  3417.        STATUS      current
  3418.        DESCRIPTION
  3419.            "The contextEngineID contained in messages that
  3420.             may be forwarded using the translation parameters
  3421.             defined by this entry."
  3422.        ::= { snmpProxyEntry 3 }
  3423.  
  3424.    snmpProxyContextName OBJECT-TYPE
  3425.        SYNTAX      SnmpAdminString
  3426.        MAX-ACCESS  read-create
  3427.        STATUS      current
  3428.        DESCRIPTION
  3429.            "The contextName contained in messages that may be
  3430.             forwarded using the translation parameters defined
  3431.             by this entry.
  3432.  
  3433.             This object is optional, and if not supported, the
  3434.             contextName contained in a message is ignored when
  3435.             selecting an entry in the snmpProxyTable."
  3436.        ::= { snmpProxyEntry 4 }
  3437.  
  3438.    snmpProxyTargetParamsIn OBJECT-TYPE
  3439.        SYNTAX      SnmpAdminString
  3440.        MAX-ACCESS  read-create
  3441.        STATUS      current
  3442.        DESCRIPTION
  3443.            "This object selects an entry in the snmpTargetParamsTable.
  3444.             The selected entry is used to determine which row of the
  3445.             snmpProxyTable to use for forwarding received messages."
  3446.        ::= { snmpProxyEntry 5 }
  3447.  
  3448.    snmpProxySingleTargetOut OBJECT-TYPE
  3449.        SYNTAX      SnmpAdminString
  3450.        MAX-ACCESS  read-create
  3451.        STATUS      current
  3452.        DESCRIPTION
  3453.            "This object selects a management target defined in the
  3454.             snmpTargetAddrTable (in the SNMP-TARGET-MIB).  The
  3455.             selected target is defined by an entry in the
  3456.             snmpTargetAddrTable whose index value (snmpTargetAddrName)
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462. SNMPv3 Working Group       Expires April 1998            [Page 61]
  3463.  
  3464. Internet Draft            SNMPv3 Applications            28 October 1997
  3465.  
  3466.  
  3467.             is equal to this object.
  3468.  
  3469.             This object is only used when selection of a single
  3470.             target is required (i.e. when forwarding an incoming
  3471.             read or write request)."
  3472.        ::= { snmpProxyEntry 6 }
  3473.  
  3474.    snmpProxyMultipleTargetOut OBJECT-TYPE
  3475.        SYNTAX      SnmpTagValue
  3476.        MAX-ACCESS  read-create
  3477.        STATUS      current
  3478.        DESCRIPTION
  3479.            "This object selects a set of management targets defined
  3480.             in the snmpTargetAddrTable (in the SNMP-TARGET-MIB).
  3481.  
  3482.             This object is only used when selection of multiple
  3483.             targets is required (i.e. when forwarding an incoming
  3484.             notification)."
  3485.        ::= { snmpProxyEntry 7 }
  3486.  
  3487.    snmpProxyStorageType OBJECT-TYPE
  3488.        SYNTAX      StorageType
  3489.        MAX-ACCESS  read-create
  3490.        STATUS      current
  3491.        DESCRIPTION
  3492.            "The storage type of this conceptual row."
  3493.        ::= { snmpProxyEntry 8 }
  3494.  
  3495.    snmpProxyRowStatus OBJECT-TYPE
  3496.        SYNTAX      RowStatus
  3497.        MAX-ACCESS  read-create
  3498.        STATUS      current
  3499.        DESCRIPTION
  3500.            "The status of this conceptual row.
  3501.  
  3502.             To create a row in this table, a manager must
  3503.             set this object to either createAndGo(4) or
  3504.             createAndWait(5).
  3505.  
  3506.             The following objects may not be modified while the
  3507.             value of this object is active(1):
  3508.                 - snmpProxyType
  3509.                 - snmpProxyContextEngineID
  3510.                 - snmpProxyContextName
  3511.                 - snmpProxyTargetParamsIn
  3512.                 - snmpProxySingleTargetOut
  3513.                 - snmpProxyMultipleTargetOut"
  3514.  
  3515.  
  3516.  
  3517.  
  3518.  
  3519. SNMPv3 Working Group       Expires April 1998            [Page 62]
  3520.  
  3521. Internet Draft            SNMPv3 Applications            28 October 1997
  3522.  
  3523.  
  3524.        ::= { snmpProxyEntry 9 }
  3525.  
  3526.    --
  3527.    --
  3528.    -- Conformance information
  3529.    --
  3530.    --
  3531.  
  3532.    snmpProxyCompliances OBJECT IDENTIFIER ::=
  3533.                                             { snmpProxyConformance 1 }
  3534.    snmpProxyGroups      OBJECT IDENTIFIER ::=
  3535.                                             { snmpProxyConformance 2 }
  3536.  
  3537.    --
  3538.    --
  3539.    -- Compliance statements
  3540.    --
  3541.    --
  3542.  
  3543.    snmpProxyCompliance MODULE-COMPLIANCE
  3544.        STATUS      current
  3545.        DESCRIPTION
  3546.            "The compliance statement for SNMP entities which include
  3547.             a proxy forwarding application."
  3548.        MODULE SNMP-TARGET-MIB
  3549.            MANDATORY-GROUPS { snmpTargetBasicGroup,
  3550.                               snmpTargetResponseGroup }
  3551.        MODULE -- This Module
  3552.            MANDATORY-GROUPS { snmpProxyGroup }
  3553.        ::= { snmpProxyCompliances 1 }
  3554.  
  3555.    snmpProxyGroup OBJECT-GROUP
  3556.        OBJECTS {
  3557.            snmpProxyType,
  3558.            snmpProxyContextEngineID,
  3559.            snmpProxyContextName,
  3560.            snmpProxyTargetParamsIn,
  3561.            snmpProxySingleTargetOut,
  3562.            snmpProxyMultipleTargetOut,
  3563.            snmpProxyStorageType,
  3564.            snmpProxyRowStatus
  3565.        }
  3566.        STATUS      current
  3567.        DESCRIPTION
  3568.            "A collection of objects providing remote configuration of
  3569.             management target translation parameters for use by
  3570.             proxy forwarder applications."
  3571.  
  3572.  
  3573.  
  3574.  
  3575.  
  3576. SNMPv3 Working Group       Expires April 1998            [Page 63]
  3577.  
  3578. Internet Draft            SNMPv3 Applications            28 October 1997
  3579.  
  3580.  
  3581.        ::= { snmpProxyGroups 3 }
  3582.  
  3583.    END
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.  
  3622.  
  3623.  
  3624.  
  3625.  
  3626.  
  3627.  
  3628.  
  3629.  
  3630.  
  3631.  
  3632. SNMPv3 Working Group       Expires April 1998            [Page 64]
  3633.  
  3634. Internet Draft            SNMPv3 Applications            28 October 1997
  3635.  
  3636.  
  3637. 5.  Identification of Management Targets in Notification Originators
  3638.  
  3639.    This section describes the mechanisms used by a notification
  3640.    originator application when using the MIB module described in this
  3641.    document to determine the set of management targets to be used when
  3642.    generating a notification.
  3643.  
  3644.    A notification originator uses the snmpNotifyTable to find the
  3645.    management targets to be used for generating notifications.  Each
  3646.    active entry in this table identifies zero or more entries in the
  3647.    snmpTargetAddrTable.  Any entry in the snmpTargetAddrTable whose
  3648.    snmpTargetAddrTagList object contains a tag value which is equal to a
  3649.    value of snmpNotifyTag is selected by the snmpNotifyEntry which
  3650.    contains that instance of snmpNotifyTag.  Note that a particular
  3651.    snmpTargetAddrEntry may be selected by multiple entries in the
  3652.    snmpNotifyTable, resulting in multiple notifications being generated
  3653.    using that snmpTargetAddrEntry.
  3654.  
  3655.    Each snmpTargetAddrEntry contains a pointer to the
  3656.    snmpTargetParamsTable (snmpTargetAddrParams).  This pointer selects a
  3657.    set of SNMP parameters to be used for generating notifications.  If
  3658.    the selected entry in the snmpTargetParamsTable does not exist, the
  3659.    management target is not used to generate notifications.
  3660.  
  3661.    The decision as to whether a notification should contain an SNMPv2-
  3662.    Trap or Inform PDU is determined by the value of the snmpNotifyType
  3663.    object.  If the value of this object is trap(1), the notification
  3664.    should contain an SNMPv2-Trap PDU.  If the value of this object is
  3665.    inform(2), then the notification should contain an Inform PDU, and
  3666.    the timeout time and number of retries for the Inform are the value
  3667.    of snmpTargetAddrTimeout and snmpTargetAddrRetryCount.  Note that the
  3668.    exception to these rules is when the snmpTargetParamsMPModel object
  3669.    indicates SNMPv1.  In this case, the notification is sent as a Trap
  3670.    if the value of snmpNotifyTargetType is either trap(1) or inform(2).
  3671.  
  3672.  
  3673.  
  3674.  
  3675.  
  3676.  
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688. SNMPv3 Working Group       Expires April 1998            [Page 65]
  3689.  
  3690. Internet Draft            SNMPv3 Applications            28 October 1997
  3691.  
  3692.  
  3693. 6.  Notification Filtering
  3694.  
  3695.    This section describes the mechanisms used by a notification
  3696.    originator application when using the MIB module described in this
  3697.    document to filter generation of notifications.
  3698.  
  3699.    A notification originator uses the snmpNotifyFilterTable to filter
  3700.    notifications.  A notification filter profile may be associated with
  3701.    a particular entry in the snmpTargetParamsTable.  The associated
  3702.    filter profile is identified by an entry in the
  3703.    snmpNotifyFilterProfileTable whose index is equal to the index of the
  3704.    entry in the snmpTargetParamsTable.  If no such entry exists in the
  3705.    snmpNotifyFilterProfileTable, no filtering is performed for that
  3706.    management target.
  3707.  
  3708.    If such an entry does exist, the value of snmpNotifyFilterProfileName
  3709.    of the entry is compared with the corresponding portion of the index
  3710.    of all active entries in the snmpNotifyFilterTable.  All such entries
  3711.    for which this comparison results in an exact match are used for
  3712.    filtering a notification generated using the associated
  3713.    snmpTargetParamsEntry.  If no such entries exist, no filtering is
  3714.    performed, and a notification may be sent to the management target.
  3715.  
  3716.    Otherwise, if matching entries do exist, a notification may be sent
  3717.    if the NOTIFICATION-TYPE OBJECT IDENTIFIER of the notification (this
  3718.    is the value of the element of the variable bindings whose name is
  3719.    snmpTrapOID.0, i.e., the second variable binding), and all of the
  3720.    object instances to be included in the variable-bindings of the
  3721.    notification, are not specifically excluded by the matching entries.
  3722.  
  3723.    Each set of snmpNotifyFilterTable entries is divided into two
  3724.    collections of filter subtrees:  the included filter subtrees, and
  3725.    the excluded filter subtrees.  The snmpNotifyFilterType object
  3726.    defines the collection to which each matching entry belongs.
  3727.  
  3728.    To determine whether a particular notification name or object
  3729.    instance is excluded by the set of matching entries, compare the
  3730.    notification name's or object instance's OBJECT IDENTIFIER with each
  3731.    of the matching entries.  If none match, then the notification name
  3732.    or object instance is considered excluded, and the notification
  3733.    should not be sent to this management target.  If one or more match,
  3734.    then the notification name or object instance is included or
  3735.    excluded, according to the value of snmpNotifyFilterType in the entry
  3736.    whose value of snmpNotifyFilterSubtree has the most sub-identifiers.
  3737.    If multiple entries match and have the same number of sub-
  3738.    identifiers, then the lexicographically greatest instance of
  3739.    snmpNotifyFilterType among those which match determines the inclusion
  3740.  
  3741.  
  3742.  
  3743.  
  3744.  
  3745. SNMPv3 Working Group       Expires April 1998            [Page 66]
  3746.  
  3747. Internet Draft            SNMPv3 Applications            28 October 1997
  3748.  
  3749.  
  3750.    or exclusion.
  3751.  
  3752.    A notification name's or object instance's OBJECT IDENTIFIER X
  3753.    matches an entry in the snmpNotifyFilterTable when the number of
  3754.    sub-identifiers in X is at least as many as in the value of
  3755.    snmpNotifyFilterSubtree for the entry, and each sub-identifier in the
  3756.    value of snmpNotifyFilterSubtree matches its corresponding sub-
  3757.    identifier in X.  Two sub-identifiers match either if the
  3758.    corresponding bit of snmpNotifyFilterMask is zero (the 'wild card'
  3759.    value), or if the two sub-identifiers are equal.
  3760.  
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.  
  3770.  
  3771.  
  3772.  
  3773.  
  3774.  
  3775.  
  3776.  
  3777.  
  3778.  
  3779.  
  3780.  
  3781.  
  3782.  
  3783.  
  3784.  
  3785.  
  3786.  
  3787.  
  3788.  
  3789.  
  3790.  
  3791.  
  3792.  
  3793.  
  3794.  
  3795.  
  3796.  
  3797.  
  3798.  
  3799.  
  3800.  
  3801. SNMPv3 Working Group       Expires April 1998            [Page 67]
  3802.  
  3803. Internet Draft            SNMPv3 Applications            28 October 1997
  3804.  
  3805.  
  3806. 7.  Management Target Translation in Proxy Forwarder Applications
  3807.  
  3808.    This section describes the mechanisms used by a proxy forwarder
  3809.    application when using the MIB module described in this document to
  3810.    translate incoming management target information into outgoing
  3811.    management target information for the purpose of forwarding messages.
  3812.    There are actually two mechanisms a proxy forwarder may use, one for
  3813.    forwarding request messages, and one for forwarding notification
  3814.    messages.
  3815.  
  3816.  
  3817. 7.1.  Management Target Translation for Request Forwarding
  3818.  
  3819.    When forwarding request messages, the proxy forwarder will select a
  3820.    single entry in the snmpProxyTable.  To select this entry, it will
  3821.    perform the following comparisons:
  3822.  
  3823.        -  The snmpProxyType must be read(1) if the request is a Get,
  3824.           GetNext, or GetBulk request.  The snmpProxyType must be
  3825.           write(2) if the request is a Set request.
  3826.  
  3827.        -  The contextEngineId must equal the snmpProxyContextEngineID
  3828.           object.
  3829.  
  3830.        -  If the snmpProxyContextName object is supported, it must equal
  3831.           the contextName.
  3832.  
  3833.        -  The snmpProxyTargetParamsIn object identifies an entry in the
  3834.           snmpTargetParamsTable.  The messageProcessingModel,
  3835.           securityLevel, security model, and securityName must match the
  3836.           values of snmpTargetParamsMPModel,
  3837.           snmpTargetParamsSecurityModel, snmpTargetParamsSecurityName,
  3838.           and snmpTargetParamsSecurityLevel of the identified entry in
  3839.           the snmpTargetParamsTable.
  3840.  
  3841.    There may be multiple entries in the snmpProxyTable for which these
  3842.    comparisons succeed.  The entry whose snmpProxyName has the
  3843.    lexicographically smallest value and for which the comparisons
  3844.    succeed will be selected by the proxy forwarder.
  3845.  
  3846.    The outgoing management target information is identified by the value
  3847.    of the snmpProxySingleTargetOut object of the selected entry.  This
  3848.    object identifies an entry in the snmpTargetAddrTable.  The
  3849.    identified entry in the snmpTargetAddrTable also contains a reference
  3850.    to the snmpTargetParamsTable (snmpTargetAddrParams).  If either the
  3851.    identified entry in the snmpTargetAddrTable does not exist, or the
  3852.    identified entry in the snmpTargetParamsTable does not exist, then
  3853.  
  3854.  
  3855.  
  3856.  
  3857.  
  3858. SNMPv3 Working Group       Expires April 1998            [Page 68]
  3859.  
  3860. Internet Draft            SNMPv3 Applications            28 October 1997
  3861.  
  3862.  
  3863.    this snmpProxyEntry does not identify valid forwarding information,
  3864.    and the proxy forwarder should attempt to identify another row.
  3865.  
  3866.    If there is no entry in the snmpProxyTable for which all of the
  3867.    conditions above may be met, then there is no appropriate forwarding
  3868.    information, and the proxy forwarder should take appropriate actions.
  3869.  
  3870.    Otherwise, The snmpTargetAddrTDomain, snmpTargetAddrTAddress,
  3871.    snmpTargetAddrTimeout, and snmpTargetRetryCount of the identified
  3872.    snmpTargetAddrEntry, and the snmpTargetParamsMPModel,
  3873.    snmpTargetParamsSecurityModel, snmpTargetParamsSecurityName, and
  3874.    snmpTargetParamsSecurityLevel of the identified snmpTargetParamsEntry
  3875.    are used as the destination management target.
  3876.  
  3877.  
  3878. 7.2.  Management Target Translation for Notification Forwarding
  3879.  
  3880.    When forwarding notification messages, the proxy forwarder will
  3881.    select multiple entries in the snmpProxyTable.  To select these
  3882.    entries, it will perform the following comparisons:
  3883.  
  3884.        -  The snmpProxyType must be trap(3) if the notification is a
  3885.           Trap.  The snmpProxyType must be inform(4) if the request is
  3886.           an Inform.
  3887.  
  3888.        -  The contextEngineId must equal the snmpProxyContextEngineID
  3889.           object.
  3890.  
  3891.        -  If the snmpProxyContextName object is supported, it must equal
  3892.           the contextName.
  3893.  
  3894.        -  The snmpProxyTargetParamsIn object identifies an entry in the
  3895.           snmpTargetParamsTable.  The messageProcessingModel,
  3896.           securityLevel, security model, and securityName must match the
  3897.           values of snmpTargetParamsMPModel,
  3898.           snmpTargetParamsSecurityModel, snmpTargetParamsSecurityName,
  3899.           and snmpTargetParamsSecurityLevel of the identified entry in
  3900.           the snmpTargetParamsTable.
  3901.  
  3902.    All entries for which these conditions are met are selected.  The
  3903.    snmpProxyMultipleTargetOut object of each such entry is used to
  3904.    select a set of entries in the snmpTargetAddrTable.  Any
  3905.    snmpTargetAddrEntry whose snmpTargetAddrTagList object contains a tag
  3906.    value equal to the value of snmpProxyMultipleTargetOut, and whose
  3907.    snmpTargetAddrParams object references an existing entry in the
  3908.    snmpTargetParamsTable, is selected as a destination for the forwarded
  3909.    notification.
  3910.  
  3911.  
  3912.  
  3913.  
  3914.  
  3915. SNMPv3 Working Group       Expires April 1998            [Page 69]
  3916.  
  3917. Internet Draft            SNMPv3 Applications            28 October 1997
  3918.  
  3919.  
  3920. 8.  Intellectual Property
  3921.  
  3922.    The IETF takes no position regarding the validity or scope of any
  3923.    intellectual property or other rights that might be claimed to
  3924.    pertain to the implementation or use of the technology described in
  3925.    this document or the extent to which any license under such rights
  3926.    might or might not be available; neither does it represent that it
  3927.    has made any effort to identify any such rights.  Information on the
  3928.    IETF's procedures with respect to rights in standards-track and
  3929.    standards-related documentation can be found in BCP-11.  Copies of
  3930.    claims of rights made available for publication and any assurances of
  3931.    licenses to be made available, or the result of an attempt made to
  3932.    obtain a general license or permission for the use of such
  3933.    proprietary rights by implementors or users of this specification can
  3934.    be obtained from the IETF Secretariat.
  3935.  
  3936.    The IETF invites any interested party to bring to its attention any
  3937.    copyrights, patents or patent applications, or other proprietary
  3938.    rights which may cover technology that may be required to practice
  3939.    this standard.  Please address the information to the IETF Executive
  3940.    Director.
  3941.  
  3942.  
  3943.  
  3944. 9.  Acknowledgments
  3945.  
  3946.    This document is the result of the efforts of the SNMPv3 Working
  3947.    Group.  Some special thanks are in order to the following SNMPv3 WG
  3948.    members:
  3949.  
  3950.        Dave Battle (SNMP Research, Inc.)
  3951.        Uri Blumenthal (IBM T.J. Watson Research Center)
  3952.        Jeff Case (SNMP Research, Inc.)
  3953.        John Curran (BBN)
  3954.        T. Max Devlin (Hi-TECH Connections)
  3955.        John Flick (Hewlett Packard)
  3956.        David Harrington (Cabletron Systems Inc.)
  3957.        N.C. Hien (IBM T.J. Watson Research Center)
  3958.        Dave Levi (SNMP Research, Inc.)
  3959.        Louis A Mamakos (UUNET Technologies Inc.)
  3960.        Paul Meyer (Secure Computing Corporation)
  3961.        Keith McCloghrie (Cisco Systems)
  3962.        Russ Mundy (Trusted Information Systems, Inc.)
  3963.        Bob Natale (ACE*COMM Corporation)
  3964.        Mike O'Dell (UUNET Technologies Inc.)
  3965.        Dave Perkins (DeskTalk)
  3966.        Peter Polkinghorne (Brunel University)
  3967.  
  3968.  
  3969.  
  3970.  
  3971.  
  3972. SNMPv3 Working Group       Expires April 1998            [Page 70]
  3973.  
  3974. Internet Draft            SNMPv3 Applications            28 October 1997
  3975.  
  3976.  
  3977.        Randy Presuhn (BMC Software, Inc.)
  3978.        David Reid (SNMP Research, Inc.)
  3979.        Shawn Routhier (Epilogue)
  3980.        Juergen Schoenwaelder (TU Braunschweig)
  3981.        Bob Stewart (Cisco Systems)
  3982.        Bert Wijnen (IBM T.J. Watson Research Center)
  3983.  
  3984.    The document is based on recommendations of the IETF Security and
  3985.    Administrative Framework Evolution for SNMP Advisory Team. Members of
  3986.    that Advisory Team were:
  3987.  
  3988.        David Harrington (Cabletron Systems Inc.)
  3989.        Jeff Johnson (Cisco Systems)
  3990.        David Levi (SNMP Research Inc.)
  3991.        John Linn (Openvision)
  3992.        Russ Mundy (Trusted Information Systems) chair
  3993.        Shawn Routhier (Epilogue)
  3994.        Glenn Waters (Nortel)
  3995.        Bert Wijnen (IBM T. J. Watson Research Center)
  3996.  
  3997.    As recommended by the Advisory Team and the SNMPv3 Working Group
  3998.    Charter, the design incorporates as much as practical from previous
  3999.    RFCs and drafts. As a result, special thanks are due to the authors
  4000.    of previous designs known as SNMPv2u and SNMPv2*:
  4001.  
  4002.        Jeff Case (SNMP Research, Inc.)
  4003.        David Harrington (Cabletron Systems Inc.)
  4004.        David Levi (SNMP Research, Inc.)
  4005.        Keith McCloghrie (Cisco Systems)
  4006.        Brian O'Keefe (Hewlett Packard)
  4007.        Marshall T. Rose (Dover Beach Consulting)
  4008.        Jon Saperia (BGS Systems Inc.)
  4009.        Steve Waldbusser (International Network Services)
  4010.        Glenn W. Waters (Bell-Northern Research Ltd.)
  4011.  
  4012.  
  4013.  
  4014. 10.  Security Considerations
  4015.  
  4016.    The SNMP applications described in this document typically have
  4017.    direct access to MIB instrumentation.  Thus, it is very important
  4018.    that these applications be strict in their application of access
  4019.    control as described in this document.
  4020.  
  4021.    In addition, there may be some types of notification generator
  4022.    applications which, rather than accessing MIB instrumentation using
  4023.    access control, will obtain MIB information through other means (such
  4024.  
  4025.  
  4026.  
  4027.  
  4028.  
  4029. SNMPv3 Working Group       Expires April 1998            [Page 71]
  4030.  
  4031. Internet Draft            SNMPv3 Applications            28 October 1997
  4032.  
  4033.  
  4034.    as from a command line).  The implementors and users of such
  4035.    applications must be responsible for not divulging MIB information
  4036.    that normally would be inaccessible due to access control.
  4037.  
  4038.  
  4039.  
  4040.  
  4041.  
  4042.  
  4043.  
  4044.  
  4045.  
  4046.  
  4047.  
  4048.  
  4049.  
  4050.  
  4051.  
  4052.  
  4053.  
  4054.  
  4055.  
  4056.  
  4057.  
  4058.  
  4059.  
  4060.  
  4061.  
  4062.  
  4063.  
  4064.  
  4065.  
  4066.  
  4067.  
  4068.  
  4069.  
  4070.  
  4071.  
  4072.  
  4073.  
  4074.  
  4075.  
  4076.  
  4077.  
  4078.  
  4079.  
  4080.  
  4081.  
  4082.  
  4083.  
  4084.  
  4085. SNMPv3 Working Group       Expires April 1998            [Page 72]
  4086.  
  4087. Internet Draft            SNMPv3 Applications            28 October 1997
  4088.  
  4089.  
  4090. 11.  References
  4091.  
  4092. [RFC1157]
  4093.      Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network
  4094.      Management Protocol", RFC 1157, SNMP Research, Performance Systems
  4095.      International, Performance Systems International, MIT Laboratory
  4096.      for Computer Science, May 1990.
  4097.  
  4098. [RFC1213]
  4099.      McCloghrie, K., and M. Rose, Editors, "Management Information Base
  4100.      for Network Management of TCP/IP-based internets: MIB-II", STD 17,
  4101.      RFC 1213, Hughes LAN Systems, Performance Systems International,
  4102.      March 1991.
  4103.  
  4104. [RFC1902]
  4105.      SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
  4106.      Waldbusser, "Structure of Management Information for Version 2 of
  4107.      the Simple Network Management Protocol (SNMPv2)", RFC1902, SNMP
  4108.      Research,Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc.,
  4109.      International Network Services, January 1996.
  4110.  
  4111. [RFC1903]
  4112.      SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
  4113.      Waldbusser, "Textual Conventions for Version 2 of the Simple
  4114.      Network Management Protocol (SNMPv2)", RFC1903, SNMP Research,Inc.,
  4115.      Cisco Systems, Inc., Dover Beach Consulting, Inc., International
  4116.      Network Services, January 1996.
  4117.  
  4118. [RFC1905]
  4119.      SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
  4120.      Waldbusser, "Protocol Operations for Version 2 of the Simple
  4121.      Network Management Protocol (SNMPv2)", RFC1905, SNMP Research,Inc.,
  4122.      Cisco Systems, Inc., Dover Beach Consulting, Inc., International
  4123.      Network Services, January 1996.
  4124.  
  4125. [RFC1907]
  4126.      SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
  4127.      Waldbusser, "Management Information Base for Version 2 of the
  4128.      Simple Network Management Protocol (SNMPv2)", RFC1905, SNMP
  4129.      Research,Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc.,
  4130.      International Network Services, January 1996.
  4131.  
  4132. [RFC1908]
  4133.      SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
  4134.      Waldbusser, "Coexistence between Version 1 and Version 2 of the
  4135.      Internet-standard Network Management Framework", RFC1905, SNMP
  4136.      Research,Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc.,
  4137.  
  4138.  
  4139.  
  4140.  
  4141.  
  4142. SNMPv3 Working Group       Expires April 1998            [Page 73]
  4143.  
  4144. Internet Draft            SNMPv3 Applications            28 October 1997
  4145.  
  4146.  
  4147.      International Network Services, January 1996.
  4148.  
  4149. [SNMP-ARCH]
  4150.      The SNMPv3 Working Group, Harrington, D., Wijnen, B., "An
  4151.      Architecture for Describing SNMP Management Frameworks", draft-
  4152.      ietf-snmpv3-next-gen-arch-06.txt, September 1997.
  4153.  
  4154. [SNMP-MPD]
  4155.      The SNMPv3 Working Group, Case, J., Harrington, D., Wijnen, B.,
  4156.      "Message Processing and Dispatching for the Simple Network
  4157.      Management Protocol (SNMP)", draft-ietf-snmpv3-v3mpc-model-06.txt,
  4158.      October 1997.
  4159.  
  4160. [SNMP-ACM]
  4161.      The SNMPv3 Working Group, Wijnen, B., Presuhn, R., McCloghrie, K.,
  4162.      "View-based Access Control Model for the Simple Network Management
  4163.      Protocol (SNMP)", draft-ietf-snmpv3-acm-04.txt, September 1997.
  4164.  
  4165.  
  4166.  
  4167.  
  4168.  
  4169.  
  4170.  
  4171.  
  4172.  
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.  
  4179.  
  4180.  
  4181.  
  4182.  
  4183.  
  4184.  
  4185.  
  4186.  
  4187.  
  4188.  
  4189.  
  4190.  
  4191.  
  4192.  
  4193.  
  4194.  
  4195.  
  4196.  
  4197.  
  4198. SNMPv3 Working Group       Expires April 1998            [Page 74]
  4199.  
  4200. Internet Draft            SNMPv3 Applications            28 October 1997
  4201.  
  4202.  
  4203. 12.  Editor's Address
  4204.  
  4205.      David B. Levi
  4206.      SNMP Research, Inc.
  4207.      3001 Kimberlin Heights Road
  4208.      Knoxville, TN 37920-9716
  4209.      U.S.A.
  4210.      Phone: +1 423 573 1434
  4211.      EMail: levi@snmp.com
  4212.  
  4213.      Paul Meyer
  4214.      Secure Computing Corporation
  4215.      2675 Long Lake Road
  4216.      Roseville, MN 55113
  4217.      U.S.A.
  4218.      Phone: +1 612 628 1592
  4219.      EMail: paul_meyer@securecomputing.com
  4220.  
  4221.      Bob Stewart
  4222.      Cisco Systems, Inc.
  4223.      170 West Tasman Drive
  4224.      San Jose, CA 95134-1706
  4225.      U.S.A.
  4226.      Phone: +1 603 654 6923
  4227.      EMail: bstewart@cisco.com
  4228.  
  4229.  
  4230.  
  4231.  
  4232.  
  4233.  
  4234.  
  4235.  
  4236.  
  4237.  
  4238.  
  4239.  
  4240.  
  4241.  
  4242.  
  4243.  
  4244.  
  4245.  
  4246.  
  4247.  
  4248.  
  4249.  
  4250.  
  4251.  
  4252.  
  4253.  
  4254. SNMPv3 Working Group       Expires April 1998            [Page 75]
  4255.  
  4256. Internet Draft            SNMPv3 Applications            28 October 1997
  4257.  
  4258.  
  4259.    APPENDIX A - Trap Configuration Example
  4260.  
  4261.    This section describes an example configuration for a Notification
  4262.    Generator application which implements the snmpNotifyBasicCompliance
  4263.    level.  The example configuration specifies that the Notification
  4264.    Generator should send notifications to 3 separate managers, using
  4265.    authentication and no privacy for the first 2 managers, and using
  4266.    both authentication and privacy for the third manager.
  4267.  
  4268.    The configuration consists of three rows in the snmpTargetAddrTable,
  4269.    and two rows in the snmpTargetTable.
  4270.  
  4271.           snmpTargetAddrName         SnmpAdminString,
  4272.           snmpTargetAddrTDomain      TDomain,
  4273.           snmpTargetAddrTAddress     TAddress,
  4274.           snmpTargetAddrTimeout      TimeInterval,
  4275.           snmpTargetAddrRetryCount   Integer32,
  4276.           snmpTargetAddrTagList      SnmpAdminString,
  4277.           snmpTargetAddrParams       SnmpAdminString,
  4278.           snmpTargetAddrStorageType  StorageType,
  4279.           snmpTargetAddrRowStatus    RowStatus
  4280.  
  4281.         * snmpTargetAddrName        = "addr1"
  4282.           snmpTargetAddrTDomain     = snmpUDPDomain
  4283.           snmpTargetAddrTAddress    = 128.1.2.3:162
  4284.           snmpTargetAddrTagList     = "group1"
  4285.           snmpTargetAddrParams      = "AuthNoPriv joe"
  4286.           snmpTargetAddrStorageType = readOnly(5)
  4287.           snmpTargetAddrRowStatus   = active(1)
  4288.  
  4289.         * snmpTargetAddrName        = "addr2"
  4290.           snmpTargetAddrTDomain     = snmpUDPDomain
  4291.           snmpTargetAddrTAddress    = 128.2.4.6:162
  4292.           snmpTargetAddrTagList     = "group1"
  4293.           snmpTargetAddrParams      = "AuthNoPriv-joe"
  4294.           snmpTargetAddrStorageType = readOnly(5)
  4295.           snmpTargetAddrRowStatus   = active(1)
  4296.  
  4297.         * snmpTargetAddrName        = "addr3"
  4298.           snmpTargetAddrTDomain     = snmpUDPDomain
  4299.           snmpTargetAddrTAddress    = 128.1.2.3:162
  4300.           snmpTargetAddrTagList     = "group2"
  4301.           snmpTargetAddrParams      = "AuthPriv-bob"
  4302.           snmpTargetAddrStorageType = readOnly(5)
  4303.           snmpTargetAddrRowStatus   = active(1)
  4304.  
  4305.         * snmpTargetParamsName                   = "AuthNoPriv-joe"
  4306.  
  4307.  
  4308.  
  4309.  
  4310.  
  4311. SNMPv3 Working Group       Expires April 1998            [Page 76]
  4312.  
  4313. Internet Draft            SNMPv3 Applications            28 October 1997
  4314.  
  4315.  
  4316.           snmpTargetParamsMPModel                = 3
  4317.           snmpTargetParamsSecurityModel          = 3 (USM)
  4318.           snmpTargetParamsSecurityName           = "joe"
  4319.           snmpTargetParamsSecurityLevel          = authNoPriv(2)
  4320.           snmpTargetParamsStorageType            = readOnly(5)
  4321.           snmpTargetParamsRowStatus              = active(1)
  4322.  
  4323.         * snmpTargetParamsName                   = "AuthPriv-bob"
  4324.           snmpTargetParamsMPModel                = 3
  4325.           snmpTargetParamsSecurityModel          = 3 (USM)
  4326.           snmpTargetParamsSecurityName           = "bob"
  4327.           snmpTargetParamsSecurityLevel          = authPriv(3)
  4328.           snmpTargetParamsStorageType            = readOnly(5)
  4329.           snmpTargetParamsRowStatus              = active(1)
  4330.  
  4331.         * snmpNotifyName         = "group1"
  4332.           snmpNotifyTag          = "group1"
  4333.           snmpNotifyType         = trap(1)
  4334.           snmpNotifyStorageType  = readOnly(5)
  4335.           snmpNotifyRowStatus    = active(1)
  4336.  
  4337.         * snmpNotifyName         = "group2"
  4338.           snmpNotifyTag          = "group2"
  4339.           snmpNotifyType         = trap(1)
  4340.           snmpNotifyStorageType  = readOnly(5)
  4341.           snmpNotifyRowStatus    = active(1)
  4342.  
  4343.    These entries define two groups of management targets.  The first
  4344.    group contains two management targets:
  4345.  
  4346.                                 first target      second target
  4347.                                 ------------      -------------
  4348.        messageProcessingModel   SNMPv3            SNMPv3
  4349.                 securityModel   3 (USM)           3 (USM)
  4350.                  securityName   "joe"             "joe"
  4351.                 securityLevel   authNoPriv(2)     authNoPriv(2)
  4352.               transportDomain   snmpUDPDomain     snmpUDPDomain
  4353.              transportAddress   128.1.2.3:162     128.2.4.6:162
  4354.  
  4355.    And the second group contains a single management target:
  4356.  
  4357.        messageProcessingModel   SNMPv3
  4358.                 securityLevel   authPriv(3)
  4359.                 securityModel   3 (USM)
  4360.                  securityName   "bob"
  4361.               transportDomain   snmpUDPDomain
  4362.              transportAddress   128.1.5.9:162
  4363.  
  4364.  
  4365.  
  4366.  
  4367.  
  4368. SNMPv3 Working Group       Expires April 1998            [Page 77]
  4369.  
  4370. Internet Draft            SNMPv3 Applications            28 October 1997
  4371.  
  4372.  
  4373.    B.  Full Copyright Statement
  4374.  
  4375.    This document and translations of it may be copied and furnished to
  4376.    others, and derivative works that comment on or otherwise explain it
  4377.    or assist in its implmentation may be prepared, copied, published and
  4378.    distributed, in whole or in part, without restriction of any kind,
  4379.    provided that the above copyright notice and this paragraph are
  4380.    included on all such copies and derivative works.  However, this
  4381.    document itself may not be modified in any way, such as by removing
  4382.    the copyright notice or references to the Internet Society or other
  4383.    Internet organizations, except as needed for the  purpose of
  4384.    developing Internet standards in which case the procedures for
  4385.    copyrights defined in the Internet Standards process must be
  4386.    followed, or as required to translate it into languages other than
  4387.    English.
  4388.  
  4389.    The limited permissions granted above are perpetual and will not be
  4390.    revoked by the Internet Society or its successors or assigns.
  4391.  
  4392.    This document and the information contained herein is provided on an
  4393.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  4394.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  4395.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  4396.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  4397.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  4398.  
  4399.  
  4400.  
  4401.  
  4402.  
  4403.  
  4404.  
  4405.  
  4406.  
  4407.  
  4408.  
  4409.  
  4410.  
  4411.  
  4412.  
  4413.  
  4414.  
  4415.  
  4416.  
  4417.  
  4418.  
  4419.  
  4420.  
  4421.  
  4422.  
  4423.  
  4424. SNMPv3 Working Group       Expires April 1998            [Page 78]
  4425.  
  4426.