OPSAWG                                                           H. Asai
Internet-Draft                                                 Y. Sekiya
Intended status: Standards Track                 The University of Tokyo
Expires: January 31, 2013                                       K. Shima
                                           IIJ Innovation Institute Inc.
                                                                H. Esaki
                                                 The University of Tokyo
                                                           July 30, 2012


      Management Information Base for the Virtual Machine Manager
                         draft-asai-vmm-mib-00

Abstract

   This document defines a portion of the Management Information Base
   (MIB) for use with network management protocols in the Internet
   community.  In particular, this specifies managed objects that are
   used for virtual machine managers (a.k.a. hypervisors) and virtual
   machines running on them.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on January 31, 2013.

Copyright Notice

   Copyright (c) 2012 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect



Asai, et al.            Expires January 31, 2013                [Page 1]


Internet-Draft         Virtual Machine Manager MIB             July 2012


   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Requirements Language  . . . . . . . . . . . . . . . . . .  3
   2.  The SNMP Network Management Framework  . . . . . . . . . . . .  4
   3.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . .  6
   4.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 24
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . . 25
   6.  Normative References . . . . . . . . . . . . . . . . . . . . . 27
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 29



































Asai, et al.            Expires January 31, 2013                [Page 2]


Internet-Draft         Virtual Machine Manager MIB             July 2012


1.  Introduction

   This document defines a portion of the Management Information Base
   (MIB) for use with network management protocols in the Internet
   community.  In particular, this specifies managed objects that are
   used for virtual machine managers (a.k.a. hypervisors) and virtual
   machines running on them.  A virtual machine manager manages multiple
   virtual machines on a single physical machine by allocating resources
   to each virtual machine using virtualization technologies.  Thus, the
   MIB objects include information on virtual CPUs, virtual storages,
   and virtual netwrok interfaces of virtual machines as well as
   hypervisor's hardware and software information.

1.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119.

































Asai, et al.            Expires January 31, 2013                [Page 3]


Internet-Draft         Virtual Machine Manager MIB             July 2012


2.  The SNMP Network Management Framework

   The SNMP Network Management Framework presently consists of three
   major components;

   o  An overall architecture, described in RFC 3411 [RFC3411]

   o  Mechanisms for describing and naming objects and events for the
      purpose of management.  The first version of this Structure of
      Management Information (SMI) is called SMIv1 and described in STD
      16, RFC 1155 [RFC1155], STD 16, RFC 1212 [RFC1212] and RFC 1215
      [RFC1215].  The second version, called SMIv2, is described in STD
      58, RFC 2578 [RFC2578], RFC 2579 [RFC2579] and RFC 2580 [RFC2580].

   o  Message protocols for transferring management information.  The
      first version of the SNMP message protocol is called SNMPv1 and
      described in STD 15, RFC 1157 [RFC1157].  A second version of the
      SNMP message protocol, which is not an Internet standards track
      protocol, is called SNMPv2c and described in RFC 1901 [RFC1901]
      and RFC 3417 [RFC3417].  The third version of the message protocol
      is called SNMPv3 and described in RFC 3412 [RFC3412], RFC 3414
      [RFC3414] and RFC 3417 [RFC3417].

   o  Protocol operations for accessing management information.  The
      first set of protocol operations and associated PDU formats is
      described in STD 15, RFC 1157 [RFC1157].  A second set of protocol
      operations and associated PDU formats is described in RFC 3416
      [RFC3416].

   o  A set of fundamental applications described in RFC 2573 [RFC2573]
      and the view-based access control mechanism described in RFC 2575
      [RFC2575].

   A more detailed introduction to the current SNMP Management Framework
   can be found in RFC 3410 [RFC3410].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  Objects in the MIB are
   defined using the mechanisms defined in the SMI.

   This document specifies a MIB module that is compliant to the SMIv2.
   A MIB conforming to the SMIv1 can be produced through the appropriate
   translations.  The resulting translated MIB must be semantically
   equivalent, except where objects or events are omitted because no
   translation is possible (use of Counter64).  Some machine readable
   information in SMIv2 will be converted into textual descriptions in
   SMIv1 during the translation process.  However, this loss of machine
   readable information is not considered to change the semantics of the



Asai, et al.            Expires January 31, 2013                [Page 4]


Internet-Draft         Virtual Machine Manager MIB             July 2012


   MIB.


















































Asai, et al.            Expires January 31, 2013                [Page 5]


Internet-Draft         Virtual Machine Manager MIB             July 2012


3.  Definitions

   VMM-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, TimeTicks, Counter32, Integer32,
       mib-2
           FROM SNMPv2-SMI
       DisplayString, TEXTUAL-CONVENTION
           FROM SNMPv2-TC
       InterfaceIndexOrZero
           FROM IF-MIB;

   VirtualMachineIndex ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION
               "A unique value, greater than zero, for each virtual
               machine in the managed hypervisor.  The value for each
               virtual machine must remain constant at least from one
               re-initialization of the entity's hypervisor to the next
               re-initialization."
       SYNTAX       Integer32 (1..2147483647)

   VirtualMachineUUID ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "8X-4X-4X-4X-12X"
       STATUS       current
       DESCRIPTION
               "A unique value, a 128-bit value guaranteed to be unique
               over both space and time represented as a
               hyphen-punctuated ASCII string of the form
               `8X-4X-4X-4X-12X', for each virtual machine in the
               managed hypervisor.  See [RFC4122]."
       SYNTAX       DisplayString (SIZE (36))

   HypervisorCPUIndex ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION
               "A unique value, greater than zero, for each physical
               CPU on a hypervisor.  For the indexes, sequential values
               are usually used."
       SYNTAX       Integer32 (1..2147483647)

   VirtualCPUIndex ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION



Asai, et al.            Expires January 31, 2013                [Page 6]


Internet-Draft         Virtual Machine Manager MIB             July 2012


               "A unique value, greater than zero, for each virtual CPU
               on a virtual machine.  For the indexes, sequential
               values are usually used."
       SYNTAX       Integer32 (1..2147483647)

   VirtualStorageIndex ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION
               "A unique value, greater than zero, for each virtual
               storage on a virtual machine.  The value for each
               virtual storage must remain constant at least from one
               re-initialization of the entity's virtual machine to the
               next re-initialization."
       SYNTAX       Integer32 (1..2147483647)

   VirtualInterfaceIndex ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION
               "A unique value, greater than zero, for each virtual
               network interface on a virtual machine.  For the indexes,
               sequential values are usually used."
       SYNTAX       Integer32 (1..2147483647)


   vmm-mib MODULE-IDENTITY
       LAST-UPDATED "201207300000Z"        -- 30 July 2012
       ORGANIZATION "IETF Operations and Management Area Working Group"
       CONTACT-INFO
               "   Hirochika Asai
                   The University of Tokyo
                   7-3-1 Hongo
                   Bunkyo-ku, Tokyo  113-8656
                   Japan

                   +81 3 5841 6748
                   panda@hongo.wide.ad.jp"
       DESCRIPTION
               "This MIB is for use in managing virtual machines on a
               hypervisor.  The OID `TBD' must be assigned by IANA when
               this becomes an official
               document."
       ::= { mib-2 TBD }


   -- The hypervisor group
   --



Asai, et al.            Expires January 31, 2013                [Page 7]


Internet-Draft         Virtual Machine Manager MIB             July 2012


   -- A collection of objects common to all hypervisors.
   --
   hypervisor     OBJECT IDENTIFIER ::= { vmm-mib 1 }

   hvSoftware OBJECT-TYPE
       SYNTAX      DisplayString (SIZE (0..255))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A textual description of the hypervisor software.  This
               value should not include its version, and it should be
               included in `hvSersion'."
       ::= { hypervisor 1 }

   hvVersion OBJECT-TYPE
       SYNTAX      DisplayString (SIZE (0..255))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A textual description of the version of the hypervisor
               software."
       ::= { hypervisor 2 }

   hvObjectID OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The vendor's authoritative identification of the
               hypervisor software contained in the entity.  This value
               is allocated within the SMI enterprises
               subtree (1.3.6.1.4.1).  Note that this is different from
               sysObjectID in the SNMPv2-MIB [RFC3418] because
               sysObjectID is not the identification of the hypervisor
               software but the device, firmware, or management
               operating system."
       ::= { hypervisor 3 }

   hvUpTime OBJECT-TYPE
       SYNTAX      TimeTicks
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The time (in centi-seconds) since the hypervisor was
               last re-initialized.  Note that this is different from
               sysUpTime in the SNMPv2-MIB [RFC3418] and hrSystemUptime
               in the HOST-RESOURCES-MIB [RFC2790] because sysUpTime is
               the uptime of the network management portion of the



Asai, et al.            Expires January 31, 2013                [Page 8]


Internet-Draft         Virtual Machine Manager MIB             July 2012


               system, and hrSystemUptime is the uptime of the
               management operating system but not the hypervisor
               software."
       ::= { hypervisor 4 }

   -- Physical CPUs
   hvCpuNumber  OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of physical CPUs (cores) on this hypervisor."
       ::= { hypervisor 5 }

   hvCpuTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF HvCpuEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "A list of hypervisor's CPU entries.  The number of
               entries is given by the value of hvCpuNumber."
       ::= { hypervisor 6 }

   hvCpuEntry OBJECT-TYPE
       SYNTAX      VmEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "An entry containing management information applicable
               to a particular CPU on this hypervisor."
       INDEX   { hvCpuIndex }
       ::= { hvCpuTable 1 }

   HvCpuEntry ::=
       SEQUENCE {
           hvCpuIndex              HypervisorCPUIndex,
           hvCpuDeviceIndex        Integer32,
           hvCpuClockRate          Integer32
       }

   hvCpuIndex OBJECT-TYPE
       SYNTAX      HypervisorCPUIndex
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A unique value, greater than zero, for each physical
               CPU on this hypervisor.  It is recommended that values
               are assigned contiguously starting from 1."



Asai, et al.            Expires January 31, 2013                [Page 9]


Internet-Draft         Virtual Machine Manager MIB             July 2012


       ::= { hvCpuEntry 1 }

   hvCpuDeviceIndex OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The value of hrDeviceIndex which corresponds to this
               CPU.  If this device is not represented in the
               hvProcessorTable, then this value shall be zero."
       ::= { hvCpuEntry 2 }

   hvCpuClockRate OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The clock rate (i.e., frequency) of a CPU in KHz.  If
               this property is not available, the value shall be
               zero."
       ::= { hvCpuEntry 3 }


   -- The virtual machine group
   --
   -- A collection of objects common to all virtual machines.
   --
   vms            OBJECT IDENTIFIER ::= { vmm-mib 2 }

   vmNumber  OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of virtual machines (regardless of their
               current state) present on this hypervisor."
       ::= { vms 1 }

   vmTableLastChange  OBJECT-TYPE
       SYNTAX      TimeTicks
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The value of sysUpTime at the time of the last creation
               or deletion of an entry in the vmTable."
       ::= { vms 2 }

   vmTable OBJECT-TYPE



Asai, et al.            Expires January 31, 2013               [Page 10]


Internet-Draft         Virtual Machine Manager MIB             July 2012


       SYNTAX      SEQUENCE OF VmEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "A list of virtual machine entries.  The number of
               entries is given by the value of vmNumber."
       ::= { vms 3 }

   vmEntry OBJECT-TYPE
       SYNTAX      VmEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "An entry containing management information applicable
               to a particular virtual machine."
       INDEX   { vmIndex }
       ::= { vmTable 1 }

   VmEntry ::=
       SEQUENCE {
           vmIndex                 VirtualMachineIndex,
           vmName                  DisplayString,
           vmUUID                  VirtualMachineUUID,
           vmOSType                DisplayString,
           vmAdminState            Integer32,
           vmState                 Integer32,
           vmVcpuNumber            Integer32,
           vmCpuTime               Counter64,
           vmMemUnit               Integer32,
           vmMaxMem                Integer32,
           vmMinMem                Integer32,
           vmCurMem                Integer32,
           vmStorageNumber         Integer32,
           vmIfNumber              Integer32,
           vmAutoStart             Integer32,
           vmPersistent            Integer32
       }

   vmIndex OBJECT-TYPE
       SYNTAX      VirtualMachineIndex
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A unique value, greater than zero, for each virtual
               machine.  It is recommended that values are assigned
               contiguously starting from 1.  The value for each
               virtual machine must remain constant at least from one
               re-initialization of the entity's hypervisor to the next



Asai, et al.            Expires January 31, 2013               [Page 11]


Internet-Draft         Virtual Machine Manager MIB             July 2012


               re-initialization."
       ::= { vmEntry 1 }

   vmName OBJECT-TYPE
       SYNTAX      DisplayString (SIZE (0..255))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A textual string containing information about the
               virtual machine name."
       ::= { vmEntry 2 }

   vmUUID OBJECT-TYPE
       SYNTAX      VirtualMachineUUID
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A textual hyphen-punctuated ASCII string of the virtual
               machine's 128-bit UUID."
       ::= { vmEntry 3 }

   vmOSType OBJECT-TYPE
       SYNTAX      DisplayString (SIZE (0..255))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A textual string containing operating system
               information running on the virtual machine."
       ::= { vmEntry 4 }

   vmAdminState OBJECT-TYPE
       SYNTAX      Integer32 {
                       unknown(0),   -- unknown
                       on(1),        -- power on
                       off(2),       -- power off
                       pause(3)      -- hibernate / suspend
                   }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "The administrative power state of the virtual machine.
               Note that a virtual machine is supposed to be resumed
               when vmAdminState of the virtual machine is changed from
               pause(3) to on(1)."
       ::= { vmEntry 5 }

   vmState OBJECT-TYPE
       SYNTAX      Integer32 {



Asai, et al.            Expires January 31, 2013               [Page 12]


Internet-Draft         Virtual Machine Manager MIB             July 2012


                       unknown(0),  -- unknown state
                       noState(1),   -- no state
                       running(2),   -- running
                       blocked(3),   -- blocked on resource
                       paused(4),    -- paused by user
                       shutdown(5),  -- being shutdown
                       shutoff(6),   -- shutoff
                       crashed(7)    -- crashed
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The current state of the virtual machine."
       ::= { vmEntry 6 }

   vmVcpuNumber OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of virtual CPUs on the virtual machine."
       ::= { vmEntry 7 }

   vmCpuTime OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total CPU utilization time in nanosecond.  If the
               number of virtual CPUs is larger than 1, vmCpuTime may
               exceed real time."
       ::= { vmEntry 8 }

   vmMemUnit OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The multiplication unit for vmMaxMem, vmMinMem, and
               vmCurMem.  For example, when this value is 4096, the
               memory size unit for vmMaxMem, vmMinMem, and vmCurMem is
               KiB."
       ::= { vmEntry 9 }

   vmMaxMem OBJECT-TYPE
       SYNTAX      Integer32 (0..2147483647)
       MAX-ACCESS  read-write
       STATUS      current



Asai, et al.            Expires January 31, 2013               [Page 13]


Internet-Draft         Virtual Machine Manager MIB             July 2012


       DESCRIPTION
               "The maximum memory size defined to the virtual machine
               in the unit designated by vmMemUnit."
       ::= { vmEntry 10 }

   vmMinMem OBJECT-TYPE
       SYNTAX      Integer32 (0..2147483647)
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "The minimum memory size defined to the virtual machine
               in the unit designated by vmMemUnit."
       ::= { vmEntry 11 }

   vmCurMem OBJECT-TYPE
       SYNTAX      Integer32 (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The current memory size allocated to the virtual
               machine in the unit designated by vmMemUnit."
       ::= { vmEntry 12 }

   vmStorageNumber OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of storage devices attached to the virtual
               machine."
       ::= { vmEntry 13 }

   vmIfNumber OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of network interfaces attached to the
               virtual machine."
       ::= { vmEntry 14 }

   vmAutoStart OBJECT-TYPE
       SYNTAX      Integer32 {
                       unknown(0),   -- unknown
                       enable(1),    -- enabled
                       disable(2)
                   }
       MAX-ACCESS  read-write



Asai, et al.            Expires January 31, 2013               [Page 14]


Internet-Draft         Virtual Machine Manager MIB             July 2012


       STATUS      current
       DESCRIPTION
               "The autostart configuration of the virtual machine."
       ::= { vmEntry 15 }

   vmPersistent OBJECT-TYPE
       SYNTAX      Integer32 {
                       unknown(0),       -- unknown
                       persistent(1),    -- persistent
                       transient(2)      -- transient
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "This value indicates whether the virtual machine has a
               persistent configuration which means the virtual machine
               will still exist after shutting down."
       ::= { vmEntry 16 }


   -- The virtual CPU group
   --
   -- A collection of objects common to all virtual CPUs.
   --
   vcpus          OBJECT IDENTIFIER ::= { vms 4 }

   vcpuTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF VcpuEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "A list of virtual CPUs associated with virtual
               machines.  The number of entries for each virtual
               machine is given by the value of vmCpusNumber."
       ::= { vcpus 1 }

   vcpuEntry OBJECT-TYPE
       SYNTAX      VcpuEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "An entry containing virtual CPU information
               associated with a particular virtual machine."
       INDEX   { vmIndex, vcpuIndex }
       ::= { vcpuTable 1 }

   VcpuEntry ::=
       SEQUENCE {



Asai, et al.            Expires January 31, 2013               [Page 15]


Internet-Draft         Virtual Machine Manager MIB             July 2012


           vcpuIndex               VirtualCPUIndex,
           vcpuCpuTime             Counter64
       }

   vcpuIndex OBJECT-TYPE
       SYNTAX      VirtualCPUIndex
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A unique value, greater than zero, for each virtual
               CPU.  It is recommended that values are assigned
               contiguously starting from 1."
       ::= { vcpuEntry 1 }

   vcpuCpuTime OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total CPU utilization time of this virtual CPU in
               nanosecond."
       ::= { vcpuEntry 2 }

   -- Affinity
   vcpuAffinityTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF VcpuAffinityEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "A list of CPU affinity entries of a virtual CPU."
       ::= { vcpus 2 }

   vcpuAffinityEntry OBJECT-TYPE
       SYNTAX      VcpuAffinityEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "An entry containing CPU affinity
               associated with a particular virtual machine."
       INDEX   { vmIndex, vcpuIndex, vcpuHvCpuIndex }
       ::= { vcpuAffinityTable 1 }

   VcpuAffinityEntry ::=
       SEQUENCE {
           vcpuHvCpuIndex          HypervisorCPUIndex,
           vcpuAffinity            Integer32,
           vcpuHvCpuTime           Counter64
       }



Asai, et al.            Expires January 31, 2013               [Page 16]


Internet-Draft         Virtual Machine Manager MIB             July 2012


   vcpuHvCpuIndex OBJECT-TYPE
       SYNTAX      HypervisorCPUIndex
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The value of hvCpuIndex which corresponds to this
               virtual CPU.  Note that this device must be represented
               in the hvCpuTable."
       ::= { vcpuAffinityEntry 1 }

   vcpuAffinity OBJECT-TYPE
       SYNTAX      Integer32 {
                       unknown(0),   -- unknown
                       enable(1),    -- enabled
                       diable(2)     -- disabled
                   }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "The CPU affinity to the physical CPU represented by
               vcpuHvCpuIndex of this virtual CPU."
       ::= { vcpuAffinityEntry 2 }

   vcpuHvCpuTime OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The CPU utilization time of this virtual CPU
               corresponding to this hypervisor's CPU in nanosecond.
               This shall be zero if the hypervisor does not maintain
               such information."
       ::= { vcpuAffinityEntry 3 }


   -- The virtual storage group
   --
   -- A collection of objects common to all virtual storage devices.
   -- This document defines some overlapped objects with hrStorage in
   -- HOST-RESOURCES-MIB [RFC2790], because virtual storage shall be an
   -- image file, which is not the `host resource', on the hypervisor's
   -- filesystem, which is the `host resource'.
   --
   vstorage       OBJECT IDENTIFIER ::= { vms 5 }

   vstorageTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF VstorageEntry
       MAX-ACCESS  not-accessible



Asai, et al.            Expires January 31, 2013               [Page 17]


Internet-Draft         Virtual Machine Manager MIB             July 2012


       STATUS      current
       DESCRIPTION
               "A list of virtual storage devices associated with
               virtual machines.  The number of entries for each
               virtual machine is given by the value of
               vmStorageNumber."
       ::= { vstorage 1 }

   vstorageEntry OBJECT-TYPE
       SYNTAX      VStorageEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "An entry containing virtual storage information
               associated with a particular virtual machine."
       INDEX   { vmIndex, vstorageIndex }
       ::= { vstorageTable 1 }

   VstorageEntry ::=
       SEQUENCE {
           vstorageIndex           VirtualStorageIndex,
           vstorageName            DisplayString,
           vstorageType            Integer32,
           vstorageTypeHint        DisplayString,
           vstorageResourceID      DisplayString,
           vstorageSizeUnit        Integer32,
           vstorageDefinedSize     Integer32,
           vstorageAllocatedSize   Integer32
       }

   vstorageIndex OBJECT-TYPE
       SYNTAX      VirtualStorageIndex
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A unique value, greater than zero, for each virtual
               storage.  It is recommended that values are assigned
               contiguously starting from 1 to recognize the order of
               virtual storage devices allocated to the virtual
               machine."
       ::= { vstorageEntry 1 }

   vstorageName OBJECT-TYPE
       SYNTAX      DisplayString (SIZE (0..255))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A textual string containing the virtual storage



Asai, et al.            Expires January 31, 2013               [Page 18]


Internet-Draft         Virtual Machine Manager MIB             July 2012


               device."
       ::= { vstorageEntry 2 }

   vstorageType OBJECT-TYPE
       SYNTAX      Integer32 {
                       unknown(0),   -- unknown format
                       block(1),     -- block device
                       raw(2),       -- raw file
                       sparse(3),    -- sparse file
                       network(4)    -- network
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The type of the virtual storage."
       ::= { vstorageEntry 3 }

   vstorageTypeHint OBJECT-TYPE
       SYNTAX      DisplayString (SIZE (0..255))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A textual string of the virtual storage type.  For
               example, this represents the specific format name of the
               sparse file."
       ::= { vstorageEntry 4 }

   vstorageResourceID OBJECT-TYPE
       SYNTAX      DisplayString (SIZE (0..255))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A textual string that represents the resource
               identifier of the virtual storage.  For example, this
               contains the path to the disk image file that
               corresponds to the virtual storage."
       ::= { vstorageEntry 5 }

   vstorageSizeUnit OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The multiplication unit for vstorageSize.  For
               example, when this value is 1048576, the storage size
               unit for vstorageDefinedSize and vstorageAllocatedSize
               is MiB."
       ::= { vstorageEntry 6 }



Asai, et al.            Expires January 31, 2013               [Page 19]


Internet-Draft         Virtual Machine Manager MIB             July 2012


   vstorageDefinedSize OBJECT-TYPE
       SYNTAX      Integer32 (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The defined virtual storage size defined in the unit
               designated by vstorageSizeUnit.  If this information is
               not available, this value shall be zero."
       ::= { vstorageEntry 7 }

   vstorageAllocatedSize OBJECT-TYPE
       SYNTAX      Integer32 (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The storage size allocated to the virtual storage from
               a physical storage in the unit designated by
               vstorageSizeUnit.  When the virtual storage is block
               device or raw file, this value and vstorageDefinedSize
               are supposed to equal.  If this information is not
               available, this value shall be zero."
       ::= { vstorageEntry 8 }


   -- The virtual network interface group
   --
   -- A collection of objects common to all virtual network interfaces.
   --
   vif            OBJECT IDENTIFIER ::= { vms 6 }

   vifTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF VifEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "A list of virtual network interfaces associated with
               virtual machines.  The number of entries for each
               virtual machine is given by the value of vmIfNumber."
       ::= { vif 1 }

   vifEntry OBJECT-TYPE
       SYNTAX      VifEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "An entry containing virtual network interface
               information associated with a particular virtual
               machine."



Asai, et al.            Expires January 31, 2013               [Page 20]


Internet-Draft         Virtual Machine Manager MIB             July 2012


       INDEX   { vmIndex, vifIndex }
       ::= { vifTable 1 }

   VifEntry ::=
       SEQUENCE {
           vifIndex                VirtualInterfaceIndex,
           vifNetworkIndex         InterfaceIndexOrZero,
           vifName                 DisplayString,
           vifModel                DisplayString
       }

   vifIndex OBJECT-TYPE
       SYNTAX      VirtualInterfaceIndex
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A unique value, greater than zero, for each virtual
               network interface.  It is recommended that values are
               assigned contiguously starting from 1 to recognize the
               order of virtual network interfaces allocated to the
               virtual machine."
       ::= { vifEntry 1 }

   vifNetworkIndex OBJECT-TYPE
       SYNTAX      InterfaceIndexOrZero
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The value of ifIndex which corresponds to this virtual
               network interface.  If this device is not represented in
               the ifTable, then this value shall be zero."
       ::= { vifEntry 2 }


   vifName OBJECT-TYPE
       SYNTAX      DisplayString (SIZE (0..255))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A textual string containing the virtual network
               interface."
       ::= { vifEntry 3 }

   vifModel OBJECT-TYPE
       SYNTAX      DisplayString (SIZE (0..255))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION



Asai, et al.            Expires January 31, 2013               [Page 21]


Internet-Draft         Virtual Machine Manager MIB             July 2012


               "A textual string containing the (emulated) model of
               virtual network interface."
       ::= { vifEntry 4 }

   vifPhysAddress OBJECT-TYPE
       SYNTAX      PhysAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The MAC address of virtual network interface."
       ::= { vifEntry 5 }

   -- Conformance
   vmConformance  OBJECT IDENTIFIER ::= { vms 7 }
   vmGroups       OBJECT IDENTIFIER ::= { vmConformance 1 }
   vmCompliances  OBJECT IDENTIFIER ::= { vmConformance 2 }

   -- Compliance statement
   vmCompliance MODULE-COMPLIANCE
       STATUS      current
       DESCRIPTION
               "The compliance statement for SNMP entities which have
               virtual machines."
       MODULE
           MANDATORY-GROUPS { vmNotificationGroup }
       ::= { vmCompliances 1 }

   vmNotificationGroup NOTIFICATION-GROUP
       NOTIFICATIONS {
           vmAdminStateChange
       }
       STATUS      current
       DESCRIPTION
               "The notifications which indicate specific changes in the
               value of vmAdminState."
       ::= { vmGroups 1 }


   -- Trap
   vmTrap         OBJECT IDENTIFIER ::= { vms 8 }

   vmAdminStateChange NOTIFICATION-TYPE
       OBJECTS { vmIndex, vmName, vmUUID, vmAdminState, vmState }
       STATUS      current
       DESCRIPTION
               "A vmAdminStateChange trap signifies that the SNMP
               entity, acting in an agent role, has detected the
               changes in the value of vmAdminState object."



Asai, et al.            Expires January 31, 2013               [Page 22]


Internet-Draft         Virtual Machine Manager MIB             July 2012


   END


















































Asai, et al.            Expires January 31, 2013               [Page 23]


Internet-Draft         Virtual Machine Manager MIB             July 2012


4.  IANA Considerations

   The MIB module in this document uses the following IANA-assigned
   OBJECT IDENTIFIER values recorded in the SMI Numbers registry:

         Descriptor        OBJECT IDENTIFIER value
         ----------        -----------------------

         vmm-mib           { mib-2 TBD }










































Asai, et al.            Expires January 31, 2013               [Page 24]


Internet-Draft         Virtual Machine Manager MIB             July 2012


5.  Security Considerations

   There are a number of management objects defined in this MIB that
   have a MAX-ACCESS clause of read-write and/or read-create.  Such
   objects may be considered sensitive or vulnerable in some network
   environments.  The support for SET operations in a non-secure
   environment without proper protection can have a negative effect on
   virtual machine manager and virtual machine operations.

   There are a number of managed objects in this MIB that may contain
   sensitive information.  The objects in the hvSoftware and hvVersion
   list information about the virtual machine manager's software and
   version.  Some may wish not to disclose to others which software they
   are running.  Further, an inventory of the running software and
   versions may be helpful to an attacker who hopes to exploit software
   bugs in certain applications.  Moreover, the objects in the vmTable,
   vstorage, and vif list information about the virtual machines, and
   their resources.  Some may wish not to disclose to others how many
   and what virtual machines they are operating.

   It is thus important to control even GET access to these objects and
   possibly to even encrypt the values of these object when sending them
   over the network via SNMP.  Not all versions of SNMP provide features
   for such a secure environment.

   It is recommended that attention be specifically given to
   implementing the MAX-ACCESS clause in a number of objects, including
   vmAdminState, vmMaxMem, vmMinMem, vmAutoStart, and vcpuAffinity in
   scenarios that DO NOT use SNMPv3 strong security (i.e. authentication
   and encryption).  Extreme caution must be used to minimize the risk
   of cascading security vulnerabilities when SNMPv3 strong security is
   not used.  When SNMPv3 strong security is not used, these objects
   should have access of read-only, not read-create.

   SNMPv1 by itself is not a secure environment.  Even if the network
   itself is secure (for example by using IPsec), even then, there is no
   control as to who on the secure network is allowed to access and GET/
   SET (read/change/create/delete) the objects in this MIB.

   It is recommended that the implementers consider the security
   features as provided by the SNMPv3 framework.  Specifically, the use
   of the User-based Security Model RFC 3414 [RFC3414] and the View-
   based Access Control Model RFC 3415 [RFC3415] is recommended.

   It is then a customer/user responsibility to ensure that the SNMP
   entity giving access to an instance of this MIB, is properly
   configured to give access to the objects only to those principals
   (users) that have legitimate rights to indeed GET or SET (change/



Asai, et al.            Expires January 31, 2013               [Page 25]


Internet-Draft         Virtual Machine Manager MIB             July 2012


   create/delete) them.


















































Asai, et al.            Expires January 31, 2013               [Page 26]


Internet-Draft         Virtual Machine Manager MIB             July 2012


6.  Normative References

   [RFC1155]  Rose, M. and K. McCloghrie, "Structure and identification
              of management information for TCP/IP-based internets",
              STD 16, RFC 1155, May 1990.

   [RFC1157]  Case, J., Fedor, M., Schoffstall, M., and J. Davin,
              "Simple Network Management Protocol (SNMP)", STD 15,
              RFC 1157, May 1990.

   [RFC1212]  Rose, M. and K. McCloghrie, "Concise MIB definitions",
              STD 16, RFC 1212, March 1991.

   [RFC1215]  Rose, M., "Convention for defining traps for use with the
              SNMP", RFC 1215, March 1991.

   [RFC1901]  Case, J., McCloghrie, K., McCloghrie, K., Rose, M., and S.
              Waldbusser, "Introduction to Community-based SNMPv2",
              RFC 1901, January 1996.

   [RFC2573]  Levi, D., Meyer, P., and B. Stewart, "SNMP Applications",
              RFC 2573, April 1999.

   [RFC2575]  Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based
              Access Control Model (VACM) for the Simple Network
              Management Protocol (SNMP)", RFC 2575, April 1999.

   [RFC2578]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
              Schoenwaelder, Ed., "Structure of Management Information
              Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.

   [RFC2579]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
              Schoenwaelder, Ed., "Textual Conventions for SMIv2",
              STD 58, RFC 2579, April 1999.

   [RFC2580]  McCloghrie, K., Perkins, D., and J. Schoenwaelder,
              "Conformance Statements for SMIv2", STD 58, RFC 2580,
              April 1999.

   [RFC2790]  Waldbusser, S. and P. Grillo, "Host Resources MIB",
              RFC 2790, March 2000.

   [RFC2863]  McCloghrie, K. and F. Kastenholz, "The Interfaces Group
              MIB", RFC 2863, June 2000.

   [RFC3410]  Case, J., Mundy, R., Partain, D., and B. Stewart,
              "Introduction and Applicability Statements for Internet-
              Standard Management Framework", RFC 3410, December 2002.



Asai, et al.            Expires January 31, 2013               [Page 27]


Internet-Draft         Virtual Machine Manager MIB             July 2012


   [RFC3411]  Harrington, D., Presuhn, R., and B. Wijnen, "An
              Architecture for Describing Simple Network Management
              Protocol (SNMP) Management Frameworks", STD 62, RFC 3411,
              December 2002.

   [RFC3412]  Case, J., Harrington, D., Presuhn, R., and B. Wijnen,
              "Message Processing and Dispatching for the Simple Network
              Management Protocol (SNMP)", STD 62, RFC 3412,
              December 2002.

   [RFC3414]  Blumenthal, U. and B. Wijnen, "User-based Security Model
              (USM) for version 3 of the Simple Network Management
              Protocol (SNMPv3)", STD 62, RFC 3414, December 2002.

   [RFC3415]  Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based
              Access Control Model (VACM) for the Simple Network
              Management Protocol (SNMP)", STD 62, RFC 3415,
              December 2002.

   [RFC3416]  Presuhn, R., "Version 2 of the Protocol Operations for the
              Simple Network Management Protocol (SNMP)", STD 62,
              RFC 3416, December 2002.

   [RFC3417]  Presuhn, R., "Transport Mappings for the Simple Network
              Management Protocol (SNMP)", STD 62, RFC 3417,
              December 2002.

   [RFC3418]  Presuhn, R., "Management Information Base (MIB) for the
              Simple Network Management Protocol (SNMP)", STD 62,
              RFC 3418, December 2002.

   [RFC4122]  Leach, P., Mealling, M., and R. Salz, "A Universally
              Unique IDentifier (UUID) URN Namespace", RFC 4122,
              July 2005.

















Asai, et al.            Expires January 31, 2013               [Page 28]


Internet-Draft         Virtual Machine Manager MIB             July 2012


Authors' Addresses

   Hirochika Asai
   The University of Tokyo
   7-3-1 Hongo
   Bunkyo-ku, Tokyo  113-8656
   JP

   Phone: +81 3 5841 6748
   Email: panda@hongo.wide.ad.jp


   Yuji Sekiya
   The University of Tokyo
   2-11-16 Yayoi
   Bunkyo-ku, Tokyo  113-8658
   JP

   Email: sekiya@wide.ad.jp


   Keiichi Shima
   IIJ Innovation Institute Inc.
   1-105 Kanda-Jinbocho
   Chiyoda-ku, Tokyo  101-0051
   JP

   Email: keiichi@iijlab.net


   Hiroshi Esaki
   The University of Tokyo
   7-3-1 Hongo
   Bunkyo-ku, Tokyo  113-8656
   JP

   Phone: +81 3 5841 6748
   Email: hiroshi@wide.ad.jp













Asai, et al.            Expires January 31, 2013               [Page 29]