<?xml version="1.0"?>

<!-- XML file automatically generated by MIB Smithy               -->
<!-- Source: Z:/Projects/MIBSmithy/mibs/rfc3411.mib               -->

<smi xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="http://www.muonics.com/XMLSMI/Schema/XML-SMI-2.0"
     xsi:schemaLocation="http://www.muonics.com/XMLSMI/Schema/XML-SMI-2.0
     http://www.muonics.com/XMLSMI/Schema/XML-SMI-2.0.xsd">

 <module name="SNMP-FRAMEWORK-MIB" language="SMIv2">
  <imports>
   <importsfrom module="SNMPv2-CONF">
    <import symbol="MODULE-COMPLIANCE"/>
    <import symbol="OBJECT-GROUP"/>
   </importsfrom>
   <importsfrom module="SNMPv2-SMI">
    <import symbol="MODULE-IDENTITY"/>
    <import symbol="OBJECT-IDENTITY"/>
    <import symbol="OBJECT-TYPE"/>
    <import symbol="snmpModules"/>
   </importsfrom>
   <importsfrom module="SNMPv2-TC">
    <import symbol="TEXTUAL-CONVENTION"/>
   </importsfrom>
  </imports>
  <typedefs>
   <typedef name="SnmpAdminString" status="current">
    <syntax typeref="OCTET STRING">
     <sizes>
      <size min="0" max="255"/>
     </sizes>
    </syntax>
    <format>255t</format>
    <description>
     <para>
      An octet string containing administrative information, preferably in
      human-readable form.
     </para>
     <para>
      To facilitate internationalization, this information is represented
      using the ISO/IEC IS 10646-1 character set, encoded as an octet string
      using the UTF-8 transformation format described in [RFC2279].
     </para>
     <para>
      Since additional code points are added by amendments to the 10646
      standard from time to time, implementations must be prepared to
      encounter any code point from 0x00000000 to<br/>
      0x7fffffff.  Byte sequences that do not correspond to the valid UTF-8
      encoding of a code point or are outside this range are prohibited.
     </para>
     <para>
      The use of control codes should be avoided.
     </para>
     <para>
      When it is necessary to represent a newline, the control code sequence
      CR LF should be used.
     </para>
     <para>
      The use of leading or trailing white space should be avoided.
     </para>
     <para>
      For code points not directly supported by user interface hardware or
      software, an alternative means of entry and display, such as
      hexadecimal, may be provided.
     </para>
     <para>
      For information encoded in 7-bit US-ASCII, the UTF-8 encoding is
      identical to the US-ASCII encoding.
     </para>
     <para>
      UTF-8 may require multiple bytes to represent a single character /
      code point; thus the length of this object in octets may be different
      from the number of characters encoded.  Similarly, size constraints
      refer to the number of encoded octets, not the number of characters
      represented by an encoding.
     </para>
     <para>
      Note that when this TC is used for an object that is used or
      envisioned to be used as an index, then a SIZE restriction MUST be
      specified so that the number of sub-identifiers for any object
      instance does not exceed the limit of 128, as defined by [RFC3416].
     </para>
     <para>
      Note that the size of an SnmpAdminString object is measured in octets,
      not characters.
     </para>
    </description>
   </typedef>
   <typedef name="SnmpEngineID" status="current">
    <comments>
     <para>
      Textual Conventions used in the SNMP Management Architecture ***
     </para>
    </comments>
    <syntax typeref="OCTET STRING">
     <sizes>
      <size min="5" max="32"/>
     </sizes>
    </syntax>
    <description>
     <para>
      An SNMP engine's administratively-unique identifier. Objects of this
      type are for identification, not for addressing, even though it is
      possible that an address may have been used in the generation of a
      specific value.
     </para>
     <para>
      The value for this object may not be all zeros or all 'ff'H or the
      empty (zero length) string.
     </para>
     <para>
      The initial value for this object may be configured via an operator
      console entry or via an algorithmic function.  In the latter case, the
      following example algorithm is recommended.
     </para>
     <para>
      In cases where there are multiple engines on the same system, the use
      of this algorithm is NOT appropriate, as it would result in all of
      those engines ending up with the same ID value.
     </para>
     <para>
      1) The very first bit is used to indicate how the rest of the data is
      composed.
     </para>
     <para>
      0 - as defined by enterprise using former methods that existed before
      SNMPv3. See item 2 below.
     </para>
     <para>
      1 - as defined by this architecture, see item 3 below.
     </para>
     <para>
      Note that this allows existing uses of the engineID (also known as
      AgentID [RFC1910]) to co-exist with any new uses.
     </para>
     <para>
      2) The snmpEngineID has a length of 12 octets.
     </para>
     <para>
      The first four octets are set to the binary equivalent of the agent's
      SNMP management private enterprise number as assigned by the Internet
      Assigned Numbers Authority (IANA). For example, if Acme Networks has
      been assigned { enterprises 696 }, the first four octets would be
      assigned '000002b8'H.
     </para>
     <para>
      The remaining eight octets are determined via one or more
      enterprise-specific methods. Such methods must be designed so as to
      maximize the possibility that the value of this object will be unique
      in the agent's administrative domain. For example, it may be the IP
      address of the SNMP entity, or the MAC address of one of the
      interfaces, with each address suitably padded with random octets.  If
      multiple methods are defined, then it is recommended that the first
      octet indicate the method being used and the remaining octets be a
      function of the method.
     </para>
     <para>
      3) The length of the octet string varies.
     </para>
     <para>
      The first four octets are set to the binary equivalent of the agent's
      SNMP management private enterprise number as assigned by the Internet
      Assigned Numbers Authority (IANA). For example, if Acme Networks has
      been assigned { enterprises 696 }, the first four octets would be
      assigned '000002b8'H.
     </para>
     <para>
      The very first bit is set to 1. For example, the above value for Acme
      Networks now changes to be '800002b8'H.
     </para>
     <para>
      The fifth octet indicates how the rest (6th and following octets) are
      formatted. The values for the fifth octet are:
     </para>
     <para>
      0     - reserved, unused.
     </para>
     <para>
      1     - IPv4 address (4 octets) lowest non-special IP address
     </para>
     <para>
      2     - IPv6 address (16 octets) lowest non-special IP address
     </para>
     <para>
      3     - MAC address (6 octets) lowest IEEE MAC address, canonical
      order
     </para>
     <para>
      4     - Text, administratively assigned Maximum remaining length 27
     </para>
     <para>
      5     - Octets, administratively assigned Maximum remaining length 27
     </para>
     <para>
      6-127 - reserved, unused
     </para>
     <para>
      128-255 - as defined by the enterprise Maximum remaining length 27
     </para>
    </description>
   </typedef>
   <typedef name="SnmpMessageProcessingModel" status="current">
    <syntax typeref="INTEGER">
     <ranges>
      <range min="0" max="2147483647"/>
     </ranges>
    </syntax>
    <description>
     <para>
      An identifier that uniquely identifies a Message Processing Model of
      the Message Processing Subsystem within this SNMP Management
      Architecture.
     </para>
     <para>
      The values for messageProcessingModel are allocated as follows:
     </para>
     <para>
      - Values between 0 and 255, inclusive, are reserved for
      standards-track Message Processing Models and are managed by the
      Internet Assigned Numbers Authority (IANA).
     </para>
     <para>
      - Values greater than 255 are allocated to enterprise-specific Message
      Processing Models. An enterprise messageProcessingModel value is
      defined to be:
     </para>
     <para>
      enterpriseID * 256 +<br/>
      messageProcessingModel within enterprise
     </para>
     <para>
      For example, the fourth Message Processing Model defined by the
      enterprise whose enterpriseID is 1 would be 259.
     </para>
     <para>
      This scheme for allocating messageProcessingModel values allows for a
      maximum of 255 standards-<br/>
      based Message Processing Models, and for a maximum of 256 Message
      Processing Models per enterprise.
     </para>
     <para>
      It is believed that the assignment of new messageProcessingModel
      values will be rare in practice because the larger the number of
      simultaneously utilized Message Processing Models, the larger the
      chance that interoperability will suffer. It is believed that such a
      range will be sufficient.  In the unlikely event that the standards
      committee finds this number to be insufficient over time, an
      enterprise number can be allocated to obtain an additional 256<br/>
      possible values.
     </para>
     <para>
      Note that the most significant bit must be zero; hence, there are 23
      bits allocated for various organizations to design and define
      non-standard messageProcessingModels.  This limits the ability to
      define new proprietary implementations of Message Processing Models to
      the first 8,388,608 enterprises.
     </para>
     <para>
      It is worthwhile to note that, in its encoded form, the
      messageProcessingModel value will normally require only a single byte
      since, in practice, the leftmost bits will be zero for most messages
      and sign extension is suppressed by the encoding rules.
     </para>
     <para>
      As of this writing, there are several values of messageProcessingModel
      defined for use with SNMP. They are as follows:
     </para>
     <para>
      0  reserved for SNMPv1<br/>
      1  reserved for SNMPv2c<br/>
      2  reserved for SNMPv2u and SNMPv2*<br/>
      3  reserved for SNMPv3
     </para>
    </description>
   </typedef>
   <typedef name="SnmpSecurityLevel" status="current">
    <syntax typeref="INTEGER">
     <enumerations>
      <enumeration name="noAuthNoPriv" value="1"/>
      <enumeration name="authNoPriv" value="2"/>
      <enumeration name="authPriv" value="3"/>
     </enumerations>
    </syntax>
    <description>
     <para>
      A Level of Security at which SNMP messages can be sent or with which
      operations are being processed; in particular, one of:
     </para>
     <para>
      noAuthNoPriv - without authentication and without privacy, authNoPriv 
       - with authentication but without privacy, authPriv     - with
      authentication and with privacy.
     </para>
     <para>
      These three values are ordered such that noAuthNoPriv is less than
      authNoPriv and authNoPriv is less than authPriv.
     </para>
    </description>
   </typedef>
   <typedef name="SnmpSecurityModel" status="current">
    <syntax typeref="INTEGER">
     <ranges>
      <range min="0" max="2147483647"/>
     </ranges>
    </syntax>
    <description>
     <para>
      An identifier that uniquely identifies a Security Model of the
      Security Subsystem within this SNMP Management Architecture.
     </para>
     <para>
      The values for securityModel are allocated as follows:
     </para>
     <para>
      - The zero value does not identify any particular security model.
     </para>
     <para>
      - Values between 1 and 255, inclusive, are reserved for
      standards-track Security Models and are managed by the Internet
      Assigned Numbers Authority (IANA).<br/>
      - Values greater than 255 are allocated to enterprise-specific
      Security Models.  An enterprise-specific securityModel value is
      defined to be:
     </para>
     <para>
      enterpriseID * 256 + security model within enterprise
     </para>
     <para>
      For example, the fourth Security Model defined by the enterprise whose
      enterpriseID is 1 would be 259.
     </para>
     <para>
      This scheme for allocation of securityModel values allows for a
      maximum of 255 standards-<br/>
      based Security Models, and for a maximum of<br/>
      256 Security Models per enterprise.
     </para>
     <para>
      It is believed that the assignment of new securityModel values will be
      rare in practice because the larger the number of simultaneously
      utilized Security Models, the larger the chance that interoperability
      will suffer. Consequently, it is believed that such a range will be
      sufficient.  In the unlikely event that the standards committee finds
      this number to be insufficient over time, an enterprise number can be
      allocated to obtain an additional 256<br/>
      possible values.
     </para>
     <para>
      Note that the most significant bit must be zero; hence, there are 23
      bits allocated for various organizations to design and define
      non-standard securityModels.  This limits the ability to define new
      proprietary implementations of Security Models to the first 8,388,608
      enterprises.
     </para>
     <para>
      It is worthwhile to note that, in its encoded form, the securityModel
      value will normally require only a single byte since, in practice, the
      leftmost bits will be zero for most messages and sign extension is
      suppressed by the encoding rules.
     </para>
     <para>
      As of this writing, there are several values of securityModel defined
      for use with SNMP or reserved for use with supporting MIB objects.
      They are as follows:
     </para>
     <para>
      0  reserved for 'any'<br/>
      1  reserved for SNMPv1<br/>
      2  reserved for SNMPv2c<br/>
      3  User-Based Security Model (USM)
     </para>
    </description>
   </typedef>
  </typedefs>
  <assignments>
   <moduleid name="snmpFrameworkMIB" updated="200210140000Z">
    <organization>
     <para>
      SNMPv3 Working Group
     </para>
    </organization>
    <contact>
     <para>
      WG-EMail:   snmpv3@lists.tislabs.com<br/>
      Subscribe:  snmpv3-request@lists.tislabs.com
     </para>
     <para>
      Co-Chair:   Russ Mundy<br/>
      Network Associates Laboratories<br/>
      postal:     15204 Omega Drive, Suite 300<br/>
      Rockville, MD 20850-4601<br/>
      USA<br/>
      EMail:      mundy@tislabs.com<br/>
      phone:      +1 301-947-7107
     </para>
     <para>
      Co-Chair &amp;<br/>
      Co-editor:  David Harrington<br/>
      Enterasys Networks<br/>
      postal:     35 Industrial Way<br/>
      P. O. Box 5005<br/>
      Rochester, New Hampshire 03866-5005<br/>
      USA<br/>
      EMail:      dbh@enterasys.com<br/>
      phone:      +1 603-337-2614
     </para>
     <para>
      Co-editor:  Randy Presuhn<br/>
      BMC Software, Inc.<br/>
      postal:     2141 North First Street<br/>
      San Jose, California 95131<br/>
      USA<br/>
      EMail:      randy_presuhn@bmc.com<br/>
      phone:      +1 408-546-1006
     </para>
     <para>
      Co-editor:  Bert Wijnen<br/>
      Lucent Technologies<br/>
      postal:     Schagen 33<br/>
      3461 GL Linschoten<br/>
      Netherlands
     </para>
     <para>
      EMail:      bwijnen@lucent.com<br/>
      phone:      +31 348-680-485
     </para>
    </contact>
    <description>
     <para>
      The SNMP Management Architecture MIB
     </para>
     <para>
      Copyright (C) The Internet Society (2002). This version of this MIB
      module is part of RFC 3411; see the RFC itself for full legal
      notices.
     </para>
    </description>
    <revisions>
     <revision date="200210140000Z">
      <description>
       <para>
        Changes in this revision:<br/>
        - Updated various administrative information.<br/>
        - Corrected some typos.<br/>
        - Corrected typo in description of SnmpEngineID that led to range
        overlap for 127.<br/>
        - Changed '255a' to '255t' in definition of SnmpAdminString to align
        with current SMI.<br/>
        - Reworded 'reserved' for value zero in DESCRIPTION of
        SnmpSecurityModel.<br/>
        - The algorithm for allocating security models should give 256 per
        enterprise block, rather than 255.<br/>
        - The example engine ID of 'abcd' is not legal. Replaced with
        '800002b804616263'H based on example enterprise 696, string
        'abc'.<br/>
        - Added clarification that engineID should persist across
        re-initializations. This revision published as RFC 3411.
       </para>
      </description>
     </revision>
     <revision date="199901190000Z">
      <description>
       <para>
        Updated editors' addresses, fixed typos. Published as RFC 2571.
       </para>
      </description>
     </revision>
     <revision date="199711200000Z">
      <description>
       <para>
        The initial version, published in RFC 2271.
       </para>
      </description>
     </revision>
    </revisions>
    <oid>
     <subid name="snmpModules"/>
     <subid value="10"/>
    </oid>
   </moduleid>
   <objectid name="snmpFrameworkAdmin" status="current">
    <comments>
     <para>
      Administrative assignments ***************************************
     </para>
    </comments>
    <oid>
     <subid name="snmpFrameworkMIB"/>
     <subid value="1"/>
    </oid>
   </objectid>
   <objectid name="snmpAuthProtocols" status="current">
    <comments>
     <para>
      Registration Points for Authentication and Privacy Protocols **
     </para>
    </comments>
    <description>
     <para>
      Registration point for standards-track authentication protocols used
      in SNMP Management Frameworks.
     </para>
    </description>
    <oid>
     <subid name="snmpFrameworkAdmin"/>
     <subid value="1"/>
    </oid>
   </objectid>
   <objectid name="snmpPrivProtocols" status="current">
    <description>
     <para>
      Registration point for standards-track privacy protocols used in SNMP
      Management Frameworks.
     </para>
    </description>
    <oid>
     <subid name="snmpFrameworkAdmin"/>
     <subid value="2"/>
    </oid>
   </objectid>
   <objectid name="snmpFrameworkMIBObjects" status="current">
    <oid>
     <subid name="snmpFrameworkMIB"/>
     <subid value="2"/>
    </oid>
   </objectid>
   <objectid name="snmpEngine" status="current">
    <comments>
     <para>
      the snmpEngine Group ********************************************
     </para>
    </comments>
    <oid>
     <subid name="snmpFrameworkMIBObjects"/>
     <subid value="1"/>
    </oid>
   </objectid>
   <objecttype name="snmpEngineID" status="current">
    <syntax typeref="SnmpEngineID"/>
    <access>read-only</access>
    <description>
     <para>
      An SNMP engine's administratively-unique identifier.
     </para>
     <para>
      This information SHOULD be stored in non-volatile storage so that it
      remains constant across re-initializations of the SNMP engine.
     </para>
    </description>
    <oid>
     <subid name="snmpEngine"/>
     <subid value="1"/>
    </oid>
   </objecttype>
   <objecttype name="snmpEngineBoots" status="current">
    <syntax typeref="INTEGER">
     <ranges>
      <range min="1" max="2147483647"/>
     </ranges>
    </syntax>
    <access>read-only</access>
    <description>
     <para>
      The number of times that the SNMP engine has<br/>
      (re-)initialized itself since snmpEngineID was last configured.
     </para>
    </description>
    <oid>
     <subid name="snmpEngine"/>
     <subid value="2"/>
    </oid>
   </objecttype>
   <objecttype name="snmpEngineTime" status="current">
    <syntax typeref="INTEGER">
     <ranges>
      <range min="0" max="2147483647"/>
     </ranges>
    </syntax>
    <access>read-only</access>
    <units>seconds</units>
    <description>
     <para>
      The number of seconds since the value of the snmpEngineBoots object
      last changed. When incrementing this object's value would cause it to
      exceed its maximum, snmpEngineBoots is incremented as if a
      re-initialization had occurred, and this object's value consequently
      reverts to zero.
     </para>
    </description>
    <oid>
     <subid name="snmpEngine"/>
     <subid value="3"/>
    </oid>
   </objecttype>
   <objecttype name="snmpEngineMaxMessageSize" status="current">
    <syntax typeref="INTEGER">
     <ranges>
      <range min="484" max="2147483647"/>
     </ranges>
    </syntax>
    <access>read-only</access>
    <description>
     <para>
      The maximum length in octets of an SNMP message which this SNMP engine
      can send or receive and process, determined as the minimum of the
      maximum message size values supported among all of the transports
      available to and supported by the engine.
     </para>
    </description>
    <oid>
     <subid name="snmpEngine"/>
     <subid value="4"/>
    </oid>
   </objecttype>
   <objectid name="snmpFrameworkMIBConformance" status="current">
    <oid>
     <subid name="snmpFrameworkMIB"/>
     <subid value="3"/>
    </oid>
   </objectid>
   <objectid name="snmpFrameworkMIBCompliances" status="current">
    <comments>
     <para>
      Conformance information ******************************************
     </para>
    </comments>
    <oid>
     <subid name="snmpFrameworkMIBConformance"/>
     <subid value="1"/>
    </oid>
   </objectid>
   <compliance name="snmpFrameworkMIBCompliance" status="current">
    <comments>
     <para>
      compliance statements
     </para>
    </comments>
    <description>
     <para>
      The compliance statement for SNMP engines which implement the SNMP
      Management Framework MIB.
     </para>
    </description>
    <oid>
     <subid name="snmpFrameworkMIBCompliances"/>
     <subid value="1"/>
    </oid>
    <modules>
     <module name="SNMP-FRAMEWORK-MIB">
      <requires>
       <group name="snmpEngineGroup"/>
      </requires>
     </module>
    </modules>
   </compliance>
   <objectid name="snmpFrameworkMIBGroups" status="current">
    <oid>
     <subid name="snmpFrameworkMIBConformance"/>
     <subid value="2"/>
    </oid>
   </objectid>
   <objectgroup name="snmpEngineGroup" status="current">
    <comments>
     <para>
      units of conformance
     </para>
    </comments>
    <objects>
     <object name="snmpEngineID"/>
     <object name="snmpEngineBoots"/>
     <object name="snmpEngineTime"/>
     <object name="snmpEngineMaxMessageSize"/>
    </objects>
    <description>
     <para>
      A collection of objects for identifying and determining the
      configuration and current timeliness values of an SNMP engine.
     </para>
    </description>
    <oid>
     <subid name="snmpFrameworkMIBGroups"/>
     <subid value="1"/>
    </oid>
   </objectgroup>
  </assignments>
 </module>

</smi>

