-- ============================================================================
-- Copyright(c) 2008-2012 Shenzhen TP-LINK Technologies Co.,Ltd.
-- 
-- FileName    : tplink-spanningTree.mib
-- Description : 
-- Reference   : 
-- Version     : 1.0
-- History     : 
--   V1.0  22Nov12  Created by dengjianjun
--     Original version.
-- ============================================================================

TPLINK-SPANNING-TREE-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE
            FROM SNMPv2-SMI
        tplinkMgmt
            FROM TPLINK-MIB
        ifIndex
            FROM  RFC1213-MIB;

    tplinkSpanningTreeMIB MODULE-IDENTITY
        LAST-UPDATED
            "201211210930Z"
        ORGANIZATION
            "TPLINK"
        CONTACT-INFO
            "www.tplink.com"
        DESCRIPTION
            "Private MIB for Spanning-Tree."
        REVISION
            "201211210930Z"
        DESCRIPTION
            "Initial version of this MIB module."
        ::= { tplinkMgmt 21 }
        
        
        tplinkSpanningTreeMIBObjects OBJECT IDENTIFIER ::= { tplinkSpanningTreeMIB 1 }

            tpStpBasicCfg OBJECT IDENTIFIER ::= { tplinkSpanningTreeMIBObjects 1 }
                tpStpBasicGlobalConfig OBJECT IDENTIFIER ::= { tpStpBasicCfg 1 }
                    tpStpEnable OBJECT-TYPE
                        SYNTAX INTEGER
                            {
                            disable(0),
                            enable(1)
                            }
                        MAX-ACCESS
                            read-write
                        STATUS
                            current
                        DESCRIPTION
                            "Spanning Tree Protocol.
                            0. disable 
                            1. enable"
                        ::= { tpStpBasicGlobalConfig 1 }
                          
                    tpRstpEnable OBJECT-TYPE
                        SYNTAX INTEGER
                            {
                            disable(0),
                            enable(1)
                            }
                        MAX-ACCESS
                            read-write
                        STATUS
                            current
                        DESCRIPTION
                            "Rapid Spanning Tree Protocol.
                            0. disable 
                            1. enable"
                        ::= { tpStpBasicGlobalConfig 2 }
                          
                    tpMstpEnable OBJECT-TYPE
                        SYNTAX INTEGER
                            {
                            disable(0),
                            enable(1)
                            }
                        MAX-ACCESS
                            read-write
                        STATUS
                            current
                        DESCRIPTION
                            "Multiple Spanning Tree Protocol.
                            0. disable 
                            1. enable"
                        ::= { tpStpBasicGlobalConfig 3 }
            
                tpStpBasicParamConfig OBJECT IDENTIFIER ::= { tpStpBasicCfg 2 }
                      
                    tpStpCistPriority OBJECT-TYPE
                        SYNTAX INTEGER
                            (0..61440)
                        MAX-ACCESS
                            read-write
                        STATUS
                            current
                        DESCRIPTION
                            "Enter a value from 0 to 61440 to specify the priority 
                            of the switch for comparison in the CIST. CIST priority 
                            is an important criterion on determining the root bridge. 
                            In the same condition, the switch with the highest priority 
                            will be chosen as the root bridge. The lower value has the 
                            higher priority. The value could be devided exactly by 4096."
                        ::= { tpStpBasicParamConfig 1 }
                                                
                    tpStpHelloTime OBJECT-TYPE
                        SYNTAX INTEGER
                            (1..10)
                        MAX-ACCESS
                            read-write
                        STATUS
                            current
                        DESCRIPTION
                            "Enter a value from 1 to 10 in seconds to specify the 
                            interval to send BPDU packets. It is used to test the 
                            links. (tpStpHelloTime+1)*2<=tpStpAgingTime."
                        ::= { tpStpBasicParamConfig 2 }
                                                  
                    tpStpAgingTime OBJECT-TYPE
                        SYNTAX INTEGER
                            (6..40)
                        MAX-ACCESS
                            read-write
                        STATUS
                            current
                        DESCRIPTION
                            "Enter a value from 6 to 40 in seconds to specify the 
                            maximum time the switch can wait without receiving a 
                            BPDU before attempting to reconfigure.
                            (tpStpHelloTime+1)*2<=tpStpAgingTime."
                        ::= { tpStpBasicParamConfig 3 }
                                        
                    tpStpForwardDelay OBJECT-TYPE 
                        SYNTAX INTEGER
                            (4..30)
                        MAX-ACCESS
                            read-write
                        STATUS
                            current
                        DESCRIPTION
                            "Enter a value from 4 to 30 in seconds to specify the 
                            time for the port to transit its state after the network 
                            topology is changed. stpAgingTime<=(stpForwardDelay-1)*2."
                        ::= { tpStpBasicParamConfig 4 }
                                                                  
                    tpStpHoldCount OBJECT-TYPE
                        SYNTAX INTEGER
                            (1..20)
                        MAX-ACCESS
                            read-write
                        STATUS
                            current
                        DESCRIPTION
                            "Enter a value from 1 to 20 to set the maximum number of 
                            BPDU packets transmitted per Hello Time interval."
                        ::= { tpStpBasicParamConfig 5 }
                          
                    tpStpMaxHops OBJECT-TYPE
                        SYNTAX INTEGER
                            (1..40)
                        MAX-ACCESS
                            read-write
                        STATUS
                            current
                        DESCRIPTION
                            "Enter a value from 1 to 40 to set the maximum number of 
                            hops that occur in a specific region before the BPDU is 
                            discarded."
                        ::= { tpStpBasicParamConfig 6 }
                          
                tpStpInfo OBJECT IDENTIFIER ::= { tpStpBasicCfg 3 }
                                    
                     tpStpEnableStatus OBJECT-TYPE
                        SYNTAX INTEGER
                            {
                            disable(0),
                            enable(1)
                            }
                        MAX-ACCESS
                            read-only
                        STATUS
                            current
                        DESCRIPTION
                            "0. disable 
                            1. enable"
                        ::= { tpStpInfo 1 }
                          
                    tpStpMode OBJECT-TYPE
                        SYNTAX INTEGER
                            {
                            stp(1),
                            rstp(2),
                            mstp(3)
                            }
                        MAX-ACCESS
                            read-only
                        STATUS
                            current
                        DESCRIPTION
                            "1. stp
                            2. rstp
                            3. mstp"
                        ::= { tpStpInfo 2 }
                          
                    tpStpLocalBridge OBJECT-TYPE
                        SYNTAX OCTET STRING
                            (SIZE (0..255))
                        MAX-ACCESS
                            read-only
                        STATUS
                            current
                        DESCRIPTION
                            "Local bridge."
                        ::= { tpStpInfo 3 }
                      
                    tpStpCISTRoot OBJECT-TYPE
                        SYNTAX OCTET STRING
                            (SIZE (0..255))
                        MAX-ACCESS
                            read-only
                        STATUS
                            current
                        DESCRIPTION
                            "CIST Root."
                        ::= { tpStpInfo 4 }
                    
                    tpStpExPathCost OBJECT-TYPE
                        SYNTAX INTEGER 
                            (0..2000000)
                        MAX-ACCESS
                            read-only
                        STATUS
                            current
                        DESCRIPTION
                            "External Path cost."
                        ::= { tpStpInfo 5 } 
                        
                    tpStpRegionRoot OBJECT-TYPE
                        SYNTAX OCTET STRING
                            (SIZE (0..255))
                        MAX-ACCESS
                            read-only
                        STATUS
                            current
                        DESCRIPTION
                            "Region Root."
                        ::= { tpStpInfo 6 } 
                        
                    tpStpInPathCost OBJECT-TYPE
                        SYNTAX INTEGER 
                            (0..2000000)
                        MAX-ACCESS
                            read-only
                        STATUS
                            current
                        DESCRIPTION
                            "Internal Path cost."
                        ::= { tpStpInfo 7 }
                     
                    tpStpDesignatedBridge OBJECT-TYPE
                        SYNTAX  OCTET STRING
                            (SIZE (0..255))
                        MAX-ACCESS
                            read-only
                        STATUS
                            current
                        DESCRIPTION
                            "Designated Bridge."
                        ::= { tpStpInfo 8 }
                     
                    tpStpRootPort OBJECT-TYPE
                        SYNTAX  INTEGER 
                        MAX-ACCESS
                            read-only
                        STATUS
                            current
                        DESCRIPTION
                            "RootPort."
                        ::= { tpStpInfo 9 }
                       
                    tpStpLastTopologyChangeTime OBJECT-TYPE
                        SYNTAX  OCTET STRING
                            (SIZE (0..255))
                        MAX-ACCESS
                            read-only
                        STATUS
                            current
                        DESCRIPTION
                            "LastTopologyChangeTime."
                        ::= { tpStpInfo 10 }
                        
                    tpStpTopologyChangeCounter OBJECT-TYPE
                        SYNTAX INTEGER 
                        MAX-ACCESS
                            read-only
                        STATUS
                            current
                        DESCRIPTION
                            "TopologyChangeCounter."
                        ::= { tpStpInfo 11 }
            
            
            tpStpPortCfg OBJECT IDENTIFIER ::= { tplinkSpanningTreeMIBObjects 2 }
            
                tpStpPortConfigTable OBJECT-TYPE
                    SYNTAX SEQUENCE OF TPSTPPORTCONFIGENTRY
                    MAX-ACCESS
                        not-accessible
                    STATUS
                        current
                    DESCRIPTION
                        "Here you can configure the parameters of the ports for 
                        comparison in the CIST and the common parameters of all 
                        Instances. And you can view the status of the ports in the 
                        CIST. CIST (Common and Internal Spanning Tree) is the spanning 
                        tree in a switched network, connecting all devices in the network."
                    ::= { tpStpPortCfg 1 }
        
                    tpStpPortConfigEntry OBJECT-TYPE
                        SYNTAX
                            TPSTPPORTCONFIGENTRY
                        MAX-ACCESS
                            not-accessible
                        STATUS
                            current
                        DESCRIPTION
                            "An entry contains of the information of a port."
                        INDEX
                            {
                            ifIndex 
                            }
                        ::= { tpStpPortConfigTable 1 }
              
                        TPSTPPORTCONFIGENTRY ::=
                            SEQUENCE
                                {
                                tpStpPortNumber
                                    OCTET STRING,
                                tpStpPortEnable
                                    INTEGER,
                                tpStpPortPriority
                                    INTEGER,
                                tpStpPortExPathCost
                                    INTEGER,
                                tpStpPortInPathCost
                                    INTEGER,
                                tpStpEdgePortStatus
                                    INTEGER,
                                tpStpPointToPointStatus
                                    INTEGER,
                                tpStpPortMCheck
                                    INTEGER,
                                tpStpPortStpVersion
                                    INTEGER,
                                tpStpPortRole
                                    INTEGER,
                                tpStpPortStatus
                                    INTEGER,
                                tpStpPortLag
                                    OCTET STRING
                                }
                                
                        tpStpPortNumber OBJECT-TYPE
                            SYNTAX OCTET STRING
                                (SIZE (0..255))
                            MAX-ACCESS
                                read-only
                            STATUS
                                current
                            DESCRIPTION
                                "Displays the port number of the switch."
                        ::= { tpStpPortConfigEntry 1 }
                             
                        tpStpPortEnable OBJECT-TYPE
                            SYNTAX INTEGER
                                {
                                disable(0),
                                enable(1),
                                errPort(2)
                                }
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "Select Enable /Disable STP function for the desired port.
                                0. Disable
                                1. Enable
                                2. ErrPort"
                            ::= { tpStpPortConfigEntry 2 }
                      
                        tpStpPortPriority OBJECT-TYPE
                            SYNTAX INTEGER
                                (0..240)
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "Enter a value from 0 to 240 divisible by 16. Port priority 
                                is an important criterion on determining the root port. 
                                In the same condition, the port with the highest priority will be 
                                chosen as the root port. The lower value has the higher priority."
                            ::= { tpStpPortConfigEntry 3 }
                     
                        tpStpPortExPathCost OBJECT-TYPE
                            SYNTAX INTEGER
                                (0..2000000)
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "ExPath Cost is used to choose the path and calculate the path costs 
                                of ports in different MST regions. It is an important criterion on 
                                determining the root port. The lower value has the higher priority.
                                automatic when value is zero.
                                Make sure that Path Cost ranges from 0 to 2000000."
                            ::= { tpStpPortConfigEntry 4 }
                      
                        tpStpPortInPathCost OBJECT-TYPE
                            SYNTAX  INTEGER
                                (0..2000000)
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "InPath Cost is used to choose the path and calculate the path costs 
                                of ports in an MST region. It is an important criterion on determining 
                                the root port. The lower value has the higher priority.
                                Make sure that Path Cost ranges from 0 to 2000000."
                            ::= { tpStpPortConfigEntry 5 }
                      
                        tpStpEdgePortStatus OBJECT-TYPE
                            SYNTAX INTEGER
                                {
                                disable(0),
                                enable(1)
                                }
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "Select Enable/Disable Edge Port. The edge port can transit 
                                its state from blocking to forwarding rapidly without waiting 
                                for forward delay.
                                0. Disable
                                1. Enable"
                            ::= { tpStpPortConfigEntry 6 }
                      
                        tpStpPointToPointStatus OBJECT-TYPE
                            SYNTAX INTEGER
                                {
                                auto(0),
                                force-enable(1),
                                force-disable(2)
                                }
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "Select the P2P link status. If the two ports in the P2P link are 
                                root port or designated port, they can transit their states to 
                                forwarding rapidly to reduce the unnecessary forward delay.
                                0. auto
                                1. force enable
                                2. force disable"
                            ::= { tpStpPortConfigEntry 7 }
                        
                        tpStpPortMCheck OBJECT-TYPE
                            SYNTAX INTEGER
                                {
                                unChange(0),
                                enable(1)
                                }
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "Select Enable to perform MCheck operation on the port. Unchange means no MCheck operation.
                                0.  unChange
                                1.  enable"
                            ::= { tpStpPortConfigEntry 8 }
                      
                        tpStpPortStpVersion OBJECT-TYPE
                            SYNTAX INTEGER
                                {
                                na(0),
                                stp(1),
                                rstp(2),
                                mstp(3)
                                }
                            MAX-ACCESS
                                read-only
                            STATUS
                                current
                            DESCRIPTION
                                "Displays the STP version of the port.
                                1. stp
                                2. rstp
                                3. mstp"
                            ::= { tpStpPortConfigEntry 9 }
                      
                        tpStpPortRole OBJECT-TYPE
                            SYNTAX INTEGER
                                {
                                na(0),
                                disabled(1),
                                alternate(2),
                                backup(3),
                                designated(4),
                                root(5),
                                master(6)
                                }
                            MAX-ACCESS
                                read-only
                            STATUS
                                current
                            DESCRIPTION
                                "Displays the role of the port played in the STP Instance.
                                1.Disable:Indicates the port that is not participating in the STP.
                                2.Alternate:Indicates the port that can be a backup port of a root or master port.
                                3.Backup:Indicates the port that is the backup port of a designated port. 
                                4.Designated:Indicates the port that forwards packets to a downstream network 
                                    segment or switch.
                                5.root:Indicates the port that has the lowest path cost from this bridge to the 
                                    Root Bridge and forwards packets to the root. 
                                6.Master:Indicates the port that connects a MST region to the common root. 
                                    The path from the master port to the common root is the shortest path between 
                                    this MST region and the common root."
                            ::= { tpStpPortConfigEntry 10 }
                        
                        tpStpPortStatus OBJECT-TYPE
                            SYNTAX INTEGER
                                {
                                na(0),
                                disconnected(1),
                                blocking(2),
                                learning(3),
                                forwarding(4)
                                }
                            MAX-ACCESS
                                read-only
                            STATUS
                                current
                            DESCRIPTION
                                "Displays the working status of the port.
                                1.Disconnected: In this status the port is not participating in the STP.
                                2.Blocking: In this status the port can only receive BPDU packets.
                                3.Learning: In this status the port can receive/send BPDU packets and learn MAC address. 
                                4.Forwarding: In this status the port can receive/forward data, receive/send BPDU packets 
                                    as well as learn MAC address. "
                            ::= { tpStpPortConfigEntry 11 }
                        
                        tpStpPortLag OBJECT-TYPE
                            SYNTAX OCTET STRING
                                (SIZE (0..255))
                            MAX-ACCESS
                                read-only
                            STATUS
                                current
                            DESCRIPTION
                                "Displays the LAG number which the port belongs to."
                            ::= { tpStpPortConfigEntry 12 }
            
            
            tpStpInstanceCfg OBJECT IDENTIFIER ::= { tplinkSpanningTreeMIBObjects 3 }
            
                tpMstpRegionConfig OBJECT IDENTIFIER ::= { tpStpInstanceCfg 1 }
                    tpMstpRegionName OBJECT-TYPE
                        SYNTAX OCTET STRING
                            (SIZE (0..32))
                        MAX-ACCESS
                            read-write
                        STATUS
                            current
                        DESCRIPTION
                            "Create a name for MST region identification using up to 32 characters."
                        ::= { tpMstpRegionConfig 1 }
                          
                    tpMstpRevision OBJECT-TYPE
                        SYNTAX INTEGER
                            (0..65535)
                        MAX-ACCESS
                            read-write
                        STATUS
                            current
                        DESCRIPTION
                            "Enter the revision from 0 to 65535 for MST region identification."
                        ::= { tpMstpRegionConfig 2 }
                      
                      
                tpMstpInstanceConfigTable OBJECT-TYPE
                    SYNTAX  SEQUENCE OF TPMSTPINSTANCECONFIGENTRY
                    MAX-ACCESS
                        not-accessible
                    STATUS
                        current
                    DESCRIPTION
                        "Here you can set the VLAN-to-spanning-tree mapping configuration."
                    ::= { tpStpInstanceCfg 2 }
            
                    tpMstpInstanceConfigEntry OBJECT-TYPE
                        SYNTAX  TPMSTPINSTANCECONFIGENTRY
                        MAX-ACCESS
                            not-accessible
                        STATUS
                            current
                        DESCRIPTION
                            "An entry contains of the mstp instance."
                        INDEX 
                            { tpMstpInstanceId }
                        ::= { tpMstpInstanceConfigTable 1 }
              
                    TPMSTPINSTANCECONFIGENTRY ::=
                        SEQUENCE
                            {
                            tpMstpInstanceId
                                INTEGER,
                            tpMstpInstanceEnable
                                INTEGER,
                            tpMstpInstancePriority
                                INTEGER,
                            tpMstpInstanceVlanId
                                OCTET STRING,
                            tpMstpClearInstanceVlanId
                                INTEGER
                            }
                      
                        tpMstpInstanceId OBJECT-TYPE
                            SYNTAX INTEGER 
                            MAX-ACCESS
                                read-only
                            STATUS
                                current
                            DESCRIPTION
                                "Displays Instance ID of the switch,0 representative CIST. "
                            ::= { tpMstpInstanceConfigEntry 1 }
                             
                        tpMstpInstanceEnable OBJECT-TYPE
                            SYNTAX  INTEGER
                                {
                                disable(0),
                                enable(1)
                                }
                            MAX-ACCESS
                                read-only
                            STATUS
                                current
                            DESCRIPTION
                                "Displays status of the instance.
                                0. Disable
                                1. Enable"
                            ::= { tpMstpInstanceConfigEntry 2 }
                
                        tpMstpInstancePriority OBJECT-TYPE
                            SYNTAX INTEGER 
                                (0..61440)
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "Enter the priority of the switch in the instance. It is an 
                                important criterion on determining if the switch will be 
                                chosen as the root bridge in the specific instance.Make sure 
                                that Priority ranges from 0 to 61440 and could be divided 
                                exactly by 4096"
                            ::= { tpMstpInstanceConfigEntry 3 }
                      
                        tpMstpInstanceVlanId OBJECT-TYPE
                            SYNTAX OCTET STRING
                                (SIZE (0..32))
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "Enter the desired VLAN ID. After modification here, the new VLAN 
                                ID will be added to the corresponding instance ID and the previous 
                                VLAN ID won't be replaced.The format of input VLAN ID shoud be like 
                                '1,3,4-7,11-30' in the range from 1 to 4094."
                            ::= { tpMstpInstanceConfigEntry 4 }
                      
                        tpMstpClearInstanceVlanId OBJECT-TYPE
                            SYNTAX INTEGER
                                {
                                clear(1)
                                }
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "This object use to clear instance's vlan id.The cleared VLAN ID will 
                                be automatically mapped to the CIST."
                            ::= {tpMstpInstanceConfigEntry 5}
                                      
                      
                tpMstpInstancePortConfigTable OBJECT-TYPE
                    SYNTAX  SEQUENCE OF TPMSTPINSTANCEPORTCONFIGENTRY
                    MAX-ACCESS
                        not-accessible
                    STATUS
                        current
                    DESCRIPTION
                        "A port can play different roles in different spanning tree instance. 
                        Here you can configure the parameters of the ports in different 
                        instance IDs as well as view status of the ports in the specified instance. "
                    ::= { tpStpInstanceCfg 3 }
            
                    tpMstpInstancePortConfigEntry OBJECT-TYPE
                        SYNTAX  TPMSTPINSTANCEPORTCONFIGENTRY
                        MAX-ACCESS
                            not-accessible
                        STATUS
                            current
                        DESCRIPTION
                            "An entry contains of the mstp instance port config."
                        INDEX
                            { tpMstpInstancePortConfigId, ifIndex}
                        ::= { tpMstpInstancePortConfigTable 1 }
              
                        TPMSTPINSTANCEPORTCONFIGENTRY ::=
                            SEQUENCE
                            {
                            tpMstpInstancePortConfigId
                                INTEGER,
                            tpMstpInstancePortNumber
                                OCTET STRING,
                            tpMstpInstancePortPriority
                                INTEGER,
                            tpMstpInstancePortPathCost
                                INTEGER,
                            tpMstpInstancePortRole
                                INTEGER,
                            tpMstpInstancePortStatus
                                INTEGER,
                            tpMstpInstancePortLag
                                OCTET STRING
                            }
                      
                         tpMstpInstancePortConfigId OBJECT-TYPE
                            SYNTAX INTEGER 
                            MAX-ACCESS
                                read-only
                            STATUS
                                current
                            DESCRIPTION
                                "The instance ID for its port configuration, 1-8."
                            ::= { tpMstpInstancePortConfigEntry 1}
                      
                        tpMstpInstancePortNumber OBJECT-TYPE
                            SYNTAX OCTET STRING
                                (SIZE (0..255)) 
                            MAX-ACCESS
                                read-only
                            STATUS
                                current
                            DESCRIPTION
                                "Displays the port number of the switch."
                            ::= { tpMstpInstancePortConfigEntry 2}
                             
                        tpMstpInstancePortPriority OBJECT-TYPE
                            SYNTAX INTEGER
                                (0..240)
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "Enter the priority of the port in the instance. It is an 
                                important criterion on determining if the port will be chosen 
                                as the root port by the device connected to this port."
                            ::= { tpMstpInstancePortConfigEntry 3 }
                     
                        tpMstpInstancePortPathCost OBJECT-TYPE
                            SYNTAX  INTEGER
                                (0..2000000)
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "Path Cost is used to choose the path and calculate the path costs 
                                of ports in an MST region. It is an important criterion on determining 
                                the root port. The lower value has the higher priority."
                            ::= { tpMstpInstancePortConfigEntry 4 }
                                    
                        tpMstpInstancePortRole OBJECT-TYPE
                            SYNTAX INTEGER
                                {
                                na(0),
                                disabled(1),
                                alternate(2),
                                backup(3),
                                designated(4),
                                root(5),
                                master(6)
                                }
                            MAX-ACCESS
                                read-only
                            STATUS
                                current
                            DESCRIPTION
                                "Displays the role of the port played in the STP Instance.
                                1. Disable
                                2. Alternate
                                3. Backup
                                4. Designated
                                5. root
                                6. Master"
                            ::= { tpMstpInstancePortConfigEntry 5 }
                        
                        tpMstpInstancePortStatus OBJECT-TYPE
                            SYNTAX  INTEGER
                                {
                                na(0),
                                disabled(1),
                                blocking(2),
                                learning(3),
                                forwarding(4)
                                }
                            MAX-ACCESS
                                read-only
                            STATUS
                                current
                            DESCRIPTION
                                "Displays the working status of the port.
                                1. Disable
                                2. Blocking
                                3. Learning
                                4. Forwarding"
                            ::= { tpMstpInstancePortConfigEntry 6 }
                        
                        tpMstpInstancePortLag OBJECT-TYPE
                            SYNTAX OCTET STRING
                                (SIZE (0..255)) 
                            MAX-ACCESS
                                read-only
                            STATUS
                                current
                            DESCRIPTION
                                "Displays the LAG number which the port belongs to."
                            ::= { tpMstpInstancePortConfigEntry 7 }
            
            
            tpStpSecurityCfg OBJECT IDENTIFIER ::= { tplinkSpanningTreeMIBObjects 4 }
                
                tpStpPortDefendTable OBJECT-TYPE
                    SYNTAX  SEQUENCE OF TPSTPPORTDEFENDENTRY
                    MAX-ACCESS
                        not-accessible
                    STATUS
                        current
                    DESCRIPTION
                        "Port defend function is to prevent the devices from any 
                        malicious attack against STP features.."
                    ::= { tpStpSecurityCfg 1 }
            
                    tpStpPortDefendEntry OBJECT-TYPE
                        SYNTAX TPSTPPORTDEFENDENTRY
                        MAX-ACCESS
                            not-accessible
                        STATUS
                            current
                        DESCRIPTION
                            "An entry contains of the information of a port protection."
                        INDEX
                            { ifIndex }
                        ::= { tpStpPortDefendTable 1 }
                  
                        TPSTPPORTDEFENDENTRY ::=
                            SEQUENCE
                            {
                            tpStpDefendPortNumber
                                OCTET STRING, 
                            tpStpLoopDefendEnable
                                INTEGER, 
                            tpStpRootBridgeDefendEnable
                                INTEGER,
                            tpStpTcDefendEnable
                                INTEGER,
                            tpStpBPDUDefendEnable
                                INTEGER,
                            tpStpBPDUHoldEnable
                                INTEGER,
							tpStpBPDUFloodEnable
								INTEGER,
                            tpStpDefendPortLag
                                OCTET STRING
                            }
                          
                        tpStpDefendPortNumber OBJECT-TYPE
                            SYNTAX OCTET STRING
                                (SIZE (0..255)) 
                            MAX-ACCESS
                                read-only
                            STATUS
                                current
                            DESCRIPTION
                                "Displays the port number of the switch."
                            ::= { tpStpPortDefendEntry 1 }
                                 
                        tpStpLoopDefendEnable OBJECT-TYPE
                            SYNTAX INTEGER
                                {
                                disable(0),
                                enable(1)
                                }
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "Loop defend is to prevent the loops in the network brought by 
                                recalculating STP because of link failures and network congestions.
                                0. Disable
                                1. Enable"
                            ::= { tpStpPortDefendEntry 2 }
                          
                        tpStpRootBridgeDefendEnable OBJECT-TYPE
                            SYNTAX INTEGER
                                {
                                disable(0),
                                enable(1)
                                }
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "Root defend is to prevent wrong network topology change caused by 
                                the role change of the current legal root bridge.
                                0. Disable
                                1. Enable"
                            ::= { tpStpPortDefendEntry 3 }
                          
                        tpStpTcDefendEnable OBJECT-TYPE
                            SYNTAX INTEGER
                                {
                                disable(0),
                                enable(1)
                                }
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "TC defend is to prevent the decrease of the performance and stability 
                                of the switch brought by continuously removing MAC address entries upon 
                                receiving TC-BPDUs in the STP network. 
                                0. Disable
                                1. Enable"
                            ::= { tpStpPortDefendEntry 4 }
                          
                        tpStpBPDUDefendEnable OBJECT-TYPE
                            SYNTAX INTEGER
                                {
                                disable(0),
                                enable(1)
                                }
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "BPDU defend is to prevent BPDUs flood in the STP network.
                                0. Disable
                                1. Enable"
                            ::= { tpStpPortDefendEntry 5 }
                          
                        tpStpBPDUHoldEnable OBJECT-TYPE
                            SYNTAX INTEGER
                                {
                                disable(0),
                                enable(1)
                                }
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "0. Disable
                                1. Enable"
                            ::= { tpStpPortDefendEntry 6 }

                        tpStpBPDUFloodEnable OBJECT-TYPE
                            SYNTAX INTEGER
                                {
                                disable(0),
                                enable(1)
                                }
                            MAX-ACCESS
                                read-write
                            STATUS
                                current
                            DESCRIPTION
                                "0. Disable
                                1. Enable"
                            ::= { tpStpPortDefendEntry 7 }
                          
                        tpStpDefendPortLag OBJECT-TYPE
                            SYNTAX OCTET STRING
                                (SIZE (0..255))
                            MAX-ACCESS
                                read-only
                            STATUS
                                current
                            DESCRIPTION
                                "Displays the LAG number which the port belongs to."
                            ::= { tpStpPortDefendEntry 8 }
   
        tplinkSpanningTreeNotifications  OBJECT IDENTIFIER ::= { tplinkSpanningTreeMIB 2 }
            tpMstpTopologyChange NOTIFICATION-TYPE
                STATUS current
                DESCRIPTION
                    "The topology of spanning tree has changed."
                ::= { tplinkSpanningTreeNotifications 1 }

END
