SNMP-VIEW-BASED-ACM-MIB(7)


NAME

   SNMP-VIEW-BASED-ACM-MIB  - The Erlang/OTP MIB module for the view-based
   access control model for SNMP

DESCRIPTION

   SNMP-VIEW-BASED-ACM-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-COMPLIANCE, OBJECT-GROUP       FROM SNMPv2-CONF
       MODULE-IDENTITY, OBJECT-TYPE,
       snmpModules                           FROM SNMPv2-SMI
       TestAndIncr,
       RowStatus, StorageType                FROM SNMPv2-TC
       SnmpAdminString,
       SnmpSecurityLevel,
       SnmpSecurityModel                     FROM SNMP-FRAMEWORK-MIB;

   snmpVacmMIB       MODULE-IDENTITY
       LAST-UPDATED "9901200000Z"            -- 20 Jan 1999, midnight
       ORGANIZATION "SNMPv3 Working Group"
       CONTACT-INFO "WG-email:   snmpv3@tis.com
                     Subscribe:  majordomo@tis.com
                                 In message body:  subscribe snmpv3

                     Chair:      Russ Mundy
                                 Trusted Information Systems
                     postal:     3060 Washington Rd
                                 Glenwood MD 21738
                                 USA
                     email:      mundy@tis.com
                     phone:      +1-301-854-6889

                     Co-editor:  Bert Wijnen
                                 IBM T.J. Watson Research
                     postal:     Schagen 33
                                 3461 GL Linschoten
                                 Netherlands
                     email:      wijnen@vnet.ibm.com
                     phone:      +31-348-432-794

                     Co-editor:  Randy Presuhn
                                 BMC Software, Inc
                     postal:     965 Stewart Drive
                                 Sunnyvale, CA 94086
                                 USA
                     email:      randy_presuhn@bmc.com
                     phone:      +1-408-616-3100

                     Co-editor:  Keith McCloghrie
                                 Cisco Systems, Inc.
                     postal:     170 West Tasman Drive
                                 San Jose, CA  95134-1706
                                 USA
                     email:      kzm@cisco.com
                     phone:      +1-408-526-5260
                    "
       DESCRIPTION  "The management information definitions for the
                     View-based Access Control Model for SNMP.
                    "
   --  Revision history
       REVISION     "9901200000Z"            -- 20 Jan 1999, midnight
                                             -- RFC-Editor assigns RFCxxxx
       DESCRIPTION  "Clarifications, published as RFCxxxx"

       REVISION     "9711200000Z"            -- 20 Nov 1997, midnight
       DESCRIPTION  "Initial version, published as RFC2275"

       ::= { snmpModules 16 }

   -- Administrative assignments ****************************************

   vacmMIBObjects      OBJECT IDENTIFIER ::= { snmpVacmMIB 1 }
   vacmMIBConformance  OBJECT IDENTIFIER ::= { snmpVacmMIB 2 }

   -- Information about Local Contexts **********************************

   vacmContextTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF VacmContextEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "The table of locally available contexts.

                    This table provides information to SNMP Command
                    Generator applications so that they can properly
                    configure the vacmAccessTable to control access to
                    all contexts at the SNMP entity.

                    This table may change dynamically if the SNMP entity
                    allows that contexts are added/deleted dynamically
                    (for instance when its configuration changes). Such
                    changes would happen only if the management
                    instrumentation at that SNMP entity recognizes more
                    (or fewer) contexts.

                    The presence of entries in this table and of entries
                    in the vacmAccessTable are independent.  That is, a
                    context identified by an entry in this table is not
                    necessarily referenced by any entries in the
                    vacmAccessTable; and the context(s) referenced by an
                    entry in the vacmAccessTable does not necessarily
                    currently exist and thus need not be identified by an
                    entry in this table.

                    This table must be made accessible via the default
                    context so that Command Responder applications have
                    a standard way of retrieving the information.

                    This table is read-only. It cannot be configured via
                    SNMP.
                   "
       ::= { vacmMIBObjects 1 }

   vacmContextEntry OBJECT-TYPE
       SYNTAX       VacmContextEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "Information about a particular context."
       INDEX       {
                     vacmContextName
                   }
       ::= { vacmContextTable 1 }

   VacmContextEntry ::= SEQUENCE
       {
           vacmContextName SnmpAdminString
       }

   vacmContextName  OBJECT-TYPE
       SYNTAX       SnmpAdminString (SIZE(0..32))
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION "A human readable name identifying a particular
                    context at a particular SNMP entity.

                    The empty contextName (zero length) represents the
                    default context.
                   "
       ::= { vacmContextEntry 1 }

   -- Information about Groups ******************************************

   vacmSecurityToGroupTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF VacmSecurityToGroupEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "This table maps a combination of securityModel and
                    securityName into a groupName which is used to define
                    an access control policy for a group of principals.
                   "
       ::= { vacmMIBObjects 2 }

   vacmSecurityToGroupEntry OBJECT-TYPE
       SYNTAX       VacmSecurityToGroupEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "An entry in this table maps the combination of a
                    securityModel and securityName into a groupName.
                   "
       INDEX       {
                     vacmSecurityModel,
                     vacmSecurityName
                   }
       ::= { vacmSecurityToGroupTable 1 }

   VacmSecurityToGroupEntry ::= SEQUENCE
       {
           vacmSecurityModel               SnmpSecurityModel,
           vacmSecurityName                SnmpAdminString,
           vacmGroupName                   SnmpAdminString,
           vacmSecurityToGroupStorageType  StorageType,
           vacmSecurityToGroupStatus       RowStatus
       }

   vacmSecurityModel OBJECT-TYPE
       SYNTAX       SnmpSecurityModel(1..2147483647)
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "The Security Model, by which the vacmSecurityName
                    referenced by this entry is provided.

                    Note, this object may not take the 'any' (0) value.
                   "
       ::= { vacmSecurityToGroupEntry 1 }

   vacmSecurityName OBJECT-TYPE
       SYNTAX       SnmpAdminString (SIZE(1..32))
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "The securityName for the principal, represented in a
                    Security Model independent format, which is mapped by
                    this entry to a groupName.
                   "
       ::= { vacmSecurityToGroupEntry 2 }

   vacmGroupName    OBJECT-TYPE
       SYNTAX       SnmpAdminString (SIZE(1..32))
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "The name of the group to which this entry (e.g., the
                    combination of securityModel and securityName)
                    belongs.

                    This groupName is used as index into the
                    vacmAccessTable to select an access control policy.
                    However, a value in this table does not imply that an
                    instance with the value exists in table vacmAccesTable.
                   "
       ::= { vacmSecurityToGroupEntry 3 }

   vacmSecurityToGroupStorageType OBJECT-TYPE
       SYNTAX       StorageType
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "The storage type for this conceptual row.
                    Conceptual rows having the value 'permanent' need not
                    allow write-access to any columnar objects in the row.
                   "
       DEFVAL      { nonVolatile }
       ::= { vacmSecurityToGroupEntry 4 }

   vacmSecurityToGroupStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "The status of this conceptual row.

                    Until instances of all corresponding columns are
                    appropriately configured, the value of the
                    corresponding instance of the vacmSecurityToGroupStatus
                    column is 'notReady'.

                    In particular, a newly created row cannot be made
                    active until a value has been set for vacmGroupName.

                    The  RowStatus TC [RFC1903] requires that this
                    DESCRIPTION clause states under which circumstances
                    other objects in this row can be modified:

                    The value of this object has no effect on whether
                    other objects in this conceptual row can be modified.
                   "
       ::= { vacmSecurityToGroupEntry 5 }

   -- Information about Access Rights ***********************************

   vacmAccessTable  OBJECT-TYPE
       SYNTAX       SEQUENCE OF VacmAccessEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "The table of access rights for groups.

                    Each entry is indexed by a groupName, a contextPrefix,
                    a securityModel and a securityLevel.  To determine
                    whether access is allowed, one entry from this table
                    needs to be selected and the proper viewName from that
                    entry must be used for access control checking.

                    To select the proper entry, follow these steps:

                    1) the set of possible matches is formed by the
                       intersection of the following sets of entries:
                         the set of entries with identical vacmGroupName
                         the union of these two sets:
                          - the set with identical vacmAccessContextPrefix
                          - the set of entries with vacmAccessContextMatch
                            value of 'prefix' and matching
                            vacmAccessContextPrefix
                         intersected with the union of these two sets:
                          - the set of entries with identical
                            vacmSecurityModel
                          - the set of entries with vacmSecurityModel
                            value of 'any'
                         intersected with the set of entries with
                         vacmAccessSecurityLevel value less than or equal
                         to the requested securityLevel

                    2) if this set has only one member, we're done
                       otherwise, it comes down to deciding how to weight
                       the preferences between ContextPrefixes,
                       SecurityModels, and SecurityLevels as follows:
                       a) if the subset of entries with securityModel
                          matching the securityModel in the message is
                          not empty, then discard the rest.
                       b) if the subset of entries with
                          vacmAccessContextPrefix matching the contextName
                          in the message is not empty,
                          then discard the rest
                       c) discard all entries with ContextPrefixes shorter
                          than the longest one remaining in the set
                       d) select the entry with the highest securityLevel

                    Please note that for securityLevel noAuthNoPriv, all
                    groups are really equivalent since the assumption that
                    the securityName has been authenticated does not hold.
                   "
       ::= { vacmMIBObjects 4 }

   vacmAccessEntry  OBJECT-TYPE
       SYNTAX       VacmAccessEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "An access right configured in the Local Configuration
                    Datastore (LCD) authorizing access to an SNMP context.

                    Entries in this table can use an instance value for
                    object vacmGroupName even if no entry in table
                    vacmAccessSecurityToGroupTable has a corresponding
                    value for object vacmGroupName.
                   "
       INDEX       { vacmGroupName,
                     vacmAccessContextPrefix,
                     vacmAccessSecurityModel,
                     vacmAccessSecurityLevel
                   }
       ::= { vacmAccessTable 1 }

   VacmAccessEntry ::= SEQUENCE
       {
           vacmAccessContextPrefix    SnmpAdminString,
           vacmAccessSecurityModel    SnmpSecurityModel,
           vacmAccessSecurityLevel    SnmpSecurityLevel,
           vacmAccessContextMatch     INTEGER,
           vacmAccessReadViewName     SnmpAdminString,
           vacmAccessWriteViewName    SnmpAdminString,
           vacmAccessNotifyViewName   SnmpAdminString,
           vacmAccessStorageType      StorageType,
           vacmAccessStatus           RowStatus
       }

   vacmAccessContextPrefix OBJECT-TYPE
       SYNTAX       SnmpAdminString (SIZE(0..32))
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "In order to gain the access rights allowed by this
                    conceptual row, a contextName must match exactly
                    (if the value of vacmAccessContextMatch is 'exact')
                    or partially (if the value of vacmAccessContextMatch
                    is 'prefix') to the value of the instance of this
                    object.
                   "
       ::= { vacmAccessEntry 1 }

   vacmAccessSecurityModel OBJECT-TYPE
       SYNTAX       SnmpSecurityModel
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "In order to gain the access rights allowed by this
                    conceptual row, this securityModel must be in use.
                   "
       ::= { vacmAccessEntry 2 }

   vacmAccessSecurityLevel OBJECT-TYPE
       SYNTAX       SnmpSecurityLevel
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "The minimum level of security required in order to
                    gain the access rights allowed by this conceptual
                    row.  A securityLevel of noAuthNoPriv is less than
                    authNoPriv which in turn is less than authPriv.

                    If multiple entries are equally indexed except for
                    this vacmAccessSecurityLevel index, then the entry
                    which has the highest value for
                    vacmAccessSecurityLevel is selected.
                   "
       ::= { vacmAccessEntry 3 }

   vacmAccessContextMatch OBJECT-TYPE
       SYNTAX       INTEGER
                   { exact (1), -- exact match of prefix and contextName
                     prefix (2) -- Only match to the prefix
                   }
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "If the value of this object is exact(1), then all
                    rows where the contextName exactly matches
                    vacmAccessContextPrefix are selected.

                    If the value of this object is prefix(2), then all
                    rows where the contextName whose starting octets
                    exactly match vacmAccessContextPrefix are selected.
                    This allows for a simple form of wildcarding.
                   "
       DEFVAL      { exact }
       ::= { vacmAccessEntry 4 }

   vacmAccessReadViewName OBJECT-TYPE
       SYNTAX       SnmpAdminString (SIZE(0..32))
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "The value of an instance of this object identifies
                    the MIB view of the SNMP context to which this
                    conceptual row authorizes read access.

                    The identified MIB view is that one for which the
                    vacmViewTreeFamilyViewName has the same value as the
                    instance of this object; if the value is the empty
                    string or if there is no active MIB view having this
                    value of vacmViewTreeFamilyViewName, then no access
                    is granted.
                   "
       DEFVAL      { ''H }   -- the empty string
       ::= { vacmAccessEntry 5 }

   vacmAccessWriteViewName OBJECT-TYPE
       SYNTAX       SnmpAdminString (SIZE(0..32))
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "The value of an instance of this object identifies
                    the MIB view of the SNMP context to which this
                    conceptual row authorizes write access.

                    The identified MIB view is that one for which the
                    vacmViewTreeFamilyViewName has the same value as the
                    instance of this object; if the value is the empty
                    string or if there is no active MIB view having this
                    value of vacmViewTreeFamilyViewName, then no access
                    is granted.
                   "
       DEFVAL      { ''H }   -- the empty string
       ::= { vacmAccessEntry 6 }

   vacmAccessNotifyViewName OBJECT-TYPE
       SYNTAX       SnmpAdminString (SIZE(0..32))
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "The value of an instance of this object identifies
                    the MIB view of the SNMP context to which this
                    conceptual row authorizes access for notifications.

                    The identified MIB view is that one for which the
                    vacmViewTreeFamilyViewName has the same value as the
                    instance of this object; if the value is the empty
                    string or if there is no active MIB view having this
                    value of vacmViewTreeFamilyViewName, then no access
                    is granted.
                   "
       DEFVAL      { ''H }   -- the empty string
       ::= { vacmAccessEntry 7 }

   vacmAccessStorageType OBJECT-TYPE
       SYNTAX       StorageType
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "The storage type for this conceptual row.

                    Conceptual rows having the value 'permanent' need not
                    allow write-access to any columnar objects in the row.
                   "
       DEFVAL      { nonVolatile }
       ::= { vacmAccessEntry 8 }

   vacmAccessStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "The status of this conceptual row.

                    The  RowStatus TC [RFC1903] requires that this
                    DESCRIPTION clause states under which circumstances
                    other objects in this row can be modified:

                    The value of this object has no effect on whether
                    other objects in this conceptual row can be modified.
                   "
       ::= { vacmAccessEntry 9 }

   -- Information about MIB views ***************************************

   -- Support for instance-level granularity is optional.
   --
   -- In some implementations, instance-level access control
   -- granularity may come at a high performance cost.  Managers
   -- should avoid requesting such configurations unnecessarily.

   vacmMIBViews     OBJECT IDENTIFIER ::= { vacmMIBObjects 5 }

   vacmViewSpinLock OBJECT-TYPE
       SYNTAX       TestAndIncr
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION "An advisory lock used to allow cooperating SNMP
                    Command Generator applications to coordinate their
                    use of the Set operation in creating or modifying
                    views.

                    When creating a new view or altering an existing
                    view, it is important to understand the potential
                    interactions with other uses of the view.  The
                    vacmViewSpinLock should be retrieved.  The name of
                    the view to be created should be determined to be
                    unique by the SNMP Command Generator application by
                    consulting the vacmViewTreeFamilyTable.  Finally,
                    the named view may be created (Set), including the
                    advisory lock.
                    If another SNMP Command Generator application has
                    altered the views in the meantime, then the spin
                    lock's value will have changed, and so this creation
                    will fail because it will specify the wrong value for
                    the spin lock.

                    Since this is an advisory lock, the use of this lock
                    is not enforced.
                   "
       ::= { vacmMIBViews 1 }

   vacmViewTreeFamilyTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF VacmViewTreeFamilyEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "Locally held information about families of subtrees
                    within MIB views.

                    Each MIB view is defined by two sets of view subtrees:
                      - the included view subtrees, and
                      - the excluded view subtrees.
                    Every such view subtree, both the included and the
                    excluded ones, is defined in this table.

                    To determine if a particular object instance is in
                    a particular MIB view, compare the object instance's
                    OBJECT IDENTIFIER with each of the MIB view's active
                    entries in this table.  If none match, then the
                    object instance is not in the MIB view.  If one or
                    more match, then the object instance is included in,
                    or excluded from, the MIB view according to the
                    value of vacmViewTreeFamilyType in the entry whose
                    value of vacmViewTreeFamilySubtree has the most
                    sub-identifiers.  If multiple entries match and have
                    the same number of sub-identifiers (when wildcarding
                    is specified with the value of vacmViewTreeFamilyMask),
                    then the lexicographically greatest instance of
                    vacmViewTreeFamilyType determines the inclusion or
                    exclusion.

                    An object instance's OBJECT IDENTIFIER X matches an
                    active entry in this table when the number of
                    sub-identifiers in X is at least as many as in the
                    value of vacmViewTreeFamilySubtree for the entry,
                    and each sub-identifier in the value of
                    vacmViewTreeFamilySubtree matches its corresponding
                    sub-identifier in X.  Two sub-identifiers match
                    either if the corresponding bit of the value of
                    vacmViewTreeFamilyMask for the entry is zero (the
                    'wild card' value), or if they are equal.

                    A 'family' of subtrees is the set of subtrees defined
                    by a particular combination of values of
                    vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask.
                    In the case where no 'wild card' is defined in the
                    vacmViewTreeFamilyMask, the family of subtrees reduces
                    to a single subtree.

                    When creating or changing MIB views, an SNMP Command
                    Generator application should utilize the
                    vacmViewSpinLock to try to avoid collisions. See
                    DESCRIPTION clause of vacmViewSpinLock.

                    When creating MIB views, it is strongly advised that
                    first the 'excluded' vacmViewTreeFamilyEntries are
                    created and then the 'included' entries.

                    When deleting MIB views, it is strongly advised that
                    first the 'included' vacmViewTreeFamilyEntries are
                    deleted and then the 'excluded' entries.

                    If a create for an entry for instance-level access
                    control is received and the implementation does not
                    support instance-level granularity, then an
                    inconsistentName error must be returned.
                   "
       ::= { vacmMIBViews 2 }

   vacmViewTreeFamilyEntry OBJECT-TYPE
       SYNTAX       VacmViewTreeFamilyEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "Information on a particular family of view subtrees
                    included in or excluded from a particular SNMP
                    context's MIB view.

                    Implementations must not restrict the number of
                    families of view subtrees for a given MIB view,
                    except as dictated by resource constraints on the
                    overall number of entries in the
                    vacmViewTreeFamilyTable.

                    If no conceptual rows exist in this table for a given
                    MIB view (viewName), that view may be thought of as
                    consisting of the empty set of view subtrees.
                   "
       INDEX       { vacmViewTreeFamilyViewName,
                     vacmViewTreeFamilySubtree
                   }
       ::= { vacmViewTreeFamilyTable 1 }

   VacmViewTreeFamilyEntry ::= SEQUENCE
       {
           vacmViewTreeFamilyViewName     SnmpAdminString,
           vacmViewTreeFamilySubtree      OBJECT IDENTIFIER,
           vacmViewTreeFamilyMask         OCTET STRING,
           vacmViewTreeFamilyType         INTEGER,
           vacmViewTreeFamilyStorageType  StorageType,
           vacmViewTreeFamilyStatus       RowStatus
       }

   vacmViewTreeFamilyViewName OBJECT-TYPE
       SYNTAX       SnmpAdminString (SIZE(1..32))
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "The human readable name for a family of view subtrees.
                   "
       ::= { vacmViewTreeFamilyEntry 1 }

   vacmViewTreeFamilySubtree OBJECT-TYPE
       SYNTAX       OBJECT IDENTIFIER
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "The MIB subtree which when combined with the
                    corresponding instance of vacmViewTreeFamilyMask
                    defines a family of view subtrees.
                   "
       ::= { vacmViewTreeFamilyEntry 2 }

   vacmViewTreeFamilyMask OBJECT-TYPE
       SYNTAX       OCTET STRING (SIZE (0..16))
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "The bit mask which, in combination with the
                    corresponding instance of vacmViewTreeFamilySubtree,
                    defines a family of view subtrees.

                    Each bit of this bit mask corresponds to a
                    sub-identifier of vacmViewTreeFamilySubtree, with the
                    most significant bit of the i-th octet of this octet
                    string value (extended if necessary, see below)
                    corresponding to the (8*i - 7)-th sub-identifier, and
                    the least significant bit of the i-th octet of this
                    octet string corresponding to the (8*i)-th
                    sub-identifier, where i is in the range 1 through 16.

                    Each bit of this bit mask specifies whether or not
                    the corresponding sub-identifiers must match when
                    determining if an OBJECT IDENTIFIER is in this
                    family of view subtrees; a '1' indicates that an
                    exact match must occur; a '0' indicates 'wild card',
                    i.e., any sub-identifier value matches.

                    Thus, the OBJECT IDENTIFIER X of an object instance
                    is contained in a family of view subtrees if, for
                    each sub-identifier of the value of
                    vacmViewTreeFamilySubtree, either:

                      the i-th bit of vacmViewTreeFamilyMask is 0, or

                      the i-th sub-identifier of X is equal to the i-th
                      sub-identifier of the value of
                      vacmViewTreeFamilySubtree.

                    If the value of this bit mask is M bits long and
                    there are more than M sub-identifiers in the
                    corresponding instance of vacmViewTreeFamilySubtree,
                    then the bit mask is extended with 1's to be the
                    required length.

                    Note that when the value of this object is the
                    zero-length string, this extension rule results in
                    a mask of all-1's being used (i.e., no 'wild card'),
                    and the family of view subtrees is the one view
                    subtree uniquely identified by the corresponding
                    instance of vacmViewTreeFamilySubtree.

                    Note that masks of length greater than zero length
                    do not need to be supported. In this case this
                    object is made read-only.
                   "
       DEFVAL      { ''H }
       ::= { vacmViewTreeFamilyEntry 3 }

   vacmViewTreeFamilyType OBJECT-TYPE
       SYNTAX       INTEGER  { included(1), excluded(2) }
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "Indicates whether the corresponding instances of
                    vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask
                    define a family of view subtrees which is included in
                    or excluded from the MIB view.
                   "
       DEFVAL      { included }
       ::= { vacmViewTreeFamilyEntry 4 }

   vacmViewTreeFamilyStorageType OBJECT-TYPE
       SYNTAX       StorageType
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "The storage type for this conceptual row.

                    Conceptual rows having the value 'permanent' need not
                    allow write-access to any columnar objects in the row.
                   "
       DEFVAL      { nonVolatile }
       ::= { vacmViewTreeFamilyEntry 5 }

   vacmViewTreeFamilyStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "The status of this conceptual row.

                    The  RowStatus TC [RFC1903] requires that this
                    DESCRIPTION clause states under which circumstances
                    other objects in this row can be modified:

                    The value of this object has no effect on whether
                    other objects in this conceptual row can be modified.
                   "
       ::= { vacmViewTreeFamilyEntry 6 }

   -- Conformance information *******************************************

   vacmMIBCompliances  OBJECT IDENTIFIER ::= { vacmMIBConformance 1 }
   vacmMIBGroups       OBJECT IDENTIFIER ::= { vacmMIBConformance 2 }

   -- Compliance statements *********************************************

   vacmMIBCompliance MODULE-COMPLIANCE
       STATUS       current
       DESCRIPTION "The compliance statement for SNMP engines which
                    implement the SNMP View-based Access Control Model
                    configuration MIB.
                   "
       MODULE -- this module
           MANDATORY-GROUPS { vacmBasicGroup }

           OBJECT        vacmAccessContextMatch
           MIN-ACCESS    read-only
           DESCRIPTION  "Write access is not required."

           OBJECT        vacmAccessReadViewName
           MIN-ACCESS    read-only
           DESCRIPTION  "Write access is not required."

           OBJECT        vacmAccessWriteViewName
           MIN-ACCESS    read-only
           DESCRIPTION  "Write access is not required."

           OBJECT        vacmAccessNotifyViewName
           MIN-ACCESS    read-only
           DESCRIPTION  "Write access is not required."

           OBJECT        vacmAccessStorageType
           MIN-ACCESS    read-only
           DESCRIPTION  "Write access is not required."

           OBJECT        vacmAccessStatus
           MIN-ACCESS    read-only
           DESCRIPTION  "Create/delete/modify access to the
                         vacmAccessTable is not required.
                        "

           OBJECT        vacmViewTreeFamilyMask
           WRITE-SYNTAX  OCTET STRING (SIZE (0))
           MIN-ACCESS    read-only
           DESCRIPTION  "Support for configuration via SNMP of subtree
                         families using wild-cards is not required.
                        "

           OBJECT        vacmViewTreeFamilyType
           MIN-ACCESS    read-only
           DESCRIPTION  "Write access is not required."

           OBJECT        vacmViewTreeFamilyStorageType
           MIN-ACCESS    read-only
           DESCRIPTION  "Write access is not required."

           OBJECT        vacmViewTreeFamilyStatus
           MIN-ACCESS    read-only
           DESCRIPTION  "Create/delete/modify access to the
                         vacmViewTreeFamilyTable is not required.
                        "
       ::= { vacmMIBCompliances 1 }

   -- Units of conformance **********************************************

   vacmBasicGroup OBJECT-GROUP
       OBJECTS {
                 vacmContextName,
                 vacmGroupName,
                 vacmSecurityToGroupStorageType,
                 vacmSecurityToGroupStatus,
                 vacmAccessContextMatch,
                 vacmAccessReadViewName,
                 vacmAccessWriteViewName,
                 vacmAccessNotifyViewName,
                 vacmAccessStorageType,
                 vacmAccessStatus,
                 vacmViewSpinLock,
                 vacmViewTreeFamilyMask,
                 vacmViewTreeFamilyType,
                 vacmViewTreeFamilyStorageType,
                 vacmViewTreeFamilyStatus
               }
       STATUS       current
       DESCRIPTION "A collection of objects providing for remote
                    configuration of an SNMP engine which implements
                    the SNMP View-based Access Control Model.
                   "
       ::= { vacmMIBGroups 1 }

   END





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.