Imported Upstream version 0.4.8
[platform/upstream/libsmi.git] / test / dumps / yang / IF-MIB
1 /*
2  * This module has been generated by smidump 0.4.8:
3  *
4  *      smidump -f yang IF-MIB
5  *
6  * Do not edit. Edit the source file instead!
7  */
8
9 module IF-MIB {
10
11   /*** NAMESPACE / PREFIX DEFINITION ***/
12
13   namespace "urn:ietf:params:xml:ns:yang:smiv2:IF-MIB";
14   prefix "if-mib";
15
16   /*** LINKAGE (IMPORTS / INCLUDES) ***/
17
18   import IANAifType-MIB { prefix "ianaiftype-mib"; }
19   import SNMPv2-TC      { prefix "smiv2"; }
20   import yang-types     { prefix "yang"; }
21
22   /*** META INFORMATION ***/
23
24   organization      
25    "IETF Interfaces MIB Working Group";
26
27   contact           
28    "   Keith McCloghrie
29     Cisco Systems, Inc.
30     170 West Tasman Drive
31     San Jose, CA  95134-1706
32     US
33     
34     408-526-5260
35     kzm@cisco.com";
36
37   description       
38    "The MIB module to describe generic objects for network
39     interface sub-layers.  This MIB is an updated version of
40     MIB-II's ifTable, and incorporates the extensions defined in
41     RFC 1229.";
42
43   revision "2000-06-14" {
44     description     
45      "Clarifications agreed upon by the Interfaces MIB WG, and
46       published as RFC 2863.";
47   }
48   revision "1996-02-28" {
49     description     
50      "Revisions made by the Interfaces MIB WG, and published in
51       RFC 2233.";
52   }
53   revision "1993-11-08" {
54     description     
55      "Initial revision, published as part of RFC 1573.";
56   }
57
58   /*** TYPE DEFINITIONS ***/
59
60   typedef OwnerString {
61     type string {
62       length "0..255";
63       pattern "\p{IsBasicLatin}{0,255}";
64     }
65     status deprecated;
66     description     
67      "This data type is used to model an administratively
68       assigned name of the owner of a resource.  This information
69       is taken from the NVT ASCII character set.  It is suggested
70       that this name contain one or more of the following: ASCII
71       form of the manager station's transport address, management
72       station name (e.g., domain name), network management
73       personnel's name, location, or phone number.  In some cases
74       the agent itself will be the owner of an entry.  In these
75       cases, this string shall be set to a string starting with
76       'agent'.";
77   }
78
79   typedef InterfaceIndex {
80     type int32 {
81       range "1..2147483647";
82     }
83     description     
84      "A unique value, greater than zero, for each interface or
85       interface sub-layer in the managed system.  It is
86       recommended that values are assigned contiguously starting
87       from 1.  The value for each interface sub-layer must remain
88       constant at least from one re-initialization of the entity's
89       network management system to the next re-initialization.";
90   }
91
92   typedef InterfaceIndexOrZero {
93     type int32 {
94       range "0..2147483647";
95     }
96     description     
97      "This textual convention is an extension of the
98       InterfaceIndex convention.  The latter defines a greater
99       than zero value used to identify an interface or interface
100       sub-layer in the managed system.  This extension permits the
101       additional value of zero.  the value zero is object-specific
102       and must therefore be defined as part of the description of
103       any object which uses this syntax.  Examples of the usage of
104       zero might include situations where interface was unknown,
105       or when none or all interfaces need to be referenced.";
106   }
107
108   container interfaces {
109
110     leaf ifNumber {
111       type int32;
112       config false;
113       description   
114        "The number of network interfaces (regardless of their
115         current state) present on this system.";
116     }
117
118
119     /* XXX table comments here XXX */
120
121     list ifEntry {
122
123       key "ifIndex";
124       description   
125        "An entry containing management information applicable to a
126         particular interface.";
127
128
129       leaf ifIndex {
130         type if-mib:InterfaceIndex;
131         config false;
132         description 
133          "A unique value, greater than zero, for each interface.  It
134           is recommended that values are assigned contiguously
135           starting from 1.  The value for each interface sub-layer
136           must remain constant at least from one re-initialization of
137           the entity's network management system to the next re-
138           initialization.";
139       }
140
141       leaf ifDescr {
142         type smiv2:DisplayString {
143           length "0..255";
144         }
145         config false;
146         description 
147          "A textual string containing information about the
148           interface.  This string should include the name of the
149           manufacturer, the product name and the version of the
150           interface hardware/software.";
151       }
152
153       leaf ifType {
154         type ianaiftype-mib:IANAifType;
155         config false;
156         description 
157          "The type of interface.  Additional values for ifType are
158           assigned by the Internet Assigned Numbers Authority (IANA),
159           through updating the syntax of the IANAifType textual
160           convention.";
161       }
162
163       leaf ifMtu {
164         type int32;
165         config false;
166         description 
167          "The size of the largest packet which can be sent/received
168           on the interface, specified in octets.  For interfaces that
169           are used for transmitting network datagrams, this is the
170           size of the largest network datagram that can be sent on the
171           interface.";
172       }
173
174       leaf ifSpeed {
175         type yang:gauge32;
176         config false;
177         description 
178          "An estimate of the interface's current bandwidth in bits
179           per second.  For interfaces which do not vary in bandwidth
180           or for those where no accurate estimation can be made, this
181           object should contain the nominal bandwidth.  If the
182           bandwidth of the interface is greater than the maximum value
183           reportable by this object then this object should report its
184           maximum value (4,294,967,295) and ifHighSpeed must be used
185           to report the interace's speed.  For a sub-layer which has
186           no concept of bandwidth, this object should be zero.";
187       }
188
189       leaf ifPhysAddress {
190         type yang:phys-address;
191         config false;
192         description 
193          "The interface's address at its protocol sub-layer.  For
194           example, for an 802.x interface, this object normally
195           contains a MAC address.  The interface's media-specific MIB
196           must define the bit and byte ordering and the format of the
197           value of this object.  For interfaces which do not have such
198           an address (e.g., a serial line), this object should contain
199           an octet string of zero length.";
200       }
201
202       leaf ifAdminStatus {
203         type enumeration {
204           enum up      { value 1; }
205           enum down    { value 2; }
206           enum testing { value 3; }
207         }
208         config true;
209         description 
210          "The desired state of the interface.  The testing(3) state
211           indicates that no operational packets can be passed.  When a
212           managed system initializes, all interfaces start with
213           ifAdminStatus in the down(2) state.  As a result of either
214           explicit management action or per configuration information
215           retained by the managed system, ifAdminStatus is then
216           changed to either the up(1) or testing(3) states (or remains
217           in the down(2) state).";
218       }
219
220       leaf ifOperStatus {
221         type enumeration {
222           enum up             { value 1; }
223           enum down           { value 2; }
224           enum testing        { value 3; }
225           enum unknown        { value 4; }
226           enum dormant        { value 5; }
227           enum notPresent     { value 6; }
228           enum lowerLayerDown { value 7; }
229         }
230         config false;
231         description 
232          "The current operational state of the interface.  The
233           testing(3) state indicates that no operational packets can
234           be passed.  If ifAdminStatus is down(2) then ifOperStatus
235           should be down(2).  If ifAdminStatus is changed to up(1)
236           then ifOperStatus should change to up(1) if the interface is
237           ready to transmit and receive network traffic; it should
238           change to dormant(5) if the interface is waiting for
239           external actions (such as a serial line waiting for an
240           incoming connection); it should remain in the down(2) state
241           if and only if there is a fault that prevents it from going
242           to the up(1) state; it should remain in the notPresent(6)
243           state if the interface has missing (typically, hardware)
244           components.";
245       }
246
247       leaf ifLastChange {
248         type yang:timeticks;
249         config false;
250         description 
251          "The value of sysUpTime at the time the interface entered
252           its current operational state.  If the current state was
253           entered prior to the last re-initialization of the local
254           network management subsystem, then this object contains a
255           zero value.";
256       }
257
258       leaf ifInOctets {
259         type yang:counter32;
260         config false;
261         description 
262          "The total number of octets received on the interface,
263           
264           
265           including framing characters.
266           
267           Discontinuities in the value of this counter can occur at
268           re-initialization of the management system, and at other
269           times as indicated by the value of
270           ifCounterDiscontinuityTime.";
271       }
272
273       leaf ifInUcastPkts {
274         type yang:counter32;
275         config false;
276         description 
277          "The number of packets, delivered by this sub-layer to a
278           higher (sub-)layer, which were not addressed to a multicast
279           or broadcast address at this sub-layer.
280           
281           Discontinuities in the value of this counter can occur at
282           re-initialization of the management system, and at other
283           times as indicated by the value of
284           ifCounterDiscontinuityTime.";
285       }
286
287       leaf ifInNUcastPkts {
288         type yang:counter32;
289         config false;
290         status deprecated;
291         description 
292          "The number of packets, delivered by this sub-layer to a
293           higher (sub-)layer, which were addressed to a multicast or
294           broadcast address at this sub-layer.
295           
296           Discontinuities in the value of this counter can occur at
297           re-initialization of the management system, and at other
298           times as indicated by the value of
299           ifCounterDiscontinuityTime.
300           
301           This object is deprecated in favour of ifInMulticastPkts and
302           ifInBroadcastPkts.";
303       }
304
305       leaf ifInDiscards {
306         type yang:counter32;
307         config false;
308         description 
309          "The number of inbound packets which were chosen to be
310           discarded even though no errors had been detected to prevent
311           
312           
313           their being deliverable to a higher-layer protocol.  One
314           possible reason for discarding such a packet could be to
315           free up buffer space.
316           
317           Discontinuities in the value of this counter can occur at
318           re-initialization of the management system, and at other
319           times as indicated by the value of
320           ifCounterDiscontinuityTime.";
321       }
322
323       leaf ifInErrors {
324         type yang:counter32;
325         config false;
326         description 
327          "For packet-oriented interfaces, the number of inbound
328           packets that contained errors preventing them from being
329           deliverable to a higher-layer protocol.  For character-
330           oriented or fixed-length interfaces, the number of inbound
331           transmission units that contained errors preventing them
332           from being deliverable to a higher-layer protocol.
333           
334           Discontinuities in the value of this counter can occur at
335           re-initialization of the management system, and at other
336           times as indicated by the value of
337           ifCounterDiscontinuityTime.";
338       }
339
340       leaf ifInUnknownProtos {
341         type yang:counter32;
342         config false;
343         description 
344          "For packet-oriented interfaces, the number of packets
345           received via the interface which were discarded because of
346           an unknown or unsupported protocol.  For character-oriented
347           or fixed-length interfaces that support protocol
348           multiplexing the number of transmission units received via
349           the interface which were discarded because of an unknown or
350           unsupported protocol.  For any interface that does not
351           support protocol multiplexing, this counter will always be
352           0.
353           
354           Discontinuities in the value of this counter can occur at
355           re-initialization of the management system, and at other
356           times as indicated by the value of
357           ifCounterDiscontinuityTime.";
358       }
359
360       leaf ifOutOctets {
361         type yang:counter32;
362         config false;
363         description 
364          "The total number of octets transmitted out of the
365           interface, including framing characters.
366           
367           Discontinuities in the value of this counter can occur at
368           re-initialization of the management system, and at other
369           times as indicated by the value of
370           ifCounterDiscontinuityTime.";
371       }
372
373       leaf ifOutUcastPkts {
374         type yang:counter32;
375         config false;
376         description 
377          "The total number of packets that higher-level protocols
378           requested be transmitted, and which were not addressed to a
379           multicast or broadcast address at this sub-layer, including
380           those that were discarded or not sent.
381           
382           Discontinuities in the value of this counter can occur at
383           re-initialization of the management system, and at other
384           times as indicated by the value of
385           ifCounterDiscontinuityTime.";
386       }
387
388       leaf ifOutNUcastPkts {
389         type yang:counter32;
390         config false;
391         status deprecated;
392         description 
393          "The total number of packets that higher-level protocols
394           requested be transmitted, and which were addressed to a
395           multicast or broadcast address at this sub-layer, including
396           those that were discarded or not sent.
397           
398           Discontinuities in the value of this counter can occur at
399           re-initialization of the management system, and at other
400           times as indicated by the value of
401           ifCounterDiscontinuityTime.
402           
403           This object is deprecated in favour of ifOutMulticastPkts
404           and ifOutBroadcastPkts.";
405       }
406
407       leaf ifOutDiscards {
408         type yang:counter32;
409         config false;
410         description 
411          "The number of outbound packets which were chosen to be
412           discarded even though no errors had been detected to prevent
413           their being transmitted.  One possible reason for discarding
414           such a packet could be to free up buffer space.
415           
416           Discontinuities in the value of this counter can occur at
417           re-initialization of the management system, and at other
418           times as indicated by the value of
419           ifCounterDiscontinuityTime.";
420       }
421
422       leaf ifOutErrors {
423         type yang:counter32;
424         config false;
425         description 
426          "For packet-oriented interfaces, the number of outbound
427           packets that could not be transmitted because of errors.
428           For character-oriented or fixed-length interfaces, the
429           number of outbound transmission units that could not be
430           transmitted because of errors.
431           
432           Discontinuities in the value of this counter can occur at
433           re-initialization of the management system, and at other
434           times as indicated by the value of
435           ifCounterDiscontinuityTime.";
436       }
437
438       leaf ifOutQLen {
439         type yang:gauge32;
440         config false;
441         status deprecated;
442         description 
443          "The length of the output packet queue (in packets).";
444       }
445
446       leaf ifSpecific {
447         type yang:object-identifier;
448         config false;
449         status deprecated;
450         description 
451          "A reference to MIB definitions specific to the particular
452           media being used to realize the interface.  It is
453           
454           
455           recommended that this value point to an instance of a MIB
456           object in the media-specific MIB, i.e., that this object
457           have the semantics associated with the InstancePointer
458           textual convention defined in RFC 2579.  In fact, it is
459           recommended that the media-specific MIB specify what value
460           ifSpecific should/can take for values of ifType.  If no MIB
461           definitions specific to the particular media are available,
462           the value should be set to the OBJECT IDENTIFIER { 0 0 }.";
463       }
464     }
465   }
466
467   container ifMIBObjects {
468
469
470     /* XXX table comments here XXX */
471
472     list ifStackEntry {
473
474       key "ifStackHigherLayer ifStackLowerLayer";
475       description   
476        "Information on a particular relationship between two sub-
477         layers, specifying that one sub-layer runs on 'top' of the
478         other sub-layer.  Each sub-layer corresponds to a conceptual
479         row in the ifTable.";
480
481
482       leaf ifStackHigherLayer {
483         type if-mib:InterfaceIndexOrZero;
484         config false;
485         description 
486          "The value of ifIndex corresponding to the higher sub-layer
487           of the relationship, i.e., the sub-layer which runs on 'top'
488           of the sub-layer identified by the corresponding instance of
489           ifStackLowerLayer.  If there is no higher sub-layer (below
490           the internetwork layer), then this object has the value 0.";
491       }
492
493       leaf ifStackLowerLayer {
494         type if-mib:InterfaceIndexOrZero;
495         config false;
496         description 
497          "The value of ifIndex corresponding to the lower sub-layer
498           of the relationship, i.e., the sub-layer which runs 'below'
499           the sub-layer identified by the corresponding instance of
500           ifStackHigherLayer.  If there is no lower sub-layer, then
501           this object has the value 0.";
502       }
503
504       leaf ifStackStatus {
505         type smiv2:RowStatus;
506         config true;
507         description 
508          "The status of the relationship between two sub-layers.
509           
510           Changing the value of this object from 'active' to
511           'notInService' or 'destroy' will likely have consequences up
512           and down the interface stack.  Thus, write access to this
513           object is likely to be inappropriate for some types of
514           interfaces, and many implementations will choose not to
515           support write-access for any type of interface.";
516       }
517     }
518
519
520
521     /* XXX table comments here XXX */
522
523     list ifRcvAddressEntry {
524
525       key "ifIndex ifRcvAddressAddress";
526       description   
527        "A list of objects identifying an address for which the
528         system will accept packets/frames on the particular
529         interface identified by the index value ifIndex.";
530
531       leaf ifIndex {
532         type keyref {
533           path "/if-mib:interfaces/if-mib:ifEntry/if-mib:ifIndex";
534         }
535         config false;
536         description 
537          "Automagically generated keyref leaf.";
538       }
539
540       leaf ifRcvAddressAddress {
541         type yang:phys-address;
542         config false;
543         description 
544          "An address for which the system will accept packets/frames
545           on this entry's interface.";
546       }
547
548       leaf ifRcvAddressStatus {
549         type smiv2:RowStatus;
550         config true;
551         description 
552          "This object is used to create and delete rows in the
553           ifRcvAddressTable.";
554       }
555
556       leaf ifRcvAddressType {
557         type enumeration {
558           enum other       { value 1; }
559           enum volatile    { value 2; }
560           enum nonVolatile { value 3; }
561         }
562         config true;
563         description 
564          "This object has the value nonVolatile(3) for those entries
565           in the table which are valid and will not be deleted by the
566           next restart of the managed system.  Entries having the
567           value volatile(2) are valid and exist, but have not been
568           saved, so that will not exist after the next restart of the
569           managed system.  Entries having the value other(1) are valid
570           and exist but are not classified as to whether they will
571           continue to exist after the next restart.";
572       }
573     }
574
575     leaf ifTableLastChange {
576       type yang:timeticks;
577       config false;
578       description   
579        "The value of sysUpTime at the time of the last creation or
580         deletion of an entry in the ifTable.  If the number of
581         entries has been unchanged since the last re-initialization
582         of the local network management subsystem, then this object
583         contains a zero value.";
584     }
585
586     leaf ifStackLastChange {
587       type yang:timeticks;
588       config false;
589       description   
590        "The value of sysUpTime at the time of the last change of
591         the (whole) interface stack.  A change of the interface
592         stack is defined to be any creation, deletion, or change in
593         value of any instance of ifStackStatus.  If the interface
594         stack has been unchanged since the last re-initialization of
595         the local network management subsystem, then this object
596         contains a zero value.";
597     }
598   }
599
600
601   /* XXX table comments here XXX */
602
603   augment "/if-mib:interfaces/if-mib:ifEntry" {
604     description     
605      "An entry containing additional management information
606       applicable to a particular interface.";
607
608     leaf ifName {
609       type smiv2:DisplayString;
610       config false;
611       description   
612        "The textual name of the interface.  The value of this
613         object should be the name of the interface as assigned by
614         the local device and should be suitable for use in commands
615         entered at the device's `console'.  This might be a text
616         name, such as `le0' or a simple port number, such as `1',
617         depending on the interface naming syntax of the device.  If
618         several entries in the ifTable together represent a single
619         interface as named by the device, then each will have the
620         same value of ifName.  Note that for an agent which responds
621         to SNMP queries concerning an interface on some other
622         (proxied) device, then the value of ifName for such an
623         interface is the proxied device's local name for it.
624         
625         If there is no local name, or this object is otherwise not
626         applicable, then this object contains a zero-length string.";
627     }
628
629     leaf ifInMulticastPkts {
630       type yang:counter32;
631       config false;
632       description   
633        "The number of packets, delivered by this sub-layer to a
634         higher (sub-)layer, which were addressed to a multicast
635         address at this sub-layer.  For a MAC layer protocol, this
636         includes both Group and Functional addresses.
637         
638         Discontinuities in the value of this counter can occur at
639         re-initialization of the management system, and at other
640         
641         
642         times as indicated by the value of
643         ifCounterDiscontinuityTime.";
644     }
645
646     leaf ifInBroadcastPkts {
647       type yang:counter32;
648       config false;
649       description   
650        "The number of packets, delivered by this sub-layer to a
651         higher (sub-)layer, which were addressed to a broadcast
652         address at this sub-layer.
653         
654         Discontinuities in the value of this counter can occur at
655         re-initialization of the management system, and at other
656         times as indicated by the value of
657         ifCounterDiscontinuityTime.";
658     }
659
660     leaf ifOutMulticastPkts {
661       type yang:counter32;
662       config false;
663       description   
664        "The total number of packets that higher-level protocols
665         requested be transmitted, and which were addressed to a
666         multicast address at this sub-layer, including those that
667         were discarded or not sent.  For a MAC layer protocol, this
668         includes both Group and Functional addresses.
669         
670         Discontinuities in the value of this counter can occur at
671         re-initialization of the management system, and at other
672         times as indicated by the value of
673         ifCounterDiscontinuityTime.";
674     }
675
676     leaf ifOutBroadcastPkts {
677       type yang:counter32;
678       config false;
679       description   
680        "The total number of packets that higher-level protocols
681         requested be transmitted, and which were addressed to a
682         broadcast address at this sub-layer, including those that
683         were discarded or not sent.
684         
685         Discontinuities in the value of this counter can occur at
686         re-initialization of the management system, and at other
687         
688         
689         times as indicated by the value of
690         ifCounterDiscontinuityTime.";
691     }
692
693     leaf ifHCInOctets {
694       type yang:counter64;
695       config false;
696       description   
697        "The total number of octets received on the interface,
698         including framing characters.  This object is a 64-bit
699         version of ifInOctets.
700         
701         Discontinuities in the value of this counter can occur at
702         re-initialization of the management system, and at other
703         times as indicated by the value of
704         ifCounterDiscontinuityTime.";
705     }
706
707     leaf ifHCInUcastPkts {
708       type yang:counter64;
709       config false;
710       description   
711        "The number of packets, delivered by this sub-layer to a
712         higher (sub-)layer, which were not addressed to a multicast
713         or broadcast address at this sub-layer.  This object is a
714         64-bit version of ifInUcastPkts.
715         
716         Discontinuities in the value of this counter can occur at
717         re-initialization of the management system, and at other
718         times as indicated by the value of
719         ifCounterDiscontinuityTime.";
720     }
721
722     leaf ifHCInMulticastPkts {
723       type yang:counter64;
724       config false;
725       description   
726        "The number of packets, delivered by this sub-layer to a
727         higher (sub-)layer, which were addressed to a multicast
728         address at this sub-layer.  For a MAC layer protocol, this
729         includes both Group and Functional addresses.  This object
730         is a 64-bit version of ifInMulticastPkts.
731         
732         Discontinuities in the value of this counter can occur at
733         re-initialization of the management system, and at other
734         times as indicated by the value of
735         ifCounterDiscontinuityTime.";
736     }
737
738     leaf ifHCInBroadcastPkts {
739       type yang:counter64;
740       config false;
741       description   
742        "The number of packets, delivered by this sub-layer to a
743         higher (sub-)layer, which were addressed to a broadcast
744         address at this sub-layer.  This object is a 64-bit version
745         of ifInBroadcastPkts.
746         
747         Discontinuities in the value of this counter can occur at
748         re-initialization of the management system, and at other
749         times as indicated by the value of
750         ifCounterDiscontinuityTime.";
751     }
752
753     leaf ifHCOutOctets {
754       type yang:counter64;
755       config false;
756       description   
757        "The total number of octets transmitted out of the
758         interface, including framing characters.  This object is a
759         64-bit version of ifOutOctets.
760         
761         Discontinuities in the value of this counter can occur at
762         re-initialization of the management system, and at other
763         times as indicated by the value of
764         ifCounterDiscontinuityTime.";
765     }
766
767     leaf ifHCOutUcastPkts {
768       type yang:counter64;
769       config false;
770       description   
771        "The total number of packets that higher-level protocols
772         requested be transmitted, and which were not addressed to a
773         multicast or broadcast address at this sub-layer, including
774         those that were discarded or not sent.  This object is a
775         64-bit version of ifOutUcastPkts.
776         
777         Discontinuities in the value of this counter can occur at
778         re-initialization of the management system, and at other
779         times as indicated by the value of
780         ifCounterDiscontinuityTime.";
781     }
782
783     leaf ifHCOutMulticastPkts {
784       type yang:counter64;
785       config false;
786       description   
787        "The total number of packets that higher-level protocols
788         requested be transmitted, and which were addressed to a
789         multicast address at this sub-layer, including those that
790         were discarded or not sent.  For a MAC layer protocol, this
791         includes both Group and Functional addresses.  This object
792         is a 64-bit version of ifOutMulticastPkts.
793         
794         Discontinuities in the value of this counter can occur at
795         re-initialization of the management system, and at other
796         times as indicated by the value of
797         ifCounterDiscontinuityTime.";
798     }
799
800     leaf ifHCOutBroadcastPkts {
801       type yang:counter64;
802       config false;
803       description   
804        "The total number of packets that higher-level protocols
805         requested be transmitted, and which were addressed to a
806         broadcast address at this sub-layer, including those that
807         were discarded or not sent.  This object is a 64-bit version
808         of ifOutBroadcastPkts.
809         
810         Discontinuities in the value of this counter can occur at
811         re-initialization of the management system, and at other
812         times as indicated by the value of
813         ifCounterDiscontinuityTime.";
814     }
815
816     leaf ifLinkUpDownTrapEnable {
817       type enumeration {
818         enum enabled  { value 1; }
819         enum disabled { value 2; }
820       }
821       config true;
822       description   
823        "Indicates whether linkUp/linkDown traps should be generated
824         for this interface.
825         
826         By default, this object should have the value enabled(1) for
827         interfaces which do not operate on 'top' of any other
828         interface (as defined in the ifStackTable), and disabled(2)
829         otherwise.";
830     }
831
832     leaf ifHighSpeed {
833       type yang:gauge32;
834       config false;
835       description   
836        "An estimate of the interface's current bandwidth in units
837         of 1,000,000 bits per second.  If this object reports a
838         value of `n' then the speed of the interface is somewhere in
839         the range of `n-500,000' to `n+499,999'.  For interfaces
840         which do not vary in bandwidth or for those where no
841         accurate estimation can be made, this object should contain
842         the nominal bandwidth.  For a sub-layer which has no concept
843         of bandwidth, this object should be zero.";
844     }
845
846     leaf ifPromiscuousMode {
847       type smiv2:TruthValue;
848       config true;
849       description   
850        "This object has a value of false(2) if this interface only
851         accepts packets/frames that are addressed to this station.
852         This object has a value of true(1) when the station accepts
853         all packets/frames transmitted on the media.  The value
854         true(1) is only legal on certain types of media.  If legal,
855         setting this object to a value of true(1) may require the
856         interface to be reset before becoming effective.
857         
858         The value of ifPromiscuousMode does not affect the reception
859         of broadcast and multicast packets/frames by the interface.";
860     }
861
862     leaf ifConnectorPresent {
863       type smiv2:TruthValue;
864       config false;
865       description   
866        "This object has the value 'true(1)' if the interface
867         sublayer has a physical connector and the value 'false(2)'
868         otherwise.";
869     }
870
871     leaf ifAlias {
872       type smiv2:DisplayString {
873         length "0..64";
874       }
875       config true;
876       description   
877        "This object is an 'alias' name for the interface as
878         specified by a network manager, and provides a non-volatile
879         'handle' for the interface.
880         
881         On the first instantiation of an interface, the value of
882         ifAlias associated with that interface is the zero-length
883         string.  As and when a value is written into an instance of
884         ifAlias through a network management set operation, then the
885         agent must retain the supplied value in the ifAlias instance
886         associated with the same interface for as long as that
887         interface remains instantiated, including across all re-
888         initializations/reboots of the network management system,
889         including those which result in a change of the interface's
890         ifIndex value.
891         
892         An example of the value which a network manager might store
893         in this object for a WAN interface is the (Telco's) circuit
894         number/identifier of the interface.
895         
896         Some agents may support write-access only for interfaces
897         having particular values of ifType.  An agent which supports
898         write access to this object is required to keep the value in
899         non-volatile storage, but it may limit the length of new
900         values depending on how much storage is already occupied by
901         the current values for other interfaces.";
902     }
903
904     leaf ifCounterDiscontinuityTime {
905       type yang:timestamp;
906       config false;
907       description   
908        "The value of sysUpTime on the most recent occasion at which
909         any one or more of this interface's counters suffered a
910         discontinuity.  The relevant counters are the specific
911         instances associated with this interface of any Counter32 or
912         
913         
914         Counter64 object contained in the ifTable or ifXTable.  If
915         no such discontinuities have occurred since the last re-
916         initialization of the local management subsystem, then this
917         object contains a zero value.";
918     }
919   }
920
921
922   /* XXX table comments here XXX */
923
924   augment "/if-mib:interfaces/if-mib:ifEntry" {
925     status deprecated;
926     description     
927      "An entry containing objects for invoking tests on an
928       interface.";
929
930     leaf ifTestId {
931       type smiv2:TestAndIncr;
932       config true;
933       status deprecated;
934       description   
935        "This object identifies the current invocation of the
936         interface's test.";
937     }
938
939     leaf ifTestStatus {
940       type enumeration {
941         enum notInUse { value 1; }
942         enum inUse    { value 2; }
943       }
944       config true;
945       status deprecated;
946       description   
947        "This object indicates whether or not some manager currently
948         has the necessary 'ownership' required to invoke a test on
949         this interface.  A write to this object is only successful
950         when it changes its value from 'notInUse(1)' to 'inUse(2)'.
951         After completion of a test, the agent resets the value back
952         to 'notInUse(1)'.";
953     }
954
955     leaf ifTestType {
956       type smiv2:AutonomousType;
957       config true;
958       status deprecated;
959       description   
960        "A control variable used to start and stop operator-
961         initiated interface tests.  Most OBJECT IDENTIFIER values
962         assigned to tests are defined elsewhere, in association with
963         specific types of interface.  However, this document assigns
964         a value for a full-duplex loopback test, and defines the
965         special meanings of the subject identifier:
966         
967             noTest  OBJECT IDENTIFIER ::= { 0 0 }
968         
969         When the value noTest is written to this object, no action
970         is taken unless a test is in progress, in which case the
971         test is aborted.  Writing any other value to this object is
972         
973         
974         only valid when no test is currently in progress, in which
975         case the indicated test is initiated.
976         
977         When read, this object always returns the most recent value
978         that ifTestType was set to.  If it has not been set since
979         the last initialization of the network management subsystem
980         on the agent, a value of noTest is returned.";
981     }
982
983     leaf ifTestResult {
984       type enumeration {
985         enum none         { value 1; }
986         enum success      { value 2; }
987         enum inProgress   { value 3; }
988         enum notSupported { value 4; }
989         enum unAbleToRun  { value 5; }
990         enum aborted      { value 6; }
991         enum failed       { value 7; }
992       }
993       config false;
994       status deprecated;
995       description   
996        "This object contains the result of the most recently
997         requested test, or the value none(1) if no tests have been
998         requested since the last reset.  Note that this facility
999         provides no provision for saving the results of one test
1000         when starting another, as could be required if used by
1001         multiple managers concurrently.";
1002     }
1003
1004     leaf ifTestCode {
1005       type yang:object-identifier;
1006       config false;
1007       status deprecated;
1008       description   
1009        "This object contains a code which contains more specific
1010         information on the test result, for example an error-code
1011         after a failed test.  Error codes and other values this
1012         object may take are specific to the type of interface and/or
1013         test.  The value may have the semantics of either the
1014         AutonomousType or InstancePointer textual conventions as
1015         defined in RFC 2579.  The identifier:
1016         
1017             testCodeUnknown  OBJECT IDENTIFIER ::= { 0 0 }
1018         
1019         is defined for use if no additional result code is
1020         available.";
1021     }
1022
1023     leaf ifTestOwner {
1024       type if-mib:OwnerString;
1025       config true;
1026       status deprecated;
1027       description   
1028        "The entity which currently has the 'ownership' required to
1029         invoke a test on this interface.";
1030     }
1031   }
1032
1033   notification linkDown {
1034     description     
1035      "A linkDown trap signifies that the SNMP entity, acting in
1036       an agent role, has detected that the ifOperStatus object for
1037       one of its communication links is about to enter the down
1038       state from some other state (but not from the notPresent
1039       state).  This other state is indicated by the included value
1040       of ifOperStatus.";
1041
1042     container linkDown-ifIndex {
1043       leaf ifIndex {
1044         type keyref {
1045           path "/if-mib:interfaces/if-mib:ifEntry/if-mib:ifIndex";
1046         }
1047         config false;
1048         description 
1049          "Automagically generated keyref leaf.";
1050       }
1051     }
1052
1053     container linkDown-ifAdminStatus {
1054       leaf ifIndex {
1055         type keyref {
1056           path "/if-mib:interfaces/if-mib:ifEntry/if-mib:ifIndex";
1057         }
1058         config false;
1059         description 
1060          "Automagically generated keyref leaf.";
1061       }
1062       leaf ifAdminStatus {
1063         type enumeration {
1064           enum up      { value 1; }
1065           enum down    { value 2; }
1066           enum testing { value 3; }
1067         }
1068         config false;
1069         description 
1070          "The desired state of the interface.  The testing(3) state
1071           indicates that no operational packets can be passed.  When a
1072           managed system initializes, all interfaces start with
1073           ifAdminStatus in the down(2) state.  As a result of either
1074           explicit management action or per configuration information
1075           retained by the managed system, ifAdminStatus is then
1076           changed to either the up(1) or testing(3) states (or remains
1077           in the down(2) state).";
1078       }
1079     }
1080
1081     container linkDown-ifOperStatus {
1082       leaf ifIndex {
1083         type keyref {
1084           path "/if-mib:interfaces/if-mib:ifEntry/if-mib:ifIndex";
1085         }
1086         config false;
1087         description 
1088          "Automagically generated keyref leaf.";
1089       }
1090       leaf ifOperStatus {
1091         type enumeration {
1092           enum up             { value 1; }
1093           enum down           { value 2; }
1094           enum testing        { value 3; }
1095           enum unknown        { value 4; }
1096           enum dormant        { value 5; }
1097           enum notPresent     { value 6; }
1098           enum lowerLayerDown { value 7; }
1099         }
1100         config false;
1101         description 
1102          "The current operational state of the interface.  The
1103           testing(3) state indicates that no operational packets can
1104           be passed.  If ifAdminStatus is down(2) then ifOperStatus
1105           should be down(2).  If ifAdminStatus is changed to up(1)
1106           then ifOperStatus should change to up(1) if the interface is
1107           ready to transmit and receive network traffic; it should
1108           change to dormant(5) if the interface is waiting for
1109           external actions (such as a serial line waiting for an
1110           incoming connection); it should remain in the down(2) state
1111           if and only if there is a fault that prevents it from going
1112           to the up(1) state; it should remain in the notPresent(6)
1113           state if the interface has missing (typically, hardware)
1114           components.";
1115       }
1116     }
1117
1118   }
1119
1120   notification linkUp {
1121     description     
1122      "A linkUp trap signifies that the SNMP entity, acting in an
1123       agent role, has detected that the ifOperStatus object for
1124       one of its communication links left the down state and
1125       transitioned into some other state (but not into the
1126       notPresent state).  This other state is indicated by the
1127       included value of ifOperStatus.";
1128
1129     container linkUp-ifIndex {
1130       leaf ifIndex {
1131         type keyref {
1132           path "/if-mib:interfaces/if-mib:ifEntry/if-mib:ifIndex";
1133         }
1134         config false;
1135         description 
1136          "Automagically generated keyref leaf.";
1137       }
1138     }
1139
1140     container linkUp-ifAdminStatus {
1141       leaf ifIndex {
1142         type keyref {
1143           path "/if-mib:interfaces/if-mib:ifEntry/if-mib:ifIndex";
1144         }
1145         config false;
1146         description 
1147          "Automagically generated keyref leaf.";
1148       }
1149       leaf ifAdminStatus {
1150         type enumeration {
1151           enum up      { value 1; }
1152           enum down    { value 2; }
1153           enum testing { value 3; }
1154         }
1155         config false;
1156         description 
1157          "The desired state of the interface.  The testing(3) state
1158           indicates that no operational packets can be passed.  When a
1159           managed system initializes, all interfaces start with
1160           ifAdminStatus in the down(2) state.  As a result of either
1161           explicit management action or per configuration information
1162           retained by the managed system, ifAdminStatus is then
1163           changed to either the up(1) or testing(3) states (or remains
1164           in the down(2) state).";
1165       }
1166     }
1167
1168     container linkUp-ifOperStatus {
1169       leaf ifIndex {
1170         type keyref {
1171           path "/if-mib:interfaces/if-mib:ifEntry/if-mib:ifIndex";
1172         }
1173         config false;
1174         description 
1175          "Automagically generated keyref leaf.";
1176       }
1177       leaf ifOperStatus {
1178         type enumeration {
1179           enum up             { value 1; }
1180           enum down           { value 2; }
1181           enum testing        { value 3; }
1182           enum unknown        { value 4; }
1183           enum dormant        { value 5; }
1184           enum notPresent     { value 6; }
1185           enum lowerLayerDown { value 7; }
1186         }
1187         config false;
1188         description 
1189          "The current operational state of the interface.  The
1190           testing(3) state indicates that no operational packets can
1191           be passed.  If ifAdminStatus is down(2) then ifOperStatus
1192           should be down(2).  If ifAdminStatus is changed to up(1)
1193           then ifOperStatus should change to up(1) if the interface is
1194           ready to transmit and receive network traffic; it should
1195           change to dormant(5) if the interface is waiting for
1196           external actions (such as a serial line waiting for an
1197           incoming connection); it should remain in the down(2) state
1198           if and only if there is a fault that prevents it from going
1199           to the up(1) state; it should remain in the notPresent(6)
1200           state if the interface has missing (typically, hardware)
1201           components.";
1202       }
1203     }
1204
1205   }
1206 } /* end of module IF-MIB */