home *** CD-ROM | disk | FTP | other *** search
/ Thomson (Residential) / TGSTPv7203.iso / mac / SNMP_MIBs / snmpv3 / SNMP-VIEW-BASED-ACM-MIB.mib < prev    next >
Text File  |  2008-02-08  |  35KB  |  860 lines

  1. -- file: SNMP-VIEW-BASED-ACM-MIB.my
  2. -- Extracted from RFC3415 by MG-SOFT Corp.
  3. -- Changes:
  4. --      No changes needed.
  5. -- http://www.mg-soft.com/
  6.  
  7. SNMP-VIEW-BASED-ACM-MIB DEFINITIONS ::= BEGIN
  8.  
  9. IMPORTS
  10.     MODULE-COMPLIANCE, OBJECT-GROUP       FROM SNMPv2-CONF
  11.     MODULE-IDENTITY, OBJECT-TYPE,
  12.     snmpModules                           FROM SNMPv2-SMI
  13.     TestAndIncr,
  14.     RowStatus, StorageType                FROM SNMPv2-TC
  15.     SnmpAdminString,
  16.     SnmpSecurityLevel,
  17.     SnmpSecurityModel                     FROM SNMP-FRAMEWORK-MIB;
  18.  
  19. snmpVacmMIB       MODULE-IDENTITY
  20.     LAST-UPDATED "200210160000Z"          -- 16 Oct 2002, midnight
  21.     ORGANIZATION "SNMPv3 Working Group"
  22.     CONTACT-INFO "WG-email:   snmpv3@lists.tislabs.com
  23.                   Subscribe:  majordomo@lists.tislabs.com
  24.                               In message body:  subscribe snmpv3
  25.  
  26.                   Co-Chair:   Russ Mundy
  27.                               Network Associates Laboratories
  28.                   postal:     15204 Omega Drive, Suite 300
  29.                               Rockville, MD 20850-4601
  30.                               USA
  31.                   email:      mundy@tislabs.com
  32.                   phone:      +1 301-947-7107
  33.  
  34.                   Co-Chair:   David Harrington
  35.                               Enterasys Networks
  36.                   Postal:     35 Industrial Way
  37.                               P. O. Box 5004
  38.                               Rochester, New Hampshire 03866-5005
  39.                               USA
  40.                   EMail:      dbh@enterasys.com
  41.                   Phone:      +1 603-337-2614
  42.  
  43.                   Co-editor:  Bert Wijnen
  44.                               Lucent Technologies
  45.                   postal:     Schagen 33
  46.                               3461 GL Linschoten
  47.                               Netherlands
  48.                   email:      bwijnen@lucent.com
  49.                   phone:      +31-348-480-685
  50.  
  51.                   Co-editor:  Randy Presuhn
  52.                               BMC Software, Inc.
  53.  
  54.  
  55.                   postal:     2141 North First Street
  56.                               San Jose, CA 95131
  57.                               USA
  58.                   email:      randy_presuhn@bmc.com
  59.                   phone:      +1 408-546-1006
  60.  
  61.                   Co-editor:  Keith McCloghrie
  62.                               Cisco Systems, Inc.
  63.                   postal:     170 West Tasman Drive
  64.                               San Jose, CA  95134-1706
  65.                               USA
  66.                   email:      kzm@cisco.com
  67.                   phone:      +1-408-526-5260
  68.                  "
  69.     DESCRIPTION  "The management information definitions for the
  70.                   View-based Access Control Model for SNMP.
  71.  
  72.                   Copyright (C) The Internet Society (2002). This
  73.                   version of this MIB module is part of RFC 3415;
  74.                   see the RFC itself for full legal notices.
  75.                  "
  76. --  Revision history
  77.  
  78.     REVISION     "200210160000Z"          -- 16 Oct 2002, midnight
  79.     DESCRIPTION  "Clarifications, published as RFC3415"
  80.  
  81.     REVISION     "199901200000Z"          -- 20 Jan 1999, midnight
  82.     DESCRIPTION  "Clarifications, published as RFC2575"
  83.  
  84.     REVISION     "199711200000Z"          -- 20 Nov 1997, midnight
  85.     DESCRIPTION  "Initial version, published as RFC2275"
  86.  
  87.     ::= { snmpModules 16 }
  88.  
  89. -- Administrative assignments ****************************************
  90.  
  91. vacmMIBObjects      OBJECT IDENTIFIER ::= { snmpVacmMIB 1 }
  92. vacmMIBConformance  OBJECT IDENTIFIER ::= { snmpVacmMIB 2 }
  93.  
  94. -- Information about Local Contexts **********************************
  95.  
  96. vacmContextTable OBJECT-TYPE
  97.     SYNTAX       SEQUENCE OF VacmContextEntry
  98.     MAX-ACCESS   not-accessible
  99.     STATUS       current
  100.     DESCRIPTION "The table of locally available contexts.
  101.  
  102.                  This table provides information to SNMP Command
  103.  
  104.  
  105.                  Generator applications so that they can properly
  106.                  configure the vacmAccessTable to control access to
  107.                  all contexts at the SNMP entity.
  108.  
  109.                  This table may change dynamically if the SNMP entity
  110.                  allows that contexts are added/deleted dynamically
  111.                  (for instance when its configuration changes).  Such
  112.                  changes would happen only if the management
  113.                  instrumentation at that SNMP entity recognizes more
  114.                  (or fewer) contexts.
  115.  
  116.                  The presence of entries in this table and of entries
  117.                  in the vacmAccessTable are independent.  That is, a
  118.                  context identified by an entry in this table is not
  119.                  necessarily referenced by any entries in the
  120.                  vacmAccessTable; and the context(s) referenced by an
  121.                  entry in the vacmAccessTable does not necessarily
  122.                  currently exist and thus need not be identified by an
  123.                  entry in this table.
  124.  
  125.                  This table must be made accessible via the default
  126.                  context so that Command Responder applications have
  127.                  a standard way of retrieving the information.
  128.  
  129.                  This table is read-only.  It cannot be configured via
  130.                  SNMP.
  131.                 "
  132.     ::= { vacmMIBObjects 1 }
  133.  
  134. vacmContextEntry OBJECT-TYPE
  135.     SYNTAX       VacmContextEntry
  136.     MAX-ACCESS   not-accessible
  137.     STATUS       current
  138.     DESCRIPTION "Information about a particular context."
  139.     INDEX       {
  140.                   vacmContextName
  141.                 }
  142.     ::= { vacmContextTable 1 }
  143.  
  144. VacmContextEntry ::= SEQUENCE
  145.     {
  146.         vacmContextName SnmpAdminString
  147.     }
  148.  
  149. vacmContextName  OBJECT-TYPE
  150.     SYNTAX       SnmpAdminString (SIZE(0..32))
  151.     MAX-ACCESS   read-only
  152.     STATUS       current
  153.  
  154.  
  155.     DESCRIPTION "A human readable name identifying a particular
  156.                  context at a particular SNMP entity.
  157.  
  158.                  The empty contextName (zero length) represents the
  159.                  default context.
  160.                 "
  161.     ::= { vacmContextEntry 1 }
  162.  
  163. -- Information about Groups ******************************************
  164.  
  165. vacmSecurityToGroupTable OBJECT-TYPE
  166.     SYNTAX       SEQUENCE OF VacmSecurityToGroupEntry
  167.     MAX-ACCESS   not-accessible
  168.     STATUS       current
  169.     DESCRIPTION "This table maps a combination of securityModel and
  170.                  securityName into a groupName which is used to define
  171.                  an access control policy for a group of principals.
  172.                 "
  173.     ::= { vacmMIBObjects 2 }
  174.  
  175. vacmSecurityToGroupEntry OBJECT-TYPE
  176.     SYNTAX       VacmSecurityToGroupEntry
  177.     MAX-ACCESS   not-accessible
  178.     STATUS       current
  179.     DESCRIPTION "An entry in this table maps the combination of a
  180.                  securityModel and securityName into a groupName.
  181.                 "
  182.     INDEX       {
  183.                   vacmSecurityModel,
  184.                   vacmSecurityName
  185.                 }
  186.     ::= { vacmSecurityToGroupTable 1 }
  187.  
  188. VacmSecurityToGroupEntry ::= SEQUENCE
  189.     {
  190.         vacmSecurityModel               SnmpSecurityModel,
  191.         vacmSecurityName                SnmpAdminString,
  192.         vacmGroupName                   SnmpAdminString,
  193.         vacmSecurityToGroupStorageType  StorageType,
  194.         vacmSecurityToGroupStatus       RowStatus
  195.     }
  196.  
  197. vacmSecurityModel OBJECT-TYPE
  198.     SYNTAX       SnmpSecurityModel(1..2147483647)
  199.     MAX-ACCESS   not-accessible
  200.     STATUS       current
  201.     DESCRIPTION "The Security Model, by which the vacmSecurityName
  202.                  referenced by this entry is provided.
  203.  
  204.  
  205.                  Note, this object may not take the 'any' (0) value.
  206.                 "
  207.     ::= { vacmSecurityToGroupEntry 1 }
  208.  
  209. vacmSecurityName OBJECT-TYPE
  210.     SYNTAX       SnmpAdminString (SIZE(1..32))
  211.     MAX-ACCESS   not-accessible
  212.     STATUS       current
  213.     DESCRIPTION "The securityName for the principal, represented in a
  214.                  Security Model independent format, which is mapped by
  215.                  this entry to a groupName.
  216.                 "
  217.     ::= { vacmSecurityToGroupEntry 2 }
  218.  
  219. vacmGroupName    OBJECT-TYPE
  220.     SYNTAX       SnmpAdminString (SIZE(1..32))
  221.     MAX-ACCESS   read-create
  222.     STATUS       current
  223.     DESCRIPTION "The name of the group to which this entry (e.g., the
  224.                  combination of securityModel and securityName)
  225.                  belongs.
  226.  
  227.                  This groupName is used as index into the
  228.                  vacmAccessTable to select an access control policy.
  229.                  However, a value in this table does not imply that an
  230.                  instance with the value exists in table vacmAccesTable.
  231.                 "
  232.     ::= { vacmSecurityToGroupEntry 3 }
  233.  
  234. vacmSecurityToGroupStorageType OBJECT-TYPE
  235.     SYNTAX       StorageType
  236.     MAX-ACCESS   read-create
  237.     STATUS       current
  238.     DESCRIPTION "The storage type for this conceptual row.
  239.                  Conceptual rows having the value 'permanent' need not
  240.                  allow write-access to any columnar objects in the row.
  241.                 "
  242.     DEFVAL      { nonVolatile }
  243.     ::= { vacmSecurityToGroupEntry 4 }
  244.  
  245. vacmSecurityToGroupStatus OBJECT-TYPE
  246.     SYNTAX       RowStatus
  247.     MAX-ACCESS   read-create
  248.     STATUS       current
  249.     DESCRIPTION "The status of this conceptual row.
  250.  
  251.                  Until instances of all corresponding columns are
  252.                  appropriately configured, the value of the
  253.  
  254.  
  255.                  corresponding instance of the vacmSecurityToGroupStatus
  256.                  column is 'notReady'.
  257.  
  258.                  In particular, a newly created row cannot be made
  259.                  active until a value has been set for vacmGroupName.
  260.  
  261.                  The  RowStatus TC [RFC2579] requires that this
  262.                  DESCRIPTION clause states under which circumstances
  263.                  other objects in this row can be modified:
  264.  
  265.                  The value of this object has no effect on whether
  266.                  other objects in this conceptual row can be modified.
  267.                 "
  268.     ::= { vacmSecurityToGroupEntry 5 }
  269.  
  270. -- Information about Access Rights ***********************************
  271.  
  272. vacmAccessTable  OBJECT-TYPE
  273.     SYNTAX       SEQUENCE OF VacmAccessEntry
  274.     MAX-ACCESS   not-accessible
  275.     STATUS       current
  276.     DESCRIPTION "The table of access rights for groups.
  277.  
  278.                  Each entry is indexed by a groupName, a contextPrefix,
  279.                  a securityModel and a securityLevel.  To determine
  280.                  whether access is allowed, one entry from this table
  281.                  needs to be selected and the proper viewName from that
  282.                  entry must be used for access control checking.
  283.  
  284.                  To select the proper entry, follow these steps:
  285.  
  286.                  1) the set of possible matches is formed by the
  287.                     intersection of the following sets of entries:
  288.  
  289.                       the set of entries with identical vacmGroupName
  290.                       the union of these two sets:
  291.                        - the set with identical vacmAccessContextPrefix
  292.                        - the set of entries with vacmAccessContextMatch
  293.                          value of 'prefix' and matching
  294.                          vacmAccessContextPrefix
  295.                       intersected with the union of these two sets:
  296.                        - the set of entries with identical
  297.                          vacmSecurityModel
  298.                        - the set of entries with vacmSecurityModel
  299.                          value of 'any'
  300.                       intersected with the set of entries with
  301.                       vacmAccessSecurityLevel value less than or equal
  302.                       to the requested securityLevel
  303.  
  304.  
  305.                  2) if this set has only one member, we're done
  306.                     otherwise, it comes down to deciding how to weight
  307.                     the preferences between ContextPrefixes,
  308.                     SecurityModels, and SecurityLevels as follows:
  309.                     a) if the subset of entries with securityModel
  310.                        matching the securityModel in the message is
  311.                        not empty, then discard the rest.
  312.                     b) if the subset of entries with
  313.                        vacmAccessContextPrefix matching the contextName
  314.                        in the message is not empty,
  315.                        then discard the rest
  316.                     c) discard all entries with ContextPrefixes shorter
  317.                        than the longest one remaining in the set
  318.                     d) select the entry with the highest securityLevel
  319.  
  320.                  Please note that for securityLevel noAuthNoPriv, all
  321.                  groups are really equivalent since the assumption that
  322.                  the securityName has been authenticated does not hold.
  323.                 "
  324.     ::= { vacmMIBObjects 4 }
  325.  
  326. vacmAccessEntry  OBJECT-TYPE
  327.     SYNTAX       VacmAccessEntry
  328.     MAX-ACCESS   not-accessible
  329.     STATUS       current
  330.     DESCRIPTION "An access right configured in the Local Configuration
  331.                  Datastore (LCD) authorizing access to an SNMP context.
  332.  
  333.                  Entries in this table can use an instance value for
  334.                  object vacmGroupName even if no entry in table
  335.                  vacmAccessSecurityToGroupTable has a corresponding
  336.                  value for object vacmGroupName.
  337.                 "
  338.     INDEX       { vacmGroupName,
  339.                   vacmAccessContextPrefix,
  340.                   vacmAccessSecurityModel,
  341.                   vacmAccessSecurityLevel
  342.                 }
  343.     ::= { vacmAccessTable 1 }
  344.  
  345. VacmAccessEntry ::= SEQUENCE
  346.     {
  347.         vacmAccessContextPrefix    SnmpAdminString,
  348.         vacmAccessSecurityModel    SnmpSecurityModel,
  349.         vacmAccessSecurityLevel    SnmpSecurityLevel,
  350.         vacmAccessContextMatch     INTEGER,
  351.         vacmAccessReadViewName     SnmpAdminString,
  352.         vacmAccessWriteViewName    SnmpAdminString,
  353.  
  354.  
  355.         vacmAccessNotifyViewName   SnmpAdminString,
  356.         vacmAccessStorageType      StorageType,
  357.         vacmAccessStatus           RowStatus
  358.     }
  359.  
  360. vacmAccessContextPrefix OBJECT-TYPE
  361.     SYNTAX       SnmpAdminString (SIZE(0..32))
  362.     MAX-ACCESS   not-accessible
  363.     STATUS       current
  364.     DESCRIPTION "In order to gain the access rights allowed by this
  365.                  conceptual row, a contextName must match exactly
  366.                  (if the value of vacmAccessContextMatch is 'exact')
  367.                  or partially (if the value of vacmAccessContextMatch
  368.                  is 'prefix') to the value of the instance of this
  369.                  object.
  370.                 "
  371.     ::= { vacmAccessEntry 1 }
  372.  
  373. vacmAccessSecurityModel OBJECT-TYPE
  374.     SYNTAX       SnmpSecurityModel
  375.     MAX-ACCESS   not-accessible
  376.     STATUS       current
  377.     DESCRIPTION "In order to gain the access rights allowed by this
  378.                  conceptual row, this securityModel must be in use.
  379.                 "
  380.     ::= { vacmAccessEntry 2 }
  381.  
  382. vacmAccessSecurityLevel OBJECT-TYPE
  383.     SYNTAX       SnmpSecurityLevel
  384.     MAX-ACCESS   not-accessible
  385.     STATUS       current
  386.     DESCRIPTION "The minimum level of security required in order to
  387.                  gain the access rights allowed by this conceptual
  388.                  row.  A securityLevel of noAuthNoPriv is less than
  389.                  authNoPriv which in turn is less than authPriv.
  390.  
  391.                  If multiple entries are equally indexed except for
  392.                  this vacmAccessSecurityLevel index, then the entry
  393.                  which has the highest value for
  394.                  vacmAccessSecurityLevel is selected.
  395.                 "
  396.     ::= { vacmAccessEntry 3 }
  397.  
  398. vacmAccessContextMatch OBJECT-TYPE
  399.     SYNTAX       INTEGER
  400.                 { exact (1), -- exact match of prefix and contextName
  401.                   prefix (2) -- Only match to the prefix
  402.                 }
  403.  
  404.  
  405.     MAX-ACCESS   read-create
  406.     STATUS       current
  407.     DESCRIPTION "If the value of this object is exact(1), then all
  408.                  rows where the contextName exactly matches
  409.                  vacmAccessContextPrefix are selected.
  410.  
  411.                  If the value of this object is prefix(2), then all
  412.                  rows where the contextName whose starting octets
  413.                  exactly match vacmAccessContextPrefix are selected.
  414.                  This allows for a simple form of wildcarding.
  415.                 "
  416.     DEFVAL      { exact }
  417.     ::= { vacmAccessEntry 4 }
  418.  
  419. vacmAccessReadViewName OBJECT-TYPE
  420.     SYNTAX       SnmpAdminString (SIZE(0..32))
  421.     MAX-ACCESS   read-create
  422.     STATUS       current
  423.     DESCRIPTION "The value of an instance of this object identifies
  424.                  the MIB view of the SNMP context to which this
  425.                  conceptual row authorizes read access.
  426.  
  427.                  The identified MIB view is that one for which the
  428.                  vacmViewTreeFamilyViewName has the same value as the
  429.                  instance of this object; if the value is the empty
  430.                  string or if there is no active MIB view having this
  431.                  value of vacmViewTreeFamilyViewName, then no access
  432.                  is granted.
  433.                 "
  434.     DEFVAL      { ''H }   -- the empty string
  435.     ::= { vacmAccessEntry 5 }
  436.  
  437. vacmAccessWriteViewName OBJECT-TYPE
  438.     SYNTAX       SnmpAdminString (SIZE(0..32))
  439.     MAX-ACCESS   read-create
  440.     STATUS       current
  441.     DESCRIPTION "The value of an instance of this object identifies
  442.                  the MIB view of the SNMP context to which this
  443.                  conceptual row authorizes write access.
  444.  
  445.                  The identified MIB view is that one for which the
  446.                  vacmViewTreeFamilyViewName has the same value as the
  447.                  instance of this object; if the value is the empty
  448.                  string or if there is no active MIB view having this
  449.                  value of vacmViewTreeFamilyViewName, then no access
  450.                  is granted.
  451.                 "
  452.     DEFVAL      { ''H }   -- the empty string
  453.  
  454.  
  455.     ::= { vacmAccessEntry 6 }
  456.  
  457. vacmAccessNotifyViewName OBJECT-TYPE
  458.     SYNTAX       SnmpAdminString (SIZE(0..32))
  459.     MAX-ACCESS   read-create
  460.     STATUS       current
  461.     DESCRIPTION "The value of an instance of this object identifies
  462.                  the MIB view of the SNMP context to which this
  463.                  conceptual row authorizes access for notifications.
  464.  
  465.                  The identified MIB view is that one for which the
  466.                  vacmViewTreeFamilyViewName has the same value as the
  467.                  instance of this object; if the value is the empty
  468.                  string or if there is no active MIB view having this
  469.                  value of vacmViewTreeFamilyViewName, then no access
  470.                  is granted.
  471.                 "
  472.     DEFVAL      { ''H }   -- the empty string
  473.     ::= { vacmAccessEntry 7 }
  474.  
  475. vacmAccessStorageType OBJECT-TYPE
  476.     SYNTAX       StorageType
  477.     MAX-ACCESS   read-create
  478.     STATUS       current
  479.     DESCRIPTION "The storage type for this conceptual row.
  480.  
  481.                  Conceptual rows having the value 'permanent' need not
  482.                  allow write-access to any columnar objects in the row.
  483.                 "
  484.     DEFVAL      { nonVolatile }
  485.     ::= { vacmAccessEntry 8 }
  486.  
  487. vacmAccessStatus OBJECT-TYPE
  488.     SYNTAX       RowStatus
  489.     MAX-ACCESS   read-create
  490.     STATUS       current
  491.     DESCRIPTION "The status of this conceptual row.
  492.  
  493.                  The  RowStatus TC [RFC2579] requires that this
  494.                  DESCRIPTION clause states under which circumstances
  495.                  other objects in this row can be modified:
  496.  
  497.                  The value of this object has no effect on whether
  498.                  other objects in this conceptual row can be modified.
  499.                 "
  500.     ::= { vacmAccessEntry 9 }
  501.  
  502. -- Information about MIB views ***************************************
  503.  
  504.  
  505. -- Support for instance-level granularity is optional.
  506. --
  507. -- In some implementations, instance-level access control
  508. -- granularity may come at a high performance cost.  Managers
  509. -- should avoid requesting such configurations unnecessarily.
  510.  
  511. vacmMIBViews     OBJECT IDENTIFIER ::= { vacmMIBObjects 5 }
  512.  
  513. vacmViewSpinLock OBJECT-TYPE
  514.     SYNTAX       TestAndIncr
  515.     MAX-ACCESS   read-write
  516.     STATUS       current
  517.     DESCRIPTION "An advisory lock used to allow cooperating SNMP
  518.                  Command Generator applications to coordinate their
  519.                  use of the Set operation in creating or modifying
  520.                  views.
  521.  
  522.                  When creating a new view or altering an existing
  523.                  view, it is important to understand the potential
  524.                  interactions with other uses of the view.  The
  525.                  vacmViewSpinLock should be retrieved.  The name of
  526.                  the view to be created should be determined to be
  527.                  unique by the SNMP Command Generator application by
  528.                  consulting the vacmViewTreeFamilyTable.  Finally,
  529.                  the named view may be created (Set), including the
  530.                  advisory lock.
  531.                  If another SNMP Command Generator application has
  532.                  altered the views in the meantime, then the spin
  533.                  lock's value will have changed, and so this creation
  534.                  will fail because it will specify the wrong value for
  535.                  the spin lock.
  536.  
  537.                  Since this is an advisory lock, the use of this lock
  538.                  is not enforced.
  539.                 "
  540.     ::= { vacmMIBViews 1 }
  541.  
  542. vacmViewTreeFamilyTable OBJECT-TYPE
  543.     SYNTAX       SEQUENCE OF VacmViewTreeFamilyEntry
  544.     MAX-ACCESS   not-accessible
  545.     STATUS       current
  546.     DESCRIPTION "Locally held information about families of subtrees
  547.                  within MIB views.
  548.  
  549.                  Each MIB view is defined by two sets of view subtrees:
  550.                    - the included view subtrees, and
  551.                    - the excluded view subtrees.
  552.                  Every such view subtree, both the included and the
  553.  
  554.  
  555.                  excluded ones, is defined in this table.
  556.  
  557.                  To determine if a particular object instance is in
  558.                  a particular MIB view, compare the object instance's
  559.                  OBJECT IDENTIFIER with each of the MIB view's active
  560.                  entries in this table.  If none match, then the
  561.                  object instance is not in the MIB view.  If one or
  562.                  more match, then the object instance is included in,
  563.                  or excluded from, the MIB view according to the
  564.                  value of vacmViewTreeFamilyType in the entry whose
  565.                  value of vacmViewTreeFamilySubtree has the most
  566.                  sub-identifiers.  If multiple entries match and have
  567.                  the same number of sub-identifiers (when wildcarding
  568.                  is specified with the value of vacmViewTreeFamilyMask),
  569.                  then the lexicographically greatest instance of
  570.                  vacmViewTreeFamilyType determines the inclusion or
  571.                  exclusion.
  572.  
  573.                  An object instance's OBJECT IDENTIFIER X matches an
  574.                  active entry in this table when the number of
  575.                  sub-identifiers in X is at least as many as in the
  576.                  value of vacmViewTreeFamilySubtree for the entry,
  577.                  and each sub-identifier in the value of
  578.                  vacmViewTreeFamilySubtree matches its corresponding
  579.                  sub-identifier in X.  Two sub-identifiers match
  580.                  either if the corresponding bit of the value of
  581.                  vacmViewTreeFamilyMask for the entry is zero (the
  582.                  'wild card' value), or if they are equal.
  583.  
  584.                  A 'family' of subtrees is the set of subtrees defined
  585.                  by a particular combination of values of
  586.                  vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask.
  587.  
  588.                  In the case where no 'wild card' is defined in the
  589.                  vacmViewTreeFamilyMask, the family of subtrees reduces
  590.                  to a single subtree.
  591.  
  592.                  When creating or changing MIB views, an SNMP Command
  593.                  Generator application should utilize the
  594.                  vacmViewSpinLock to try to avoid collisions.  See
  595.                  DESCRIPTION clause of vacmViewSpinLock.
  596.  
  597.                  When creating MIB views, it is strongly advised that
  598.                  first the 'excluded' vacmViewTreeFamilyEntries are
  599.                  created and then the 'included' entries.
  600.  
  601.                  When deleting MIB views, it is strongly advised that
  602.                  first the 'included' vacmViewTreeFamilyEntries are
  603.  
  604.  
  605.                  deleted and then the 'excluded' entries.
  606.  
  607.                  If a create for an entry for instance-level access
  608.                  control is received and the implementation does not
  609.                  support instance-level granularity, then an
  610.                  inconsistentName error must be returned.
  611.                 "
  612.     ::= { vacmMIBViews 2 }
  613.  
  614. vacmViewTreeFamilyEntry OBJECT-TYPE
  615.     SYNTAX       VacmViewTreeFamilyEntry
  616.     MAX-ACCESS   not-accessible
  617.     STATUS       current
  618.     DESCRIPTION "Information on a particular family of view subtrees
  619.                  included in or excluded from a particular SNMP
  620.                  context's MIB view.
  621.  
  622.                  Implementations must not restrict the number of
  623.                  families of view subtrees for a given MIB view,
  624.                  except as dictated by resource constraints on the
  625.                  overall number of entries in the
  626.                  vacmViewTreeFamilyTable.
  627.  
  628.                  If no conceptual rows exist in this table for a given
  629.                  MIB view (viewName), that view may be thought of as
  630.                  consisting of the empty set of view subtrees.
  631.                 "
  632.     INDEX       { vacmViewTreeFamilyViewName,
  633.                   vacmViewTreeFamilySubtree
  634.                 }
  635.     ::= { vacmViewTreeFamilyTable 1 }
  636.  
  637. VacmViewTreeFamilyEntry ::= SEQUENCE
  638.     {
  639.         vacmViewTreeFamilyViewName     SnmpAdminString,
  640.         vacmViewTreeFamilySubtree      OBJECT IDENTIFIER,
  641.         vacmViewTreeFamilyMask         OCTET STRING,
  642.         vacmViewTreeFamilyType         INTEGER,
  643.         vacmViewTreeFamilyStorageType  StorageType,
  644.         vacmViewTreeFamilyStatus       RowStatus
  645.     }
  646.  
  647. vacmViewTreeFamilyViewName OBJECT-TYPE
  648.     SYNTAX       SnmpAdminString (SIZE(1..32))
  649.     MAX-ACCESS   not-accessible
  650.     STATUS       current
  651.     DESCRIPTION "The human readable name for a family of view subtrees.
  652.                 "
  653.  
  654.  
  655.     ::= { vacmViewTreeFamilyEntry 1 }
  656.  
  657. vacmViewTreeFamilySubtree OBJECT-TYPE
  658.     SYNTAX       OBJECT IDENTIFIER
  659.     MAX-ACCESS   not-accessible
  660.     STATUS       current
  661.     DESCRIPTION "The MIB subtree which when combined with the
  662.                  corresponding instance of vacmViewTreeFamilyMask
  663.                  defines a family of view subtrees.
  664.                 "
  665.     ::= { vacmViewTreeFamilyEntry 2 }
  666.  
  667. vacmViewTreeFamilyMask OBJECT-TYPE
  668.     SYNTAX       OCTET STRING (SIZE (0..16))
  669.     MAX-ACCESS   read-create
  670.     STATUS       current
  671.     DESCRIPTION "The bit mask which, in combination with the
  672.                  corresponding instance of vacmViewTreeFamilySubtree,
  673.                  defines a family of view subtrees.
  674.  
  675.                  Each bit of this bit mask corresponds to a
  676.                  sub-identifier of vacmViewTreeFamilySubtree, with the
  677.                  most significant bit of the i-th octet of this octet
  678.                  string value (extended if necessary, see below)
  679.                  corresponding to the (8*i - 7)-th sub-identifier, and
  680.                  the least significant bit of the i-th octet of this
  681.                  octet string corresponding to the (8*i)-th
  682.                  sub-identifier, where i is in the range 1 through 16.
  683.  
  684.                  Each bit of this bit mask specifies whether or not
  685.                  the corresponding sub-identifiers must match when
  686.                  determining if an OBJECT IDENTIFIER is in this
  687.                  family of view subtrees; a '1' indicates that an
  688.                  exact match must occur; a '0' indicates 'wild card',
  689.                  i.e., any sub-identifier value matches.
  690.  
  691.                  Thus, the OBJECT IDENTIFIER X of an object instance
  692.                  is contained in a family of view subtrees if, for
  693.                  each sub-identifier of the value of
  694.                  vacmViewTreeFamilySubtree, either:
  695.  
  696.                    the i-th bit of vacmViewTreeFamilyMask is 0, or
  697.  
  698.                    the i-th sub-identifier of X is equal to the i-th
  699.                    sub-identifier of the value of
  700.                    vacmViewTreeFamilySubtree.
  701.  
  702.                  If the value of this bit mask is M bits long and
  703.  
  704.  
  705.                  there are more than M sub-identifiers in the
  706.                  corresponding instance of vacmViewTreeFamilySubtree,
  707.                  then the bit mask is extended with 1's to be the
  708.                  required length.
  709.  
  710.                  Note that when the value of this object is the
  711.                  zero-length string, this extension rule results in
  712.                  a mask of all-1's being used (i.e., no 'wild card'),
  713.                  and the family of view subtrees is the one view
  714.                  subtree uniquely identified by the corresponding
  715.                  instance of vacmViewTreeFamilySubtree.
  716.  
  717.                  Note that masks of length greater than zero length
  718.                  do not need to be supported.  In this case this
  719.                  object is made read-only.
  720.                 "
  721.     DEFVAL      { ''H }
  722.     ::= { vacmViewTreeFamilyEntry 3 }
  723.  
  724. vacmViewTreeFamilyType OBJECT-TYPE
  725.     SYNTAX       INTEGER  { included(1), excluded(2) }
  726.     MAX-ACCESS   read-create
  727.     STATUS       current
  728.     DESCRIPTION "Indicates whether the corresponding instances of
  729.                  vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask
  730.                  define a family of view subtrees which is included in
  731.                  or excluded from the MIB view.
  732.                 "
  733.     DEFVAL      { included }
  734.     ::= { vacmViewTreeFamilyEntry 4 }
  735.  
  736. vacmViewTreeFamilyStorageType OBJECT-TYPE
  737.     SYNTAX       StorageType
  738.     MAX-ACCESS   read-create
  739.     STATUS       current
  740.     DESCRIPTION "The storage type for this conceptual row.
  741.  
  742.                  Conceptual rows having the value 'permanent' need not
  743.                  allow write-access to any columnar objects in the row.
  744.                 "
  745.     DEFVAL      { nonVolatile }
  746.     ::= { vacmViewTreeFamilyEntry 5 }
  747.  
  748. vacmViewTreeFamilyStatus OBJECT-TYPE
  749.     SYNTAX       RowStatus
  750.     MAX-ACCESS   read-create
  751.     STATUS       current
  752.     DESCRIPTION "The status of this conceptual row.
  753.  
  754.  
  755.                  The  RowStatus TC [RFC2579] requires that this
  756.                  DESCRIPTION clause states under which circumstances
  757.                  other objects in this row can be modified:
  758.  
  759.                  The value of this object has no effect on whether
  760.                  other objects in this conceptual row can be modified.
  761.                 "
  762.     ::= { vacmViewTreeFamilyEntry 6 }
  763.  
  764. -- Conformance information *******************************************
  765.  
  766. vacmMIBCompliances  OBJECT IDENTIFIER ::= { vacmMIBConformance 1 }
  767. vacmMIBGroups       OBJECT IDENTIFIER ::= { vacmMIBConformance 2 }
  768.  
  769. -- Compliance statements *********************************************
  770.  
  771. vacmMIBCompliance MODULE-COMPLIANCE
  772.     STATUS       current
  773.     DESCRIPTION "The compliance statement for SNMP engines which
  774.                  implement the SNMP View-based Access Control Model
  775.                  configuration MIB.
  776.                 "
  777.     MODULE -- this module
  778.         MANDATORY-GROUPS { vacmBasicGroup }
  779.  
  780.         OBJECT        vacmAccessContextMatch
  781.         MIN-ACCESS    read-only
  782.         DESCRIPTION  "Write access is not required."
  783.  
  784.         OBJECT        vacmAccessReadViewName
  785.         MIN-ACCESS    read-only
  786.         DESCRIPTION  "Write access is not required."
  787.  
  788.         OBJECT        vacmAccessWriteViewName
  789.         MIN-ACCESS    read-only
  790.         DESCRIPTION  "Write access is not required."
  791.  
  792.         OBJECT        vacmAccessNotifyViewName
  793.         MIN-ACCESS    read-only
  794.         DESCRIPTION  "Write access is not required."
  795.  
  796.         OBJECT        vacmAccessStorageType
  797.         MIN-ACCESS    read-only
  798.         DESCRIPTION  "Write access is not required."
  799.  
  800.         OBJECT        vacmAccessStatus
  801.         MIN-ACCESS    read-only
  802.         DESCRIPTION  "Create/delete/modify access to the
  803.  
  804.  
  805.                       vacmAccessTable is not required.
  806.                      "
  807.  
  808.         OBJECT        vacmViewTreeFamilyMask
  809.         WRITE-SYNTAX  OCTET STRING (SIZE (0))
  810.         MIN-ACCESS    read-only
  811.         DESCRIPTION  "Support for configuration via SNMP of subtree
  812.                       families using wild-cards is not required.
  813.                      "
  814.  
  815.         OBJECT        vacmViewTreeFamilyType
  816.         MIN-ACCESS    read-only
  817.         DESCRIPTION  "Write access is not required."
  818.  
  819.         OBJECT        vacmViewTreeFamilyStorageType
  820.         MIN-ACCESS    read-only
  821.         DESCRIPTION  "Write access is not required."
  822.  
  823.         OBJECT        vacmViewTreeFamilyStatus
  824.         MIN-ACCESS    read-only
  825.         DESCRIPTION  "Create/delete/modify access to the
  826.                       vacmViewTreeFamilyTable is not required.
  827.                      "
  828.     ::= { vacmMIBCompliances 1 }
  829.  
  830. -- Units of conformance **********************************************
  831.  
  832. vacmBasicGroup OBJECT-GROUP
  833.     OBJECTS {
  834.               vacmContextName,
  835.               vacmGroupName,
  836.               vacmSecurityToGroupStorageType,
  837.               vacmSecurityToGroupStatus,
  838.               vacmAccessContextMatch,
  839.               vacmAccessReadViewName,
  840.               vacmAccessWriteViewName,
  841.               vacmAccessNotifyViewName,
  842.               vacmAccessStorageType,
  843.               vacmAccessStatus,
  844.               vacmViewSpinLock,
  845.               vacmViewTreeFamilyMask,
  846.               vacmViewTreeFamilyType,
  847.               vacmViewTreeFamilyStorageType,
  848.               vacmViewTreeFamilyStatus
  849.             }
  850.     STATUS       current
  851.     DESCRIPTION "A collection of objects providing for remote
  852.                  configuration of an SNMP engine which implements
  853.  
  854.  
  855.                  the SNMP View-based Access Control Model.
  856.                 "
  857.     ::= { vacmMIBGroups 1 }
  858.  
  859. END
  860.