RC-APP-TELEMETRY-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32, Counter64
        FROM SNMPv2-SMI
    DisplayString, TruthValue, RowStatus, DateAndTime
        FROM SNMPv2-TC
    InetAddress, InetAddressType
        FROM INET-ADDRESS-MIB
    rcAppTelemetry, PortSet
        FROM RAPID-CITY;

rcAppTelemetryMib  MODULE-IDENTITY
       LAST-UPDATED     "201901220000Z"
       ORGANIZATION "Extreme Networks"
       CONTACT-INFO "Prem Palarapu
             Postal:  Extreme Networks
                      9 Northeastern Blvd
                      Salem, NH 03079
              email:  ppalarapu@extremenetworks.com"
       DESCRIPTION  "Enterprise MIB for the OVSDB mibs."

       REVISION "201901220000Z" -- 22 Jan 2019
       DESCRIPTION "Version 8: Two small adjustments to the BOSS specific objects:
                               - rcAppTelemetryPortList redefined as read-write;
                               - rcAppTelemetryPolicyFileInUse redefined as INTEGER
                               { default(1), custom(2) } (azmeu)"

       REVISION "201901170000Z" -- 17 Jan 2019
       DESCRIPTION "Version 7: Put the file in sync with what has already been
                               released on the VOSS platforms:
                               - rcAppTelemetryAdminEnable returned to TruthValue
                                 as it's syntax;
                               - the now first four objects have the same OIDs for
                                 BOSS as the ones for VOSS. (azmeu)"

       REVISION "201901090000Z" --  9 Jan 2019
       DESCRIPTION "Version 6: - Added a range for the Display String for
                                 rcAppTelemetryRcvrNextHop (azmeu)"
       REVISION "201810260000Z" -- 26 Oct 2018
       DESCRIPTION "Version 5: - Modified the order in which objects are registered
                                 (their subsequent OID) and listed in the file.
                               - Modified the syntax and description for
                               rcAppTelemetryAdminEnable
                               - Added rcAppTelemetryPortList
                                       rcAppTelemetryPolicyFileInUse
                               (azmeu)"
       REVISION "201810050000Z" -- 5 Oct 2018
       DESCRIPTION "Version 4: - Modified the order in which objects are listed
                               in the file.
                               - Added following scalar objects:
                                    rcAppTelemetryRcvrAddressType
                                    rcAppTelemetryRcvrAddress.
                               The rcAppTelemetryRcvrAddress scalar object
                               replaces the rcAppTelemetryRcvrIpAddress object.
                               - Added InetAddressType to the list of imports
                               from INET-ADDRESS-MIB
                               - Added the rcAppTelemetryCounterClearCounter
                               object in the rcAppTelemetryCounterTable
                               table (azmeu)"
       
       REVISION "201808230000Z" -- 23 Aug 2018
       DESCRIPTION "Version 3: Modified the name for:
       
       					the next hop scalar and its SYNTAX type
                                        the reachability scalar
			       They are now called:
			       
			       		rcAppTelemetryRcvrNextHop
					rcAppTelemetryRcvrIsReachable
			       (Requested by Mihai Alexandru Vasiliu)
			       
			       Added a new scalar for the collector's IP address
			       (necessary for the BOSS implementation of
			       AppTelemetry):
			       
			       		rcAppTelemetryRcvrIpAddress
			       (Changes made by Alex Zmeu)"

       REVISION "201805140000Z" -- 14 May 2018
       DESCRIPTION "Version 2: Added rcAppTelemetryCollectorReachable 
	                       rcAppTelemetryCollectorReachableNextHop"
 
       REVISION "201801170000Z" -- 17 Jan 2018
       DESCRIPTION "Version 1: Generate File. Added the following -
                               rcAppTelemetryAdminEnable and 
                               rcAppTelemetryCounterTable.
			       Requested by Elena Sandu (Prem)"
       ::= { rcAppTelemetry 1 }

rcAppTelemetryNotifications   OBJECT IDENTIFIER ::= { rcAppTelemetryMib 1 }
rcAppTelemetryObjects         OBJECT IDENTIFIER ::= { rcAppTelemetryMib 2 }

rcAppTelemetryScalars         OBJECT IDENTIFIER ::= { rcAppTelemetryObjects 1 }
 
rcAppTelemetryAdminEnable OBJECT-TYPE
    SYNTAX           TruthValue
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION      "Globally enables or disables ApplicationTelemetry.
                      In it's disabled state, the application retains it's
                      settings (collector IP address, policy configuration file)."
    DEFVAL           { false }
    ::= { rcAppTelemetryScalars 1 }
 
rcAppTelemetryClearCounterStats OBJECT-TYPE
    SYNTAX           TruthValue
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION      "Clear counters for all entries in rcAppTelemetryCounterTable."
    DEFVAL           { false }
    ::= { rcAppTelemetryScalars 2 }

rcAppTelemetryRcvrIsReachable OBJECT-TYPE
    SYNTAX           TruthValue
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION      "Determines if the Application Telemetry collector 
                      is reachable."
    ::= { rcAppTelemetryScalars 3 }

rcAppTelemetryRcvrNextHop OBJECT-TYPE
    SYNTAX           DisplayString(SIZE(0..64))
    MAX-ACCESS       read-only
    STATUS           current 
    DESCRIPTION      "Displays the next-hop through which the collector 
                      is reachable."
    ::= { rcAppTelemetryScalars 4 }
    
rcAppTelemetryRcvrAddressType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION     "The type of rcAppTelemetryRcvrAddress."
    DEFVAL          { ipv4 }
    
    ::= { rcAppTelemetryScalars 5 }

rcAppTelemetryRcvrAddress OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION     "The IP address of the AppTelemetry Collector.
                     If set to 0.0.0.0, no AppTelemetry datagrams will be sent."
    DEFVAL          { '00000000'H } -- 0.0.0.0
    
    ::= { rcAppTelemetryScalars 6 }
    
rcAppTelemetryPortList OBJECT-TYPE
    SYNTAX          PortSet
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION     "The set of ports on which Application Telemetry's
                     filtering and mirroring policy will be applied"
    ::= { rcAppTelemetryScalars 7 }

rcAppTelemetryPolicyFileInUse OBJECT-TYPE
    SYNTAX          INTEGER { default(1), custom(2) }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "This shows which policy configuration file is
                     currently in use."
    ::= { rcAppTelemetryScalars 8 }


rcAppTelemetryCounterTable OBJECT-TYPE
    SYNTAX           SEQUENCE OF RcAppTelemetryCounterEntry
    MAX-ACCESS       not-accessible
    STATUS           current
    DESCRIPTION      "This table is used to show Application 
                      Telemetry Counters."
    ::= { rcAppTelemetryObjects 2 }

rcAppTelemetryCounterEntry OBJECT-TYPE
    SYNTAX           RcAppTelemetryCounterEntry
    MAX-ACCESS       not-accessible
    STATUS           current
    DESCRIPTION      "Entry containing Aplication Telemetry counters 
                      information."
    INDEX            { rcAppTelemetryCounterId }
    ::= { rcAppTelemetryCounterTable 1 }
 
RcAppTelemetryCounterEntry ::=
    SEQUENCE {
        rcAppTelemetryCounterId             Integer32,
        rcAppTelemetryCounterName           DisplayString,
        rcAppTelemetryCounterPkts           Counter64,
        rcAppTelemetryCounterBytes          Counter64,
        rcAppTelemetryCounterClearCounter   TruthValue
    }
 
rcAppTelemetryCounterId OBJECT-TYPE
    SYNTAX             Integer32 (1..2000)
    MAX-ACCESS         not-accessible
    STATUS             current
    DESCRIPTION        "Application Telemetry rule id."
    ::= { rcAppTelemetryCounterEntry 1 }
 
rcAppTelemetryCounterName OBJECT-TYPE
    SYNTAX             DisplayString(SIZE(0..32))
    MAX-ACCESS         read-only
    STATUS             current
    DESCRIPTION        "Rule name."
    ::= { rcAppTelemetryCounterEntry 2 }
 
rcAppTelemetryCounterPkts OBJECT-TYPE
    SYNTAX             Counter64
    MAX-ACCESS         read-only
    STATUS             current
    DESCRIPTION        "Numbers of packets per rule."
    ::= { rcAppTelemetryCounterEntry 3 }
 
rcAppTelemetryCounterBytes OBJECT-TYPE
    SYNTAX             Counter64
    MAX-ACCESS         read-only
    STATUS             current
    DESCRIPTION        "Numbers of Bytes per rule."
    ::= { rcAppTelemetryCounterEntry 4 }
    
rcAppTelemetryCounterClearCounter OBJECT-TYPE
    SYNTAX              TruthValue
    MAX-ACCESS          read-write
    STATUS              current
    DESCRIPTION         "Clear the counters for the current rule ID"
    DEFVAL              { false }
    ::= { rcAppTelemetryCounterEntry 5 }

END
