-- *****************************************************************
-- Copyright (c) 2017 SonicWall Inc.
-- All rights reserved.
-- *****************************************************************

SONICWALL-SMA-APPLIANCE-TUNNEL-SERVER-MIB	DEFINITIONS ::= BEGIN
	IMPORTS
       	sonicwallSMAAppliance
			FROM SONICWALL-SMA-MIB
		InternationalDisplayString 
			FROM HOST-RESOURCES-MIB
		OBJECT-TYPE, Integer32,NOTIFICATION-TYPE, MODULE-IDENTITY
			FROM SNMPv2-SMI;

sonicwallTunnelServer MODULE-IDENTITY
			LAST-UPDATED      "201804090001Z" 
			ORGANIZATION      "SonicWall"
			CONTACT-INFO       
				"	SonicWall Inc.

					Tel: +1 408 745 9600
					Fax: +1 408 745 9300

				E-mail: support@sonicwall.com"
			DESCRIPTION       "This SonicWall MIB provides Tunnel Server Statistics"
        	::= {sonicwallSMAAppliance 5}

tunnelServerState       OBJECT-TYPE
		SYNTAX			 InternationalDisplayString
		MAX-ACCESS	 read-only 	
		STATUS		        current	
		DESCRIPTION	 "This oid conveys tunnel service state as \
		                             ACTIVE, DOWN or CRASHED."
		::=  {  sonicwallTunnelServer  1  }

numOfTunnelServiceClientAddrPool OBJECT-TYPE
		SYNTAX			Integer32
		MAX-ACCESS	read-only
		STATUS			current
		DESCRIPTION	"The number of Client Addr Pool assigned"
		::=  {  sonicwallTunnelServer  2  }

tunnelServiceClientAddrPoolRangesTable OBJECT-TYPE
		SYNTAX		        SEQUENCE OF TunnelServiceClientAddrPoolEntry 
		MAX-ACCESS	 not-accessible
		STATUS		        current
		DESCRIPTION	"This table provides information about how many address \
		                             pools are currently active in a appliance & what are \
		                             their ranges."
		::=  { sonicwallTunnelServer 3 }
	
tunnelServiceClientAddrPoolEntry	OBJECT-TYPE
		SYNTAX		        TunnelServiceClientAddrPoolEntry
		MAX-ACCESS	 not-accessible
		STATUS		        current
		DESCRIPTION	 "The number of pools are currently active in a appliance."
		INDEX		{  tunnelServiceClientAddrPoolId  }
		::=  { tunnelServiceClientAddrPoolRangesTable 1 }

TunnelServiceClientAddrPoolEntry  ::=  SEQUENCE {
	    tunnelServiceClientAddrPoolId                     Integer32,
	    tunnelServiceClientAddrPoolUtilization          Integer32,
	    tunnelServiceStartRangeOfClientAddrPool     InternationalDisplayString,
	    tunnelServiceEndRangeOfClientAddrPool       InternationalDisplayString
           }

tunnelServiceClientAddrPoolId      OBJECT-TYPE	
		SYNTAX			 Integer32
		MAX-ACCESS	 read-only 	
		STATUS		        current	
		DESCRIPTION	 "Index field for client Address Pool Utilization"
		::=  {  tunnelServiceClientAddrPoolEntry  1  }


tunnelServiceClientAddrPoolUtilization OBJECT-TYPE
		SYNTAX		        Integer32
		MAX-ACCESS	 read-only
		STATUS		        current
		DESCRIPTION	"Percentages of total how many VIPs are issued from \
		                            this client address pools"
		::=  {  tunnelServiceClientAddrPoolEntry  2  }

tunnelServiceStartRangeOfClientAddrPool	OBJECT-TYPE	
		SYNTAX			InternationalDisplayString
		MAX-ACCESS	read-only
		STATUS			current
		DESCRIPTION	"IP address in dot notation stating start range of \
		                            client Address Pool Utilization"
		::=  {  tunnelServiceClientAddrPoolEntry  3  }

tunnelServiceEndRangeOfClientAddrPool	OBJECT-TYPE	
		SYNTAX			InternationalDisplayString
		MAX-ACCESS	read-only
		STATUS			current
		DESCRIPTION	"IP address in dot notation stating end range of \
		                            client Address Pool Utilization"
		::=  {  tunnelServiceClientAddrPoolEntry  4  }

numberOfTunnelServiceSslTunnels       OBJECT-TYPE	
		SYNTAX			Integer32
		MAX-ACCESS	read-only 	
		STATUS		       current	
		DESCRIPTION	"Total number how many tunnels existing on this appliance"
		::=  {  sonicwallTunnelServer  4  }


tunnelServiceSslTunnelTable OBJECT-TYPE
		SYNTAX		       SEQUENCE OF TunnelServiceSslTunnelEntry 
		MAX-ACCESS	not-accessible
		STATUS		        current
		DESCRIPTION	"The tunnel Server tunnels statistics."
		::=  { sonicwallTunnelServer 5 }
	
tunnelServiceSslTunnelEntry	OBJECT-TYPE
		SYNTAX		        TunnelServiceSslTunnelEntry
		MAX-ACCESS	 not-accessible
		STATUS		        current
		DESCRIPTION	 "This represents the tunnel service SSL tunnel table entry"
		INDEX		{  tunnelServiceSslTunnelId  }
		::=  { tunnelServiceSslTunnelTable 1 }

TunnelServiceSslTunnelEntry  ::=  SEQUENCE {
	    tunnelServiceSslTunnelId                    Integer32,
	    tunnelServiceSslTunnelUser                 InternationalDisplayString,
	    tunnelServiceSslTunnelVIP                  InternationalDisplayString,
	    numOfTunnelServiceFlowsPerTunnel     Integer32,
	    tunnelServiceSslTunnelUpTime              Integer32
	    }

tunnelServiceSslTunnelId      OBJECT-TYPE			
		SYNTAX			Integer32
		MAX-ACCESS	read-only 	
		STATUS		       current	
		DESCRIPTION	"Index field for tunnel service SSL Tunnel Table"
		::=  {  tunnelServiceSslTunnelEntry  1  }

tunnelServiceSslTunnelUser      OBJECT-TYPE	
		SYNTAX			InternationalDisplayString
		MAX-ACCESS	read-only 	
		STATUS		       current	
		DESCRIPTION	"Username associated with this tunnel service SSL Tunnel."
		::=  {  tunnelServiceSslTunnelEntry  2  }

tunnelServiceSslTunnelVIP      OBJECT-TYPE	
		SYNTAX			InternationalDisplayString
		MAX-ACCESS	read-only 	
		STATUS		       current	
		DESCRIPTION	"Virtual IP address associated with this tunnel service SSL tunnel."
		::=  {  tunnelServiceSslTunnelEntry  3  }

numOfTunnelServiceFlowsPerTunnel   OBJECT-TYPE	
		SYNTAX			Integer32
		MAX-ACCESS	read-only 	
		STATUS		       current	
		DESCRIPTION	"Number of flows per this tunnel service SSL tunnel."
		::=  {  tunnelServiceSslTunnelEntry  4  }

tunnelServiceSslTunnelUpTime	OBJECT-TYPE	
		SYNTAX			Integer32
		MAX-ACCESS	read-only 	
		STATUS		       current	
		DESCRIPTION	"Uptime statistics for this tunnel service SSL tunnel."
		::=  {  tunnelServiceSslTunnelEntry  5  }


tunnelServiceclientAddrPoolUtilizationWarning 	NOTIFICATION-TYPE
		STATUS			current
		DESCRIPTION     "When client address-pool utilization per pool \
		                             exceeds threshold a trap should be triggered."
		::=  {  sonicwallTunnelServer 100  }

tunnelServerStateChange 	NOTIFICATION-TYPE
		STATUS			current
		DESCRIPTION	"Tunnel Server core functionality depends upon user \
		                            space processes avssld, avpsd and avwq \
		                            kernel threads. SNMP agent will monitor these \
		                            four processes and when any of these go down \
		                            this trap will be triggered. Trap description \
		                            will specify tunnel service is down due to particular \
		                            component for example the description will contain \
		                            names of tunnel service and failed thread for example avssld(0)."
		::=  {  sonicwallTunnelServer   101}


END
