-- *****************************************************************
-- CISCO-CASA-MIB: Mib for Casa entities
--
-- May 1999, Chris O'Rourke
--
-- Copyright (c) 1999 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--
CISCO-CASA-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY, 
        OBJECT-TYPE, 
        NOTIFICATION-TYPE,
        Unsigned32,
        Counter32,
        Counter64,
        IpAddress,
        Gauge32
                FROM SNMPv2-SMI

        CiscoPort,
        CiscoIpProtocol
                FROM CISCO-TC

        DisplayString,
        TruthValue,
        TEXTUAL-CONVENTION,
        TimeStamp,
        RowStatus
                FROM SNMPv2-TC
                
        NOTIFICATION-GROUP,
        MODULE-COMPLIANCE, OBJECT-GROUP
                FROM SNMPv2-CONF

        ciscoMgmt
                FROM CISCO-SMI;

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

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

                   Tel: +1 800 553-NETS

                E-mail: cs-casa@cisco.com"
        DESCRIPTION
                "This MIB contains the basic objects for managing a
                Cisco Appliance Services Architecture (CASA) Entity. A
                CASA Entity can be a Manager or a Forwarding Agent as
                defined below. The basic objects included in this mib
                are those to configure CASA, retrieve CASA's state and
                information about the fixed affinity cache.
                
                The following gives a list of definitions and a
                description of how Service Managers and Forwarding
                Agents interact. For a more detailed description, see
                the Cisco Appliance Services Architecture (CASA)
                document.
                
                CASA is a protocol allowing software entities (called
                Appliances, examples are web caches, firewalls, load
                balancers) to control the behavior of network hardware
                devices (called Forwarding Agents, examples are
                switches or routers) by providing a set of rules used
                to handle network traffic.

                A Network Appliance (referred to as an Appliance) is
                any subsystem whose purpose is to provide a specific
                additional value-added service to the network device,
                and could be implemented as a standalone box, a line
                card or processor card, or a software subsystem.
                Examples of Network Appliances would include Load
                Balancers, WebCaches, and Firewalls.

                An Appliance tells Fowarding Agents how to handle
                packets based on their source and destination IP
                addresses and ports, and IP protocol fields.  This set
                of information is called an Affinity.
                
                A Service Manager is an Appliance that requests
                packet flows from Forwarding Agents through CASA.
                
                A Real Server is a physical computing engine or part
                of that physical computing engine that offers one or
                more application services to a set of clients in the
                network.
                
                A packet flow is a TCP connection or a sequence of UDP
                packets between a client and a specific Real Server,
                pertaining to a specific application. Flows are
                represented by entries in the affinity cache tables.

                The Service Manager requests packet flows from
                Forwarding Agents by sending Affinities which contains
                wildcards on some of the Affinity fields. Affinities
                that contain wildcards in some of the fields are
                called Wildcard Affinities.  The Service Manager may
                send the Forwarding Agent an Affinity containing
                explicit values for each of the fields.  These
                Affinities are called Fixed Affinities.
                
                Typically Wildcard Affinities are used to instruct the
                Forwarding Agent to send packets received by the
                Forwarding Agent, which match the Wildcard Affinity,
                to the Service Manager. When the Service Manager
                receives the matching packet, the Service Manager
                typically will send the Forwarding Agent a Fixed
                Affinity. The Forwarding Agent uses Fixed Affinities
                to match packets coming from the network, execute any
                processing required on that packet, and forward that
                packet to a destination IP address (designated in the
                Fixed Affinity) called the Dispatch Address.
                
                When an IP packet arrives at the Forwarding Agent, the
                Forwarding Agent attempts to match the packet with the
                Fixed Affinities in the Fixed Affinity cache.  If
                there is no match, an attempt is made to match the
                packet with the list of Wildcard Affinities. If there
                is no match the packet is routed normally. If there is
                a match with a Wildcard Affinity, the Forwarding Agent
                sends the packet to the Service Manager who will send
                the Forwarding Manager a Fixed Affinity which provides
                information on how to process IP packets similar to
                the one received by the Forwarding Agent. Processing
                of such packets may include sending the packet to the
                Service Manager. Such packets are called Interest
                Packets.  Alternatively a Tickle Packet may be sent to
                the Service Manager which is an indication that a
                matched packet has been received by the Forwarding
                Agent.
                
                Reference: Cisco Appliance Services Architecture (CASA)
                           document.
                           
                               _______________________________________
                              (                                       )
                              (    N    E    T    W    O    R    K    ) 
                              (_______________________________________)
                                  |                 |              |
                +---------------+ |                 |              |
                |Service Manager|-+----------+--------------+      |
                +---------------+ |          |      |       |      |
                            ++---------+    ++---------+  ++---------+
                            | F. Agent |    | F. Agent |  | F. Agent |
                            +----------+    +----------+  +----------+
                                  |                 |              |
                               ___|_________________|______________|__
                              (                                       )
                              (    N    E    T    W    O    R    K    ) 
                              (_______________________________________)"
                
                
        REVISION        "200209180000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { ciscoMgmt 122 }

--
-- Object information
--

ciscoCasaMIBObjects    OBJECT IDENTIFIER ::= { ciscoCasaMIB 1 }
cCasaGlobal            OBJECT IDENTIFIER ::= { ciscoCasaMIBObjects 1 }
cCasaStats             OBJECT IDENTIFIER ::= { ciscoCasaMIBObjects 2 }
cCasaAdmin             OBJECT IDENTIFIER ::= { ciscoCasaMIBObjects 3 }
cCasaAffinityCache     OBJECT IDENTIFIER ::= { ciscoCasaMIBObjects 4 }

CasaFixedAffinityIndex ::= TEXTUAL-CONVENTION
        STATUS     current
        DESCRIPTION
                "This is a unique identifier for a Fixed Affinity."
        SYNTAX OCTET STRING ( SIZE ( 16 ) )

cCasaTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF CCasaEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Table of CASA configuration parameters."
        ::= { cCasaGlobal 1 }

cCasaEntry OBJECT-TYPE
        SYNTAX      CCasaEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A list of administrative values for CASA."
        INDEX { cCasaEntity }
        ::= { cCasaTable 1 }

CCasaEntry ::= SEQUENCE {
        cCasaEntity                   INTEGER,
        cCasaState                    INTEGER,
        cCasaStateNotificationEnabled TruthValue,
        cCasaCfgAddress               IpAddress,
        cCasaCfgAddressMask           IpAddress,
        cCasaCfgMcastAddress          IpAddress,
        cCasaAddress                  IpAddress,
        cCasaAddressMask              IpAddress,
        cCasaMcastAddress             IpAddress
}

cCasaEntity OBJECT-TYPE
        SYNTAX  INTEGER {
                casaForwardingAgent (1),
                casaGLoBalManager   (2),
                casaUnknownManager  (3)
        }
        MAX-ACCESS  not-accessible
        STATUS      current   
        DESCRIPTION
                "This indicates the user of the CASA component.
                casaForwardingAgent: indicates that the objects in this
                                     row pertain to the Forwarding
                                     Agent.
                casaGLoBalManager  : indicates that the objects in this
                                     row pertain to the GLoBal Manager.
                casaUnknownManager : indicates that the associated
                                     service manager is not currently
                                     emumerated."
        ::= { cCasaEntry 1 }

cCasaState OBJECT-TYPE
        SYNTAX  INTEGER {
                casaNotEnabled (1),
                casaEnabled    (2),
                casaActive     (3)
        }
        MAX-ACCESS  read-write
        STATUS      current   
        DESCRIPTION 
                "casaNotEnabled: indicates that CASA is not configured.
                 casaEnabled   : indicates that CASA is configured.
                                   If the CASA entity is a Forwarding 
                                   Agent, it is waiting for a Wildcard 
                                   Affinity.
                 casaActive    : indicates that CASA is operational.
                                   i.e. For the Service Manager this
                                   state indicates that at least one
                                   Wildcard Affinity has been sent.
                                   For a Forwarding Agent this state
                                   indicates that Wildcard Affinity
                                   has been received and CASA is
                                   forwarding matching IP packets to
                                   the Service Manager.
                
                Setting cCasaState to casaNotEnabled will shut
                CASA down.
                
                Setting cCasaState to casaEnabled results in 
                the following sequence of events:
                  The configuration parameters 
                    cCasaCfgAddress,
                    cCasaCfgMcastAddress                    
                    are validated.
                  If validated CASA is shut down if its not already, 
                    followed by CASA being enabled with the
                    configuration parameters taking effect.
                  If the configuration parameters are not valid then
                    the set operation fails.

                Setting cCasaState to casaActive is invalid."
        ::= { cCasaEntry 2 }

cCasaStateNotificationEnabled OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION 
                "true indicates that ciscoCasaStateChange
                      notification is to be generated when the state
                      changes. That is, the notification generation 
                      is enabled.
                false indicates that ciscoCasaStateChange
                      notification generation is disabled."
        DEFVAL { false }
        ::= { cCasaEntry 3 }

cCasaCfgAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
                "The configured IP address of the CASA feature.  This
                IP address is unique per box participating in CASA.

                This takes effect in the running system when
                cCasaState is set to casaEnabled, at which time
                this object is copied to cCasaAddress."
        ::= { cCasaEntry 4 }

cCasaCfgAddressMask OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      obsolete
        DESCRIPTION
                "The configured IP subnet mask of the CASA feature.

                This takes effect in the running system when
                cCasaState is set to casaEnabled, at which time this
                object is copied to cCasaAddressMask."
        ::= { cCasaEntry 5 }

cCasaCfgMcastAddress OBJECT-TYPE
        SYNTAX      IpAddress  
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
                "The multicast IP address for this CASA Entity. This
                is used to listen for Wildcard Affinities in the case
                of a Forwarding Agent, or for sending Wildcard
                Affinities in the case of a Service Manager.
                
                This takes effect in the running system when
                cCasaState is set to casaEnabled, at which time this
                object is copied to cCasaMcastAddress."
        ::= { cCasaEntry 6 }

--  *************************************************************
--  * The following objects                                     *
--  *   cCasaAddress,                                           *
--  *   cCasaMcastAddress                                       *
--  * are the operational counterparts of the configuration     *
--  * parameters. i.e. these are the ones currently in effect   *
--  * in the running system.                                    *
--  *************************************************************

cCasaAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The operational IP address of the CASA Entity.
                
                When cCasaState is set to casaEnabled, this
                object attains the value contained in
                cCasaCfgAddress.
                
                A get on this object when cCasaState is
                casaNotEnabled returns a noSuchObject exception."
        ::= { cCasaEntry 7 }

cCasaAddressMask OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      obsolete
        DESCRIPTION
                "The operational IP subnet mask of the CASA feature.
                
                When cCasaState is set to casaEnabled, this
                object attains the value contained in
                cCasaCfgAddressMask.
                
                A get on this object when cCasaState is
                casaNotEnabled returns a noSuchObject exception."
        ::= { cCasaEntry 8 }

cCasaMcastAddress OBJECT-TYPE
        SYNTAX      IpAddress  
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The operational multicast IP address for this CASA
                Entity. This is used to listen for Wildcard Affinities
                in the case of a Forwarding Agent, or for sending
                Wildcard Affinities in the case of a Service Manager.
                
                When cCasaState is set to casaEnabled, this object
                attains the value contained in
                cCasaCfgMcastAddress.
                
                A get on this object when cCasaState is casaNotEnabled
                returns a noSuchObject exception."
        ::= { cCasaEntry 9 }

--  *************************************************************
--  *                                                           *
--  * CASA - Administration Table                               *
--  *                                                           *
--  *************************************************************

cCasaAdminTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF CCasaAdminEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Table of Multicast ports used by the Casa Entity to
                listen for Wildcard Affinities in the case of a
                Forwarding Agent, or for sending Wildcard Affinities
                in the case of a Service Manager.
                
                Adding entries to this table allows Forwarding Agents
                and Service Managers to exchange Wildcard Affinities
                on that multicast port. In this way, groups of
                Forwarding Agents may be configured to participate
                with particular groups of Service Managers."
        ::= { cCasaAdmin 1 }

cCasaAdminEntry OBJECT-TYPE
        SYNTAX      CCasaAdminEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A list of administrative values for the CASA Entity.
                
                Rows in this table are created via cCasaAdminRowStatus
                in accordance with the RowStatus convention, and via
                the command line interface."
        INDEX { cCasaEntity, cCasaAdminMcastPort }
        ::= { cCasaAdminTable 1 }

CCasaAdminEntry ::= SEQUENCE {
        cCasaAdminMcastPort                 CiscoPort,
        cCasaAdminMcastPasswd               DisplayString,
        cCasaAdminMcastPasswdTimeout        Unsigned32,
        cCasaAdminMcastPasswdFailures       Counter32,
        cCasaAdminRowStatus                 RowStatus
}

cCasaAdminMcastPort OBJECT-TYPE
        SYNTAX      CiscoPort
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION 
                "Multicast port which this CASA Entity uses to
                exchange Wildcard Affinities with its CASA Partner."
        ::= { cCasaAdminEntry 1 }

cCasaAdminMcastPasswd OBJECT-TYPE
        SYNTAX      DisplayString ( SIZE ( 0..64 ) )
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION 
                "Multicast password corresponding to this Multicast
                port. This is used to authenticate all control flows
                between this CASA Entity and its CASA Partner.
                
                Issuing a set on this object with a zero length string
                indicates that the password is not in effect.
                
                For security purposes, a get on this returns a zero
                length string."
        DEFVAL { ''H }
        ::= { cCasaAdminEntry 2 }

cCasaAdminMcastPasswdTimeout OBJECT-TYPE
        SYNTAX      Unsigned32 ( 0..3600 )
        UNITS       "seconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION 
                "Number of seconds that the previous password stays in
                effect after receiving the new password.  This is to
                allow all CASA components time to synchronize with the
                new password."
        DEFVAL { 12 }
        ::= { cCasaAdminEntry 3 }

cCasaAdminMcastPasswdFailures OBJECT-TYPE
        SYNTAX      Counter32
        UNITS       "failures"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION 
                "Count of multicast password authentication failures."
        ::= { cCasaAdminEntry 4 }

cCasaAdminRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "This object is used by a management station to create
                or delete the row entry in cCasaAdminTable following
                the RowStatus textual convention."
        ::= { cCasaAdminEntry 5 }

--  *************************************************************
--  *                                                           *
--  * CASA - Fixed Affinity Statistics Table                    *
--  *                                                           *
--  *************************************************************

cCasaAffinityCacheStatsTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF CCasaAffinityCacheStatsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Table of Fixed Affinity cache statistics.  The CASA
                Entity maintains a cache of Fixed Affinities.  This
                table contains objects that detail the dynamics of the
                cache."
        ::= { cCasaStats 1 }

cCasaAffinityCacheStatsEntry OBJECT-TYPE
        SYNTAX      CCasaAffinityCacheStatsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A list of Fixed Affinity cache statistics objects."
        INDEX { cCasaEntity }
        ::= { cCasaAffinityCacheStatsTable 1 }

CCasaAffinityCacheStatsEntry ::= SEQUENCE {
        cCasaAffinityCacheNumOf             Gauge32,
        cCasaAffinityCacheHiWtrMrk          Unsigned32,
        cCasaAffinityCacheHiWtrMrkReset     TimeStamp,
        cCasaAffinityCacheNoStorageDrops    Counter32,
        cCasaAffinityCacheHits              Counter32,
        cCasaAffinityCacheHCHits            Counter64,
        cCasaAffinityCacheMisses            Counter32,
        cCasaAffinityCacheHCMisses          Counter64,
        cCasaAffinityCacheIntrTimeouts      Counter32
}

cCasaAffinityCacheNumOf OBJECT-TYPE
        SYNTAX      Gauge32
        UNITS       "affinities"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION  
                "This is the number of affinities in the affinity
                cache. This is the number of entries in each of the
                following tables:
                
                cCasaAffinityCacheSrcTable, 
                cCasaAffinityCacheDestTable,
                cCasaAffinityCacheDispatchTable"
        ::= { cCasaAffinityCacheStatsEntry 1 }

cCasaAffinityCacheHiWtrMrk OBJECT-TYPE
        SYNTAX      Unsigned32
        UNITS       "affinities"
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION  
                "This is the maximum number of affinities (high water
                mark) concurrently held in the affinity cache since
                last time cCasaState transitioned to cCasaEnabled
                or since cCasaAffinityCacheHiWtrMrk was reset.

                Resetting this object is achieved via setting this
                object to 0. Attempting to set this object to any
                other value will result in a wrongValue error."
        ::= { cCasaAffinityCacheStatsEntry 2 }

cCasaAffinityCacheHiWtrMrkReset OBJECT-TYPE
        SYNTAX      TimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "This indicates when cCasaAffinityCacheHiWtrMrk
                was set to 0."
        ::= { cCasaAffinityCacheStatsEntry 3 }

cCasaAffinityCacheNoStorageDrops OBJECT-TYPE
        SYNTAX      Counter32
        UNITS       "affinities"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Count of affinities which we were unable to enter
                in the affinity cache due to low memory conditions."
        ::= { cCasaAffinityCacheStatsEntry 4 }

cCasaAffinityCacheHits OBJECT-TYPE
        SYNTAX      Counter32
        UNITS       "packets"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Number of packets which matched a Fixed Affinity
                stored in this Forwarding Agent Fixed Affinity cache."
        ::= { cCasaAffinityCacheStatsEntry 5 }

cCasaAffinityCacheHCHits OBJECT-TYPE
        SYNTAX      Counter64
        UNITS       "packets"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Number of packets which matched a Fixed Affinity
                stored in this Forwarding Agent fixed affinity cache.
                This object is a 64-bit version of cCasaHits."
        ::= { cCasaAffinityCacheStatsEntry 6 }

cCasaAffinityCacheMisses OBJECT-TYPE
        SYNTAX      Counter32
        UNITS       "packets"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Number of packets which did not match a Fixed
                Affinity stored in this Forwarding Agent fixed
                affinity cache."
        ::= { cCasaAffinityCacheStatsEntry 7 }

cCasaAffinityCacheHCMisses OBJECT-TYPE
        SYNTAX      Counter64
        UNITS       "packets"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Number of packets which did not match a Fixed
                Affinity stored in this Forwarding Agent fixed
                affinity cache.  This object is a 64-bit version of
                cCasaAffinityMisses."
        ::= { cCasaAffinityCacheStatsEntry 8 }

cCasaAffinityCacheIntrTimeouts OBJECT-TYPE
        SYNTAX      Counter32
        UNITS       "affinities"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Number of expected Fixed Affinities that were not
                received from the Service Manager for this Wildcard
                Affinity within a period of time from when a Fixed
                Affinity was requested by this Forwarding Agent."
        ::= { cCasaAffinityCacheStatsEntry 9 }

--  ******************************************************************
--  * The following tables cCasaAffinityCacheSrcTable,                *
--  * cCasaAffinityCacheDestTable and cCasaAffinityCacheDispatchTable *
--  * present the same information (entries in the Fixed Affinity     * 
--  * Cache but organized differently to make efficient access of the *
--  * entries based on IP source address, IP destination address, and *
--  * the IP dispatch address respectively.                           *
--  *                                                                 *
--  * The entries are uniquely defined by                             *
--  * cCasaEntity,                                                    *
--  * cCasaAffinityCacheSrcSourceAddr,                                *
--  * cCasaAffinityCacheSrcSourcePort,                                *
--  * cCasaAffinityCacheSrcDestAddr,                                  *
--  * cCasaAffinityCacheSrcDestPort,                                  *
--  * and cCasaAffinityCacheSrcProtocol.                              *
--  ******************************************************************

--  *************************************************************
--  *                                                           *
--  * CASA - Affinity Cache Table by source address             *
--  *                                                           *
--  *************************************************************

cCasaAffinityCacheSrcTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF CCasaAffinityCacheSrcEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Table of Fixed Affinity cache entries.
                
                The number of entries for the specific Casa Entity is
                given by cCasaAffinityCacheNumOf."
        ::= { cCasaAffinityCache 1 }

cCasaAffinityCacheSrcEntry OBJECT-TYPE
        SYNTAX      CCasaAffinityCacheSrcEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A list of Fixed Affinity cache objects with indices
                ordered to allow access by source IP address.
                
                Entries are added to this table dynamically by the
                subagent when Fixed Affinities are sent or received by
                the Casa Entity. Entries are deleted via a timeout
                associated with the Fixed Affinity."
        INDEX { cCasaEntity,
                cCasaAffinityCacheSrcSourceAddr,
                cCasaAffinityCacheSrcIndex
        }
        ::= { cCasaAffinityCacheSrcTable 1 }

CCasaAffinityCacheSrcEntry ::= SEQUENCE {
        cCasaAffinityCacheSrcSourceAddr       IpAddress,
        cCasaAffinityCacheSrcIndex            CasaFixedAffinityIndex,
        cCasaAffinityCacheSrcSourcePort       CiscoPort,
        cCasaAffinityCacheSrcDestAddr         IpAddress,
        cCasaAffinityCacheSrcDestPort         CiscoPort,
        cCasaAffinityCacheSrcProtocol         CiscoIpProtocol,
        cCasaAffinityCacheSrcDispAddr         IpAddress
}

cCasaAffinityCacheSrcSourceAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "The value used to compare the source IP address
                of TCP and UDP packets."
        ::= { cCasaAffinityCacheSrcEntry 1 }

cCasaAffinityCacheSrcIndex OBJECT-TYPE
        SYNTAX      CasaFixedAffinityIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "The value of this index uniquely identifies entries
                in the table for the Casa Entity.  This index is a
                constructed by concatenating values of SourceAddr,
                SourcePort, DestinationAddr, DestinationPort, and
                SrcProtocol.  However the order is implementation
                specific to optimize processing of the powerful get
                next snmp operation."
        ::= { cCasaAffinityCacheSrcEntry 2 }

cCasaAffinityCacheSrcSourcePort OBJECT-TYPE
        SYNTAX      CiscoPort
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The value used to compare the source port of the TCP
                and UDP packets."
        ::= { cCasaAffinityCacheSrcEntry 3 }

cCasaAffinityCacheSrcDestAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The value used to compare the destination IP address
                of the TCP and UDP packets."
        ::= { cCasaAffinityCacheSrcEntry 4 }

cCasaAffinityCacheSrcDestPort OBJECT-TYPE
        SYNTAX      CiscoPort
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The value used to compare the destination port of the
                TCP and UDP packets."
        ::= { cCasaAffinityCacheSrcEntry 5 }

cCasaAffinityCacheSrcProtocol OBJECT-TYPE
        SYNTAX      CiscoIpProtocol
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The value used to compare the IP Protocol field of
                the TCP and UDP packets."
        ::= { cCasaAffinityCacheSrcEntry 6 }
  
cCasaAffinityCacheSrcDispAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "IP address to which this Casa Entity will forward
                packets which match this Affinity."
        ::= { cCasaAffinityCacheSrcEntry 7 }

--  *************************************************************
--  *                                                           *
--  * CASA - Affinity Cache Table by destination address        *
--  *                                                           *
--  *************************************************************

cCasaAffinityCacheDestTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF CCasaAffinityCacheDestEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Table of Fixed Affinity cache entries.
                 
                The number of entries for the specific Casa Entity is
                given by cCasaAffinityCacheNumOf.
                 
                This table contains the same entries as
                cCasaAffinityCacheSrcTable. The order of the entries
                are in accordance with the described indices."
        ::= { cCasaAffinityCache 2 }
  
cCasaAffinityCacheDestEntry OBJECT-TYPE
        SYNTAX      CCasaAffinityCacheDestEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A list of Fixed Affinity cache objects with indices
                ordered to allow access by destination IP address.
                
                Entries are added to this table dynamically by the
                subagent when Fixed Affinities are sent or received by
                the Casa Entity. Entries are deleted via a timeout
                associated with the Fixed Affinity."
        INDEX { cCasaEntity,
                cCasaAffinityCacheDestDestAddr,
                cCasaAffinityCacheDestIndex
        }
        ::= { cCasaAffinityCacheDestTable 1 }

CCasaAffinityCacheDestEntry ::= SEQUENCE {
        cCasaAffinityCacheDestDestAddr        IpAddress,
        cCasaAffinityCacheDestIndex           CasaFixedAffinityIndex,
        cCasaAffinityCacheDestDestPort        CiscoPort,
        cCasaAffinityCacheDestSourceAddr      IpAddress,
        cCasaAffinityCacheDestSourcePort      CiscoPort,
        cCasaAffinityCacheDestProtocol        CiscoIpProtocol,
        cCasaAffinityCacheDestDispAddr        IpAddress
}

cCasaAffinityCacheDestDestAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "The value used to compare the destination IP address
                of the TCP and UDP packets."
        ::= { cCasaAffinityCacheDestEntry 1 }

cCasaAffinityCacheDestIndex OBJECT-TYPE
        SYNTAX      CasaFixedAffinityIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "The value of this index uniquely identifies entries
                in the table for the Casa Entity.  This index is a
                constructed by concatenating values of SourceAddr,
                SourcePort, DestinationAddr, DestinationPort, and
                SrcProtocol.  However the order is implementation
                specific to optimize processing of the powerful get
                next snmp operation."
        ::= { cCasaAffinityCacheDestEntry 2 }

cCasaAffinityCacheDestDestPort OBJECT-TYPE
        SYNTAX      CiscoPort
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The value used to compare the destination port
                of the TCP and UDP packets."
        ::= { cCasaAffinityCacheDestEntry 3 }

cCasaAffinityCacheDestSourceAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The value used to compare the source IP address
                of TCP and UDP packets."
        ::= { cCasaAffinityCacheDestEntry 4 }

cCasaAffinityCacheDestSourcePort OBJECT-TYPE
        SYNTAX      CiscoPort
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The value used to compare the source port
                of the TCP and UDP packets."
        ::= { cCasaAffinityCacheDestEntry 5 }

cCasaAffinityCacheDestProtocol OBJECT-TYPE
        SYNTAX      CiscoIpProtocol
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The value used to compare the IP Protocol field 
                of the TCP and UDP packets."
        ::= { cCasaAffinityCacheDestEntry 6 }
  
cCasaAffinityCacheDestDispAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "IP address to which this Casa Entity will
                forward packets which match this Affinity."
        ::= { cCasaAffinityCacheDestEntry 7 }

--  *************************************************************
--  *                                                           *
--  * CASA - Affinity Cache Table by dispatch address           *
--  *                                                           *
--  *************************************************************

cCasaAffinityCacheDispatchTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF CCasaAffinityCacheDispatchEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Table of Fixed Affinity cache entries.
                
                The number of entries for the specific Casa Entity is
                given by cCasaAffinityCacheNumOf.
                 
                This table contains the same entries as
                cCasaAffinityCacheSrcTable. The order of the entries
                are in accordance with the described indices."
        ::= { cCasaAffinityCache 3 }
  
cCasaAffinityCacheDispatchEntry OBJECT-TYPE
        SYNTAX      CCasaAffinityCacheDispatchEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A list of Fixed Affinity cache objects with indices
                ordered to allow access by the dispatch IP address.
                
                Entries are added to this table dynamically by the
                subagent when Fixed Affinities are sent or received by
                the Casa Entity. Entries are deleted via a timeout
                associated with the Fixed Affinity."
        INDEX { cCasaEntity,
                cCasaAffinityCacheDispDispAddr,
                cCasaAffinityCacheDispatchIndex
        }
        ::= { cCasaAffinityCacheDispatchTable 1 }

CCasaAffinityCacheDispatchEntry ::= SEQUENCE {
        cCasaAffinityCacheDispDispAddr    IpAddress,
        cCasaAffinityCacheDispatchIndex   CasaFixedAffinityIndex,
        cCasaAffinityCacheDispDestAddr    IpAddress,
        cCasaAffinityCacheDispDestPort    CiscoPort,
        cCasaAffinityCacheDispSourceAddr  IpAddress,
        cCasaAffinityCacheDispSourcePort  CiscoPort,
        cCasaAffinityCacheDispProtocol    CiscoIpProtocol
}

cCasaAffinityCacheDispDispAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "IP address to which this Casa Entity will
                forward packets which match this Affinity."
        ::= { cCasaAffinityCacheDispatchEntry 1 }

cCasaAffinityCacheDispatchIndex OBJECT-TYPE
        SYNTAX      CasaFixedAffinityIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "The value of this index uniquely identifies entries
                in the table for the Casa Entity.  This index is a
                constructed by concatenating values of SourceAddr,
                SourcePort, DestinationAddr, DestinationPort, and
                SrcProtocol.  However the order is implementation
                specific to optimize processing of the powerful get
                next snmp operation."
        ::= { cCasaAffinityCacheDispatchEntry 2 }

cCasaAffinityCacheDispDestAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The value used to compare the destination IP address
                of the TCP and UDP packets."
        ::= { cCasaAffinityCacheDispatchEntry 3 }

cCasaAffinityCacheDispDestPort OBJECT-TYPE
        SYNTAX      CiscoPort
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The value used to compare the destination port
                of the TCP and UDP packets."
        ::= { cCasaAffinityCacheDispatchEntry 4 }

cCasaAffinityCacheDispSourceAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The value used to compare the source IP address
                of TCP and UDP packets."
        ::= { cCasaAffinityCacheDispatchEntry 5 }

cCasaAffinityCacheDispSourcePort OBJECT-TYPE
        SYNTAX      CiscoPort
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The value used to compare the source port
                of the TCP and UDP packets."
        ::= { cCasaAffinityCacheDispatchEntry 6 }

cCasaAffinityCacheDispProtocol OBJECT-TYPE
        SYNTAX      CiscoIpProtocol
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The value used to compare the IP Protocol field 
                of the TCP and UDP packets."
        ::= { cCasaAffinityCacheDispatchEntry 7 }
  
--  *************************************************************
--  *                                                           *
--  * CASA - Statistics Table                                   *
--  *                                                           *
--  *************************************************************

cCasaStatsTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF CCasaStatsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Table of CASA statistics."
        ::= { cCasaStats 2 }

cCasaStatsEntry OBJECT-TYPE
        SYNTAX      CCasaStatsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A list of Fixed Affinity cache statistics objects."
        INDEX { cCasaEntity }
        ::= { cCasaStatsTable 1 }

CCasaStatsEntry ::= SEQUENCE {
        cCasaInterestPackets   Counter32,
        cCasaInterestTickles   Counter32
}

cCasaInterestPackets OBJECT-TYPE
        SYNTAX      Counter32
        UNITS       "packets"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION  
                "Number of Interest Packets send to the Service
                Manager by this Forwarding Agent or the number of
                Interest Packets received by this Service Manager."
        ::= { cCasaStatsEntry 1 }

cCasaInterestTickles OBJECT-TYPE
        SYNTAX      Counter32
        UNITS       "packets"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION  
                "Number of Tickle packets sent to the Service Manager
                by this Forwarding Agent or the number of Tickle
                Packets received by this Service Manager."
        ::= { cCasaStatsEntry 2 }

--
-- Notification Information
--

ciscoCasaMIBNotificationPrefix OBJECT IDENTIFIER ::= { ciscoCasaMIB 2 }
ciscoCasaMIBNotifications      OBJECT IDENTIFIER ::= 
    { ciscoCasaMIBNotificationPrefix 0 }

ciscoCasaStateChange NOTIFICATION-TYPE
        OBJECTS {
                cCasaState
        }
        STATUS      current
        DESCRIPTION 
                "This notification indicates that the cCasaState
                object has changed value.  Issued when CASA is
                configured or removed on the CASA Entity. This is
                gated on cCasaStateNotificationEnabled."
        ::= { ciscoCasaMIBNotificationPrefix 1 }

--
-- Conformance Information
--
ciscoCasaMIBConformance OBJECT IDENTIFIER ::= { ciscoCasaMIB 3 }
ciscoCasaMIBCompliances OBJECT IDENTIFIER ::=
    { ciscoCasaMIBConformance 1 }
ciscoCasaMIBGroups      OBJECT IDENTIFIER ::=
    { ciscoCasaMIBConformance 2 }

-- Compliance

ciscoCasaMIBCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Cisco CASA MIB."
        MODULE -- this module
                MANDATORY-GROUPS { ciscoCasaGroup,
                                   ciscoCasaAdminGroup,
                                   ciscoCasaAffinityCacheGroup,
                                   ciscoCasaStatsGroup,
                                   ciscoCasaNotifGroup
                                 }
        ::= { ciscoCasaMIBCompliances 1 }
        
-- Units of Conformance

ciscoCasaGroup OBJECT-GROUP
        OBJECTS {
                cCasaState,
                cCasaStateNotificationEnabled,
                cCasaCfgAddress,
                cCasaCfgMcastAddress,
                cCasaAddress,
                cCasaMcastAddress
        }
        STATUS current
        DESCRIPTION
                "CASA global objects."
        ::= { ciscoCasaMIBGroups 1 }

ciscoCasaAdminGroup OBJECT-GROUP
        OBJECTS {
                cCasaAdminMcastPasswd,
                cCasaAdminMcastPasswdTimeout,
                cCasaAdminMcastPasswdFailures,
                cCasaAdminRowStatus
        }
        STATUS current
        DESCRIPTION
                "CASA configuration objects."
        ::= { ciscoCasaMIBGroups 2 }

ciscoCasaAffinityCacheGroup OBJECT-GROUP
        OBJECTS {
                cCasaAffinityCacheNumOf,
                cCasaAffinityCacheHiWtrMrk,
                cCasaAffinityCacheHiWtrMrkReset,
                cCasaAffinityCacheNoStorageDrops,
                cCasaAffinityCacheHits,
                cCasaAffinityCacheHCHits,
                cCasaAffinityCacheMisses,
                cCasaAffinityCacheHCMisses,
                cCasaAffinityCacheIntrTimeouts,
                cCasaAffinityCacheSrcSourcePort,
                cCasaAffinityCacheSrcDestAddr,
                cCasaAffinityCacheSrcDestPort,
                cCasaAffinityCacheSrcProtocol,
                cCasaAffinityCacheSrcDispAddr,
                
                cCasaAffinityCacheDestDestPort,
                cCasaAffinityCacheDestSourceAddr,
                cCasaAffinityCacheDestSourcePort,
                cCasaAffinityCacheDestProtocol,
                cCasaAffinityCacheDestDispAddr,
                
                cCasaAffinityCacheDispDestAddr,
                cCasaAffinityCacheDispDestPort,
                cCasaAffinityCacheDispSourceAddr,
                cCasaAffinityCacheDispSourcePort,
                cCasaAffinityCacheDispProtocol
        }
        STATUS current
        DESCRIPTION
                "CASA affinity cache objects."
        ::= { ciscoCasaMIBGroups 3 }

ciscoCasaStatsGroup OBJECT-GROUP
        OBJECTS {
                cCasaInterestPackets,
                cCasaInterestTickles
        }
        STATUS current
        DESCRIPTION
                "CASA statistics objects."
        ::= { ciscoCasaMIBGroups 4 }

ciscoCasaObsoleteGroup OBJECT-GROUP
        OBJECTS {
                cCasaCfgAddressMask,
                cCasaAddressMask
        }
        STATUS obsolete
        DESCRIPTION
                "CASA obsolete objects."
        ::= { ciscoCasaMIBGroups 5 }

ciscoCasaNotifGroup NOTIFICATION-GROUP
        NOTIFICATIONS {
                ciscoCasaStateChange
        }
        STATUS current
        DESCRIPTION
            "A collection of objects providing CASA notifications."
        ::= { ciscoCasaMIBGroups 6 }
END
