-- *****************************************************************
-- Cisco IP Statistics MIB file.
--
-- August 1997, Shu Tai
--
-- Copyright (c) 1997-1999 by Cisco Systems, Inc.
-- All rights reserved.
--
-- *****************************************************************
-- $Endlog$
--

CISCO-IP-STAT-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY,
	OBJECT-TYPE,
	Integer32,
	Gauge32,
	Counter32,
	Counter64
		FROM SNMPv2-SMI
	MODULE-COMPLIANCE,
	OBJECT-GROUP
		FROM SNMPv2-CONF
	MacAddress,
	TEXTUAL-CONVENTION
		FROM SNMPv2-TC
	ifIndex
		FROM IF-MIB
	ciscoMgmt
		FROM CISCO-SMI;

ciscoIpStatMIB MODULE-IDENTITY
	LAST-UPDATED	"200112202300Z"
	ORGANIZATION	"Cisco Systems, Inc."
	CONTACT-INFO
		"	Cisco Systems
			Customer Service

		Postal:	170 W. Tasman Drive
			San Jose, CA  95134-1706
			USA

		   Tel: +1 800 553-NETS

		E-mail: ipqos-dev@cisco.com"

	DESCRIPTION
		" Cisco IP Statistics MIB - Overview

    This MIB incorporates objects to provide support for the Cisco IP
    statistics as implemented in command interfaces

    ip accounting [ mac-address {input | ouput } |
    		   precedence { input | ouput } ]
    
    The above CLI provides additional IP statistics categorized by
    precedence of IP packets, as well as the MAC address associated
    with IP packets.  This is a supplement to those defined in
    OLD-CISCO-IP-MIB.my.
    "

	REVISION	"200112202300Z"
	DESCRIPTION
		"Added the following table and objects for 64 bit
		 packet/byte counters:
		 cipPrecedenceXTable ->
					cipPrecedenceHCSwitchedPkts,
					cipPrecedenceHCSwitchedBytes
		 cipMacXTable ->
				 cipMacHCSwitchedPkts,
				 cipMacHCSwitchedBytes "
	REVISION	"9707180000Z"
	DESCRIPTION
		"Initial version of this MIB module."
	::= { ciscoMgmt 84 }

ciscoIpStatMIBObjects OBJECT IDENTIFIER ::= { ciscoIpStatMIB 1 }

-- Subgroups:
--
-- IP MAC Statistic Table
-- IP Precedence Statistic Table

-- Textual Conventions

PacketSource ::= TEXTUAL-CONVENTION
	STATUS	current
	DESCRIPTION
		"The source of the packet the statistics is for.

		input	statistics of the input packets.
		output	statistics of the output packets.
		"
	SYNTAX  INTEGER { input(1), output(2) }

cipPrecedence	OBJECT IDENTIFIER ::= { ciscoIpStatMIBObjects 1 }
cipMacIf	OBJECT IDENTIFIER ::= { ciscoIpStatMIBObjects 2 }

cipPrecedenceTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF CipPrecedenceEntry
	MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "A table of entries sorted by the precedence of IP packets.
	The table is created and deleted via ip accounting
	command line interface."

        ::= { cipPrecedence 1 }

cipPrecedenceEntry OBJECT-TYPE
        SYNTAX CipPrecedenceEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"An entry in the cipPrecedenceTable is created
		for each IP precedence value. There are 8 precedences
		total."
 
        INDEX {
		ifIndex,
		cipPrecedenceDirection,
		cipPrecedenceIpPrecedence
	}
        ::= { cipPrecedenceTable 1 }

CipPrecedenceEntry ::=
	SEQUENCE {
		cipPrecedenceDirection
               		PacketSource,
		cipPrecedenceIpPrecedence
                        Integer32,
		cipPrecedenceSwitchedPkts
                        Counter32,
		cipPrecedenceSwitchedBytes
                        Counter32
	}

cipPrecedenceDirection OBJECT-TYPE
	SYNTAX  PacketSource
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
       		"The data source for the object."
        ::= { cipPrecedenceEntry 1 }

cipPrecedenceIpPrecedence OBJECT-TYPE
	SYNTAX  Integer32 (0..7)
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                "The ip precedence value this object is collected upon."

        ::= { cipPrecedenceEntry 2 }

cipPrecedenceSwitchedPkts OBJECT-TYPE
	SYNTAX  Counter32
	UNITS	"packets"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"Traffic, in packets, at the cipPrecedenceIpPrecedence
		precedence."

	::= { cipPrecedenceEntry 3 }

cipPrecedenceSwitchedBytes OBJECT-TYPE
	SYNTAX  Counter32
	UNITS	"bytes"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"Traffic, in bytes, at the cipPrecedenceIpPrecedence
		precedence."

	::= { cipPrecedenceEntry 4 }

-- end of cipPrecedenceTable

cipMacTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF CipMacEntry
	MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"A table is created and deleted via ip accounting
		command line interface."
 
        ::= { cipMacIf 1 }

cipMacEntry OBJECT-TYPE
        SYNTAX CipMacEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"An entry in the cipMacTable is created
		for each unique MAC address which receives/sends
		IP packets.  Entries are deleted via the command
		line interface."
 
        INDEX { ifIndex, cipMacDirection, cipMacAddress }
        ::= { cipMacTable 1 }

CipMacEntry ::=
	SEQUENCE {
		cipMacDirection
               		PacketSource,
		cipMacAddress
                        MacAddress,
		cipMacSwitchedPkts
                        Counter32,
		cipMacSwitchedBytes
                        Counter32
	}

cipMacDirection OBJECT-TYPE
	SYNTAX  PacketSource
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
       		"The data source for the object."
        ::= { cipMacEntry 1 }

cipMacAddress OBJECT-TYPE
	SYNTAX  MacAddress
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                "The MAC address."

        ::= { cipMacEntry 2 }

cipMacSwitchedPkts OBJECT-TYPE
	SYNTAX  Counter32
	UNITS	"packets"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"The counter in packets with respect to cipMacAddress."

	::= { cipMacEntry 3 }

cipMacSwitchedBytes OBJECT-TYPE
	SYNTAX  Counter32
	UNITS	"bytes"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"The counter in bytes with respect to cipMacAddress."

	::= { cipMacEntry 4 }

-- end of cipMacTable

cipMacFreeTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF CipMacFreeEntry
	MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        	"A table of free space available to store new MAC address
		information."

        ::= { cipMacIf 2 }

cipMacFreeEntry OBJECT-TYPE
        SYNTAX CipMacFreeEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The MAC free space table entry.  Entry is created when
		Entries are created and deleted via ip accounting
		command line interface."
 
        INDEX { ifIndex, cipMacFreeDirection }
        ::= { cipMacFreeTable 1 }

CipMacFreeEntry ::=
	SEQUENCE {
		cipMacFreeDirection
               		PacketSource,
		cipMacFreeCount
                        Gauge32
	}

cipMacFreeDirection OBJECT-TYPE
	SYNTAX  PacketSource
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
       		"The data source for the object."
        ::= { cipMacFreeEntry 1 }

cipMacFreeCount OBJECT-TYPE
	SYNTAX  Gauge32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "Number of items in the MAC free space."

        ::= { cipMacFreeEntry 2 }

-- end of cipMacFreeTable

cipPrecedenceXTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF CipPrecedenceXEntry
	MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "This table contains additional objects for the
	cipPrecedenceTable."

        ::= { cipPrecedence 2 }

cipPrecedenceXEntry OBJECT-TYPE
        SYNTAX CipPrecedenceXEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"An entry containing additional management information
		applicable to a particular precedence value."
 
        AUGMENTS { cipPrecedenceEntry }
        ::= { cipPrecedenceXTable 1 }

CipPrecedenceXEntry ::=
	SEQUENCE {
		cipPrecedenceHCSwitchedPkts
                        Counter64,
		cipPrecedenceHCSwitchedBytes
                        Counter64
	}

cipPrecedenceHCSwitchedPkts OBJECT-TYPE
	SYNTAX  Counter64
	UNITS	"packets"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"Traffic, in packets, at the cipPrecedenceIpPrecedence
		precedence.  This object is the 64-bit version of
		cipPrecedenceSwitchedPkts."

	::= { cipPrecedenceXEntry 1 }

cipPrecedenceHCSwitchedBytes OBJECT-TYPE
	SYNTAX  Counter64
	UNITS	"bytes"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"Traffic, in bytes, at the cipPrecedenceIpPrecedence
		precedence.  This object is the 64-bit version of
		cipPrecedenceSwitchedBytes."

	::= { cipPrecedenceXEntry 2 }

-- end of cipPrecedenceXTable

cipMacXTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF CipMacXEntry
	MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "This table contains additional objects for the	cipMacTable."
 
        ::= { cipMacIf 3 }

cipMacXEntry OBJECT-TYPE
        SYNTAX CipMacXEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"An entry containing additional management information
		applicable to a particular MAC address."
 
        AUGMENTS { cipMacEntry }
        ::= { cipMacXTable 1 }

CipMacXEntry ::=
	SEQUENCE {
		cipMacHCSwitchedPkts
                        Counter64,
		cipMacHCSwitchedBytes
                        Counter64
	}

cipMacHCSwitchedPkts OBJECT-TYPE
	SYNTAX  Counter64
	UNITS	"packets"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"The high capacity counter in packets with respect to
		cipMacAddress.  This object is the 64-bit version of
		cipMacSwitchedPkts."

	::= { cipMacXEntry 1 }

cipMacHCSwitchedBytes OBJECT-TYPE
	SYNTAX  Counter64
	UNITS	"bytes"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"The counter in bytes with respect to cipMacAddress.
		This object is the 64-bit version of
		cipMacSwitchedBytes."

	::= { cipMacXEntry 2 }

-- end of cipMacXTable

-- conformance information

ciscoIpStatMIBConformance OBJECT IDENTIFIER ::= { ciscoIpStatMIB 3 }
ciscoIpStatMIBCompliances OBJECT IDENTIFIER ::=
  { ciscoIpStatMIBConformance 1 }
ciscoIpStatMIBGroups      OBJECT IDENTIFIER ::=
  { ciscoIpStatMIBConformance 2 }


-- compliance statement

ciscoIpStatMIBCompliance MODULE-COMPLIANCE
	STATUS	deprecated -- deprecated by ciscoIpStatMIBComplianceRev2
	DESCRIPTION
		"The compliance statement for entities which implement
		the IP Statistics on a Cisco router."
	MODULE	-- this module
		MANDATORY-GROUPS { ciscoIpStatMIBGroup }
	::= { ciscoIpStatMIBCompliances 1 }

ciscoIpStatMIBComplianceRev2 MODULE-COMPLIANCE
	STATUS	current
	DESCRIPTION
		"The compliance statement for entities which implement
		the IP Statistics on a Cisco router.
		This deprecates ciscoIpStatMIBCompliance to provide
		64-bit versions of packet and byte counter objects."
	MODULE	-- this module
		MANDATORY-GROUPS { ciscoIpStatMIBGroup }

		GROUP	   ciscoIpStatHCMIBGroup
		DESCRIPTION
			"This group is recommended for high speed
			(high speed interfaces transmit and receive at
			speeds over 20,000,000 bits/second) network
			interfaces."

	::= { ciscoIpStatMIBCompliances 2 }

-- units of conformance

ciscoIpStatMIBGroup OBJECT-GROUP
	OBJECTS {
		cipPrecedenceSwitchedPkts,
		cipPrecedenceSwitchedBytes,
		cipMacSwitchedPkts,
		cipMacSwitchedBytes,
		cipMacFreeCount
	}
	STATUS	current
	DESCRIPTION
		"A collection of objects providing IP Statistics
		monitoring.
		For interfaces that operate at speeds greater than 
		20,000,000 bits/second, it is recommended that the HC
		counters in the optional compliance section be supported
		and used."
	::= { ciscoIpStatMIBGroups 1 }

ciscoIpStatHCMIBGroup OBJECT-GROUP
	OBJECTS {
		cipPrecedenceHCSwitchedPkts,
		cipPrecedenceHCSwitchedBytes,
		cipMacHCSwitchedPkts,
		cipMacHCSwitchedBytes
	}
	STATUS	current
	DESCRIPTION
		"A collection of objects providing IP Statistics
		monitoring. This is recommended for high speed (high
		speed interfaces transmit and receive at speeds over
		20,000,000 bits/second) network interfaces."
	::= { ciscoIpStatMIBGroups 2 }

END
