-- *****************************************************************
-- CISCO-SDWAN-PROBE-MIB.my:
-- OID assignments for Cisco sdwan cloudexpress

-- June 2021, Lucknell Madestin

-- Copyright (c) 2020-2021 by Cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-SDWAN-PROBE-MIB DEFINITIONS ::= BEGIN
IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    NOTIFICATION-TYPE,
    Unsigned32,
    Counter64
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP,
    NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    TEXTUAL-CONVENTION,
    ciscoMgmt
        FROM CISCO-SMI;

ciscoSdwanProbeMIB MODULE-IDENTITY
    LAST-UPDATED "202106140000Z"
    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 "This module defines the data model for route
                 and forwarding probe management"
    REVISION "202103010000Z"
    DESCRIPTION "Cisco SDWAN Probe Revision 0"
    ::= { ciscoMgmt 1008 }

UnsignedByte ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION "xs:unsignedByte"
    SYNTAX      Unsigned32 (0 .. 255)

UnsignedShort ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION "xs:unsignedShort"
    SYNTAX      Unsigned32 (0 .. 65535)

ConfdString ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "1t"
    STATUS      current
    DESCRIPTION "xs: and confd: types mapped to strings"
    SYNTAX      OCTET STRING

Ipv4Prefix ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "1d.1d.1d.1d/1d"
    STATUS      current
    DESCRIPTION "confd:ipv4Prefix"
    SYNTAX      OCTET STRING (SIZE (5))

InetAddressIP ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "confd:inetAddressIP"
    SYNTAX      OCTET STRING (SIZE (4|16))

String ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "1t"
    STATUS      current
    DESCRIPTION "xs:string"
    SYNTAX      OCTET STRING

DestinationIp ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "1t"
    STATUS      current
    DESCRIPTION "destination ip"
    SYNTAX      OCTET STRING

SourceIp ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "1t"
    STATUS      current
    DESCRIPTION "source ip"
    SYNTAX      OCTET STRING

TcpFlags ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "TCP flags"
    SYNTAX      BITS {syn(0)}

DataPolicyDirectionEnum ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Policy direction"
    SYNTAX      INTEGER {from-service(0),
                         from-tunnel(1),
                         all(2)}

DirectionEnum ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "direction enum"
    SYNTAX      INTEGER {in(0),
                         out(1)}
TransportProtocol ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Transport protocol"
    SYNTAX      INTEGER {transport-tcp(0),
                         transport-udp(1)}

ActionDataEnum ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Action"
    SYNTAX      INTEGER {accept(0),
                         drop(1)}

FnfMonitorEnum ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Fnf monitor"
    SYNTAX      INTEGER {ipv4(0),
                         ipv6(1),
                         both(2)}

ColorList ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "1t"
     STATUS      current
     DESCRIPTION "Color list"
     SYNTAX      OCTET STRING

-- Notification type definitions
NotificationSeverity ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Netconf notification severity level"
    SYNTAX      INTEGER {critical(1),
                         major(2),
			 minor(3)}

VpnId ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION "<0..65530>"
    SYNTAX      Unsigned32 (0 .. 65530)

-- MIB Objects, Notification Objects, Notification and Conform
ciscoSdwanProbeMIBObjects OBJECT IDENTIFIER
    ::= { ciscoSdwanProbeMIB 1 }

ciscoSdwanProbeMIBConform OBJECT IDENTIFIER
    ::= { ciscoSdwanProbeMIB 3 }

-- tagpath /applications
probeApplicationsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ProbeApplicationsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Applications Table"
    ::= { ciscoSdwanProbeMIBObjects 2 }

-- tagpath /applications
probeApplicationsEntry OBJECT-TYPE
    SYNTAX      ProbeApplicationsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Applications Table entry"
    INDEX {probeApplicationsVpnId,
           probeApplicationsAppType,
           probeApplicationsAppId}
        ::= { probeApplicationsTable 1 }

ProbeApplicationsEntry ::=
    SEQUENCE {
        probeApplicationsVpnId       Unsigned32,
        probeApplicationsAppType     INTEGER,
        probeApplicationsAppId       Unsigned32,
        probeApplicationsSubAppId    Unsigned32,
        probeApplicationsApp         String,
        probeApplicationsExitType    INTEGER,
        probeApplicationsGwSysIp     InetAddressIP,
        probeApplicationsInterface   String,
        probeApplicationsLatency     Unsigned32,
        probeApplicationsLoss        Unsigned32,
        probeApplicationsLocalColor  INTEGER,
        probeApplicationsRemoteColor INTEGER
    }

-- tagpath /applications/vpn_id
probeApplicationsVpnId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Application VPN ID"
    ::= { probeApplicationsEntry 1 }

-- tagpath /applications/app_type
probeApplicationsAppType OBJECT-TYPE
    SYNTAX      INTEGER{cxp-app-type-unset(0),
                        cxp-app-type-app-id(1),
                        cxp-app-type-app-grp(2),
                        cxp-app-type-svc-area(3),
                        cxp-app-type-region(4),
                        cxp-app-type-custom-app-grp(5)}
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Applications App Type"
    ::= { probeApplicationsEntry 2 }

-- tagpath /applications/app_id
probeApplicationsAppId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Applications App ID"
    ::= { probeApplicationsEntry 3 }

-- tagpath /applications/subapp_id
probeApplicationsSubAppId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Applications Subapp ID"
    ::= { probeApplicationsEntry 4 }

-- tagpath /applications/application
probeApplicationsApp OBJECT-TYPE
    SYNTAX      String(SIZE (1 .. 128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Applications App"
    ::= { probeApplicationsEntry 5 }

-- tagpath /applications/exit_type
probeApplicationsExitType OBJECT-TYPE
    SYNTAX      INTEGER{cxp-exit-unset(0),
                        cxp-exit-gateway(1),
                        cxp-exit-local(2),
                        cxp-exit-uncomputed(3),
                        cxp-exit-none(4)}
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Applications Exit Type"
    ::= { probeApplicationsEntry 6 }

-- tagpath /applications/gateway_system_ip
probeApplicationsGwSysIp OBJECT-TYPE
    SYNTAX      InetAddressIP
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Applications Gateway System IP Address"
    ::= { probeApplicationsEntry 7 }

-- tagpath /applications/interface
probeApplicationsInterface OBJECT-TYPE
    SYNTAX      String(SIZE (1 .. 128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Applications Interface Name"
    ::= { probeApplicationsEntry 8 }

-- tagpath /applications/latency
probeApplicationsLatency OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Applications App Type"
    ::= { probeApplicationsEntry 9 }

-- tagpath /applications/loss
probeApplicationsLoss OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Applications App Type"
    ::= { probeApplicationsEntry 10 }

-- tagpath /applications/remote_color
probeApplicationsRemoteColor OBJECT-TYPE
    SYNTAX      INTEGER {default(1),
                         mpls(2),
                         metro-ethernet(3),
                         biz-internet(4),
                         public-internet(5),
                         lte(6),
                         threeG(7),
                         red(8),
                         green(9),
                         blue(10),
                         gold(11),
                         silver(12),
                         bronze(13),
                         custom1(14),
                         custom2(15),
                         custom3(16),
                         private1(17),
                         private2(18),
                         private3(19),
                         private4(20),
                         private5(21),
                         private6(22)}
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Applications Remote Color"
    ::= { probeApplicationsEntry 11 }

-- tagpath /applications/local_color
probeApplicationsLocalColor OBJECT-TYPE
    SYNTAX      INTEGER {default(1),
                         mpls(2),
                         metro-ethernet(3),
                         biz-internet(4),
                         public-internet(5),
                         lte(6),
                         threeG(7),
                         red(8),
                         green(9),
                         blue(10),
                         gold(11),
                         silver(12),
                         bronze(13),
                         custom1(14),
                         custom2(15),
                         custom3(16),
                         private1(17),
                         private2(18),
                         private3(19),
                         private4(20),
                         private5(21),
                         private6(22)}
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Applications Local Color"
    ::= { probeApplicationsEntry 12 }

-- tagpath /local-exits
probeLocalTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ProbeLocalEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Local-Exits Table"
    ::= { ciscoSdwanProbeMIBObjects 3 }

-- tagpath /local-exits
probeLocalEntry OBJECT-TYPE
    SYNTAX      ProbeLocalEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Local-Exits Table entry"
    INDEX {probeLocalVpnId,
           probeLocalAppType,
           probeLocalAppId,
           probeLocalSubAppId,
           probeLocalInterface}
        ::= { probeLocalTable 1 }

ProbeLocalEntry ::=
    SEQUENCE {
        probeLocalVpnId       Unsigned32,
        probeLocalAppType     String,
        probeLocalAppId       Unsigned32,
        probeLocalSubAppId    Unsigned32,
        probeLocalInterface   String,
        probeLocalApp         String,
        probeLocalLatency     Unsigned32,
        probeLocalLoss        Unsigned32
    }

-- tagpath /local-exits/vpn_id
probeLocalVpnId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Local-Exits VPN ID"
    ::= { probeLocalEntry 1 }

-- tagpath /local-exits/app_type
probeLocalAppType OBJECT-TYPE
    SYNTAX      INTEGER{cxp-app-type-unset(0),
                        cxp-app-type-app-id(1),
                        cxp-app-type-app-grp(2),
                        cxp-app-type-svc-area(3),
                        cxp-app-type-region(4),
                        cxp-app-type-custom-app-grp(5)}
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Local-Exits App Type"
    ::= { probeLocalEntry 2 }

-- tagpath /local-exits/app_id
probeLocalAppId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Local-Exits App ID"
    ::= { probeLocalEntry 3 }

-- tagpath /local-exits/subapp_id
probeLocalSubAppId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Local-Exits Subapp ID"
    ::= { probeLocalEntry 4 }

-- tagpath /local-exits/interface
probeLocalInterface OBJECT-TYPE
    SYNTAX      String(SIZE (1 .. 128))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Local-Exits Interface Name"
    ::= { probeLocalEntry 5 }

-- tagpath /local-exits/application
probeLocalApp OBJECT-TYPE
    SYNTAX      String(SIZE (1 .. 128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Local-Exits App"
    ::= { probeLocalEntry 6 }

-- tagpath /local-exits/latency
probeLocalLatency OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Local-Exits App Type"
    ::= { probeLocalEntry 7 }

-- tagpath /local-exits/loss
probeLocalLoss OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Local-Exits App Type"
    ::= { probeLocalEntry 8 }

-- tagpath /gateway-exits
probeGatewayTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ProbeGatewayEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Gateway Table"
    ::= { ciscoSdwanProbeMIBObjects 4 }

-- tagpath /gateway-exits
probeGatewayEntry OBJECT-TYPE
    SYNTAX      ProbeGatewayEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Gateway Table entry"
    INDEX {probeGatewayVpnId,
           probeGatewayAppType,
           probeGatewayAppId}
        ::= { probeGatewayTable 1 }

ProbeGatewayEntry ::=
    SEQUENCE {
        probeGatewayVpnId       Unsigned32,
        probeGatewayAppType     String,
        probeGatewayAppId       Unsigned32,
        probeGatewaySubAppId    Unsigned32,
        probeGatewayGwSysIp     InetAddressIP,
        probeGatewayApp         String,
        probeGatewayInterface   String,
        probeGatewayLatency     Unsigned32,
        probeGatewayLoss        Unsigned32,
        probeGatewayLocalColor  INTEGER,
        probeGatewayRemoteColor INTEGER
    }

-- tagpath /gateway-exits/vpn_id
probeGatewayVpnId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Application VPN ID"
    ::= { probeGatewayEntry 1 }

-- tagpath /gateway-exits/app_type
probeGatewayAppType OBJECT-TYPE
    SYNTAX      INTEGER{cxp-app-type-unset(0),
                        cxp-app-type-app-id(1),
                        cxp-app-type-app-grp(2),
                        cxp-app-type-svc-area(3),
                        cxp-app-type-region(4),
                        cxp-app-type-custom-app-grp(5)}
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Gateway App Type"
    ::= { probeGatewayEntry 2 }

-- tagpath /gateway-exits/app_id
probeGatewayAppId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Gateway App ID"
    ::= { probeGatewayEntry 3 }

-- tagpath /gateway-exits/subapp_id
probeGatewaySubAppId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "CXP Gateway SubApp ID"
    ::= { probeGatewayEntry 4 }

-- tagpath /gateway-exits/gateway_system_ip
probeGatewayGwSysIp OBJECT-TYPE
    SYNTAX      InetAddressIP
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Gateway Gateway System IP Address"
    ::= { probeGatewayEntry 5 }

-- tagpath /gateway-exits/application
probeGatewayApp OBJECT-TYPE
    SYNTAX      String(SIZE (1 .. 128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Gateway App"
    ::= { probeGatewayEntry 6 }

-- tagpath /gateway-exits/latency
probeGatewayLatency OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Gateway App Latency"
    ::= { probeGatewayEntry 7 }

-- tagpath /gateway-exits/loss
probeGatewayLoss OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Gateway App Loss"
    ::= { probeGatewayEntry 8 }

-- tagpath /gateway-exits/remote_color
probeGatewayRemoteColor OBJECT-TYPE
    SYNTAX      INTEGER {default(1),
                         mpls(2),
                         metro-ethernet(3),
                         biz-internet(4),
                         public-internet(5),
                         lte(6),
                         threeG(7),
                         red(8),
                         green(9),
                         blue(10),
                         gold(11),
                         silver(12),
                         bronze(13),
                         custom1(14),
                         custom2(15),
                         custom3(16),
                         private1(17),
                         private2(18),
                         private3(19),
                         private4(20),
                         private5(21),
                         private6(22)}
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Gateway Remote Color"
    ::= { probeGatewayEntry 9 }

-- tagpath /gateway-exits/local_color
probeGatewayLocalColor OBJECT-TYPE
    SYNTAX      INTEGER {default(1),
                         mpls(2),
                         metro-ethernet(3),
                         biz-internet(4),
                         public-internet(5),
                         lte(6),
                         threeG(7),
                         red(8),
                         green(9),
                         blue(10),
                         gold(11),
                         silver(12),
                         bronze(13),
                         custom1(14),
                         custom2(15),
                         custom3(16),
                         private1(17),
                         private2(18),
                         private3(19),
                         private4(20),
                         private5(21),
                         private6(22)}
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "CXP Gateway Local Color"
    ::= { probeGatewayEntry 10 }

-- ********************************************************************
-- *  Notification Objects
-- ********************************************************************


-- ********************************************************************
-- *  Notifications
-- ********************************************************************


-- ********************************************************************
-- *    Compliance statements
-- ********************************************************************

ciscoSdwanProbeMIBCompliances OBJECT IDENTIFIER
    ::= { ciscoSdwanProbeMIBConform 1 }

ciscoSdwanProbeMIBGroups OBJECT IDENTIFIER
    ::= { ciscoSdwanProbeMIBConform 2 }

ciscoSdwanProbeMIBCompliance MODULE-COMPLIANCE
    STATUS            current
    DESCRIPTION
        "The compliance statement for the SNMP entities
         that implement the ciscoSdwanProbeMIB module."
    MODULE          -- this module
    MANDATORY-GROUPS {
     cSdwanProbeApplicationsGroup,
     cSdwanProbeLocalGroup,
     cSdwanProbeGatewayGroup
    }
    ::= { ciscoSdwanProbeMIBCompliances 1 }

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

cSdwanProbeApplicationsGroup OBJECT-GROUP
    OBJECTS          {
        probeApplicationsApp,
        probeApplicationsExitType,
        probeApplicationsGwSysIp,
        probeApplicationsInterface,
        probeApplicationsLatency,
        probeApplicationsLoss,
        probeApplicationsLocalColor,
        probeApplicationsRemoteColor
                     }
    STATUS           current
    DESCRIPTION
        "This is a collection of entries for cloudexpress applications"
    ::= { ciscoSdwanProbeMIBGroups 1 }

cSdwanProbeLocalGroup OBJECT-GROUP
    OBJECTS          {
        probeLocalApp,
        probeLocalLatency,
        probeLocalLoss
                     }
    STATUS           current
    DESCRIPTION
        "This is a collection of entries for cloudexpress local-exits"
    ::= { ciscoSdwanProbeMIBGroups 2 }

cSdwanProbeGatewayGroup OBJECT-GROUP
    OBJECTS          {
        probeGatewayApp,
        probeGatewayLatency,
        probeGatewayLoss,
        probeGatewayLocalColor,
        probeGatewayRemoteColor
                     }
    STATUS           current
    DESCRIPTION
        "This is a collection of entries for cloudexpress gateway-exits"
    ::= { ciscoSdwanProbeMIBGroups 3 }

END
