-- *******************************************************************
-- CISCO-LWAPP-NBAR-MIB.my
-- June 2012, Venkatesh Puranik
--   
-- Copyright (c) 2011-2018 by Cisco Systems, Inc.
-- All rights reserved.
-- *******************************************************************

CISCO-LWAPP-NBAR-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    NOTIFICATION-TYPE,
    Unsigned32
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP,
    NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    RowStatus
        FROM SNMPv2-TC
    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB
    ciscoMgmt
        FROM CISCO-SMI;


-- ********************************************************************
-- *  MODULE IDENTITY
-- ********************************************************************

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

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

            Tel: +1 800 553-NETS

            Email: cs-snmp@cisco.com"
    DESCRIPTION
        "NBAR - Network Based Application Recognition is
        an intelligent classification engine that recognizes 
        applications that are static (which use fixed TCP or
        UDP port numbers), and stateful (which dynamically 
        assign TCP or UDP port numbers).

        The relationship between CC and the LWAPP APs
        can be depicted as follows:

        +......+     +......+     +......+           +......+
        +      +     +      +     +      +           +      +
        +  CC  +     +  CC  +     +  CC  +           +  CC  +
        +      +     +      +     +      +           +      +
        +......+     +......+     +......+           +......+
        ..            .             .                 .
        ..            .             .                 .
        .  .            .             .                 .
        .    .            .             .                 .
        .      .            .             .                 .
        .        .            .             .                 .
        +......+ +......+     +......+      +......+          +......+
        +      + +      +     +      +      +      +          +      +
        +  AP  + +  AP  +     +  AP  +      +  AP  +          +  AP  +
        +      + +      +     +      +      +      +          +      +
        +......+ +......+     +......+      +......+          +......+
           .              .             .                 .
         .  .              .             .                 .
        .    .              .             .                 .
        .      .              .             .                 .
        .        .              .             .                 .
        +......+ +......+     +......+      +......+          +......+
        +      + +      +     +      +      +      +          +      +
        +  MN  + +  MN  +     +  MN  +      +  MN  +          +  MN  +
        +      + +      +     +      +      +      +          +      +
        +......+ +......+     +......+      +......+          +......+

                  GLOSSARY 

        Access Point ( AP )

        An entity that contains an 802.11 medium access
        control ( MAC ) and physical layer ( PHY ) interface
        and provides access to the distribution services via
        the wireless medium for associated clients.  

        LWAPP APs encapsulate all the 802.11 frames in
        LWAPP frames and sends it to the controller to which
        it is logically connected to.

        Central Controller ( CC )

        The central entity that terminates the LWAPP protocol
        tunnel from the LWAPP APs.  Throughout this MIB,
        this entity also referred to as 'controller'.

        Light Weight Access Point Protocol ( LWAPP ) 

        This is a generic protocol that defines the
        communication between the Access Points and the
        controllers.

        Mobile Node ( MN )

        A roaming 802.11 wireless device in a wireless
        network associated with an access point.

        AVC - Application Visibility and Control.
        The client application or protocol statistics and control."
    REVISION        "201802080000Z"
    DESCRIPTION
        "Updated description for cLNbarAVCFlexRuleApplicationName,
        cLNbarAVCFlexRuleApplicationAction, cLNbarAVCRuleApplicationName and 
        cLNbarAVCRuleApplicationAction for providing additional information 
        about class-default application type."
    REVISION        "201704270000Z"
    DESCRIPTION
        "Updated the description of various objects."
    REVISION        "201206120000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { ciscoMgmt 841 }


ciscoLwappNbarMIBNotifs  OBJECT IDENTIFIER
    ::= { ciscoLwappNbarMIB 0 }

ciscoLwappNbarMIBObjects  OBJECT IDENTIFIER
    ::= { ciscoLwappNbarMIB 1 }

ciscoLwappNbarMIBConform  OBJECT IDENTIFIER
    ::= { ciscoLwappNbarMIB 2 }

ciscoLwappNbarTableObjects  OBJECT IDENTIFIER
    ::= { ciscoLwappNbarMIBObjects 1 }

ciscoLwappNbarGlobalObjects  OBJECT IDENTIFIER
    ::= { ciscoLwappNbarMIBObjects 2 }


cLNbarAVCEngineVersion OBJECT-TYPE
    SYNTAX          OCTET STRING
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the AVC engine version." 
    ::= { ciscoLwappNbarGlobalObjects 1 }

cLNbarAVCProtoPackName OBJECT-TYPE
    SYNTAX          OCTET STRING
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the AVC protocol pack name." 
    ::= { ciscoLwappNbarGlobalObjects 2 }

cLNbarAVCProtoPackVer OBJECT-TYPE
    SYNTAX          OCTET STRING
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the AVC protocol pack version." 
    ::= { ciscoLwappNbarGlobalObjects 3 }

cLNbarAVCFlexEngineVersion OBJECT-TYPE
    SYNTAX          OCTET STRING
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the AVC flexconnect engine version." 
    ::= { ciscoLwappNbarGlobalObjects 4 }

cLNbarAVCFlexProtoPackName OBJECT-TYPE
    SYNTAX          OCTET STRING
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the AVC flexconnect protocol pack
        name." 
    ::= { ciscoLwappNbarGlobalObjects 5 }

cLNbarAVCFlexProtoPackVer OBJECT-TYPE
    SYNTAX          OCTET STRING
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the AVC flexconnect protocol pack
        version." 
    ::= { ciscoLwappNbarGlobalObjects 6 }
-- *******************************************************************
-- AVC Profile table
-- *******************************************************************

cLNbarAVCProfileTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CLNbarAVCProfileEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table represents the information about
        application visibility and control (AVC) profiles."
    ::= { ciscoLwappNbarTableObjects 1 }

cLNbarAVCProfileEntry OBJECT-TYPE
    SYNTAX          CLNbarAVCProfileEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing the configuration attributes
        of application visibility and control."
    INDEX           { cLNbarAVCProfileName } 
    ::= { cLNbarAVCProfileTable 1 }

CLNbarAVCProfileEntry ::= SEQUENCE {
        cLNbarAVCProfileName      SnmpAdminString,
        cLNbarAVCProfileRowStatus RowStatus
}

cLNbarAVCProfileName OBJECT-TYPE
    SYNTAX          SnmpAdminString (SIZE  (1..32))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents the AVC profile name." 
    ::= { cLNbarAVCProfileEntry 1 }

cLNbarAVCProfileRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This is the status column for this row and is used to
        create and delete specific instances of rows in this 
        table." 
    ::= { cLNbarAVCProfileEntry 2 }
 

-- *******************************************************************
-- AVC Rule table
-- *******************************************************************

cLNbarAVCRuleTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CLNbarAVCRuleEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table represents the information about AVC rule for
        a given profile and application."
    ::= { ciscoLwappNbarTableObjects 2 }

cLNbarAVCRuleEntry OBJECT-TYPE
    SYNTAX          CLNbarAVCRuleEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing the configuration attributes
        of AVC rule."
    INDEX           {
                        cLNbarAVCProfileName,
                        cLNbarAVCRuleApplicationName
                    } 
    ::= { cLNbarAVCRuleTable 1 }

CLNbarAVCRuleEntry ::= SEQUENCE {
        cLNbarAVCRuleProfileName          SnmpAdminString,
        cLNbarAVCRuleApplicationName      SnmpAdminString,
        cLNbarAVCRuleApplicationGroupName SnmpAdminString,
        cLNbarAVCRuleApplicationAction    INTEGER,
        cLNbarAVCRuleDscpValue            Unsigned32,
        cLNbarAVCRuleRowStatus            RowStatus,
        cLNbarAVCRuleAppAvgRateLimit      Unsigned32,
        cLNbarAVCRuleAppBurstRateLimit    Unsigned32
}

cLNbarAVCRuleProfileName OBJECT-TYPE
    SYNTAX          SnmpAdminString (SIZE  (1..32))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents the AVC profile name." 
    ::= { cLNbarAVCRuleEntry 1 }

cLNbarAVCRuleApplicationName OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents the name of application or
        protocol of AVC rule.
        For Default Application Rule, Application Name should be 
        configured as class-default." 
    ::= { cLNbarAVCRuleEntry 2 }

cLNbarAVCRuleApplicationGroupName OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the name of application group of
        AVC rule." 
    ::= { cLNbarAVCRuleEntry 3 }

cLNbarAVCRuleApplicationAction OBJECT-TYPE
    SYNTAX          INTEGER  {
                        drop(2),
                        mark(3),
                        ratelimit(4)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the action for the application
        or protocol of AVC rule.
        For class-default type, only mark option is allowed.
        drop - the corresponding application or protocol 
        packets will be dropped.
        mark - the corresponding application or protocol 
        packets will be marked with DSCP value specified by 
        cLNbarAVCRuleDscpValue.
        ratelimit - the corresponding application or protocol
        packets will be rate limited with average and burst rate
        limit values sepcified by cLNbarAVCRuleAppAvgRateLimit." 
    ::= { cLNbarAVCRuleEntry 4 }

cLNbarAVCRuleDscpValue OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the DSCP value of AVC rule." 
    ::= { cLNbarAVCRuleEntry 5 }

cLNbarAVCRuleRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This is the status column for this row and is used to
        create and delete specific instances of rows in this 
        table." 
    ::= { cLNbarAVCRuleEntry 6 }

cLNbarAVCRuleAppAvgRateLimit OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the application average data rate
        limit of AVC rule." 
    ::= { cLNbarAVCRuleEntry 7 }

cLNbarAVCRuleAppBurstRateLimit OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the application burst data rate
        limit of AVC rule." 
    ::= { cLNbarAVCRuleEntry 8 }
 

-- *******************************************************************
-- AVC FLEX Profile table
-- *******************************************************************

cLNbarAVCFlexProfileTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CLNbarAVCFlexProfileEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table represents the information about
        flex application visibility and control (AVC) profiles."
    ::= { ciscoLwappNbarTableObjects 3 }

cLNbarAVCFlexProfileEntry OBJECT-TYPE
    SYNTAX          CLNbarAVCFlexProfileEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing the configuration attributes
        of application visibility and control for NBAR."
    INDEX           { cLNbarAVCFlexProfileName } 
    ::= { cLNbarAVCFlexProfileTable 1 }

CLNbarAVCFlexProfileEntry ::= SEQUENCE {
        cLNbarAVCFlexProfileName      SnmpAdminString,
        cLNbarAVCFlexProfileApply     INTEGER,
        cLNbarAVCFlexProfileRowStatus RowStatus
}

cLNbarAVCFlexProfileName OBJECT-TYPE
    SYNTAX          SnmpAdminString (SIZE  (1..32))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents the AVC flex profile name." 
    ::= { cLNbarAVCFlexProfileEntry 1 }

cLNbarAVCFlexProfileApply OBJECT-TYPE
    SYNTAX          INTEGER  {
                        modified(0),
                        apply(1)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object is used to push AVC flex profile configured on
        controller to AP.
        modified(1) - Indicates AVC flex profile is in modified 
        state and is not yet applied.This value is not settable.
        apply(2) - Indicates AVC flex profile will be applied to
        AP." 
    ::= { cLNbarAVCFlexProfileEntry 2 }

cLNbarAVCFlexProfileRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This is the status column for this row and is used to
        create and delete specific instances of rows in this 
        table." 
    ::= { cLNbarAVCFlexProfileEntry 3 }
 

-- *******************************************************************
-- AVC Flex Rule table
-- *******************************************************************

cLNbarAVCFlexRuleTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CLNbarAVCFlexRuleEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table represents the information about
        flex AVC rule."
    ::= { ciscoLwappNbarTableObjects 4 }

cLNbarAVCFlexRuleEntry OBJECT-TYPE
    SYNTAX          CLNbarAVCFlexRuleEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing the configuration attributes
        of AVC rule."
    INDEX           {
                        cLNbarAVCFlexProfileName,
                        cLNbarAVCFlexRuleApplicationName
                    } 
    ::= { cLNbarAVCFlexRuleTable 1 }

CLNbarAVCFlexRuleEntry ::= SEQUENCE {
        cLNbarAVCFlexRuleProfileName          SnmpAdminString,
        cLNbarAVCFlexRuleApplicationName      SnmpAdminString,
        cLNbarAVCFlexRuleApplicationGroupName SnmpAdminString,
        cLNbarAVCFlexRuleApplicationAction    INTEGER,
        cLNbarAVCFlexRuleDscpValue            Unsigned32,
        cLNbarAVCFlexRuleRowStatus            RowStatus,
        cLNbarAVCFlexRuleAppAvgRateLimit      Unsigned32,
        cLNbarAVCFlexRuleAppBurstRateLimit    Unsigned32
}

cLNbarAVCFlexRuleProfileName OBJECT-TYPE
    SYNTAX          SnmpAdminString (SIZE  (1..32))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents the AVC profile name." 
    ::= { cLNbarAVCFlexRuleEntry 1 }

cLNbarAVCFlexRuleApplicationName OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents the name of application or
        protocol of AVC flex rule.
        For Default Application Rule, Application Name should be 
        configured as class-default." 
    ::= { cLNbarAVCFlexRuleEntry 2 }

cLNbarAVCFlexRuleApplicationGroupName OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the name of application
        group of AVC flex rule." 
    ::= { cLNbarAVCFlexRuleEntry 3 }

cLNbarAVCFlexRuleApplicationAction OBJECT-TYPE
    SYNTAX          INTEGER  {
                        drop(2),
                        mark(3),
                        ratelimit(4)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the action for the application
        or protocol of AVC flex rule.
        For class-default type, only mark option is allowed.
        drop - the corresponding application or protocol 
        packets will be dropped.
        mark - the corresponding application or protocol 
        packets will be marked with DSCP value.
        ratelimit - the corresponding application or protocol
        packets will be rate limited with average and burst 
        rate limit values." 
    ::= { cLNbarAVCFlexRuleEntry 4 }

cLNbarAVCFlexRuleDscpValue OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the DSCP value of AVC flex rule." 
    ::= { cLNbarAVCFlexRuleEntry 5 }

cLNbarAVCFlexRuleRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This is the status column for this row and is used to
        create and delete specific instances of rows in this 
        table." 
    ::= { cLNbarAVCFlexRuleEntry 6 }

cLNbarAVCFlexRuleAppAvgRateLimit OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the application average data
        rate limit of AVC flex rule." 
    ::= { cLNbarAVCFlexRuleEntry 7 }

cLNbarAVCFlexRuleAppBurstRateLimit OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the application burst data
        rate limit of AVC flex rule." 
    ::= { cLNbarAVCFlexRuleEntry 8 }
 


-- *******************************************************************

cLAVCProtoPackLoadNotifFailed NOTIFICATION-TYPE
    OBJECTS         {
                        cLNbarAVCProtoPackName,
                        cLNbarAVCProtoPackVer
                    }
    STATUS          current
    DESCRIPTION
        "This notification is generated whenever a protocol
        pack download fails."
   ::= { ciscoLwappNbarMIBNotifs 1 }

cLAVCProtoPackLoadNotifSuccess NOTIFICATION-TYPE
    OBJECTS         {
                        cLNbarAVCProtoPackName,
                        cLNbarAVCProtoPackVer
                    }
    STATUS          current
    DESCRIPTION
        "This notification is generated whenever a protocol
        pack download succeeds."
   ::= { ciscoLwappNbarMIBNotifs 2 }
-- *******************************************************************
-- *   END OF -  NOTIFICATIONS
-- *******************************************************************
--   
-- *******************************************************************
-- *    Compliance statements
-- *******************************************************************

ciscoLwappNbarMIBCompliances  OBJECT IDENTIFIER
    ::= { ciscoLwappNbarMIBConform 1 }

ciscoLwappNbarMIBGroups  OBJECT IDENTIFIER
    ::= { ciscoLwappNbarMIBConform 2 }


ciscoLwappNbarMIBCompliance MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "The compliance statement for the SNMP entities that
        implement the ciscoLwappNbarMIB module."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        cLNbarConfigGroup,
                        cLNbarGlobalGroup
                    }
    ::= { ciscoLwappNbarMIBCompliances 1 }

-- *******************************************************************
-- *    Units of conformance
-- *******************************************************************

cLNbarConfigGroup OBJECT-GROUP
    OBJECTS         {
                        cLNbarAVCProfileName,
                        cLNbarAVCProfileRowStatus,
                        cLNbarAVCRuleProfileName,
                        cLNbarAVCRuleApplicationName,
                        cLNbarAVCRuleApplicationGroupName,
                        cLNbarAVCRuleApplicationAction,
                        cLNbarAVCRuleDscpValue,
                        cLNbarAVCRuleRowStatus,
                        cLNbarAVCFlexProfileName,
                        cLNbarAVCFlexProfileRowStatus,
                        cLNbarAVCFlexRuleProfileName,
                        cLNbarAVCFlexRuleApplicationName,
                        cLNbarAVCFlexRuleApplicationGroupName,
                        cLNbarAVCFlexRuleApplicationAction,
                        cLNbarAVCFlexRuleDscpValue,
                        cLNbarAVCFlexRuleRowStatus
                    }
    STATUS          current
    DESCRIPTION
        "This is a collection of objects which can be configured to
        control NBAR parameters."
    ::= { ciscoLwappNbarMIBGroups 1 }

cLNbarGlobalGroup OBJECT-GROUP
    OBJECTS         {
                        cLNbarAVCEngineVersion,
                        cLNbarAVCProtoPackVer,
                        cLNbarAVCProtoPackName,
                        cLNbarAVCFlexEngineVersion,
                        cLNbarAVCFlexProtoPackVer,
                        cLNbarAVCFlexProtoPackName
                    }
    STATUS          current
    DESCRIPTION
        "This is a collection of global objects which can be configured
        to control NBAR parameters."
    ::= { ciscoLwappNbarMIBGroups 2 }

END

