--  *****************************************************************
--  DLINKPRIME-L2FDB-MIB.mib : L2 FDB MIB
--
--  Copyright (c) 2014 D-Link Corporation, all rights reserved.
--
--  *****************************************************************
DLINKPRIME-L2FDB-MIB DEFINITIONS ::= BEGIN

	IMPORTS
   		MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,Unsigned32,
   		Integer32
       		FROM SNMPv2-SMI
   		RowStatus,DisplayString,TruthValue,MacAddress
       		FROM SNMPv2-TC
   		MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
       		FROM SNMPv2-CONF
       	ifIndex, InterfaceIndex, InterfaceIndexOrZero
            FROM IF-MIB  
        dot1qFdbId, dot1qStaticUnicastAddress, 
        VlanId, PortList			
    		FROM Q-BRIDGE-MIB    		
        dlinkPrimeCommon		
            FROM DLINK-ID-REC-MIB;
   
    dlinkPrimeL2FdbMIB	MODULE-IDENTITY
   		LAST-UPDATED "201404260000Z"
   		ORGANIZATION "D-Link Corp."
        CONTACT-INFO
            "        D-Link Corporation

             Postal: No. 289, Sinhu 3rd Rd., Neihu District,
                     Taipei City 114, Taiwan, R.O.C
             Tel:     +886-2-66000123
             E-mail: tsd@dlink.com.tw
            "
        DESCRIPTION
            "This MIB module defines objects for L2FDB."
            
        REVISION "201404260000Z"
        DESCRIPTION
            "This is the first version of the MIB file for 'L2FDB'
            functionality."
      ::= { dlinkPrimeCommon 5 } 

-- 
--	MIB OBJECTS     
--      
	dpL2FdbMIBNotifications		OBJECT IDENTIFIER ::= { dlinkPrimeL2FdbMIB 0 }
	dpL2FdbMIBObjects 		OBJECT IDENTIFIER ::= { dlinkPrimeL2FdbMIB 1 }
	dpL2FdbMIBConformance		OBJECT IDENTIFIER ::= { dlinkPrimeL2FdbMIB 2 }


-- -----------------------------------------------------------------------------     
    dpL2FdbGblCtrl			OBJECT IDENTIFIER ::= { dpL2FdbMIBObjects 1 }
    
    dpL2FdbClearCtrl			OBJECT IDENTIFIER ::= { dpL2FdbGblCtrl 1 }
 
    dpL2FdbClearAllMacAddr OBJECT-TYPE
        SYNTAX  INTEGER {
                clear(1),
                noOp(2)
        }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object clears all of the dynamic FDB entries, when set to 'clear'. 
            No action is taken if this object is set to 'noOp'.
            When read, the value 'noOp' is returned."
        ::= { dpL2FdbClearCtrl 1 }  
                         	    
    dpL2FdbAgingTime		OBJECT-TYPE
    	SYNTAX			    Unsigned32 ( 0 | 5..1000000 )
    	UNITS				"second"
    	MAX-ACCESS			read-write
    	STATUS				current
    	DESCRIPTION
    		"Specify the aging time in seconds. 
    		 The valid range is 5 to 1000000 seconds.
    		 The special valie of 0 indicates the ging out function is disabled.
    		 "
    	DEFVAL { 300 }
    	::= {  dpL2FdbGblCtrl 2 }    	    
  
-- -----------------------------------------------------------------------------  	
	dpL2FdbStaticUnicastTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF DpL2FdbStaticUnicastEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "This table contains a list of configuration for 
            static unicast MAC addresses."
        ::= { dpL2FdbMIBObjects 2 }

    dpL2FdbStaticUnicastEntry OBJECT-TYPE
        SYNTAX          DpL2FdbStaticUnicastEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "A table entry represents configuration for a static
            unicast MAC address information."
        INDEX    {         
            dpL2FdbStaticUnicastVlanID,
            dpL2FdbStaticUnicastMacAddr                             
        }
        ::= { dpL2FdbStaticUnicastTable 1 }

    DpL2FdbStaticUnicastEntry ::= SEQUENCE {        
        dpL2FdbStaticUnicastVlanID       VlanId,
        dpL2FdbStaticUnicastMacAddr      MacAddress,                       
        dpL2FdbStaticUnicastPortNum      Integer32,
        dpL2FdbStaticUnicastRowStatus    RowStatus
    }
                                            
    dpL2FdbStaticUnicastVlanID           OBJECT-TYPE
        SYNTAX          VlanId
        MAX-ACCESS      not-accessible
        STATUS      current
        DESCRIPTION
                "The VLAN ID of the entry."
        ::= { dpL2FdbStaticUnicastEntry 1 }
                        
    dpL2FdbStaticUnicastMacAddr            OBJECT-TYPE
        SYNTAX          MacAddress 
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "The MAC address of the entry."
        ::= { dpL2FdbStaticUnicastEntry 2 }  
                
    dpL2FdbStaticUnicastPortNum            OBJECT-TYPE
        SYNTAX          Integer32 
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
            "The port number of the static unicast address. 
            The value of 0 indicates the CPU port.
            The value of -1 indicates mac filter entry with permanentDrop type."
        ::= { dpL2FdbStaticUnicastEntry 3 }
            
    dpL2FdbStaticUnicastRowStatus            OBJECT-TYPE
        SYNTAX          RowStatus 
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
            "This object indicates the RowStatus of this entry."
        ::= { dpL2FdbStaticUnicastEntry 4 }

-- -----------------------------------------------------------------------------  	
	dpL2FdbStaticMulticastTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF DpL2FdbStaticMulticastEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "This table contains a list of configuration for 
            static multicast MAC addresses."
        ::= { dpL2FdbMIBObjects 3 }

    dpL2FdbStaticMulticastEntry OBJECT-TYPE
        SYNTAX          DpL2FdbStaticMulticastEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "A table entry represents configuration for a static
            multicast MAC address information."
        INDEX    {         
            dpL2FdbStaticMulticastVlanID,
            dpL2FdbStaticMulticastMacAddr                             
        }
        ::= { dpL2FdbStaticMulticastTable 1 }

    DpL2FdbStaticMulticastEntry ::= SEQUENCE {        
        dpL2FdbStaticMulticastVlanID       VlanId,
        dpL2FdbStaticMulticastMacAddr      MacAddress,                       
        dpL2FdbStaticMulticastEgressPorts      PortList,
        dpL2FdbStaticMulticastRowStatus    RowStatus
    }
                                            
    dpL2FdbStaticMulticastVlanID           OBJECT-TYPE
        SYNTAX          VlanId
        MAX-ACCESS      not-accessible
        STATUS      current
        DESCRIPTION
                "The VLAN ID of the entry."
        ::= { dpL2FdbStaticMulticastEntry 1 }
                        
    dpL2FdbStaticMulticastMacAddr            OBJECT-TYPE
        SYNTAX          MacAddress 
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "The MAC address of the entry."
        ::= { dpL2FdbStaticMulticastEntry 2 }  
                
    dpL2FdbStaticMulticastEgressPorts          OBJECT-TYPE
        SYNTAX          PortList 
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
            "The port number of the static multicast address." 
        ::= { dpL2FdbStaticMulticastEntry 3 }
            
    dpL2FdbStaticMulticastRowStatus            OBJECT-TYPE
        SYNTAX          RowStatus 
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
            "This object indicates the RowStatus of this entry."
        ::= { dpL2FdbStaticMulticastEntry 4 }
                       	   		
-- -----------------------------------------------------------------------------
	dpL2FdbIfCtrlTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF DpL2FdbIfCtrlEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "This table contains a list of interface-specific configuration for 
            L2 FDB."
        ::= { dpL2FdbMIBObjects 4 }

    dpL2FdbIfCtrlEntry OBJECT-TYPE
        SYNTAX          DpL2FdbIfCtrlEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "An entry represents interface L2 FDB configuration."
        INDEX    { ifIndex }
        ::= { dpL2FdbIfCtrlTable 1 }

    DpL2FdbIfCtrlEntry ::= SEQUENCE {                             
        dpL2FdbIfMacLearningEnabled      TruthValue               
    }
            
      
	dpL2FdbIfMacLearningEnabled OBJECT-TYPE
        SYNTAX          TruthValue
        MAX-ACCESS      read-write 
        STATUS          current
        DESCRIPTION
            "This object indicates whether the MAC-address learning is enabled or not
            on the physical interface."
        ::= { dpL2FdbIfCtrlEntry 1 }        
                

-- -----------------------------------------------------------------------------         	
	dpL2FdbMcastFilterMode OBJECT-TYPE
        SYNTAX      INTEGER {
             forwardAll(1),
             forwardUnregistered(2),
             filterUnregistered(3)
        }
        MAX-ACCESS      read-write 
        STATUS          current
        DESCRIPTION
            "This object indicates the handling method for multicast packets 
            on the corresponding interface."
        ::= { dpL2FdbMIBObjects 5 }        
                

   
--  ***************************************************************************	
--  Conformance
--  ***************************************************************************			   		
	dpL2FdbCompliances OBJECT IDENTIFIER ::= { dpL2FdbMIBConformance 1 }
		
	dpL2FdbCompliance MODULE-COMPLIANCE
		STATUS current
		DESCRIPTION 
			"The compliance statement for entities which implement the 
			DLINKPRIME-L2FDB-MIB."
		MODULE -- this module
		MANDATORY-GROUPS { 
		    dpL2FdbGlobalGroup,
		    dpL2FdbMacAddrTableGroup, 
		    dpL2FdbInterfaceGroup,
		    dpL2FdbMcastFilterModeCfgGroup		   
		}
		::= { dpL2FdbCompliances 1 }
		
	dpL2FdbGroups OBJECT IDENTIFIER ::= { dpL2FdbMIBConformance 2 }
		
	dpL2FdbGlobalGroup OBJECT-GROUP
		OBJECTS {
		    dpL2FdbClearAllMacAddr, 
		    dpL2FdbAgingTime
		}
		STATUS current
		DESCRIPTION 
			"A collection of objects providing the gloal configuration for L2FDB"
		::= { dpL2FdbGroups 1 }

	dpL2FdbMacAddrTableGroup OBJECT-GROUP
		OBJECTS {
		    dpL2FdbStaticUnicastPortNum,
		    dpL2FdbStaticUnicastRowStatus		   		     	   
		}
		STATUS current
		DESCRIPTION 
			"A collection of objects providing the information of MAC-Address-Table for L2FDB"
		::= { dpL2FdbGroups 2 }
	        
	dpL2FdbInterfaceGroup OBJECT-GROUP
		OBJECTS {		        
		        dpL2FdbIfMacLearningEnabled  		        		        		        		        
		}
		STATUS current
		DESCRIPTION 
			"A collection of objects providing the information of Interface Table for L2FDB"
		::= { dpL2FdbGroups 3 }	        
		
		
	dpL2FdbMcastFilterModeCfgGroup OBJECT-GROUP
		OBJECTS {   
		    dpL2FdbMcastFilterMode
		}
		STATUS current
		DESCRIPTION 
			"A collection of objects about the configuration for multicast
			filter mode. 
			"
		::= { dpL2FdbGroups 4 }
			
        	
END

