-- **********************************************
-- ZYXEL-ZW-COMMON.MIB
-- Zyxel Communications Corporation
-- 
-- ZyWALL Security Gateway MIB definitions
-- ZyWALL ZLD Common MIBs (COMMON) for CPU, RAM, Disk, Session Utilizations and IPSec Tunnel Information
-- Suggest to use new MIBs in ZYXEL-ES-COMMON.MIB to get CPU, RAM, Disk, Session Utilization
-- 
-- Joshua Jang
--
-- Copyright by Zyxel Communications Corp.
-- All rights reserved.
-- **********************************************

ZYXEL-ZW-COMMON DEFINITIONS ::= BEGIN
	IMPORTS
		enterprises
			FROM RFC1155-SMI
		OBJECT-TYPE
			FROM RFC-1212
		DisplayString
			FROM RFC1213-MIB
		TRAP-TYPE
			FROM RFC-1215
		NOTIFICATION-TYPE
			FROM SNMPv2-SMI
		zywallZLDCommon
			FROM ZYXEL-ZW-SMI;

	-- ZyWALL ZLD Key Groups
	zldSystem		OBJECT IDENTIFIER ::= { zywallZLDCommon 1 }
	zldIpSecVPN		OBJECT IDENTIFIER ::= { zywallZLDCommon 2 }

	-- ZyWALL ZLD System
	sysCPUUsage OBJECT-TYPE
		SYNTAX  INTEGER
		MAX-ACCESS  read-only
		STATUS  mandatory
		DESCRIPTION
			"Device CPU load."
		::= { zldSystem 1 }

	sysRAMUsage OBJECT-TYPE
		SYNTAX  INTEGER
		MAX-ACCESS  read-only
		STATUS  mandatory
		DESCRIPTION
			"Device RAM Usage."
		::= { zldSystem 2 }

	sysCPU5SecUsage OBJECT-TYPE
		SYNTAX  INTEGER
		MAX-ACCESS  read-only
		STATUS  mandatory
		DESCRIPTION
			"Average of past 5 secs cpu load."
		::= { zldSystem 3 }
		
	sysCPU1MinUsage OBJECT-TYPE
		SYNTAX  INTEGER
		MAX-ACCESS  read-only
		STATUS  mandatory
		DESCRIPTION
			"Average of past 1 min cpu load."
		::= { zldSystem 4 }
		
	sysCPU5MinUsage OBJECT-TYPE
		SYNTAX  INTEGER
		MAX-ACCESS  read-only
		STATUS  mandatory
		DESCRIPTION
			"Average of past 5 min cpu load."
		::= { zldSystem 5 }
		
	sysSessionNum OBJECT-TYPE
		SYNTAX  INTEGER
		MAX-ACCESS  read-only
		STATUS  mandatory
		DESCRIPTION
			"Device Session Num."
		::= { zldSystem 6 }

	sysFLASHUsage OBJECT-TYPE
		SYNTAX  INTEGER
		MAX-ACCESS  read-only
		STATUS  mandatory
		DESCRIPTION
			"Device FLASH Usage."
		::= { zldSystem 7 }
		
	-- ZyWALL ZLD IpSec VPN

	vpnIpSecTotalThroughput	OBJECT-TYPE
		SYNTAX	INTEGER
		MAX-ACCESS	read-only
		STATUS	mandatory
		DESCRIPTION
			"The VPN total throughput(B/s)."
		::= { zldIpSecVPN 1 }

	vpnTunnelTable OBJECT-TYPE
		SYNTAX  SEQUENCE OF VPNTunnelEntry
		MAX-ACCESS  not-accessible
		STATUS  current
		DESCRIPTION
			"A list of VPN tunnel entries. The number depends on product 
			definition."
		::= { zldIpSecVPN 2 }
	
	vpnTunnelEntry OBJECT-TYPE
		SYNTAX  VPNTunnelEntry
		MAX-ACCESS  not-accessible
		STATUS  current
		DESCRIPTION
        		"An entry containing comment the information for on a particular 
                         configured VPN tunnel."
		INDEX   { vpnTunnelIndex }
		::= { vpnTunnelTable 1 }
	
	VPNTunnelEntry ::= SEQUENCE {
		vpnTunnelName 	DisplayString,
		vpnIKEName  	DisplayString,
		vpnTunnelSPI	DisplayString
		}
	
	vpnTunnelName OBJECT-TYPE
		SYNTAX	DisplayString
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"The name of VPN tunnel."
		::= { vpnTunnelEntry 1 }

	vpnIKEName OBJECT-TYPE
		SYNTAX	DisplayString
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
			"The name of IKE tunnel."
		::= { vpnTunnelEntry 2 }

	vpnTunnelSPI OBJECT-TYPE
		SYNTAX 	DisplayString
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
			"The security parameter index associated with a VPN tunnel."
                ::= { vpnTunnelEntry 3 }

	vpnTunnelDisconnected NOTIFICATION-TYPE
		OBJECTS {vpnTunnelName, vpnIKEName, 
                         vpnTunnelSPI }
		STATUS	current
		DESCRIPTION
			"The trap indicates that the specified tunnel is disconnected."
		::= { zldIpSecVPN 3 }

	vpnStatusTable OBJECT-TYPE
		SYNTAX  SEQUENCE OF VpnStatusEntry
		MAX-ACCESS  not-accessible
		STATUS  current
		DESCRIPTION
			"A list of VPN tunnel entries. The number depends on product 
			definition."
		::= { zldIpSecVPN 4 }

	vpnStatusEntry OBJECT-TYPE
		SYNTAX  VpnStatusEntry
		MAX-ACCESS  not-accessible
		STATUS  current
		DESCRIPTION
        		"An entry containing comment the information for on a particular 
                         configured VPN tunnel."
		INDEX   { vpnStatusIndex }
		::= { vpnStatusTable 1 }
	
	VpnStatusEntry ::= SEQUENCE {
		vpnStatusIndex			INTEGER,
		vpnStatusConnectionName DisplayString,
		vpnStatusGateway  		DisplayString,
		vpnStatusIPVersion		DisplayString,
		vpnStatusActiveStatus 	INTEGER,
		vpnStatusConnectStatus	INTEGER
		}

	vpnStatusIndex OBJECT-TYPE
		SYNTAX	INTEGER
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"The table index of VPN connection."
		::= { vpnStatusEntry 1 }

	vpnStatusConnectionName OBJECT-TYPE
		SYNTAX	DisplayString
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"The name of VPN connection."
		::= { vpnStatusEntry 2 }

	vpnStatusGateway OBJECT-TYPE
		SYNTAX	DisplayString
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"The name of VPN gateway."
		::= { vpnStatusEntry 3 }

	vpnStatusIPVersion OBJECT-TYPE
		SYNTAX	DisplayString
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"IP version of the VPN connection: either IPv4 or IPv6."
		::= { vpnStatusEntry 4 }

	vpnStatusActiveStatus OBJECT-TYPE
		SYNTAX	INTEGER {
		          inactive(0),
		          active(1)
		        }
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"Activation status of VPN connection."
		::= { vpnStatusEntry 5 }

	vpnStatusConnectStatus OBJECT-TYPE
		SYNTAX	INTEGER {
		          disconnected(0),
		          connected(1)
		        }
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"Connection status of VPN connection."
		::= { vpnStatusEntry 6 }

	vpnConnectionCounter OBJECT IDENTIFIER ::= { zldIpSecVPN 5 }

	vpnConnectionTotal OBJECT-TYPE
		SYNTAX	Counter
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"Total number of VPN connection configured."
		::= { vpnConnectionCounter 1 }

	vpnConnectionActive OBJECT-TYPE
		SYNTAX	Counter
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"Number of activated VPN connection."
		::= { vpnConnectionCounter 2 }

	vpnConnectionConnected OBJECT-TYPE
		SYNTAX	Counter
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"Number of connected VPN connection."
		::= { vpnConnectionCounter 3 }

	vpnConnectionDisconnected OBJECT-TYPE
		SYNTAX	Counter
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"Number of disconnected VPN connection. The
     			value is equal to vpnConnectionActive minus
     			vpnConnectionConnected."
		::= { vpnConnectionCounter 4 }

	vpnSaMonitorTable OBJECT-TYPE
		SYNTAX  SEQUENCE OF VpnSaMonitorEntry
		MAX-ACCESS  not-accessible
		STATUS  current
		DESCRIPTION
			"A list of VPN security associate (SA) entries."
		::= { zldIpSecVPN 6 }

	vpnSaMonitorEntry OBJECT-TYPE
		SYNTAX  VpnSaMonitorEntry
		MAX-ACCESS  not-accessible
		STATUS  current
		DESCRIPTION
        		"An entry containing comment the information for on a particular 
                         configured VPN tunnel."
		INDEX   { vpnSaMonitorIndex }
		::= { vpnSaMonitorTable 1 }
	
	VpnSaMonitorEntry ::= SEQUENCE {
		vpnSaMonitorIndex			INTEGER,
		vpnSaMonitorConnectionName 	DisplayString,
		vpnSaMonitorPolicy  		DisplayString,
		vpnSaMonitorUpTime		    INTEGER,
		vpnSaMonitorTimeout			INTEGER,
		vpnSaMonitorInPkts         	Counter64,
        vpnSaMonitorInBytes         Counter64,
		vpnSaMonitorOutPkts         Counter64,
        vpnSaMonitorOutBytes        Counter64,
		}

	vpnSaMonitorIndex OBJECT-TYPE
		SYNTAX	INTEGER
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"The table index of VPN connection."
		::= { vpnSaMonitorEntry 1 }

	vpnSaMonitorConnectionName OBJECT-TYPE
		SYNTAX	DisplayString
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"The name of VPN connection."
		::= { vpnSaMonitorEntry 2 }

	vpnSaMonitorPolicy OBJECT-TYPE
		SYNTAX	DisplayString
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"The IPSec policy of current VPN connection."
		::= { vpnSaMonitorEntry 3 }

	vpnSaMonitorUpTime OBJECT-TYPE
		SYNTAX	INTEGER
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"Up time (in seconds) of current VPN connection."
		::= { vpnSaMonitorEntry 4 }

	vpnSaMonitorTimeout OBJECT-TYPE
		SYNTAX	INTEGER
        MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"Timeout (in seconds) of current VPN connection."
		::= { vpnSaMonitorEntry 5 }

	vpnSaMonitorInPkts OBJECT-TYPE
		SYNTAX	Counter64
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"Number of in-bound packets of VPN connection."
		::= { vpnSaMonitorEntry 6 }

	vpnSaMonitorInBytes OBJECT-TYPE
		SYNTAX	Counter64
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"Number of in-bound bytes of VPN connection."
		::= { vpnSaMonitorEntry 7 }

	vpnSaMonitorOutPkts OBJECT-TYPE
		SYNTAX	Counter64
        MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"Number of out-bound packets of VPN connection."
		::= { vpnSaMonitorEntry 8 }

	vpnSaMonitorOutBytes OBJECT-TYPE
		SYNTAX	Counter64
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
     			"Number of out-bound bytes of VPN connection."
		::= { vpnSaMonitorEntry 9 }
END
