	
	TPLINK-L2BRIDGE-MIB DEFINITIONS ::= BEGIN
       
       IMPORTS
		OBJECT-TYPE,MODULE-IDENTITY,
		NOTIFICATION-TYPE
          	  	    FROM SNMPv2-SMI
	   TPRowStatus
				FROM TPLINK-TC-MIB 
		DisplayString 
				FROM SNMPv2-TC 
            tplinkMgmt
				FROM TPLINK-MIB;
          	  	          		
	    tplinkl2BridgeMIB MODULE-IDENTITY
		LAST-UPDATED  "201212130000Z"
		ORGANIZATION  "TP-LINK"
		CONTACT-INFO  "www.tplink.com"
		DESCRIPTION
			 "This MIB module contain a collection of managed objects
			  for l2 table address."

		REVISION    "201212130000Z"
		DESCRIPTION
			"Initial version of this MIB module."
		::= { tplinkMgmt 10 }



		
		tplinkl2BridgeMIBObjects		OBJECT IDENTIFIER	::= { tplinkl2BridgeMIB 1 }
		tplinkl2BridgeNotifications		OBJECT IDENTIFIER	::= { tplinkl2BridgeMIB 2 }

		tpl2BridgeManageStaticAddrCtrl	  	OBJECT IDENTIFIER ::= {tplinkl2BridgeMIBObjects 1}
        tpl2BridgeManageDynAddrCtrl 			OBJECT IDENTIFIER ::= {tplinkl2BridgeMIBObjects 2}
        tpl2BridgeManageFilterAddrCtrl 		OBJECT IDENTIFIER ::= {tplinkl2BridgeMIBObjects 3}
		tpl2BridgeManageVlanSecurityCtrl 		OBJECT IDENTIFIER ::= {tplinkl2BridgeMIBObjects 4}
		tpl2BridgeManageNotificationCtrl 		OBJECT IDENTIFIER ::= {tplinkl2BridgeMIBObjects 5}


        fdbDynMacNew NOTIFICATION-TYPE
        	OBJECTS
        	{   
        		tpl2BridgeManageDynPort	
        	}
        	STATUS current
        	DESCRIPTION 
        		"The switch has learned a new dynamic address."         	 
            ::= { tplinkl2BridgeNotifications 1}        
            
        fdbStaticMacNew NOTIFICATION-TYPE
        	OBJECTS
        	{   
        		tpl2BridgeManageStaticPort
           	}
        	STATUS current
        	DESCRIPTION 
        		"The switch has learned a new static address."         	 
            ::= { tplinkl2BridgeNotifications 2 } 
            
        fdbFilterMacNew NOTIFICATION-TYPE
        	OBJECTS
        	{   
        		tpl2BridgeManageFilterVlanId
           	}
        	STATUS current
        	DESCRIPTION 
        		"The switch has learned a new filter address."         	 
            ::= { tplinkl2BridgeNotifications 3 }     
    

            
        fdbMacTableFull NOTIFICATION-TYPE
        	OBJECTS
        	{
        		tpl2BridgeManageStaticPort			
        	}
        	STATUS current
        	DESCRIPTION 
        		"The switch's Address Table is full!"         	 
            ::= { tplinkl2BridgeNotifications 4 }  
            
        fdbMacMaxLearnedNumExceed NOTIFICATION-TYPE
        	OBJECTS
        	{
        		tpl2BridgeManageStaticPort		
        	}
        	STATUS current
        	DESCRIPTION 
        		"The l2BridgeManageStaticPort has learned the maximum number of address that it can learn."         	 
            ::= { tplinkl2BridgeNotifications 5 }      
            
        fdbMacLearnModeChange NOTIFICATION-TYPE
        	OBJECTS
        	{
      			tpl2BridgeManageStaticPort		
        	}
        	STATUS current
        	DESCRIPTION 
        		"The l2BridgeManageDynPort has opened its portSecurity, and changes its learning mode."         	 
            ::= { tplinkl2BridgeNotifications 6 }  


        
        
        
        
        
        
        
        
        tpl2BridgeManageStaticAddrCtrlTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF Tpl2BridgeManageStaticAddrCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "A list of static mac address entries."
              ::= { tpl2BridgeManageStaticAddrCtrl 1 }
        
        tpl2BridgeManageStaticAddrCtrlEntry OBJECT-TYPE
              SYNTAX  Tpl2BridgeManageStaticAddrCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "   The static address can be added or removed manually, independent of the aging time.
                       In the stable networks, the static MAC address entries can facilitate the switch to 
                       reduce broadcast packets and enhance the efficiency of packets forwarding remarkably."
              INDEX   { tpl2BridgeManageStaticMac,tpl2BridgeManageStaticVlanId }
              ::= { tpl2BridgeManageStaticAddrCtrlTable 1 }
              
              
        Tpl2BridgeManageStaticAddrCtrlEntry ::=
              SEQUENCE {
                  tpl2BridgeManageStaticMac
                    OCTET STRING, 
                  tpl2BridgeManageStaticVlanId
                  	INTEGER,
                  tpl2BridgeManageStaticPort
                    OCTET STRING,
                  tpl2BridgeManageStaticStatus
                  	TPRowStatus
              }
              
         tpl2BridgeManageStaticMac OBJECT-TYPE
              SYNTAX  OCTET STRING  
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "The static MAC Address"
              ::= { tpl2BridgeManageStaticAddrCtrlEntry 1 }
            
         tpl2BridgeManageStaticVlanId  OBJECT-TYPE
             SYNTAX  INTEGER(1..4094)
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "The corresponding VLAN ID of the MAC address."
              ::= { tpl2BridgeManageStaticAddrCtrlEntry 2 }
           
	   tpl2BridgeManageStaticPort  OBJECT-TYPE
	     SYNTAX  OCTET STRING  
	      MAX-ACCESS  read-create
	      STATUS  current
	      DESCRIPTION
	              "The corresponding Port number of the MAC address."
	      ::= { tpl2BridgeManageStaticAddrCtrlEntry 3 }

	      
	  tpl2BridgeManageStaticStatus  OBJECT-TYPE

		  SYNTAX  TPRowStatus  
	      MAX-ACCESS  read-create
	      STATUS  current
	      DESCRIPTION
	             "  The following values are states:
                     these values may be used as follow:
                     
                     active(1),if the entry is being used.
                     createAndGo(4),creat a new entry
                     destroy(6),destory the entry."
	      ::= { tpl2BridgeManageStaticAddrCtrlEntry 4 }
	      
	    
        
       tpl2BridgeManageDynAddrCtrlAgingTime OBJECT-TYPE
	       SYNTAX   INTEGER(0..630)
	       MAX-ACCESS   read-write
	       STATUS   current
	       DESCRIPTION
               "Configure aging time for the dynamic address.Set 0 to disable auto aging."
		::= { tpl2BridgeManageDynAddrCtrl 1}
       
       tpl2BridgeManageDynAddrCtrlTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF Tpl2BridgeManageDynAddrCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "A list of dynamic MAC address entries."
              ::= { tpl2BridgeManageDynAddrCtrl 2 }
             
        tpl2BridgeManageDynAddrCtrlEntry OBJECT-TYPE
              SYNTAX  Tpl2BridgeManageDynAddrCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "  The dynamic address can be generated by the auto-learning mechanism of the switch. 
                      The Dynamic Address Table can update automatically by auto-learning or aging out the 
                      MAC address."
              INDEX   {tpl2BridgeManageDynMac,tpl2BridgeManageDynVlanId }
              ::= { tpl2BridgeManageDynAddrCtrlTable 1 }
              
               
        Tpl2BridgeManageDynAddrCtrlEntry ::=
              SEQUENCE {
                  tpl2BridgeManageDynMac
                      OCTET STRING, 
                  tpl2BridgeManageDynVlanId
                  	INTEGER,
                  tpl2BridgeManageDynPort
                      OCTET STRING,
                  tpl2BridgeManageDynAgeStatus
                      	INTEGER,
                  tpl2BridgeManageDynStatus
                  	INTEGER
              }
              
         tpl2BridgeManageDynMac OBJECT-TYPE
              SYNTAX  OCTET STRING  
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "The dynamic MAC Address."
              ::= { tpl2BridgeManageDynAddrCtrlEntry 1 }
            
         tpl2BridgeManageDynVlanId  OBJECT-TYPE
             SYNTAX  INTEGER(1..4094)
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Displays the corresponding VLAN ID of the MAC address."
              ::= { tpl2BridgeManageDynAddrCtrlEntry 2 }
           
	  tpl2BridgeManageDynPort  OBJECT-TYPE
			SYNTAX  OCTET STRING  
			MAX-ACCESS  read-only
			STATUS  current
			DESCRIPTION
	              "The corresponding port number of the MAC address."
	      ::= { tpl2BridgeManageDynAddrCtrlEntry 3 }
	      
	  tpl2BridgeManageDynAgeStatus  OBJECT-TYPE
	     SYNTAX  INTEGER {
	      		noAging(0), 			
	      		aging(1)					
	      		} 
	      MAX-ACCESS  read-only
	      STATUS  current
	      DESCRIPTION
	              "The Aging Status of the MAC address."
	      ::= { tpl2BridgeManageDynAddrCtrlEntry 4 }
	      
	  tpl2BridgeManageDynStatus  OBJECT-TYPE
	      SYNTAX    INTEGER {			
	      		active(1), 
	      		bind(4), 
	      		destroy(6)					
	      		} 
	      MAX-ACCESS  read-write
	      STATUS  current
	      DESCRIPTION
	              "active(1)......It's should be enable when the MAC address is exist.
	               bind(4)........Bind the dynamic MAC entry.
	               destroy(6).....Delete the dynamic MAC entry.
	               "
	      ::= { tpl2BridgeManageDynAddrCtrlEntry 5 }
	 
	 
	 tpl2BridgeManageFilterCtrlTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF Tpl2BridgeManageFilterCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "A list of filter MAC address entries."
              ::= { tpl2BridgeManageFilterAddrCtrl 1 }
       
        tpl2BridgeManageFilterCtrlEntry OBJECT-TYPE
              SYNTAX  Tpl2BridgeManageFilterCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "  The filtering address is to forbid the undesired package to be forwarded. 
                      The filtering address can be added or removed manually, independent of the 
                      aging time."
              INDEX   { tpl2BridgeManageFilterMac,tpl2BridgeManageFilterVlanId }
              ::= { tpl2BridgeManageFilterCtrlTable 1 }
                    
        Tpl2BridgeManageFilterCtrlEntry ::=
              SEQUENCE {
                  tpl2BridgeManageFilterMac
                      OCTET STRING, 
                  tpl2BridgeManageFilterVlanId
                  	INTEGER,
                  tpl2BridgeManageFilterStatus
                  	TPRowStatus
              }
              
        tpl2BridgeManageFilterMac OBJECT-TYPE
              SYNTAX  OCTET STRING  
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "The filtering MAC Address."
              ::= { tpl2BridgeManageFilterCtrlEntry 1 }
            
         tpl2BridgeManageFilterVlanId  OBJECT-TYPE
             SYNTAX  INTEGER(1..4094)
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "The corresponding VLAN ID."
              ::= { tpl2BridgeManageFilterCtrlEntry 2 }

	      
	 tpl2BridgeManageFilterStatus  OBJECT-TYPE
	     SYNTAX  TPRowStatus  
	      MAX-ACCESS  read-create
	      STATUS  current
	      DESCRIPTION
	             " The following values are states:
                     these values may be used as follow:
                     
                     active(1),if the entry is being used.
                     createAndGo(4),not being used
                     destroy(6),destory the entry."
	      ::= { tpl2BridgeManageFilterCtrlEntry 3 }
		  
		  
	VlanSecEntryStatus ::= TEXTUAL-CONVENTION
		STATUS 	current
		DESCRIPTION
			"The status of a table entry."
		SYNTAX 	INTEGER {
					disable(0),
					drop(1),
					forward(2),
					createRequest(3),
					destroy(4)
				}
				
	--******************
	--vlan security
	--******************
	tpl2BridgeManagevlanSecurityTable OBJECT-TYPE
		SYNTAX  SEQUENCE OF Tpl2BridgeManagevlanSecEntry
	    MAX-ACCESS not-accessible
	    STATUS  current
	    DESCRIPTION
	    		"A list of Fdb vlan security control entries."
	    ::= {tpl2BridgeManageVlanSecurityCtrl 1}
	
	tpl2BridgeManagevlanSecEntry OBJECT-TYPE
	    SYNTAX  Tpl2BridgeManagevlanSecEntry
	    MAX-ACCESS  not-accessible
	    STATUS  current
	    DESCRIPTION
			" The mac vlan security entry is used to set vlan mac address learning config. "
		INDEX   { tpFdbVlanSecurityVid }
		::= { tpl2BridgeManagevlanSecurityTable 1 }
		
	Tpl2BridgeManagevlanSecEntry ::=
		SEQUENCE {
			tpFdbVlanSecurityVid
				INTEGER, 
			tpFdbVlanSecurityMaxLearned
				INTEGER, 
			tpFdbVlanSecurityRowStatus
				VlanSecEntryStatus
		}

	tpFdbVlanSecurityVid OBJECT-TYPE
		SYNTAX		INTEGER(1..4094)
		MAX-ACCESS	read-only
		STATUS		current
		DESCRIPTION
			"The vlan id of this entry."
		::= { tpl2BridgeManagevlanSecEntry 1 }
	
	tpFdbVlanSecurityMaxLearned OBJECT-TYPE
		SYNTAX		INTEGER(0..16383)
		MAX-ACCESS	read-create
		STATUS		current
		DESCRIPTION
			"The max learned limit mac of this vlan security entry."
		::= { tpl2BridgeManagevlanSecEntry 2 }
	
	tpFdbVlanSecurityRowStatus OBJECT-TYPE
		SYNTAX		VlanSecEntryStatus
		MAX-ACCESS	read-create
		STATUS		current
		DESCRIPTION
			"The status column has four defined values:
			- 'disable(0)', this entry is exist but invalid;
			
			- 'drop(1)', packets with other source mac will be drop
 			    when exceed max learned mac;
				
			- 'forward(2)', packets with other source mac can be forwarded
 			    when exceed max learned mac;
			
			- 'createRequest(3)', which is supplied by a management
			  station wishing to create a new instance of a
			  conceptual row and to have its status automatically set
			  to forward(1), making it available for using by the managed
			  device;

			- 'destory(4)', which is supplied by a management station
			  wishing to delete all of the instances associated with
			  an existing conceptual row." 
		DEFVAL	{ 2 }
		::= { tpl2BridgeManagevlanSecEntry 3 }
	
	--**********************************************************************************
	--mac notification
	--**********************************************************************************
	
	 tpl2BridgeManageNotificationGlobalStatus OBJECT-TYPE
			SYNTAX  INTEGER {
	      		disable(0), 			
	      		enable(1)					
	      		}
	       MAX-ACCESS   read-write
	       STATUS   current
	       DESCRIPTION
               "The mac address notification global status."
		::= { tpl2BridgeManageNotificationCtrl 1}
       
	   tpl2BridgeManageNotificationTableFullStatus OBJECT-TYPE
			SYNTAX  INTEGER {
	      		disable(0), 			
	      		enable(1)					
	      		}
	       MAX-ACCESS   read-write
	       STATUS   current
	       DESCRIPTION
               "The mac address notification when the table is full."
		::= { tpl2BridgeManageNotificationCtrl 2}
		
		tpl2BridgeManageNotificationInterval OBJECT-TYPE
		   SYNTAX  INTEGER(1..1000)
	       MAX-ACCESS   read-write
	       STATUS   current
	       DESCRIPTION
               "The mac address notification interval."
		::= { tpl2BridgeManageNotificationCtrl 3}
		
		
       tpl2BridgeManageNotificationTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF Tpl2BridgeManageNotificationCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "A list of port MAC address Notification setting."
              ::= { tpl2BridgeManageNotificationCtrl 4 }
             
        tpl2BridgeManageNotificationCtrlEntry OBJECT-TYPE
              SYNTAX  Tpl2BridgeManageNotificationCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "  The dynamic address can be generated by the auto-learning mechanism of the switch. 
                      The Dynamic Address Table can update automatically by auto-learning or aging out the 
                      MAC address."
              INDEX   {tpl2BridgeManagePortIndex }
              ::= { tpl2BridgeManageNotificationTable 1 }
              
               
        Tpl2BridgeManageNotificationCtrlEntry ::=
              SEQUENCE {
			      tpl2BridgeManagePortIndex
  				    DisplayString,
                  tpl2BridgeManageLrnModeChg
                  	INTEGER,
                  tpl2BridgeManageExceedMaxLrn
                    INTEGER,
                  tpl2BridgeManageNewMacLrn
                  	INTEGER
              }
              
		tpl2BridgeManagePortIndex OBJECT-TYPE
  			SYNTAX			DisplayString(SIZE(0..16))
  			MAX-ACCESS	read-only
  			STATUS			current
  			DESCRIPTION	
  			"This object indicates the port number."
  			::= {tpl2BridgeManageNotificationCtrlEntry 1}	  
			  
		
         tpl2BridgeManageLrnModeChg  OBJECT-TYPE
             SYNTAX  INTEGER {
	      		disable(0), 			
	      		enable(1)					
	      		}
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Displays the Learn mode change of the MAC address."
              ::= { tpl2BridgeManageNotificationCtrlEntry 2 }
           
		tpl2BridgeManageExceedMaxLrn  OBJECT-TYPE
             SYNTAX  INTEGER {
	      		disable(0), 			
	      		enable(1)					
	      		}
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Displays the exceed max learned of the MAC address."
              ::= { tpl2BridgeManageNotificationCtrlEntry 3 }
			  
		tpl2BridgeManageNewMacLrn  OBJECT-TYPE
             SYNTAX  INTEGER {
	      		disable(0), 			
	      		enable(1)					
	      		}
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Displays the new mac learned of the MAC address."
              ::= { tpl2BridgeManageNotificationCtrlEntry 4 }
	 
	
	

END	
