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-02.txt < prev    next >
Text File  |  1997-10-10  |  142KB  |  4,363 lines

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