TPLINK-IPV6ADDR-MIB	DEFINITIONS ::= BEGIN
    IMPORTS
	    RowStatus, DisplayString
  			FROM SNMPv2-TC
		tplinkMgmt
			FROM TPLINK-MIB			
        OBJECT-TYPE,IpAddress
          	FROM SNMPv2-SMI
        InetAddress, InetAddressType
			FROM INET-ADDRESS-MIB;
	  
	  tplinkIpv6AddrMIB MODULE-IDENTITY
		LAST-UPDATED    "201512130930Z"
		ORGANIZATION    "TPLINK"
		CONTACT-INFO    "www.tplink.com"
		DESCRIPTION	    "Private MIB for IPv6 address configuration."
		REVISION        "201212130930Z"
		DESCRIPTION
				"Initial version of this MIB module."
		::= { tplinkMgmt 50 }
		
	  tplinkIpv6AddrMIBObjects		OBJECT IDENTIFIER ::= { tplinkIpv6AddrMIB 1 }
      tplinkIpv6RoutingConfig		OBJECT IDENTIFIER ::= { tplinkIpv6AddrMIB 2 }
      tplinkIpv6AddrNotifications	OBJECT IDENTIFIER ::= { tplinkIpv6AddrMIB 3 }
       	 	      
	  ipv6ParaConfigAddrTable OBJECT-TYPE
	       SYNTAX  SEQUENCE OF Ipv6ParaConfigAddrEntry
	       MAX-ACCESS  not-accessible
	       STATUS  current
	       DESCRIPTION
	               "The table of address information is relevant to the
            		switch's IPv6 addresses."
	       ::= { tplinkIpv6AddrMIBObjects 1 }        
	  ipv6ParaConfigAddrEntry OBJECT-TYPE
        SYNTAX      Ipv6ParaConfigAddrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Define the IPv6 address information."
        INDEX
        {              
        	ipv6ParaConfigIfIndex,    
            ipv6ParaConfigAddrType,
            ipv6ParaConfigSourceType,
            ipv6ParaConfigAddress
        }
        ::= { ipv6ParaConfigAddrTable 1 }
	   
	   Ipv6ParaConfigAddrEntry ::=
        SEQUENCE
        {           
            ipv6ParaConfigIfIndex        INTEGER,
            ipv6ParaConfigIfDescription  DisplayString,
            ipv6ParaConfigAddrType      InetAddressType,
            ipv6ParaConfigAddress          InetAddress,
            ipv6ParaConfigPrefixLength     INTEGER(1..128),
            ipv6ParaConfigSourceType    INTEGER,
            ipv6ParaConfigRowStatus    RowStatus
        }                     
        
       ipv6ParaConfigIfIndex OBJECT-TYPE
          SYNTAX      INTEGER
          MAX-ACCESS  read-only
	      STATUS      current
	      DESCRIPTION
	          "The IfIndex of the interface"
	      ::= { ipv6ParaConfigAddrEntry 1 }

     ipv6ParaConfigIfDescription OBJECT-TYPE
          SYNTAX  DisplayString
          MAX-ACCESS  read-only
          STATUS  current
          DESCRIPTION
                  "The description of the interface."
          ::= { ipv6ParaConfigAddrEntry 2 }

	   ipv6ParaConfigAddrType OBJECT-TYPE
          SYNTAX      InetAddressType
          MAX-ACCESS  read-only
	      STATUS      current
	      DESCRIPTION
	          "The IP address type of the switch. The value must be ipv6."
	      ::= { ipv6ParaConfigAddrEntry 3 }
    
              
	   ipv6ParaConfigAddress OBJECT-TYPE
          SYNTAX  InetAddress
          MAX-ACCESS  read-only
          STATUS  current
          DESCRIPTION
             "The IPv6 address of the switch."
          ::= { ipv6ParaConfigAddrEntry 4 }
      
	   ipv6ParaConfigPrefixLength OBJECT-TYPE
          SYNTAX  INTEGER(1..128)
          MAX-ACCESS  read-create
          STATUS  current
          DESCRIPTION
             "The length of the prefix (in bits) associated with
              the IPv6 address of the switch."
          ::= { ipv6ParaConfigAddrEntry 5 }

       ipv6ParaConfigSourceType OBJECT-TYPE
          SYNTAX  INTEGER
            {
                assignedIp(1),
                assignedEUI64Ip(2),
                assignedLinklocalIp(3),
                autoIp(4),
                dhcpv6(5),
                negotiate(6)
            }                   
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
               "Indicate the type of source of IPv6 address.
               The value can be one of following:
               'assignedIp':
                  Assigned global/site-local IPv6 address;
               'assignedEUI64Ip':
                  Assigned global/site-local IPv6 address
                  by using EUI-64 interface identifier;
               'assignedLinklocalIp':
                  Assigned link-local IPv6 address.               
               'autoIp':
               	  Auto generated IPv6 address as a result
                  of non-linklocal anycast/unicast address
                  configuration;
               'dhcpv6':
                  Assigned IPv6 address through DHCPv6
                  protocol;
               'negotiate':
                  Assigned IPv6 address through negotiation;"               
   ::= { ipv6ParaConfigAddrEntry 6 }  
        
     ipv6ParaConfigRowStatus OBJECT-TYPE
              SYNTAX  RowStatus
              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.
                     notInService(2),destory the entry.
                     notReady(3),destory the entry.
                     createAndGo(4),not being used
                     createAndWait(5),creat a new entry
                     destroy(6),destory the entry.
                     
                     When you create a new user,the default password
                     is admin."
              ::= { ipv6ParaConfigAddrEntry 7 }

      ipv6ParaConfigCfgTable OBJECT-TYPE
           SYNTAX  SEQUENCE OF Ipv6ParaConfigCfgEntry
           MAX-ACCESS  not-accessible
           STATUS  current
           DESCRIPTION
                   "The table of configuration information is relevant to the
                    switch's IPv6 addresses."
           ::= { tplinkIpv6AddrMIBObjects 2 }

      ipv6ParaConfigCfgEntry OBJECT-TYPE
        SYNTAX      Ipv6ParaConfigCfgEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Define the IPv6 address information."
        INDEX
        {
            ipv6ParaConfigCfgIfIndex
        }
        ::= { ipv6ParaConfigCfgTable 1 }

       Ipv6ParaConfigCfgEntry ::=
            SEQUENCE
            {
                ipv6ParaConfigCfgIfIndex             INTEGER,
                ipv6ParaConfigCfgIfDescription       DisplayString,
                ipv6ParaConfigAutoLinkLocalEnable    INTEGER,
                ipv6ParaConfigDhcpEnable             INTEGER,
                ipv6ParaConfigNegotiateEnable        INTEGER,
                ipv6ParaConfigIPv6Enable             INTEGER
            }

      ipv6ParaConfigCfgIfIndex OBJECT-TYPE
            SYNTAX      INTEGER
              MAX-ACCESS  read-only
              STATUS      current
              DESCRIPTION
                  "The IfIndex of the interface"
              ::= { ipv6ParaConfigCfgEntry 1 }

      ipv6ParaConfigCfgIfDescription OBJECT-TYPE
            SYNTAX  DisplayString
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "The description of the interface."
              ::= { ipv6ParaConfigCfgEntry 2 }

      ipv6ParaConfigAutoLinkLocalEnable OBJECT-TYPE
              SYNTAX  INTEGER{
                disable(0),
                enable(1)
                }
                MAX-ACCESS  read-write
                STATUS  current
                DESCRIPTION
                        "0. disable 
                         1. enable
                         Enable/Disable IPv6 link-local address auto configuration mode."
                ::= { ipv6ParaConfigCfgEntry 3 }

      ipv6ParaConfigDhcpEnable OBJECT-TYPE
              SYNTAX  INTEGER{
                disable(0),
                enable(1)
                }
                MAX-ACCESS  read-write
                STATUS  current
                DESCRIPTION
                        "0. disable 
                         1. enable
                         Enable/Disable IPv6 global address auto configuration via DHCPv6 Server."
                ::= { ipv6ParaConfigCfgEntry 4 }

      ipv6ParaConfigNegotiateEnable OBJECT-TYPE
              SYNTAX  INTEGER{
                disable(0),
                enable(1)
                }
                MAX-ACCESS  read-write
                STATUS  current
                DESCRIPTION
                        "0. disable 
                         1. enable
                         Enable/Disable IPv6 global address auto configuration via RA message."
                ::= { ipv6ParaConfigCfgEntry 5 }

      ipv6ParaConfigIPv6Enable OBJECT-TYPE
              SYNTAX  INTEGER{
                disable(0),
                enable(1)
                }
                MAX-ACCESS  read-write
                STATUS  current
                DESCRIPTION
                        "0. disable 
                         1. enable
                         Enable/Disable IPv6 function on the interface of switch."
                ::= { ipv6ParaConfigCfgEntry 6 }
				
	ipv6GatewayConfig  			OBJECT IDENTIFIER ::= {tplinkIpv6AddrMIBObjects 3}
		ipv6Gateway OBJECT-TYPE
			SYNTAX  OCTET STRING(SIZE(46))
			MAX-ACCESS  read-write
			STATUS  current
			DESCRIPTION
				"The gateway of the ipv6 interface. Set '0' to delete the gateway."
			::= { ipv6GatewayConfig 1 }
			
	tpIpv6Routing	OBJECT-TYPE
			SYNTAX  INTEGER{
					disable(0),
					enable(1)
					}
			MAX-ACCESS  read-write
			STATUS  current
			DESCRIPTION
					"0. disable
					1. enable"
			::= { tplinkIpv6RoutingConfig 1 }

END
