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-01.txt < prev    next >
Text File  |  1997-08-01  |  128KB  |  4,048 lines

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