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-lmp-00.txt < prev    next >
Text File  |  1997-05-01  |  70KB  |  2,183 lines

  1.  
  2.               Local Processing Model for the Next Generation
  3.                 Simple Network Management Protocol (SNMPng)
  4.  
  5.                             26 March 1997
  6.  
  7.  
  8.                               B. Wijnen
  9.                        IBM T.J. Watson Research
  10.                           wijnen@vnet.ibm.com
  11.  
  12.                             D. Harrington
  13.                         Cabletron Systems, Inc.
  14.                           dbh@cabletron.com
  15.  
  16.  
  17.                     <draft-ietf-snmpv3-lpm-00.txt>
  18.  
  19.  
  20.                           Status of this Memo
  21.  
  22. This document is an Internet-Draft.  Internet-Drafts are working
  23. documents of the Internet Engineering Task Force (IETF), its areas,
  24. and its working groups.  Note that other groups may also distribute
  25. working documents as Internet-Drafts.
  26.  
  27. Internet-Drafts are draft documents valid for a maximum of six months
  28. and may be updated, replaced, or obsoleted by other documents at any
  29. time.  It is inappropriate to use Internet- Drafts as reference
  30. material or to cite them other than as ``work in progress.''
  31.  
  32. To learn the current status of any Internet-Draft, please check the
  33. ``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow
  34. Directories on ds.internic.net (US East Coast), nic.nordu.net (Europe),
  35. ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
  36.  
  37.  
  38.  
  39.                           Abstract
  40.  
  41. This document describes the Local Processing Model (LPM) for the
  42. Next-Generation of the Simple Network Management Protocol (SNMPng).
  43. It is part of the overall Architectural Model for the Next Generation
  44. Simple Network Management Protocol (SNMPng).
  45.  
  46. This document includes a MIB for remotely monitoring/managing the
  47. configuration paramters for this LPM.
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56. Wijnen/Harrington         Expires September 1977               [Page  1]
  57.  
  58. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  59.  
  60.  
  61. 0.  Change Log
  62.  
  63. [version 0.6]
  64.   - Add address info for WG chair.
  65.   - Add address for DaveH in MIB description
  66.   - submit as I-D
  67.  
  68. [version 0.5]
  69.   - Some more comments by BW.
  70.   - Some more cleanup
  71.   - Address comments from others (dbh, dl)
  72.   - complete missing sections
  73.   - I still have quite a few of editor's notes so that
  74.     people can discuss/evaluate the alternatives.
  75.     Or do we want/need to take a position right now?
  76.   - add abstract
  77.   - prepare for pagination
  78.  
  79. [version 0.4]
  80.   - Add initial config info as appendix A
  81.   - Some more cleanup
  82.  
  83. [version 0.3]
  84.   - Explain and extend usage of viewTable and subtreeFamilyTable
  85.  
  86. [version 0.2]
  87.   - merge in dbh comments
  88.   - add more personal bw comments
  89.   - add more terminology definitions
  90.   - add MIB
  91.  
  92. [version 0.1]
  93.   - initial version
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115. Wijnen/Harrington         Expires September 1977               [Page  2]
  116.  
  117. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  118.  
  119.  
  120. 1.  Introduction
  121.  
  122. A management system contains: several (potentially many) nodes, each
  123. with a processing entity, termed an agent, which has access to
  124. management instrumentation; at least one management station; and, a
  125. management protocol, used to convey management information between the
  126. agents and management stations.
  127.  
  128. Management stations execute management applications which monitor and
  129. control managed elements.  Managed elements are devices such as hosts,
  130. routers, terminal servers, etc., which are monitored and controlled
  131. via access to their management information.
  132.  
  133. Operations of the protocol are carried out under an administrative
  134. framework which defines minimum policies for mechanisms which
  135. provide message-level security, access control for managed objects,
  136. and interaction between the protocol engine and the applications
  137. which use the services of the engine.
  138.  
  139. The Architectural Model for SNMPng [SNMPng-ARCH] describes
  140. a Local Processing Framework for SNMP messages that are
  141. targetted for local processing to access management information or
  142. for SNMP messages that originate from local processing of management
  143. information.
  144.  
  145. It is the purpose of this document to define a Local Processing
  146. Model (LP-M) for the Next Generation Simple Network Management
  147. Protocol (LP-M for SNMPng).
  148.  
  149. 1.1  Terminology
  150.  
  151. Definition of SNMPng acronyms and terms:
  152.  
  153.    MPC-F   - Message Processing and Control Framework
  154.    MPC-M   - Message Processing and Control Model
  155.    MPC-I   - Message Processing and Control Implementation
  156.  
  157.    SF-F    - Security Framework
  158.    SF-M    - Security Framework Model
  159.    SF-I    - Security Framework Implementation
  160.  
  161.    LP-F    - Local Processing Framework
  162.    LP-M    - Local Processing Model
  163.    LP-I    - Local Processing Implementation
  164.  
  165.    LCD     - Local Configuration Datastore
  166.  
  167. 1.2  Local Processing
  168.  
  169. Local Processing may occur in an SNMPng entity acting in an agent
  170. role in response to SNMPng request messages from an SNMPng
  171.  
  172.  
  173.  
  174. Wijnen/Harrington         Expires September 1977               [Page  3]
  175.  
  176. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  177.  
  178.  
  179. entity acting in a manager role.  These request messages include
  180. several types of operations, including GetRequest, GetNextRequest,
  181. GetBulkRequest, and SetRequest operations.
  182.  
  183. Local Processing only occurs if the request is targeted at local
  184. management information as determined by the contextID in the
  185. Naming-Scope in a Scoped-PDU. It is the MPC implementation (MPC-I)
  186. that determines if the contextID refers to the current SNMPng
  187. engine and if so, to direct the Scoped-PDU to the LP-I.
  188.  
  189. Local Processing almost always results in the production
  190. of a response, (sometimes including error or other exceptional
  191. indicators), termed the Response-PDU.
  192.  
  193. Local Processing can also result in the production of an
  194. error report, termed the Report-PDU.
  195.  
  196. Local Processing is also responsible for generating notifications,
  197. which will result in the production of one or more traps, termed
  198. SNMPv2-TRAP-PDUs.
  199.  
  200. 1.3  Local Configuration Datastore
  201.  
  202. To implement the model described in this document, each SNMPng
  203. entity needs to retain its own set of information about access
  204. rights and policies, trap destinations, and the like.  This set
  205. of information is called the SNMPng entity's Local Configuration
  206. Datastore (LCD) because it is locally-stored information.
  207.  
  208. In order to allow an SNMPng entity's LCD to be remotely configured,
  209. portions of the LCD need to be accessible as managed objects.
  210. A MIB module, the SNMPng LP-M Configuration MIB, which defines
  211. these managed object types is included in this document.
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233. Wijnen/Harrington         Expires September 1977               [Page  4]
  234.  
  235. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  236.  
  237.  
  238. 2.  Elements of the Model
  239.  
  240. This section contains definitions to realize the access control
  241. applied by this LP-M.
  242.  
  243. 2.1  SNMPng Group
  244.  
  245. A groupName identifies a group (set) of zero or more security
  246. entities on whose behalf SNMP messages are being processed or
  247. generated.
  248. It is the responsibility of the MPC-I to determine in an
  249. authorirative manner for which groupName an incoming SNMP
  250. message is being processed.
  251. It is the responsibility of the LP-I to determine the groupName
  252. for which a notification (TRAP) is being generated.
  253.  
  254. This Model (LP-M) requires the groupName to be passed as input
  255. to an implementation (LP-I) of this LP-M when a message is
  256. handed to the LP-I for processing.
  257.  
  258. This Model (LP-M) requires the groupName to be passed as output
  259. from an implementation (LP-I) when a message originates from
  260. the LP-I.
  261.  
  262. 2.2  SNMPng Quality of Service (Qos)
  263.  
  264. The Qos identifies the Quality of Service (in terms of message
  265. security) used for transmitting the SNMP message.
  266. It is the responsibility of the MPC-I to determine in an
  267. authoritative manner the Qos that was used for an incoming
  268. SNMP message.
  269. It is the responsibility of the LP-I to determine the Qos
  270. that must be used when transmitting a notification (TRAP).
  271.  
  272. This Model (LP-M) recognizes three different Qos levels:
  273.  
  274.    - without authentication and without privacy
  275.  
  276.    - with authentication but without privacy
  277.  
  278.    - with authentication and with privacy
  279.  
  280. This Model (LP-M) requires the Qos to be passed as input
  281. to an implementation (LP-I) of this LP-M when a message is
  282. handed to the LP-I for processing.
  283.  
  284. This Model (LP-M) requires the Qos to be passed as output
  285. from an implementation (LP-I) when a message originates from
  286. the LP-I.
  287.  
  288. 2.3  Contexts
  289.  
  290.  
  291.  
  292. Wijnen/Harrington         Expires September 1977               [Page  5]
  293.  
  294. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  295.  
  296.  
  297.  
  298. An SNMP context is a collection of management information
  299. accessible by an SNMP agent.  An item of management information
  300. may exist in more than one context.  An SNMP agent potentially
  301. has access to many contexts.
  302.  
  303. 2.4  SNMPng Scoped-PDU
  304.  
  305. A scoped-PDU contains a Naming-Scope that unambiguously
  306. identifies an SNMP agent and the context, (locally) accesible
  307. by that agent, to which the SNMP management information
  308. in the SNMP-PDU refers.
  309.  
  310. A Naming-Scope contains a contextID that unambiguously identifies
  311. the SNMP agent which has (local) access to the management
  312. information refered to by the contextName and the SNMP-PDU.
  313.  
  314. A Naming-Scope contains a contextName which unambiguously
  315. identifies an SNMP context accessible by the SNMP agent to
  316. which the SNMP-PDU is directed or from which the SNMP-PDU
  317. is originated.
  318.  
  319. It is the responsibility of the MPC-I to determine in an
  320. authoritative manner if the contextID refers to the current
  321. SNMPng engine and if so to direct the SNMP message to the
  322. LP-I for local processing.
  323.  
  324. It is the responsibility of the LP-I to determine the
  325. contextName from which the management information in a
  326. notification (TRAP) is retrieved.
  327.  
  328. This Model (LP-M) requires the Soped-PDU to be passed as input
  329. to an implementation (LP-I) of this LP-M if a message is
  330. handed to the LP-I for processing.
  331.  
  332. This Model (LP-M) requires that the contextName be passed
  333. as input to an implementation (LP-I) of this LP-M if a trap
  334. must be generated.
  335.  
  336. This Model (LP-M) requires the Soped-PDU to be passed as output
  337. from an implementation (LP-I) if a message originates from
  338. the LP-I.
  339.  
  340. Editor's notes:
  341.          I wonder if it would not be better to not use a
  342.          Scoped-PDU as input/output to the LP-M but instead
  343.          use contextName plus PDU as input/output. After all,
  344.          the contextID is irrelevant in the LP-M and is in
  345.          fact only used/known in the MPC.
  346. End Editor's notes.
  347.  
  348.  
  349.  
  350.  
  351. Wijnen/Harrington         Expires September 1977               [Page  6]
  352.  
  353. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  354.  
  355.  
  356. 2.5  Access Policy
  357.  
  358. The access policy of this LP-M determines the access rights of
  359. groups (representing zero, one or more security entities which
  360. have the same access rights).  For a particular context
  361. (contextName) to which a group (groupName) has access using
  362. a particular Qos, that group's access rights are given by a
  363. list of authorized operations, and a read-view and a write-view.
  364. The read-view is the set of object instances authorized
  365. for the group when reading objects.  Reading objects occurs
  366. when processing a retrieval (Get, GetNext, GetBulk) operation
  367. and when sending a notification (Trap).
  368. The write-view is the set of object instances authorized for
  369. the group when writing objects.  Writing objects occurs when
  370. processing a Set operation.
  371.  
  372. 2.6.  Error Reporting
  373.  
  374. Editor's notes:
  375.          (additional) pieces of this should be specified
  376.          in the MPC-M and SF-M
  377. End Editor's notes.
  378.  
  379. While processing a received communication, an SNMPng entity may
  380. determine that the message is unacceptable.  In this case,
  381. the appropriate error counter is incremented and the received
  382. message is discarded without further processing.
  383.  
  384. If an SNMPng entity is processing a received Get, GetNext,
  385. GetBulk, Set or Inform PDU and determines that a message is
  386. unacceptable and the reportableFlag indicates that a report
  387. may be generated, then after incrementing the appropriate
  388. counter, it is required to generate a message containing a
  389. report PDU, with the same context as the received message,
  390. and to send it to the transport address which originated
  391. the received message.  For all report PDUs, generated by
  392. the LP-I, the Qos for sending the report-PDU is set to
  393. noAUth (no authentiocation, no privacy).
  394.  
  395. The reportableFlag should never be set for a message that
  396. contains a Response, SNMPv2-Trap or Report operation.
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410. Wijnen/Harrington         Expires September 1977               [Page  7]
  411.  
  412. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  413.  
  414.  
  415. 3.  Elements of Procedure
  416.  
  417. This section describes the procedures followed by an
  418. implementation (LP-I) of this Model (LP-M) when processing or
  419. generating a Scoped-PDU
  420.  
  421. 3.1  Processing a Received Scoped-PDU
  422.  
  423. This section describes the procedure followed by an implementation
  424. (LP-I) whenever it receives a scoped-PDU for local processing.
  425. This procedure is independent of any of the other processing
  426. within the SNMPng Architectural Model.
  427.  
  428. (1)  The PDU portion of the Scoped-PDU is processed.  If the
  429.      serialized PDU value is not the serialization (according to
  430.      the conventions of [RFC1906]) of a PDU value, then the
  431.      snmpInASNParseErrs counter [RFC1907] is incremented,
  432.      and the received scoped-PDU is discarded without further
  433.      processing.
  434.  
  435. (2)  The SNMPv2 operation type is determined from the ASN.1 tag
  436.      value associated with the PDUs component.
  437.  
  438. (3)  If the SNMPv2 operation type is either a Report, Response,
  439.      Trap, or Inform operation,
  440.      then the snmpNgLpmStatsUnauthorizedOperations counter is
  441.      incremented, and the received Scoped-PDU is discarded
  442.      without further processing.
  443.  
  444. Editor's notes:
  445.          the above PDU-types should not be passed to the LP-I.
  446.          So it seems that the MPC-M also must define some SNMP
  447.          PDU processing for Report, Response, Trap, Inform.
  448.  
  449.          We used UnauthorizedOperations counter in v2u but v2*
  450.          used authorizationError (in SNMP PDU)... The v2u did that
  451.          because it was part of the access-control as opposed to
  452.          part of PDU processing. Now it seems part of PDU
  453.          processing again...  so maybe using authorizationError
  454.          is OK again... that is if we get to this point.
  455.          If the MPC-I detects it, then it should be an
  456.          unauthorizedOperations-report I think.
  457. End Editor's notes.
  458.  
  459. (4)  The LCD is consulted for information about the SNMPng context
  460.      identified by the contextName.  If information about this
  461.      SNMPng context is absent from the LCD, then the
  462.      snmpNgLpmStatsUnknownContexts counter is incremented, a report
  463.      PDU [RFC1905] is generated, and the received scoped-PDU is
  464.      discarded without further processing.
  465.  
  466.  
  467.  
  468.  
  469. Wijnen/Harrington         Expires September 1977               [Page  8]
  470.  
  471. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  472.  
  473.  
  474. Editor's notes:
  475.          The above means we have a contextTable within LPM,
  476.          but I am not sure we need one... since we just use a
  477.          contextName as an index into the snmpNgLpmAcTable.
  478.          We already decided to get rid of contextLocalEntity.
  479.          I have heard many stories that contectLocalTime is not
  480.          used and that the functionality could be achieved by
  481.          just defining few extra objects for those that need
  482.          something like a value to be used at restartTime.
  483.  
  484.          If we do not use a contextTable, then we could check that
  485.          the context is used as index in the acTable and if not,
  486.          then we assume the context does not exist
  487.  
  488.          An other alternative is to skip step (4) and (5) and
  489.          just return an authorizationError or a reportPDU for
  490.          snmpNgLpmUnAuthorizedOperations since we will not find
  491.          an entry in the snmpNgLpmAcTable.
  492.  
  493.          Some feel that the contextTable must exist (that is in
  494.          readOnly mode) so that a manager can learn about the
  495.          contextNames that exist at an agent.
  496.          But the entityMIB also sort of defines logical entities
  497.          which basically map to contextNames. However, the current
  498.          entityMIB does not yet address SNMPng contexts. Maybe
  499.          we should sync up with them.
  500. End Editor's notes.
  501.  
  502. (5)  The LCD is consulted for information about the SNMPng group
  503.      identified by the groupName.  If information about this
  504.      SNMPng group is absent from the LCD, then the
  505.      snmpNgLpmStatsUnknownGroups counter is incremented, a report
  506.      PDU [RFC1905] is generated, and the received Scoped-PDU is
  507.      discarded without further processing.
  508.  
  509. Editor's notes:
  510.          The above would assume that we just check if the group
  511.          is used as an index in the snmpNgLpmAcTable at all
  512.  
  513.          An other alternative is to skip step (4) and (5) and
  514.          just return a authorizationError or a reportPDU for
  515.          snmpNgLpmUnAuthorizedOperations since we will not find
  516.          an entry in the snmpNgLpmAcTable.
  517. End Editor's notes.
  518.  
  519. (6)  If the SNMPv2 operation type is either a Get, GetNext, GetBulk,
  520.      or Set operation, then:
  521.  
  522.      a) the LCD is consulted for access rights authorized for
  523.         communications using the indicated Qos, on behalf of the
  524.         indicated group, and concerning management information in
  525.  
  526.  
  527.  
  528. Wijnen/Harrington         Expires September 1977               [Page  9]
  529.  
  530. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  531.  
  532.  
  533.         the indicated context for the particular SNMPv2 operation
  534.         type.
  535.  
  536.      b) if the SNMPv2 operation type is not among the authorized
  537.         access rights, then the snmpNgLpmStatsUnauthorizedOperations
  538.         counter is incremented, a report PDU is generated, and
  539.         the received Scoped-PDU is discarded without further
  540.         processing.
  541.  
  542.      c) the management operation represented by the SNMPv2 operation
  543.         type is performed by the receiving LP-I with respect to the
  544.         relevant MIB view within the SNMPng context according to
  545.         the procedures set forth in [RFC1905], where the relevant
  546.         MIB view is determined according to the contextName,
  547.         groupName and the Qos values and the SNMPv2 operation
  548.         type requested.
  549.  
  550.      d) An SNMPv2 Response-PDU is produced and presented to the
  551.         the MPC-I for further processing.
  552.         The LP-I uses the scoped-PDU-MMS to ensure that the
  553.         produced Response-PDU does not exceed the maximum
  554.         message size.
  555.  
  556.  
  557. 3.2  Generating a Notification
  558.  
  559. This section describes the procedure followed by an implementation
  560. (LP-I) whenever it must generate a Scoped-PDU for an SNMPv2-Trap.
  561. This procedure is independent of any of the other processing
  562. within the SNMPng Architectural Model.
  563.  
  564. (1)  The LCD is consulted for the set of trap destinations.
  565.  
  566. (2)  For each element in the set of trap destinations, the Qos,
  567.      group (snmpNgLpmTrapGroup), destination addres and security
  568.      model (snmpNgLpmSecModel) are extracted from the LCD and
  569.      used together with the contextName in the following steps:
  570.  
  571.      a) the LCD is consulted for access rights authorized for
  572.         communications using the indicated Qos, on behalf of the
  573.         indicated group, and concerning management information in
  574.         the indicated context for the SNMPv2 trap operation.
  575.  
  576.      b) if the SNMPv2 trap operation is not among the authorized
  577.         access rights, then no SNMPv2-TRAP PDU is produced and
  578.         processing continues with the next element.
  579.  
  580.      c) the varBindList is checked against the relevant MIB view
  581.         where the relevant MIB view is determined according to the
  582.         contextName, groupName and the Qos values and the SNMPv2
  583.         trap operation.
  584.  
  585.  
  586.  
  587. Wijnen/Harrington         Expires September 1977               [Page 10]
  588.  
  589. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  590.  
  591.  
  592.  
  593.      d) if any varBind is not in view, then no SNMPv2-TRAP PDU is
  594.         produced and processing continues with the next element.
  595.  
  596.      e) an SNMPv2-TRAP PDU is produced and presented to the
  597.         MPC-I for further processing. The LP-I passes the
  598.         the Scoped-PDU, security model, the Qos, the groupName
  599.         and the destination address to the MPC-I.
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646. Wijnen/Harrington         Expires September 1977               [Page 11]
  647.  
  648. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  649.  
  650.  
  651. 4.  Definitions
  652.  
  653. SNMPng-LP-MIB DEFINITIONS ::= BEGIN
  654.  
  655. IMPORTS
  656.     Counter32, Unsigned32,
  657.     MODULE-IDENTITY, OBJECT-TYPE, snmpModules  FROM SNMPv2-SMI
  658.     TEXTUAL-CONVENTION, TestAndIncr,
  659.     RowStatus, AutonomousType, StorageType,
  660.     TDomain, TAddress                          FROM SNMPv2-TC
  661.     MODULE-COMPLIANCE, OBJECT-GROUP            FROM SNMPv2-CONF,
  662.     SnmpNgGroupName, SnmpNgContextName,
  663.     SnmpNgQos, SnmpNgEngineID,
  664.     SnmpNgSecurityModel                        FROM SNMPng-MIB;
  665.  
  666.  
  667. snmpNgLpMIB MODULE-IDENTITY
  668.     LAST-UPDATED "9703260000Z"     -- 26 Mar 1997, midnight
  669.     ORGANIZATION "SNMPv3 Working Group"
  670.     CONTACT-INFO "WG-email:   snmpv3@tis.com
  671.                   Subscribe:  majordomo@tis.com
  672.                               In msg body:  subscribe snmpv3
  673.  
  674.                   Chair:      Russ Mundy
  675.                               Trutsed Information Systems
  676.                   postal:     3060 Washington Rd
  677.                               Glenwood MD 21738
  678.                   email:      mundy@tis.com
  679.                   phone:      301-854-6889
  680.  
  681.                   Co-editor:  Bert Wijnen
  682.                               IBM T.J. Watson Research
  683.                   postal:     Schagen 33
  684.                               3461 GL Linschoten
  685.                               Netherlands
  686.                   email:      wijnen@vnet.ibm.com
  687.                   phone:      +31-348-412-498
  688.  
  689.                   Co-editor   Dave Harrington
  690.                               Cabletron Systems, Inc
  691.                   postal:     Post Office Box 5005
  692.                               MailStop: Durham
  693.                               35 Industrial Way
  694.                               Rochester NH 03867-5005
  695.                   email:      dbh@cabletron.com
  696.                   phone:      603-337-7357
  697.                  "
  698.  
  699.     DESCRIPTION  "The management information definitions for the
  700.                   SNMPng Local Processing Model.
  701.                  "
  702.  
  703.  
  704.  
  705. Wijnen/Harrington         Expires September 1977               [Page 12]
  706.  
  707. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  708.  
  709.  
  710.     ::= { snmpModules xx }
  711.  
  712. -- Administrative assigments *****************************************
  713.  
  714. snmpNgLpMIBObjects      OBJECT IDENTIFIER ::= { snmpNgLpMIB 1 }
  715. snmpNgLpMIBConformance  OBJECT IDENTIFIER ::= { snmpNgLpMIB 2 }
  716.  
  717. -- Information about Local Contexts **********************************
  718.  
  719. -- Editor's notes:
  720. --        We're still discussing if the contextTable is needed at all
  721. --        See Edotor's notes in section 3.1 under item 4).
  722. -- End Editor's notes.
  723.  
  724. snmpNgLpContextTable OBJECT-TYPE
  725.     SYNTAX       SEQUENCE OF SnmpNgLpContextEntry
  726.     MAX-ACCESS   not-accessible
  727.     STATUS       current
  728.     DESCRIPTION "The table of locally available contexts.
  729.  
  730.                  This table is read-only meaning that SNMPng entities
  731.                  in a manager role cannot configure contexts.
  732.  
  733.                  Instead the table is meant to provide input to SNMPng
  734.                  entities in a manager role sich that they can
  735.                  properly configure the snmpNgLpAcTable to control
  736.                  access to all contexts in an SNMPng entity operating
  737.                  in an agent role.
  738.                 "
  739.     ::= { snmpNgLpMIBObjects 1 }
  740.  
  741. snmpNgLpContextEntry OBJECT-TYPE
  742.     SYNTAX       SnmpNgLpContextEntry
  743.     MAX-ACCESS   not-accessible
  744.     STATUS       current
  745.     DESCRIPTION "Information about a particular context."
  746.     INDEX        { IMPLIED snmpNgLpContextName }
  747.     ::= { snmpNgLpContextTable 1 }
  748.  
  749. SnmpNgLpContextEntry ::= SEQUENCE
  750.     {
  751.         snmpNgLpContextName        SnmpNgContextName,
  752.         snmpNgLpContextStatus      RowStatus
  753.     }
  754.  
  755. snmpNgLpContextName OBJECT-TYPE
  756.     SYNTAX       SnmpNgContextName
  757.     MAX-ACCESS   not-accessible
  758.     STATUS       current
  759.     DESCRIPTION "A textual name uniquely identifying a particular
  760.                  context on a particular agent.
  761.  
  762.  
  763.  
  764. Wijnen/Harrington         Expires September 1977               [Page 13]
  765.  
  766. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  767.  
  768.  
  769.                 "
  770.     ::= { snmpNgLpContextEntry 1 }
  771.  
  772. snmpNgLpContextStatus OBJECT-TYPE
  773.     SYNTAX       RowStatus
  774.     MAX-ACCESS   read-only
  775.     STATUS       current
  776.     DESCRIPTION "The status of this conceptual row in the context
  777.                  table.
  778.                 "
  779.     ::= { snmpNgLpContextEntry 2 }
  780.  
  781.  
  782. -- Information about Access Rights ***********************************
  783.  
  784. snmpNgLpAcTable OBJECT-TYPE
  785.     SYNTAX      SEQUENCE OF SnmpNgLpAcEntry
  786.     MAX-ACCESS  not-accessible
  787.     STATUS      current
  788.     DESCRIPTION "The table of group access rights configured in the
  789.                  local configuration datastore (LCD).
  790.                 "
  791.     ::= { snmpNgLpMIBObjects 2 }
  792.  
  793. snmpNgLpAcEntry OBJECT-TYPE
  794.     SYNTAX      SnmpNgLpAcEntry
  795.     MAX-ACCESS  not-accessible
  796.     STATUS      current
  797.     DESCRIPTION "An access right configured in the local configuration
  798.                  datastore (LCD) authorizing access to a SNMPng
  799.                  context.
  800.                 "
  801.     INDEX       { snmpNgLpAcContextName,
  802.                   snmpNgLpAcGroupName,
  803.                   snmpNgLpAcQoS
  804.                 }
  805.     ::= { snmpNgLpAcTable 1 }
  806.  
  807. SnmpNgLpAcEntry ::= SEQUENCE
  808.     {
  809.         snmpNgLpAcContextName      SnmpNgContextName,
  810.         snmpNgLpAcGroupName        SnmpNgGroupName,
  811.         snmpNgLpAcPrivileges       INTEGER,
  812.         snmpNgLpAcReadViewIndex    INTEGER,
  813.         snmpNgLpAcWriteViewIndex   INTEGER,
  814.         snmpNgLpAcStorageType      StorageType,
  815.         snmpNgLpAcStatus           RowStatus
  816.     }
  817.  
  818. snmpNgLpAcContextName OBJECT-TYPE
  819.     SYNTAX      ContextName
  820.  
  821.  
  822.  
  823. Wijnen/Harrington         Expires September 1977               [Page 14]
  824.  
  825. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  826.  
  827.  
  828.     MAX-ACCESS  not-accessible
  829.     STATUS      current
  830.     DESCRIPTION "The context name which identifies an SNMPng context
  831.                  to which this conceptual row grants access rights.
  832.                 "
  833.     ::= { snmpNgLpAcEntry 1 }
  834.  
  835. snmpNgLpAcGroupName OBJECT-TYPE
  836.     SYNTAX      GroupName
  837.     MAX-ACCESS  not-accessible
  838.     STATUS      current
  839.     DESCRIPTION "The group name which identifies an SNMPng group
  840.                  to which this conceptual row grants access rights.
  841.                 "
  842.     ::= { snmpNgLpAcEntry 1 }
  843.  
  844. snmpNgLpAcQoS OBJECT-TYPE
  845.     SYNTAX      QoS
  846.     MAX-ACCESS  not-accessible
  847.     STATUS      current
  848.     DESCRIPTION "The minimum level of security required of messages
  849.                  sent on behalf of an entity belonging to the group
  850.                  in order to gain the access rights allowed by this
  851.                  conceptual row.
  852.                 "
  853.     ::= { snmpNgLpAcEntry 2 }
  854.  
  855. snmpNgLpAcPrivileges OBJECT-TYPE
  856.     SYNTAX      BITS { get(0), getNext(1), getBulk(2),
  857.                        set(3), inform(4), snmpv2Trap(5) }
  858. -- Editor's notes:
  859. --          I think we should remove inform... it is not handled in
  860. --          the LP-M. Inform is application to application.
  861. --          I also have no problem if we were to use SNMPv2*
  862. --          values: nothing(1), readOnly(2), readWrite(3)
  863. --
  864. --          There is also the suggestion to do away with this column
  865. --          all together because the Privileges can be detrmined
  866. --          based on the readView or writeView being non-zero.
  867. -- End Editor's notes.
  868.  
  869.     MAX-ACCESS  read-create
  870.     STATUS      current
  871.     DESCRIPTION "The access privileges authorized by this conceptual
  872.                  row.  Access privileges specify whether received
  873.                  retrieval and modification requests are permitted
  874.                  to be processed, and whether notifications are
  875.                  permitted to be transmitted.
  876.                  A type of request is authorized if and only if the
  877.                  corresponding enumerated bit is set.
  878.                 "
  879.  
  880.  
  881.  
  882. Wijnen/Harrington         Expires September 1977               [Page 15]
  883.  
  884. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  885.  
  886.  
  887.     DEFVAL      { { get, getNext, getBulk } }
  888.     ::= { snmpNgLpAcEntry 3 }
  889.  
  890. snmpNgLpAcReadViewIndex OBJECT-TYPE
  891.     SYNTAX      INTEGER (0..2147483647)
  892.     MAX-ACCESS  read-create
  893.     STATUS      current
  894.     DESCRIPTION "The value of an instance of this object identifies
  895.                  the MIB view of the SNMPng context to which this
  896.                  conceptual row authorizes read access.
  897.                  The identified MIB view is that for which
  898.                  snmpNgLpViewIndex has the same value as the
  899.                  instance of this object; if the value is zero or
  900.                  there is no MIB view having this value of
  901.                  snmpNgLpViewIndex, then no access is granted.
  902.  
  903.                  Otherwise, this object is ignored and can take any
  904.                  value at the Local Processing Module's discretion,
  905.                  e.g., zero.
  906.  
  907.                  Note that read access includes access via retrieval
  908.                  requests as well as transmission of information
  909.                  via notifications (traps).
  910.                 "
  911.     DEFVAL      { 0 }
  912.     ::= { snmpNgLpAcEntry 4 }
  913.  
  914.  
  915. snmpNgLpAcWriteViewIndex OBJECT-TYPE
  916.     SYNTAX      INTEGER (0..2147483647)
  917.     MAX-ACCESS  read-create
  918.     STATUS      current
  919.     DESCRIPTION "The value of an instance of this object identifies
  920.                  the MIB view of the SNMPng context to which this
  921.                  conceptual row authorizes write access.
  922.                  The identified MIB view is that for which
  923.                  snmpNgLpViewIndex has the same value as the
  924.                  instance of this object; if the value is zero or
  925.                  there is no MIB view having this value of
  926.                  snmpNgLpViewIndex, then no access is granted.
  927.  
  928.                  Otherwise, this object is ignored and can take any
  929.                  value at the Local Processing Module's discretion,
  930.                  e.g., zero.
  931.                 "
  932.     DEFVAL      { 0 }
  933.     ::= { snmpNgLpAcEntry 5 }
  934.  
  935. snmpNgLpAcStorageType OBJECT-TYPE
  936.     SYNTAX      StorageType
  937.     MAX-ACCESS  read-create
  938.  
  939.  
  940.  
  941. Wijnen/Harrington         Expires September 1977               [Page 16]
  942.  
  943. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  944.  
  945.  
  946.     STATUS      current
  947.     DESCRIPTION "The storage type for this conceptual row.
  948.                  Conceptual rows having the value 'permanent'
  949.                  need not allow write-access to any columnar
  950.                  objects in the row.
  951.                 "
  952.     DEFVAL      { nonVolatile }
  953.     ::= { snmpNgLpAcEntry 6 }
  954.  
  955. snmpNgLpAcStatus OBJECT-TYPE
  956.     SYNTAX      RowStatus
  957.     MAX-ACCESS  read-create
  958.     STATUS      current
  959.     DESCRIPTION "The status of this conceptual row.
  960.  
  961.                  For those columnar objects which permit write-access,
  962.                  their value in an existing conceptual row can be
  963.                  changed irrespective of the value of snmpNgLpAcStatus
  964.                  for that row.
  965.  
  966. -- Editor's notes:
  967. --          I am planning to remove the following based on discussions
  968. --          in Montreal between Shawn, JeffJohnson and ourselves
  969. --          where they claimed we should just allow for stale entries.
  970. --
  971. --               A conceptual row in this table is not qualified for
  972. --               activation until the context and the group it
  973. --               references are active.  Further, a conceptual row in
  974. --               this table is immediately made notInService whenever
  975. --               the status of the context or the group it references
  976. --               is made notInService, and immediately destroyed
  977. --               whenever the context or the group it references is
  978. --               destroyed.
  979. --
  980. --          There is also a suggestion as follows (DaveL):
  981. --               Why not just have a set of snmpNgLpViewStatus to
  982. --               destroy(6) either:
  983. --               - fail with an inconsistent value error if any
  984. --                 corresponding entries exist in the
  985. --                 snmpNgLpSubtreeFamilyTable, or
  986. --               - result also in deletion of all corresponding entries
  987. --                 in the snmpNgLpSubtreeFamilyTable.
  988. -- End Editor's notes
  989.                 "
  990.     ::= { snmpNgLpAcEntry 7 }
  991.  
  992. -- Information about MIB views ***************************************
  993. -- Support for views having instance-level granularity is optional
  994.  
  995. snmpNgLpViewTable OBJECT-TYPE
  996.     SYNTAX      SEQUENCE OF SnmpNgLpViewEntry
  997.  
  998.  
  999.  
  1000. Wijnen/Harrington         Expires September 1977               [Page 17]
  1001.  
  1002. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1003.  
  1004.  
  1005.     MAX-ACCESS  not-accessible
  1006.     STATUS      current
  1007.     DESCRIPTION "The table of locally defined MIB views.
  1008.  
  1009.                  When an SNMPng entity in the manager role wants to
  1010.                  create a new MIB view, then it must first create
  1011.                  an entry in the snmpNgLpViewTable, using a
  1012.                  non-existing index-value for snmpNgLpViewIndex.
  1013.                  If the creation of such an entry is successfull,
  1014.                  the SNMPng entity in the manager role can then start
  1015.                  creating entries in the snmpNgLpSubtreeFamiliyTable.
  1016.  
  1017.                  When deleting MIB views, it is stronly advised that
  1018.                  first the related snmpNgLpSubtreeFamilityEntries are
  1019.                  deleted from the snmpNgLpSubtreeFamiliyTable and that
  1020.                  only upon completion of that deletion process the
  1021.                  snmpNgLpViewEntry is deleted from the
  1022.                  snmpNgLpViewTable.
  1023.  
  1024.                  Following these procedures there should be no
  1025.                  collisions when multiple managers try to update
  1026.                  the MIB views at an SNMPng entity in an agent role.
  1027.                 "
  1028.     ::= { snmpNgLpMIBObjects 3 }
  1029.  
  1030. snmpNgLpViewEntry OBJECT-TYPE
  1031.     SYNTAX      SnmpNgLpViewEntry
  1032.     MAX-ACCESS  not-accessible
  1033.     STATUS      current
  1034.     DESCRIPTION "Information on a particular local MIB view."
  1035.     INDEX       { snmpNgLpViewIndex }
  1036.     ::= { snmpNgLpViewTable 1 }
  1037.  
  1038. SnmpNgLpViewEntry ::= SEQUENCE
  1039.     {
  1040.         snmpNgLpViewIndex        INTEGER,
  1041.         snmpNgLpViewName         OCTET STRING,
  1042.         snmpNgLpViewStorageType  StorageType,
  1043.         snmpNgLpViewStatus       RowStatus
  1044.     }
  1045.  
  1046. snmpNgLpViewIndex OBJECT-TYPE
  1047.     SYNTAX      INTEGER (1..2147483647)
  1048.     MAX-ACCESS  not-accessible
  1049.     STATUS      current
  1050.     DESCRIPTION "An arbitrary unique value for each MIB view.
  1051.                  Once assigned, the value for each MIB view must
  1052.                  remain constant for as long as that view is defined,
  1053.                  even across re-initializations of the entity's
  1054.                  network management system.
  1055.  
  1056.  
  1057.  
  1058.  
  1059. Wijnen/Harrington         Expires September 1977               [Page 18]
  1060.  
  1061. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1062.  
  1063.  
  1064. -- Editor's notes:
  1065. --          I am not sure I understand why this should stay the
  1066. --          same. As long as the agent ensures that the mapping
  1067. --          between the acTable's use of viewIndex and the indices
  1068. --          in this viewTable are in sync, then it should be OK.
  1069. --          A manager who wants to add entries to the acTable better
  1070. --          checks the views before it actually changes the acTable.
  1071. -- End Editor's notes.
  1072.  
  1073.                  Thus, the value for a nonVolatile, permanent, or
  1074.                  readOnly (see snmpNgLpViewStorageType) MIB view must
  1075.                  either be stored as part of the system's non-volatile
  1076.                  configuration information, or be able to be
  1077.                  re-generated after each re-initialization.
  1078.  
  1079.                  The specific value is meaningful only within a given
  1080.                  SNMPng entity, i.e., it is not meaningful to any
  1081.                  other SNMPng entity except to uniquely identify the
  1082.                  view within the set of all views known to this
  1083.                  SNMPng entity.
  1084.                 "
  1085.     ::= { snmpNgLpViewEntry 1 }
  1086.  
  1087. snmpNgLpViewName OBJECT-TYPE
  1088.     SYNTAX      OCTET STRING (SIZE(0..32))
  1089.     MAX-ACCESS  read-create
  1090.     STATUS      current
  1091.     DESCRIPTION "An arbitrary viewName that may help humans recognize
  1092.                  the various MIB views.
  1093.                 "
  1094.     DEFVAL      { "" }
  1095.     ::= { snmpNgLpViewEntry 2 }
  1096.  
  1097.  
  1098. snmpNgLpViewStorageType OBJECT-TYPE
  1099.     SYNTAX      StorageType
  1100.     MAX-ACCESS  read-create
  1101.     STATUS      current
  1102.     DESCRIPTION "The storage type for this conceptual row.
  1103.                  Conceptual rows having the value 'permanent' need
  1104.                  not allow write-access to any columnar objects in
  1105.                  the row.
  1106.                 "
  1107.     DEFVAL      { nonVolatile }
  1108.     ::= { snmpNgLpViewEntry 3 }
  1109.  
  1110. snmpNgLpViewStatus OBJECT-TYPE
  1111.     SYNTAX      RowStatus
  1112.     MAX-ACCESS  read-create
  1113.     STATUS      current
  1114.     DESCRIPTION "The status of this conceptual row."
  1115.  
  1116.  
  1117.  
  1118. Wijnen/Harrington         Expires September 1977               [Page 19]
  1119.  
  1120. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1121.  
  1122.  
  1123.     ::= { snmpNgLpViewEntry 4 }
  1124.  
  1125. -- Subtree families of MIB views *************************************
  1126.  
  1127. snmpNgLpSubtreeFamilyTable OBJECT-TYPE
  1128.     SYNTAX      SEQUENCE OF SnmpNgLpSubtreeFamilyEntry
  1129.     MAX-ACCESS  not-accessible
  1130.     STATUS      current
  1131.     DESCRIPTION "Locally held information about families of subtrees
  1132.                  within MIB views.
  1133.  
  1134.                  Each MIB view is defined by two collections of view
  1135.                  subtrees: the included view subtrees, and the
  1136.                  excluded view subtrees.
  1137.                  Every such subtree, both included and excluded,
  1138.                  is defined in this table.
  1139.  
  1140.                  To determine if a particular object instance is in
  1141.                  a particular MIB view, compare the object instance's
  1142.                  OBJECT IDENTIFIER with each of the MIB view's active
  1143.                  entries in this table.  If none match, then the
  1144.                  object instance is not in the MIB view.  If one or
  1145.                  more match, then the object instance is included in,
  1146.                  or excluded from, the MIB view according to the
  1147.                  value of snmpNgLpSubtreeFamilyType in the entry
  1148.                  whose value of snmpNgLpSubtreeFamilySubtree has the
  1149.                  most sub-identifiers.  If multiple entries match
  1150.                  and have the same number of sub-identifiers, then
  1151.                  the lexicographically greatest instance of
  1152.                  snmpNgLpSubtreeFamilyType determines the inclusion
  1153.                  or exclusion.
  1154.  
  1155.                  An object instance's OBJECT IDENTIFIER X matches an
  1156.                  active entry in this table when the number of
  1157.                  sub-identifiers in X is at least as many as in the
  1158.                  value of snmpNgLpSubtreeFamilySubtree for the entry,
  1159.                  and each sub-identifier in the value of
  1160.                  snmpNgLpSubtreeFamilySubtree matches its
  1161.                  corresponding sub-identifier in X.
  1162.                  Two sub-identifiers match either if the
  1163.                  corresponding bit of snmpNgLpSubtreeFamilyMask is
  1164.                  zero (the 'wild card' value), or if they are equal.
  1165.  
  1166.                  A 'family' of view subtrees is the set of subtrees
  1167.                  defined by a particular combination of values of
  1168.                  snmpNgLpSubtreeFamilySubtree and
  1169.                  snmpNgLpSubtreeFamilyMask.
  1170.                  In the case where no 'wild card' is defined in
  1171.                  snmpNgLpSubtreeFamilyMask, the family of view
  1172.                  subtrees reduces to a single view subtree.
  1173.  
  1174.  
  1175.  
  1176.  
  1177. Wijnen/Harrington         Expires September 1977               [Page 20]
  1178.  
  1179. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1180.  
  1181.  
  1182.                  When an SNMPng entity in the manager role wants to
  1183.                  create a new MIB view, then it must first create
  1184.                  an entry in the snmpNgLpViewTable, using a
  1185.                  non-existing index-value for snmpNgLpViewIndex.
  1186.                  If the creation of such an entry is successfull,
  1187.                  the SNMPng entity in the manager role can then start
  1188.                  creating entries in the snmpNgLpSubtreeFamiliyTable.
  1189.  
  1190.                  When deleting MIB views, it is stronly advised that
  1191.                  first the related snmpNgLpSubtreeFamilityEntries are
  1192.                  deleted from the snmpNgLpSubtreeFamiliyTable and that
  1193.                  only upon completion of that deletion process the
  1194.                  snmpNgLpViewEntry is deleted from the
  1195.                  snmpNgLpViewTable.
  1196.  
  1197.                  Following these procedures there should be no
  1198.                  collisions when multiple managers try to update
  1199.                  the MIB views at an SNMPng entity in an agent role.
  1200.  
  1201.                 "
  1202.     ::= { snmpNgLpMIBObjects 4 }
  1203.  
  1204. snmpNgLpSubtreeFamilyEntry OBJECT-TYPE
  1205.     SYNTAX      SnmpNgLpSubtreeFamilyEntry
  1206.     MAX-ACCESS  not-accessible
  1207.     STATUS      current
  1208.     DESCRIPTION "Information on a particular family of view subtrees
  1209.                  included in or excluded from a particular SNMPng
  1210.                  context's MIB view.  The MIB view must exist
  1211.                  (i.e., be represented by a conceptual row in the
  1212.                  snmpNgLpViewTable) before any subtree families can
  1213.                  be defined for it.
  1214.  
  1215.                  Implementations must not restrict the number of
  1216.                  families of view subtrees for a given MIB view,
  1217.                  except as dictated by resource constraints on the
  1218.                  overall number of entries in the
  1219.                  snmpNgLpSubtreeFamilyTable.
  1220.  
  1221.                  The value of snmpNgLpViewIndex in this INDEX clause
  1222.                  of this table identifies the MIB view in which this
  1223.                  subtree family exists.
  1224.  
  1225.                  A MIB view for which there are no conceptual rows
  1226.                  in this table is the empty set of view subtrees.
  1227.                 "
  1228.     INDEX       { snmpNgLpViewIndex,
  1229.                   IMPLIED snmpNgLpSubtreeFamilySubtree
  1230.                 }
  1231.     ::= { snmpNgLpSubtreeFamilyTable 1 }
  1232.  
  1233.  
  1234.  
  1235.  
  1236. Wijnen/Harrington         Expires September 1977               [Page 21]
  1237.  
  1238. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1239.  
  1240.  
  1241. SnmpNgLpSubtreeFamilyEntry ::= SEQUENCE
  1242.     {
  1243.         snmpNgLpSubtreeFamilySubtree      OBJECT IDENTIFIER,
  1244.         snmpNgLpSubtreeFamilyMask         OCTET STRING,
  1245.         snmpNgLpSubtreeFamilyType         INTEGER,
  1246.         snmpNgLpSubtreeFamilyStorageType  StorageType,
  1247.         snmpNgLpSubtreeFamilyStatus       RowStatus
  1248.     }
  1249.  
  1250. snmpNgLpSubtreeFamilySubtree OBJECT-TYPE
  1251.     SYNTAX      OBJECT IDENTIFIER
  1252.     MAX-ACCESS  not-accessible
  1253.     STATUS      current
  1254.     DESCRIPTION "The MIB subtree which when combined with the
  1255.                  corresponding instance of snmpNgLpSubtreeFamilyMask
  1256.                  defines a family of view subtrees.
  1257.                 "
  1258.     ::= { snmpNgLpSubtreeFamilyEntry 1 }
  1259.  
  1260. snmpNgLpSubtreeFamilyMask OBJECT-TYPE
  1261.     SYNTAX      OCTET STRING (SIZE (0..16))
  1262.     MAX-ACCESS  read-create
  1263.     STATUS      current
  1264.     DESCRIPTION "The bit mask which,
  1265.                  in combination with the corresponding instance of
  1266.                  snmpNgLpSubtreeFamilySubtree, defines a family of
  1267.                  view subtrees.
  1268.  
  1269.                  Each bit of this bit mask corresponds to a
  1270.                  sub-identifier of snmpNgLpSubtreeFamilySubtree,
  1271.                  with the most significant bit of the i-th octet
  1272.                  of this octet string value (extended if necessary,
  1273.                  see below) corresponding to the (8*i - 7)-th
  1274.                  sub-identifier, and the least significant bit of
  1275.                  the i-th octet of this octet string corresponding
  1276.                  to the (8*i)-th sub-identifier, where i is in the
  1277.                  range 1 through 16.
  1278.  
  1279.                  Each bit of this bit mask specifies whether or not
  1280.                  the corresponding sub-identifiers must match when
  1281.                  determining if an OBJECT IDENTIFIER is in this
  1282.                  family of view subtrees; a '1' indicates that an
  1283.                  exact match must occur; a '0' indicates 'wild card',
  1284.                  i.e., any sub-identifier value matches.
  1285.  
  1286.                  Thus, the OBJECT IDENTIFIER X of an object instance
  1287.                  is contained in a family of view subtrees if, for
  1288.                  each sub-identifier of the value of
  1289.                  snmpNgLpSubtreeFamilySubtree, either:
  1290.  
  1291.                    the i-th bit of snmpNgLpSubtreeFamilyMask is 0, or
  1292.  
  1293.  
  1294.  
  1295. Wijnen/Harrington         Expires September 1977               [Page 22]
  1296.  
  1297. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1298.  
  1299.  
  1300.  
  1301.                    the i-th sub-identifier of X is equal to the
  1302.                    i-th sub-identifier of the value of
  1303.                    snmpNgLpSubtreeFamilySubtree.
  1304.  
  1305.                  If the value of this bit mask is M bits long
  1306.                  and there are more than M sub-identifiers in
  1307.                  the corresponding instance of
  1308.                  snmpNgLpSubtreeFamilySubtree, then the bit mask
  1309.                  is extended with 1's to be the required length.
  1310.  
  1311.                  Note that when the value of this object is the
  1312.                  zero-length string, this extension rule results in
  1313.                  a mask of all-1's being used (i.e., no 'wild card'),
  1314.                  and the family of view subtrees is the one view
  1315.                  subtree uniquely identified by the corresponding
  1316.                  instance of snmpNgLpSubtreeFamilySubtree.
  1317.                 "
  1318.     DEFVAL      { ''H }
  1319.     ::= { snmpNgLpSubtreeFamilyEntry 2 }
  1320.  
  1321. snmpNgLpSubtreeFamilyType OBJECT-TYPE
  1322.     SYNTAX      INTEGER  { included(1), excluded(2) }
  1323.     MAX-ACCESS  read-create
  1324.     STATUS      current
  1325.     DESCRIPTION "The indication of whether the corresponding instances
  1326.                  of snmpNgLpSubtreeFamilySubtree and
  1327.                  snmpNgLpSubtreeFamilyMask define a family of view
  1328.                  subtrees which is included in or excluded from the
  1329.                  MIB view.
  1330.                 "
  1331.     DEFVAL      { included }
  1332.     ::= { snmpNgLpSubtreeFamilyEntry 3 }
  1333.  
  1334. snmpNgLpSubtreeFamilyStorageType OBJECT-TYPE
  1335.     SYNTAX      StorageType
  1336.     MAX-ACCESS  read-create
  1337.     STATUS      current
  1338.     DESCRIPTION "The storage type for this conceptual row.
  1339.                  Conceptual rows having the value 'permanent' need
  1340.                  not allow write-access to any columnar objects in
  1341.                  the row.
  1342.  
  1343. -- Editor's notes:
  1344. --         There is the suggestion from DaveL to let these rows
  1345. --         inherit the StorageType from the corresponding entries
  1346. --         in the viewTable as the default StorageType.
  1347. -- End Editor's notes:
  1348.                 "
  1349.     DEFVAL      { nonVolatile }
  1350.     ::= { snmpNgLpSubtreeFamilyEntry 4 }
  1351.  
  1352.  
  1353.  
  1354. Wijnen/Harrington         Expires September 1977               [Page 23]
  1355.  
  1356. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1357.  
  1358.  
  1359.  
  1360. snmpNgLpSubtreeFamilyStatus OBJECT-TYPE
  1361.     SYNTAX      RowStatus
  1362.     MAX-ACCESS  read-create
  1363.     STATUS      current
  1364.     DESCRIPTION "The status of this conceptual row.
  1365.  
  1366.                  For those columnar objects which permit write-access,
  1367.                  their value in an existing conceptual row can be
  1368.                  changed irrespective of the value of
  1369.                  snmpNgLpSubtreeFamilyStatus for that row.
  1370.  
  1371.                  A conceptual row in this table is not qualified for
  1372.                  activation until the MIB view it references is active.
  1373.                  Further, a conceptual row in this table is
  1374.                  immediately made notInService whenever the status of
  1375.                  the view it references is made notInService,
  1376.                  and immediately destroyed whenever the
  1377.                  view it references is destroyed.
  1378.                 "
  1379.     ::= { snmpNgLpSubtreeFamilyEntry 4 }
  1380.  
  1381. -- Information about TRAP destinations *******************************
  1382.  
  1383. snmpNgLpTrapDestTable OBJECT-TYPE
  1384.     SYNTAX      SEQUENCE OF SnmpNgLpTrapDestEntry
  1385.     MAX-ACCESS  not-accessible
  1386.     STATUS      current
  1387.     DESCRIPTION "The transport addresses to which notifications
  1388.                  (traps) are to be sent on behalf of specific
  1389.                  SNMPng groups.
  1390.                 "
  1391.     ::= { snmpNgLpMIBObjects 5 }
  1392.  
  1393. snmpNgLpTrapDestEntry OBJECT-TYPE
  1394.     SYNTAX      SnmpNgLpTrapDestEntry
  1395.     MAX-ACCESS  not-accessible
  1396.     STATUS      current
  1397.     DESCRIPTION "A transport address to which notifications (traps)
  1398.                  are to be sent on behalf of a specific SNMPng group
  1399.                 "
  1400.     INDEX       { snmpNgLpTrapDestTDomain,
  1401.                   IMPLIED snmpNgLpTrapDestTAddress
  1402.                 }
  1403.     ::= { snmpNgLpTrapDestTable 1 }
  1404.  
  1405. SnmpNgLpTrapDestEntry ::= SEQUENCE
  1406.     {
  1407.         snmpNgLpTrapDestTDomain          TDomain,
  1408.         snmpNgLpTrapDestTAddress         TAddress,
  1409.         snmpNgLpTrapDestQos              SnmpNgQos,
  1410.  
  1411.  
  1412.  
  1413. Wijnen/Harrington         Expires September 1977               [Page 24]
  1414.  
  1415. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1416.  
  1417.  
  1418.         snmpNgLpTrapDestGroupName        SnmpGroupName,
  1419.         snmpNgLpTrapDestSecModel         SnmpNgSecurityModel,
  1420.         snmpNgLpTrapDestStorageType      StorageType,
  1421.         snmpNgLpTrapDestStatus           RowStatus
  1422.     }
  1423.  
  1424. snmpNgLpTrapDestTDomain OBJECT-TYPE
  1425.     SYNTAX      TDomain
  1426.     MAX-ACCESS  not-accessible
  1427.     STATUS      current
  1428.     DESCRIPTION "Indicates the kind of transport service for this
  1429.                  transport address.
  1430.                 "
  1431.     DEFAULT     { snmpUDPDomain }
  1432.     ::= { snmpNgLpTrapDestAddressEntry 1 }
  1433.  
  1434.  
  1435. snmpNgLpTrapDestTAddress OBJECT-TYPE
  1436.     SYNTAX      TAddress
  1437.     MAX-ACCESS  not-accessible
  1438.     STATUS      current
  1439.     DESCRIPTION "The transport service address.
  1440.  
  1441.                  The address is formatted according to the
  1442.                  corresponding value of snmpNgLpTrapDestTDomain.
  1443.  
  1444.                  For example, for the transport domain corresponding
  1445.                  to the snmpUDPDomain, transportAddress is formatted
  1446.                  as a 4-octet IP Address concatenated with a 2-octet
  1447.                  UDP port number.
  1448.  
  1449.                  See [RFC1906] for more information on transport
  1450.                  domains and how their corresponding addresses are
  1451.                  formatted.
  1452.                 "
  1453.     ::= { snmpNgLpTrapDestEntry 2 }
  1454.  
  1455. snmpNgLpTrapDestQos    OBJECT-TYPE
  1456.     SYNTAX      SnmpNgQos
  1457.     MAX-ACCESS  read-create
  1458.     STATUS      current
  1459.     DESCRIPTION "The Qos to use when sending a notification (trap)
  1460.                  to this destination.
  1461.                 "
  1462.     DEFVAL      { 2 }   -- auth
  1463.     ::= { snmpNgLpTrapDestEntry 4 }
  1464.  
  1465. snmpNgLpTrapDestGroupName OBJECT-TYPE
  1466.     SYNTAX      SnmpNgGroupName
  1467.     MAX-ACCESS  read-create
  1468.     STATUS      current
  1469.  
  1470.  
  1471.  
  1472. Wijnen/Harrington         Expires September 1977               [Page 25]
  1473.  
  1474. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1475.  
  1476.  
  1477.     DESCRIPTION "The group name to use when applying access control
  1478.                  to the management information contained in the
  1479.                  notification (trap) to be sent.
  1480.                 "
  1481.     ::= { snmpNgLpTrapDestEntry 5 }
  1482.  
  1483. snmpNgLpTrapDestSecModel OBJECT-TYPE
  1484.     SYNTAX      SnmpNgSecurityModel
  1485.     MAX-ACCESS  read-create
  1486.     STATUS      current
  1487.     DESCRIPTION "The Security Model to use when applying security
  1488.                  measures to the SNMP message before sending it
  1489.                  to this destination.
  1490.                 "
  1491.     ::= { snmpNgLpTrapDestEntry 6 }
  1492.  
  1493. snmpNgLpTrapDestStorageType OBJECT-TYPE
  1494.     SYNTAX      StorageType
  1495.     MAX-ACCESS  read-create
  1496.     STATUS      current
  1497.     DESCRIPTION "The storage type for this conceptual row.
  1498.                  Conceptual rows having the value 'permanent' need
  1499.                  not allow write-access to any columnar objects in
  1500.                  the row.
  1501.                 "
  1502.     DEFVAL      { nonVolatile }
  1503.     ::= { snmpNgLpTrapDestEntry 7 }
  1504.  
  1505. snmpNgLpTrapDestStatus OBJECT-TYPE
  1506.     SYNTAX      RowStatus
  1507.     MAX-ACCESS  read-create
  1508.     STATUS      current
  1509.     DESCRIPTION "The status of this conceptual row."
  1510.     ::= { snmpNgLpTrapDestEntry 8 }
  1511.  
  1512. -- Conformance information *******************************************
  1513. snmpNgLpMIBCompliances
  1514.                OBJECT IDENTIFIER ::= { snmpNgLpMIBConformance 1 }
  1515. snmpNgLpMIBGroups
  1516.                OBJECT IDENTIFIER ::= { snmpNgLpMIBConformance 2 }
  1517.  
  1518. -- Compliance statements *********************************************
  1519.  
  1520. snmpNgLpMIBCompliance MODULE-COMPLIANCE
  1521.     STATUS  current
  1522.     DESCRIPTION
  1523.            "The compliance statement for SNMPng entities which
  1524.             implement the SNMPng LP-M remote configuration MIB.
  1525.            "
  1526.     MODULE -- this module
  1527.         MANDATORY-GROUPS { snmpNgLpBasicGroup }
  1528.  
  1529.  
  1530.  
  1531. Wijnen/Harrington         Expires September 1977               [Page 26]
  1532.  
  1533. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1534.  
  1535.  
  1536.  
  1537.         OBJECT        snmpNgLpViewStorageType
  1538.         MIN-ACCESS    read-only
  1539.         DESCRIPTION  "Write access is not required."
  1540.  
  1541.         OBJECT        snmpNgLpViewStatus
  1542.         MIN-ACCESS    read-only
  1543.         DESCRIPTION  "Create access to the snmpNgLpViewTable
  1544.                       is not required.
  1545.                      "
  1546.  
  1547.         OBJECT        snmpNgLpSubtreeFamilyMask
  1548.         WRITE-SYNTAX  OCTET STRING (SIZE (0))
  1549.         MIN-ACCESS    read-only
  1550.         DESCRIPTION  "Support for configuration via SNMPng of
  1551.                       subtree families defined using wild-cards
  1552.                       is not required.
  1553.                      "
  1554.  
  1555.         OBJECT        snmpNgLpSubtreeFamilyStorageType
  1556.         MIN-ACCESS    read-only
  1557.         DESCRIPTION  "Write access is not required."
  1558.  
  1559.         OBJECT        snmpNgLpSubtreeFamilyStatus
  1560.         MIN-ACCESS    read-only
  1561.         DESCRIPTION  "Create access to the snmpNgLpSubtreeFamilyTable
  1562.                       is not required.
  1563.                      "
  1564.     ::= { snmpNgLpMIBCompliances 1 }
  1565.  
  1566. -- Units of conformance **********************************************
  1567.  
  1568. snmpNgLpBasicGroup OBJECT-GROUP
  1569.     OBJECTS { snmpNgLpContextStatus,
  1570.               snmpNgLpAcPrivileges,
  1571.               snmpNgLpAcReadViewIndex,
  1572.               snmpNgLpAcWriteViewIndex,
  1573.               snmpNgLpAcStorageType,
  1574.               snmpNgLpAcStatus,
  1575.               snmpNgLpViewStorageType,
  1576.               snmpNgLpViewStatus,
  1577.               snmpNgLpSubtreeFamilyMask,
  1578.               snmpNgLpSubtreeFamilyType,
  1579.               snmpNgLpSubtreeFamilyStorageType,  -- length 32 !!
  1580.               snmpNgLpSubtreeFamilyStatus,
  1581.               snmpNgLpTrapDestQos,
  1582.               snmpNgLpTrapDestGroupName,
  1583.               snmpNgLpTrapDestSecModel,
  1584.               snmpNgLpTrapDestStorageType,
  1585.               snmpNgLpTrapDestStatus
  1586.             }
  1587.  
  1588.  
  1589.  
  1590. Wijnen/Harrington         Expires September 1977               [Page 27]
  1591.  
  1592. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1593.  
  1594.  
  1595.     STATUS  current
  1596.     DESCRIPTION
  1597.            "A collection of objects providing for remote
  1598.             configuration of an SNMPng entity which implements
  1599.             the SNMPng Local Processing Model (LP-M).
  1600.            "
  1601.     ::= { snmpNgLpMIBGroups 1 }
  1602.  
  1603. END
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649. Wijnen/Harrington         Expires September 1977               [Page 28]
  1650.  
  1651. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1652.  
  1653.  
  1654. 5.  Security Considerations
  1655.  
  1656. 5.1  Recommended Practices
  1657.  
  1658. This document is part of the SNMPng Architectural Model. The
  1659. Local Processing Model (LP-M) described in this document controls
  1660. access rights to management information based on:
  1661.  
  1662.    - contextName, representing a set of management information
  1663.      at the managed system where the Local Processing Implenetation
  1664.      (LP-I) is running.
  1665.    - groupName, representing a group or set of zero, one or more
  1666.      security entities. These security entities are mapped into
  1667.      one or more groups in the SNMPng Securty Framework Model
  1668.      (SF-M).
  1669.    - Qos used for the transmission of a SNMP message.
  1670.  
  1671. When the LP-I is called for processing a Scoped-PDU, it is assumed
  1672. that the Message Processing and Control Implementation (MPC-I)
  1673. has ensured the authentication and privacy aspects as specified
  1674. by the Quality of service (Qos) that is being passed.
  1675.  
  1676. 5.2  Defining Groups
  1677.  
  1678. GroupNames are used to give access to a group of zero, one or more
  1679. security entities. Within the LPM, a Groupname is considered to
  1680. exist if that groupName is used (as an index) in a row in the
  1681. snmpNgLpAcTable.
  1682. By mapping a security entity into a group, a SF-M for SNMPng can
  1683. add/delete entities to a group.
  1684.  
  1685. 5.3  Conformance
  1686.  
  1687. Conformance rules are described in the Architectural Model for SNMPng.
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708. Wijnen/Harrington         Expires September 1977               [Page 29]
  1709.  
  1710. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1711.  
  1712.  
  1713. 6.  Editor's Addresses
  1714.  
  1715.    Co-editor:  Bert Wijnen
  1716.                IBM T.J. Watson Research
  1717.    postal:     Schagen 33
  1718.                3461 GL Linschoten
  1719.                Netherlands
  1720.    email:      wijnen@vnet.ibm.com
  1721.    phone:      +31-348-412-498
  1722.  
  1723.    Co-editor   Dave Harrington
  1724.                Cabletron Systems, Inc
  1725.    postal:     Post Office Box 5005
  1726.                MailStop: Durham
  1727.                35 Industrial Way
  1728.                Rochester NH 03867-5005
  1729.    email:      dbh@cabletron.com
  1730.    phone:      603-337-7357
  1731.  
  1732.  
  1733. 7.  Acknowledgements
  1734.  
  1735. This document describes the work of the SNMP Security and
  1736. Administrative Framework Evolution team, comprised of
  1737.  
  1738.     David Harrington (Cabletron Systems Inc.)
  1739.     Jeff Johnson (Cisco)
  1740.     David Levi (SNMP Research Inc.)
  1741.     John Linn (Openvision)
  1742.     Russ Mundy (Trusted Information Systems) chair
  1743.     Shawn Routhier (Epilogue)
  1744.     Glenn Waters (Nortel)
  1745.     Bert Wijnen (IBM T.J. Watson Research)
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767. Wijnen/Harrington         Expires September 1977               [Page 30]
  1768.  
  1769. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1770.  
  1771.  
  1772. 8.  References
  1773.  
  1774. [RFC1902] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1775.      Rose, M., and S., Waldbusser, "Structure of Management
  1776.      Information for Version  2 of the Simple Network Management
  1777.      Protocol (SNMPv2)", RFC 1905, January 1996.
  1778.  
  1779. [RFC1905] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1780.      Rose, M., and S., Waldbusser, "Protocol Operations for
  1781.      Version 2 of the Simple Network Management Protocol (SNMPv2)",
  1782.      RFC 1905, January 1996.
  1783.  
  1784. [RFC1906] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1785.      Rose, M., and S. Waldbusser, "Transport Mappings for
  1786.      Version 2 of the Simple Network Management Protocol (SNMPv2)",
  1787.      RFC 1906, January 1996.
  1788.  
  1789. [RFC1907] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1790.      Rose, M., and S. Waldbusser, "Management Information Base for
  1791.      Version 2 of the Simple Network Management Protocol (SNMPv2)",
  1792.      RFC 1907 January 1996.
  1793.  
  1794. [RFC1908] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1795.      Rose, M., and S. Waldbusser, "Coexistence between Version 1
  1796.      and Version 2 of the Internet-standard Network Management
  1797.      Framework", RFC 1908, January 1996.
  1798.  
  1799. [SNMPng-ARCH] The SNMPng Working Group, Harrington, D., Wijnen, B.,
  1800.      "Architectural Model for the Next Generation Simple Network
  1801.      Managememt Protocol (SNMPng)", draft-ietf-snmpv3-arch-00.txt,
  1802.      March 1997.
  1803.  
  1804. [SNMPng-LPM] The SNMPng Working Group, Wijnen, B., Harrington, D.,
  1805.      "Local Processing Model for the Next Generation Simple Network
  1806.      Management Protocol (SNMPng)", draft-ietf-snmpv3-lpm-00.txt,
  1807.      March 1997.
  1808.  
  1809. [SNMPng-USEC] To be written
  1810.               The SNMPng Working Group, Editors...Names,
  1811.      "The User-Based Security Model for the Next Generation Simple
  1812.      Network Managememt Protocol (SNMPng)",
  1813.      draft-ietf-snmpv3-usec-00.txt, April 1997.
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826. Wijnen/Harrington         Expires September 1977               [Page 31]
  1827.  
  1828. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1829.  
  1830.  
  1831. APPENDIX A - Installation
  1832.  
  1833. Editor's notes:
  1834.          portions of the following still need to be moved to
  1835.          the appropriate documents. I am just listing them here
  1836.          so that we have one place where we can see what is
  1837.          needed.
  1838. End Editor's notes.
  1839.  
  1840. A.1.   Agent Installation Parameters
  1841.  
  1842. During installation, an SNMPng entity acting in an agent role is
  1843. configured with several parameters.  These include:
  1844.  
  1845. (1) a security posture (todo in SNMPng-MPC)
  1846.  
  1847.     The choice of security posture determines the extent of the view
  1848.     configured for unauthenticated access.  One of three possible
  1849.     choices is selected:
  1850.  
  1851.           minimum-secure,
  1852.           semi-secure, or
  1853.           very-secure.
  1854.  
  1855. (2) one or more transport service addresses (todo in SNMPng-MPC)
  1856.  
  1857.     These parameters may be specified explicitly, or they may be
  1858.     specified implicitly as the same set of network-layer addresses
  1859.     configured for other uses by the device together with the well-
  1860.     known transport-layer "port" information for the appropriate
  1861.     transport domain [RFC1906].  The agent listens on each of these
  1862.     transport service addresses for messages.
  1863.  
  1864. (3) one or more secrets (todo in SNMPng-USEC)
  1865.  
  1866.     These are the authentication/privacy secrets for the first user
  1867.     to be configured.
  1868.  
  1869.     One way to accomplish this is to have the installer enter a
  1870.     "password" for each required secret. The password is then
  1871.     algorithmically converted into the required secret by:
  1872.  
  1873.     - forming a string of length 1,048,576 octets by repeating the
  1874.       value of the password as often as necessary, truncating
  1875.       accordingly, and using the resulting string as the input to
  1876.       the MD5 algorithm.  The resulting digest, termed "digest1",
  1877.       is used in the next step.
  1878.  
  1879.     - a second string of length 44 octets is formed by concatenating
  1880.       digest1, the SNMPng engine's snmpNgEngineID value, and digest1.
  1881.       This string is used as input to the MD5 algorithm.
  1882.  
  1883.  
  1884.  
  1885. Wijnen/Harrington         Expires September 1977               [Page 32]
  1886.  
  1887. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1888.  
  1889.  
  1890.       The resulting digest is the required secret (see Appendix A.2).
  1891.  
  1892.     With these configured parameters, the SNMPng entity instantiates
  1893.     the following snmpNgUsecUserEntry,
  1894.  
  1895.                                 no privacy support  privacy support
  1896.                                 ------------------  ---------------
  1897.       snmpNgUsecEngineID        localEngineID       localEngineID
  1898.       snmpNgUsecUserName        "public"            "public"
  1899.       snmpNgUsecGroupName       "public"            "public"
  1900.       snmpNgUsecAuthProto       snmpMD5Protocol     snmpMD5Protocol
  1901.       snmpNgUsecPrivProto       none                snmpDESProtocol
  1902.       snmpNgUserSecurityCookie  ""                  ""
  1903.  
  1904.  
  1905. (4) The SNMPng LP-M the SNMPng entity in an agent role must
  1906.     instantiate the following views and access rights.  This
  1907.     configuration information should be readOnly (persistent).
  1908.  
  1909.     -  One context with its <contextName> as the empty-string "".
  1910.        This represents the default context.
  1911.  
  1912.     -  One view (the <all> view) for authenticated access:
  1913.  
  1914.        - the <all> MIB view is the following subtree:
  1915.               "internet"        [RFC1902]
  1916.  
  1917.     -  A second view (the <restricted> view) for unauthenticated
  1918.        access.  This view is configured according to the selected
  1919.        security posture:
  1920.  
  1921.        -  For the "very-secure" posture:
  1922.  
  1923.           the <restricted> MIB view is the union of these subtrees:
  1924.               "snmp"            [RFC1907]
  1925.               "snmpNgStats"     [SNMPng-ARCH]
  1926.               "snmpNgUsecStats" [SNMPng-USEC]
  1927.  
  1928.        -  For the "semi-secure" posture:
  1929.  
  1930.           the <restricted> MIB view is the union of these subtrees:
  1931.               "snmp"            [RFC1907]
  1932.               "snmpNgStats"     [SNMPng-ARCH]
  1933.               "snmpNgUsecStats" [SNMPng-USEC]
  1934.               "system"          [RFC1902]
  1935.  
  1936.        -  For the "minimum-secure" posture:
  1937.  
  1938.           the <restricted> MIB view is the following subtree.
  1939.               "internet"        [RFC1902]
  1940.  
  1941.  
  1942.  
  1943.  
  1944. Wijnen/Harrington         Expires September 1977               [Page 33]
  1945.  
  1946. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  1947.  
  1948.  
  1949.     -  Access rights to allow:
  1950.  
  1951.        - read-only access for Qos "noAuth" on behalf of security
  1952.          entities that belong to the group "public" to the
  1953.          <restricted> MIB view in the context with contextName "".
  1954.  
  1955.        - read-write access for Qos "auth" on behalf of security
  1956.          entities that belong to the group "public" to the
  1957.          <all> MIB view in the context with contextName "".
  1958.  
  1959.        - if privacy is supported,
  1960.          read-write access for Qos "auth" on behalf of security
  1961.          entities that belong to the group "public" to the
  1962.          <all> MIB view in the context with contextName "".
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003. Wijnen/Harrington         Expires September 1977               [Page 34]
  2004.  
  2005. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  2006.  
  2007.  
  2008. A.2.   Password to Key Algorithm
  2009.  
  2010. Editor's Notes:
  2011.     The following goes into SNMPng-USEC doc.
  2012. End Editor's notes.
  2013.  
  2014. The following code fragment demonstrates the password to key
  2015. algorithm which can be used when mapping a password to an
  2016. authentication or privacy key. The calls to MD5 are as
  2017. documented in RFC1321 [RFC1321]
  2018.  
  2019. void password_to_key(
  2020.    u_char *password,    /* IN */
  2021.    u_int   passwordlen, /* IN */
  2022.    u_char *agentID,     /* IN  - ptr to 12 octet long snmpEngineID  */
  2023.    u_char *key)         /* OUT - caller's pointer to 16-byte buffer */
  2024. {
  2025.    MD5_CTX     MD;
  2026.    u_char     *cp, password_buf[64];
  2027.    u_long      password_index = 0;
  2028.    u_long      count = 0, i;
  2029.  
  2030.    MD5Init (&MD);   /* initialize MD5 */
  2031.  
  2032.    /**********************************************/
  2033.    /* Use while loop until we've done 1 Megabyte */
  2034.    /**********************************************/
  2035.    while (count < 1048576) {
  2036.       cp = password_buf;
  2037.       for (i = 0; i < 64; i++) {
  2038.           /*************************************************/
  2039.           /* Take the next byte of the password, wrapping  */
  2040.           /* to the beginning of the password as necessary.*/
  2041.           /*************************************************/
  2042.           *cp++ = password[password_index++ % passwordlen];
  2043.       }
  2044.       MDupdate (&MD, password_buf, 64);
  2045.       count += 64;
  2046.    }
  2047.    MD5Final (key, &MD);          /* tell MD5 we're done */
  2048.  
  2049.    /*****************************************************/
  2050.    /* Now localize the key with the agentID and pass    */
  2051.    /* through MD5 to produce final key                  */
  2052.    /*****************************************************/
  2053.    memcpy(password_buf, key, 16);
  2054.    memcpy(password_buf+16, agentID, 12);
  2055.    memcpy(password_buf+28, key, 16);
  2056.  
  2057.    MD5Init(&MD);
  2058.    MDupdate(&MD, password_buf, 44);
  2059.  
  2060.  
  2061.  
  2062. Wijnen/Harrington         Expires September 1977               [Page 35]
  2063.  
  2064. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  2065.  
  2066.  
  2067.    MD5Final(key, &MD);
  2068.  
  2069.    return;
  2070. }
  2071.  
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.  
  2120.  
  2121. Wijnen/Harrington         Expires September 1977               [Page 36]
  2122.  
  2123. Draft          Local Processing Model (LPM) for SNMPng        March 1997
  2124.  
  2125.  
  2126. Table of Contents
  2127.  
  2128. 0.  Change Log                                                         2
  2129. 1.  Introduction                                                       3
  2130. 1.1  Terminology                                                       3
  2131. 1.2  Local Processing                                                  3
  2132. 1.3  Local Configuration Datastore                                     4
  2133. 2.  Elements of the Model                                              5
  2134. 2.1  SNMPng Group                                                      5
  2135. 2.2  SNMPng Quality of Service (Qos)                                   5
  2136. 2.3  Contexts                                                          5
  2137. 2.4  SNMPng Scoped-PDU                                                 6
  2138. 2.5  Access Policy                                                     7
  2139. 2.6.  Error Reporting                                                  7
  2140. 3.  Elements of Procedure                                              8
  2141. 3.1  Processing a Received Scoped-PDU                                  8
  2142. 3.2  Generating a Notification                                        10
  2143. 4.  Definitions                                                       12
  2144. 5.  Security Considerations                                           29
  2145. 5.1  Recommended Practices                                            29
  2146. 5.2  Defining Groups                                                  29
  2147. 5.3  Conformance                                                      29
  2148. 6.  Editor's Addresses                                                30
  2149. 7.  Acknowledgements                                                  30
  2150. 8.  References                                                        31
  2151. A.1.   Agent Installation Parameters                                  32
  2152. A.2.   Password to Key Algorithm                                      35
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182. Wijnen/Harrington         Expires September 1977               [Page 37]
  2183.