--  ============================================================================
-- Copyright (C) 2021 by  HUAWEI TECHNOLOGIES. All rights reserved.
-- Description:  The mib is used for configuring the information of the SAC.
-- Reference: 
-- Version: V1.01
-- ============================================================================

	HUAWEI-SAC-MIB DEFINITIONS ::= BEGIN
 
		IMPORTS
			hwDatacomm			
				FROM HUAWEI-MIB			
			OBJECT-GROUP, MODULE-COMPLIANCE			
				FROM SNMPv2-CONF			
			Integer32, Counter64, OBJECT-TYPE, MODULE-IDENTITY			
				FROM SNMPv2-SMI			
			TEXTUAL-CONVENTION			
				FROM SNMPv2-TC;
	
	
		-- 1.3.6.1.4.1.2011.5.25.32.5
		hwSACMIB MODULE-IDENTITY 
			LAST-UPDATED "202101281000Z"		
			ORGANIZATION 
				"Huawei Technologies Co.,Ltd."
			CONTACT-INFO 
				"Huawei Industrial Base
				Bantian, Longgang
				 Shenzhen 518129
				 People's Republic of China
				 Website: http://www.huawei.com
				 Email: support@huawei.com
				"
			DESCRIPTION 
				"The HUAWEI-SAC-MIB contains objects to 
				Manage configuration and Monitor running state 
				for Class Based QoS feature."
                       
            REVISION   "202101281000Z"
            DESCRIPTION    "V1.01, update version"

			REVISION "201608181108Z"		-- August 18, 2016 at 11:08 GMT
			DESCRIPTION 
				"V1.00, Inital version."
			::= { hwQoS 5 }

		
	

		HWInterfaceIndex ::= TEXTUAL-CONVENTION
			DISPLAY-HINT 
				"d"
			STATUS current
			DESCRIPTION 
				"A unique value, greater than zero, for each interface
				or interface sub-layer in the managed system.  It is
				recommended that values are assigned contiguously
				starting from 1.  The value for each interface sub-
				layer must remain constant at least from one re-
				initialization of the entity's network management
				system to the next re-initialization."
			SYNTAX INTEGER

		HWProtocolIndex ::= TEXTUAL-CONVENTION
			DISPLAY-HINT 
				"d"
			STATUS current
			DESCRIPTION 
				"Description."
			SYNTAX INTEGER

	

		-- 1.3.6.1.4.1.2011.5.25.32
		hwQoS OBJECT IDENTIFIER ::= { hwDatacomm 32 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1
		hwArSacObjects OBJECT IDENTIFIER ::= { hwSACMIB 1 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.1
		hwSACStatisticsObjects OBJECT IDENTIFIER ::= { hwArSacObjects 1 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.1.1
		hwSACStatisticsTable OBJECT-TYPE
			SYNTAX SEQUENCE OF HwSACStatisticsEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"hwSACStatisticsTable Table display the  interface's SAC statistics information
				The index of this table is hwSAInterfaceIndex and hwSAProtocolIndex."
			::= { hwSACStatisticsObjects 1 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.1.1.1
		hwSACStatisticsEntry OBJECT-TYPE
			SYNTAX HwSACStatisticsEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"Description."
			INDEX { hwSAInterfaceIndex, hwSAProtocolIndex }
			::= { hwSACStatisticsTable 1 }

		
		HwSACStatisticsEntry ::=
			SEQUENCE { 
				hwSAInterfaceIndex
					HWInterfaceIndex,
				hwSAProtocolIndex
					HWProtocolIndex,
				hwSAInterfaceName
					OCTET STRING,
				hwSAProtocolName
					OCTET STRING,
				hwSAInboundPackets
					Counter64,
				hwSAInboundBytes
					Counter64,
				hwSAInboundRate
					Integer32,
				hwSAOutboundPackets
					Counter64,
				hwSAOutboundBytes
					Counter64,
				hwSAOutboundRate
					Integer32,
				hwSAStatisticReset
					INTEGER
			 }

		-- 1.3.6.1.4.1.2011.5.25.32.5.1.1.1.1.1
		hwSAInterfaceIndex OBJECT-TYPE
			SYNTAX HWInterfaceIndex
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"SA statistics interface index."
			::= { hwSACStatisticsEntry 1 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.1.1.1.2
		hwSAProtocolIndex OBJECT-TYPE
			SYNTAX HWProtocolIndex
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"SA statistics application protocol index."
			::= { hwSACStatisticsEntry 2 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.1.1.1.3
		hwSAInterfaceName OBJECT-TYPE
			SYNTAX OCTET STRING (SIZE (0..255))
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"SA statistics interface name."
			::= { hwSACStatisticsEntry 3 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.1.1.1.4
		hwSAProtocolName OBJECT-TYPE
			SYNTAX OCTET STRING
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"SA statistics application protocol name."
			::= { hwSACStatisticsEntry 4 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.1.1.1.5
		hwSAInboundPackets OBJECT-TYPE
			SYNTAX Counter64
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"SA Statistics total number of packets inbound interface.
				"
			::= { hwSACStatisticsEntry 5 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.1.1.1.6
		hwSAInboundBytes OBJECT-TYPE
			SYNTAX Counter64
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"SA Statistics total number of bytes inbound interface."
			::= { hwSACStatisticsEntry 6 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.1.1.1.7
		hwSAInboundRate OBJECT-TYPE
			SYNTAX Integer32
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"SA statistics of inbound interface interface rate."
			::= { hwSACStatisticsEntry 7 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.1.1.1.8
		hwSAOutboundPackets OBJECT-TYPE
			SYNTAX Counter64
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"SA Statistics total number of packets outbound interface."
			::= { hwSACStatisticsEntry 8 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.1.1.1.9
		hwSAOutboundBytes OBJECT-TYPE
			SYNTAX Counter64
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"SA Statistics total number of bytes outbound interface."
			::= { hwSACStatisticsEntry 9 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.1.1.1.10
		hwSAOutboundRate OBJECT-TYPE
			SYNTAX Integer32
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"SA statistics of outbound interface interface rate."
			::= { hwSACStatisticsEntry 10 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.1.1.1.11
		hwSAStatisticReset OBJECT-TYPE
			SYNTAX INTEGER { reset(1) }
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"Clear SA statistical data in this interface."
			::= { hwSACStatisticsEntry 11 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.2
		hwSACConfigObjects OBJECT IDENTIFIER ::= { hwArSacObjects 2 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.2.1
		hwSACStatisticsConfigTable OBJECT-TYPE
			SYNTAX SEQUENCE OF HwSACStatisticsConfigEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"SAC can only be configed on layer three interface, so this table only shows those interfaces worked on layer three mode.
				The index of this table is hwSACConfigInterfaceIndex."
			::= { hwSACConfigObjects 1 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.2.1.1
		hwSACStatisticsConfigEntry OBJECT-TYPE
			SYNTAX HwSACStatisticsConfigEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"Description."
			INDEX { hwSAConfigInterfaceIndex }
			::= { hwSACStatisticsConfigTable 1 }

		
		HwSACStatisticsConfigEntry ::=
			SEQUENCE { 
				hwSAConfigInterfaceIndex
					HWInterfaceIndex,
				hwSAConfigInterfaceName
					OCTET STRING,
				hwSAConfigEnable
					INTEGER
			 }

		-- 1.3.6.1.4.1.2011.5.25.32.5.1.2.1.1.1
		hwSAConfigInterfaceIndex OBJECT-TYPE
			SYNTAX HWInterfaceIndex
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"SA configer interface index."
			::= { hwSACStatisticsConfigEntry 1 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.2.1.1.2
		hwSAConfigInterfaceName OBJECT-TYPE
			SYNTAX OCTET STRING
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"SA configer interface name."
			::= { hwSACStatisticsConfigEntry 2 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.1.2.1.1.3
		hwSAConfigEnable OBJECT-TYPE
			SYNTAX INTEGER
				{
				enable(1),
				disable(2)
				}
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"enable or disable SA statistical data in this interface."
			::= { hwSACStatisticsConfigEntry 3 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.2
		hwSACComformance OBJECT IDENTIFIER ::= { hwSACMIB 2 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.2.1
		hwSACCompliances OBJECT IDENTIFIER ::= { hwSACComformance 1 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.2.1.1
		hwSACCompliance MODULE-COMPLIANCE
			STATUS current
			DESCRIPTION 
				"Description."
			MODULE -- this module
				MANDATORY-GROUPS { hwSACStatisticsGroup, hwSACStatisticsConfigGroup }
			::= { hwSACCompliances 1 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.2.2
		hwSACObjectsGroups OBJECT IDENTIFIER ::= { hwSACComformance 2 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.2.2.1
		hwSACStatisticsGroup OBJECT-GROUP
			OBJECTS { hwSAInterfaceName, hwSAProtocolName, hwSAInboundPackets, hwSAInboundBytes, hwSAInboundRate, 
				hwSAOutboundPackets, hwSAOutboundBytes, hwSAOutboundRate, hwSAStatisticReset }
			STATUS current
			DESCRIPTION 
				"Description."
			::= { hwSACObjectsGroups 1 }

		
		-- 1.3.6.1.4.1.2011.5.25.32.5.2.2.2
		hwSACStatisticsConfigGroup OBJECT-GROUP
			OBJECTS { hwSAConfigInterfaceName, hwSAConfigEnable }
			STATUS current
			DESCRIPTION 
				"Description."
			::= { hwSACObjectsGroups 2 }

--  ============== Sac trap ==============
      hwSacAggObjects OBJECT IDENTIFIER ::= { hwSACMIB 3 }
      
      hwSacAggTable OBJECT IDENTIFIER ::= { hwSacAggObjects 1 }
      hwSacSessionTable OBJECT IDENTIFIER ::= { hwSacAggObjects 2 }

--  ============== Sac Spec ==============		
	
      hwSacAggTableSpecTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF HwSacAggTableSpecEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "Indicates the attribute of the SAC."
          ::= { hwSacAggTable 1 }
            
      hwSacAggTableSpecEntry OBJECT-TYPE
          SYNTAX HwSacAggTableSpecEntry
          MAX-ACCESS not-accessible
          STATUS current
          DESCRIPTION
                "Indicates the attribute of the SAC aggregation table."
          INDEX  { hwSacAggTableMaxSize }    
          ::= { hwSacAggTableSpecTable 1 }           
    
      HwSacAggTableSpecEntry::= 
          SEQUENCE{
              hwSacAggTableMaxSize
                  Unsigned32
                  }

      hwSacAggTableMaxSize OBJECT-TYPE
            SYNTAX Unsigned32 (0..4294967295)
            MAX-ACCESS accessible-for-notify
            STATUS current
            DESCRIPTION
                "This object indicates the maximum size of SacAggTable."
            ::= { hwSacAggTableSpecEntry 1 }
	
	  hwSacSessionTableSpecTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF HwSacSessionTableSpecEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "Indicates the attribute of the SAC."
          ::= { hwSacSessionTable 1 }
            
      hwSacSessionTableSpecEntry OBJECT-TYPE
          SYNTAX HwSacSessionTableSpecEntry
          MAX-ACCESS not-accessible
          STATUS current
          DESCRIPTION
                "Indicates the attribute of the SAC session table."
          INDEX  { hwSacSessionTableMaxSize }    
          ::= { hwSacSessionTableSpecTable 1 }           
    
      HwSacSessionTableSpecEntry::= 
          SEQUENCE{
              hwSacSessionTableMaxSize
                  Unsigned32
                  }

      hwSacSessionTableMaxSize OBJECT-TYPE
            SYNTAX Unsigned32 (0..4294967295)
            MAX-ACCESS accessible-for-notify
            STATUS current
            DESCRIPTION
                "This object indicates the maximum size of SacSessionTable."
            ::= { hwSacSessionTableSpecEntry 1 }

      hwSacAggTableTraps OBJECT IDENTIFIER ::= { hwSacAggObjects 3 }
      				
         hwAggregationTableMaxExceed NOTIFICATION-TYPE
            OBJECTS {hwSacAggTableMaxSize}
            STATUS current
            DESCRIPTION
                "This notification is generated when the size of SacAggTable exceeds the maximum size."
            ::= { hwSacAggTableTraps 1 }		

         hwAggregationTableMaxExceedClear NOTIFICATION-TYPE
            OBJECTS {hwSacAggTableMaxSize}
            STATUS current
            DESCRIPTION
                "This notification is generated when the size of SacAggTable decreases below the maximum size."
            ::= { hwSacAggTableTraps 2 }	
			
         hwSacSessionTableTraps OBJECT IDENTIFIER ::= { hwSacAggObjects 4 }
      				
         hwSessionTableMaxExceed NOTIFICATION-TYPE
            OBJECTS {hwSacSessionTableMaxSize}
            STATUS current
            DESCRIPTION
                "This notification is generated when the size of SacSessionTable exceeds the maximum size."
            ::= { hwSacSessionTableTraps 1 }		

         hwSessionTableMaxExceedClear NOTIFICATION-TYPE
            OBJECTS {hwSacSessionTableMaxSize}
            STATUS current
            DESCRIPTION
                "This notification is generated when the size of SacSessionTable decreases below the maximum size."
            ::= { hwSacSessionTableTraps 2 }		
            
--  ============== conformance information ==============
        hwSacAggConformance OBJECT IDENTIFIER ::= { hwSACMIB 4 }
        
        
        hwSacAggCompliances OBJECT IDENTIFIER ::= { hwSacAggConformance 1 }
        hwSacAggCompliance MODULE-COMPLIANCE
               STATUS      current
               DESCRIPTION
                   "The compliance statement for systems supporting 
                the this module."

               MODULE      -- this module
               MANDATORY-GROUPS    { hwSacAggTableGroup, hwSacAggTableTrapsGroup, hwSacSessionTableGroup, hwSacSessionTableTrapsGroup }  
                                               
              ::= { hwSacAggCompliances 1 }  
              
       
        --  ============== groups ==============  
        hwSacAggGroups OBJECT IDENTIFIER ::= { hwSacAggConformance 2 } 
        
        hwSacAggTableGroup OBJECT-GROUP
            OBJECTS { 
                hwSacAggTableMaxSize 
                    }            
            STATUS current
            DESCRIPTION 
                "The Sac AggTable group."
            ::= { hwSacAggGroups 1 }

                    
        hwSacAggTableTrapsGroup NOTIFICATION-GROUP
            NOTIFICATIONS {
                hwAggregationTableMaxExceed,hwAggregationTableMaxExceedClear
                    }            
            STATUS current
            DESCRIPTION 
                "The Sac Traps group."
            ::= { hwSacAggGroups 2 }
			
        hwSacSessionTableGroup OBJECT-GROUP
            OBJECTS { 
                hwSacSessionTableMaxSize 
                    }            
            STATUS current
            DESCRIPTION 
                "The Sac Session Table group."
            ::= { hwSacAggGroups 3 }

                    
        hwSacSessionTableTrapsGroup NOTIFICATION-GROUP
            NOTIFICATIONS {
                hwSessionTableMaxExceed,hwSessionTableMaxExceedClear
                    }            
            STATUS current
            DESCRIPTION 
                "The Sac Traps group."
            ::= { hwSacAggGroups 4 }              
          	
	
	END

--
-- HUAWEI-SAC-MIB.mib
--
