-- ZyXEL Communications Corporation
-- Private Enterprise MIB definition 
  
-- This file describes the ZyXEL Communications Corporation Enterprise MIB.
-- It contains ZyXEL products OIDs, and common managed objects.

-- ZYXEL-PIM-MIB.mib
 

ZYXEL-PIM-MIB DEFINITIONS ::= BEGIN

    IMPORTS
	OBJECT-TYPE
		FROM SNMPv2-SMI			-- RFC2578	
		
	MODULE-IDENTITY
		FROM SNMPv2-SMI
	
	RowStatus, MacAddress
		FROM SNMPv2-TC			-- RFC2579
	
	PortList
		FROM  Q-BRIDGE-MIB
		
	IpAddress
		FROM SNMPv2-SMI  
		
	InetAddressType, InetAddress
		FROM INET-ADDRESS-MIB		-- RFC2851	

	EnabledStatus
		FROM  P-BRIDGE-MIB 
		
	DisplayString                                          
	  	FROM SNMPv2-TC
		
	dot1dBasePort
       	FROM BRIDGE-MIB

	esMgmt			
		FROM ZYXEL-ES-SMI;		

	zyxelPim MODULE-IDENTITY
		LAST-UPDATED	"202201010000Z"    
		ORGANIZATION 	"Enterprise Solution ZyXEL"     
		CONTACT-INFO
			""	   
		DESCRIPTION
			"The subtree for PIM "
		::= { esMgmt 125 }
	
	zyxelPimSetup 	OBJECT IDENTIFIER ::= { zyxelPim 1 }	
--	zyxelPimStatus	OBJECT IDENTIFIER ::= { zyxelPim 2 }	

--
--
--  125.zyxelPim
--
--

--		zyxelPimSetup     

--	PIM general setup             
		zyPimState OBJECT-TYPE
        SYNTAX  	EnabledStatus
        MAX-ACCESS  read-write
        STATUS  	current
        DESCRIPTION
		"To configure PIM service."
		::= { zyxelPimSetup 1 }

		zyPimHelloInterval OBJECT-TYPE
        SYNTAX  	INTEGER
        MAX-ACCESS  read-write
        STATUS  	current
        DESCRIPTION
		"Set PIM hello interval,<30-18724> seconds"
		::= { zyxelPimSetup 2 }

		zyPimSptThreshold OBJECT-TYPE
        SYNTAX  	INTEGER
        MAX-ACCESS  read-write
        STATUS  	current
        DESCRIPTION
		"Specifies the threshold moving to the shortest-path tree.interval-sec: Every 10~20000 seconds to check (*,G) is need to moving SPT, infinity: Never moving to the SPT"
		::= { zyxelPimSetup 3 }

		zyPimSsmDefaultState OBJECT-TYPE
		SYNTAX INTEGER {
			none(0),
			enable(1)
		} 
		MAX-ACCESS  read-write
		STATUS  	current
		DESCRIPTION
		"To configure Source Specific Multicast (SSM) service. To configure default SSM group range as 232.0.0.0/8"
		::= { zyxelPimSetup 4 } 
	
		zyPimSsmRange OBJECT-TYPE
        SYNTAX  	IpAddress
        MAX-ACCESS  read-write
        STATUS  	current
        DESCRIPTION
		"To configure group ranges for SSM"
		::= { zyxelPimSetup 5 }

		zyPimSsmRangeMaskBits OBJECT-TYPE
        SYNTAX  	INTEGER
        MAX-ACCESS  read-write
        STATUS  	current
        DESCRIPTION
		"To configure group ranges mask for SSM,<mask-bit>: 4~32"
		::= { zyxelPimSetup 6 }     
				
--	PIM interface table  	
		zyxelPimInterfaceTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelPimInterfaceEntry
        MAX-ACCESS  not-accessible
        STATUS  	current
        DESCRIPTION
        "The table contains PIM interface configuration."
        ::= { zyxelPimSetup 7 }
        
		zyxelPimInterfaceEntry OBJECT-TYPE
        SYNTAX		ZyxelPimInterfaceEntry
        MAX-ACCESS	not-accessible
        STATUS		current
        DESCRIPTION    	
		"An entry contains PIM interface configuration. "
        INDEX  { zyPimInterfaceIpAddress, zyPimInterfaceIpMaskBits}
        ::= { zyxelPimInterfaceTable 1 }              

      	ZyxelPimInterfaceEntry ::=
		SEQUENCE {
        	zyPimInterfaceIpAddress	   IpAddress, 
        	zyPimInterfaceIpMaskBits   INTEGER,
        	zyPimInterfacePimMode	   INTEGER
           }

        zyPimInterfaceIpAddress OBJECT-TYPE
        SYNTAX  	IpAddress
        MAX-ACCESS  not-accessible
        STATUS  	current
        DESCRIPTION
        "The primary IP address of this router on this PIM interface.  "
        ::= { zyxelPimInterfaceEntry 1 }   

        zyPimInterfaceIpMaskBits OBJECT-TYPE
        SYNTAX  	INTEGER
        MAX-ACCESS  not-accessible
        STATUS  	current
        DESCRIPTION
        "The primary IP address mask of this router on this PIM interface.  "
        ::= { zyxelPimInterfaceEntry 2 }  
                
       	zyPimInterfacePimMode OBJECT-TYPE
        SYNTAX INTEGER {
			none(0),
			sparseMode(1),
			denseMode(2)
		}  
        
        MAX-ACCESS  read-write
        STATUS  	current
        DESCRIPTION
        "Enable PIM mode."
        ::= { zyxelPimInterfaceEntry 3 }    
        
--	PIM BSR candidate table   
     	zyPimBsrCandidateMaxNumberOfRules OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"The table contains PIM bsr candidate configuration."
        ::= { zyxelPimSetup 8 }

    	zyxelPimBsrCandidateTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelPimBsrCandidateEntry
        MAX-ACCESS  not-accessible
        STATUS  	current
        DESCRIPTION
        "The table contains PIM interface configuration."
        ::= { zyxelPimSetup 9 }  
           
		zyxelPimBsrCandidateEntry OBJECT-TYPE
        SYNTAX		ZyxelPimBsrCandidateEntry
        MAX-ACCESS	not-accessible
        STATUS		current
        DESCRIPTION    	
		"An entry contains PIM interface configuration. "
        INDEX  { zyPimBsrCandidateIpAddress}
        ::= { zyxelPimBsrCandidateTable 1 }              

      	ZyxelPimBsrCandidateEntry ::=
		SEQUENCE {
        	zyPimBsrCandidateIpAddress	   IpAddress,  
        	zyPimBsrCandidatePriority      INTEGER,
			zyPimBsrCandidateInterval      INTEGER,
			zyPimBsrCandidateHashMaskBits  INTEGER,
			zyPimBsrCandidateRowStatus     RowStatus
    	
           }

        zyPimBsrCandidateIpAddress OBJECT-TYPE
        SYNTAX  	IpAddress
        MAX-ACCESS  not-accessible
        STATUS  	current
        DESCRIPTION
        "Route domain IP address"
        ::= { zyxelPimBsrCandidateEntry 1 }   
		
		zyPimBsrCandidatePriority OBJECT-TYPE
        SYNTAX  	INTEGER
        MAX-ACCESS  read-write
        STATUS  	current
        DESCRIPTION
		"BSR candidate priority, <0-255> Bigger value means higher priority"
		::= { zyxelPimBsrCandidateEntry 2 } 
		
		zyPimBsrCandidateInterval OBJECT-TYPE
        SYNTAX  	INTEGER
        MAX-ACCESS  read-write
        STATUS  	current
        DESCRIPTION
		"BSR candidate interval, <10-26214> Seconds"
		::= { zyxelPimBsrCandidateEntry 3 } 
		
		zyPimBsrCandidateHashMaskBits OBJECT-TYPE
        SYNTAX  	INTEGER
        MAX-ACCESS  read-write
        STATUS  	current
        DESCRIPTION
		"BSR candidate hash mask length, <0-32> Hash mask lengths"
		::= { zyxelPimBsrCandidateEntry 4 } 

		zyPimBsrCandidateRowStatus OBJECT-TYPE
        SYNTAX  	RowStatus
        MAX-ACCESS  read-create
        STATUS  	current
        DESCRIPTION
		"BSR candidate setup"
		::= { zyxelPimBsrCandidateEntry 5 } 

--	PIM RP candidate table     
     	zyPimRpCandidateMaxNumberOfRules OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"The table contains PIM bsr candidate configuration."
        ::= { zyxelPimSetup 10 }
             
		zyxelPimRpCandidateTable OBJECT-TYPE
        SYNTAX		SEQUENCE OF ZyxelPimRpCandidateEntry
        MAX-ACCESS  not-accessible
        STATUS  	current
        DESCRIPTION
        "The table contains PIM rp candidate configuration. "
        ::= { zyxelPimSetup 11 }
        
		zyxelPimRpCandidateEntry OBJECT-TYPE
        SYNTAX		ZyxelPimRpCandidateEntry
        MAX-ACCESS	not-accessible
        STATUS		current
        DESCRIPTION    	
		"An entry contains PIM rp candidate configuration. "
        INDEX          	{ zyPimRpCandidateIpAddress }
        ::= { zyxelPimRpCandidateTable 1 }              

      	ZyxelPimRpCandidateEntry ::=
		SEQUENCE { 
        	        zyPimRpCandidateIpAddress   IpAddress,
					zyPimRpCandidatePriority    INTEGER,
					zyPimRpCandidateInterval    INTEGER,
					zyPimRpCandidateRowStatus   RowStatus
           }        
        
		zyPimRpCandidateIpAddress OBJECT-TYPE
        SYNTAX  	IpAddress
        MAX-ACCESS  not-accessible
        STATUS  	current
        DESCRIPTION
		"PIM RP candidate IP address"
		::= { zyxelPimRpCandidateEntry 1 }    

		zyPimRpCandidatePriority OBJECT-TYPE
        SYNTAX  	INTEGER
        MAX-ACCESS  read-write
        STATUS  	current
        DESCRIPTION
		"PIM RP candidate priority, <0-255> Smaller value means higher priority"
		::= { zyxelPimRpCandidateEntry 2 }  		
		
		zyPimRpCandidateInterval OBJECT-TYPE
        SYNTAX  	INTEGER
        MAX-ACCESS  read-write
        STATUS  	current
        DESCRIPTION
		"PIM RP candidate interval, <10-16383> Seconds"
		::= { zyxelPimRpCandidateEntry 3 } 

		zyPimRpCandidateRowStatus OBJECT-TYPE
        SYNTAX  	RowStatus
        MAX-ACCESS  read-create
        STATUS  	current
        DESCRIPTION
		"PIM RP candidate setup"
		::= { zyxelPimRpCandidateEntry 4 } 

--	PIM RP candidate group table   
		zyPimRpCandidateGroupMaxNumberOfRules OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"The maximum number of candidate PIM RP group entries that can be created."
        ::= { zyxelPimSetup 12 }
                       
		zyxelPimRpCandidateGroupTable OBJECT-TYPE
        SYNTAX		SEQUENCE OF ZyxelPimRpCandidateGroupEntry
        MAX-ACCESS  not-accessible
        STATUS  	current
        DESCRIPTION
        "The table contains PIM rp candidate group configuration. "
        ::= { zyxelPimSetup 13 }
        
		zyxelPimRpCandidateGroupEntry OBJECT-TYPE
        SYNTAX		ZyxelPimRpCandidateGroupEntry
        MAX-ACCESS	not-accessible
        STATUS		current
        DESCRIPTION    	
		"An entry contains PIM rp candidate group configuration. "
        INDEX          	{ zyPimRpCandidateGroupIpAddress, zyPimRpCandidateGroupIpMaskBits}
        ::= { zyxelPimRpCandidateGroupTable 1 }              

      	ZyxelPimRpCandidateGroupEntry ::=
		SEQUENCE {
        	zyPimRpCandidateGroupIpAddress	IpAddress,
        	zyPimRpCandidateGroupIpMaskBits	INTEGER,        	  
        	zyPimRpCandidateGroupRowStatus	RowStatus
           }

        zyPimRpCandidateGroupIpAddress OBJECT-TYPE
        SYNTAX  	IpAddress 
        MAX-ACCESS  not-accessible

        STATUS  	current
        DESCRIPTION
        "RP candidate for being RP of complete multicast group"
        ::= { zyxelPimRpCandidateGroupEntry 1 }
        
        zyPimRpCandidateGroupIpMaskBits OBJECT-TYPE
        SYNTAX  	INTEGER 
        MAX-ACCESS  not-accessible
        STATUS  	current
        DESCRIPTION
        "Mask for group address."
        ::= { zyxelPimRpCandidateGroupEntry 2 }    
        
        zyPimRpCandidateGroupRowStatus OBJECT-TYPE
        SYNTAX  	RowStatus
        MAX-ACCESS  read-create
        STATUS  	current
        DESCRIPTION
        "RP candidate group index"
        ::= { zyxelPimRpCandidateGroupEntry 3 }  
	
END 
