1-- *****************************************************************
2-- CISCO-VIRTUAL-NIC-MIB.my
3--
4-- October 2009, Pranali Hande
5--
6-- Copyright (c) 2009 by Cisco Systems Inc.
7-- All rights reserved.
8-- *****************************************************************
9
10CISCO-VIRTUAL-NIC-MIB DEFINITIONS ::= BEGIN
11
12IMPORTS
13    MODULE-IDENTITY,
14    OBJECT-TYPE,
15    Unsigned32,
16    Integer32
17        FROM SNMPv2-SMI
18    OBJECT-GROUP,
19    MODULE-COMPLIANCE
20        FROM SNMPv2-CONF
21    MacAddress
22        FROM SNMPv2-TC
23    InterfaceIndex
24        FROM IF-MIB
25    SnmpAdminString
26        FROM SNMP-FRAMEWORK-MIB
27    InetAddressType,
28    InetAddress
29        FROM INET-ADDRESS-MIB
30    ciscoMgmt
31        FROM CISCO-SMI;
32
33
34ciscoVirtualNicMIB MODULE-IDENTITY
35    LAST-UPDATED    "200910260000Z"
36    ORGANIZATION    "Cisco Systems, Inc."
37    CONTACT-INFO
38            "Cisco Systems
39            Customer Service
40
41            Postal: 170 West Tasman Drive
42            San Jose, CA  95134
43            USA
44
45            Tel: +1 800 553-NETS
46
47            E-mail: cs-lan-switch-snmp@cisco.com"
48    DESCRIPTION
49        "This MIB module defines MIB objects which provide
50        mechanisms to manage the parameters used by or
51        related to Virtual NIC.
52
53        Virtual switch extends across one or more
54        virtualization servers which host the VM instances.
55        Each virtualization server is represented as a line
56        card module and is assigned to a unique slot in
57        the virtual chassis.
58
59        All the ports on the virtual switch which can be
60        hooked up to VM VNICs or to special hypervisor ports
61        (e.g. vmk or vswif ports) are represented as virtual
62        ethernet interfaces.
63
64        Virtual ethernet interfaces(veths) represent
65        the switching ports on the virtual switch which
66        provide networking connectivity to virtual packet
67        based interfaces such as the Virtual NIC (VNIC)
68        interfaces defined on a Virtual Machine (VM).
69
70        These interfaces are configurable and provide
71        operational information to the network administrator.
72
73        The assignment of virtual ethernet interface ports
74        to a VM does not change when the VM is migrated.
75
76        Glossary:
77
78        APC - Asymmetric Port Channel
79
80        DVS - Distributed Virtual switch
81
82        NIC - Network Interface Card
83
84        NIV - Network interface virtualization
85
86        PCI - Peripheral Component Interconnect
87
88        VEM - Virtual Ethernet Module
89
90        VNIC - Virtual Network Interface Card
91
92        VSM -  Virtual Supervisor Module
93
94        VM - Virtual Machine
95
96        VMK - Virtual Machine Kernel
97
98        VMKNIC - Virtual Machine Kernel Network Interface Card
99
100        VSWIF - a virtual management port on hosts running
101                        VMware ESX.
102
103        UUID - Universally Unique identifier
104
105        connectee - Entity connected to a system using veth.
106                    eg: Virtual machine
107
108        System Diagram :
109                                    **************
110                                    *    VSM     *
111                                    **************
112                                      '       '
113                                     '         '
114                                    '           '
115                                   '             '
116                                ********        ********
117                                * VEM  *        * VEM  *
118                                ********        ********
119                                  ' '               '
120                               '      '              '
121                            ******   ******       ******
122                            * VM *   * VM *       * VM *
123                            ******   ******       ******"
124    REVISION        "200910260000Z"
125    DESCRIPTION
126        "Initial version of this MIB module."
127    ::= { ciscoMgmt 710 }
128
129
130ciscoVirtualNicMIBNotifs  OBJECT IDENTIFIER
131    ::= { ciscoVirtualNicMIB 0 }
132
133ciscoVirtualNicMIBObjects  OBJECT IDENTIFIER
134    ::= { ciscoVirtualNicMIB 1 }
135
136ciscoVirtualNicMIBConformance  OBJECT IDENTIFIER
137    ::= { ciscoVirtualNicMIB 2 }
138
139cvnInterfaceObjects  OBJECT IDENTIFIER
140    ::= { ciscoVirtualNicMIBObjects 1 }
141
142cvnConnecteeObjects  OBJECT IDENTIFIER
143    ::= { ciscoVirtualNicMIBObjects 2 }
144
145
146cvnVethIfTable OBJECT-TYPE
147    SYNTAX          SEQUENCE OF CvnVethIfEntry
148    MAX-ACCESS      not-accessible
149    STATUS          current
150    DESCRIPTION
151        "A list of virtual ethernet interfaces managed by VSM."
152    ::= { cvnInterfaceObjects 1 }
153
154cvnVethIfEntry OBJECT-TYPE
155    SYNTAX          CvnVethIfEntry
156    MAX-ACCESS      not-accessible
157    STATUS          current
158    DESCRIPTION
159        "An entry containing management information
160        for a particular virtual ethernet interface.
161
162        Entries are created by the system when virtual
163        Ethernet interfaces are registered to VSM.
164
165        Entries are removed when virtual Ethernet interfaces
166        are removed from VSM."
167    INDEX           { cvnVethInterface }
168    ::= { cvnVethIfTable 1 }
169
170CvnVethIfEntry ::= SEQUENCE {
171        cvnVethInterface         InterfaceIndex,
172        cvnVethAdapter           SnmpAdminString,
173        cvnVethOwner             SnmpAdminString,
174        cvnVethHostID            Unsigned32,
175        cvnVethHostAddrType      InetAddressType,
176        cvnVethHostAddr          InetAddress,
177        cvnVethPortProfileUsed   SnmpAdminString,
178        cvnVethIfProfileAlias    SnmpAdminString,
179        cvnVethIfAdditionalState INTEGER,
180        cvnVethStateReason       SnmpAdminString
181}
182
183cvnVethInterface OBJECT-TYPE
184    SYNTAX          InterfaceIndex
185    MAX-ACCESS      not-accessible
186    STATUS          current
187    DESCRIPTION
188        "The value of ifIndex for the virtual ethernet
189        interface."
190    ::= { cvnVethIfEntry 1 }
191
192cvnVethAdapter OBJECT-TYPE
193    SYNTAX          SnmpAdminString
194    MAX-ACCESS      read-only
195    STATUS          current
196    DESCRIPTION
197        "This object indicates the network adapter used by
198        virtual ethernet interface port.
199
200        This object contains the Network Adapter ID if Virtual
201        Machine is attached to VNIC.
202
203        This object contains VMK ID if the Virtual Machine is
204        attached to VMKNIC.
205
206        This object contains value of 'vswif' if the Virtual
207        Machine is attached to VSWIF."
208    ::= { cvnVethIfEntry 2 }
209
210cvnVethOwner OBJECT-TYPE
211    SYNTAX          SnmpAdminString
212    MAX-ACCESS      read-only
213    STATUS          current
214    DESCRIPTION
215        "The name of the Virtual Machine that owns this
216        virtual ethernet interface.
217        When a Virtual Machine attaches to one of the port in physical
218        server via this virtual ethernet interface, this VM will be
219        considered as the owner of this virtual ethernet interface.
220
221        When Virtual Machine moves from one host to another,
222        its virtual ethernet interface remains unchanged."
223    ::= { cvnVethIfEntry 3 }
224
225cvnVethHostID OBJECT-TYPE
226    SYNTAX          Unsigned32
227    MAX-ACCESS      read-only
228    STATUS          current
229    DESCRIPTION
230        "A unique identifier, assigned by the system,
231        of the registered VEM.
232
233        A VEM is registered and host a virtual ethernet interface
234        when a Virtual Machine attaches to such VEM by using
235        virtual ethernet interface.
236
237        A unique identifier, logical module number, is assigned
238        for every VEM.
239
240        This object contains value of zero if VEM is directly
241        attached to the switch."
242    ::= { cvnVethIfEntry 4 }
243
244cvnVethHostAddrType OBJECT-TYPE
245    SYNTAX          InetAddressType
246    MAX-ACCESS      read-only
247    STATUS          current
248    DESCRIPTION
249        "The type of Internet address of the VEM which
250        hosts the VM."
251    ::= { cvnVethIfEntry 5 }
252
253cvnVethHostAddr OBJECT-TYPE
254    SYNTAX          InetAddress
255    MAX-ACCESS      read-only
256    STATUS          current
257    DESCRIPTION
258        "The Internet address of the VEM which hosts the VM.
259
260        The type of this address is determined by the value
261        of the cvnVethHostAddrType object.
262
263        This object also indicates the management address of
264        the VEM.   Value of this object may be changed when
265        virtual ethernet interface moves from one VEM to
266        another VEM."
267    ::= { cvnVethIfEntry 6 }
268
269cvnVethPortProfileUsed OBJECT-TYPE
270    SYNTAX          SnmpAdminString
271    MAX-ACCESS      read-only
272    STATUS          current
273    DESCRIPTION
274        "The name of port profile which has been applied to
275        the current virtual ethernet interface.
276
277        Port Profile contains a set of configuration parameters.
278        For example, switchport mode, channel group no.,
279        channel group mode, security policy.
280
281        Port profile is assigned during the registration of
282        virtual ethernet interface."
283    ::= { cvnVethIfEntry 7 }
284
285cvnVethIfProfileAlias OBJECT-TYPE
286    SYNTAX          SnmpAdminString
287    MAX-ACCESS      read-only
288    STATUS          current
289    DESCRIPTION
290        "The profile alias as seen in external virtualization
291        server for the profile used by this virtual
292        ethernet interface."
293    ::= { cvnVethIfEntry 8 }
294
295cvnVethIfAdditionalState OBJECT-TYPE
296    SYNTAX          INTEGER  {
297                        none(1),
298                        participating(2),
299                        suspended(3),
300                        errDisabled(4),
301                        nonParticipating(5)
302                    }
303    MAX-ACCESS      read-only
304    STATUS          current
305    DESCRIPTION
306        "This object indicates the additional state of the virtual
307        ethernet interface.
308
309        none             - no additional state.
310        participating    - interface is up and participating.
311                           Virtual machine is currently connected
312                           to system using this interface.
313        suspended        - interface is down and has been suspended.
314        errDisabled      - interface is down due to error disabled.
315        nonParticipating - interface is up but not participating."
316    ::= { cvnVethIfEntry 9 }
317
318cvnVethStateReason OBJECT-TYPE
319    SYNTAX          SnmpAdminString
320    MAX-ACCESS      read-only
321    STATUS          current
322    DESCRIPTION
323        "This object indicates the reason for the additional
324        state specified in cvnVethIfAdditionalState."
325    ::= { cvnVethIfEntry 10 }
326
327
328-- -------------------------------------
329-- Pinning information for a virtual ethernet interface
330-- -------------------------------------
331
332cvnPinningTable OBJECT-TYPE
333    SYNTAX          SEQUENCE OF CvnPinningEntry
334    MAX-ACCESS      not-accessible
335    STATUS          current
336    DESCRIPTION
337        "A list of virtual ethernet interfaces which supports
338        pinning functionality in VSM.
339
340        Pinning is a mechanism of directing traffic to or
341        from a interface through a particular interface
342        in a switch.
343
344        By default, system use load balancing algorithm to pick
345        the best possible physical interface automatically.
346        However, user may use pinning functionality to
347        instrument the finite control on the traffic flow
348        between virtual ethernet interfaces and actual physical
349        interfaces in VSM.
350
351        For example, user may want to configure that packets
352        from a particular virtual ethernet interface always go
353        out through first interface in the port channel
354        irrespective of load balancing policy on the switch.
355        In order to achieve this, user can pin the virtual
356        ethernet interface to first interface of the switch."
357    ::= { cvnInterfaceObjects 2 }
358
359cvnPinningEntry OBJECT-TYPE
360    SYNTAX          CvnPinningEntry
361    MAX-ACCESS      not-accessible
362    STATUS          current
363    DESCRIPTION
364        "An entry containing pinning management information
365        for a particular virtual ethernet interface.
366
367        Entry is created by the system when a virtual
368        Ethernet interface with pinning functionality
369        is registered to VSM.
370
371        Entry is removed when a virtual Ethernet interface
372        with pinning functionality is removed from VSM."
373    INDEX           { cvnVethInterface }
374    ::= { cvnPinningTable 1 }
375
376CvnPinningEntry ::= SEQUENCE {
377        cvnPinnedSubGrpId Integer32
378}
379
380cvnPinnedSubGrpId OBJECT-TYPE
381    SYNTAX          Integer32 (-1..2147483647)
382    MAX-ACCESS      read-write
383    STATUS          current
384    DESCRIPTION
385        "This object indicates the sub-group ID to which
386        virtual ethernet interface is pinned.
387        This object returns negative vlaue (-1) if subgroup id
388        is not assigned."
389    ::= { cvnPinningEntry 1 }
390
391
392-- --------------------------------------
393-- Connectee information of a virtual ethernet interface
394-- --------------------------------------
395
396cvnConnecteeTable OBJECT-TYPE
397    SYNTAX          SEQUENCE OF CvnConnecteeEntry
398    MAX-ACCESS      not-accessible
399    STATUS          current
400    DESCRIPTION
401        "A list of connectees which are currently attached to
402        virtual ethernet interfaces.
403
404        Virtual machine connects to a physical entity
405        using a virtual ethernet interface. In this scenario
406        the Virtual Machine is called connectee, physical entity
407        is called host.  Whenever a Virtual Machine is connected
408        using virtual ethernet interface we have mapping between
409        physical and virtual interfaces.  This object gives the
410        mapping of all virtual ehternet interfaces to their
411        corresponding physical entities."
412    ::= { cvnConnecteeObjects 1 }
413
414cvnConnecteeEntry OBJECT-TYPE
415    SYNTAX          CvnConnecteeEntry
416    MAX-ACCESS      not-accessible
417    STATUS          current
418    DESCRIPTION
419        "An entry containing management information
420        for a particular connectee.
421
422        Entry is created when a connectee connects to VSM.
423
424        Entry is deleted when a connectee has been disconnected."
425    INDEX           { cvnVethInterface }
426    ::= { cvnConnecteeTable 1 }
427
428CvnConnecteeEntry ::= SEQUENCE {
429        cvnConnecteeAttachType INTEGER,
430        cvnDVSPort             Unsigned32,
431        cvnConnecteeName       SnmpAdminString,
432        cvnConnecteeUuid       SnmpAdminString,
433        cvnConnecteeType       INTEGER,
434        cvnConnecteeMac        MacAddress,
435        cvnConnecteeDeviceName SnmpAdminString,
436        cvnConnecteeDeviceType INTEGER
437}
438
439cvnConnecteeAttachType OBJECT-TYPE
440    SYNTAX          INTEGER  {
441                        none(1),
442                        vem(2),
443                        niv(3)
444                    }
445    MAX-ACCESS      read-only
446    STATUS          current
447    DESCRIPTION
448        "This object indicates how virtual ethernet
449        interface is attached to this system.
450
451        none - virtual ethernet interface is not
452               participating.
453
454        vem  - Always a dynamic attachment. For this type of attachment
455               switching is done by host at software layer.
456
457        niv  - A fixed or dynamic attachment.
458                   For this type of attachment switching is
459                   done in asics"
460    ::= { cvnConnecteeEntry 1 }
461
462cvnDVSPort OBJECT-TYPE
463    SYNTAX          Unsigned32
464    MAX-ACCESS      read-only
465    STATUS          current
466    DESCRIPTION
467        "This object indicates the port of DVS
468        to which virtual ethernet interface is attached."
469    ::= { cvnConnecteeEntry 2 }
470
471cvnConnecteeName OBJECT-TYPE
472    SYNTAX          SnmpAdminString
473    MAX-ACCESS      read-only
474    STATUS          current
475    DESCRIPTION
476        "This object indicates the name of the connectee
477        attached to virtual ethernet interface. For example
478        it will return name of virtual machine or host connected
479        to the system"
480    ::= { cvnConnecteeEntry 3 }
481
482cvnConnecteeUuid OBJECT-TYPE
483    SYNTAX          SnmpAdminString
484    MAX-ACCESS      read-only
485    STATUS          current
486    DESCRIPTION
487        "This object indicates the UUID of the connectee
488        attached to this virtual ethernet interface."
489    ::= { cvnConnecteeEntry 4 }
490
491cvnConnecteeType OBJECT-TYPE
492    SYNTAX          INTEGER  {
493                        unknown(1),
494                        vmwareVm(2),
495                        vmwareHost(3)
496                    }
497    MAX-ACCESS      read-only
498    STATUS          current
499    DESCRIPTION
500        "This object indicates the type of connectee
501        attached to this virtual ethernet interface.
502
503        Connectee type can be host, Virtual Machine
504        from different vendors etc.
505
506        unknown - The type of connectee is unknown.
507
508        vmwareVm - Connectee is a Virtual Machine
509
510        vmwareHost - Connectee is a host"
511    ::= { cvnConnecteeEntry 5 }
512
513cvnConnecteeMac OBJECT-TYPE
514    SYNTAX          MacAddress
515    MAX-ACCESS      read-only
516    STATUS          current
517    DESCRIPTION
518        "This object indicates the MAC address of
519        the connectee."
520    ::= { cvnConnecteeEntry 6 }
521
522cvnConnecteeDeviceName OBJECT-TYPE
523    SYNTAX          SnmpAdminString
524    MAX-ACCESS      read-only
525    STATUS          current
526    DESCRIPTION
527        "This object indicates the device ID or
528        port ID of the connectee to which virtual
529        ethernet interface is attached to."
530    ::= { cvnConnecteeEntry 7 }
531
532cvnConnecteeDeviceType OBJECT-TYPE
533    SYNTAX          INTEGER  {
534                        unknown(1),
535                        pnic(2),
536                        vnic(3),
537                        vswif(4),
538                        vmknic(5)
539                    }
540    MAX-ACCESS      read-only
541    STATUS          current
542    DESCRIPTION
543        "This object indicates the type of connectee device
544        attached to this virtual ethernet interface.
545        Connectee Device type can be VMKNIC, VSWIF,VNIC etc.
546
547        unknown - The device type is none of followings.
548
549        pnic    - Physical NIC
550
551        vnic    - Virtual NIC
552
553        vswif   - Virtual Switch Interface
554
555        vmknic  - Virtual machine kernel NIC"
556    ::= { cvnConnecteeEntry 8 }
557
558
559-- Conformance
560
561ciscoVirtualNicMIBCompliances  OBJECT IDENTIFIER
562    ::= { ciscoVirtualNicMIBConformance 1 }
563
564ciscoVirtualNicMIBGroups  OBJECT IDENTIFIER
565    ::= { ciscoVirtualNicMIBConformance 2 }
566
567
568virtualNicMIBCompliance MODULE-COMPLIANCE
569    STATUS          current
570    DESCRIPTION
571        "The compliance statement for entities which
572        implement the CISCO-VIRTUAL-NIC-MIB."
573    MODULE          -- this module
574    MANDATORY-GROUPS { cvnVethGroup }
575
576    GROUP           cvnPinningGroup
577    DESCRIPTION
578        "This group is mandatory for devices which support
579        pinning functionality."
580
581    GROUP           cvnConnecteeGroup
582    DESCRIPTION
583        "This group is mandatory for devices which support
584        connectee management information."
585
586    OBJECT          cvnPinnedSubGrpId
587    MIN-ACCESS      read-only
588    DESCRIPTION
589        "Write access is not required."
590    ::= { ciscoVirtualNicMIBCompliances 1 }
591
592-- Units of Conformance
593
594cvnVethGroup OBJECT-GROUP
595    OBJECTS         {
596                        cvnVethAdapter,
597                        cvnVethOwner,
598                        cvnVethHostID,
599                        cvnVethHostAddrType,
600                        cvnVethHostAddr,
601                        cvnVethPortProfileUsed,
602                        cvnVethIfProfileAlias,
603                        cvnVethIfAdditionalState,
604                        cvnVethStateReason
605                    }
606    STATUS          current
607    DESCRIPTION
608        "A collection of objects providing the virtual
609        ethernet interface management information on the device."
610    ::= { ciscoVirtualNicMIBGroups 1 }
611
612cvnPinningGroup OBJECT-GROUP
613    OBJECTS         { cvnPinnedSubGrpId }
614    STATUS          current
615    DESCRIPTION
616        "A collection of objects providing management
617        information of pinning functionality."
618    ::= { ciscoVirtualNicMIBGroups 2 }
619
620cvnConnecteeGroup OBJECT-GROUP
621    OBJECTS         {
622                        cvnConnecteeAttachType,
623                        cvnDVSPort,
624                        cvnConnecteeName,
625                        cvnConnecteeUuid,
626                        cvnConnecteeType,
627                        cvnConnecteeMac,
628                        cvnConnecteeDeviceName,
629                        cvnConnecteeDeviceType
630                    }
631    STATUS          current
632    DESCRIPTION
633        "A collection of objects providing management
634        information of connectee."
635    ::= { ciscoVirtualNicMIBGroups 3 }
636
637END
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654