1VM-MIB DEFINITIONS ::= BEGIN
2
3IMPORTS
4    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, TimeTicks,
5    Counter64, Integer32, mib-2
6        FROM SNMPv2-SMI
7    OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP
8        FROM SNMPv2-CONF
9    TEXTUAL-CONVENTION, PhysAddress, TruthValue
10        FROM SNMPv2-TC
11    SnmpAdminString
12        FROM SNMP-FRAMEWORK-MIB
13    UUIDorZero
14        FROM UUID-TC-MIB
15    InterfaceIndexOrZero
16        FROM IF-MIB
17
18    IANAStorageMediaType
19        FROM IANA-STORAGE-MEDIA-TYPE-MIB;
20
21vmMIB MODULE-IDENTITY
22    LAST-UPDATED "201510120000Z"        -- 12 October 2015
23    ORGANIZATION "IETF Operations and Management Area Working Group"
24    CONTACT-INFO
25            "WG Email: opsawg@ietf.org
26            Mailing list subscription info:
27            https://www.ietf.org/mailman/listinfo/opsawg
28
29            Hirochika Asai
30            The University of Tokyo
31            7-3-1 Hongo
32            Bunkyo-ku, Tokyo  113-8656
33            Japan
34            Phone: +81 3 5841 6748
35            Email: panda@hongo.wide.ad.jp
36
37            Michael MacFaden
38            VMware Inc.
39            Email: mrm@vmware.com
40
41            Juergen Schoenwaelder
42            Jacobs University
43            Campus Ring 1
44            Bremen 28759
45            Germany
46            Email: j.schoenwaelder@jacobs-university.de
47
48            Keiichi Shima
49            IIJ Innovation Institute Inc.
50            3-13 Kanda-Nishikicho
51            Chiyoda-ku, Tokyo  101-0054
52            Japan
53            Email: keiichi@iijlab.net
54
55            Tina Tsou
56            Huawei Technologies (USA)
57            2330 Central Expressway
58            Santa Clara, CA 95050
59            United States
60            Email: tina.tsou.zouting@huawei.com"
61    DESCRIPTION
62            "This MIB module is for use in managing a hypervisor and
63            virtual machines controlled by the hypervisor.
64
65            Copyright (c) 2015 IETF Trust and the persons identified
66            as authors of the code.  All rights reserved.
67
68            Redistribution and use in source and binary forms, with
69            or without modification, is permitted pursuant to, and
70            subject to the license terms contained in, the
71            Simplified BSD License set forth in Section 4.c of the
72            IETF Trust's Legal Provisions Relating to IETF Documents
73            (http://trustee.ietf.org/license-info)."
74
75    REVISION "201510120000Z"        -- 12 October 2015
76    DESCRIPTION
77            "The initial version of this MIB, published as
78            RFC 7666."
79    ::= { mib-2 236 }
80
81vmNotifications OBJECT IDENTIFIER ::= { vmMIB 0 }
82vmObjects       OBJECT IDENTIFIER ::= { vmMIB 1 }
83vmConformance   OBJECT IDENTIFIER ::= { vmMIB 2 }
84
85-- Textual conversion definitions
86--
87VirtualMachineIndex ::= TEXTUAL-CONVENTION
88    DISPLAY-HINT "d"
89    STATUS       current
90    DESCRIPTION
91            "A unique value, greater than zero, identifying a
92            virtual machine.  The value for each virtual machine
93            MUST remain constant at least from one re-initialization
94            of the hypervisor to the next re-initialization."
95    SYNTAX       Integer32 (1..2147483647)
96
97VirtualMachineIndexOrZero ::= TEXTUAL-CONVENTION
98    DISPLAY-HINT "d"
99    STATUS       current
100    DESCRIPTION
101            "This textual convention is an extension of the
102            VirtualMachineIndex convention.  This extension permits
103            the additional value of zero.  The meaning of the value
104            zero is object-specific and MUST therefore be defined as
105            part of the description of any object that uses this
106            syntax.  Examples of the usage of zero might include
107            situations where a virtual machine is unknown, or when
108            none or all virtual machines need to be referenced."
109    SYNTAX       Integer32 (0..2147483647)
110
111VirtualMachineAdminState ::= TEXTUAL-CONVENTION
112    STATUS      current
113    DESCRIPTION
114            "The administrative state of a virtual machine:
115
116            running(1)    The administrative state of the virtual
117                          machine indicating the virtual machine
118                          is currently online or should be brought
119                          online.
120
121            suspended(2)  The administrative state of the virtual
122                          machine where its memory and CPU execution
123                          state has been saved to persistent store
124                          and will be restored at next running(1).
125
126            paused(3)     The administrative state indicating the
127                          virtual machine is resident in memory but
128                          is no longer scheduled to execute by the
129                          hypervisor.
130
131            shutdown(4)   The administrative state of the virtual
132                          machine indicating the virtual machine
133                          is currently offline or should be
134                          shutting down."
135    SYNTAX       INTEGER {
136                    running(1),
137                    suspended(2),
138                    paused(3),
139                    shutdown(4)
140                 }
141
142VirtualMachineOperState ::= TEXTUAL-CONVENTION
143    STATUS       current
144    DESCRIPTION
145            "The operational state of a virtual machine:
146
147            unknown(1)     The operational state of the virtual
148                           machine is unknown, e.g., because the
149                           implementation failed to obtain the state
150                           from the hypervisor.
151
152            other(2)       The operational state of the virtual
153                           machine indicating that an operational
154                           state is obtained from the hypervisor, but
155                           it is not a state defined in this MIB
156                           module.
157
158            preparing(3)   The operational state of the virtual
159                           machine indicating the virtual machine is
160
161                           currently in the process of preparation,
162                           e.g., allocating and initializing virtual
163                           storage after creating (defining) the
164                           virtual machine.
165
166            running(4)     The operational state of the virtual
167                           machine indicating the virtual machine is
168                           currently executed, but it is not in the
169                           process of preparing(3), suspending(5),
170                           resuming(7), migrating(9), and
171                           shuttingdown(10).
172
173            suspending(5)  The operational state of the virtual
174                           machine indicating the virtual machine is
175                           currently in the process of suspending
176                           to save its memory and CPU execution
177                           state to persistent store.  This is a
178                           transient state from running(4) to
179                           suspended(6).
180
181            suspended(6)   The operational state of the virtual
182                           machine indicating the virtual machine is
183                           currently suspended, which means the
184                           memory and CPU execution state of the
185                           virtual machine are saved to persistent
186                           store.  During this state, the virtual
187                           machine is not scheduled to execute by
188                           the hypervisor.
189
190            resuming(7)    The operational state of the virtual
191                           machine indicating the virtual machine is
192                           currently in the process of resuming
193                           to restore its memory and CPU execution
194                           state from persistent store.  This is a
195                           transient state from suspended(6) to
196                           running(4).
197
198            paused(8)      The operational state of the virtual
199                           machine indicating the virtual machine is
200                           resident in memory but no longer
201                           scheduled to execute by the hypervisor.
202
203            migrating(9)   The operational state of the virtual
204                           machine indicating the virtual machine is
205                           currently in the process of migration
206                           from/to another hypervisor.
207
208            shuttingdown(10)
209
210                           The operational state of the virtual
211                           machine indicating the virtual machine is
212                           currently in the process of shutting
213                           down.  This is a transient state from
214                           running(4) to shutdown(11).
215
216            shutdown(11)   The operational state of the virtual
217                           machine indicating the virtual machine is
218                           down, and CPU execution is no longer
219                           scheduled by the hypervisor and its
220                           memory is not resident in the hypervisor.
221
222            crashed(12)    The operational state of the virtual
223                           machine indicating the virtual machine
224                           has crashed."
225    SYNTAX       INTEGER {
226                    unknown(1),
227                    other(2),
228                    preparing(3),
229                    running(4),
230                    suspending(5),
231                    suspended(6),
232                    resuming(7),
233                    paused(8),
234                    migrating(9),
235                    shuttingdown(10),
236                    shutdown(11),
237                    crashed(12)
238                 }
239
240VirtualMachineAutoStart ::= TEXTUAL-CONVENTION
241    STATUS       current
242    DESCRIPTION
243            "The autostart configuration of a virtual machine:
244
245            unknown(1)     The autostart configuration is unknown,
246                           e.g., because the implementation failed
247                           to obtain the autostart configuration
248                           from the hypervisor.
249
250            enabled(2)     The autostart configuration of the
251                           virtual machine is enabled.  The virtual
252                           machine should be automatically brought
253                           online at the next re-initialization of
254                           the hypervisor.
255
256            disabled(3)    The autostart configuration of the
257                           virtual machine is disabled.  The virtual
258
259                           machine should not be automatically
260                           brought online at the next
261                           re-initialization of the hypervisor."
262    SYNTAX      INTEGER {
263                    unknown(1),
264                    enabled(2),
265                    disabled(3)
266                }
267
268VirtualMachinePersistent ::= TEXTUAL-CONVENTION
269    STATUS       current
270    DESCRIPTION
271            "This value indicates whether a virtual machine has a
272            persistent configuration, which means the virtual machine
273            will still exist after shutting down:
274
275            unknown(1)     The persistent configuration is unknown,
276                           e.g., because the implementation failed
277                           to obtain the persistent configuration
278                           from the hypervisor. (read-only)
279
280            persistent(2)  The virtual machine is persistent, i.e.,
281                           the virtual machine will exist after it
282                           shuts down.
283
284            transient(3)   The virtual machine is transient, i.e.,
285                           the virtual machine will not exist after
286                           it shuts down."
287    SYNTAX       INTEGER {
288                    unknown(1),
289                    persistent(2),
290                    transient(3)
291                 }
292
293VirtualMachineCpuIndex ::= TEXTUAL-CONVENTION
294    DISPLAY-HINT "d"
295    STATUS       current
296    DESCRIPTION
297            "A unique value for each virtual machine, greater than
298            zero, identifying a virtual CPU assigned to a virtual
299            machine.  The value for each virtual CPU MUST remain
300            constant at least from one re-initialization of the
301            hypervisor to the next re-initialization."
302     SYNTAX      Integer32 (1..2147483647)
303
304VirtualMachineStorageIndex ::= TEXTUAL-CONVENTION
305    DISPLAY-HINT "d"
306    STATUS       current
307    DESCRIPTION
308            "A unique value for each virtual machine, greater than
309            zero, identifying a virtual storage device allocated to
310            a virtual machine.  The value for each virtual storage
311            device MUST remain constant at least from one
312            re-initialization of the hypervisor to the next
313            re-initialization."
314     SYNTAX      Integer32 (1..2147483647)
315
316VirtualMachineStorageSourceType ::= TEXTUAL-CONVENTION
317    STATUS       current
318    DESCRIPTION
319            "The source type of a virtual storage device:
320
321            unknown(1)     The source type is unknown, e.g., because
322                           the implementation failed to obtain the
323                           media type from the hypervisor.
324
325            other(2)       The source type is other than those
326                           defined in this conversion.
327
328            block(3)       The source type is a block device.
329
330            raw(4)         The source type is a raw-formatted file.
331
332            sparse(5)      The source type is a sparse file.
333
334            network(6)     The source type is a network device."
335    SYNTAX       INTEGER {
336                    unknown(1),
337                    other(2),
338                    block(3),
339                    raw(4),
340                    sparse(5),
341                    network(6)
342                 }
343
344VirtualMachineStorageAccess ::= TEXTUAL-CONVENTION
345    STATUS       current
346    DESCRIPTION
347            "The access permission of a virtual storage:
348
349            unknown(1)     The access permission of the virtual
350                           storage is unknown.
351
352            readwrite(2)   The virtual storage is a read-write
353                           device.
354
355            readonly(3)    The virtual storage is a read-only
356                           device."
357    SYNTAX       INTEGER {
358                    unknown(1),
359                    readwrite(2),
360                    readonly(3)
361                 }
362
363VirtualMachineNetworkIndex ::= TEXTUAL-CONVENTION
364    DISPLAY-HINT "d"
365    STATUS       current
366    DESCRIPTION
367            "A unique value for each virtual machine, greater than
368            zero, identifying a virtual network interface allocated
369            to the virtual machine.  The value for each virtual
370            network interface MUST remain constant at least from one
371            re-initialization of the hypervisor to the next
372            re-initialization."
373     SYNTAX      Integer32 (1..2147483647)
374
375VirtualMachineList ::= TEXTUAL-CONVENTION
376    DISPLAY-HINT "1x"
377    STATUS       current
378    DESCRIPTION
379            "Each octet within this value specifies a set of eight
380            virtual machine vmIndex values, with the first octet
381            specifying virtual machine 1 through 8, the second octet
382            specifying virtual machine 9 through 16, etc.  Within
383            each octet, the most significant bit represents the
384            lowest-numbered vmIndex, and the least significant bit
385            represents the highest-numbered vmIndex.  Thus, each
386            virtual machine of the host is represented by a single
387            bit within the value of this object.  If that bit has
388            a value of '1', then that virtual machine is included
389            in the set of virtual machines; the virtual machine is
390            not included if its bit has a value of '0'."
391    SYNTAX      OCTET STRING
392
393-- The hypervisor group
394--
395-- A collection of objects common to all hypervisors.
396--
397vmHypervisor    OBJECT IDENTIFIER ::= { vmObjects 1 }
398
399vmHvSoftware OBJECT-TYPE
400    SYNTAX       SnmpAdminString (SIZE (0..255))
401    MAX-ACCESS   read-only
402    STATUS       current
403    DESCRIPTION
404            "A textual description of the hypervisor software.  This
405            value SHOULD NOT include its version as it SHOULD be
406            included in 'vmHvVersion'."
407    ::= { vmHypervisor 1 }
408
409vmHvVersion OBJECT-TYPE
410    SYNTAX       SnmpAdminString (SIZE (0..255))
411    MAX-ACCESS   read-only
412    STATUS       current
413    DESCRIPTION
414            "A textual description of the version of the hypervisor
415            software."
416    ::= { vmHypervisor 2 }
417
418vmHvObjectID OBJECT-TYPE
419    SYNTAX       OBJECT IDENTIFIER
420    MAX-ACCESS   read-only
421    STATUS       current
422    DESCRIPTION
423            "The vendor's authoritative identification of the
424            hypervisor software contained in the entity.  This value
425            is allocated within the SMI enterprises
426            subtree (1.3.6.1.4.1).  Note that this is different from
427            sysObjectID in the SNMPv2-MIB (RFC 3418) because
428            sysObjectID is not the identification of the hypervisor
429            software but the device, firmware, or management
430            operating system."
431    ::= { vmHypervisor 3 }
432
433vmHvUpTime OBJECT-TYPE
434    SYNTAX       TimeTicks
435    MAX-ACCESS   read-only
436    STATUS       current
437    DESCRIPTION
438            "The time (in centiseconds) since the hypervisor was
439            last re-initialized.  Note that this is different from
440            sysUpTime in the SNMPv2-MIB (RFC 3418) and hrSystemUptime
441            in the HOST-RESOURCES-MIB (RFC 2790) because sysUpTime is
442            the uptime of the network management portion of the
443            system, and hrSystemUptime is the uptime of the
444            management operating system but not the hypervisor
445            software."
446    ::= { vmHypervisor 4 }
447
448-- The virtual machine information
449--
450
451-- A collection of objects common to all virtual machines.
452--
453vmNumber  OBJECT-TYPE
454    SYNTAX       Integer32 (0..2147483647)
455    MAX-ACCESS   read-only
456    STATUS       current
457    DESCRIPTION
458            "The number of virtual machines (regardless of their
459            current state) present on this hypervisor."
460    ::= { vmObjects 2 }
461
462vmTableLastChange  OBJECT-TYPE
463    SYNTAX       TimeTicks
464    MAX-ACCESS   read-only
465    STATUS       current
466    DESCRIPTION
467            "The value of vmHvUpTime at the time of the last creation
468            or deletion of an entry in the vmTable."
469    ::= { vmObjects 3 }
470
471vmTable OBJECT-TYPE
472    SYNTAX       SEQUENCE OF VmEntry
473    MAX-ACCESS   not-accessible
474    STATUS       current
475    DESCRIPTION
476            "A list of virtual machine entries.  The number of
477            entries is given by the value of vmNumber."
478    ::= { vmObjects 4 }
479
480vmEntry OBJECT-TYPE
481    SYNTAX       VmEntry
482    MAX-ACCESS   not-accessible
483    STATUS       current
484    DESCRIPTION
485            "An entry containing management information applicable
486            to a particular virtual machine."
487    INDEX   { vmIndex }
488    ::= { vmTable 1 }
489
490VmEntry ::=
491    SEQUENCE {
492        vmIndex                 VirtualMachineIndex,
493        vmName                  SnmpAdminString,
494        vmUUID                  UUIDorZero,
495        vmOSType                SnmpAdminString,
496        vmAdminState            VirtualMachineAdminState,
497        vmOperState             VirtualMachineOperState,
498        vmAutoStart             VirtualMachineAutoStart,
499        vmPersistent            VirtualMachinePersistent,
500        vmCurCpuNumber          Integer32,
501        vmMinCpuNumber          Integer32,
502        vmMaxCpuNumber          Integer32,
503        vmMemUnit               Integer32,
504        vmCurMem                Integer32,
505        vmMinMem                Integer32,
506        vmMaxMem                Integer32,
507        vmUpTime                TimeTicks,
508        vmCpuTime               Counter64
509    }
510
511vmIndex OBJECT-TYPE
512    SYNTAX       VirtualMachineIndex
513    MAX-ACCESS   not-accessible
514    STATUS       current
515    DESCRIPTION
516            "A unique value, greater than zero, identifying the
517            virtual machine.  The value assigned to a given virtual
518            machine may not persist across re-initialization of the
519            hypervisor.  A command generator MUST use the vmUUID to
520            identify a given virtual machine of interest."
521    ::= { vmEntry 1 }
522
523vmName OBJECT-TYPE
524    SYNTAX       SnmpAdminString (SIZE (0..255))
525    MAX-ACCESS   read-only
526    STATUS       current
527    DESCRIPTION
528            "A textual name of the virtual machine."
529    ::= { vmEntry 2 }
530
531vmUUID OBJECT-TYPE
532    SYNTAX       UUIDorZero
533    MAX-ACCESS   read-only
534    STATUS       current
535    DESCRIPTION
536            "The virtual machine's 128-bit Universally Unique
537            Identifier (UUID) or the zero-length string when a
538            UUID is not available.  If set, the UUID MUST uniquely
539            identify a virtual machine from all other virtual
540            machines in an administrative domain.  A zero-length
541            octet string is returned if no UUID information is
542            known."
543    ::= { vmEntry 3 }
544
545vmOSType OBJECT-TYPE
546    SYNTAX       SnmpAdminString (SIZE (0..255))
547    MAX-ACCESS   read-only
548    STATUS       current
549    DESCRIPTION
550            "A textual description containing operating system
551            information installed on the virtual machine.  This
552            value corresponds to the operating system the hypervisor
553            assumes to be running when the virtual machine is
554            started.  This may differ from the actual operating
555            system in case the virtual machine boots into a
556            different operating system."
557    ::= { vmEntry 4 }
558
559vmAdminState OBJECT-TYPE
560    SYNTAX       VirtualMachineAdminState
561    MAX-ACCESS   read-only
562    STATUS       current
563    DESCRIPTION
564            "The administrative state of the virtual machine."
565    ::= { vmEntry 5 }
566
567vmOperState OBJECT-TYPE
568    SYNTAX       VirtualMachineOperState
569    MAX-ACCESS   read-only
570    STATUS       current
571    DESCRIPTION
572            "The operational state of the virtual machine."
573    ::= { vmEntry 6 }
574
575vmAutoStart OBJECT-TYPE
576    SYNTAX       VirtualMachineAutoStart
577    MAX-ACCESS   read-only
578    STATUS       current
579    DESCRIPTION
580            "The autostart configuration of the virtual machine.  If
581            this value is enable(2), the virtual machine
582            automatically starts at the next initialization of the
583            hypervisor."
584    ::= { vmEntry 7 }
585
586vmPersistent OBJECT-TYPE
587    SYNTAX       VirtualMachinePersistent
588    MAX-ACCESS   read-only
589    STATUS       current
590    DESCRIPTION
591            "This value indicates whether the virtual machine has a
592            persistent configuration, which means the virtual machine
593            will still exist after its shutdown."
594    ::= { vmEntry 8 }
595
596vmCurCpuNumber OBJECT-TYPE
597    SYNTAX       Integer32 (0..2147483647)
598    MAX-ACCESS   read-only
599    STATUS       current
600    DESCRIPTION
601            "The number of virtual CPUs currently assigned to the
602            virtual machine."
603    ::= { vmEntry 9 }
604
605vmMinCpuNumber OBJECT-TYPE
606    SYNTAX       Integer32 (-1|0..2147483647)
607    MAX-ACCESS   read-only
608    STATUS       current
609    DESCRIPTION
610            "The minimum number of virtual CPUs that are assigned to
611            the virtual machine when it is in a power-on state.  The
612            value -1 indicates that there is no hard boundary for
613            the minimum number of virtual CPUs."
614    ::= { vmEntry 10 }
615
616vmMaxCpuNumber OBJECT-TYPE
617    SYNTAX       Integer32 (-1|0..2147483647)
618    MAX-ACCESS   read-only
619    STATUS       current
620    DESCRIPTION
621            "The maximum number of virtual CPUs that are assigned to
622            the virtual machine when it is in a power-on state.  The
623            value -1 indicates that there is no limit."
624    ::= { vmEntry 11 }
625
626vmMemUnit OBJECT-TYPE
627    SYNTAX       Integer32 (1..2147483647)
628    MAX-ACCESS   read-only
629    STATUS       current
630    DESCRIPTION
631            "The multiplication unit in bytes for vmCurMem, vmMinMem,
632            and vmMaxMem.  For example, when this value is 1024, the
633            memory size unit for vmCurMem, vmMinMem, and vmMaxMem is
634            KiB."
635    ::= { vmEntry 12 }
636
637vmCurMem OBJECT-TYPE
638    SYNTAX       Integer32 (0..2147483647)
639    MAX-ACCESS   read-only
640    STATUS       current
641    DESCRIPTION
642            "The current memory size currently allocated to the
643            virtual memory module in the unit designated by
644
645            vmMemUnit."
646    ::= { vmEntry 13 }
647
648vmMinMem OBJECT-TYPE
649    SYNTAX       Integer32 (-1|0..2147483647)
650    MAX-ACCESS   read-only
651    STATUS       current
652    DESCRIPTION
653            "The minimum memory size defined to the virtual machine
654            in the unit designated by vmMemUnit.  The value -1
655            indicates that there is no hard boundary for the minimum
656            memory size."
657    ::= { vmEntry 14 }
658
659vmMaxMem OBJECT-TYPE
660    SYNTAX       Integer32 (-1|0..2147483647)
661    MAX-ACCESS   read-only
662    STATUS       current
663    DESCRIPTION
664            "The maximum memory size defined to the virtual machine
665            in the unit designated by vmMemUnit.  The value -1
666            indicates that there is no limit."
667    ::= { vmEntry 15 }
668
669vmUpTime OBJECT-TYPE
670    SYNTAX       TimeTicks
671    MAX-ACCESS   read-only
672    STATUS       current
673    DESCRIPTION
674            "The time (in centiseconds) since the administrative
675            state of the virtual machine was last changed from
676            shutdown(4) to running(1)."
677    ::= { vmEntry 16 }
678
679vmCpuTime OBJECT-TYPE
680    SYNTAX       Counter64
681    UNITS        "microsecond"
682    MAX-ACCESS   read-only
683    STATUS       current
684    DESCRIPTION
685            "The total CPU time used in microseconds.  If the number
686            of virtual CPUs is larger than 1, vmCpuTime may exceed
687            real time.
688
689            Discontinuities in the value of this counter can occur
690            at re-initialization of the hypervisor and
691            administrative state (vmAdminState) changes of the
692
693            virtual machine."
694    ::= { vmEntry 17 }
695
696-- The virtual CPU on each virtual machines
697vmCpuTable OBJECT-TYPE
698    SYNTAX       SEQUENCE OF VmCpuEntry
699    MAX-ACCESS   not-accessible
700    STATUS       current
701    DESCRIPTION
702            "The table of virtual CPUs provided by the hypervisor."
703    ::= { vmObjects 5 }
704
705vmCpuEntry OBJECT-TYPE
706    SYNTAX       VmCpuEntry
707    MAX-ACCESS   not-accessible
708    STATUS       current
709    DESCRIPTION
710            "An entry for one virtual processor assigned to a
711            virtual machine."
712    INDEX { vmIndex, vmCpuIndex }
713    ::= { vmCpuTable 1 }
714
715VmCpuEntry ::=
716    SEQUENCE {
717        vmCpuIndex              VirtualMachineCpuIndex,
718        vmCpuCoreTime           Counter64
719    }
720
721vmCpuIndex OBJECT-TYPE
722    SYNTAX       VirtualMachineCpuIndex
723    MAX-ACCESS   not-accessible
724    STATUS       current
725    DESCRIPTION
726            "A unique value identifying a virtual CPU assigned to
727            the virtual machine."
728    ::= { vmCpuEntry 1 }
729
730vmCpuCoreTime OBJECT-TYPE
731    SYNTAX       Counter64
732    UNITS        "microsecond"
733    MAX-ACCESS   read-only
734    STATUS       current
735    DESCRIPTION
736            "The total CPU time used by this virtual CPU in
737            microseconds.
738
739            Discontinuities in the value of this counter can occur
740            at re-initialization of the hypervisor and
741
742            administrative state (vmAdminState) changes of the
743            virtual machine."
744    ::= { vmCpuEntry 2 }
745
746-- The virtual CPU affinity on each virtual machines
747
748vmCpuAffinityTable OBJECT-TYPE
749    SYNTAX       SEQUENCE OF VmCpuAffinityEntry
750    MAX-ACCESS   not-accessible
751    STATUS       current
752    DESCRIPTION
753            "A list of CPU affinity entries of a virtual CPU."
754    ::= { vmObjects 6 }
755
756vmCpuAffinityEntry OBJECT-TYPE
757    SYNTAX       VmCpuAffinityEntry
758    MAX-ACCESS   not-accessible
759    STATUS       current
760    DESCRIPTION
761            "An entry containing CPU affinity associated with a
762            particular virtual machine."
763    INDEX   { vmIndex, vmCpuIndex, vmCpuPhysIndex }
764    ::= { vmCpuAffinityTable 1 }
765
766VmCpuAffinityEntry ::=
767    SEQUENCE {
768        vmCpuPhysIndex          Integer32,
769        vmCpuAffinity           INTEGER
770    }
771
772vmCpuPhysIndex OBJECT-TYPE
773    SYNTAX       Integer32 (1..2147483647)
774    MAX-ACCESS   not-accessible
775    STATUS       current
776    DESCRIPTION
777            "A value identifying a physical CPU on the hypervisor.
778            On systems implementing the HOST-RESOURCES-MIB, the
779            value MUST be the same value that is used as the index
780            in the hrProcessorTable (hrDeviceIndex)."
781    ::= { vmCpuAffinityEntry 2 }
782
783vmCpuAffinity OBJECT-TYPE
784    SYNTAX       INTEGER {
785                    unknown(0),   -- unknown
786                    enable(1),    -- enabled
787                    disable(2)    -- disabled
788                 }
789    MAX-ACCESS   read-only
790    STATUS       current
791    DESCRIPTION
792            "The CPU affinity of this virtual CPU to the physical
793            CPU represented by 'vmCpuPhysIndex'."
794    ::= { vmCpuAffinityEntry 3 }
795
796-- The virtual storage devices on each virtual machine.  This
797-- document defines some overlapped objects with hrStorage in
798-- HOST-RESOURCES-MIB (RFC 2790), because virtual resources are
799-- allocated from the hypervisor's resources, which is the 'host
800-- resources'.
801vmStorageTable OBJECT-TYPE
802    SYNTAX       SEQUENCE OF VmStorageEntry
803    MAX-ACCESS   not-accessible
804    STATUS       current
805    DESCRIPTION
806            "The conceptual table of virtual storage devices
807            attached to the virtual machine."
808    ::= { vmObjects 7 }
809
810vmStorageEntry OBJECT-TYPE
811    SYNTAX       VmStorageEntry
812    MAX-ACCESS   not-accessible
813    STATUS       current
814    DESCRIPTION
815            "An entry for one virtual storage device attached to the
816            virtual machine."
817    INDEX { vmStorageVmIndex, vmStorageIndex }
818    ::= { vmStorageTable 1 }
819
820VmStorageEntry ::=
821    SEQUENCE {
822        vmStorageVmIndex        VirtualMachineIndexOrZero,
823        vmStorageIndex          VirtualMachineStorageIndex,
824        vmStorageParent         Integer32,
825        vmStorageSourceType     VirtualMachineStorageSourceType,
826        vmStorageSourceTypeString
827                                SnmpAdminString,
828        vmStorageResourceID     SnmpAdminString,
829        vmStorageAccess         VirtualMachineStorageAccess,
830        vmStorageMediaType      IANAStorageMediaType,
831        vmStorageMediaTypeString
832                                SnmpAdminString,
833        vmStorageSizeUnit       Integer32,
834        vmStorageDefinedSize    Integer32,
835        vmStorageAllocatedSize  Integer32,
836        vmStorageReadIOs        Counter64,
837        vmStorageWriteIOs       Counter64,
838        vmStorageReadOctets     Counter64,
839        vmStorageWriteOctets    Counter64,
840        vmStorageReadLatency    Counter64,
841        vmStorageWriteLatency   Counter64
842    }
843
844vmStorageVmIndex OBJECT-TYPE
845    SYNTAX       VirtualMachineIndexOrZero
846    MAX-ACCESS   not-accessible
847    STATUS       current
848    DESCRIPTION
849            "This value identifies the virtual machine (guest) this
850            storage device has been allocated to.  The value zero
851            indicates that the storage device is currently not
852            allocated to any virtual machines."
853    ::= { vmStorageEntry 1 }
854
855vmStorageIndex OBJECT-TYPE
856    SYNTAX       VirtualMachineStorageIndex
857    MAX-ACCESS   not-accessible
858    STATUS       current
859    DESCRIPTION
860            "A unique value identifying a virtual storage device
861            allocated to the virtual machine."
862    ::= { vmStorageEntry 2 }
863
864vmStorageParent OBJECT-TYPE
865    SYNTAX       Integer32 (0..2147483647)
866    MAX-ACCESS   read-only
867    STATUS       current
868    DESCRIPTION
869            "The value of hrStorageIndex, which is the parent (i.e.,
870            physical) device of this virtual device on systems
871            implementing the HOST-RESOURCES-MIB.  The value zero
872            denotes this virtual device is not any child
873            represented in the hrStorageTable."
874    ::= { vmStorageEntry 3 }
875
876vmStorageSourceType OBJECT-TYPE
877    SYNTAX       VirtualMachineStorageSourceType
878    MAX-ACCESS   read-only
879    STATUS       current
880    DESCRIPTION
881            "The source type of the virtual storage device."
882    ::= { vmStorageEntry 4 }
883
884vmStorageSourceTypeString OBJECT-TYPE
885    SYNTAX       SnmpAdminString (SIZE (0..255))
886    MAX-ACCESS   read-only
887    STATUS       current
888    DESCRIPTION
889            "A (detailed) textual string of the source type of the
890            virtual storage device.  For example, this represents
891            the specific format name of the sparse file."
892    ::= { vmStorageEntry 5 }
893
894vmStorageResourceID OBJECT-TYPE
895    SYNTAX       SnmpAdminString (SIZE (0..255))
896    MAX-ACCESS   read-only
897    STATUS       current
898    DESCRIPTION
899            "A textual string that represents the resource
900            identifier of the virtual storage.  For example, this
901            contains the path to the disk image file that
902            corresponds to the virtual storage."
903    ::= { vmStorageEntry 6 }
904
905vmStorageAccess OBJECT-TYPE
906    SYNTAX       VirtualMachineStorageAccess
907    MAX-ACCESS   read-only
908    STATUS       current
909    DESCRIPTION
910            "The access permission of the virtual storage device."
911    ::= { vmStorageEntry 7 }
912
913vmStorageMediaType OBJECT-TYPE
914    SYNTAX       IANAStorageMediaType
915    MAX-ACCESS   read-only
916    STATUS       current
917    DESCRIPTION
918            "The media type of the virtual storage device."
919    ::= { vmStorageEntry 8 }
920
921vmStorageMediaTypeString OBJECT-TYPE
922    SYNTAX       SnmpAdminString (SIZE (0..255))
923    MAX-ACCESS   read-only
924    STATUS       current
925    DESCRIPTION
926            "A (detailed) textual string of the virtual storage
927            media.  For example, this represents the specific driver
928            name of the emulated media such as 'IDE' and 'SCSI'."
929    ::= { vmStorageEntry 9 }
930
931vmStorageSizeUnit OBJECT-TYPE
932    SYNTAX       Integer32 (1..2147483647)
933    MAX-ACCESS   read-only
934    STATUS       current
935    DESCRIPTION
936            "The multiplication unit in bytes for
937            vmStorageDefinedSize and vmStorageAllocatedSize.  For
938            example, when this value is 1048576, the storage size
939            unit for vmStorageDefinedSize and vmStorageAllocatedSize
940            is MiB."
941    ::= { vmStorageEntry 10 }
942
943vmStorageDefinedSize OBJECT-TYPE
944    SYNTAX       Integer32 (-1|0..2147483647)
945    MAX-ACCESS   read-only
946    STATUS       current
947    DESCRIPTION
948            "The defined virtual storage size defined in the unit
949            designated by vmStorageSizeUnit.  If this information is
950            not available, this value MUST be -1."
951    ::= { vmStorageEntry 11 }
952
953vmStorageAllocatedSize OBJECT-TYPE
954    SYNTAX       Integer32 (-1|0..2147483647)
955    MAX-ACCESS   read-only
956    STATUS       current
957    DESCRIPTION
958            "The storage size allocated to the virtual storage from
959            a physical storage in the unit designated by
960            vmStorageSizeUnit.  When the virtual storage is block
961            device or raw file, this value and vmStorageDefinedSize
962            are supposed to equal.  This value MUST NOT be different
963            from vmStorageDefinedSize when vmStorageSourceType is
964            'block' or 'raw'.  If this information is not available,
965            this value MUST be -1."
966    ::= { vmStorageEntry 12 }
967
968vmStorageReadIOs OBJECT-TYPE
969    SYNTAX       Counter64
970    MAX-ACCESS   read-only
971    STATUS       current
972    DESCRIPTION
973            "The number of read I/O requests.
974
975            Discontinuities in the value of this counter can occur
976            at re-initialization of the hypervisor and
977            administrative state (vmAdminState) changes of the
978            virtual machine."
979    ::= { vmStorageEntry 13 }
980
981vmStorageWriteIOs OBJECT-TYPE
982    SYNTAX       Counter64
983    MAX-ACCESS   read-only
984    STATUS       current
985    DESCRIPTION
986            "The number of write I/O requests.
987
988            Discontinuities in the value of this counter can occur
989            at re-initialization of the hypervisor and
990            administrative state (vmAdminState) changes of the
991            virtual machine."
992    ::= { vmStorageEntry 14 }
993
994vmStorageReadOctets OBJECT-TYPE
995    SYNTAX       Counter64
996    MAX-ACCESS   read-only
997    STATUS       current
998    DESCRIPTION
999            "The total number of bytes read from this device.
1000
1001            Discontinuities in the value of this counter can occur
1002            at re-initialization of the hypervisor and
1003            administrative state (vmAdminState) changes of the
1004            virtual machine."
1005    ::= { vmStorageEntry 15 }
1006
1007vmStorageWriteOctets OBJECT-TYPE
1008    SYNTAX       Counter64
1009    MAX-ACCESS   read-only
1010    STATUS       current
1011    DESCRIPTION
1012            "The total number of bytes written to this device.
1013
1014            Discontinuities in the value of this counter can occur
1015            at re-initialization of the hypervisor and
1016            administrative state (vmAdminState) changes of the
1017            virtual machine."
1018    ::= { vmStorageEntry 16 }
1019
1020vmStorageReadLatency OBJECT-TYPE
1021    SYNTAX       Counter64
1022    MAX-ACCESS   read-only
1023    STATUS       current
1024    DESCRIPTION
1025            "The total number of microseconds read requests have
1026            been queued for this device.
1027
1028            This would typically be implemented by storing the high
1029            precision system timestamp of when the request is
1030
1031            received from the virtual machine with the request, the
1032            difference between this initial timestamp and the time
1033            at which the requested operation has completed SHOULD be
1034            converted to microseconds and accumulated.
1035
1036            Discontinuities in the value of this counter can occur at
1037            re-initialization of the hypervisor and administrative
1038            state (vmAdminState) changes of the virtual machine."
1039    ::= { vmStorageEntry 17 }
1040
1041vmStorageWriteLatency OBJECT-TYPE
1042    SYNTAX       Counter64
1043    MAX-ACCESS   read-only
1044    STATUS       current
1045    DESCRIPTION
1046            "The total number of microseconds write requests have
1047            been queued for this device.
1048
1049            This would typically be implemented by storing the high
1050            precision system timestamp of when the request is
1051            received from the virtual machine with the request; the
1052            difference between this initial timestamp and the time
1053            at which the requested operation has completed SHOULD be
1054            converted to microseconds and accumulated.
1055
1056            Discontinuities in the value of this counter can occur
1057            at re-initialization of the hypervisor and
1058            administrative state (vmAdminState) changes of the
1059            virtual machine."
1060    ::= { vmStorageEntry 18 }
1061
1062-- The virtual network interfaces on each virtual machine.
1063vmNetworkTable OBJECT-TYPE
1064    SYNTAX       SEQUENCE OF VmNetworkEntry
1065    MAX-ACCESS   not-accessible
1066    STATUS       current
1067    DESCRIPTION
1068            "The conceptual table of virtual network interfaces
1069            attached to the virtual machine."
1070    ::= { vmObjects 8 }
1071
1072vmNetworkEntry OBJECT-TYPE
1073    SYNTAX       VmNetworkEntry
1074    MAX-ACCESS   not-accessible
1075    STATUS       current
1076    DESCRIPTION
1077            "An entry for one virtual network interface attached to
1078
1079            the virtual machine."
1080    INDEX { vmIndex, vmNetworkIndex }
1081    ::= { vmNetworkTable 1 }
1082
1083VmNetworkEntry ::=
1084    SEQUENCE {
1085        vmNetworkIndex          VirtualMachineNetworkIndex,
1086        vmNetworkIfIndex        InterfaceIndexOrZero,
1087        vmNetworkParent         InterfaceIndexOrZero,
1088        vmNetworkModel          SnmpAdminString,
1089        vmNetworkPhysAddress    PhysAddress
1090    }
1091
1092vmNetworkIndex OBJECT-TYPE
1093    SYNTAX       VirtualMachineNetworkIndex
1094    MAX-ACCESS   not-accessible
1095    STATUS       current
1096    DESCRIPTION
1097            "A unique value identifying a virtual network interface
1098            allocated to the virtual machine."
1099    ::= { vmNetworkEntry 1 }
1100
1101vmNetworkIfIndex OBJECT-TYPE
1102    SYNTAX       InterfaceIndexOrZero
1103    MAX-ACCESS   read-only
1104    STATUS       current
1105    DESCRIPTION
1106            "The value of ifIndex, which corresponds to this virtual
1107            network interface.  If this device is not represented in
1108            the ifTable, then this value MUST be zero."
1109    ::= { vmNetworkEntry 2 }
1110
1111vmNetworkParent OBJECT-TYPE
1112    SYNTAX       InterfaceIndexOrZero
1113    MAX-ACCESS   read-only
1114    STATUS       current
1115    DESCRIPTION
1116            "The value of ifIndex, which corresponds to the parent
1117            (i.e., physical) device of this virtual device.  The
1118            value zero denotes this virtual device is not any
1119            child represented in the ifTable."
1120    ::= { vmNetworkEntry 3 }
1121
1122vmNetworkModel OBJECT-TYPE
1123    SYNTAX       SnmpAdminString (SIZE (0..255))
1124    MAX-ACCESS   read-only
1125    STATUS       current
1126    DESCRIPTION
1127            "A textual string containing the (emulated) model of the
1128            virtual network interface.  For example, this value is
1129            'virtio' when the emulation driver model is virtio."
1130    ::= { vmNetworkEntry 4 }
1131
1132vmNetworkPhysAddress OBJECT-TYPE
1133    SYNTAX       PhysAddress
1134    MAX-ACCESS   read-only
1135    STATUS       current
1136    DESCRIPTION
1137            "The Media Access Control (MAC) address of the virtual
1138            network interface."
1139    ::= { vmNetworkEntry 5 }
1140
1141-- Notification definitions:
1142
1143vmPerVMNotificationsEnabled OBJECT-TYPE
1144    SYNTAX       TruthValue
1145    MAX-ACCESS   read-write
1146    STATUS       current
1147    DESCRIPTION
1148            "Indicates if the notification generator will send
1149            notifications per virtual machine.  Changes to this
1150            object MUST NOT persist across re-initialization of
1151            the management system, e.g., SNMP agent."
1152    ::= { vmObjects 9 }
1153
1154vmBulkNotificationsEnabled OBJECT-TYPE
1155    SYNTAX       TruthValue
1156    MAX-ACCESS   read-write
1157    STATUS       current
1158    DESCRIPTION
1159            "Indicates if the notification generator will send
1160            notifications per set of virtual machines.  Changes to
1161            this object MUST NOT persist across re-initialization of
1162            the management system, e.g., SNMP agent."
1163    ::= { vmObjects 10 }
1164
1165vmAffectedVMs OBJECT-TYPE
1166    SYNTAX       VirtualMachineList
1167    MAX-ACCESS   accessible-for-notify
1168    STATUS       current
1169    DESCRIPTION
1170            "A complete list of virtual machines whose state has
1171            changed.  This object is the only object sent with bulk
1172            notifications."
1173    ::= { vmObjects 11 }
1174
1175vmRunning NOTIFICATION-TYPE
1176    OBJECTS      {
1177                    vmName,
1178                    vmUUID,
1179                    vmOperState
1180                 }
1181    STATUS       current
1182    DESCRIPTION
1183            "This notification is generated when the operational
1184            state of a virtual machine has been changed to
1185            running(4) from some other state.  The other state is
1186            indicated by the included value of vmOperState."
1187    ::= { vmNotifications 1 }
1188
1189vmShuttingdown NOTIFICATION-TYPE
1190    OBJECTS      {
1191                    vmName,
1192                    vmUUID,
1193                    vmOperState
1194                 }
1195    STATUS       current
1196    DESCRIPTION
1197            "This notification is generated when the operational
1198            state of a virtual machine has been changed to
1199            shuttingdown(10) from some other state.  The other state
1200            is indicated by the included value of vmOperState."
1201    ::= { vmNotifications 2 }
1202
1203vmShutdown NOTIFICATION-TYPE
1204    OBJECTS      {
1205                    vmName,
1206                    vmUUID,
1207                    vmOperState
1208                 }
1209    STATUS       current
1210    DESCRIPTION
1211            "This notification is generated when the operational
1212            state of a virtual machine has been changed to
1213            shutdown(11) from some other state.  The other state is
1214            indicated by the included value of vmOperState."
1215    ::= { vmNotifications 3 }
1216
1217vmPaused NOTIFICATION-TYPE
1218    OBJECTS      {
1219                    vmName,
1220                    vmUUID,
1221                    vmOperState
1222                 }
1223    STATUS       current
1224    DESCRIPTION
1225            "This notification is generated when the operational
1226            state of a virtual machine has been changed to
1227            paused(8) from some other state.  The other state is
1228            indicated by the included value of vmOperState."
1229    ::= { vmNotifications 4 }
1230
1231vmSuspending NOTIFICATION-TYPE
1232    OBJECTS      {
1233                    vmName,
1234                    vmUUID,
1235                    vmOperState
1236                 }
1237    STATUS       current
1238    DESCRIPTION
1239            "This notification is generated when the operational
1240            state of a virtual machine has been changed to
1241            suspending(5) from some other state.  The other state is
1242            indicated by the included value of vmOperState."
1243    ::= { vmNotifications 5 }
1244
1245vmSuspended NOTIFICATION-TYPE
1246    OBJECTS      {
1247                    vmName,
1248                    vmUUID,
1249                    vmOperState
1250                 }
1251    STATUS       current
1252    DESCRIPTION
1253            "This notification is generated when the operational
1254            state of a virtual machine has been changed to
1255            suspended(6) from some other state.  The other state is
1256            indicated by the included value of vmOperState."
1257    ::= { vmNotifications 6 }
1258
1259vmResuming NOTIFICATION-TYPE
1260    OBJECTS      {
1261                    vmName,
1262                    vmUUID,
1263                    vmOperState
1264                 }
1265    STATUS       current
1266    DESCRIPTION
1267            "This notification is generated when the operational
1268            state of a virtual machine has been changed to
1269            resuming(7) from some other state.  The other state is
1270            indicated by the included value of vmOperState."
1271    ::= { vmNotifications 7 }
1272
1273vmMigrating NOTIFICATION-TYPE
1274    OBJECTS      {
1275                    vmName,
1276                    vmUUID,
1277                    vmOperState
1278                 }
1279    STATUS       current
1280    DESCRIPTION
1281            "This notification is generated when the operational
1282            state of a virtual machine has been changed to
1283            migrating(9) from some other state.  The other state is
1284            indicated by the included value of vmOperState."
1285    ::= { vmNotifications 8 }
1286
1287vmCrashed NOTIFICATION-TYPE
1288    OBJECTS      {
1289                    vmName,
1290                    vmUUID,
1291                    vmOperState
1292                 }
1293    STATUS       current
1294    DESCRIPTION
1295            "This notification is generated when a virtual machine
1296            has been crashed.  The previous state of the virtual
1297            machine is indicated by the included value of
1298            vmOperState."
1299    ::= { vmNotifications 9 }
1300
1301vmDeleted NOTIFICATION-TYPE
1302    OBJECTS      {
1303                    vmName,
1304                    vmUUID,
1305                    vmOperState,
1306                    vmPersistent
1307                 }
1308    STATUS       current
1309    DESCRIPTION
1310            "This notification is generated when a virtual machine
1311            has been deleted.  The prior state of the virtual
1312            machine is indicated by the included value of
1313            vmOperState."
1314    ::= { vmNotifications 10 }
1315
1316vmBulkRunning NOTIFICATION-TYPE
1317    OBJECTS      {
1318                    vmAffectedVMs
1319
1320                 }
1321    STATUS       current
1322    DESCRIPTION
1323            "This notification is generated when the operational
1324            state of one or more virtual machines has been changed
1325            to running(4) from any prior state, except for
1326            running(4).  Management stations are encouraged to
1327            subsequently poll the subset of virtual machines of
1328            interest for vmOperState."
1329    ::= { vmNotifications 11 }
1330
1331vmBulkShuttingdown NOTIFICATION-TYPE
1332    OBJECTS      {
1333                   vmAffectedVMs
1334                 }
1335    STATUS       current
1336    DESCRIPTION
1337            "This notification is generated when the operational
1338            state of one or more virtual machines has been changed
1339            to shuttingdown(10) from a state other than
1340            shuttingdown(10).  Management stations are encouraged to
1341            subsequently poll the subset of virtual machines of
1342            interest for vmOperState."
1343    ::= { vmNotifications 12 }
1344
1345vmBulkShutdown NOTIFICATION-TYPE
1346    OBJECTS      {
1347                   vmAffectedVMs
1348                 }
1349    STATUS       current
1350    DESCRIPTION
1351            "This notification is generated when the operational
1352            state of one or more virtual machine has been changed to
1353            shutdown(11) from a state other than shutdown(11).
1354            Management stations are encouraged to subsequently poll
1355            the subset of virtual machines of interest for
1356            vmOperState."
1357    ::= { vmNotifications 13 }
1358
1359vmBulkPaused NOTIFICATION-TYPE
1360    OBJECTS      {
1361                    vmAffectedVMs
1362                 }
1363    STATUS       current
1364    DESCRIPTION
1365            "This notification is generated when the operational
1366            state of one or more virtual machines has been changed
1367            to paused(8) from a state other than paused(8).
1368
1369            Management stations are encouraged to subsequently poll
1370            the subset of virtual machines of interest for
1371            vmOperState."
1372    ::= { vmNotifications 14 }
1373
1374vmBulkSuspending NOTIFICATION-TYPE
1375    OBJECTS      {
1376                    vmAffectedVMs
1377                 }
1378    STATUS       current
1379    DESCRIPTION
1380            "This notification is generated when the operational
1381            state of one or more virtual machines has been changed
1382            to suspending(5) from a state other than suspending(5).
1383            Management stations are encouraged to subsequently poll
1384            the subset of virtual machines of interest for
1385            vmOperState."
1386    ::= { vmNotifications 15 }
1387
1388vmBulkSuspended NOTIFICATION-TYPE
1389    OBJECTS      {
1390                    vmAffectedVMs
1391                 }
1392    STATUS       current
1393    DESCRIPTION
1394            "This notification is generated when the operational
1395            state of one or more virtual machines has been changed
1396            to suspended(6) from a state other than suspended(6).
1397            Management stations are encouraged to subsequently poll
1398            the subset of virtual machines of interest for
1399            vmOperState."
1400    ::= { vmNotifications 16 }
1401
1402vmBulkResuming NOTIFICATION-TYPE
1403    OBJECTS      {
1404                    vmAffectedVMs
1405                 }
1406    STATUS       current
1407    DESCRIPTION
1408            "This notification is generated when the operational
1409            state of one or more virtual machines has been changed
1410            to resuming(7) from a state other than resuming(7).
1411            Management stations are encouraged to subsequently poll
1412            the subset of virtual machines of interest for
1413            vmOperState."
1414    ::= { vmNotifications 17 }
1415
1416vmBulkMigrating NOTIFICATION-TYPE
1417
1418    OBJECTS      {
1419                    vmAffectedVMs
1420                 }
1421    STATUS       current
1422    DESCRIPTION
1423            "This notification is generated when the operational
1424            state of one or more virtual machines has been changed
1425            to migrating(9) from a state other than migrating(9).
1426            Management stations are encouraged to subsequently poll
1427            the subset of virtual machines of interest for
1428            vmOperState."
1429    ::= { vmNotifications 18 }
1430
1431vmBulkCrashed NOTIFICATION-TYPE
1432    OBJECTS      {
1433                    vmAffectedVMs
1434                 }
1435    STATUS       current
1436    DESCRIPTION
1437            "This notification is generated when one or more virtual
1438            machines have been crashed.  Management stations are
1439            encouraged to subsequently poll the subset of virtual
1440            machines of interest for vmOperState."
1441    ::= { vmNotifications 19 }
1442
1443vmBulkDeleted NOTIFICATION-TYPE
1444    OBJECTS      {
1445                    vmAffectedVMs
1446                 }
1447    STATUS       current
1448    DESCRIPTION
1449            "This notification is generated when one or more virtual
1450            machines have been deleted.  Management stations are
1451            encouraged to subsequently poll the subset of virtual
1452            machines of interest for vmOperState."
1453    ::= { vmNotifications 20 }
1454
1455-- Compliance definitions:
1456vmCompliances  OBJECT IDENTIFIER ::= { vmConformance 1 }
1457vmGroups       OBJECT IDENTIFIER ::= { vmConformance 2 }
1458
1459vmFullCompliances MODULE-COMPLIANCE
1460    STATUS       current
1461    DESCRIPTION
1462            "Compliance statement for implementations supporting
1463            read/write access, according to the object definitions."
1464    MODULE     -- this module
1465    MANDATORY-GROUPS {
1466
1467        vmHypervisorGroup,
1468        vmVirtualMachineGroup,
1469        vmCpuGroup,
1470        vmCpuAffinityGroup,
1471        vmStorageGroup,
1472        vmNetworkGroup
1473    }
1474    GROUP  vmPerVMNotificationOptionalGroup
1475    DESCRIPTION
1476            "Support for per-VM notifications is optional.  If not
1477            implemented, then vmPerVMNotificationsEnabled MUST report
1478            false(2)."
1479    GROUP  vmBulkNotificationsVariablesGroup
1480    DESCRIPTION
1481            "Necessary only if vmPerVMNotificationOptionalGroup is
1482            implemented."
1483    GROUP  vmBulkNotificationOptionalGroup
1484    DESCRIPTION
1485            "Support for bulk notifications is optional.  If not
1486            implemented, then vmBulkNotificationsEnabled MUST report
1487            false(2)."
1488    ::= { vmCompliances 1 }
1489
1490vmReadOnlyCompliances MODULE-COMPLIANCE
1491    STATUS       current
1492    DESCRIPTION
1493            "Compliance statement for implementations supporting
1494            only read-only access."
1495    MODULE     -- this module
1496    MANDATORY-GROUPS {
1497        vmHypervisorGroup,
1498        vmVirtualMachineGroup,
1499        vmCpuGroup,
1500        vmCpuAffinityGroup,
1501        vmStorageGroup,
1502        vmNetworkGroup
1503    }
1504
1505    OBJECT vmPerVMNotificationsEnabled
1506    MIN-ACCESS   read-only
1507    DESCRIPTION
1508            "Write access is not required."
1509
1510    OBJECT vmBulkNotificationsEnabled
1511    MIN-ACCESS   read-only
1512    DESCRIPTION
1513            "Write access is not required."
1514    ::= { vmCompliances 2 }
1515
1516vmHypervisorGroup OBJECT-GROUP
1517    OBJECTS {
1518        vmHvSoftware,
1519        vmHvVersion,
1520        vmHvObjectID,
1521        vmHvUpTime,
1522        vmNumber,
1523        vmTableLastChange,
1524        vmPerVMNotificationsEnabled,
1525        vmBulkNotificationsEnabled
1526    }
1527    STATUS       current
1528    DESCRIPTION
1529            "A collection of objects providing insight into the
1530            hypervisor itself."
1531     ::= { vmGroups 1 }
1532
1533vmVirtualMachineGroup OBJECT-GROUP
1534    OBJECTS {
1535        -- vmIndex
1536        vmName,
1537        vmUUID,
1538        vmOSType,
1539        vmAdminState,
1540        vmOperState,
1541        vmAutoStart,
1542        vmPersistent,
1543        vmCurCpuNumber,
1544        vmMinCpuNumber,
1545        vmMaxCpuNumber,
1546        vmMemUnit,
1547        vmCurMem,
1548        vmMinMem,
1549        vmMaxMem,
1550        vmUpTime,
1551        vmCpuTime
1552    }
1553    STATUS       current
1554    DESCRIPTION
1555            "A collection of objects providing insight into the
1556            virtual machines controlled by a hypervisor."
1557    ::= { vmGroups 2 }
1558
1559vmCpuGroup OBJECT-GROUP
1560    OBJECTS {
1561        -- vmCpuIndex,
1562        vmCpuCoreTime
1563    }
1564    STATUS       current
1565    DESCRIPTION
1566            "A collection of objects providing insight into the
1567            virtual machines controlled by a hypervisor."
1568    ::= { vmGroups 3 }
1569
1570vmCpuAffinityGroup OBJECT-GROUP
1571    OBJECTS {
1572        -- vmCpuPhysIndex,
1573        vmCpuAffinity
1574    }
1575    STATUS       current
1576    DESCRIPTION
1577            "A collection of objects providing insight into the
1578            virtual machines controlled by a hypervisor."
1579    ::= { vmGroups 4 }
1580
1581vmStorageGroup OBJECT-GROUP
1582    OBJECTS {
1583        -- vmStorageVmIndex,
1584        -- vmStorageIndex,
1585        vmStorageParent,
1586        vmStorageSourceType,
1587        vmStorageSourceTypeString,
1588        vmStorageResourceID,
1589        vmStorageAccess,
1590        vmStorageMediaType,
1591        vmStorageMediaTypeString,
1592        vmStorageSizeUnit,
1593        vmStorageDefinedSize,
1594        vmStorageAllocatedSize,
1595        vmStorageReadIOs,
1596        vmStorageWriteIOs,
1597        vmStorageReadOctets,
1598        vmStorageWriteOctets,
1599        vmStorageReadLatency,
1600        vmStorageWriteLatency
1601    }
1602    STATUS       current
1603    DESCRIPTION
1604            "A collection of objects providing insight into the
1605            virtual storage devices controlled by a hypervisor."
1606    ::= { vmGroups 5 }
1607
1608vmNetworkGroup OBJECT-GROUP
1609    OBJECTS {
1610
1611        -- vmNetworkIndex,
1612        vmNetworkIfIndex,
1613        vmNetworkParent,
1614        vmNetworkModel,
1615        vmNetworkPhysAddress
1616    }
1617    STATUS       current
1618    DESCRIPTION
1619            "A collection of objects providing insight into the
1620            virtual network interfaces controlled by a hypervisor."
1621    ::= { vmGroups 6 }
1622
1623vmPerVMNotificationOptionalGroup NOTIFICATION-GROUP
1624    NOTIFICATIONS {
1625        vmRunning,
1626        vmShuttingdown,
1627        vmShutdown,
1628        vmPaused,
1629        vmSuspending,
1630        vmSuspended,
1631        vmResuming,
1632        vmMigrating,
1633        vmCrashed,
1634        vmDeleted
1635    }
1636    STATUS       current
1637    DESCRIPTION
1638            "A collection of notifications for per-VM notification
1639            of changes to virtual machine state (vmOperState) as
1640            reported by a hypervisor."
1641    ::= { vmGroups 7 }
1642
1643vmBulkNotificationsVariablesGroup OBJECT-GROUP
1644    OBJECTS {
1645        vmAffectedVMs
1646    }
1647    STATUS       current
1648    DESCRIPTION
1649            "The variables used in vmBulkNotificationOptionalGroup
1650            virtual network interfaces controlled by a hypervisor."
1651    ::= { vmGroups 8 }
1652
1653vmBulkNotificationOptionalGroup NOTIFICATION-GROUP
1654    NOTIFICATIONS {
1655        vmBulkRunning,
1656        vmBulkShuttingdown,
1657        vmBulkShutdown,
1658        vmBulkPaused,
1659        vmBulkSuspending,
1660        vmBulkSuspended,
1661        vmBulkResuming,
1662        vmBulkMigrating,
1663        vmBulkCrashed,
1664        vmBulkDeleted
1665    }
1666    STATUS       current
1667    DESCRIPTION
1668            "A collection of notifications for bulk notification of
1669            changes to virtual machine state (vmOperState) as
1670            reported by a given hypervisor."
1671    ::= { vmGroups 9 }
1672
1673END
1674