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-00.txt < prev    next >
Text File  |  1997-07-21  |  113KB  |  3,691 lines

  1.  
  2.  
  3.  
  4.  
  5. Internet-Draft            SNMPv3 Applications                  July 1997
  6.  
  7.  
  8.                           SNMPv3 Applications
  9.  
  10.                              July 18, 1997
  11.  
  12.                     <draft-ietf-snmpv3-appl-00.txt>
  13.  
  14.                              David B. Levi
  15.                           SNMP Research, Inc.
  16.                              levi@snmp.com
  17.  
  18.                                Paul Meyer
  19.                       Secure Computing Corporation
  20.                      paul_meyer@securecomputing.com
  21.  
  22.                               Bob Stewart
  23.                              Cisco Systems
  24.                            bstewart@cisco.com
  25.  
  26.  
  27.  
  28.  
  29.  
  30. Status of this Memo
  31.  
  32.    This document is an Internet-Draft. Internet-Drafts are working
  33.    documents of the Internet Engineering Task Force (IETF), its areas,
  34.    and its working groups.  Note that other groups may also distribute
  35.    working documents as Internet-Drafts.
  36.  
  37.    Internet-Drafts are draft documents valid for a maximum of six months
  38.    and may be updated, replaced, or obsoleted by other documents at any
  39.    time.  It is inappropriate to use Internet-Drafts as reference
  40.    material or to cite them other than as ``work in progress.''
  41.  
  42.    To learn the current status of any Internet-Draft, please check the
  43.    ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
  44.    Directories on ds.internic.net (US East Coast), nic.nordu.net
  45.    (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific
  46.    Rim).
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59. Expires January 1998                                      [Page 1]
  60.  
  61.  
  62.  
  63.  
  64. Internet-Draft            SNMPv3 Applications                  July 1997
  65.  
  66.  
  67. 1.  Abstract
  68.  
  69.    This memo describes the various types of SNMP applications which make
  70.    use of an SNMP engine as described in [SNMPV3-ARCH].  There are five
  71.    types of application described herein:
  72.  
  73.        -  Applications which initiate SNMP Get, GetNext, GetBulk, and/or
  74.           Set requests, called 'command generators'.
  75.  
  76.        -  Applications which respond to SNMP Get, GetNext, GetBulk,
  77.           and/or Set requests, called 'command responders'.
  78.  
  79.        -  Applications which generate notifications, called
  80.           'notification originators'.
  81.  
  82.        -  Applications which receive notifications, called 'notification
  83.           receivers'.
  84.  
  85.        -  Applications which forward SNMP Get, GetNext, GetBulk, and/or
  86.           Set requests or notifications, called 'proxy forwarders'.
  87.  
  88.    This memo also defines MIBs for specifying targets of management
  89.    operations, for notification filtering, and for proxy forwarding.
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118. Expires January 1998                                      [Page 2]
  119.  
  120.  
  121.  
  122.  
  123. Internet-Draft            SNMPv3 Applications                  July 1997
  124.  
  125.  
  126. 2.  Overview
  127.  
  128.    Traditionally there are two types of applications in SNMP, managers
  129.    and agents.  However, it is useful to further divide these types of
  130.    applications in order to define an overall architecture for SNMP.
  131.    This document describes the five types of SNMP applications:
  132.  
  133.  
  134.        -  Applications which initiate SNMP Get, GetNext, GetBulk, and/or
  135.           Set requests, called 'command generators'.
  136.  
  137.        -  Applications which respond to SNMP Get, GetNext, GetBulk,
  138.           and/or Set requests, called 'command responders'.
  139.  
  140.        -  Applications which generate notifications, called
  141.           'notification originators'.
  142.  
  143.        -  Applications which receive notifications, called 'notification
  144.           receivers'.
  145.  
  146.        -  Applications which forward SNMP Get, GetNext, GetBulk, and/or
  147.           Set requests or notifications, called 'proxy forwarder'.
  148.  
  149.    Note that an agent, in the traditional meaning, can be thought of as
  150.    a combination of a command responder application, a notification
  151.    generator application, and the SNMP engine associated with these
  152.    applications.  Likewise, a manager, in the traditional meaning, can
  153.    be thought of as a combination of a command generator application, a
  154.    notification receiver application, and the SNMP engine associated
  155.    with these applications.  However, there are no restrictions on the
  156.    types of applications that may be associated with a particular SNMP
  157.    engine.  For example, a single SNMP engine may in fact be associated
  158.    with both command generator and command responder applications.
  159.  
  160.  
  161. 2.1.  Command Generators
  162.  
  163.    A command generator application initiates SNMP Get, GetNext, GetBulk,
  164.    and/or Set requests, as well as processing the response to a request
  165.    which it generated.
  166.  
  167.  
  168. 2.2.  Command Responders
  169.  
  170.    A command responder application receives SNMP Get, GetNext, GetBulk,
  171.    and/or Set requests for which the contextEngineID is equal to that of
  172.    the local engine through which the request was received.  The command
  173.  
  174.  
  175.  
  176.  
  177.  
  178. Expires January 1998                                      [Page 3]
  179.  
  180.  
  181.  
  182.  
  183. Internet-Draft            SNMPv3 Applications                  July 1997
  184.  
  185.  
  186.    responder will perform the appropriate protocol operation, using
  187.    access control, and will generate a response message to be sent to
  188.    the request's originator.
  189.  
  190.  
  191. 2.3.  Notification Originators
  192.  
  193.    A notification originator conceptually monitors a system for
  194.    particular events or conditions, and generates Trap and/or Inform
  195.    messages based on these events or conditions.  A notification
  196.    originator must have a mechanism for determining where to send
  197.    messages, and what SNMP information to use when sending messages.  A
  198.    mechanism and MIB for this purpose is provided in this document.
  199.  
  200.  
  201. 2.4.  Notification Receivers
  202.  
  203.    A notification receiver application listens for notification
  204.    messages, and generates response messages when a message containing
  205.    an Inform PDU is received.
  206.  
  207.  
  208. 2.5.  Proxy Forwarder
  209.  
  210.    A proxy forwarder application forwards SNMP messages.  Note that
  211.    implementation of a proxy forwarder application is optional.  The
  212.    sections describing proxy (4.5, 5.3, and 8) may be skipped for
  213.    implementations that do not include a proxy forwarder application.
  214.  
  215.    The term "proxy" has historically been used very loosely, with
  216.    multiple different meanings.  These different meanings include (among
  217.    others):
  218.  
  219. (1)  the forwarding of SNMP requests to other SNMP agents without regard
  220.      for what managed object types are being accessed; for example, in
  221.      order to forward an SNMP request from one transport domain to
  222.      another, or to translate SNMP requests of one version into SNMP
  223.      requests of another version;
  224.  
  225. (2)  the translation of SNMP requests into operations of some non-SNMP
  226.      management protocol; and
  227.  
  228. (3)  support for aggregated managed objects where the value of one
  229.      managed object instance depends upon the values of multiple other
  230.      (remote) items of management information.
  231.  
  232.    Each of these scenarios can be advantageous; for example, support for
  233.  
  234.  
  235.  
  236.  
  237.  
  238. Expires January 1998                                      [Page 4]
  239.  
  240.  
  241.  
  242.  
  243. Internet-Draft            SNMPv3 Applications                  July 1997
  244.  
  245.  
  246.    aggregation of management information can significantly reduce the
  247.    bandwidth requirements of large-scale management activities.
  248.    However, using a single term to cover multiple different scenarios
  249.    causes confusion.
  250.  
  251.    To avoid such confusion, this document uses the term "proxy" with a
  252.    much more tightly defined meaning.  The term "proxy" is used in this
  253.    document to refer to a proxy forwarder application which forwards
  254.    either SNMP requests or notifications without regard for what managed
  255.    objects are contained within requests or notifications.  This
  256.    definition is most closely related to the first definition above.
  257.    Note however that in the SNMPv3 architecture, a proxy forwarder is
  258.    actually an application, and need not actually be an SNMP agent.
  259.  
  260.    Specifically, the distinction between a regular SNMP agent and a
  261.    "proxy forwarder application" is simple:
  262.  
  263.        -  a proxy forwarder application forwards requests and/or
  264.           notifications on to other SNMP engines according to the
  265.           context, and irrespective of the specific managed object types
  266.           being accessed, and forwards the response to such previously
  267.           forwarded messages back to the SNMP engine from which the
  268.           original message was received;
  269.  
  270.        -  in contrast, the command responder application that is part of
  271.           an SNMP agent processes SNMP requests according to the (names
  272.           of the) individual managed object types and instances being
  273.           accessed, is NOT a proxy forwarder application from the
  274.           perspective of this document.
  275.  
  276.    Thus, when a proxy forwarder application forwards a request or
  277.    notification for a particular context, not only is the information on
  278.    how to forward the request specifically associated with that context,
  279.    but the proxy forwarder application has no need of a detailed
  280.    definition of a MIB view (since the proxy forwarder application
  281.    forwards the request irrespective of the managed object types).
  282.  
  283.    In contrast, an SNMP agent must have the detailed definition of the
  284.    MIB view, and even if it needs to issue requests to other agents,
  285.    that need is dependent on the individual managed object instances
  286.    being accessed (i.e., not only on the context).
  287.  
  288.  
  289. 3.  Management Targets
  290.  
  291.    Some types of applications (in particular notification generators and
  292.    proxy forwarders) require a mechanism for determining where and how
  293.  
  294.  
  295.  
  296.  
  297.  
  298. Expires January 1998                                      [Page 5]
  299.  
  300.  
  301.  
  302.  
  303. Internet-Draft            SNMPv3 Applications                  July 1997
  304.  
  305.  
  306.    to send generated messages.  This document provides a mechanism and
  307.    MIB for this purpose.  The set of information that describes where
  308.    and how to send a message is called a 'Management Target', and
  309.    consists of two kinds of information:
  310.  
  311.        -  Destination information, consisting of a transport domain and
  312.           a transport address.  This is also termed a transport
  313.           endpoint.
  314.  
  315.        -  SNMP information, consisting of message processing model,
  316.           security model, level of security, and security name
  317.           information.
  318.  
  319.    There can be a many-to-many relationship between these two types of
  320.    information.  That is, there may be multiple transport endpoints
  321.    associated with a particular set of SNMP information, or a particular
  322.    transport endpoint may be associated with several sets of SNMP
  323.    information.
  324.  
  325.    A management target is defined as the combination of a single set of
  326.    SNMP information and a single transport endpoint.  Management targets
  327.    are grouped according to their SNMP information.  That is, each
  328.    distinct set of SNMP information may be associated with multiple
  329.    transport endpoints.  The set of management targets which are defined
  330.    by a distinct set of SNMP information are considered to be members of
  331.    the same management target group.  For example, the following
  332.    contains two management target groups, each of which contains three
  333.    management targets:
  334.  
  335.       (version=snmpv3, secmodel=usm, secname=joe, udp=128.1.2.3:162)
  336.       (version=snmpv3, secmodel=usm, secname=joe, udp=128.1.3.5:162)
  337.       (version=snmpv3, secmodel=usm, secname=joe, udp=128.1.4.7:162)
  338.       (version=snmpv3, secmodel=usm, secname=martha, udp=128.1.2.3:162)
  339.       (version=snmpv3, secmodel=usm, secname=martha, udp=128.1.3.5:162)
  340.       (version=snmpv3, secmodel=usm, secname=martha, udp=128.1.4.7:162)
  341.  
  342.    An application will generally make use of some subset of the entire
  343.    set of management targets which are configured.
  344.  
  345.  
  346. 4.  Elements Of Procedure
  347.  
  348.    The following sections describe the procedures followed by each type
  349.    of application when generating messages for transmission or when
  350.    processing received messages.  Applications communicate with the
  351.    Message Processing Subsystem using the abstract service interfaces
  352.    defined in [SNMPV3-ARCH].
  353.  
  354.  
  355.  
  356.  
  357.  
  358. Expires January 1998                                      [Page 6]
  359.  
  360.  
  361.  
  362.  
  363. Internet-Draft            SNMPv3 Applications                  July 1997
  364.  
  365.  
  366. 4.1.  Command Generators
  367.  
  368.    A command generator initiates an SNMP request by calling the Message
  369.    Processing Subsystem using the following abstract service interface:
  370.  
  371.                 sendPdu (
  372.                     transportDomain
  373.                     transportAddress
  374.                     messageProcessingModel
  375.                     securityModel
  376.                     securityName
  377.                     LoS
  378.                     contextEngineID
  379.                     contextName
  380.                     PDU
  381.                     expectResponse
  382.                 )
  383.  
  384.    Where:
  385.  
  386.        -  The transportDomain is that of the destination of the message.
  387.  
  388.        -  The transportAddress is the destination of the message.
  389.  
  390.        -  The messageProcessingModel indicates which Message Processing
  391.           Subsystem the application wishes to use.
  392.  
  393.        -  The securityModel is the security model that the application
  394.           wishes to use.
  395.  
  396.        -  The securityName is whatever the security model wishes to use.
  397.  
  398.        -  The LoS is the security level that the application wishes to
  399.           use.
  400.  
  401.        -  The contextEngineID is provided by the command generator if it
  402.           wishes to explicitly specify the location of the management
  403.           information it is requesting.  The command generator may omit
  404.           this parameter, in which case the Message Processing Subsystem
  405.           should use the engineID of the SNMP engine to which the
  406.           request is to be sent.
  407.  
  408.        -  The contextName is provided by the command generator if it
  409.           wishes to explicitly specify the location of the management
  410.           information it is requesting.  The command generator may omit
  411.           this parameter, in which case the default context is used.
  412.  
  413.  
  414.  
  415.  
  416.  
  417. Expires January 1998                                      [Page 7]
  418.  
  419.  
  420.  
  421.  
  422. Internet-Draft            SNMPv3 Applications                  July 1997
  423.  
  424.  
  425.        -  The PDU is the value constructed in the previous step.
  426.  
  427.        -  The expectResponse argument indicates that a response is
  428.           expected.
  429.  
  430.    The Message Processing Subsystem is responsible for delivering the
  431.    response to a particular request to the correct command generator
  432.    application.  The abstract service interface used is:
  433.  
  434.            processResponsePdu (
  435.                contextEngineID
  436.                contextName
  437.                PDU
  438.                LoS
  439.                statusInformation
  440.            )
  441.  
  442.    Where:
  443.  
  444.        -  The contextEngineID is the value from the received response.
  445.  
  446.        -  The contextName is the value from the received response.
  447.  
  448.        -  The PDU is the value from the received response.
  449.  
  450.        -  The LoS is the value from the received response.
  451.  
  452.        -  The statusInformation indicates success or failure in
  453.           receiving the response.
  454.  
  455.    The procedure when a command generator receives a response is as
  456.    follows:
  457.  
  458. (1)  The SNMPv2 operation type is determined from the ASN.1 tag value
  459.      associated with the PDU parameter.  The operation type should
  460.      always be a Response (the Message Processing Subsystem should never
  461.      call a command generator application using the processResponsePdu
  462.      interface for any other type of message).
  463.  
  464. (2)  The request-id, error-status, error-index, and variable-bindings
  465.      are extracted from the PDU and saved.
  466.  
  467. (3)  At this point, it is up to the application as to how to continue
  468.      processing the PDU.
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476. Expires January 1998                                      [Page 8]
  477.  
  478.  
  479.  
  480.  
  481. Internet-Draft            SNMPv3 Applications                  July 1997
  482.  
  483.  
  484. 4.2.  Command Responders
  485.  
  486.    Before a command responder application can process messages, it must
  487.    first associate itself with an SNMP engine.  The abstract service
  488.    interface used for this purpose is:
  489.  
  490.            statusInformation =
  491.            registerContextEngineID (
  492.                contextEngineID
  493.                pduType
  494.            )
  495.  
  496.    Where:
  497.  
  498.        -  The statusInformation indications success or failure of the
  499.           registration attempt.
  500.  
  501.        -  The contextEngineID is equal to the snmpEngineID of the SNMP
  502.           engine with which the command responder is registering.
  503.  
  504.        -  The pduType indicates a Get, GetNext, GetBulk, or Set pdu.
  505.  
  506.    Note that if another command responder application is already
  507.    registered with an SNMP engine, any further attempts to register with
  508.    the same contextEngineID and pduType will be ignored.  This implies
  509.    that separate command responder applications could register
  510.    separately for the various pdu types.  However, in practice this is
  511.    undesirable, and only a single command responder application should
  512.    be registered with an SNMP engine at any given time.
  513.  
  514.    A command responder application can disassociate with an SNMP engine
  515.    using the following abstract service interface:
  516.  
  517.            unregisterContextEngineID (
  518.                contextEngineID
  519.                pduType
  520.            )
  521.  
  522.    Where:
  523.  
  524.        -  The contextEngineID is equal to the snmpEngineID of the SNMP
  525.           engine with which the command responder is cancelling the
  526.           registration.
  527.  
  528.        -  The pduType indicates a Get, GetNext, GetBulk, or Set pdu.
  529.  
  530.    Once the command responder has registered with the SNMP engine, it
  531.  
  532.  
  533.  
  534.  
  535.  
  536. Expires January 1998                                      [Page 9]
  537.  
  538.  
  539.  
  540.  
  541. Internet-Draft            SNMPv3 Applications                  July 1997
  542.  
  543.  
  544.    waits to receive SNMP messages.  The abstract service interface used
  545.    for receiving messages is:
  546.  
  547.            processPdu (
  548.                contextEngineID
  549.                contextName
  550.                PDU
  551.                maxSizeResponseScopedPDU
  552.                securityModel
  553.                securityName
  554.                LoS
  555.                stateReference
  556.            )
  557.  
  558.    Where:
  559.  
  560.        -  The contextEngineID is the value from the received message.
  561.  
  562.        -  The contextName is the value from the received message.
  563.  
  564.        -  The PDU is the value from the received message.
  565.  
  566.        -  The maxSizeResponseScopedPDU is the value from the received
  567.           message.
  568.  
  569.        -  The securityModel is the value from the received message.
  570.  
  571.        -  The securityName is the value from the received message.
  572.  
  573.        -  The LoS is the value from the received message.
  574.  
  575.        -  The stateReference is a value assigned by the Message
  576.           Processing Subsystem.  This subsystem caches information about
  577.           each received request message.  The stateReference is a
  578.           reference to this cached information.  This value must be
  579.           returned to the Message Processing Subsystem in order to
  580.           generate a response.
  581.  
  582.    The procedure when a message is received is as follows.
  583.  
  584. (1)  The SNMPv2 operation type is determined from the ASN.1 tag value
  585.      associated with the PDU parameter.  The operation type should
  586.      always be a Get, GetNext, GetBulk, or Set (the Message Processing
  587.      Subsystem should never call a command responder application using
  588.      the processPdu interface for any other type of PDU).
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595. Expires January 1998                                     [Page 10]
  596.  
  597.  
  598.  
  599.  
  600. Internet-Draft            SNMPv3 Applications                  July 1997
  601.  
  602.  
  603. (2)  The request-id is extracted from the PDU and saved.
  604.  
  605. (3)  If the SNMPv2 operation type is GetBulk, the non-repeaters and
  606.      max-repetitions values are extracted from the PDU and saved.
  607.  
  608. (4)  The variable-bindings are extracted from the PDU and saved.
  609.  
  610. (5)  The management operation represented by the SNMPv2 operation type
  611.      is performed with respect to the relevant MIB view within the
  612.      context named by the contextName, according to the procedures set
  613.      forth in [RFC1905].  The relevant MIB view is determined by the
  614.      LoS, securityModel, contextName, securityName, and SNMPv2 operation
  615.      type.  To determine whether a particular object instance is within
  616.      the relevant MIB view, the following abstract service interface is
  617.      called:
  618.  
  619.                   statusInformation =
  620.                   isAccessAllowed (
  621.                       securityModel
  622.                       securityName
  623.                       LoS
  624.                       viewType
  625.                       contextName
  626.                       variableName
  627.                   )
  628.  
  629.      Where:
  630.  
  631.        -  The securityModel is the value from the received message.
  632.  
  633.        -  The securityName is the value from the received message.
  634.  
  635.        -  The LoS is the value from the received message.
  636.  
  637.        -  The viewType indicates whether the pdu type is a read or write
  638.           operation.
  639.  
  640.        -  The contextName is the value from the received message.
  641.  
  642.        -  The variableName is the object instance of the variable for
  643.           which access rights are to be checked.
  644.  
  645.      Normally, the result of the management operation will be a new PDU
  646.      value, and processing will continue in the next step.  However,
  647.      there are two conditions under which a new PDU value will not be
  648.      generated:
  649.  
  650.  
  651.  
  652.  
  653.  
  654. Expires January 1998                                     [Page 11]
  655.  
  656.  
  657.  
  658.  
  659. Internet-Draft            SNMPv3 Applications                  July 1997
  660.  
  661.  
  662.        -  If at any time during the processing of the management
  663.           operation, the context named by the contextName parameter is
  664.           unavailable, processing of the management operation is halted,
  665.           no result PDU is generated, the snmpUnavailableContexts
  666.           counter is incremented, and control is passed to the next
  667.           step.
  668.  
  669.        -  The isAccessAllowed abstract service interface is conceptually
  670.           called for each object in the variable-bindings (and possibly
  671.           multiple times for a single variable-bindings in the case of a
  672.           GetNext or GetBulk PDU).  At any point, if the returned
  673.           statusInformation indicates an error, result indicates an
  674.           error, processing of the management operation is halted, no
  675.           result PDU is generated, the snmpUnavailableViews counter is
  676.           incremented, and control is passed to the next step.
  677.  
  678. (6)  The Message Processing Subsystem is called to generate a response
  679.      or report message.  The abstract service interface is:
  680.  
  681.                   returnResponsePdu (
  682.                       contextEngineID
  683.                       contextName
  684.                       PDU
  685.                       maxSizeResponseScopedPDU
  686.                       securityModel
  687.                       securityName
  688.                       LoS
  689.                       stateReference
  690.                       statusInformation
  691.                   )
  692.  
  693.      Where:
  694.  
  695.        -  The contextEngineID is the value from the processPdu call.
  696.  
  697.        -  The contextName is the value from the processPdu call.
  698.  
  699.        -  The PDU is the result generated in the previous step.  If no
  700.           result PDU was generated, the PDU is an undefined value.
  701.  
  702.        -  The maxSizeResponseScopedPDU is a local value indicating the
  703.           maximum size of a ScopedPDU that the application can accept.
  704.  
  705.        -  The securityModel is the value from the processPdu call.
  706.  
  707.        -  The securityName is the value from the processPdu call.
  708.  
  709.  
  710.  
  711.  
  712.  
  713. Expires January 1998                                     [Page 12]
  714.  
  715.  
  716.  
  717.  
  718. Internet-Draft            SNMPv3 Applications                  July 1997
  719.  
  720.  
  721.        -  The LoS is the value from the processPdu call.
  722.  
  723.        -  The stateReference is the value from the processPdu call.
  724.  
  725.        -  The statusInformation either contains an indication that no
  726.           error occured and that a response should be generated, or
  727.           contains an indication that an error occured along with the
  728.           OID and counter value needed to generate a Report PDU.  In the
  729.           latter case, the OID and counter value are that of the counter
  730.           that was incremented in the previous step
  731.           (snmpUnavailableContexts or snmpUnavailableViews).
  732.  
  733.    Note that a command responder application should always call the
  734.    returnResponsePdu abstract service interface, even in the event of an
  735.    error such as a resource allocation error.  In the event of such an
  736.    error, the PDU value passed to returnResponsePdu should contain
  737.    appropriate values for errorStatus and errorIndex.
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772. Expires January 1998                                     [Page 13]
  773.  
  774.  
  775.  
  776.  
  777. Internet-Draft            SNMPv3 Applications                  July 1997
  778.  
  779.  
  780. 4.3.  Notification Originators
  781.  
  782.    A notification originator application generates SNMP notification
  783.    messages.  A notification message can contain either an SNMPv2-Trap
  784.    PDU or an Inform PDU.  However, a particular implementation is not
  785.    required to be capable of generating both types of messages.
  786.  
  787.    Notification originator applications require a mechanism for
  788.    identifying the management targets to which notifications should be
  789.    sent.  The particular mechanism used is implementation dependent,
  790.    however, if an implementation makes the configuration of management
  791.    targets SNMP manageable, it MUST use the management target MIB
  792.    described in this document.
  793.  
  794.    When a notification originator wishes to generate a notification, it
  795.    must first determine the contextEngineID and contextName of the
  796.    location where the information to be conveyed in the notification
  797.    exists.  It must then determine the set of management targets to
  798.    which the notification should be sent, and the grouping of these
  799.    management targets.  The application must also determine, for each
  800.    group of management targets, whether the notification message should
  801.    contain an SNMPv2-Trap PDU or Inform PDU, and if it is to contain an
  802.    Inform PDU, the number of retries and retransmission algorithm.
  803.  
  804.    The mechanism by which a notification originator determines this
  805.    information is implementation dependent.  Once the application has
  806.    determined this information, the following procedure is performed for
  807.    each group of management targets:
  808.  
  809. (1)  Any appropriate filtering mechanisms are applied to determine
  810.      whether the notification should be sent to the management targets
  811.      in this group.  If such filtering mechanisms determine that the
  812.      notification should not be sent, processing continues with the next
  813.      group of management targets.  Otherwise,
  814.  
  815. (2)  The appropriate set of variable-bindings is retrieved from local
  816.      MIB instrumentation within the relevant MIB view.  The relevant MIB
  817.      view is determined by the LoS, securityModel, contextName, and
  818.      securityName of the management target.  To determine whether a
  819.      particular object instance is within the relevant MIB view, the
  820.      isAccessAllowed abstract service interface is used, in the same
  821.      manner as described in the preceeding section.  If the
  822.      statusInformation returned by isAccessAllowed does not indicate
  823.      accessAllowed, the notification is not sent to any of the
  824.      management targets within this group.
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831. Expires January 1998                                     [Page 14]
  832.  
  833.  
  834.  
  835.  
  836. Internet-Draft            SNMPv3 Applications                  July 1997
  837.  
  838.  
  839. (3)  A PDU is constructed using a locally unique request-id value, an
  840.      operation type of Trap or Inform, an error-status and error-index
  841.      value of 0, and the variable-bindings found in the previous step.
  842.  
  843. (4)  If the notification should be contain an SNMPv2-Trap PDU for this
  844.      group, then for each management target in the group, the Message
  845.      Processing Subsystem is called using the following abstract service
  846.      interface:
  847.  
  848.                   sendPdu (
  849.                       transportDomain
  850.                       transportAddress
  851.                       messageProcessingModel
  852.                       securityModel
  853.                       securityName
  854.                       LoS
  855.                       contextEngineID
  856.                       contextName
  857.                       PDU
  858.                       expectResponse
  859.                   )
  860.  
  861.      Where:
  862.  
  863.        -  The transportDomain is that of the management target.
  864.  
  865.        -  The transportAddress is that of the management target.
  866.  
  867.        -  The messageProcessingModel is that of the management target.
  868.  
  869.        -  The securityModel is that of the management target.
  870.  
  871.        -  The securityName is that of the management target.
  872.  
  873.        -  The LoS is that of the management target.
  874.  
  875.        -  The contextEngineID is the value originally determined for the
  876.           notification.
  877.  
  878.        -  The contextName is the value originally determined for the
  879.           notification.
  880.  
  881.        -  The PDU is the value constructed in the previous step.
  882.  
  883.        -  The expectResponse argument indicates that no response is
  884.           expected.
  885.  
  886.  
  887.  
  888.  
  889.  
  890. Expires January 1998                                     [Page 15]
  891.  
  892.  
  893.  
  894.  
  895. Internet-Draft            SNMPv3 Applications                  July 1997
  896.  
  897.  
  898.      Otherwise,
  899.  
  900. (5)  If the notification should contain an Inform PDU for this group,
  901.      then:
  902.  
  903.       a)  For each management target in the group, the Message
  904.           Processing Subsystem is called using the sendPdu abstract
  905.           service interface as described in the previous step, except
  906.           that the expectResponse arguments indicates that a response is
  907.           expected.
  908.  
  909.       b)   The application caches information about the management
  910.           target group.
  911.  
  912.       c)  If a response is received within an appropriate time interval
  913.           from any one transport endpoint within the group, the
  914.           notification is considered acknowledged for this group, the
  915.           cached information is deleted, and any further responses to
  916.           this Inform are ignored.  Otherwise,
  917.  
  918.       d)  If a response is not received within an appropriate time
  919.           period, information about the management target group is
  920.           retrieved from the cache, and steps a) through d) are
  921.           repeated.  The number of times these steps are repeated is as
  922.           previously determined.  If this retry count is exceeded, the
  923.           acknowledgement of the notification is considered to have
  924.           failed, and processing of the notification for this group of
  925.           management targets is halted.
  926.  
  927.    Responses to Inform PDU notifications will be received via the
  928.    processResponsePDU abstract service interface.
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949. Expires January 1998                                     [Page 16]
  950.  
  951.  
  952.  
  953.  
  954. Internet-Draft            SNMPv3 Applications                  July 1997
  955.  
  956.  
  957. 4.4.  Notification Receivers
  958.  
  959.    Notification receiver applications receive SNMP Notification messages
  960.    from the Message Processing Subsystem.  Before any messages can be
  961.    received, the notification receiver must register with the Message
  962.    Processing Subsystem using the registerContextEngineID abstract
  963.    service interface.  The parameters used are:
  964.  
  965.        -  The contextEngineID is an undefined 'wildcard' value.
  966.           Notifications are delivered to a registered notification
  967.           receiver regardless of the contextEngineID contains in the
  968.           notification message.
  969.  
  970.        -  The pduType indicates either SNMPv2-Trap PDUs or Inform PDUs,
  971.           or both.
  972.  
  973.    Once the notification receiver has registered with the Message
  974.    Processing Subsystem, messages are received using the processPdu
  975.    abstract service interface.  Parameters are:
  976.  
  977.        -  The contextEngineID is the value from the received message.
  978.  
  979.        -  The contextName is the value from the received message.
  980.  
  981.        -  The PDU is the value from the received message.
  982.  
  983.        -  The maxSizeResponseScopedPDU is the value from the received
  984.           message.
  985.  
  986.        -  The securityModel is the value from the received message.
  987.  
  988.        -  The securityName is the value from the received message.
  989.  
  990.        -  The LoS is the value from the received message.
  991.  
  992.        -  If the message contains an SNMPv2-Trap PDU, the stateReference
  993.           is undefined and unused.  Otherwise, the stateReference is a
  994.           value assigned by the Message Processing Subsystem which
  995.           references cached information about the notification.  This
  996.           value must be returned to the Message Processing Subsystem in
  997.           order to generate a response.
  998.  
  999.    When an SNMPv2-Trap PDU is delivered to a notification receiver
  1000.    application, it first extracts the SNMP operation type, request-id,
  1001.    error-status, error-index, and variable-bindings from the PDU.  After
  1002.    this, processing depends on the particular implementation.
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008. Expires January 1998                                     [Page 17]
  1009.  
  1010.  
  1011.  
  1012.  
  1013. Internet-Draft            SNMPv3 Applications                  July 1997
  1014.  
  1015.  
  1016.    When an Inform PDU is received, the notification receiver application
  1017.    follows the following procedure:
  1018.  
  1019. (1)  The SNMPv2 operation type, request-id, error-status, error-index,
  1020.      and variable-bindings are extracted from the PDU.
  1021.  
  1022. (2)  A Response PDU is constructed using the extracted request-id and
  1023.      variable-bindings, and with error-status and error-index both set
  1024.      to 0.
  1025.  
  1026. (3)  The Message Processing Subsystem is called to generate a response
  1027.      message using the returnResponsePdu abstract service interface.
  1028.      Parameters are:
  1029.  
  1030.        -  The contextEngineID is the value from the processPdu call.
  1031.  
  1032.        -  The contextName is the value from the processPdu call.
  1033.  
  1034.        -  The PDU is the result generated in the previous step.
  1035.  
  1036.        -  The maxSizeResponseScopedPDU is a local value indicating the
  1037.           maximum size of a ScopedPDU that the application can accept.
  1038.  
  1039.        -  The securityModel is the value from the processPdu call.
  1040.  
  1041.        -  The securityName is the value from the processPdu call.
  1042.  
  1043.        -  The LoS is the value from the processPdu call.
  1044.  
  1045.        -  The stateReference is the value from the processPdu call.
  1046.  
  1047.        -  The statusInformation indicates that no error occured and that
  1048.           a response should be generated.
  1049.  
  1050.    Note that there may be multiple notification receiver applications
  1051.    associated with a particular SNMP engine.  Despite this, only a
  1052.    single response should be generated when an Inform PDU is received.
  1053.    The mechanism to ensure this is implementation specific.  One
  1054.    strategy to accomplish this is to simply let the Message Processing
  1055.    Subsystem delete the stateReference when the first response is
  1056.    generated.  Subsequent attempts to send the response will fail
  1057.    because the stateReference no longer exists within the Message
  1058.    Processing Subsystem.
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067. Expires January 1998                                     [Page 18]
  1068.  
  1069.  
  1070.  
  1071.  
  1072. Internet-Draft            SNMPv3 Applications                  July 1997
  1073.  
  1074.  
  1075. 4.5.  Proxy Forwarders
  1076.  
  1077.    A proxy forwarder application deals with forwarding messages which
  1078.    contain Get, GetNext, GetBulk, Set, SNMPv2-Trap, and Inform PDUs.  Of
  1079.    these PDU types, the first four (Get, GetNext, GetBulk, Set) deal
  1080.    with requesting or modifying information located within a particular
  1081.    context, and the last two (Trap, Inform) deal with notifications
  1082.    concerning information located within a particular context.  A proxy
  1083.    forwarder application treats these two situations slightly different.
  1084.  
  1085.    In the first situation, the proxy forwarder's role is ultimately to
  1086.    deliver a request for management information to the SNMP engine which
  1087.    has access to that information, and to deliver the response
  1088.    containing the information back to the SNMP engine which initiated
  1089.    the request.  The context information in a request is used to
  1090.    determine which SNMP engine has access to the requested information,
  1091.    and this is used to determine where and how to forward the request.
  1092.  
  1093.    In the second situation, the proxy forwarder's role is to determine
  1094.    which SNMP engines should receive notification about management
  1095.    information from a particular location.  The context information in a
  1096.    notification message determines the location to which the information
  1097.    contained in the notification applies.  This is used to determine
  1098.    which SNMP engines should receive notification about this
  1099.    information.
  1100.  
  1101.    When forwarding messages, a proxy forwarder application must perform
  1102.    a translation of incoming management target information into outgoing
  1103.    management target information.  How this translation is performed is
  1104.    implementation specific.  In many cases, this will be driven by a
  1105.    preconfigured translation table.  If a proxy forwarder application
  1106.    makes the contents of this table SNMP manageable, it MUST use the MIB
  1107.    defined in this document.
  1108.  
  1109.  
  1110. 4.5.1.  Request Forwarding
  1111.  
  1112.    There are two phases for request forwarding, processing an incoming
  1113.    request, and processing and incoming response.  These are described
  1114.    in the following two sections.
  1115.  
  1116.  
  1117. 4.5.1.1.  Processing an Incoming Request
  1118.  
  1119.    A proxy forwarder application that wishes to forward request messages
  1120.    must first register with the Message Processing Subsystem using the
  1121.    registerContextEngineID abstract service interface.  The proxy
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127. Expires January 1998                                     [Page 19]
  1128.  
  1129.  
  1130.  
  1131.  
  1132. Internet-Draft            SNMPv3 Applications                  July 1997
  1133.  
  1134.  
  1135.    forwarder must register each contextEngineID for which it wishes to
  1136.    forward messages, as well as for each pduType.  Note that as the
  1137.    configuration of a proxy forwarder is changed, the particular
  1138.    contextEngineID values for which it is forwarding may change.  The
  1139.    proxy forwarder should call the registerContextEngineID and
  1140.    unregisterContextEngineID abstract service interfaces as needed to
  1141.    reflect its current configuration.
  1142.  
  1143.    A proxy forwarder application should never attempt to register a
  1144.    value of contextEngineID which is equal to the snmpEngineID of the
  1145.    SNMP engine to which the proxy forwarder is associated.
  1146.  
  1147.    Once the proxy forwarder has registered for the appropriate
  1148.    contextEngineId values, it can start processing messages.  The
  1149.    following procedure is used:
  1150.  
  1151. (1)  A message is received using the processPdu abstract service
  1152.      interface.  The incoming management target information received
  1153.      from the processPdu interface is translated into outgoing
  1154.      management target information.  Note that this translation may vary
  1155.      for different values of contextEngineID and/or contextName.  The
  1156.      translation should result in a single management target.
  1157.  
  1158. (2)  If appropriate outgoing management target information cannot be
  1159.      found, the proxy forwarder increments the snmpProxyDrops counter
  1160.      [RFC1907], and then calls the Message Processing Subsystem using
  1161.      the returnResponsePdu abstract service interface.  Parameters are:
  1162.  
  1163.        -  The contextEngineID is the value from the processPdu call.
  1164.  
  1165.        -  The contextName is the value from the processPdu call.
  1166.  
  1167.        -  The PDU is an undefined value.
  1168.  
  1169.        -  The maxSizeResponseScopedPDU is a local value indicating the
  1170.           maximum size of a ScopedPDU that the application can accept.
  1171.  
  1172.        -  The securityModel is the value from the processPdu call.
  1173.  
  1174.        -  The securityName is the value from the processPdu call.
  1175.  
  1176.        -  The LoS is the value from the processPdu call.
  1177.  
  1178.        -  The stateReference is the value from the processPdu call.
  1179.  
  1180.        -  The statusInformation indicates that an error occured and that
  1181.           an snmpProxyDrops Report message should be generated.
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187. Expires January 1998                                     [Page 20]
  1188.  
  1189.  
  1190.  
  1191.  
  1192. Internet-Draft            SNMPv3 Applications                  July 1997
  1193.  
  1194.  
  1195.      Processing of the message stops at this point.  Otherwise,
  1196.  
  1197. (3)  A new PDU is constructed.  A unique value of request-id should be
  1198.      used in the new PDU (this value will enable a subsequent response
  1199.      message to be correlated with this request).  The remainder of the
  1200.      new PDU is identical to the received PDU, unless the incoming SNMP
  1201.      version is SNMPv1 and the outgoing SNMP version is SNMPv2 or
  1202.      SNMPv3, or vice-versa, in which case the proxy forwarder must apply
  1203.      the translation rules as documented in [RFC1908].
  1204.  
  1205. (4)  The proxy forwarder calls the Message Processing Subsystem to
  1206.      generate the forwarded message, using the sendPdu abstract service
  1207.      interface.  The parameters are:
  1208.  
  1209.        -  The transportDomain is that of the outgoing management target.
  1210.  
  1211.        -  The transportAddress is that of the outgoing management
  1212.           target.
  1213.  
  1214.        -  The messageProcessingModel is that of the outgoing management
  1215.           target.
  1216.  
  1217.        -  The securityModel is that of the outgoing management target.
  1218.  
  1219.        -  The securityName is that of the outgoing management target.
  1220.  
  1221.        -  The LoS is that of the outgoing management target.
  1222.  
  1223.        -  The contextEngineID is the value originally received.
  1224.  
  1225.        -  The contextName is the value originally received.
  1226.  
  1227.        -  The PDU is the value constructed in the previous step.
  1228.  
  1229.        -  The expectResponse argument indicates that a response is
  1230.           expected.  If the sendPdu call is unsuccessful, the proxy
  1231.           forwarder performs the steps described in (2) above.
  1232.           Otherwise:
  1233.  
  1234. (5)  The proxy forwarder caches the contextEngineId, contextName,
  1235.      stateReference, incoming management target information, outgoing
  1236.      management information, and any other information needed to match
  1237.      an incoming response to the forwarded request.  If this information
  1238.      cannot be cached (possibly due to a lack of resources), the proxy
  1239.      forwarder performs the steps described in (2) above.  Otherwise:
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246. Expires January 1998                                     [Page 21]
  1247.  
  1248.  
  1249.  
  1250.  
  1251. Internet-Draft            SNMPv3 Applications                  July 1997
  1252.  
  1253.  
  1254. (6)  Processing of the request stops until a response to the forwarded
  1255.      request is received, or until an appropriate time interval has
  1256.      expired.  If this time interval expires before a response has been
  1257.      received, the cached information about this request is removed, and
  1258.      the proxy forwarder performs the steps described in (2) above using
  1259.      the cached information.
  1260.  
  1261.  
  1262. 4.5.1.2.  Processing an Incoming Response
  1263.  
  1264.    A proxy forwarder follows the following procedure when an incoming
  1265.    response is received:
  1266.  
  1267. (1)  The incoming response is received using the processPdu interface.
  1268.      The proxy forwarder uses the received parameters to locate an entry
  1269.      in its cache of pending forwarded requests.  This is done by
  1270.      matching the received parameters with the cached values of
  1271.      contextEngineID, contextName, outgoing management target
  1272.      information, and the request-id contained in the received PDU (the
  1273.      proxy forwarder must extract the request-id for this purpose).  If
  1274.      an appropriate cache entry cannot be found, processing of the
  1275.      response is halted.  Otherwise:
  1276.  
  1277. (2)  The cache information is extracted, and removed from the cache.
  1278.  
  1279. (3)  If the incoming SNMP version is SNMPv1 and the outgoing SNMP
  1280.      version is SNMPv2 or SNMPv3, or vice-versa, the proxy forwarder
  1281.      must apply the translation rules documented in [RFC1908].
  1282.  
  1283. (4)  The proxy forwarder calls the Message Processing Subsystem using
  1284.      the returnResponsePdu abstract service interface.  Parameters are:
  1285.  
  1286.        -  The contextEngineID is the value extracted from the cache.
  1287.  
  1288.        -  The contextName is the value extracted from the cache.
  1289.  
  1290.        -  The PDU is the (possibly translated) Response PDU.
  1291.  
  1292.        -  The maxSizeResponseScopedPDU is a local value indicating the
  1293.           maximum size of a ScopedPDU that the application can accept.
  1294.  
  1295.        -  The securityModel is that of the original incoming management
  1296.           target extracted from the cache.
  1297.  
  1298.        -  The securityName is that of the original incoming management
  1299.           target extracted from the cache.
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305. Expires January 1998                                     [Page 22]
  1306.  
  1307.  
  1308.  
  1309.  
  1310. Internet-Draft            SNMPv3 Applications                  July 1997
  1311.  
  1312.  
  1313.        -  The LoS is that of the original incoming management target
  1314.           extracted from the cache.
  1315.  
  1316.        -  The stateReference is the value extracted from the cache.
  1317.  
  1318.        -  The statusInformation indicates that no error occured and that
  1319.           a Response message should be generated.
  1320.  
  1321.  
  1322. 4.5.2.  Notification Forwarding
  1323.  
  1324.    A proxy forwarder receives notifications in the same manner as a
  1325.    notification receiver application, using the processPdu abstract
  1326.    service interface.  The following procedure is used when a
  1327.    notification is received:
  1328.  
  1329. (1)  The incoming management target information received from the
  1330.      processPdu interface is translated into outgoing management target
  1331.      information.  Note that this translation may vary for different
  1332.      values of contextEngineId and/or contextName.  The translation may
  1333.      result in one or more management target groups, each of which may
  1334.      contain multiple management targets.
  1335.  
  1336. (2)  If appropriate outgoing management target information cannot be
  1337.      found and the notification was a Trap, processing of the
  1338.      notification is halted.  If appropriate outgoing management target
  1339.      information cannot be found and the notification was an Inform, the
  1340.      proxy forwarder increments the snmpProxyDrops object, and calls the
  1341.      Message Processing Subsystem using the returnResponsePdu abstract
  1342.      service interface.  The parameters are:
  1343.  
  1344.        -  The contextEngineID is the received value.
  1345.  
  1346.        -  The contextName is the received value.
  1347.  
  1348.        -  The PDU is an undefined and unused value.
  1349.  
  1350.        -  The maxSizeResponseScopedPDU is a local value indicating the
  1351.           maximum size of a ScopedPDU that the application can accept.
  1352.  
  1353.        -  The securityModel is the received value.
  1354.  
  1355.        -  The securityName is the received value.
  1356.  
  1357.        -  The LoS is the received value.
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364. Expires January 1998                                     [Page 23]
  1365.  
  1366.  
  1367.  
  1368.  
  1369. Internet-Draft            SNMPv3 Applications                  July 1997
  1370.  
  1371.  
  1372.        -  The stateReference is the received value.
  1373.  
  1374.        -  The statusInformation indicates that an error occured and that
  1375.           a Report message should be generated.
  1376.  
  1377.      Processing of the message stops at this point.  Otherwise,
  1378.  
  1379. (3)  The proxy forwarder generates a notification using the procedures
  1380.      described in the preceeding section on Notification Originators,
  1381.      with the following exceptions:
  1382.  
  1383.        -  The contextEngineID and contextName values from the original
  1384.           received notification are used.
  1385.  
  1386.        -  The outgoing management targets previously determined are
  1387.           used.
  1388.  
  1389.        -  No filtering mechanisms are applied.
  1390.  
  1391.        -  The variable-bindings from the original received notification
  1392.           are used, rather than retrieving variable-bindings from local
  1393.           MIB instrumentation.  In particular, no access-control is
  1394.           applied to these variable-bindings.
  1395.  
  1396.        -  If for any of the outgoing management targets, the incoming
  1397.           SNMP version is SNMPv1 and the outgoing SNMP version is SNMPv2
  1398.           or SNMPv3, the proxy forwarder must apply the translation
  1399.           rules as documented in [RFC1908].
  1400.  
  1401.        -  If for any of the outgoing management targets, the incoming
  1402.           SNMP version is SNMPv2 or SNMPv3, and the outgoing SNMP
  1403.           version is SNMPv1, this outgoing management target is not used
  1404.           when generating the forwarded notifications.
  1405.  
  1406. (4)  If the original received notification contains an SNMPv2-Trap PDU,
  1407.      processing of the notification is now completed.  Otherwise, the
  1408.      original received notification must contain an Inform PDU, and
  1409.      processing continues.
  1410.  
  1411. (5)  If the forwarded notifications included any Inform PDUs, processing
  1412.      continues when the procedures described in the section for
  1413.      Notification Originators determine that either:
  1414.  
  1415.        -  None of the generated notifications containing Inform PDUs
  1416.           have been successfully acknowledged within the longest of the
  1417.           time intervals, in which case processing of the original
  1418.           notification is halted and an snmpProxyDrops Report PDU is
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424. Expires January 1998                                     [Page 24]
  1425.  
  1426.  
  1427.  
  1428.  
  1429. Internet-Draft            SNMPv3 Applications                  July 1997
  1430.  
  1431.  
  1432.           generated, or,
  1433.  
  1434.        -  At least one of the generated notifications containing Inform
  1435.           PDUs is successfully acknowledged, in which case a response to
  1436.           the original received notification containing an Inform PDU is
  1437.           generated as described in the following steps.
  1438.  
  1439. (6)  A Response pdu is constructed, using the values of request-id and
  1440.      variable-bindings from the original received Inform PDU, and
  1441.      error-status and error-index values of 0.
  1442.  
  1443. (7)  The Message Processing Subsystem is called using the
  1444.      returnResponsePdu abstract service interface.  Parameters are:
  1445.  
  1446.        -  The contextEngineID is the originally received value.
  1447.  
  1448.        -  The contextName is the originally received value.
  1449.  
  1450.        -  The PDU is the value constructed in the previous step.
  1451.  
  1452.        -  The maxSizeResponseScopedPDU is a local value indicating the
  1453.           maximum size of a ScopedPDU that the application can accept.
  1454.  
  1455.        -  The securityModel is the originally received value.
  1456.  
  1457.        -  The securityName is the originally received value.
  1458.  
  1459.        -  The LoS is the originally received value.
  1460.  
  1461.        -  The stateReference is the originally received value.
  1462.  
  1463.        -  The statusInformation indicates that no error occured and that
  1464.           a Response message should be generated.
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483. Expires January 1998                                     [Page 25]
  1484.  
  1485.  
  1486.  
  1487.  
  1488. Internet-Draft            SNMPv3 Applications                  July 1997
  1489.  
  1490.  
  1491. 5.  The Structure of the MIBs
  1492.  
  1493.    There are three separate MIBs described in this document, the
  1494.    management target MIB, the notification MIB, and the proxy MIB.  The
  1495.    following sections describe the structure of these three MIBs.
  1496.  
  1497.  
  1498. 5.1.  The Management Target MIB
  1499.  
  1500.    This MIB contains objects for defining management targets.  It
  1501.    consists of one scalar, two tables, and conformance/compliance
  1502.    statements.
  1503.  
  1504.    The scalar, snmpTargetAddressSpinLock, is used by managers when
  1505.    creating new rows in the snmpTargetAddrTable.
  1506.  
  1507.    The first table, the snmpTargetAddrTable, contains information about
  1508.    transport domains/addresses.  The table is indexed by an
  1509.    SnmpAdminString type object and an integer type object.  This allows
  1510.    domains/addresses to be organized into groups.
  1511.  
  1512.    The second table, the snmpTargetTable, contains information about
  1513.    SNMP version and security information to be used when sending
  1514.    messages to a particular group of transport domains/addresses.
  1515.  
  1516.  
  1517. 5.1.1.  Definitions
  1518.  
  1519.    SNMPV3-TARGET-MIB DEFINITIONS ::= BEGIN
  1520.  
  1521.    IMPORTS
  1522.        MODULE-IDENTITY,
  1523.        OBJECT-TYPE,
  1524.        OBJECT-IDENTITY,
  1525.        Integer32
  1526.            FROM SNMPv2-SMI
  1527.  
  1528.        TDomain,
  1529.        TAddress,
  1530.        TruthValue,
  1531.        TimeInterval,
  1532.        RowStatus,
  1533.        StorageType
  1534.            FROM SNMPv2-TC
  1535.  
  1536.        SnmpSecurityModel,
  1537.        SnmpLoS,
  1538.  
  1539.  
  1540.  
  1541.  
  1542.  
  1543. Expires January 1998                                     [Page 26]
  1544.  
  1545.  
  1546.  
  1547.  
  1548. Internet-Draft            SNMPv3 Applications                  July 1997
  1549.  
  1550.  
  1551.        SnmpAdminString
  1552.            FROM SNMP-FRAMEWORK-MIB
  1553.  
  1554.        MODULE-COMPLIANCE,
  1555.        OBJECT-GROUP
  1556.            FROM SNMPv2-CONF;
  1557.  
  1558.    snmpTargetMIB MODULE-IDENTITY
  1559.        LAST-UPDATED "9707140000Z"
  1560.        ORGANIZATION "IETF SNMPv3 Working Group"
  1561.        CONTACT-INFO
  1562.            "David B. Levi
  1563.             SNMP Research, Inc.
  1564.             3001 Kimberlin Heights Road
  1565.             Knoxville, TN 37920-9716
  1566.             Tel: +1 423 573 1434
  1567.             E-mail: levi@snmp.com
  1568.  
  1569.             Paul Meyer
  1570.             Secure Computing Corporation
  1571.             2675 Long Lake Road
  1572.             Roseville, MN 55113
  1573.             Tel: +1 612 628 1592
  1574.             E-mail: paul_meyer@securecomputing.com
  1575.  
  1576.             Bob Stewart
  1577.             Cisco Systems
  1578.             ????
  1579.             ????
  1580.             Tel: +1 603 654 6923
  1581.             E-mail: bstewart@cisco.com"
  1582.        DESCRIPTION
  1583.            "This MIB module defines a MIB which provides mechanisms to
  1584.             remotely configure the parameters used by an SNMPv3 entity
  1585.             for the generation of notifications."
  1586.        REVISION        "9707140000Z"
  1587.        DESCRIPTION
  1588.            "The initial revision."
  1589.        ::= { snmpModules 11 }        -- TBD
  1590.  
  1591.    snmpTargetObjects       OBJECT IDENTIFIER ::= { snmpTargetMIB 1 }
  1592.    snmpTargetConformance   OBJECT IDENTIFIER ::= { snmpTargetMIB 2 }
  1593.  
  1594.    -- ------------------------------------------------------------------
  1595.    --
  1596.    -- The snmpTargetObjects group
  1597.    --
  1598.  
  1599.  
  1600.  
  1601.  
  1602.  
  1603. Expires January 1998                                     [Page 27]
  1604.  
  1605.  
  1606.  
  1607.  
  1608. Internet-Draft            SNMPv3 Applications                  July 1997
  1609.  
  1610.  
  1611.    -- ------------------------------------------------------------------
  1612.  
  1613.    snmpTargetAddressSpinLock OBJECT-TYPE
  1614.        SYNTAX      TestAndIncr
  1615.        MAX-ACCESS  read-write
  1616.        STATUS      current
  1617.        DESCRIPTION
  1618.            "This object is used to facilitate creation of rows in the
  1619.             snmpTargetAddrTable.  There are two situations where an
  1620.             SNMP entity may wish to create a new row, when a new group
  1621.             of addresses must be created, and when an address must be
  1622.             added to an existing group.
  1623.  
  1624.             When an SNMP entity wishes to create a new group of
  1625.             addresses, it should follow the following procedure:
  1626.                 a) Retrieve the value of this object.
  1627.                 b) Retrieve all existing index values of
  1628.                    snmpTargetAddrName (this can be accomplished
  1629.                    by retrieving all instances of any columnar
  1630.                    object in the snmpTargetAddrTable).
  1631.                 c) Retrieve the value of this object.  If the value is
  1632.                    not equal to the last retrieved value, go back to
  1633.                    step b).
  1634.                 d) Select a new unique index value for
  1635.                    snmpTargetAddrName, and an arbitrary value for
  1636.                    snmpTargetAddrSubIndex.  Attempt a set request
  1637.                    containing these varbinds:
  1638.                        - The last retrieved value of this object.
  1639.                        - An instance of the snmpTargetAddrRowStatus
  1640.                          object whose indices are equal to the selected
  1641.                          index values of snmpTargetAddrName and
  1642.                          snmpTargetAddrSubIndex.
  1643.                        - Additional varbinds for initializing other
  1644.                          columnar objects in the row.
  1645.                    If this set fails, the SNMP entity may return to
  1646.                    step a) and try again.
  1647.  
  1648.             When an SNMP entity wishes to create a new address within
  1649.             an existing group of addresses, it should follow the
  1650.             following procedure:
  1651.                 a) Retrieve all existing values of
  1652.                    snmpTargetAddrSubIndex corresponding to the desired
  1653.                    index value of snmpTargetAddrName.  (this can be
  1654.                    accomplished by retrieving all instances of any
  1655.                    columnar object in the snmpTargetAddrTable whose
  1656.                    index begins with the desired index value of
  1657.                    snmpTargetAddrName).
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663. Expires January 1998                                     [Page 28]
  1664.  
  1665.  
  1666.  
  1667.  
  1668. Internet-Draft            SNMPv3 Applications                  July 1997
  1669.  
  1670.  
  1671.                 b) Select a new value for snmpTargetAddrSubIndex.
  1672.                    Attempt a set request containing these varbinds:
  1673.                        - An instance of the snmpTargetAddrRowStatus
  1674.                          object whose indices are equal to the desired
  1675.                          index value of snmpTargetAddrName and the
  1676.                          selected index value of snmpTargetAddrSubIndex.
  1677.                        - Additional varbinds for initializing other
  1678.                          columnar objects in the row.
  1679.                    If this set fails, the SNMP entity may return to
  1680.                    step a) and try again."
  1681.        ::= { snmpTargetObjects 1 }
  1682.  
  1683.    snmpTargetAddrTable OBJECT-TYPE
  1684.        SYNTAX      SEQUENCE OF SnmpV3TargetAddrEntry
  1685.        MAX-ACCESS  not-accessible
  1686.        STATUS      current
  1687.        DESCRIPTION
  1688.            ""
  1689.        ::= { snmpTargetObjects 2 }
  1690.  
  1691.    snmpTargetAddrEntry OBJECT-TYPE
  1692.        SYNTAX      SnmpV3TargetAddrEntry
  1693.        MAX-ACCESS  not-accessible
  1694.        STATUS      current
  1695.        DESCRIPTION
  1696.            ""
  1697.        INDEX { snmpTargetAddrName, snmpTargetAddrSubIndex }
  1698.        ::= { snmpTargetAddrTable 1 }
  1699.  
  1700.    SnmpV3TargetAddrEntry ::= SEQUENCE {
  1701.        snmpTargetAddrSubIndex            Integer32,
  1702.        snmpTargetAddrTDomain             TDomain,
  1703.        snmpTargetAddrTAddress            TAddress,
  1704.        snmpTargetAddrTimeout             TimeInterval,
  1705.        snmpTargetAddrStorageType         StorageType,
  1706.        snmpTargetAddrRowStatus           RowStatus
  1707.    }
  1708.  
  1709.    snmpTargetAddrSubIndex OBJECT-TYPE
  1710.        SYNTAX      Integer32  (1..2147483647)
  1711.        MAX-ACCESS  not-accessible
  1712.        STATUS      current
  1713.        DESCRIPTION
  1714.            "The locally arbitrary, but unique identifier associated
  1715.             an snmpTargetAddrEntry within a group of entries in the
  1716.             snmpTargetAddrTable."
  1717.        ::= { snmpTargetAddrEntry 1 }
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723. Expires January 1998                                     [Page 29]
  1724.  
  1725.  
  1726.  
  1727.  
  1728. Internet-Draft            SNMPv3 Applications                  July 1997
  1729.  
  1730.  
  1731.    snmpTargetAddrTDomain OBJECT-TYPE
  1732.        SYNTAX      TDomain
  1733.        MAX-ACCESS  read-create
  1734.        STATUS      current
  1735.        DESCRIPTION
  1736.            "This object indicates the transport type of the address
  1737.             contained in the snmpTargetAddrTAddress object."
  1738.        ::= { snmpTargetAddrEntry 2 }
  1739.  
  1740.    snmpTargetAddrTAddress OBJECT-TYPE
  1741.        SYNTAX      TAddress
  1742.        MAX-ACCESS  read-create
  1743.        STATUS      current
  1744.        DESCRIPTION
  1745.            "This object contains a transport address.  The format of
  1746.             this address depends on the value of the
  1747.             snmpTargetAddrTDomain object."
  1748.        ::= { snmpTargetAddrEntry 3 }
  1749.  
  1750.    snmpTargetAddrTimeout OBJECT-TYPE
  1751.        SYNTAX      TimeInterval
  1752.        MAX-ACCESS  read-create
  1753.        STATUS      current
  1754.        DESCRIPTION
  1755.            "This object should reflect the expected round trip time
  1756.             for communicating with the transport address defined by
  1757.             this row.  When a message is sent to this address, and
  1758.             a response (if one is expected) is not received within
  1759.             this time period, an implementation may assume that the
  1760.             response will not be delivered.
  1761.  
  1762.             Note that the time interval that an application waits
  1763.             for a response may actually be derived from the value
  1764.             of this object.  The method for deriving the actual time
  1765.             interval is implementation dependent.  One such method
  1766.             is to derive the expected round trip time based on a
  1767.             particular retransmission algorithm and on the number
  1768.             of timeouts which have occured.  The type of message may
  1769.             also be considered when deriving expected round trip
  1770.             times for retransmissions.  For example, if a message is
  1771.             being sent with an LoS that indicates both
  1772.             authentication and privacy, the derived value may be
  1773.             increased to compensate for extra processing time spent
  1774.             during authentication and encryption processing."
  1775.        DEFVAL { 1500 }
  1776.        ::= { snmpTargetAddrEntry 4 }
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782. Expires January 1998                                     [Page 30]
  1783.  
  1784.  
  1785.  
  1786.  
  1787. Internet-Draft            SNMPv3 Applications                  July 1997
  1788.  
  1789.  
  1790.    snmpTargetAddrStorageType OBJECT-TYPE
  1791.        SYNTAX      StorageType
  1792.        MAX-ACCESS  read-create
  1793.        STATUS      current
  1794.        DESCRIPTION
  1795.            ""
  1796.        ::= { snmpTargetAddrEntry 5 }
  1797.  
  1798.    snmpTargetAddrRowStatus OBJECT-TYPE
  1799.        SYNTAX      RowStatus
  1800.        MAX-ACCESS  read-create
  1801.        STATUS      current
  1802.        DESCRIPTION
  1803.            ""
  1804.        ::= { snmpTargetAddrEntry 6 }
  1805.  
  1806.    snmpTargetTable OBJECT-TYPE
  1807.        SYNTAX      SEQUENCE OF SnmpV3TargetEntry
  1808.        MAX-ACCESS  not-accessible
  1809.        STATUS      current
  1810.        DESCRIPTION
  1811.            ""
  1812.        ::= { snmpTargetObjects 3 }
  1813.  
  1814.    snmpTargetEntry OBJECT-TYPE
  1815.        SYNTAX      SnmpV3TargetEntry
  1816.        MAX-ACCESS  not-accessible
  1817.        STATUS      current
  1818.        DESCRIPTION
  1819.            ""
  1820.        INDEX { snmpTargetName }
  1821.        ::= { snmpTargetTable 1 }
  1822.  
  1823.    SnmpV3TargetEntry ::= SEQUENCE {
  1824.        snmpTargetName                   SnmpAdminString,
  1825.        snmpTargetAddrName               SnmpAdminString,
  1826.        snmpTargetMessageProcessingModel INTEGER,
  1827.        snmpTargetSecurityModel          SnmpSecurityModel,
  1828.        snmpTargetSecurityName           SnmpAdminString,
  1829.        snmpTargetLoS                    SnmpLoS,
  1830.        snmpTargetRetryCount             Integer32,
  1831.        snmpTargetStorageType            StorageType,
  1832.        snmpTargetRowStatus              RowStatus
  1833.    }
  1834.  
  1835.    snmpTargetName OBJECT-TYPE
  1836.        SYNTAX      SnmpAdminString
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842. Expires January 1998                                     [Page 31]
  1843.  
  1844.  
  1845.  
  1846.  
  1847. Internet-Draft            SNMPv3 Applications                  July 1997
  1848.  
  1849.  
  1850.        MAX-ACCESS  not-accessible
  1851.        STATUS      current
  1852.        DESCRIPTION
  1853.            "The locally arbitrary, but unique identifier associated
  1854.             with this snmpTargetEntry."
  1855.        ::= { snmpTargetEntry 1 }
  1856.  
  1857.    snmpTargetAddrName OBJECT-TYPE
  1858.        SYNTAX      SnmpAdminString
  1859.        MAX-ACCESS  read-create
  1860.        STATUS      current
  1861.        DESCRIPTION
  1862.            "The group of addresses to which management operations will
  1863.             be sent when using this set of security parameters."
  1864.        ::= { snmpTargetEntry 2 }
  1865.  
  1866.    snmpTargetMessageProcessingModel OBJECT-TYPE
  1867.        SYNTAX      INTEGER (SIZE(0..64))
  1868.        MAX-ACCESS  read-create
  1869.        STATUS      current
  1870.        DESCRIPTION
  1871.            ""
  1872.        ::= { snmpTargetEntry 3 }
  1873.  
  1874.    snmpTargetSecurityModel OBJECT-TYPE
  1875.        SYNTAX      SnmpSecurityModel
  1876.        MAX-ACCESS  read-create
  1877.        STATUS      current
  1878.        DESCRIPTION
  1879.            ""
  1880.        ::= { snmpTargetEntry 4 }
  1881.  
  1882.    snmpTargetSecurityName OBJECT-TYPE
  1883.        SYNTAX      SnmpAdminString
  1884.        MAX-ACCESS  read-create
  1885.        STATUS      current
  1886.        DESCRIPTION
  1887.            ""
  1888.        ::= { snmpTargetEntry 5 }
  1889.  
  1890.    snmpTargetLoS OBJECT-TYPE
  1891.        SYNTAX      SnmpLoS
  1892.        MAX-ACCESS  read-create
  1893.        STATUS      current
  1894.        DESCRIPTION
  1895.            ""
  1896.        ::= { snmpTargetEntry 6 }
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902. Expires January 1998                                     [Page 32]
  1903.  
  1904.  
  1905.  
  1906.  
  1907. Internet-Draft            SNMPv3 Applications                  July 1997
  1908.  
  1909.  
  1910.    snmpTargetRetryCount OBJECT-TYPE
  1911.        SYNTAX      Integer32 (0..2147483647)
  1912.        MAX-ACCESS  read-create
  1913.        STATUS      current
  1914.        DESCRIPTION
  1915.            "This object specifies a default number of retries to be
  1916.             attempted when a response is not received for a generated
  1917.             message.  The number of retries is an indication of how
  1918.             important delivery of a particular message is considered.
  1919.             An application may provide its own retry count, in which
  1920.             case the value of this object is ignored."
  1921.        ::= { snmpTargetEntry 7 }
  1922.  
  1923.    snmpTargetStorageType OBJECT-TYPE
  1924.        SYNTAX      StorageType
  1925.        MAX-ACCESS  read-create
  1926.        STATUS      current
  1927.        DESCRIPTION
  1928.            ""
  1929.        ::= { snmpTargetEntry 8 }
  1930.  
  1931.    snmpTargetRowStatus OBJECT-TYPE
  1932.        SYNTAX      RowStatus
  1933.        MAX-ACCESS  read-create
  1934.        STATUS      current
  1935.        DESCRIPTION
  1936.            ""
  1937.        ::= { snmpTargetEntry 9 }
  1938.  
  1939.    snmpTargetDefaultRetryAlgorithm OBJECT-TYPE
  1940.        SYNTAX      INTEGER {
  1941.                        constant(1),
  1942.                        linearBackOff(2),
  1943.                        exponentialBackOff(3),
  1944.                        randomBackOff(4)
  1945.                    }
  1946.        MAX-ACCESS  read-create
  1947.        STATUS      current
  1948.        DESCRIPTION
  1949.            "This object specifies a default algorithm to be used
  1950.             when adjusting timeout times when retransmitting a
  1951.             request whose response was not received in a timely
  1952.             manner.  An application may provide its own
  1953.             retransmission algorithm, in which case the value of
  1954.             this object is ignored.
  1955.  
  1956.    Can we really predict all the algorithms that people might want to use?
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962. Expires January 1998                                     [Page 33]
  1963.  
  1964.  
  1965.  
  1966.  
  1967. Internet-Draft            SNMPv3 Applications                  July 1997
  1968.  
  1969.  
  1970.    There are alternatives to making this be an enumerated integer.
  1971.  
  1972.    One alternative is to make it be a set of 6 parameters for a quadratic
  1973.    equation which would be used to recalculate retry intervals, i.e.,:
  1974.      interval(n) = ((A1 / A2) * interval(n-1) * interval(n-1)) +
  1975.                    ((B1 / B2) * interval(n-1)) +
  1976.                    (C1 / C2)
  1977.    The advantage to this is that a manager can define a wide range of
  1978.    algorithms, and the agent does not need to support a specific set
  1979.    of algorithms.
  1980.  
  1981.    Another alternative is to identify retransmission algorithms by OID rather
  1982.    than by integer.  The advantage to using OIDs is that we can define
  1983.    additional algorithms later.  If we do this, we can either make this object
  1984.    be an OID, or we can have a table that maps the OIDs to integers, and have
  1985.    the value of this object point at one of the entries in the mapping table.
  1986.    The advantage to a mapping table is that it allows a manager to discover
  1987.    what algorithms an agent supports.
  1988.            "
  1989.        ::= { snmpTargetObjects 4 }
  1990.  
  1991.    -- ------------------------------------------------------------------
  1992.    --
  1993.    -- Conformance information
  1994.    --
  1995.    -- ------------------------------------------------------------------
  1996.  
  1997.    snmpTargetCompliances OBJECT IDENTIFIER ::=
  1998.                                            { snmpTargetConformance 1 }
  1999.    snmpTargetGroups      OBJECT IDENTIFIER ::=
  2000.                                            { snmpTargetConformance 2 }
  2001.  
  2002.    -- ------------------------------------------------------------------
  2003.    --
  2004.    -- Compliance statements
  2005.    --
  2006.    -- ------------------------------------------------------------------
  2007.  
  2008.    snmpTargetBasicCompliance MODULE-COMPLIANCE
  2009.        STATUS      current
  2010.        DESCRIPTION
  2011.            "The compliance statement for SNMP entities which require
  2012.             remote configuration of management targets."
  2013.        MODULE      -- this module
  2014.        MANDATORY-GROUPS { snmpTargetBasicGroup }
  2015.        ::= { snmpTargetCompliances 1 }
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021. Expires January 1998                                     [Page 34]
  2022.  
  2023.  
  2024.  
  2025.  
  2026. Internet-Draft            SNMPv3 Applications                  July 1997
  2027.  
  2028.  
  2029.    snmpTargetFullCompliance MODULE-COMPLIANCE
  2030.        STATUS      current
  2031.        DESCRIPTION
  2032.            "The compliance statement for SNMP entities which require
  2033.             remote configuration of management targets."
  2034.        MODULE      -- this module
  2035.        MANDATORY-GROUPS { snmpTargetBasicGroup }
  2036.        ::= { snmpTargetCompliances 2 }
  2037.  
  2038.    snmpTargetReadCreateCompliance MODULE-COMPLIANCE
  2039.        STATUS      current
  2040.        DESCRIPTION
  2041.            "The compliance statement for SNMP entities which require
  2042.             remote configuration of management targets."
  2043.        MODULE      -- this module
  2044.        MANDATORY-GROUPS { snmpTargetBasicGroup }
  2045.        ::= { snmpTargetCompliances 3 }
  2046.  
  2047.    snmpTargetBasicGroup OBJECT-GROUP
  2048.        OBJECTS {
  2049.            snmpTargetAddressSpinLock,
  2050.            snmpTargetAddrTDomain,
  2051.            snmpTargetAddrTAddress,
  2052.            snmpTargetAddrStorageType,
  2053.            snmpTargetAddrRowStatus,
  2054.            snmpTargetAddrName,
  2055.            snmpTargetMessageProcessingModel,
  2056.            snmpTargetSecurityModel,
  2057.            snmpTargetSecurityName,
  2058.            snmpTargetLoS,
  2059.            snmpTargetStorageType,
  2060.            snmpTargetRowStatus
  2061.        }
  2062.        STATUS      current
  2063.        DESCRIPTION
  2064.            "A collection of objects providing basic remote
  2065.             configuration of management targets."
  2066.        ::= { snmpTargetGroups 1 }
  2067.  
  2068.    snmpTargetResponseGroup OBJECT-GROUP
  2069.        OBJECTS {
  2070.            snmpTargetAddrTimeout,
  2071.            snmpTargetRetryCount,
  2072.            snmpTargetDefaultRetryAlgorithm
  2073.        }
  2074.        STATUS      current
  2075.        DESCRIPTION
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081. Expires January 1998                                     [Page 35]
  2082.  
  2083.  
  2084.  
  2085.  
  2086. Internet-Draft            SNMPv3 Applications                  July 1997
  2087.  
  2088.  
  2089.            "A collection of objects providing remote configuration
  2090.             of management targets for applications which generate
  2091.             Get, GetNext, GetBulk, Set, or Inform requests."
  2092.        ::= { snmpTargetGroups 2 }
  2093.  
  2094.    END
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.  
  2120.  
  2121.  
  2122.  
  2123.  
  2124.  
  2125.  
  2126.  
  2127.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140. Expires January 1998                                     [Page 36]
  2141.  
  2142.  
  2143.  
  2144.  
  2145. Internet-Draft            SNMPv3 Applications                  July 1997
  2146.  
  2147.  
  2148. 5.2.  The Notification MIB
  2149.  
  2150.    This MIB contains three tables.  The first table, the
  2151.    snmpNotifyTargetTable, simply augments the snmpTargetTable with a
  2152.    single object which is used to determine whether a particular
  2153.    management target should be used for generating notifications, and
  2154.    the type of notification to be generated.  The second table sparsely
  2155.    augments the snmpNotifyTargetTable with a single object.  This object
  2156.    is used to associate a set of filters with a particular management
  2157.    target.  The third table defines filters which are used to limit the
  2158.    number of notifications which are generated using particular
  2159.    management targets.
  2160.  
  2161.  
  2162. 5.2.1.  Definitions
  2163.  
  2164.    SNMPV3-NOTIFICATION-MIB DEFINITIONS ::= BEGIN
  2165.  
  2166.    IMPORTS
  2167.        MODULE-IDENTITY,
  2168.        OBJECT-TYPE,
  2169.        OBJECT-IDENTITY,
  2170.        Integer32
  2171.            FROM SNMPv2-SMI
  2172.  
  2173.        TDomain,
  2174.        TAddress,
  2175.        TruthValue,
  2176.        TimeInterval,
  2177.        RowStatus,
  2178.        StorageType
  2179.            FROM SNMPv2-TC
  2180.  
  2181.        SnmpSecurityModel,
  2182.        SnmpLoS,
  2183.        SnmpAdminString
  2184.            FROM SNMP-FRAMEWORK-MIB
  2185.  
  2186.        snmpTargetEntry,
  2187.        snmpTargetName
  2188.            FROM SNMPV3-TARGET-MIB
  2189.  
  2190.        MODULE-COMPLIANCE,
  2191.        OBJECT-GROUP
  2192.            FROM SNMPv2-CONF;
  2193.  
  2194.    snmpNotificationMIB MODULE-IDENTITY
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200. Expires January 1998                                     [Page 37]
  2201.  
  2202.  
  2203.  
  2204.  
  2205. Internet-Draft            SNMPv3 Applications                  July 1997
  2206.  
  2207.  
  2208.        LAST-UPDATED "9707140000Z"
  2209.        ORGANIZATION "IETF SNMPv3 Working Group"
  2210.        CONTACT-INFO
  2211.            "David B. Levi
  2212.             SNMP Research, Inc.
  2213.             3001 Kimberlin Heights Road
  2214.             Knoxville, TN 37920-9716
  2215.             Tel: +1 423 573 1434
  2216.             E-mail: levi@snmp.com
  2217.  
  2218.             Paul Meyer
  2219.             Secure Computing Corporation
  2220.             2675 Long Lake Road
  2221.             Roseville, MN 55113
  2222.             Tel: +1 612 628 1592
  2223.             E-mail: paul_meyer@securecomputing.com
  2224.  
  2225.             Bob Stewart
  2226.             Cisco Systems
  2227.             ????
  2228.             ????
  2229.             Tel: +1 603 654 6923
  2230.             E-mail: bstewart@cisco.com"
  2231.        DESCRIPTION
  2232.            "This MIB module defines a MIB which provides mechanisms
  2233.             to remotely configure management targets used by an
  2234.             SNMPv3 entity."
  2235.        REVISION    "9707140000Z"
  2236.        DESCRIPTION
  2237.            "The initial revision."
  2238.        ::= { snmpModules 12 }      -- TBD
  2239.  
  2240.    snmpNotifyObjects       OBJECT IDENTIFIER ::=
  2241.                                              { snmpNotificationMIB 1 }
  2242.    snmpNotifyConformance   OBJECT IDENTIFIER ::=
  2243.                                              { snmpNotificationMIB 2 }
  2244.  
  2245.    -- ------------------------------------------------------------------
  2246.    --
  2247.    -- The snmpNotifyObjects group
  2248.    --
  2249.    -- ------------------------------------------------------------------
  2250.  
  2251.    snmpNotifyTargetTable OBJECT-TYPE
  2252.        SYNTAX      SEQUENCE OF SnmpV3NotifyTargetEntry
  2253.        MAX-ACCESS  not-accessible
  2254.        STATUS      current
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260. Expires January 1998                                     [Page 38]
  2261.  
  2262.  
  2263.  
  2264.  
  2265. Internet-Draft            SNMPv3 Applications                  July 1997
  2266.  
  2267.  
  2268.        DESCRIPTION
  2269.            "This table is used to select management targets which should
  2270.             receive notifications, as well as the type of notification
  2271.             which should be sent to each selected management target."
  2272.        ::= { snmpNotifyObjects 1 }
  2273.  
  2274.    snmpNotifyTargetEntry OBJECT-TYPE
  2275.        SYNTAX      SnmpV3NotifyTargetEntry
  2276.        MAX-ACCESS  not-accessible
  2277.        STATUS      current
  2278.        DESCRIPTION
  2279.            ""
  2280.        AUGMENTS { snmpTargetEntry }
  2281.        ::= { snmpNotifyTargetTable 1 }
  2282.  
  2283.    SnmpV3NotifyTargetEntry ::= SEQUENCE {
  2284.        snmpNotifyTargetType     INTEGER
  2285.    }
  2286.  
  2287.    snmpNotifyTargetType OBJECT-TYPE
  2288.        SYNTAX      INTEGER {
  2289.                        trap(1),
  2290.                        inform(2),
  2291.                        nothing(3)
  2292.                    }
  2293.        MAX-ACCESS  read-create
  2294.        STATUS      current
  2295.        DESCRIPTION
  2296.            "This object determines whether a particular entry in
  2297.             the snmpTargetTable should be used for generating
  2298.             notifications, and the type of notification to be
  2299.             generated.  If the value of this object is trap(1),
  2300.             then the entry will be used to generate messages
  2301.             containing SNMPv2-Trap PDUs.  If the value is
  2302.             inform(2), then the entry will be used to generate
  2303.             messages containing Inform PDUs.  If the value is
  2304.             nothing(3), then the entry is not used to generate
  2305.             notifications.
  2306.  
  2307.             Note that the default value for this object is
  2308.             nothing(3).  This ensures that if an entry is created
  2309.             for a purpose other than notification generation,
  2310.             whoever creates the row need not do anything special
  2311.             to prevent the use of the entry when generating
  2312.             notifications.
  2313.  
  2314.             Also note that if an SNMP entity only supports
  2315.  
  2316.  
  2317.  
  2318.  
  2319.  
  2320. Expires January 1998                                     [Page 39]
  2321.  
  2322.  
  2323.  
  2324.  
  2325. Internet-Draft            SNMPv3 Applications                  July 1997
  2326.  
  2327.  
  2328.             generation of traps (and not informs), then this
  2329.             object need not be supported, and its value is
  2330.             assumed to be trap(1)."
  2331.        DEFVAL { nothing }
  2332.        ::= { snmpNotifyTargetEntry 1 }
  2333.  
  2334.    snmpNotifyFilterProfileTable OBJECT-TYPE
  2335.        SYNTAX      SEQUENCE OF SnmpV3NotifyFilterProfileEntry
  2336.        MAX-ACCESS  not-accessible
  2337.        STATUS      current
  2338.        DESCRIPTION
  2339.            "This table is used to select management targets which
  2340.             should receive notifications, as well as the type of
  2341.             notification which should be sent to each selected
  2342.             management target."
  2343.        ::= { snmpNotifyObjects 2 }
  2344.  
  2345.    snmpNotifyFilterProfileEntry OBJECT-TYPE
  2346.        SYNTAX      SnmpV3NotifyFilterProfileEntry
  2347.        MAX-ACCESS  not-accessible
  2348.        STATUS      current
  2349.        DESCRIPTION
  2350.            ""
  2351.        INDEX { snmpTargetName }
  2352.        ::= { snmpNotifyFilterProfileTable 1 }
  2353.  
  2354.    SnmpV3NotifyFilterProfileEntry ::= SEQUENCE {
  2355.        snmpNotifyFilterProfileName    SnmpAdminString
  2356.    }
  2357.  
  2358.    snmpNotifyFilterProfileName OBJECT-TYPE
  2359.        SYNTAX      SnmpAdminString
  2360.        MAX-ACCESS  read-create
  2361.        STATUS      current
  2362.        DESCRIPTION
  2363.            ""
  2364.        ::= { snmpNotifyFilterProfileEntry 1 }
  2365.  
  2366.    snmpNotifyFilterTable OBJECT-TYPE
  2367.        SYNTAX      SEQUENCE OF SnmpV3NotifyFilterEntry
  2368.        MAX-ACCESS  not-accessible
  2369.        STATUS      current
  2370.        DESCRIPTION
  2371.            "This table is used to select management targets which
  2372.             should receive notifications."
  2373.        ::= { snmpNotifyObjects 3 }
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379. Expires January 1998                                     [Page 40]
  2380.  
  2381.  
  2382.  
  2383.  
  2384. Internet-Draft            SNMPv3 Applications                  July 1997
  2385.  
  2386.  
  2387.    snmpNotifyFilterEntry OBJECT-TYPE
  2388.        SYNTAX      SnmpV3NotifyFilterEntry
  2389.        MAX-ACCESS  not-accessible
  2390.        STATUS      current
  2391.        DESCRIPTION
  2392.            ""
  2393.        INDEX {         snmpNotifyFilterProfileName,
  2394.                IMPLIED snmpNotifyFilterSubtree }
  2395.        ::= { snmpNotifyFilterTable 1 }
  2396.  
  2397.    SnmpV3NotifyFilterEntry ::= SEQUENCE {
  2398.        snmpNotifyFilterSubtree           OBJECT IDENTIFIER,
  2399.        snmpNotifyFilterMask              OCTET STRING,
  2400.        snmpNotifyFilterType              INTEGER,
  2401.        snmpNotifyFilterStorageType       StorageType,
  2402.        snmpNotifyFilterRowStatus         RowStatus
  2403.    }
  2404.  
  2405.    snmpNotifyFilterSubtree OBJECT-TYPE
  2406.        SYNTAX      OBJECT IDENTIFIER
  2407.        MAX-ACCESS  not-accessible
  2408.        STATUS      current
  2409.        DESCRIPTION
  2410.            ""
  2411.        ::= { snmpNotifyFilterEntry 1 }
  2412.  
  2413.    snmpNotifyFilterMask OBJECT-TYPE
  2414.        SYNTAX      OCTET STRING (SIZE(0..16))
  2415.        MAX-ACCESS  read-create
  2416.        STATUS      current
  2417.        DESCRIPTION
  2418.            ""
  2419.        ::= { snmpNotifyFilterEntry 2 }
  2420.  
  2421.    snmpNotifyFilterType OBJECT-TYPE
  2422.        SYNTAX      INTEGER {
  2423.                        included(1),
  2424.                        excluded(2)
  2425.                    }
  2426.        MAX-ACCESS  read-create
  2427.        STATUS      current
  2428.        DESCRIPTION
  2429.            ""
  2430.        ::= { snmpNotifyFilterEntry 3 }
  2431.  
  2432.    snmpNotifyFilterStorageType OBJECT-TYPE
  2433.        SYNTAX      StorageType
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439. Expires January 1998                                     [Page 41]
  2440.  
  2441.  
  2442.  
  2443.  
  2444. Internet-Draft            SNMPv3 Applications                  July 1997
  2445.  
  2446.  
  2447.        MAX-ACCESS  read-create
  2448.        STATUS      current
  2449.        DESCRIPTION
  2450.            ""
  2451.        ::= { snmpNotifyFilterEntry 4 }
  2452.  
  2453.    snmpNotifyFilterRowStatus OBJECT-TYPE
  2454.        SYNTAX      RowStatus
  2455.        MAX-ACCESS  read-create
  2456.        STATUS      current
  2457.        DESCRIPTION
  2458.            ""
  2459.        ::= { snmpNotifyFilterEntry 5 }
  2460.  
  2461.    -- ------------------------------------------------------------------
  2462.    --
  2463.    -- Conformance information
  2464.    --
  2465.    -- ------------------------------------------------------------------
  2466.  
  2467.    snmpNotifyCompliances OBJECT IDENTIFIER ::=
  2468.                                            { snmpNotifyConformance 1 }
  2469.    snmpNotifyGroups      OBJECT IDENTIFIER ::=
  2470.                                            { snmpNotifyConformance 2 }
  2471.  
  2472.    -- ------------------------------------------------------------------
  2473.    --
  2474.    -- Compliance statements
  2475.    --
  2476.    -- ------------------------------------------------------------------
  2477.  
  2478.    snmpNotifyMinimalCompliance MODULE-COMPLIANCE
  2479.        STATUS      current
  2480.        DESCRIPTION
  2481.            "The compliance statement for minimal SNMP entities which
  2482.             implement only SNMP Traps and read-create operations on
  2483.             only the snmpTargetAddrTable."
  2484.        MODULE SNMPV3-TARGET-MIB
  2485.            MANDATORY-GROUPS { snmpTargetBasicGroup }
  2486.  
  2487.            OBJECT snmpTargetAddrName
  2488.            MIN-ACCESS    read-only
  2489.            DESCRIPTION
  2490.                "Read-write and read-create access are not required."
  2491.  
  2492.            OBJECT snmpTargetMessageProcessingModel
  2493.            MIN-ACCESS    read-only
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499. Expires January 1998                                     [Page 42]
  2500.  
  2501.  
  2502.  
  2503.  
  2504. Internet-Draft            SNMPv3 Applications                  July 1997
  2505.  
  2506.  
  2507.            DESCRIPTION
  2508.                "Read-write and read-create access are not required."
  2509.  
  2510.            OBJECT snmpTargetSecurityModel
  2511.            MIN-ACCESS    read-only
  2512.            DESCRIPTION
  2513.                "Read-write and read-create access are not required."
  2514.  
  2515.            OBJECT snmpTargetSecurityName
  2516.            MIN-ACCESS    read-only
  2517.            DESCRIPTION
  2518.                "Read-write and read-create access are not required."
  2519.  
  2520.            OBJECT snmpTargetLoS
  2521.            MIN-ACCESS    read-only
  2522.            DESCRIPTION
  2523.                "Read-write and read-create access are not required."
  2524.  
  2525.            OBJECT snmpTargetStorageType
  2526.            SYNTAX INTEGER {
  2527.                readOnly(5)
  2528.            }
  2529.            MIN-ACCESS    read-only
  2530.            DESCRIPTION
  2531.                "Read-write and read-create access are not required.
  2532.                 Support of the values other(1), volatile(2),
  2533.                 nonVolatile(3), and permanent(4) is not required."
  2534.  
  2535.            OBJECT snmpTargetRowStatus
  2536.            SYNTAX INTEGER {
  2537.                active(1)
  2538.            }
  2539.            MIN-ACCESS    read-only
  2540.            DESCRIPTION
  2541.                "Read-write and read-create access are not required.
  2542.                 Support of the values notInService(2), notReady(3),
  2543.                 createAndGo(4), createAndWait(5), and destroy(6) is
  2544.                 not required."
  2545.  
  2546.        ::= { snmpNotifyCompliances 1 }
  2547.  
  2548.    snmpNotifyBasicCompliance MODULE-COMPLIANCE
  2549.        STATUS      current
  2550.        DESCRIPTION
  2551.            "The compliance statement for SNMP entities which implement
  2552.             SNMP Traps with filtering, and read-create operations on
  2553.             all related tables."
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559. Expires January 1998                                     [Page 43]
  2560.  
  2561.  
  2562.  
  2563.  
  2564. Internet-Draft            SNMPv3 Applications                  July 1997
  2565.  
  2566.  
  2567.        MODULE SNMPV3-TARGET-MIB
  2568.            MANDATORY-GROUPS { snmpTargetBasicGroup }
  2569.        MODULE -- This Module
  2570.            MANDATORY-GROUPS { snmpNotifyFilterGroup }
  2571.        ::= { snmpNotifyCompliances 2 }
  2572.  
  2573.    snmpNotifyCompleteCompliance MODULE-COMPLIANCE
  2574.        STATUS      current
  2575.        DESCRIPTION
  2576.            "The compliance statement for SNMP entities which either
  2577.             implement only SNMP Informs, or both SNMP Traps and SNMP
  2578.             Informs, plus filtering and read-create operations on
  2579.             all related tables."
  2580.        MODULE SNMPV3-TARGET-MIB
  2581.            MANDATORY-GROUPS { snmpTargetBasicGroup,
  2582.                               snmpTargetResponseGroup }
  2583.        MODULE -- This Module
  2584.            MANDATORY-GROUPS { snmpNotifyTypeGroup,
  2585.                               snmpNotifyFilterGroup }
  2586.        ::= { snmpNotifyCompliances 3 }
  2587.  
  2588.    snmpNotifyTypeGroup OBJECT-GROUP
  2589.        OBJECTS {
  2590.            snmpNotifyTargetType
  2591.        }
  2592.        STATUS      current
  2593.        DESCRIPTION
  2594.            "An object for selecting which management targets are used
  2595.             for generating notifications, and the type of notification
  2596.             to be generated for each selected management target."
  2597.        ::= { snmpNotifyGroups 1 }
  2598.  
  2599.    snmpNotifyFilterGroup OBJECT-GROUP
  2600.        OBJECTS {
  2601.            snmpNotifyFilterProfileName,
  2602.            snmpNotifyFilterMask,
  2603.            snmpNotifyFilterType,
  2604.            snmpNotifyFilterStorageType,
  2605.            snmpNotifyFilterRowStatus
  2606.        }
  2607.        STATUS      current
  2608.        DESCRIPTION
  2609.            "A collection of objects providing remote configuration of
  2610.             management targets, including row creation in the
  2611.             snmpTargetTable."
  2612.        ::= { snmpNotifyGroups 3 }
  2613.  
  2614.  
  2615.  
  2616.  
  2617.  
  2618. Expires January 1998                                     [Page 44]
  2619.  
  2620.  
  2621.  
  2622.  
  2623. Internet-Draft            SNMPv3 Applications                  July 1997
  2624.  
  2625.  
  2626.    END
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651.  
  2652.  
  2653.  
  2654.  
  2655.  
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.  
  2662.  
  2663.  
  2664.  
  2665.  
  2666.  
  2667.  
  2668.  
  2669.  
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677. Expires January 1998                                     [Page 45]
  2678.  
  2679.  
  2680.  
  2681.  
  2682. Internet-Draft            SNMPv3 Applications                  July 1997
  2683.  
  2684.  
  2685. 5.3.  The Proxy MIB
  2686.  
  2687.    The MIB contains a single scalar and a single table.  The scalar
  2688.    object, snmpProxyNextIndex, is used by managers when creating new
  2689.    entries in the table.  The table, snmpProxyTable, is used to define
  2690.    translations between management targets for use when forwarding
  2691.    messages.
  2692.  
  2693.  
  2694. 5.3.1.  Definitions
  2695.  
  2696.    SNMPV3-PROXY-MIB DEFINITIONS ::= BEGIN
  2697.  
  2698.    IMPORTS
  2699.        MODULE-IDENTITY,
  2700.        OBJECT-TYPE,
  2701.        OBJECT-IDENTITY,
  2702.        Integer32
  2703.            FROM SNMPv2-SMI
  2704.  
  2705.        TDomain,
  2706.        TAddress,
  2707.        TruthValue,
  2708.        TimeInterval,
  2709.        RowStatus,
  2710.        StorageType
  2711.            FROM SNMPv2-TC
  2712.  
  2713.        SnmpEngineID,
  2714.        SnmpSecurityModel,
  2715.        SnmpLoS,
  2716.        SnmpAdminString
  2717.            FROM SNMP-FRAMEWORK-MIB
  2718.  
  2719.        MODULE-COMPLIANCE,
  2720.        OBJECT-GROUP
  2721.            FROM SNMPv2-CONF;
  2722.  
  2723.    snmpProxyMIB MODULE-IDENTITY
  2724.        LAST-UPDATED "9706140000Z"
  2725.        ORGANIZATION "IETF SNMPv3 Working Group"
  2726.        CONTACT-INFO
  2727.            "David B. Levi
  2728.             SNMP Research, Inc.
  2729.             3001 Kimberlin Heights Road
  2730.             Knoxville, TN 37920-9716
  2731.             Tel: +1 423 573 1434
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737. Expires January 1998                                     [Page 46]
  2738.  
  2739.  
  2740.  
  2741.  
  2742. Internet-Draft            SNMPv3 Applications                  July 1997
  2743.  
  2744.  
  2745.             E-mail: levi@snmp.com
  2746.  
  2747.             Paul Meyer
  2748.             Secure Computing Corporation
  2749.             2675 Long Lake Road
  2750.             Roseville, MN 55113
  2751.             Tel: +1 612 628 1592
  2752.             E-mail: paul_meyer@securecomputing.com
  2753.  
  2754.             Bob Stewart
  2755.             Cisco Systems
  2756.             ????
  2757.             ????
  2758.             Tel: +1 603 654 6923
  2759.             E-mail: bstewart@cisco.com"
  2760.        DESCRIPTION
  2761.            "This MIB module defines a MIB which provides mechanisms to
  2762.             remotely configure the parameters used by an SNMPv3 entity
  2763.             for the generation of notifications."
  2764.        REVISION    "9707140000Z"
  2765.        DESCRIPTION
  2766.            "The initial revision."
  2767.        ::= { snmpModules 13 }      -- TBD
  2768.  
  2769.    snmpProxyObjects        OBJECT IDENTIFIER ::= { snmpProxyMIB 1 }
  2770.    snmpProxyConformance    OBJECT IDENTIFIER ::= { snmpProxyMIB 2 }
  2771.  
  2772.    -- ------------------------------------------------------------------
  2773.    --
  2774.    -- The snmpProxyObjects group
  2775.    --
  2776.    -- ------------------------------------------------------------------
  2777.  
  2778.    snmpProxyNextIndex OBJECT-TYPE
  2779.        SYNTAX      Integer32  (1..2147483647)
  2780.        MAX-ACCESS  read-write
  2781.        STATUS      current
  2782.        DESCRIPTION
  2783.            "This object is used to facilitate creation of rows in the
  2784.             snmpProxyTable.  Its value when read is equal to an unused
  2785.             value of snmpProxyIndex.  When a manager wishes to create
  2786.             a row in the snmpProxyTable, it should first retrieve the
  2787.             value of this object, and then set the instance of
  2788.             snmpProxyRowStatus whose snmpProxyIndex value is
  2789.             equal to the retrieved value to either createAndWait or
  2790.             createAndGo."
  2791.        ::= { snmpProxyObjects 1 }
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797. Expires January 1998                                     [Page 47]
  2798.  
  2799.  
  2800.  
  2801.  
  2802. Internet-Draft            SNMPv3 Applications                  July 1997
  2803.  
  2804.  
  2805.    snmpProxyTable OBJECT-TYPE
  2806.        SYNTAX      SEQUENCE OF SnmpV3ProxyEntry
  2807.        MAX-ACCESS  not-accessible
  2808.        STATUS      current
  2809.        DESCRIPTION
  2810.            ""
  2811.        ::= { snmpProxyObjects 2 }
  2812.  
  2813.    snmpProxyEntry OBJECT-TYPE
  2814.        SYNTAX      SnmpV3ProxyEntry
  2815.        MAX-ACCESS  not-accessible
  2816.        STATUS      current
  2817.        DESCRIPTION
  2818.            ""
  2819.        INDEX { snmpProxyIndex }
  2820.        ::= { snmpProxyTable 1 }
  2821.  
  2822.    SnmpV3ProxyEntry ::= SEQUENCE {
  2823.        snmpProxyIndex              Integer32,
  2824.        snmpProxyType               INTEGER,
  2825.        snmpProxyContextEngineID    SnmpEngineID,
  2826.        snmpProxyContextName        SnmpAdminString,
  2827.        snmpProxyTargetIn           Integer32,
  2828.        snmpProxyTargetOut          Integer32,
  2829.        snmpProxyStorageType        StorageType,
  2830.        snmpProxyRowStatus          RowStatus
  2831.    }
  2832.  
  2833.    snmpProxyIndex OBJECT-TYPE
  2834.        SYNTAX      Integer32  (1..2147483647)
  2835.        MAX-ACCESS  not-accessible
  2836.        STATUS      current
  2837.        DESCRIPTION
  2838.            "The locally arbitrary, but unique identifier associated
  2839.             with this snmpProxyEntry."
  2840.        ::= { snmpProxyEntry 1 }
  2841.  
  2842.    snmpProxyType OBJECT-TYPE
  2843.        SYNTAX      INTEGER {
  2844.                        read(1),
  2845.                        write(2),
  2846.                        trap(3),
  2847.                        inform(4)
  2848.                    }
  2849.        MAX-ACCESS  not-accessible
  2850.        STATUS      current
  2851.        DESCRIPTION
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857. Expires January 1998                                     [Page 48]
  2858.  
  2859.  
  2860.  
  2861.  
  2862. Internet-Draft            SNMPv3 Applications                  July 1997
  2863.  
  2864.  
  2865.            ""
  2866.        ::= { snmpProxyEntry 2 }
  2867.  
  2868.    snmpProxyContextEngineID OBJECT-TYPE
  2869.        SYNTAX      SnmpEngineID
  2870.        MAX-ACCESS  read-create
  2871.        STATUS      current
  2872.        DESCRIPTION
  2873.            ""
  2874.        ::= { snmpProxyEntry 3 }
  2875.  
  2876.    snmpProxyContextName OBJECT-TYPE
  2877.        SYNTAX      SnmpAdminString
  2878.        MAX-ACCESS  read-create
  2879.        STATUS      current
  2880.        DESCRIPTION
  2881.            ""
  2882.        ::= { snmpProxyEntry 4 }
  2883.  
  2884.    snmpProxyTargetIn OBJECT-TYPE
  2885.        SYNTAX      Integer32
  2886.        MAX-ACCESS  read-create
  2887.        STATUS      current
  2888.        DESCRIPTION
  2889.            "This object selects a set of management targets defined
  2890.             in the snmpTargetTable (in the SNMPV3-TARGET-MIB)."
  2891.        ::= { snmpProxyEntry 5 }
  2892.  
  2893.    snmpProxyTargetOut OBJECT-TYPE
  2894.        SYNTAX      Integer32
  2895.        MAX-ACCESS  read-create
  2896.        STATUS      current
  2897.        DESCRIPTION
  2898.            "This object selects a management target defined in the
  2899.             snmpTargetTable (in the SNMPV3-TARGET-MIB).  Only the
  2900.             first transport address/domain as selected by the
  2901.             snmpTargetAddrName object is identified by
  2902.             snmpProxyTargetOut (i.e. the lexicographically smallest
  2903.             instance in the snmpTargetAddrTable whose
  2904.             snmpTargetAddrName is equal to the snmpTargetAddrName
  2905.             object is used for proxy forwarding)."
  2906.        ::= { snmpProxyEntry 6 }
  2907.  
  2908.    snmpProxyStorageType OBJECT-TYPE
  2909.        SYNTAX      StorageType
  2910.        MAX-ACCESS  read-create
  2911.        STATUS      current
  2912.  
  2913.  
  2914.  
  2915.  
  2916.  
  2917. Expires January 1998                                     [Page 49]
  2918.  
  2919.  
  2920.  
  2921.  
  2922. Internet-Draft            SNMPv3 Applications                  July 1997
  2923.  
  2924.  
  2925.        DESCRIPTION
  2926.            ""
  2927.        ::= { snmpProxyEntry 7 }
  2928.  
  2929.    snmpProxyRowStatus OBJECT-TYPE
  2930.        SYNTAX      RowStatus
  2931.        MAX-ACCESS  read-create
  2932.        STATUS      current
  2933.        DESCRIPTION
  2934.            ""
  2935.        ::= { snmpProxyEntry 8 }
  2936.  
  2937.    -- ------------------------------------------------------------------
  2938.    --
  2939.    -- Conformance information
  2940.    --
  2941.    -- ------------------------------------------------------------------
  2942.  
  2943.    snmpProxyCompliances OBJECT IDENTIFIER ::=
  2944.                                             { snmpProxyConformance 1 }
  2945.    snmpProxyGroups      OBJECT IDENTIFIER ::=
  2946.                                             { snmpProxyConformance 2 }
  2947.  
  2948.    -- ------------------------------------------------------------------
  2949.    --
  2950.    -- Compliance statements
  2951.    --
  2952.    -- ------------------------------------------------------------------
  2953.  
  2954.    snmpProxyCompliance MODULE-COMPLIANCE
  2955.        STATUS      current
  2956.        DESCRIPTION
  2957.            "The compliance statement for SNMP entities which include
  2958.             a proxy forwarding application."
  2959.        MODULE SNMPV3-TARGET-MIB
  2960.            MANDATORY-GROUPS { snmpTargetBasicGroup,
  2961.                               snmpTargetResponseGroup }
  2962.        MODULE -- This Module
  2963.            MANDATORY-GROUPS { snmpProxyGroup }
  2964.        ::= { snmpProxyCompliances 1 }
  2965.  
  2966.    snmpProxyGroup OBJECT-GROUP
  2967.        OBJECTS {
  2968.            snmpProxyNextIndex,
  2969.            snmpProxyType,
  2970.            snmpProxyContextEngineID,
  2971.            snmpProxyContextName,
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977. Expires January 1998                                     [Page 50]
  2978.  
  2979.  
  2980.  
  2981.  
  2982. Internet-Draft            SNMPv3 Applications                  July 1997
  2983.  
  2984.  
  2985.            snmpProxyTargetIn,
  2986.            snmpProxyTargetOut,
  2987.            snmpProxyStorageType,
  2988.            snmpProxyRowStatus
  2989.        }
  2990.        STATUS      current
  2991.        DESCRIPTION
  2992.            "A collection of objects providing remote configuration of
  2993.             management targets, including row creation in the
  2994.             snmpTargetTable."
  2995.        ::= { snmpProxyGroups 3 }
  2996.  
  2997.    END
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.  
  3015.  
  3016.  
  3017.  
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.  
  3026.  
  3027.  
  3028.  
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034.  
  3035.  
  3036. Expires January 1998                                     [Page 51]
  3037.  
  3038.  
  3039.  
  3040.  
  3041. Internet-Draft            SNMPv3 Applications                  July 1997
  3042.  
  3043.  
  3044. 6.  Identification of Management Targets in Notification Originators
  3045.  
  3046.    This section describes the mechanisms used by a notification
  3047.    originator application when using the MIB described in this document
  3048.    to determine the set of management targets to be used when generating
  3049.    a notification.
  3050.  
  3051.    A notification originator uses the snmpTargetTable to find the groups
  3052.    of management targets to be used for generating notifications.  Each
  3053.    active entry in this table, for which the corresponding value of
  3054.    snmpNotifyTargetType is trap(1) or inform(2), identifies a group of
  3055.    management targets to be used for notification generation.  Note that
  3056.    if an SNMP Entity's only use of the snmpTargetTable is for generation
  3057.    of messages containing SNMPv2-Trap PDUs, the snmpNotifyTargetType
  3058.    object is not required to be implemented.  In this case, the value of
  3059.    snmpNotifyTargetType is always assumed to be trap(1).
  3060.  
  3061.    Each such entry contains a pointer to the snmpTargetAddrTable
  3062.    (snmpTargetAddrName).  This pointer identifies zero or more transport
  3063.    endpoints, defined in the snmpTargetAddrTable.  If there are zero
  3064.    transport endpoints identified, the group of management targets is
  3065.    empty, and should be ignored.  Otherwise, each transport endpoint,
  3066.    paired with the SNMP information from the snmpTargetTable, identifies
  3067.    a single management target within the group.
  3068.  
  3069.    The decision as to whether a notification should contain an SNMPv2-
  3070.    Trap or Inform PDU is determined by the value of the
  3071.    snmpNotifyTargetType object.  If the value of this object is trap(1),
  3072.    the notification should contain an SNMPv2-Trap PDU.  If the value of
  3073.    this object is inform(2), then the notification should contain an
  3074.    Inform PDU, and the number of retries for the Inform is the value of
  3075.    snmpTargetRetryCount.  Note that the exception to these rules is when
  3076.    the snmpTargetMessageProcessingModel object indicates SNMPv1.  In
  3077.    this case, the notification is sent as a Trap if the value of
  3078.    snmpNotifyTargetType is either trap(1) or inform(2).
  3079.  
  3080.  
  3081.  
  3082.  
  3083.  
  3084.  
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095. Expires January 1998                                     [Page 52]
  3096.  
  3097.  
  3098.  
  3099.  
  3100. Internet-Draft            SNMPv3 Applications                  July 1997
  3101.  
  3102.  
  3103. 7.  Notification Filtering
  3104.  
  3105.    This section describes the mechanisms used by a notification
  3106.    originator application when using the MIB described in this document
  3107.    to filter generation of notifications.
  3108.  
  3109.    A notification originator uses the snmpNotifyFilterTable to filter
  3110.    notifications.  When generating notifications for a group of
  3111.    management targets, all active entries in the snmpNotifyFilterTable,
  3112.    for which the value of the snmpNotifyFilterProfileName index is equal
  3113.    to the value of the snmpNotifyFilterProfileName object of the
  3114.    management target group, are used for filtering the notification.  If
  3115.    no such entries exist, no filtering is performed, and the
  3116.    notification may be sent to all management targets in the group.
  3117.  
  3118.    Otherwise, if matching entries do exist, the notification may be sent
  3119.    if the NOTIFICATION-TYPE OBJECT IDENTIFIER of the notification (this
  3120.    is the value of the element of the variable bindings whose name is
  3121.    snmpTrapOID.0, i.e. the second variable binding), and all of the
  3122.    object instances to be included in the variable-bindings of the
  3123.    notification, are not specifically excluded by the matching entries.
  3124.  
  3125.    Each set of snmpNotifyFilterTable entries is divided into two
  3126.    collections of filter subtrees:  the included filter subtrees, and
  3127.    the excluded filter subtrees.  The snmpNotifyFilterType object
  3128.    defines the collection to which each matching entry belongs.
  3129.  
  3130.    To determine whether a particular object instance is excluded by the
  3131.    set of matching entries, compare the object instance's OBJECT
  3132.    IDENTIFIER with each of the matching entries.  If none match, then
  3133.    the object instance is considered excluded, and the notification
  3134.    should not be sent to this group of management targets.  If one or
  3135.    more match, then the object instance is included or excluded,
  3136.    according to the value of snmpNotifyFilterType in the entry whose
  3137.    value of snmpNotifyFilterSubtree has the most sub-identifiers.  If
  3138.    multiple entries match and have the same number of sub-identifiers,
  3139.    then the lexicographically greatest instance of snmpNotifyFilterType
  3140.    among those which match determines the inclusion or exclusion.
  3141.  
  3142.    An object instance's OBJECT IDENTIFIER X matches an entry in the
  3143.    snmpNotifyFilterTable when the number of sub-identifiers in X is at
  3144.    least as many as in the value of snmpNotifyFilterSubtree for the
  3145.    entry, and each sub-identifier in the value of
  3146.    snmpNotifyFilterSubtree matches its corresponding sub-identifier in
  3147.    X.  Two sub-identifiers match either if the corresponding bit of
  3148.    snmpNotifyFilterMask is zero (the 'wild card' value), or if the two
  3149.    sub-identifiers are equal.
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155. Expires January 1998                                     [Page 53]
  3156.  
  3157.  
  3158.  
  3159.  
  3160. Internet-Draft            SNMPv3 Applications                  July 1997
  3161.  
  3162.  
  3163. 8.  Management Target Translation in Proxy Forwarder Applications
  3164.  
  3165.    This section describes the mechanisms used by a proxy forwarder
  3166.    application when using the MIB described in this document to
  3167.    translate incoming management target information into outgoing
  3168.    management target information for the purpose of forwarding messages.
  3169.    There are actually two mechanisms a proxy forwarder may use, one for
  3170.    forwarding request messages, and one for forwarding notification
  3171.    messages.
  3172.  
  3173.  
  3174. 8.1.  Management Target Translation for Request Forwarding
  3175.  
  3176.    When forwarding request messages, the proxy forwarder will select a
  3177.    single entry in the snmpProxyTable.  To select this entry, it will
  3178.    perform the following comparisons:
  3179.  
  3180.        -  The snmpProxyType must be read(1) if the request is a Get,
  3181.           GetNext, or GetBulk request.  The snmpProxyType must be
  3182.           write(2) if the request is a Set request.
  3183.  
  3184.        -  The contextEngineId and contextName must equal the
  3185.           snmpProxyContextEngineID and snmpProxyContextName objects.
  3186.  
  3187.        -  The snmpProxyTargetIn object identifies an entry in the
  3188.           snmpTargetTable.  The snmp version, LoS, security model, and
  3189.           securityName must match the values of
  3190.           snmpTargetMessageProcessingModel, snmpTargetSecurityModel,
  3191.           snmpTargetSecurityName, and snmpTargetLoS of the identified
  3192.           entry in the snmpTargetTable.
  3193.  
  3194.        -  The identified entry in the snmpTargetTable contains a pointer
  3195.           to the snmpTargetAddrTable.  This pointer refers to zero or
  3196.           more entries in the snmpTargetAddrTable.  If there are no such
  3197.           entries, this comparison need not succeed.  If there is at
  3198.           least one such entry, the transport domain and address from
  3199.           which the request was received must match the
  3200.           snmpTargetAddrTDomain and snmpTargetAddrTAddress values of at
  3201.           least one of these entries.
  3202.  
  3203.    There may be multiple entries in the snmpProxyTable for which these
  3204.    comparisons succeed.  The entry whose snmpProxyIndex has the smallest
  3205.    value and for which the comparisons succeed will be selected by the
  3206.    proxy forwarder.
  3207.  
  3208.    The outgoing management information is identified by the value of the
  3209.    snmpProxyTargetOut object of the selected entry.  This object
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215. Expires January 1998                                     [Page 54]
  3216.  
  3217.  
  3218.  
  3219.  
  3220. Internet-Draft            SNMPv3 Applications                  July 1997
  3221.  
  3222.  
  3223.    identifies an entry in the snmpTargetTable.  The
  3224.    snmpTargetMessageProcessingModel, snmpTargetSecurityModel,
  3225.    snmpTargetSecurityName, and snmpTargetLoS of this entry are used as
  3226.    one part of the management target.  The other part of the management
  3227.    target is a transport endpoint, which is identified by the value of
  3228.    the snmpTargetAddrName member of the snmpTargetTable entry.  This
  3229.    value may identify zero or more entries in the snmpTargetAddrTable.
  3230.    If there are no entries identified, the selected snmpProxyTable entry
  3231.    is invalid, and the proxy forwarder should look for another
  3232.    snmpProxyTable entry to use.  Otherwise, the snmpTargetAddrTable
  3233.    entry with the smallest value of snmpTargetAddrSubIndex is used as
  3234.    the transport endpoint.
  3235.  
  3236.  
  3237. 8.2.  Management Target Translation for Notification Forwarding
  3238.  
  3239.    When forwarding notification messages, the proxy forwarder will
  3240.    select multiple entries in the snmpProxyTable.  To select these
  3241.    entries, it will perform the following comparisons:
  3242.  
  3243.        -  The snmpProxyType must be trap(3) if the notification is a
  3244.           Trap.  The snmpProxyType must be inform(4) if the request is
  3245.           an Inform.
  3246.  
  3247.        -  The contextEngineId and contextName must equal the
  3248.           snmpProxyContextEngineID and snmpProxyContextName objects.
  3249.  
  3250.        -  The snmpProxyTargetIn object identifies an entry in the
  3251.           snmpTargetTable.  The snmp version, LoS, security model, and
  3252.           securityName must match the values of
  3253.           snmpTargetMessageProcessingModel, snmpTargetSecurityModel,
  3254.           snmpTargetSecurityName, and snmpTargetLoS of the identified
  3255.           entry in the snmpTargetTable.
  3256.  
  3257.        -  The identified entry in the snmpTargetTable contains a pointer
  3258.           to the snmpTargetAddrTable.  This pointer refers to zero or
  3259.           more entries in the snmpTargetAddrTable.  If there are no such
  3260.           entries, this comparison need not succeed.  If there is at
  3261.           least one such entry, the transport domain and address from
  3262.           which the request was received must match the
  3263.           snmpTargetAddrTDomain and snmpTargetAddrTAddress values of at
  3264.           least one of these entries.
  3265.  
  3266.    All entries for which these comparisons succeed are selected.  The
  3267.    set of outgoing management targets to be used for generating
  3268.    forwarded notifications is identified by the value of the
  3269.    snmpProxyTargetOut object of all selected entries.  These values
  3270.  
  3271.  
  3272.  
  3273.  
  3274.  
  3275. Expires January 1998                                     [Page 55]
  3276.  
  3277.  
  3278.  
  3279.  
  3280. Internet-Draft            SNMPv3 Applications                  July 1997
  3281.  
  3282.  
  3283.    identify entries in the snmpTargetTable.  All such entries are used
  3284.    for generating forwarded notifications.  The snmpTargetNotification
  3285.    object is ignored when generating forwarded notifications in a proxy
  3286.    forwarder application.
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.  
  3306.  
  3307.  
  3308.  
  3309.  
  3310.  
  3311.  
  3312.  
  3313.  
  3314.  
  3315.  
  3316.  
  3317.  
  3318.  
  3319.  
  3320.  
  3321.  
  3322.  
  3323.  
  3324.  
  3325.  
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334. Expires January 1998                                     [Page 56]
  3335.  
  3336.  
  3337.  
  3338.  
  3339. Internet-Draft            SNMPv3 Applications                  July 1997
  3340.  
  3341.  
  3342. 9.  Security Considerations
  3343.  
  3344.    Should have some discussion about notification generation
  3345.    applications which provide variable bindings when generating a
  3346.    notification, rather than omitting them and letting the engine get
  3347.    them from the LPM.  Applications that do this should be careful not
  3348.    to disclose anything that they shouldn't.
  3349.  
  3350.  
  3351.  
  3352. 10.  Acknowledgments
  3353.  
  3354.    This document was produced by the IETF SNMPv3 working group.
  3355.  
  3356.  
  3357.  
  3358.  
  3359.  
  3360.  
  3361.  
  3362.  
  3363.  
  3364.  
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.  
  3371.  
  3372.  
  3373.  
  3374.  
  3375.  
  3376.  
  3377.  
  3378.  
  3379.  
  3380.  
  3381.  
  3382.  
  3383.  
  3384.  
  3385.  
  3386.  
  3387.  
  3388.  
  3389.  
  3390.  
  3391.  
  3392.  
  3393. Expires January 1998                                     [Page 57]
  3394.  
  3395.  
  3396.  
  3397.  
  3398. Internet-Draft            SNMPv3 Applications                  July 1997
  3399.  
  3400.  
  3401. 11.  References
  3402.  
  3403. [RFC1157]
  3404.      Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network
  3405.      Management Protocol", RFC 1157, SNMP Research, Performance Systems
  3406.      International, Performance Systems International, MIT Laboratory
  3407.      for Computer Science, May 1990.
  3408.  
  3409. [RFC1213]
  3410.      McCloghrie, K., and M. Rose, Editors, "Management Information Base
  3411.      for Network Management of TCP/IP-based internets: MIB-II", STD 17,
  3412.      RFC 1213, Hughes LAN Systems, Performance Systems International,
  3413.      March 1991.
  3414.  
  3415. [RFC1902]
  3416.      SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
  3417.      Waldbusser, "Structure of Management Information for Version 2 of
  3418.      the Simple Network Management Protocol (SNMPv2)", RFC1902, SNMP
  3419.      Research,Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc.,
  3420.      International Network Services, January 1996.
  3421.  
  3422. [RFC1903]
  3423.      SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
  3424.      Waldbusser, "Textual Conventions for Version 2 of the Simple
  3425.      Network Management Protocol (SNMPv2)", RFC1903, SNMP Research,Inc.,
  3426.      Cisco Systems, Inc., Dover Beach Consulting, Inc., International
  3427.      Network Services, January 1996.
  3428.  
  3429. [RFC1905]
  3430.      SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
  3431.      Waldbusser, "Protocol Operations for Version 2 of the Simple
  3432.      Network Management Protocol (SNMPv2)", RFC1905, SNMP Research,Inc.,
  3433.      Cisco Systems, Inc., Dover Beach Consulting, Inc., International
  3434.      Network Services, January 1996.
  3435.  
  3436. [RFC1907]
  3437.      SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
  3438.      Waldbusser, "Management Information Base for Version 2 of the
  3439.      Simple Network Management Protocol (SNMPv2)", RFC1905, SNMP
  3440.      Research,Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc.,
  3441.      International Network Services, January 1996.
  3442.  
  3443. [RFC1908]
  3444.      SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
  3445.      Waldbusser, "Coexistence between Version 1 and Version 2 of the
  3446.      Internet-standard Network Management Framework", RFC1905, SNMP
  3447.      Research,Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc.,
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453. Expires January 1998                                     [Page 58]
  3454.  
  3455.  
  3456.  
  3457.  
  3458. Internet-Draft            SNMPv3 Applications                  July 1997
  3459.  
  3460.  
  3461.      International Network Services, January 1996.
  3462.  
  3463. [SNMPV3-ARCH]
  3464.      SNMPv3 Working Group, Harrington, D., Wijnen, B., "An Architecture
  3465.      for Describing Internet Management Frameworks", draft-ietf-snmpv3-
  3466.      next-gen-arch-02.txt, June 1997.
  3467.  
  3468. [SNMPV3-MPC]
  3469.      SNMPv3 Working Group, Case, J., Harrington, D., Wijnen, B.,
  3470.      "Message Processing and Control Model for version 3 of the Simple
  3471.      Network Management Protocol (SNMPv3)", draft-ietf-snmpv3-next-gen-
  3472.      arch-02.txt, June 1997.
  3473.  
  3474. [SNMPV3-ACM]
  3475.      SNMPv3 Working Group, Wijnen, B., Presuhn, R., McClogrie, K.,
  3476.      "Access Control Model for version 3 of the Simple Network
  3477.      Management Protocol (SNMPv3)", draft-ietf-snmpv3-next-gen-arch-
  3478.      02.txt, June 1997.
  3479.  
  3480.  
  3481.  
  3482. 12.  Author's Address
  3483.  
  3484.      David B. Levi
  3485.      SNMP Research, Inc.
  3486.      3001 Kimberlin Heights Road
  3487.      Knoxville, TN 37920-9716
  3488.      U.S.A.
  3489.      Phone: +1 423 573 1434
  3490.      EMail: levi@snmp.com
  3491.  
  3492.      Paul Meyer
  3493.      Secure Computing Corporation
  3494.      2675 Long Lake Road
  3495.      Roseville, MN 55113
  3496.      U.S.A.
  3497.      Phone: +1 612 628 1592
  3498.      EMail: paul_meyer@securecomputing.com
  3499.  
  3500.      Bob Stewart
  3501.      Cisco Systems
  3502.      ????
  3503.      ????
  3504.      U.S.A.
  3505.      Phone: +1 603 654 6923
  3506.      EMail: bstewart@cisco.com
  3507.  
  3508.  
  3509.  
  3510.  
  3511.  
  3512. Expires January 1998                                     [Page 59]
  3513.  
  3514.  
  3515.  
  3516.  
  3517. Internet-Draft            SNMPv3 Applications                  July 1997
  3518.  
  3519.  
  3520.    APPENDIX A - Trap Configuration Example
  3521.  
  3522.    This section describes an example configuration for a Notification
  3523.    Generator application which implements the
  3524.    snmpNotifyMinimalCompliance level.  The example configuration
  3525.    specifies that the Notification Generator should send notifications
  3526.    to 3 separate managers, using authentication and no privacy for the
  3527.    first 2 managers, and using both authentication and privacy for the
  3528.    third manager.
  3529.  
  3530.    The configuration consists of three rows in the snmpTargetAddrTable,
  3531.    and two rows in the snmpTargetTable.
  3532.  
  3533.         * snmpTargetAddrName        = "AuthNoPrivTargetAddresses"
  3534.         * snmpTargetAddrSubIndex    = 1
  3535.           snmpTargetAddrTDomain     = snmpUDPDomain
  3536.           snmpTargetAddrTAddress    = 128.1.2.3:162
  3537.           snmpTargetAddrStorageType = readOnly(5)
  3538.           snmpTargetAddrRowStatus   = active(1)
  3539.  
  3540.         * snmpTargetAddrName        = "AuthNoPrivTargetAddresses"
  3541.         * snmpTargetAddrSubIndex    = 2
  3542.           snmpTargetAddrTDomain     = snmpUDPDomain
  3543.           snmpTargetAddrTAddress    = 128.2.4.6:162
  3544.           snmpTargetAddrStorageType = readOnly(5)
  3545.           snmpTargetAddrRowStatus   = active(1)
  3546.  
  3547.         * snmpTargetAddrName        = "AuthPrivTargetAddresses"
  3548.         * snmpTargetAddrSubIndex    = 1
  3549.           snmpTargetAddrTDomain     = snmpUDPDomain
  3550.           snmpTargetAddrTAddress    = 128.1.5.9:162
  3551.           snmpTargetAddrStorageType = readOnly(5)
  3552.           snmpTargetAddrRowStatus   = active(1)
  3553.  
  3554.         * snmpTargetName                   = "AuthNoPrivTarget"
  3555.           snmpTargetAddrName               = "AuthNoPrivTargetAddresses"
  3556.           snmpTargetMessageProcessingModel = 3
  3557.           snmpTargetSecurityModel          = 3 (USM)
  3558.           snmpTargetSecurityName           = "joe"
  3559.           snmpTargetLoS                    = auth(2)
  3560.           snmpTargetStorageType            = readOnly(5)
  3561.           snmpTargetRowStatus              = active(1)
  3562.  
  3563.         * snmpTargetName                   = "AuthPrivTarget"
  3564.           snmpTargetAddrName               = "AuthPrivTargetAddresses"
  3565.           snmpTargetMessageProcessingModel = 3
  3566.           snmpTargetSecurityModel          = 3 (USM)
  3567.  
  3568.  
  3569.  
  3570.  
  3571.  
  3572. Expires January 1998                                     [Page 60]
  3573.  
  3574.  
  3575.  
  3576.  
  3577. Internet-Draft            SNMPv3 Applications                  July 1997
  3578.  
  3579.  
  3580.           snmpTargetSecurityName           = "bob"
  3581.           snmpTargetLoS                    = priv(3)
  3582.           snmpTargetStorageType            = readOnly(5)
  3583.           snmpTargetRowStatus              = active(1)
  3584.  
  3585.    These entries define two separate management target groups.  The
  3586.    first group contains two management targets:
  3587.  
  3588.                           first target      second target
  3589.                           ------------      -------------
  3590.             snmpVersion   SNMPv3            SNMPv3
  3591.           securityModel   3 (USM)           3 (USM)
  3592.            securityName   "joe"             "joe"
  3593.                     LoS   auth(2)           auth(2)
  3594.         transportDomain   snmpUDPDomain     snmpUDPDomain
  3595.        transportAddress   128.1.2.3:162     128.2.4.6:162
  3596.  
  3597.    And the second group contains a single management target:
  3598.  
  3599.             snmpVersion   SNMPv3
  3600.                     LoS   priv(3)
  3601.           securityModel   3 (USM)
  3602.            securityName   "bob"
  3603.         transportDomain   snmpUDPDomain
  3604.        transportAddress   128.1.5.9:162
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.  
  3622.  
  3623.  
  3624.  
  3625.  
  3626.  
  3627.  
  3628.  
  3629.  
  3630.  
  3631. Expires January 1998                                     [Page 61]
  3632.  
  3633.  
  3634.  
  3635.  
  3636. Internet-Draft            SNMPv3 Applications                  July 1997
  3637.  
  3638.  
  3639.    Table of Contents
  3640.  
  3641.  
  3642.    1 Abstract .....................................................    2
  3643.    2 Overview .....................................................    3
  3644.    2.1 Command Generators .........................................    3
  3645.    2.2 Command Responders .........................................    3
  3646.    2.3 Notification Originators ...................................    4
  3647.    2.4 Notification Receivers .....................................    4
  3648.    2.5 Proxy Forwarder ............................................    4
  3649.    3 Management Targets ...........................................    5
  3650.    4 Elements Of Procedure ........................................    6
  3651.    4.1 Command Generators .........................................    7
  3652.    4.2 Command Responders .........................................    9
  3653.    4.3 Notification Originators ...................................   14
  3654.    4.4 Notification Receivers .....................................   17
  3655.    4.5 Proxy Forwarders ...........................................   19
  3656.    4.5.1 Request Forwarding .......................................   19
  3657.    4.5.1.1 Processing an Incoming Request .........................   19
  3658.    4.5.1.2 Processing an Incoming Response ........................   22
  3659.    4.5.2 Notification Forwarding ..................................   23
  3660.    5 The Structure of the MIBs ....................................   26
  3661.    5.1 The Management Target MIB ..................................   26
  3662.    5.1.1 Definitions ..............................................   26
  3663.    5.2 The Notification MIB .......................................   37
  3664.    5.2.1 Definitions ..............................................   37
  3665.    5.3 The Proxy MIB ..............................................   46
  3666.    5.3.1 Definitions ..............................................   46
  3667.    6 Identification of Management Targets in Notification Origi-
  3668.         nators ....................................................   52
  3669.    7 Notification Filtering .......................................   53
  3670.    8 Management Target Translation in Proxy  Forwarder  Applica-
  3671.         tions .....................................................   54
  3672.    8.1 Management Target Translation for Request Forwarding .......   54
  3673.    8.2 Management Target Translation for Notification Forwarding
  3674.         ...........................................................   55
  3675.    9 Security Considerations ......................................   57
  3676.    10 Acknowledgments .............................................   57
  3677.    11 References ..................................................   58
  3678.    12 Author's Address ............................................   59
  3679.    Appendix A Trap Configuration Example ..........................   60
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688.  
  3689.  
  3690. Expires January 1998                                     [Page 62]
  3691.