netconfcentral logo

IP-MIB.yang



   module IP-MIB {

      yang-version 1;

      namespace
         "urn:ietf:params:xml:ns:yang:smiv2:IP-MIB";

      prefix "ip-mib";

      import IF-MIB {
         prefix "if-mib";
      }
      import INET-ADDRESS-MIB {
         prefix "inet-address";
      }
      import SNMPv2-TC {
         prefix "smiv2";
      }
      import ietf-inet-types {
         prefix "inet";
      }
      import yang-smi {
         prefix "smi";
      }
      import ietf-yang-types {
         prefix "yang";
      }

      organization "IETF IPv6 MIB Revision Team";

      contact
         "Editor:
         
         
         
         Shawn A. Routhier
         Interworking Labs
         108 Whispering Pines Dr. Suite 235
         Scotts Valley, CA 95066
         USA
         EMail: <sar@iwl.com>";

      description
         "The MIB module for managing IP and ICMP implementations, but
         excluding their management of IP routes.
         
         Copyright (C) The Internet Society (2006).  This version of
         this MIB module is part of RFC 4293; see the RFC itself for
         full legal notices.";

      revision "2006-02-02" {
         description
            "The IP version neutral revision with added IPv6 objects for
            ND, default routers, and router advertisements.  As well as
            being the successor to RFC 2011, this MIB is also the
            successor to RFCs 2465 and 2466.  Published as RFC 4293.";
      }

      revision "1994-11-01" {
         description
            "A separate MIB module (IP-MIB) for IP and ICMP management
            objects.  Published as RFC 2011.";
      }

      revision "1991-03-31" {
         description
            "The initial revision of this MIB module was part of MIB-II,
            which was published as RFC 1213.";
      }


      typedef IpAddressOriginTC {
         type enumeration {
            enum "other" {
               value 1;
            }
            enum "manual" {
               value 2;
            }
            enum "dhcp" {
               value 4;
            }
            enum "linklayer" {
               value 5;
            }
            enum "random" {
               value 6;
            }
         }
         description
            "The origin of the address.
            
            manual(2) indicates that the address was manually configured
            to a specified address, e.g., by user configuration.
            
            dhcp(4) indicates an address that was assigned to this
            system by a DHCP server.
            
            linklayer(5) indicates an address created by IPv6 stateless
            
            
            
            auto-configuration.
            
            random(6) indicates an address chosen by the system at
            random, e.g., an IPv4 address within 169.254/16, or an RFC
            3041 privacy address.";
      }

      typedef IpAddressStatusTC {
         type enumeration {
            enum "preferred" {
               value 1;
            }
            enum "deprecated" {
               value 2;
            }
            enum "invalid" {
               value 3;
            }
            enum "inaccessible" {
               value 4;
            }
            enum "unknown" {
               value 5;
            }
            enum "tentative" {
               value 6;
            }
            enum "duplicate" {
               value 7;
            }
            enum "optimistic" {
               value 8;
            }
         }
         description
            "The status of an address.  Most of the states correspond to
            states from the IPv6 Stateless Address Autoconfiguration
            protocol.
            
            The preferred(1) state indicates that this is a valid
            address that can appear as the destination or source address
            of a packet.
            
            The deprecated(2) state indicates that this is a valid but
            deprecated address that should no longer be used as a source
            address in new communications, but packets addressed to such
            an address are processed as expected.
            
            The invalid(3) state indicates that this isn't a valid
            address and it shouldn't appear as the destination or source
            address of a packet.
            
            The inaccessible(4) state indicates that the address is not
            accessible because the interface to which this address is
            assigned is not operational.
            
            The unknown(5) state indicates that the status cannot be
            determined for some reason.
            
            The tentative(6) state indicates that the uniqueness of the
            address on the link is being verified.  Addresses in this
            state should not be used for general communication and
            should only be used to determine the uniqueness of the
            address.
            
            The duplicate(7) state indicates the address has been
            determined to be non-unique on the link and so must not be
            
            
            
            used.
            
            The optimistic(8) state indicates the address is available
            for use, subject to restrictions, while its uniqueness on
            a link is being verified.
            
            In the absence of other information, an IPv4 address is
            always preferred(1).";
         reference
            "RFC 2462";

      }

      typedef IpAddressPrefixOriginTC {
         type enumeration {
            enum "other" {
               value 1;
            }
            enum "manual" {
               value 2;
            }
            enum "wellknown" {
               value 3;
            }
            enum "dhcp" {
               value 4;
            }
            enum "routeradv" {
               value 5;
            }
         }
         description
            "The origin of this prefix.
            
            manual(2) indicates a prefix that was manually configured.
            
            wellknown(3) indicates a well-known prefix, e.g., 169.254/16
            for IPv4 auto-configuration or fe80::/10 for IPv6 link-local
            addresses.  Well known prefixes may be assigned by IANA,
            the address registries, or by specification in a standards
            track RFC.
            
            dhcp(4) indicates a prefix that was assigned by a DHCP
            server.
            
            routeradv(5) indicates a prefix learned from a router
            advertisement.
            
            Note: while IpAddressOriginTC and IpAddressPrefixOriginTC
            are similar, they are not identical.  The first defines how
            an address was created, while the second defines how a
            prefix was found.";
      }

      typedef Ipv6AddressIfIdentifierTC {
         type string {
            length "0..8";
            pattern
               '(((([0-9A-Fa-f]{2})){0,7}([0-9A-Fa-f]{2}))){0,1}';
            smi:display-hint "2x:";
         }
         description
            "This data type is used to model IPv6 address
            interface identifiers.  This is a binary string
            of up to 8 octets in network byte-order.";
      }

      container ip {
         leaf ipForwarding {
            type enumeration {
               enum "forwarding" {
                  value 1;
               }
               enum "notForwarding" {
                  value 2;
               }
            }
            description
               "The indication of whether this entity is acting as an IPv4
               router in respect to the forwarding of datagrams received
               by, but not addressed to, this entity.  IPv4 routers forward
               datagrams.  IPv4 hosts do not (except those source-routed
               via the host).
               
               When this object is written, the entity should save the
               change to non-volatile storage and restore the object from
               non-volatile storage upon re-initialization of the system.
               Note: a stronger requirement is not used because this object
               was previously defined.";
            smi:oid "1.3.6.1.2.1.4.1";
         }

         leaf ipDefaultTTL {
            type int32 {
               range "1..255";
            }
            description
               "The default value inserted into the Time-To-Live field of
               the IPv4 header of datagrams originated at this entity,
               whenever a TTL value is not supplied by the transport layer
               
               
               
               protocol.
               
               When this object is written, the entity should save the
               change to non-volatile storage and restore the object from
               non-volatile storage upon re-initialization of the system.
               Note: a stronger requirement is not used because this object
               was previously defined.";
            smi:oid "1.3.6.1.2.1.4.2";
         }

         leaf ipInReceives {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The total number of input datagrams received from
               interfaces, including those received in error.
               
               This object has been deprecated, as a new IP version-neutral
               
               
               
               table has been added.  It is loosely replaced by
               ipSystemStatsInRecieves.";
            smi:oid "1.3.6.1.2.1.4.3";
         }

         leaf ipInHdrErrors {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of input datagrams discarded due to errors in
               their IPv4 headers, including bad checksums, version number
               mismatch, other format errors, time-to-live exceeded, errors
               discovered in processing their IPv4 options, etc.
               
               This object has been deprecated as a new IP version-neutral
               table has been added.  It is loosely replaced by
               ipSystemStatsInHdrErrors.";
            smi:oid "1.3.6.1.2.1.4.4";
         }

         leaf ipInAddrErrors {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of input datagrams discarded because the IPv4
               address in their IPv4 header's destination field was not a
               valid address to be received at this entity.  This count
               includes invalid addresses (e.g., 0.0.0.0) and addresses of
               unsupported Classes (e.g., Class E).  For entities which are
               not IPv4 routers, and therefore do not forward datagrams,
               this counter includes datagrams discarded because the
               destination address was not a local address.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by
               ipSystemStatsInAddrErrors.";
            smi:oid "1.3.6.1.2.1.4.5";
         }

         leaf ipForwDatagrams {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of input datagrams for which this entity was not
               their final IPv4 destination, as a result of which an
               attempt was made to find a route to forward them to that
               final destination.  In entities which do not act as IPv4
               routers, this counter will include only those packets which
               
               
               
               were Source-Routed via this entity, and the Source-Route
               option processing was successful.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by
               ipSystemStatsInForwDatagrams.";
            smi:oid "1.3.6.1.2.1.4.6";
         }

         leaf ipInUnknownProtos {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of locally-addressed datagrams received
               successfully but discarded because of an unknown or
               unsupported protocol.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by
               ipSystemStatsInUnknownProtos.";
            smi:oid "1.3.6.1.2.1.4.7";
         }

         leaf ipInDiscards {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of input IPv4 datagrams for which no problems
               were encountered to prevent their continued processing, but
               which were discarded (e.g., for lack of buffer space).  Note
               that this counter does not include any datagrams discarded
               while awaiting re-assembly.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by
               ipSystemStatsInDiscards.";
            smi:oid "1.3.6.1.2.1.4.8";
         }

         leaf ipInDelivers {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The total number of input datagrams successfully delivered
               to IPv4 user-protocols (including ICMP).
               
               This object has been deprecated as a new IP version neutral
               table has been added.  It is loosely replaced by
               
               
               
               ipSystemStatsIndelivers.";
            smi:oid "1.3.6.1.2.1.4.9";
         }

         leaf ipOutRequests {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The total number of IPv4 datagrams which local IPv4 user
               protocols (including ICMP) supplied to IPv4 in requests for
               transmission.  Note that this counter does not include any
               datagrams counted in ipForwDatagrams.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by
               ipSystemStatsOutRequests.";
            smi:oid "1.3.6.1.2.1.4.10";
         }

         leaf ipOutDiscards {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of output IPv4 datagrams for which no problem was
               encountered to prevent their transmission to their
               destination, but which were discarded (e.g., for lack of
               buffer space).  Note that this counter would include
               datagrams counted in ipForwDatagrams if any such packets met
               this (discretionary) discard criterion.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by
               ipSystemStatsOutDiscards.";
            smi:oid "1.3.6.1.2.1.4.11";
         }

         leaf ipOutNoRoutes {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of IPv4 datagrams discarded because no route
               could be found to transmit them to their destination.  Note
               that this counter includes any packets counted in
               ipForwDatagrams which meet this `no-route' criterion.  Note
               that this includes any datagrams which a host cannot route
               because all of its default routers are down.
               
               This object has been deprecated, as a new IP version-neutral
               
               
               
               table has been added.  It is loosely replaced by
               ipSystemStatsOutNoRoutes.";
            smi:oid "1.3.6.1.2.1.4.12";
         }

         leaf ipReasmTimeout {
            type int32;
            units "seconds";
            config "false";
            description
               "The maximum number of seconds that received fragments are
               held while they are awaiting reassembly at this entity.";
            smi:oid "1.3.6.1.2.1.4.13";
         }

         leaf ipReasmReqds {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of IPv4 fragments received which needed to be
               reassembled at this entity.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by
               ipSystemStatsReasmReqds.";
            smi:oid "1.3.6.1.2.1.4.14";
         }

         leaf ipReasmOKs {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of IPv4 datagrams successfully re-assembled.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by
               ipSystemStatsReasmOKs.";
            smi:oid "1.3.6.1.2.1.4.15";
         }

         leaf ipReasmFails {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of failures detected by the IPv4 re-assembly
               algorithm (for whatever reason: timed out, errors, etc).
               Note that this is not necessarily a count of discarded IPv4
               fragments since some algorithms (notably the algorithm in
               RFC 815) can lose track of the number of fragments by
               combining them as they are received.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by
               ipSystemStatsReasmFails.";
            smi:oid "1.3.6.1.2.1.4.16";
         }

         leaf ipFragOKs {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of IPv4 datagrams that have been successfully
               fragmented at this entity.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by
               ipSystemStatsOutFragOKs.";
            smi:oid "1.3.6.1.2.1.4.17";
         }

         leaf ipFragFails {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of IPv4 datagrams that have been discarded
               because they needed to be fragmented at this entity but
               could not be, e.g., because their Don't Fragment flag was
               set.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by
               ipSystemStatsOutFragFails.";
            smi:oid "1.3.6.1.2.1.4.18";
         }

         leaf ipFragCreates {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of IPv4 datagram fragments that have been
               generated as a result of fragmentation at this entity.
               
               This object has been deprecated as a new IP version neutral
               table has been added.  It is loosely replaced by
               ipSystemStatsOutFragCreates.";
            smi:oid "1.3.6.1.2.1.4.19";
         }

         list ipAddrEntry {
            key "ipAdEntAddr";
            status "deprecated";
            description
               "The addressing information for one of this entity's IPv4
               addresses.";
            leaf ipAdEntAddr {
               type inet:ipv4-address;
               status "deprecated";
               description
                  "The IPv4 address to which this entry's addressing
                  information pertains.";
               smi:oid "1.3.6.1.2.1.4.20.1.1";
            }

            leaf ipAdEntIfIndex {
               type int32 {
                  range "1..2147483647";
               }
               config "false";
               status "deprecated";
               description
                  "The index value which uniquely identifies the interface to
                  which this entry is applicable.  The interface identified by
                  a particular value of this index is the same interface as
                  identified by the same value of the IF-MIB's ifIndex.";
               smi:oid "1.3.6.1.2.1.4.20.1.2";
            }

            leaf ipAdEntNetMask {
               type inet:ipv4-address;
               config "false";
               status "deprecated";
               description
                  "The subnet mask associated with the IPv4 address of this
                  entry.  The value of the mask is an IPv4 address with all
                  the network bits set to 1 and all the hosts bits set to 0.";
               smi:oid "1.3.6.1.2.1.4.20.1.3";
            }

            leaf ipAdEntBcastAddr {
               type int32 {
                  range "0..1";
               }
               config "false";
               status "deprecated";
               description
                  "The value of the least-significant bit in the IPv4 broadcast
                  address used for sending datagrams on the (logical)
                  interface associated with the IPv4 address of this entry.
                  For example, when the Internet standard all-ones broadcast
                  address is used, the value will be 1.  This value applies to
                  both the subnet and network broadcast addresses used by the
                  entity on this (logical) interface.";
               smi:oid "1.3.6.1.2.1.4.20.1.4";
            }

            leaf ipAdEntReasmMaxSize {
               type int32 {
                  range "0..65535";
               }
               config "false";
               status "deprecated";
               description
                  "The size of the largest IPv4 datagram which this entity can
                  re-assemble from incoming IPv4 fragmented datagrams received
                  on this interface.";
               smi:oid "1.3.6.1.2.1.4.20.1.5";
            }
            smi:oid "1.3.6.1.2.1.4.20.1";
         }  // list ipAddrEntry

         list ipNetToMediaEntry {
            key "ipNetToMediaIfIndex ipNetToMediaNetAddress";
            status "deprecated";
            description
               "Each entry contains one IpAddress to `physical' address
               equivalence.";
            leaf ipNetToMediaIfIndex {
               type int32 {
                  range "1..2147483647";
               }
               status "deprecated";
               description
                  "The interface on which this entry's equivalence is
                  effective.  The interface identified by a particular value
                  of this index is the same interface as identified by the
                  
                  
                  
                  same value of the IF-MIB's ifIndex.
                  
                  This object predates the rule limiting index objects to a
                  max access value of 'not-accessible' and so continues to use
                  a value of 'read-create'.";
               smi:oid "1.3.6.1.2.1.4.22.1.1";
            }

            leaf ipNetToMediaPhysAddress {
               type yang:phys-address {
                  length "0..65535";
               }
               status "deprecated";
               description
                  "The media-dependent `physical' address.  This object should
                  return 0 when this entry is in the 'incomplete' state.
                  
                  As the entries in this table are typically not persistent
                  when this object is written the entity should not save the
                  change to non-volatile storage.  Note: a stronger
                  requirement is not used because this object was previously
                  defined.";
               smi:oid "1.3.6.1.2.1.4.22.1.2";
            }

            leaf ipNetToMediaNetAddress {
               type inet:ipv4-address;
               status "deprecated";
               description
                  "The IpAddress corresponding to the media-dependent
                  `physical' address.
                  
                  This object predates the rule limiting index objects to a
                  max access value of 'not-accessible' and so continues to use
                  a value of 'read-create'.";
               smi:oid "1.3.6.1.2.1.4.22.1.3";
            }

            leaf ipNetToMediaType {
               type enumeration {
                  enum "other" {
                     value 1;
                  }
                  enum "invalid" {
                     value 2;
                  }
                  enum "dynamic" {
                     value 3;
                  }
                  enum "static" {
                     value 4;
                  }
               }
               status "deprecated";
               description
                  "The type of mapping.
                  
                  Setting this object to the value invalid(2) has the effect
                  
                  
                  
                  of invalidating the corresponding entry in the
                  ipNetToMediaTable.  That is, it effectively dis-associates
                  the interface identified with said entry from the mapping
                  identified with said entry.  It is an implementation-
                  specific matter as to whether the agent removes an
                  invalidated entry from the table.  Accordingly, management
                  stations must be prepared to receive tabular information
                  from agents that corresponds to entries not currently in
                  use.  Proper interpretation of such entries requires
                  examination of the relevant ipNetToMediaType object.
                  
                  As the entries in this table are typically not persistent
                  when this object is written the entity should not save the
                  change to non-volatile storage.  Note: a stronger
                  requirement is not used because this object was previously
                  defined.";
               smi:oid "1.3.6.1.2.1.4.22.1.4";
            }
            smi:oid "1.3.6.1.2.1.4.22.1";
         }  // list ipNetToMediaEntry

         leaf ipRoutingDiscards {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of routing entries which were chosen to be
               discarded even though they are valid.  One possible reason
               for discarding such an entry could be to free-up buffer
               space for other routing entries.
               
               
               
               This object was defined in pre-IPv6 versions of the IP MIB.
               It was implicitly IPv4 only, but the original specifications
               did not indicate this protocol restriction.  In order to
               clarify the specifications, this object has been deprecated
               and a similar, but more thoroughly clarified, object has
               been added to the IP-FORWARD-MIB.";
            smi:oid "1.3.6.1.2.1.4.23";
         }

         leaf ipv6IpForwarding {
            type enumeration {
               enum "forwarding" {
                  value 1;
               }
               enum "notForwarding" {
                  value 2;
               }
            }
            description
               "The indication of whether this entity is acting as an IPv6
               router on any interface in respect to the forwarding of
               datagrams received by, but not addressed to, this entity.
               IPv6 routers forward datagrams.  IPv6 hosts do not (except
               those source-routed via the host).
               
               When this object is written, the entity SHOULD save the
               change to non-volatile storage and restore the object from
               non-volatile storage upon re-initialization of the system.";
            smi:oid "1.3.6.1.2.1.4.25";
         }

         leaf ipv6IpDefaultHopLimit {
            type int32 {
               range "0..255";
            }
            description
               "The default value inserted into the Hop Limit field of the
               IPv6 header of datagrams originated at this entity whenever
               a Hop Limit value is not supplied by the transport layer
               protocol.
               
               When this object is written, the entity SHOULD save the
               change to non-volatile storage and restore the object from
               non-volatile storage upon re-initialization of the system.";
            reference
               "RFC 2461 Section 6.3.2";

            smi:oid "1.3.6.1.2.1.4.26";
         }

         leaf ipv4InterfaceTableLastChange {
            type yang:timestamp;
            config "false";
            description
               "The value of sysUpTime on the most recent occasion at which
               a row in the ipv4InterfaceTable was added or deleted, or
               when an ipv4InterfaceReasmMaxSize or an
               ipv4InterfaceEnableStatus object was modified.
               
               If new objects are added to the ipv4InterfaceTable that
               require the ipv4InterfaceTableLastChange to be updated when
               they are modified, they must specify that requirement in
               their description clause.";
            smi:oid "1.3.6.1.2.1.4.27";
         }

         list ipv4InterfaceEntry {
            key "ipv4InterfaceIfIndex";
            description
               "An entry containing IPv4-specific information for a specific
               interface.";
            leaf ipv4InterfaceIfIndex {
               type if-mib:InterfaceIndex;
               description
                  "The index value that uniquely identifies the interface to
                  which this entry is applicable.  The interface identified by
                  a particular value of this index is the same interface as
                  identified by the same value of the IF-MIB's ifIndex.";
               smi:oid "1.3.6.1.2.1.4.28.1.1";
            }

            leaf ipv4InterfaceReasmMaxSize {
               type int32 {
                  range "0..65535";
               }
               config "false";
               description
                  "The size of the largest IPv4 datagram that this entity can
                  re-assemble from incoming IPv4 fragmented datagrams received
                  on this interface.";
               smi:oid "1.3.6.1.2.1.4.28.1.2";
            }

            leaf ipv4InterfaceEnableStatus {
               type enumeration {
                  enum "up" {
                     value 1;
                  }
                  enum "down" {
                     value 2;
                  }
               }
               description
                  "The indication of whether IPv4 is enabled (up) or disabled
                  (down) on this interface.  This object does not affect the
                  state of the interface itself, only its connection to an
                  IPv4 stack.  The IF-MIB should be used to control the state
                  of the interface.";
               smi:oid "1.3.6.1.2.1.4.28.1.3";
            }

            leaf ipv4InterfaceRetransmitTime {
               type uint32;
               units "milliseconds";
               config "false";
               description
                  "The time between retransmissions of ARP requests to a
                  neighbor when resolving the address or when probing the
                  reachability of a neighbor.";
               reference
                  "RFC 1122";

               smi:default "1000";
               smi:oid "1.3.6.1.2.1.4.28.1.4";
            }
            smi:oid "1.3.6.1.2.1.4.28.1";
         }  // list ipv4InterfaceEntry

         leaf ipv6InterfaceTableLastChange {
            type yang:timestamp;
            config "false";
            description
               "The value of sysUpTime on the most recent occasion at which
               a row in the ipv6InterfaceTable was added or deleted or when
               an ipv6InterfaceReasmMaxSize, ipv6InterfaceIdentifier,
               ipv6InterfaceEnableStatus, ipv6InterfaceReachableTime,
               ipv6InterfaceRetransmitTime, or ipv6InterfaceForwarding
               object was modified.
               
               If new objects are added to the ipv6InterfaceTable that
               require the ipv6InterfaceTableLastChange to be updated when
               they are modified, they must specify that requirement in
               their description clause.";
            smi:oid "1.3.6.1.2.1.4.29";
         }

         list ipv6InterfaceEntry {
            key "ipv6InterfaceIfIndex";
            description
               "An entry containing IPv6-specific information for a given
               interface.";
            leaf ipv6InterfaceIfIndex {
               type if-mib:InterfaceIndex;
               description
                  "The index value that uniquely identifies the interface to
                  which this entry is applicable.  The interface identified by
                  a particular value of this index is the same interface as
                  identified by the same value of the IF-MIB's ifIndex.";
               smi:oid "1.3.6.1.2.1.4.30.1.1";
            }

            leaf ipv6InterfaceReasmMaxSize {
               type uint32 {
                  range "1500..65535";
               }
               units "octets";
               config "false";
               description
                  "The size of the largest IPv6 datagram that this entity can
                  re-assemble from incoming IPv6 fragmented datagrams received
                  on this interface.";
               smi:oid "1.3.6.1.2.1.4.30.1.2";
            }

            leaf ipv6InterfaceIdentifier {
               type Ipv6AddressIfIdentifierTC;
               config "false";
               description
                  "The Interface Identifier for this interface.  The Interface
                  Identifier is combined with an address prefix to form an
                  interface address.
                  
                  By default, the Interface Identifier is auto-configured
                  according to the rules of the link type to which this
                  interface is attached.
                  
                  
                  
                  
                  A zero length identifier may be used where appropriate.  One
                  possible example is a loopback interface.";
               smi:oid "1.3.6.1.2.1.4.30.1.3";
            }

            leaf ipv6InterfaceEnableStatus {
               type enumeration {
                  enum "up" {
                     value 1;
                  }
                  enum "down" {
                     value 2;
                  }
               }
               description
                  "The indication of whether IPv6 is enabled (up) or disabled
                  (down) on this interface.  This object does not affect the
                  state of the interface itself, only its connection to an
                  IPv6 stack.  The IF-MIB should be used to control the state
                  of the interface.
                  
                  When this object is written, the entity SHOULD save the
                  change to non-volatile storage and restore the object from
                  non-volatile storage upon re-initialization of the system.";
               smi:oid "1.3.6.1.2.1.4.30.1.5";
            }

            leaf ipv6InterfaceReachableTime {
               type uint32;
               units "milliseconds";
               config "false";
               description
                  "The time a neighbor is considered reachable after receiving
                  a reachability confirmation.";
               reference
                  "RFC 2461, Section 6.3.2";

               smi:oid "1.3.6.1.2.1.4.30.1.6";
            }

            leaf ipv6InterfaceRetransmitTime {
               type uint32;
               units "milliseconds";
               config "false";
               description
                  "The time between retransmissions of Neighbor Solicitation
                  messages to a neighbor when resolving the address or when
                  probing the reachability of a neighbor.";
               reference
                  "RFC 2461, Section 6.3.2";

               smi:oid "1.3.6.1.2.1.4.30.1.7";
            }

            leaf ipv6InterfaceForwarding {
               type enumeration {
                  enum "forwarding" {
                     value 1;
                  }
                  enum "notForwarding" {
                     value 2;
                  }
               }
               description
                  "The indication of whether this entity is acting as an IPv6
                  router on this interface with respect to the forwarding of
                  datagrams received by, but not addressed to, this entity.
                  IPv6 routers forward datagrams.  IPv6 hosts do not (except
                  those source-routed via the host).
                  
                  This object is constrained by ipv6IpForwarding and is
                  ignored if ipv6IpForwarding is set to notForwarding.  Those
                  systems that do not provide per-interface control of the
                  forwarding function should set this object to forwarding for
                  all interfaces and allow the ipv6IpForwarding object to
                  control the forwarding capability.
                  
                  When this object is written, the entity SHOULD save the
                  change to non-volatile storage and restore the object from
                  non-volatile storage upon re-initialization of the system.";
               smi:oid "1.3.6.1.2.1.4.30.1.8";
            }
            smi:oid "1.3.6.1.2.1.4.30.1";
         }  // list ipv6InterfaceEntry

         list ipAddressPrefixEntry {
            key "ipAddressPrefixIfIndex ipAddressPrefixType ipAddressPrefixPrefix ipAddressPrefixLength";
            description "An entry in the ipAddressPrefixTable.";
            leaf ipAddressPrefixIfIndex {
               type if-mib:InterfaceIndex;
               description
                  "The index value that uniquely identifies the interface on
                  which this prefix is configured.  The interface identified
                  by a particular value of this index is the same interface as
                  identified by the same value of the IF-MIB's ifIndex.";
               smi:oid "1.3.6.1.2.1.4.32.1.1";
            }

            leaf ipAddressPrefixType {
               type inet-address:InetAddressType;
               description "The address type of ipAddressPrefix.";
               smi:oid "1.3.6.1.2.1.4.32.1.2";
            }

            leaf ipAddressPrefixPrefix {
               type inet-address:InetAddress;
               description
                  "The address prefix.  The address type of this object is
                  specified in ipAddressPrefixType.  The length of this object
                  is the standard length for objects of that type (4 or 16
                  bytes).  Any bits after ipAddressPrefixLength must be zero.
                  
                  Implementors need to be aware that, if the size of
                  ipAddressPrefixPrefix exceeds 114 octets, then OIDS of
                  instances of columns in this row will have more than 128
                  sub-identifiers and cannot be accessed using SNMPv1,
                  SNMPv2c, or SNMPv3.";
               smi:oid "1.3.6.1.2.1.4.32.1.3";
            }

            leaf ipAddressPrefixLength {
               type inet-address:InetAddressPrefixLength;
               description
                  "The prefix length associated with this prefix.
                  
                  The value 0 has no special meaning for this object.  It
                  simply refers to address '::/0'.";
               smi:oid "1.3.6.1.2.1.4.32.1.4";
            }

            leaf ipAddressPrefixOrigin {
               type IpAddressPrefixOriginTC;
               config "false";
               description "The origin of this prefix.";
               smi:oid "1.3.6.1.2.1.4.32.1.5";
            }

            leaf ipAddressPrefixOnLinkFlag {
               type smiv2:TruthValue;
               config "false";
               description
                  "This object has the value 'true(1)', if this prefix can be
                  used for on-link determination; otherwise, the value is
                  'false(2)'.
                  
                  The default for IPv4 prefixes is 'true(1)'.";
               reference
                  "For IPv6 RFC 2461, especially sections 2 and 4.6.2 and
                   RFC 2462";

               smi:oid "1.3.6.1.2.1.4.32.1.6";
            }

            leaf ipAddressPrefixAutonomousFlag {
               type smiv2:TruthValue;
               config "false";
               description
                  "Autonomous address configuration flag.  When true(1),
                  indicates that this prefix can be used for autonomous
                  address configuration (i.e., can be used to form a local
                  interface address).  If false(2), it is not used to auto-
                  configure a local interface address.
                  
                  The default for IPv4 prefixes is 'false(2)'.";
               reference
                  "For IPv6 RFC 2461, especially sections 2 and 4.6.2 and
                   RFC 2462";

               smi:oid "1.3.6.1.2.1.4.32.1.7";
            }

            leaf ipAddressPrefixAdvPreferredLifetime {
               type uint32;
               units "seconds";
               config "false";
               description
                  "The remaining length of time, in seconds, that this prefix
                  will continue to be preferred, i.e., time until deprecation.
                  
                  A value of 4,294,967,295 represents infinity.
                  
                  The address generated from a deprecated prefix should no
                  longer be used as a source address in new communications,
                  but packets received on such an interface are processed as
                  expected.
                  
                  The default for IPv4 prefixes is 4,294,967,295 (infinity).";
               reference
                  "For IPv6 RFC 2461, especially sections 2 and 4.6.2 and
                   RFC 2462";

               smi:oid "1.3.6.1.2.1.4.32.1.8";
            }

            leaf ipAddressPrefixAdvValidLifetime {
               type uint32;
               units "seconds";
               config "false";
               description
                  "The remaining length of time, in seconds, that this prefix
                  will continue to be valid, i.e., time until invalidation.  A
                  value of 4,294,967,295 represents infinity.
                  
                  The address generated from an invalidated prefix should not
                  appear as the destination or source address of a packet.
                  
                  
                  
                  
                  The default for IPv4 prefixes is 4,294,967,295 (infinity).";
               reference
                  "For IPv6 RFC 2461, especially sections 2 and 4.6.2 and
                   RFC 2462";

               smi:oid "1.3.6.1.2.1.4.32.1.9";
            }
            smi:oid "1.3.6.1.2.1.4.32.1";
         }  // list ipAddressPrefixEntry

         leaf ipAddressSpinLock {
            type smiv2:TestAndIncr;
            description
               "An advisory lock used to allow cooperating SNMP managers to
               coordinate their use of the set operation in creating or
               modifying rows within this table.
               
               In order to use this lock to coordinate the use of set
               operations, managers should first retrieve
               ipAddressTableSpinLock.  They should then determine the
               appropriate row to create or modify.  Finally, they should
               issue the appropriate set command, including the retrieved
               value of ipAddressSpinLock.  If another manager has altered
               the table in the meantime, then the value of
               ipAddressSpinLock will have changed, and the creation will
               fail as it will be specifying an incorrect value for
               ipAddressSpinLock.  It is suggested, but not required, that
               the ipAddressSpinLock be the first var bind for each set of
               objects representing a 'row' in a PDU.";
            smi:oid "1.3.6.1.2.1.4.33";
         }

         list ipAddressEntry {
            key "ipAddressAddrType ipAddressAddr";
            description
               "An address mapping for a particular interface.";
            leaf ipAddressAddrType {
               type inet-address:InetAddressType;
               description "The address type of ipAddressAddr.";
               smi:oid "1.3.6.1.2.1.4.34.1.1";
            }

            leaf ipAddressAddr {
               type inet-address:InetAddress;
               description
                  "The IP address to which this entry's addressing information
                  
                  
                  
                  pertains.  The address type of this object is specified in
                  ipAddressAddrType.
                  
                  Implementors need to be aware that if the size of
                  ipAddressAddr exceeds 116 octets, then OIDS of instances of
                  columns in this row will have more than 128 sub-identifiers
                  and cannot be accessed using SNMPv1, SNMPv2c, or SNMPv3.";
               smi:oid "1.3.6.1.2.1.4.34.1.2";
            }

            leaf ipAddressIfIndex {
               type if-mib:InterfaceIndex;
               description
                  "The index value that uniquely identifies the interface to
                  which this entry is applicable.  The interface identified by
                  a particular value of this index is the same interface as
                  identified by the same value of the IF-MIB's ifIndex.";
               smi:oid "1.3.6.1.2.1.4.34.1.3";
            }

            leaf ipAddressType {
               type enumeration {
                  enum "unicast" {
                     value 1;
                  }
                  enum "anycast" {
                     value 2;
                  }
                  enum "broadcast" {
                     value 3;
                  }
               }
               description
                  "The type of address.  broadcast(3) is not a valid value for
                  IPv6 addresses (RFC 3513).";
               smi:default "unicast";
               smi:oid "1.3.6.1.2.1.4.34.1.4";
            }

            leaf ipAddressPrefix {
               type smiv2:RowPointer;
               config "false";
               description
                  "A pointer to the row in the prefix table to which this
                  address belongs.  May be { 0 0 } if there is no such row.";
               smi:default "zeroDotZero";
               smi:oid "1.3.6.1.2.1.4.34.1.5";
            }

            leaf ipAddressOrigin {
               type IpAddressOriginTC;
               config "false";
               description "The origin of the address.";
               smi:oid "1.3.6.1.2.1.4.34.1.6";
            }

            leaf ipAddressStatus {
               type IpAddressStatusTC;
               description
                  "The status of the address, describing if the address can be
                  used for communication.
                  
                  In the absence of other information, an IPv4 address is
                  always preferred(1).";
               smi:default "preferred";
               smi:oid "1.3.6.1.2.1.4.34.1.7";
            }

            leaf ipAddressCreated {
               type yang:timestamp;
               config "false";
               description
                  "The value of sysUpTime at the time this entry was created.
                  If this entry was created prior to the last re-
                  initialization of the local network management subsystem,
                  then this object contains a zero value.";
               smi:oid "1.3.6.1.2.1.4.34.1.8";
            }

            leaf ipAddressLastChanged {
               type yang:timestamp;
               config "false";
               description
                  "The value of sysUpTime at the time this entry was last
                  updated.  If this entry was updated prior to the last re-
                  initialization of the local network management subsystem,
                  then this object contains a zero value.";
               smi:oid "1.3.6.1.2.1.4.34.1.9";
            }

            leaf ipAddressRowStatus {
               type smiv2:RowStatus;
               description
                  "The status of this conceptual row.
                  
                  The RowStatus TC requires that this DESCRIPTION clause
                  states under which circumstances other objects in this row
                  
                  
                  
                  can be modified.  The value of this object has no effect on
                  whether other objects in this conceptual row can be
                  modified.
                  
                  A conceptual row can not be made active until the
                  ipAddressIfIndex has been set to a valid index.";
               smi:oid "1.3.6.1.2.1.4.34.1.10";
            }

            leaf ipAddressStorageType {
               type smiv2:StorageType;
               description
                  "The storage type for this conceptual row.  If this object
                  has a value of 'permanent', then no other objects are
                  required to be able to be modified.";
               smi:default "volatile";
               smi:oid "1.3.6.1.2.1.4.34.1.11";
            }
            smi:oid "1.3.6.1.2.1.4.34.1";
         }  // list ipAddressEntry

         list ipNetToPhysicalEntry {
            key "ipNetToPhysicalIfIndex ipNetToPhysicalNetAddressType ipNetToPhysicalNetAddress";
            description
               "Each entry contains one IP address to `physical' address
               equivalence.";
            leaf ipNetToPhysicalIfIndex {
               type if-mib:InterfaceIndex;
               description
                  "The index value that uniquely identifies the interface to
                  which this entry is applicable.  The interface identified by
                  a particular value of this index is the same interface as
                  identified by the same value of the IF-MIB's ifIndex.";
               smi:oid "1.3.6.1.2.1.4.35.1.1";
            }

            leaf ipNetToPhysicalNetAddressType {
               type inet-address:InetAddressType;
               description "The type of ipNetToPhysicalNetAddress.";
               smi:oid "1.3.6.1.2.1.4.35.1.2";
            }

            leaf ipNetToPhysicalNetAddress {
               type inet-address:InetAddress;
               description
                  "The IP Address corresponding to the media-dependent
                  `physical' address.  The address type of this object is
                  specified in ipNetToPhysicalAddressType.
                  
                  Implementors need to be aware that if the size of
                  
                  
                  
                  ipNetToPhysicalNetAddress exceeds 115 octets, then OIDS of
                  instances of columns in this row will have more than 128
                  sub-identifiers and cannot be accessed using SNMPv1,
                  SNMPv2c, or SNMPv3.";
               smi:oid "1.3.6.1.2.1.4.35.1.3";
            }

            leaf ipNetToPhysicalPhysAddress {
               type yang:phys-address {
                  length "0..65535";
               }
               description
                  "The media-dependent `physical' address.
                  
                  As the entries in this table are typically not persistent
                  when this object is written the entity SHOULD NOT save the
                  change to non-volatile storage.";
               smi:oid "1.3.6.1.2.1.4.35.1.4";
            }

            leaf ipNetToPhysicalLastUpdated {
               type yang:timestamp;
               config "false";
               description
                  "The value of sysUpTime at the time this entry was last
                  updated.  If this entry was updated prior to the last re-
                  initialization of the local network management subsystem,
                  then this object contains a zero value.";
               smi:oid "1.3.6.1.2.1.4.35.1.5";
            }

            leaf ipNetToPhysicalType {
               type enumeration {
                  enum "other" {
                     value 1;
                  }
                  enum "invalid" {
                     value 2;
                  }
                  enum "dynamic" {
                     value 3;
                  }
                  enum "static" {
                     value 4;
                  }
                  enum "local" {
                     value 5;
                  }
               }
               description
                  "The type of mapping.
                  
                  Setting this object to the value invalid(2) has the effect
                  of invalidating the corresponding entry in the
                  ipNetToPhysicalTable.  That is, it effectively dis-
                  associates the interface identified with said entry from the
                  mapping identified with said entry.  It is an
                  implementation-specific matter as to whether the agent
                  
                  
                  
                  removes an invalidated entry from the table.  Accordingly,
                  management stations must be prepared to receive tabular
                  information from agents that corresponds to entries not
                  currently in use.  Proper interpretation of such entries
                  requires examination of the relevant ipNetToPhysicalType
                  object.
                  
                  The 'dynamic(3)' type indicates that the IP address to
                  physical addresses mapping has been dynamically resolved
                  using e.g., IPv4 ARP or the IPv6 Neighbor Discovery
                  protocol.
                  
                  The 'static(4)' type indicates that the mapping has been
                  statically configured.  Both of these refer to entries that
                  provide mappings for other entities addresses.
                  
                  The 'local(5)' type indicates that the mapping is provided
                  for an entity's own interface address.
                  
                  As the entries in this table are typically not persistent
                  when this object is written the entity SHOULD NOT save the
                  change to non-volatile storage.";
               smi:default "static";
               smi:oid "1.3.6.1.2.1.4.35.1.6";
            }

            leaf ipNetToPhysicalState {
               type enumeration {
                  enum "reachable" {
                     value 1;
                  }
                  enum "stale" {
                     value 2;
                  }
                  enum "delay" {
                     value 3;
                  }
                  enum "probe" {
                     value 4;
                  }
                  enum "invalid" {
                     value 5;
                  }
                  enum "unknown" {
                     value 6;
                  }
                  enum "incomplete" {
                     value 7;
                  }
               }
               config "false";
               description
                  "The Neighbor Unreachability Detection state for the
                  interface when the address mapping in this entry is used.
                  If Neighbor Unreachability Detection is not in use (e.g. for
                  IPv4), this object is always unknown(6).";
               reference
                  "RFC 2461";

               smi:oid "1.3.6.1.2.1.4.35.1.7";
            }

            leaf ipNetToPhysicalRowStatus {
               type smiv2:RowStatus;
               description
                  "The status of this conceptual row.
                  
                  The RowStatus TC requires that this DESCRIPTION clause
                  states under which circumstances other objects in this row
                  can be modified.  The value of this object has no effect on
                  whether other objects in this conceptual row can be
                  modified.
                  
                  A conceptual row can not be made active until the
                  ipNetToPhysicalPhysAddress object has been set.
                  
                  Note that if the ipNetToPhysicalType is set to 'invalid',
                  the managed node may delete the entry independent of the
                  state of this object.";
               smi:oid "1.3.6.1.2.1.4.35.1.8";
            }
            smi:oid "1.3.6.1.2.1.4.35.1";
         }  // list ipNetToPhysicalEntry

         list ipv6ScopeZoneIndexEntry {
            key "ipv6ScopeZoneIndexIfIndex";
            description
               "Each entry contains the list of scope identifiers on a given
               interface.";
            leaf ipv6ScopeZoneIndexIfIndex {
               type if-mib:InterfaceIndex;
               description
                  "The index value that uniquely identifies the interface to
                  which these scopes belong.  The interface identified by a
                  particular value of this index is the same interface as
                  identified by the same value of the IF-MIB's ifIndex.";
               smi:oid "1.3.6.1.2.1.4.36.1.1";
            }

            leaf ipv6ScopeZoneIndexLinkLocal {
               type inet-address:InetZoneIndex;
               config "false";
               description
                  "The zone index for the link-local scope on this interface.";
               smi:oid "1.3.6.1.2.1.4.36.1.2";
            }

            leaf ipv6ScopeZoneIndex3 {
               type inet-address:InetZoneIndex;
               config "false";
               description
                  "The zone index for scope 3 on this interface.";
               smi:oid "1.3.6.1.2.1.4.36.1.3";
            }

            leaf ipv6ScopeZoneIndexAdminLocal {
               type inet-address:InetZoneIndex;
               config "false";
               description
                  "The zone index for the admin-local scope on this interface.";
               smi:oid "1.3.6.1.2.1.4.36.1.4";
            }

            leaf ipv6ScopeZoneIndexSiteLocal {
               type inet-address:InetZoneIndex;
               config "false";
               description
                  "The zone index for the site-local scope on this interface.";
               smi:oid "1.3.6.1.2.1.4.36.1.5";
            }

            leaf ipv6ScopeZoneIndex6 {
               type inet-address:InetZoneIndex;
               config "false";
               description
                  "The zone index for scope 6 on this interface.";
               smi:oid "1.3.6.1.2.1.4.36.1.6";
            }

            leaf ipv6ScopeZoneIndex7 {
               type inet-address:InetZoneIndex;
               config "false";
               description
                  "The zone index for scope 7 on this interface.";
               smi:oid "1.3.6.1.2.1.4.36.1.7";
            }

            leaf ipv6ScopeZoneIndexOrganizationLocal {
               type inet-address:InetZoneIndex;
               config "false";
               description
                  "The zone index for the organization-local scope on this
                  interface.";
               smi:oid "1.3.6.1.2.1.4.36.1.8";
            }

            leaf ipv6ScopeZoneIndex9 {
               type inet-address:InetZoneIndex;
               config "false";
               description
                  "The zone index for scope 9 on this interface.";
               smi:oid "1.3.6.1.2.1.4.36.1.9";
            }

            leaf ipv6ScopeZoneIndexA {
               type inet-address:InetZoneIndex;
               config "false";
               description
                  "The zone index for scope A on this interface.";
               smi:oid "1.3.6.1.2.1.4.36.1.10";
            }

            leaf ipv6ScopeZoneIndexB {
               type inet-address:InetZoneIndex;
               config "false";
               description
                  "The zone index for scope B on this interface.";
               smi:oid "1.3.6.1.2.1.4.36.1.11";
            }

            leaf ipv6ScopeZoneIndexC {
               type inet-address:InetZoneIndex;
               config "false";
               description
                  "The zone index for scope C on this interface.";
               smi:oid "1.3.6.1.2.1.4.36.1.12";
            }

            leaf ipv6ScopeZoneIndexD {
               type inet-address:InetZoneIndex;
               config "false";
               description
                  "The zone index for scope D on this interface.";
               smi:oid "1.3.6.1.2.1.4.36.1.13";
            }
            smi:oid "1.3.6.1.2.1.4.36.1";
         }  // list ipv6ScopeZoneIndexEntry

         list ipDefaultRouterEntry {
            key "ipDefaultRouterAddressType ipDefaultRouterAddress ipDefaultRouterIfIndex";
            description
               "Each entry contains information about a default router known
               to this entity.";
            leaf ipDefaultRouterAddressType {
               type inet-address:InetAddressType;
               description "The address type for this row.";
               smi:oid "1.3.6.1.2.1.4.37.1.1";
            }

            leaf ipDefaultRouterAddress {
               type inet-address:InetAddress;
               description
                  "The IP address of the default router represented by this
                  row.  The address type of this object is specified in
                  ipDefaultRouterAddressType.
                  
                  Implementers need to be aware that if the size of
                  ipDefaultRouterAddress exceeds 115 octets, then OIDS of
                  instances of columns in this row will have more than 128
                  sub-identifiers and cannot be accessed using SNMPv1,
                  SNMPv2c, or SNMPv3.";
               smi:oid "1.3.6.1.2.1.4.37.1.2";
            }

            leaf ipDefaultRouterIfIndex {
               type if-mib:InterfaceIndex;
               description
                  "The index value that uniquely identifies the interface by
                  which the router can be reached.  The interface identified
                  by a particular value of this index is the same interface as
                  identified by the same value of the IF-MIB's ifIndex.";
               smi:oid "1.3.6.1.2.1.4.37.1.3";
            }

            leaf ipDefaultRouterLifetime {
               type uint32 {
                  range "0..65535";
               }
               units "seconds";
               config "false";
               description
                  "The remaining length of time, in seconds, that this router
                  will continue to be useful as a default router.  A value of
                  zero indicates that it is no longer useful as a default
                  router.  It is left to the implementer of the MIB as to
                  whether a router with a lifetime of zero is removed from the
                  list.
                  
                  For IPv6, this value should be extracted from the router
                  advertisement messages.";
               reference
                  "For IPv6 RFC 2462 sections 4.2 and 6.3.4";

               smi:oid "1.3.6.1.2.1.4.37.1.4";
            }

            leaf ipDefaultRouterPreference {
               type enumeration {
                  enum "reserved" {
                     value -2;
                  }
                  enum "low" {
                     value -1;
                  }
                  enum "medium" {
                     value 0;
                  }
                  enum "high" {
                     value 1;
                  }
               }
               config "false";
               description
                  "An indication of preference given to this router as a
                  default router as described in he Default Router
                  Preferences document.  Treating the value as a
                  2 bit signed integer allows for simple arithmetic
                  comparisons.
                  
                  For IPv4 routers or IPv6 routers that are not using the
                  updated router advertisement format, this object is set to
                  medium (0).";
               reference
                  "RFC 4291, section 2.1";

               smi:oid "1.3.6.1.2.1.4.37.1.5";
            }
            smi:oid "1.3.6.1.2.1.4.37.1";
         }  // list ipDefaultRouterEntry

         leaf ipv6RouterAdvertSpinLock {
            type smiv2:TestAndIncr;
            description
               "An advisory lock used to allow cooperating SNMP managers to
               coordinate their use of the set operation in creating or
               modifying rows within this table.
               
               In order to use this lock to coordinate the use of set
               operations, managers should first retrieve
               ipv6RouterAdvertSpinLock.  They should then determine the
               appropriate row to create or modify.  Finally, they should
               issue the appropriate set command including the retrieved
               value of ipv6RouterAdvertSpinLock.  If another manager has
               altered the table in the meantime, then the value of
               ipv6RouterAdvertSpinLock will have changed and the creation
               will fail as it will be specifying an incorrect value for
               ipv6RouterAdvertSpinLock.  It is suggested, but not
               required, that the ipv6RouterAdvertSpinLock be the first var
               bind for each set of objects representing a 'row' in a PDU.";
            smi:oid "1.3.6.1.2.1.4.38";
         }

         list ipv6RouterAdvertEntry {
            key "ipv6RouterAdvertIfIndex";
            description
               "An entry containing information used to construct router
               advertisements.
               
               Information in this table is persistent, and when this
               object is written, the entity SHOULD save the change to
               non-volatile storage.";
            leaf ipv6RouterAdvertIfIndex {
               type if-mib:InterfaceIndex;
               description
                  "The index value that uniquely identifies the interface on
                  which router advertisements constructed with this
                  information will be transmitted.  The interface identified
                  by a particular value of this index is the same interface as
                  identified by the same value of the IF-MIB's ifIndex.";
               smi:oid "1.3.6.1.2.1.4.39.1.1";
            }

            leaf ipv6RouterAdvertSendAdverts {
               type smiv2:TruthValue;
               description
                  "A flag indicating whether the router sends periodic
                  router advertisements and responds to router solicitations
                  on this interface.";
               reference
                  "RFC 2461 Section 6.2.1";

               smi:default "false";
               smi:oid "1.3.6.1.2.1.4.39.1.2";
            }

            leaf ipv6RouterAdvertMaxInterval {
               type uint32 {
                  range "4..1800";
               }
               units "seconds";
               description
                  "The maximum time allowed between sending unsolicited router
                  
                  
                  
                  advertisements from this interface.";
               reference
                  "RFC 2461 Section 6.2.1";

               smi:default "600";
               smi:oid "1.3.6.1.2.1.4.39.1.3";
            }

            leaf ipv6RouterAdvertMinInterval {
               type uint32 {
                  range "3..1350";
               }
               units "seconds";
               description
                  "The minimum time allowed between sending unsolicited router
                  advertisements from this interface.
                  
                  The default is 0.33 * ipv6RouterAdvertMaxInterval, however,
                  in the case of a low value for ipv6RouterAdvertMaxInterval,
                  the minimum value for this object is restricted to 3.";
               reference
                  "RFC 2461 Section 6.2.1";

               smi:oid "1.3.6.1.2.1.4.39.1.4";
            }

            leaf ipv6RouterAdvertManagedFlag {
               type smiv2:TruthValue;
               description
                  "The true/false value to be placed into the 'managed address
                  configuration' flag field in router advertisements sent from
                  this interface.";
               reference
                  "RFC 2461 Section 6.2.1";

               smi:default "false";
               smi:oid "1.3.6.1.2.1.4.39.1.5";
            }

            leaf ipv6RouterAdvertOtherConfigFlag {
               type smiv2:TruthValue;
               description
                  "The true/false value to be placed into the 'other stateful
                  configuration' flag field in router advertisements sent from
                  this interface.";
               reference
                  "RFC 2461 Section 6.2.1";

               smi:default "false";
               smi:oid "1.3.6.1.2.1.4.39.1.6";
            }

            leaf ipv6RouterAdvertLinkMTU {
               type uint32;
               description
                  "The value to be placed in MTU options sent by the router on
                  this interface.
                  
                  A value of zero indicates that no MTU options are sent.";
               reference
                  "RFC 2461 Section 6.2.1";

               smi:default "0";
               smi:oid "1.3.6.1.2.1.4.39.1.7";
            }

            leaf ipv6RouterAdvertReachableTime {
               type uint32 {
                  range "0..3600000";
               }
               units "milliseconds";
               description
                  "The value to be placed in the reachable time field in router
                  advertisement messages sent from this interface.
                  
                  A value of zero in the router advertisement indicates that
                  the advertisement isn't specifying a value for reachable
                  time.";
               reference
                  "RFC 2461 Section 6.2.1";

               smi:default "0";
               smi:oid "1.3.6.1.2.1.4.39.1.8";
            }

            leaf ipv6RouterAdvertRetransmitTime {
               type uint32;
               units "milliseconds";
               description
                  "The value to be placed in the retransmit timer field in
                  router advertisements sent from this interface.
                  
                  A value of zero in the router advertisement indicates that
                  the advertisement isn't specifying a value for retrans
                  time.";
               reference
                  "RFC 2461 Section 6.2.1";

               smi:default "0";
               smi:oid "1.3.6.1.2.1.4.39.1.9";
            }

            leaf ipv6RouterAdvertCurHopLimit {
               type uint32 {
                  range "0..255";
               }
               description
                  "The default value to be placed in the current hop limit
                  field in router advertisements sent from this interface.
                  
                  
                  
                  The value should be set to the current diameter of the
                  Internet.
                  
                  A value of zero in the router advertisement indicates that
                  the advertisement isn't specifying a value for curHopLimit.
                  
                  The default should be set to the value specified in the IANA
                  web pages (www.iana.org) at the time of implementation.";
               reference
                  "RFC 2461 Section 6.2.1";

               smi:oid "1.3.6.1.2.1.4.39.1.10";
            }

            leaf ipv6RouterAdvertDefaultLifetime {
               type uint32 {
                  range "0 | 4..9000";
               }
               units "seconds";
               description
                  "The value to be placed in the router lifetime field of
                  router advertisements sent from this interface.  This value
                  MUST be either 0 or between ipv6RouterAdvertMaxInterval and
                  9000 seconds.
                  
                  A value of zero indicates that the router is not to be used
                  as a default router.
                  
                  The default is 3 * ipv6RouterAdvertMaxInterval.";
               reference
                  "RFC 2461 Section 6.2.1";

               smi:oid "1.3.6.1.2.1.4.39.1.11";
            }

            leaf ipv6RouterAdvertRowStatus {
               type smiv2:RowStatus;
               description
                  "The status of this conceptual row.
                  
                  As all objects in this conceptual row have default values, a
                  row can be created and made active by setting this object
                  appropriately.
                  
                  The RowStatus TC requires that this DESCRIPTION clause
                  states under which circumstances other objects in this row
                  can be modified.  The value of this object has no effect on
                  whether other objects in this conceptual row can be
                  modified.";
               smi:oid "1.3.6.1.2.1.4.39.1.12";
            }
            smi:oid "1.3.6.1.2.1.4.39.1";
         }  // list ipv6RouterAdvertEntry
         smi:oid "1.3.6.1.2.1.4";
      }  // container ip

      container ipTrafficStats {
         list ipSystemStatsEntry {
            key "ipSystemStatsIPVersion";
            description
               "A statistics entry containing system-wide objects for a
               particular IP version.";
            leaf ipSystemStatsIPVersion {
               type inet-address:InetVersion;
               description "The IP version of this row.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.1";
            }

            leaf ipSystemStatsInReceives {
               type yang:counter32;
               config "false";
               description
                  "The total number of input IP datagrams received, including
                  those received in error.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.3";
            }

            leaf ipSystemStatsHCInReceives {
               type yang:counter64;
               config "false";
               description
                  "The total number of input IP datagrams received, including
                  those received in error.  This object counts the same
                  datagrams as ipSystemStatsInReceives, but allows for larger
                  values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.4";
            }

            leaf ipSystemStatsInOctets {
               type yang:counter32;
               config "false";
               description
                  "The total number of octets received in input IP datagrams,
                  including those received in error.  Octets from datagrams
                  counted in ipSystemStatsInReceives MUST be counted here.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.5";
            }

            leaf ipSystemStatsHCInOctets {
               type yang:counter64;
               config "false";
               description
                  "The total number of octets received in input IP datagrams,
                  including those received in error.  This object counts the
                  same octets as ipSystemStatsInOctets, but allows for larger
                  
                  
                  
                  values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.6";
            }

            leaf ipSystemStatsInHdrErrors {
               type yang:counter32;
               config "false";
               description
                  "The number of input IP datagrams discarded due to errors in
                  their IP headers, including version number mismatch, other
                  format errors, hop count exceeded, errors discovered in
                  processing their IP options, etc.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.7";
            }

            leaf ipSystemStatsInNoRoutes {
               type yang:counter32;
               config "false";
               description
                  "The number of input IP datagrams discarded because no route
                  could be found to transmit them to their destination.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.8";
            }

            leaf ipSystemStatsInAddrErrors {
               type yang:counter32;
               config "false";
               description
                  "The number of input IP datagrams discarded because the IP
                  address in their IP header's destination field was not a
                  valid address to be received at this entity.  This count
                  includes invalid addresses (e.g., ::0).  For entities
                  that are not IP routers and therefore do not forward
                  
                  
                  
                  datagrams, this counter includes datagrams discarded
                  because the destination address was not a local address.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.9";
            }

            leaf ipSystemStatsInUnknownProtos {
               type yang:counter32;
               config "false";
               description
                  "The number of locally-addressed IP datagrams received
                  successfully but discarded because of an unknown or
                  unsupported protocol.
                  
                  When tracking interface statistics, the counter of the
                  interface to which these datagrams were addressed is
                  incremented.  This interface might not be the same as the
                  input interface for some of the datagrams.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.10";
            }

            leaf ipSystemStatsInTruncatedPkts {
               type yang:counter32;
               config "false";
               description
                  "The number of input IP datagrams discarded because the
                  datagram frame didn't carry enough data.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.11";
            }

            leaf ipSystemStatsInForwDatagrams {
               type yang:counter32;
               config "false";
               description
                  "The number of input datagrams for which this entity was not
                  their final IP destination and for which this entity
                  attempted to find a route to forward them to that final
                  destination.  In entities that do not act as IP routers,
                  this counter will include only those datagrams that were
                  Source-Routed via this entity, and the Source-Route
                  processing was successful.
                  
                  When tracking interface statistics, the counter of the
                  incoming interface is incremented for each datagram.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.12";
            }

            leaf ipSystemStatsHCInForwDatagrams {
               type yang:counter64;
               config "false";
               description
                  "The number of input datagrams for which this entity was not
                  their final IP destination and for which this entity
                  attempted to find a route to forward them to that final
                  destination.  This object counts the same packets as
                  ipSystemStatsInForwDatagrams, but allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.13";
            }

            leaf ipSystemStatsReasmReqds {
               type yang:counter32;
               config "false";
               description
                  "The number of IP fragments received that needed to be
                  reassembled at this interface.
                  
                  When tracking interface statistics, the counter of the
                  interface to which these fragments were addressed is
                  incremented.  This interface might not be the same as the
                  input interface for some of the fragments.
                  
                  Discontinuities in the value of this counter can occur at
                  
                  
                  
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.14";
            }

            leaf ipSystemStatsReasmOKs {
               type yang:counter32;
               config "false";
               description
                  "The number of IP datagrams successfully reassembled.
                  
                  When tracking interface statistics, the counter of the
                  interface to which these datagrams were addressed is
                  incremented.  This interface might not be the same as the
                  input interface for some of the datagrams.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.15";
            }

            leaf ipSystemStatsReasmFails {
               type yang:counter32;
               config "false";
               description
                  "The number of failures detected by the IP re-assembly
                  algorithm (for whatever reason: timed out, errors, etc.).
                  Note that this is not necessarily a count of discarded IP
                  fragments since some algorithms (notably the algorithm in
                  RFC 815) can lose track of the number of fragments by
                  combining them as they are received.
                  
                  When tracking interface statistics, the counter of the
                  interface to which these fragments were addressed is
                  incremented.  This interface might not be the same as the
                  input interface for some of the fragments.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.16";
            }

            leaf ipSystemStatsInDiscards {
               type yang:counter32;
               config "false";
               description
                  "The number of input IP datagrams for which no problems were
                  encountered to prevent their continued processing, but
                  were discarded (e.g., for lack of buffer space).  Note that
                  this counter does not include any datagrams discarded while
                  awaiting re-assembly.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.17";
            }

            leaf ipSystemStatsInDelivers {
               type yang:counter32;
               config "false";
               description
                  "The total number of datagrams successfully delivered to IP
                  user-protocols (including ICMP).
                  
                  When tracking interface statistics, the counter of the
                  interface to which these datagrams were addressed is
                  incremented.  This interface might not be the same as the
                  input interface for some of the datagrams.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.18";
            }

            leaf ipSystemStatsHCInDelivers {
               type yang:counter64;
               config "false";
               description
                  "The total number of datagrams successfully delivered to IP
                  user-protocols (including ICMP).  This object counts the
                  same packets as ipSystemStatsInDelivers, but allows for
                  larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.19";
            }

            leaf ipSystemStatsOutRequests {
               type yang:counter32;
               config "false";
               description
                  "The total number of IP datagrams that local IP user-
                  protocols (including ICMP) supplied to IP in requests for
                  transmission.  Note that this counter does not include any
                  datagrams counted in ipSystemStatsOutForwDatagrams.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.20";
            }

            leaf ipSystemStatsHCOutRequests {
               type yang:counter64;
               config "false";
               description
                  "The total number of IP datagrams that local IP user-
                  protocols (including ICMP) supplied to IP in requests for
                  transmission.  This object counts the same packets as
                  ipSystemStatsOutRequests, but allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.21";
            }

            leaf ipSystemStatsOutNoRoutes {
               type yang:counter32;
               config "false";
               description
                  "The number of locally generated IP datagrams discarded
                  because no route could be found to transmit them to their
                  destination.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.22";
            }

            leaf ipSystemStatsOutForwDatagrams {
               type yang:counter32;
               config "false";
               description
                  "The number of datagrams for which this entity was not their
                  final IP destination and for which it was successful in
                  finding a path to their final destination.  In entities
                  that do not act as IP routers, this counter will include
                  only those datagrams that were Source-Routed via this
                  entity, and the Source-Route processing was successful.
                  
                  When tracking interface statistics, the counter of the
                  outgoing interface is incremented for a successfully
                  forwarded datagram.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.23";
            }

            leaf ipSystemStatsHCOutForwDatagrams {
               type yang:counter64;
               config "false";
               description
                  "The number of datagrams for which this entity was not their
                  final IP destination and for which it was successful in
                  finding a path to their final destination.  This object
                  counts the same packets as ipSystemStatsOutForwDatagrams,
                  but allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.24";
            }

            leaf ipSystemStatsOutDiscards {
               type yang:counter32;
               config "false";
               description
                  "The number of output IP datagrams for which no problem was
                  encountered to prevent their transmission to their
                  destination, but were discarded (e.g., for lack of
                  buffer space).  Note that this counter would include
                  
                  
                  
                  datagrams counted in ipSystemStatsOutForwDatagrams if any
                  such datagrams met this (discretionary) discard criterion.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.25";
            }

            leaf ipSystemStatsOutFragReqds {
               type yang:counter32;
               config "false";
               description
                  "The number of IP datagrams that would require fragmentation
                  in order to be transmitted.
                  
                  When tracking interface statistics, the counter of the
                  outgoing interface is incremented for a successfully
                  fragmented datagram.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.26";
            }

            leaf ipSystemStatsOutFragOKs {
               type yang:counter32;
               config "false";
               description
                  "The number of IP datagrams that have been successfully
                  fragmented.
                  
                  When tracking interface statistics, the counter of the
                  outgoing interface is incremented for a successfully
                  fragmented datagram.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.27";
            }

            leaf ipSystemStatsOutFragFails {
               type yang:counter32;
               config "false";
               description
                  "The number of IP datagrams that have been discarded because
                  they needed to be fragmented but could not be.  This
                  includes IPv4 packets that have the DF bit set and IPv6
                  packets that are being forwarded and exceed the outgoing
                  link MTU.
                  
                  When tracking interface statistics, the counter of the
                  outgoing interface is incremented for an unsuccessfully
                  fragmented datagram.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.28";
            }

            leaf ipSystemStatsOutFragCreates {
               type yang:counter32;
               config "false";
               description
                  "The number of output datagram fragments that have been
                  generated as a result of IP fragmentation.
                  
                  When tracking interface statistics, the counter of the
                  outgoing interface is incremented for a successfully
                  fragmented datagram.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.29";
            }

            leaf ipSystemStatsOutTransmits {
               type yang:counter32;
               config "false";
               description
                  "The total number of IP datagrams that this entity supplied
                  to the lower layers for transmission.  This includes
                  datagrams generated locally and those forwarded by this
                  entity.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  
                  
                  
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.30";
            }

            leaf ipSystemStatsHCOutTransmits {
               type yang:counter64;
               config "false";
               description
                  "The total number of IP datagrams that this entity supplied
                  to the lower layers for transmission.  This object counts
                  the same datagrams as ipSystemStatsOutTransmits, but allows
                  for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.31";
            }

            leaf ipSystemStatsOutOctets {
               type yang:counter32;
               config "false";
               description
                  "The total number of octets in IP datagrams delivered to the
                  lower layers for transmission.  Octets from datagrams
                  counted in ipSystemStatsOutTransmits MUST be counted here.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.32";
            }

            leaf ipSystemStatsHCOutOctets {
               type yang:counter64;
               config "false";
               description
                  "The total number of octets in IP datagrams delivered to the
                  lower layers for transmission.  This objects counts the same
                  octets as ipSystemStatsOutOctets, but allows for larger
                  values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  
                  
                  
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.33";
            }

            leaf ipSystemStatsInMcastPkts {
               type yang:counter32;
               config "false";
               description
                  "The number of IP multicast datagrams received.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.34";
            }

            leaf ipSystemStatsHCInMcastPkts {
               type yang:counter64;
               config "false";
               description
                  "The number of IP multicast datagrams received.  This object
                  counts the same datagrams as ipSystemStatsInMcastPkts but
                  allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.35";
            }

            leaf ipSystemStatsInMcastOctets {
               type yang:counter32;
               config "false";
               description
                  "The total number of octets received in IP multicast
                  datagrams.  Octets from datagrams counted in
                  ipSystemStatsInMcastPkts MUST be counted here.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.36";
            }

            leaf ipSystemStatsHCInMcastOctets {
               type yang:counter64;
               config "false";
               description
                  "The total number of octets received in IP multicast
                  datagrams.  This object counts the same octets as
                  ipSystemStatsInMcastOctets, but allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.37";
            }

            leaf ipSystemStatsOutMcastPkts {
               type yang:counter32;
               config "false";
               description
                  "The number of IP multicast datagrams transmitted.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.38";
            }

            leaf ipSystemStatsHCOutMcastPkts {
               type yang:counter64;
               config "false";
               description
                  "The number of IP multicast datagrams transmitted.  This
                  object counts the same datagrams as
                  ipSystemStatsOutMcastPkts, but allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.39";
            }

            leaf ipSystemStatsOutMcastOctets {
               type yang:counter32;
               config "false";
               description
                  "The total number of octets transmitted in IP multicast
                  datagrams.  Octets from datagrams counted in
                  
                  
                  
                  ipSystemStatsOutMcastPkts MUST be counted here.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.40";
            }

            leaf ipSystemStatsHCOutMcastOctets {
               type yang:counter64;
               config "false";
               description
                  "The total number of octets transmitted in IP multicast
                  datagrams.  This object counts the same octets as
                  ipSystemStatsOutMcastOctets, but allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.41";
            }

            leaf ipSystemStatsInBcastPkts {
               type yang:counter32;
               config "false";
               description
                  "The number of IP broadcast datagrams received.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.42";
            }

            leaf ipSystemStatsHCInBcastPkts {
               type yang:counter64;
               config "false";
               description
                  "The number of IP broadcast datagrams received.  This object
                  counts the same datagrams as ipSystemStatsInBcastPkts but
                  allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  
                  
                  
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.43";
            }

            leaf ipSystemStatsOutBcastPkts {
               type yang:counter32;
               config "false";
               description
                  "The number of IP broadcast datagrams transmitted.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.44";
            }

            leaf ipSystemStatsHCOutBcastPkts {
               type yang:counter64;
               config "false";
               description
                  "The number of IP broadcast datagrams transmitted.  This
                  object counts the same datagrams as
                  ipSystemStatsOutBcastPkts, but allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipSystemStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.45";
            }

            leaf ipSystemStatsDiscontinuityTime {
               type yang:timestamp;
               config "false";
               description
                  "The value of sysUpTime on the most recent occasion at which
                  any one or more of this entry's counters suffered a
                  discontinuity.
                  
                  If no such discontinuities have occurred since the last re-
                  initialization of the local management subsystem, then this
                  object contains a zero value.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.46";
            }

            leaf ipSystemStatsRefreshRate {
               type uint32;
               units "milli-seconds";
               config "false";
               description
                  "The minimum reasonable polling interval for this entry.
                  This object provides an indication of the minimum amount of
                  time required to update the counters in this entry.";
               smi:oid "1.3.6.1.2.1.4.31.1.1.47";
            }
            smi:oid "1.3.6.1.2.1.4.31.1.1";
         }  // list ipSystemStatsEntry

         leaf ipIfStatsTableLastChange {
            type yang:timestamp;
            config "false";
            description
               "The value of sysUpTime on the most recent occasion at which
               a row in the ipIfStatsTable was added or deleted.
               
               If new objects are added to the ipIfStatsTable that require
               the ipIfStatsTableLastChange to be updated when they are
               modified, they must specify that requirement in their
               description clause.";
            smi:oid "1.3.6.1.2.1.4.31.2";
         }

         list ipIfStatsEntry {
            key "ipIfStatsIPVersion ipIfStatsIfIndex";
            description
               "An interface statistics entry containing objects for a
               particular interface and version of IP.";
            leaf ipIfStatsIPVersion {
               type inet-address:InetVersion;
               description "The IP version of this row.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.1";
            }

            leaf ipIfStatsIfIndex {
               type if-mib:InterfaceIndex;
               description
                  "The index value that uniquely identifies the interface to
                  which this entry is applicable.  The interface identified by
                  a particular value of this index is the same interface as
                  identified by the same value of the IF-MIB's ifIndex.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.2";
            }

            leaf ipIfStatsInReceives {
               type yang:counter32;
               config "false";
               description
                  "The total number of input IP datagrams received, including
                  those received in error.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.3";
            }

            leaf ipIfStatsHCInReceives {
               type yang:counter64;
               config "false";
               description
                  "The total number of input IP datagrams received, including
                  those received in error.  This object counts the same
                  datagrams as ipIfStatsInReceives, but allows for larger
                  values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.4";
            }

            leaf ipIfStatsInOctets {
               type yang:counter32;
               config "false";
               description
                  "The total number of octets received in input IP datagrams,
                  including those received in error.  Octets from datagrams
                  counted in ipIfStatsInReceives MUST be counted here.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.5";
            }

            leaf ipIfStatsHCInOctets {
               type yang:counter64;
               config "false";
               description
                  "The total number of octets received in input IP datagrams,
                  including those received in error.  This object counts the
                  same octets as ipIfStatsInOctets, but allows for larger
                  values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.6";
            }

            leaf ipIfStatsInHdrErrors {
               type yang:counter32;
               config "false";
               description
                  "The number of input IP datagrams discarded due to errors in
                  their IP headers, including version number mismatch, other
                  format errors, hop count exceeded, errors discovered in
                  processing their IP options, etc.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.7";
            }

            leaf ipIfStatsInNoRoutes {
               type yang:counter32;
               config "false";
               description
                  "The number of input IP datagrams discarded because no route
                  could be found to transmit them to their destination.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.8";
            }

            leaf ipIfStatsInAddrErrors {
               type yang:counter32;
               config "false";
               description
                  "The number of input IP datagrams discarded because the IP
                  address in their IP header's destination field was not a
                  valid address to be received at this entity.  This count
                  includes invalid addresses (e.g., ::0).  For entities that
                  are not IP routers and therefore do not forward datagrams,
                  this counter includes datagrams discarded because the
                  destination address was not a local address.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.9";
            }

            leaf ipIfStatsInUnknownProtos {
               type yang:counter32;
               config "false";
               description
                  "The number of locally-addressed IP datagrams received
                  successfully but discarded because of an unknown or
                  unsupported protocol.
                  
                  When tracking interface statistics, the counter of the
                  interface to which these datagrams were addressed is
                  incremented.  This interface might not be the same as the
                  input interface for some of the datagrams.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  
                  
                  
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.10";
            }

            leaf ipIfStatsInTruncatedPkts {
               type yang:counter32;
               config "false";
               description
                  "The number of input IP datagrams discarded because the
                  datagram frame didn't carry enough data.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.11";
            }

            leaf ipIfStatsInForwDatagrams {
               type yang:counter32;
               config "false";
               description
                  "The number of input datagrams for which this entity was not
                  their final IP destination and for which this entity
                  attempted to find a route to forward them to that final
                  destination.  In entities that do not act as IP routers,
                  this counter will include only those datagrams that were
                  Source-Routed via this entity, and the Source-Route
                  processing was successful.
                  
                  When tracking interface statistics, the counter of the
                  incoming interface is incremented for each datagram.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.12";
            }

            leaf ipIfStatsHCInForwDatagrams {
               type yang:counter64;
               config "false";
               description
                  "The number of input datagrams for which this entity was not
                  their final IP destination and for which this entity
                  attempted to find a route to forward them to that final
                  destination.  This object counts the same packets as
                  
                  
                  
                  ipIfStatsInForwDatagrams, but allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.13";
            }

            leaf ipIfStatsReasmReqds {
               type yang:counter32;
               config "false";
               description
                  "The number of IP fragments received that needed to be
                  reassembled at this interface.
                  
                  When tracking interface statistics, the counter of the
                  interface to which these fragments were addressed is
                  incremented.  This interface might not be the same as the
                  input interface for some of the fragments.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.14";
            }

            leaf ipIfStatsReasmOKs {
               type yang:counter32;
               config "false";
               description
                  "The number of IP datagrams successfully reassembled.
                  
                  When tracking interface statistics, the counter of the
                  interface to which these datagrams were addressed is
                  incremented.  This interface might not be the same as the
                  input interface for some of the datagrams.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.15";
            }

            leaf ipIfStatsReasmFails {
               type yang:counter32;
               config "false";
               description
                  "The number of failures detected by the IP re-assembly
                  algorithm (for whatever reason: timed out, errors, etc.).
                  Note that this is not necessarily a count of discarded IP
                  fragments since some algorithms (notably the algorithm in
                  RFC 815) can lose track of the number of fragments by
                  combining them as they are received.
                  
                  When tracking interface statistics, the counter of the
                  interface to which these fragments were addressed is
                  incremented.  This interface might not be the same as the
                  input interface for some of the fragments.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.16";
            }

            leaf ipIfStatsInDiscards {
               type yang:counter32;
               config "false";
               description
                  "The number of input IP datagrams for which no problems were
                  encountered to prevent their continued processing, but
                  were discarded (e.g., for lack of buffer space).  Note that
                  this counter does not include any datagrams discarded while
                  awaiting re-assembly.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.17";
            }

            leaf ipIfStatsInDelivers {
               type yang:counter32;
               config "false";
               description
                  "The total number of datagrams successfully delivered to IP
                  user-protocols (including ICMP).
                  
                  When tracking interface statistics, the counter of the
                  interface to which these datagrams were addressed is
                  incremented.  This interface might not be the same as the
                  
                  
                  
                  input interface for some of the datagrams.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.18";
            }

            leaf ipIfStatsHCInDelivers {
               type yang:counter64;
               config "false";
               description
                  "The total number of datagrams successfully delivered to IP
                  user-protocols (including ICMP).  This object counts the
                  same packets as ipIfStatsInDelivers, but allows for larger
                  values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.19";
            }

            leaf ipIfStatsOutRequests {
               type yang:counter32;
               config "false";
               description
                  "The total number of IP datagrams that local IP user-
                  protocols (including ICMP) supplied to IP in requests for
                  transmission.  Note that this counter does not include any
                  datagrams counted in ipIfStatsOutForwDatagrams.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.20";
            }

            leaf ipIfStatsHCOutRequests {
               type yang:counter64;
               config "false";
               description
                  "The total number of IP datagrams that local IP user-
                  protocols (including ICMP) supplied to IP in requests for
                  transmission.  This object counts the same packets as
                  
                  
                  
                  ipIfStatsOutRequests, but allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.21";
            }

            leaf ipIfStatsOutForwDatagrams {
               type yang:counter32;
               config "false";
               description
                  "The number of datagrams for which this entity was not their
                  final IP destination and for which it was successful in
                  finding a path to their final destination.  In entities
                  that do not act as IP routers, this counter will include
                  only those datagrams that were Source-Routed via this
                  entity, and the Source-Route processing was successful.
                  
                  When tracking interface statistics, the counter of the
                  outgoing interface is incremented for a successfully
                  forwarded datagram.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.23";
            }

            leaf ipIfStatsHCOutForwDatagrams {
               type yang:counter64;
               config "false";
               description
                  "The number of datagrams for which this entity was not their
                  final IP destination and for which it was successful in
                  finding a path to their final destination.  This object
                  counts the same packets as ipIfStatsOutForwDatagrams, but
                  allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  
                  
                  
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.24";
            }

            leaf ipIfStatsOutDiscards {
               type yang:counter32;
               config "false";
               description
                  "The number of output IP datagrams for which no problem was
                  encountered to prevent their transmission to their
                  destination, but were discarded (e.g., for lack of
                  buffer space).  Note that this counter would include
                  datagrams counted in ipIfStatsOutForwDatagrams if any such
                  datagrams met this (discretionary) discard criterion.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.25";
            }

            leaf ipIfStatsOutFragReqds {
               type yang:counter32;
               config "false";
               description
                  "The number of IP datagrams that would require fragmentation
                  in order to be transmitted.
                  
                  When tracking interface statistics, the counter of the
                  outgoing interface is incremented for a successfully
                  fragmented datagram.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.26";
            }

            leaf ipIfStatsOutFragOKs {
               type yang:counter32;
               config "false";
               description
                  "The number of IP datagrams that have been successfully
                  fragmented.
                  
                  When tracking interface statistics, the counter of the
                  
                  
                  
                  outgoing interface is incremented for a successfully
                  fragmented datagram.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.27";
            }

            leaf ipIfStatsOutFragFails {
               type yang:counter32;
               config "false";
               description
                  "The number of IP datagrams that have been discarded because
                  they needed to be fragmented but could not be.  This
                  includes IPv4 packets that have the DF bit set and IPv6
                  packets that are being forwarded and exceed the outgoing
                  link MTU.
                  
                  When tracking interface statistics, the counter of the
                  outgoing interface is incremented for an unsuccessfully
                  fragmented datagram.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.28";
            }

            leaf ipIfStatsOutFragCreates {
               type yang:counter32;
               config "false";
               description
                  "The number of output datagram fragments that have been
                  generated as a result of IP fragmentation.
                  
                  When tracking interface statistics, the counter of the
                  outgoing interface is incremented for a successfully
                  fragmented datagram.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.29";
            }

            leaf ipIfStatsOutTransmits {
               type yang:counter32;
               config "false";
               description
                  "The total number of IP datagrams that this entity supplied
                  to the lower layers for transmission.  This includes
                  datagrams generated locally and those forwarded by this
                  entity.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.30";
            }

            leaf ipIfStatsHCOutTransmits {
               type yang:counter64;
               config "false";
               description
                  "The total number of IP datagrams that this entity supplied
                  to the lower layers for transmission.  This object counts
                  the same datagrams as ipIfStatsOutTransmits, but allows for
                  larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.31";
            }

            leaf ipIfStatsOutOctets {
               type yang:counter32;
               config "false";
               description
                  "The total number of octets in IP datagrams delivered to the
                  lower layers for transmission.  Octets from datagrams
                  counted in ipIfStatsOutTransmits MUST be counted here.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.32";
            }

            leaf ipIfStatsHCOutOctets {
               type yang:counter64;
               config "false";
               description
                  "The total number of octets in IP datagrams delivered to the
                  lower layers for transmission.  This objects counts the same
                  octets as ipIfStatsOutOctets, but allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.33";
            }

            leaf ipIfStatsInMcastPkts {
               type yang:counter32;
               config "false";
               description
                  "The number of IP multicast datagrams received.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.34";
            }

            leaf ipIfStatsHCInMcastPkts {
               type yang:counter64;
               config "false";
               description
                  "The number of IP multicast datagrams received.  This object
                  counts the same datagrams as ipIfStatsInMcastPkts, but
                  allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.35";
            }

            leaf ipIfStatsInMcastOctets {
               type yang:counter32;
               config "false";
               description
                  "The total number of octets received in IP multicast
                  
                  
                  
                  datagrams.  Octets from datagrams counted in
                  ipIfStatsInMcastPkts MUST be counted here.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.36";
            }

            leaf ipIfStatsHCInMcastOctets {
               type yang:counter64;
               config "false";
               description
                  "The total number of octets received in IP multicast
                  datagrams.  This object counts the same octets as
                  ipIfStatsInMcastOctets, but allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.37";
            }

            leaf ipIfStatsOutMcastPkts {
               type yang:counter32;
               config "false";
               description
                  "The number of IP multicast datagrams transmitted.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.38";
            }

            leaf ipIfStatsHCOutMcastPkts {
               type yang:counter64;
               config "false";
               description
                  "The number of IP multicast datagrams transmitted.  This
                  object counts the same datagrams as ipIfStatsOutMcastPkts,
                  but allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  
                  
                  
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.39";
            }

            leaf ipIfStatsOutMcastOctets {
               type yang:counter32;
               config "false";
               description
                  "The total number of octets transmitted in IP multicast
                  datagrams.  Octets from datagrams counted in
                  ipIfStatsOutMcastPkts MUST be counted here.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.40";
            }

            leaf ipIfStatsHCOutMcastOctets {
               type yang:counter64;
               config "false";
               description
                  "The total number of octets transmitted in IP multicast
                  datagrams.  This object counts the same octets as
                  ipIfStatsOutMcastOctets, but allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.41";
            }

            leaf ipIfStatsInBcastPkts {
               type yang:counter32;
               config "false";
               description
                  "The number of IP broadcast datagrams received.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.42";
            }

            leaf ipIfStatsHCInBcastPkts {
               type yang:counter64;
               config "false";
               description
                  "The number of IP broadcast datagrams received.  This object
                  counts the same datagrams as ipIfStatsInBcastPkts, but
                  allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.43";
            }

            leaf ipIfStatsOutBcastPkts {
               type yang:counter32;
               config "false";
               description
                  "The number of IP broadcast datagrams transmitted.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.44";
            }

            leaf ipIfStatsHCOutBcastPkts {
               type yang:counter64;
               config "false";
               description
                  "The number of IP broadcast datagrams transmitted.  This
                  object counts the same datagrams as ipIfStatsOutBcastPkts,
                  but allows for larger values.
                  
                  Discontinuities in the value of this counter can occur at
                  re-initialization of the management system, and at other
                  times as indicated by the value of
                  ipIfStatsDiscontinuityTime.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.45";
            }

            leaf ipIfStatsDiscontinuityTime {
               type yang:timestamp;
               config "false";
               description
                  "The value of sysUpTime on the most recent occasion at which
                  
                  
                  
                  any one or more of this entry's counters suffered a
                  discontinuity.
                  
                  If no such discontinuities have occurred since the last re-
                  initialization of the local management subsystem, then this
                  object contains a zero value.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.46";
            }

            leaf ipIfStatsRefreshRate {
               type uint32;
               units "milli-seconds";
               config "false";
               description
                  "The minimum reasonable polling interval for this entry.
                  This object provides an indication of the minimum amount of
                  time required to update the counters in this entry.";
               smi:oid "1.3.6.1.2.1.4.31.3.1.47";
            }
            smi:oid "1.3.6.1.2.1.4.31.3.1";
         }  // list ipIfStatsEntry
         smi:oid "1.3.6.1.2.1.4.31";
      }  // container ipTrafficStats

      container icmp {
         leaf icmpInMsgs {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The total number of ICMP messages which the entity received.
               Note that this counter includes all those counted by
               icmpInErrors.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by
               icmpStatsInMsgs.";
            smi:oid "1.3.6.1.2.1.5.1";
         }

         leaf icmpInErrors {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP messages which the entity received but
               determined as having ICMP-specific errors (bad ICMP
               checksums, bad length, etc.).
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by
               icmpStatsInErrors.";
            smi:oid "1.3.6.1.2.1.5.2";
         }

         leaf icmpInDestUnreachs {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Destination Unreachable messages
               received.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.3";
         }

         leaf icmpInTimeExcds {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Time Exceeded messages received.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.4";
         }

         leaf icmpInParmProbs {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Parameter Problem messages received.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.5";
         }

         leaf icmpInSrcQuenchs {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Source Quench messages received.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.6";
         }

         leaf icmpInRedirects {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Redirect messages received.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.7";
         }

         leaf icmpInEchos {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Echo (request) messages received.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.8";
         }

         leaf icmpInEchoReps {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Echo Reply messages received.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.9";
         }

         leaf icmpInTimestamps {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Timestamp (request) messages received.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.10";
         }

         leaf icmpInTimestampReps {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Timestamp Reply messages received.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.11";
         }

         leaf icmpInAddrMasks {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Address Mask Request messages received.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.12";
         }

         leaf icmpInAddrMaskReps {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Address Mask Reply messages received.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.13";
         }

         leaf icmpOutMsgs {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The total number of ICMP messages which this entity
               attempted to send.  Note that this counter includes all
               those counted by icmpOutErrors.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by
               icmpStatsOutMsgs.";
            smi:oid "1.3.6.1.2.1.5.14";
         }

         leaf icmpOutErrors {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP messages which this entity did not send
               due to problems discovered within ICMP, such as a lack of
               buffers.  This value should not include errors discovered
               outside the ICMP layer, such as the inability of IP to route
               the resultant datagram.  In some implementations, there may
               be no types of error which contribute to this counter's
               value.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by
               icmpStatsOutErrors.";
            smi:oid "1.3.6.1.2.1.5.15";
         }

         leaf icmpOutDestUnreachs {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Destination Unreachable messages sent.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.16";
         }

         leaf icmpOutTimeExcds {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Time Exceeded messages sent.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.17";
         }

         leaf icmpOutParmProbs {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Parameter Problem messages sent.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.18";
         }

         leaf icmpOutSrcQuenchs {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Source Quench messages sent.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.19";
         }

         leaf icmpOutRedirects {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Redirect messages sent.  For a host, this
               object will always be zero, since hosts do not send
               redirects.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.20";
         }

         leaf icmpOutEchos {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Echo (request) messages sent.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.21";
         }

         leaf icmpOutEchoReps {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Echo Reply messages sent.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.22";
         }

         leaf icmpOutTimestamps {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Timestamp (request) messages sent.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.23";
         }

         leaf icmpOutTimestampReps {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Timestamp Reply messages sent.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.24";
         }

         leaf icmpOutAddrMasks {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Address Mask Request messages sent.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.25";
         }

         leaf icmpOutAddrMaskReps {
            type yang:counter32;
            config "false";
            status "deprecated";
            description
               "The number of ICMP Address Mask Reply messages sent.
               
               This object has been deprecated, as a new IP version-neutral
               table has been added.  It is loosely replaced by a column in
               the icmpMsgStatsTable.";
            smi:oid "1.3.6.1.2.1.5.26";
         }

         list icmpStatsEntry {
            key "icmpStatsIPVersion";
            description
               "A conceptual row in the icmpStatsTable.";
            leaf icmpStatsIPVersion {
               type inet-address:InetVersion;
               description "The IP version of the statistics.";
               smi:oid "1.3.6.1.2.1.5.29.1.1";
            }

            leaf icmpStatsInMsgs {
               type yang:counter32;
               config "false";
               description
                  "The total number of ICMP messages that the entity received.
                  Note that this counter includes all those counted by
                  icmpStatsInErrors.";
               smi:oid "1.3.6.1.2.1.5.29.1.2";
            }

            leaf icmpStatsInErrors {
               type yang:counter32;
               config "false";
               description
                  "The number of ICMP messages that the entity received but
                  determined as having ICMP-specific errors (bad ICMP
                  checksums, bad length, etc.).";
               smi:oid "1.3.6.1.2.1.5.29.1.3";
            }

            leaf icmpStatsOutMsgs {
               type yang:counter32;
               config "false";
               description
                  "The total number of ICMP messages that the entity attempted
                  to send.  Note that this counter includes all those counted
                  by icmpStatsOutErrors.";
               smi:oid "1.3.6.1.2.1.5.29.1.4";
            }

            leaf icmpStatsOutErrors {
               type yang:counter32;
               config "false";
               description
                  "The number of ICMP messages that this entity did not send
                  due to problems discovered within ICMP, such as a lack of
                  buffers.  This value should not include errors discovered
                  outside the ICMP layer, such as the inability of IP to route
                  the resultant datagram.  In some implementations, there may
                  be no types of error that contribute to this counter's
                  value.";
               smi:oid "1.3.6.1.2.1.5.29.1.5";
            }
            smi:oid "1.3.6.1.2.1.5.29.1";
         }  // list icmpStatsEntry

         list icmpMsgStatsEntry {
            key "icmpMsgStatsIPVersion icmpMsgStatsType";
            description
               "A conceptual row in the icmpMsgStatsTable.
               
               The system should track each ICMP type value, even if that
               ICMP type is not supported by the system.  However, a
               given row need not be instantiated unless a message of that
               type has been processed, i.e., the row for
               icmpMsgStatsType=X MAY be instantiated before but MUST be
               instantiated after the first message with Type=X is
               received or transmitted.  After receiving or transmitting
               any succeeding messages with Type=X, the relevant counter
               must be incremented.";
            leaf icmpMsgStatsIPVersion {
               type inet-address:InetVersion;
               description "The IP version of the statistics.";
               smi:oid "1.3.6.1.2.1.5.30.1.1";
            }

            leaf icmpMsgStatsType {
               type int32 {
                  range "0..255";
               }
               description
                  "The ICMP type field of the message type being counted by
                  this row.
                  
                  Note that ICMP message types are scoped by the address type
                  in use.";
               reference
                  "http://www.iana.org/assignments/icmp-parameters and
                  http://www.iana.org/assignments/icmpv6-parameters";

               smi:oid "1.3.6.1.2.1.5.30.1.2";
            }

            leaf icmpMsgStatsInPkts {
               type yang:counter32;
               config "false";
               description
                  "The number of input packets for this AF and type.";
               smi:oid "1.3.6.1.2.1.5.30.1.3";
            }

            leaf icmpMsgStatsOutPkts {
               type yang:counter32;
               config "false";
               description
                  "The number of output packets for this AF and type.";
               smi:oid "1.3.6.1.2.1.5.30.1.4";
            }
            smi:oid "1.3.6.1.2.1.5.30.1";
         }  // list icmpMsgStatsEntry
         smi:oid "1.3.6.1.2.1.5";
      }  // container icmp
   }  // module IP-MIB