-- *******************************************************************
-- Juniper enterprise specific Chassis High Availability objects MIB.
--
-- Copyright (c) 2020, Juniper Networks, Inc.
-- All rights reserved.
--
-- The contents of this document are subject to change without notice.
-- *******************************************************************

    JUNIPER-CHASSIS-HIGH-AVAILABILITY-MIB DEFINITIONS ::= BEGIN

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

        TEXTUAL-CONVENTION, DisplayString
            FROM SNMPv2-TC

        jnxJsChassisHA
            FROM JUNIPER-JS-SMI;


    jnxJsChassisHAMIB  MODULE-IDENTITY
        LAST-UPDATED  "202003170000Z"
        ORGANIZATION  "Juniper Networks, Inc."
        CONTACT-INFO
            "Juniper Technical Assistance Center
             Juniper Networks, Inc.
             1133 Innovation Way
             Sunnyvale, CA 94089

             E-mail: support@juniper.net
             HTTP://www.juniper.net"
        DESCRIPTION
            "Chassis High Availability is concerned with ensuring minimal disruption to
             services in case of a failover. If one of the chassis in
             a High Availability environment fails, the other chassis takes over the
	     function of the failed chassis with minimal service interruption.
             This module defines the objects pertaining to Chassis High Availability."

        REVISION      "202003170000Z"
        DESCRIPTION   "Creation Date"
    ::= { jnxJsChassisHA 1 }


    jnxJsChassisHANotifications OBJECT IDENTIFIER ::=
                                     { jnxJsChassisHAMIB 0 }
    jnxJsChassisHATrapObjects   OBJECT IDENTIFIER ::=
                                     { jnxJsChassisHAMIB 1 }

    -- ******************************************************************
    -- definition of Chassis High Availability related traps and objects.
    -- ******************************************************************

    jnxJsChHASwitchover NOTIFICATION-TYPE
        OBJECTS { jnxJsChHASwitchoverInfoServicesRedundancyGroup,
                  jnxJsChHASwitchoverInfoNodeId,
                  jnxJsChHASwitchoverInfoPreviousState,
                  jnxJsChHASwitchoverInfoCurrentState,
                  jnxJsChHASwitchoverInfoReason }
        STATUS              current
        DESCRIPTION
            "Notification to signal switchover/failover."
        ::= { jnxJsChassisHANotifications 1 }

    -- ***************************************************************
    -- definition of a trap that notifies changes in HA
    -- peer link status.
    -- ***************************************************************

    jnxJsChHAPeerLinkTrap  NOTIFICATION-TYPE
        OBJECTS { jnxJsChHAPeerLinkTrapName,
                  jnxJsChHAPeerLinkTrapState,
                  jnxJsChHAPeerLinkTrapSeverity,
                  jnxJsChHAPeerLinkTrapStateReason }
        STATUS              current
        DESCRIPTION
            "Notification to signal peer link status."

        ::= { jnxJsChassisHANotifications 2 }

    -- ***************************************************************
    -- definition of a trap that notifies changes in HA health status
    -- ***************************************************************

    jnxJsChHANodeHealthStatus NOTIFICATION-TYPE
        OBJECTS { jnxJsChHANodeHealthStatusNodeID,
                  jnxJsChHANodeHealthStatusSeverity,
                  jnxJsChHANodeHealthStatusReason }
        STATUS              current
        DESCRIPTION
            "Notification to signal node health status."

        ::= { jnxJsChassisHANotifications 3 }

    -- ***************************************************************
    -- definition of a trap that notifies changes in L3 HA peer status
    -- ***************************************************************

    jnxJsChHAPeerBfdTrap NOTIFICATION-TYPE
        OBJECTS { jnxJsChHAPeerID,
                  jnxJsChHAPeerBfdSeverity,
                  jnxJsChHAPeerBfdReason }
        STATUS              current
        DESCRIPTION
            "Notification to signal HA peer status change."

        ::= { jnxJsChassisHANotifications 4 }

    -- ***************************************************************
    -- definition of a trap that notifies changes in HA health status
    -- ***************************************************************

    jnxJsChHASrgHealthStatus NOTIFICATION-TYPE
        OBJECTS { jnxJsChHASrgHealthStatusNodeID,
	          jnxJsChHASrgHealthStatusServicesRedundancyGroup,
		  jnxJsChHASrgHealthStatusReason }
	STATUS              current
	DESCRIPTION
	    "Notification to signal HA SRG health status change."

	::= { jnxJsChassisHANotifications 5 }

    -- ****************************************************************************
    -- definition of a trap that notifies HA SRG Node activenss enforcement failure
    -- ****************************************************************************

    jnxJsChHASrgActEnfFlrTrap NOTIFICATION-TYPE
        OBJECTS { jnxJsChHASrgActEnfFlrTrapSrgID,
                  jnxJsChHASrgActEnfFlrTrapNodeID,
                  jnxJsChHASrgActEnfFlrTrapCurrentState }
        STATUS                current
        DESCRIPTION
            "Notification to signal HA SRG Node activeness enforcement failure."

        ::= { jnxJsChassisHANotifications 6 }

    -- ***************************************************************
    -- definition of a trap that notifies changes in HA
    -- peer ICD link status.
    -- ***************************************************************

    jnxJsChHAPeerICDLinkTrap  NOTIFICATION-TYPE
        OBJECTS { jnxJsChHAPeerICDLinkTrapName,
                  jnxJsChHAPeerICDLinkTrapState,
                  jnxJsChHAPeerICDLinkTrapSeverity,
                  jnxJsChHAPeerICDLinkTrapStateReason }
        STATUS              current
        DESCRIPTION
            "Notification to signal peer ICD link status."

        ::= { jnxJsChassisHANotifications 7 }

    jnxJsChHASwitchoverInfoServicesRedundancyGroup OBJECT-TYPE

        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object contains identification of services redundancy
             group that switched over."
        ::= { jnxJsChassisHATrapObjects 1 }

    jnxJsChHASwitchoverInfoNodeId OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object contains node identification information
             where the switchover occured."
        ::= { jnxJsChassisHATrapObjects 2 }

    jnxJsChHASwitchoverInfoPreviousState OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object contains the state of HA system
             before the occurance of switchover."
        ::= { jnxJsChassisHATrapObjects 3 }

    jnxJsChHASwitchoverInfoCurrentState OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object contains the state of HA system
             after the occurance of switchover."
        ::= { jnxJsChassisHATrapObjects 4 }

    jnxJsChHASwitchoverInfoReason OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object contains the cause for switchover."
        ::= { jnxJsChassisHATrapObjects 5 }

    jnxJsChHAPeerLinkTrapName OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object contains the name of the peer link
             that changed its state."
        ::= { jnxJsChassisHATrapObjects 6 }

    jnxJsChHAPeerLinkTrapState OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object contains the state of the peer link;
             whether it is UP or DOWN."
        ::= { jnxJsChassisHATrapObjects 7 }

    jnxJsChHAPeerLinkTrapSeverity OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object reflects the severity;
             whether it is minor or major."
        ::= { jnxJsChassisHATrapObjects 8 }

    jnxJsChHAPeerLinkTrapStateReason OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object contains the reason why the peer link state
             changed."
        ::= { jnxJsChassisHATrapObjects 9 }

    jnxJsChHANodeHealthStatusNodeID OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object contains identification of node,
             in which the event occured."
        ::= { jnxJsChassisHATrapObjects 10 }

    jnxJsChHANodeHealthStatusSeverity OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object reflects the severity;
             whether it is minor or major."
        ::= { jnxJsChassisHATrapObjects 11 }

    jnxJsChHANodeHealthStatusReason OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object contains ha health status reason."
        ::= { jnxJsChassisHATrapObjects 12 }

    jnxJsChHAPeerID OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object contains identification of peer,
             in which the event occured."
        ::= { jnxJsChassisHATrapObjects 13 }

    jnxJsChHAPeerBfdSeverity OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object reflects the severity;
             whether it is minor or major."
        ::= { jnxJsChassisHATrapObjects 14 }

    jnxJsChHAPeerBfdReason OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object contains HA peer BFD down reason."
        ::= { jnxJsChassisHATrapObjects 15 }

    jnxJsChHASrgHealthStatusNodeID OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
	    "This object contains identification of node,
	     in which the event occured."
        ::= { jnxJsChassisHATrapObjects 16 }

     jnxJsChHASrgHealthStatusServicesRedundancyGroup OBJECT-TYPE
         SYNTAX      DisplayString
	 MAX-ACCESS  accessible-for-notify
	 STATUS      current
	 DESCRIPTION
	     "This object contains identification of SRG,
	      in which the event occured."
	 ::= { jnxJsChassisHATrapObjects 17 }

      jnxJsChHASrgHealthStatusReason OBJECT-TYPE
          SYNTAX      DisplayString
	  MAX-ACCESS  accessible-for-notify
	  STATUS      current
	  DESCRIPTION
	      "This object contains the reason for,
	       SRG health status change."
	  ::= { jnxJsChassisHATrapObjects 18 }

       jnxJsChHASrgActEnfFlrTrapSrgID OBJECT-TYPE
          SYNTAX DisplayString
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
              "This object contains identification of SRG,
               in which the activeness enforcement failure event occured."
          ::= { jnxJsChassisHATrapObjects 19 }

      jnxJsChHASrgActEnfFlrTrapNodeID OBJECT-TYPE
          SYNTAX DisplayString
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
              "This object contains identification of node,
               in which the activeness enforcement failure event occured."
          ::= { jnxJsChassisHATrapObjects 20 }

      jnxJsChHASrgActEnfFlrTrapCurrentState OBJECT-TYPE
          SYNTAX DisplayString
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
              "This object contains the current state
               when the activeness enforcement failure event occured."
          ::= { jnxJsChassisHATrapObjects 21 }

    jnxJsChHAPeerICDLinkTrapName OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object contains the name of the peer ICD link
             that changed its state."
        ::= { jnxJsChassisHATrapObjects 22 }

    jnxJsChHAPeerICDLinkTrapState OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object contains the state of the peer ICD link;
             whether it is UP or DOWN."
        ::= { jnxJsChassisHATrapObjects 23 }

    jnxJsChHAPeerICDLinkTrapSeverity OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object reflects the severity;
             whether it is minor or major."
        ::= { jnxJsChassisHATrapObjects 24 }

    jnxJsChHAPeerICDLinkTrapStateReason OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This object contains the reason why the peer ICD link state
             changed."
        ::= { jnxJsChassisHATrapObjects 25 }

END
