-- ********************************************************************
-- * Wireless LAN Enterprise Access Point Management Base
-- ********************************************************************

	AP-SYSTEM-NETWORK DEFINITIONS ::= BEGIN
 
		IMPORTS
			OBJECT-GROUP			
	 			FROM SNMPv2-CONF			
			enterprises, IpAddress,Unsigned32, OBJECT-TYPE, MODULE-IDENTITY			
				FROM SNMPv2-SMI			
			DisplayString, RowStatus, TruthValue, MacAddress			
				FROM SNMPv2-TC;

--
-- Node definitions
--

-- The Enterprises Number		
		-- .1.3.6.1.4.1.27662	
		pepwave OBJECT IDENTIFIER ::= { enterprises 27662 }        
              
		-- .1.3.6.1.4.1.27662.200
		productID  OBJECT IDENTIFIER ::= { pepwave 200 }

		-- .1.3.6.1.4.1.27662.200.1
		apMib OBJECT IDENTIFIER ::= { productID 1 }
		
		-- .1.3.6.1.4.1.27662.200.1.1
		apGeneralMib OBJECT IDENTIFIER ::= { apMib 1 }

-- ********************************************************************
-- *  MODULE IDENTITY
-- ********************************************************************

		ap-system-network-mib MODULE-IDENTITY 
			LAST-UPDATED "2011081900Z"		-- 08 19, 2011 at 12:00 GMT
			ORGANIZATION 
				"PEPWAVE"
			CONTACT-INFO 
				""
			DESCRIPTION 
				"The MIB module for PEPWAVE Enterprise WiFi AP.
				iso(1).org(3).dod(6).internet(1).private(4).
				enterprises(1).pepwave(27662).productID(200).apMib(1).apGeneralMib(1).ap-system-network-mib(2)"
			::= { apGeneralMib 2 }

--   Wireless LAN Access Point Identifier
-- 
-- **********************************************************************
-- *  MIB attribute OBJECT-TYPE definitions follow
-- **********************************************************************
	apNetworkInfo OBJECT IDENTIFIER ::= { ap-system-network-mib 1 }		

-- **********************************************************************
-- *  AP System Network Information
-- **********************************************************************
	apWanInfo OBJECT IDENTIFIER ::= { apNetworkInfo 1 }

		apCurrentIpAddressMode  OBJECT-TYPE
			SYNTAX INTEGER{
				automatic(0), 
				manual(1), 
				pppoe(2)
			}
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"This attribute indicates the current IP address mode of the AP."
			::= { apWanInfo 1 }

		apCurrentIpAddress OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"This attribute indicates the current IP address of the AP."
			::= { apWanInfo 2 }

		apCurrentSubnetMask OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"This attribute indicates the current subnet mask of the AP."
			::= { apWanInfo 3 }	

		apCurrentGateway OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"This attribute indicates the current default gateway of the AP."
			::= { apWanInfo 4 }

		apCurrentDns OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"This attribute indicates the current dns of the AP."
			::= { apWanInfo 5 }
	
	apPppoeInfo OBJECT IDENTIFIER ::= { apNetworkInfo 4 }

		apPppoeStatus OBJECT-TYPE
			SYNTAX INTEGER{disable(0), connecting(1), connected(2)}	
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"This attribute indicates the status of PPPoE."
			::= { apPppoeInfo 1 }

		apPppoeStatusMessage OBJECT-TYPE
			SYNTAX OCTET STRING(SIZE(1..64))
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"This attribute indicates the status message of PPPoE."
			::= { apPppoeInfo 2 }

	apNetworkConfig OBJECT IDENTIFIER ::= { ap-system-network-mib 2 }
	
	apWanConfig OBJECT IDENTIFIER ::= { apNetworkConfig 1 }
		
		apKeepDefaultIp OBJECT-TYPE
			SYNTAX INTEGER{
				disable(0), 
				enable(1)
			}
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the keep default IP status of AP."
			::= { apWanConfig 1 }

		apIpAddressMode OBJECT-TYPE
			SYNTAX INTEGER{
				automatic(0), 
				manual(1), 
				pppoe(2)
			}
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the IP address mode of the AP."
			::= { apWanConfig 2 }

		apIpAddress OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the static management IP 
				address of the AP."
			::= { apWanConfig 3 }

		apSubnetMask OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the static netmask of the 
				management interface."
			::= { apWanConfig 4 }

		apGateway OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the static gateway IP address 
				for the management interface."
			::= { apWanConfig 5 }

		apDns OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the static DNS
				for the management interface."
			::= { apWanConfig 6 }

	apLanConfig OBJECT IDENTIFIER ::= { apNetworkConfig 2 }

		apLanIpAddress OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the IP address 
				of the LAN interface."
			::= { apLanConfig 1 }

		apLanSubnetMask OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the subnet mask
				of the LAN interface."
			::= { apLanConfig 2 }

		apLanDhcpServer OBJECT-TYPE
			 SYNTAX INTEGER{
				disable(0), 
				enable(1)
			}
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the status of the LAN DHCP
				Server."
			::= { apLanConfig 3 }

		apLanDhcpServerStartRange OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the start range of the LAN DHCP 
				Server."
			::= { apLanConfig 4 }

		apLanDhcpServerStopRange OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the stop range of the LAN DHCP 
				Server."
			::= { apLanConfig 5 }

		apLanDhcpServerSubnetMask OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the subnet mask of the LAN DHCP 
				Server."
			::= { apLanConfig 6 }

		apLanDhcpServerBroadcast OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the broadcast address of the LAN
				DHCP Server."
			::= { apLanConfig 7 }
			
		apLanDhcpServerGateway OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the gateway of the LAN DHCP 
				Server."
			::= { apLanConfig 8 }

		apLanDhcpServerDns1 OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the first DNS server of the LAN DHCP 
				Server."
			::= { apLanConfig 9 }

		apLanDhcpServerDns2 OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the second DNS server of the LAN DHCP 
				Server."
			::= { apLanConfig 10 }

		apLanDhcpServerDns3 OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the third DNS server of the LAN DHCP 
				Server."
			::= { apLanConfig 11 }

		apLanDhcpDomain OBJECT-TYPE
			SYNTAX OCTET STRING (SIZE (0..64))
--			MAX-ACCESS read-write
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"This attribute indicates the domain of the LAN DHCP 
				Server."
			::= { apLanConfig 12 }

		apLanDhcpRelease OBJECT-TYPE
			SYNTAX INTEGER(60..9999999)
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the lease time of the LAN DHCP 
				Server."
			::= { apLanConfig 13 }


-- **********************************************************************
-- *  LAN Reservation Table
-- **********************************************************************
	apLanReservationTable OBJECT-TYPE
		SYNTAX SEQUENCE OF ApLanReservationEntry
		MAX-ACCESS not-accessible
		STATUS current
		DESCRIPTION
			"LAN Reservation Table."
		::= { apLanConfig 14 }

		apLanReservationEntry OBJECT-TYPE
			SYNTAX ApLanReservationEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"An entry in the apLanReservationTable."
			INDEX { apLanReservationIndex }
			::= { apLanReservationTable 1 }

		ApLanReservationEntry ::=
			SEQUENCE {			
				apLanReservationIndex
					INTEGER,
				apLanReservationRowControl
					INTEGER,
				apLanReservationMacAddress
					MacAddress,
				apLanReservationIp
					IpAddress
			}	

		apLanReservationIndex OBJECT-TYPE
			SYNTAX INTEGER
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"This attribute indicates the LAN Reservation index"
			::= { apLanReservationEntry 1 }

		apLanReservationRowControl OBJECT-TYPE
                        SYNTAX RowStatus
                  	MAX-ACCESS read-create
                        STATUS current
                        DESCRIPTION
                                "The LAN Reservation status.
                                Supported values:
				active(1)      - valid entry
				notReady(3)    - non-valid entry
                                createAndGo(4) - used to create a new entry
                                destroy(6)     - removes the entry"
			::= { apLanReservationEntry 2 }

		apLanReservationMacAddress OBJECT-TYPE
			SYNTAX MacAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This field indicates a MAC address entry in the LAN Reservation.
				Remarks:
				Input format:
				0xXX 0xXX 0xXX 0xXX 0xXX 0xXX OR XX:XX:XX:XX:XX:XX OR XX-XX-XX-XX-XX-XX
				(examples: 0xab 0xcd 0xef 0x01 0x02 0x03 OR ab:cd:ef:01:02:03 OR ab-cd-ef-01-02-03)
				X: [0:9] or [a:f] or [A:F]
				*** Please don 't enter duplicate MAC address. ***"
			::= { apLanReservationEntry 3 }

		apLanReservationIp OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This field indicates a IP address entry in the LAN Reservation."
			::= { apLanReservationEntry 4 }

	apPppoeConfig OBJECT IDENTIFIER ::= { apNetworkConfig 3 }

		apPppoeUsername OBJECT-TYPE
			SYNTAX OCTET STRING (SIZE (1..64))
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the username of PPPoE."
			::= { apPppoeConfig 1 }

		apPppoePassword OBJECT-TYPE
			SYNTAX OCTET STRING (SIZE (1..64))
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the password of PPPoE."
			::= { apPppoeConfig 2 }

		apPppoeServiceName OBJECT-TYPE
			SYNTAX OCTET STRING (SIZE (0..64))
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the service name of PPPoE."
			::= { apPppoeConfig 3 }

	apDmzConfig OBJECT IDENTIFIER ::= { apNetworkConfig 4 }

		apDmzStatus OBJECT-TYPE
			SYNTAX	INTEGER {
				disable(0), 
				enable(1)
			}
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the status of DMZ."
			::= { apDmzConfig 1 }


		apDmzIp OBJECT-TYPE
			SYNTAX	IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This attribute indicates the IP address of DMZ."
			::= { apDmzConfig 2 }

-- **********************************************************************
-- *  Port Forward Table
-- **********************************************************************
	apPortForwardTable OBJECT-TYPE
		SYNTAX SEQUENCE OF ApPortForwardEntry
		MAX-ACCESS not-accessible
		STATUS current
		DESCRIPTION
			"LAN Port Forward Table."
		::= { apNetworkConfig 5 }

		apPortForwardEntry OBJECT-TYPE
			SYNTAX ApPortForwardEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"An entry in the apPortForwardTable."
			INDEX { apPortForwardIndex }
			::= { apPortForwardTable 1 }

		ApPortForwardEntry ::=
			SEQUENCE {			
				apPortForwardIndex
					INTEGER,
				apPortForwardRowControl
					INTEGER,
				apPortForwardName	
					OCTET STRING,
				apPortForwardToIp	
					IpAddress,
				apPortForwardPortProtocol	
					INTEGER,
				apPortForwardAppServiceType	
					INTEGER,
				apPortForwardPortType	
					INTEGER,
				apPortForwardFromPort	
					OCTET STRING,
				apPortForwardToPort	
					OCTET STRING
			}

		apPortForwardIndex OBJECT-TYPE
			SYNTAX INTEGER
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"This attribute indicates the port forward index"
			::= { apPortForwardEntry 1 }

		apPortForwardRowControl OBJECT-TYPE
                        SYNTAX RowStatus
                  	MAX-ACCESS read-create
                        STATUS current
                        DESCRIPTION
                                "The port forward status.
                                Supported values:
				active(1)      - valid entry
				notReady(3)    - non-valid entry
                                createAndGo(4) - used to create a new entry
                                destroy(6)     - removes the entry"
			::= { apPortForwardEntry 2 }

		apPortForwardName OBJECT-TYPE
			SYNTAX OCTET STRING(SIZE(1..32))
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This field indicates the name of port forward."
			::= { apPortForwardEntry 3 }

		apPortForwardToIp OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This field indicates the to IP address of port forward."
			::= { apPortForwardEntry 4 }

		apPortForwardPortProtocol OBJECT-TYPE
			SYNTAX INTEGER{
				tcp(0), 
				udp(1)
			}
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This field indicates the protocol of port forward."
			::= { apPortForwardEntry 5 }

		 apPortForwardAppServiceType OBJECT-TYPE
			SYNTAX 	INTEGER{
				na(0),
				http(80),
				https(443),
				iamp(143),
				pop3(110),
				rdp(3389),
				smtp(25),
				ssh(22),
				telnet(23),
				aol(5190),
				auth(113),
				citrix(1494),
				dns(53),
				ftp(21),
				ldap(389),
				loctusnotes(1352),
				ms-sql-monitor(1434),
				ms-sql-server(1433),
				ntp(123),
				radius(1812),
				radius-acct(1813),
				rtsp(554),
				snmp(161),
				snmp-trap(162),
				syslog(514),
				traceroute(33434)
			}
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This field indicates the service type of port forward."
			::= { apPortForwardEntry 6 }
 
		apPortForwardPortType OBJECT-TYPE
			SYNTAX INTEGER{
				single-port(0),
				port-range(1),
				port-mapping(2),
				range-mapping(3)
			}
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This field indicates the port type of port forward."
			::= { apPortForwardEntry 7 }

		 apPortForwardFromPort OBJECT-TYPE
			SYNTAX OCTET STRING(SIZE(1..11))
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This field indicates the from port of port forward."
			::= { apPortForwardEntry 8 }

		 apPortForwardToPort OBJECT-TYPE
			SYNTAX OCTET STRING(SIZE(0..11))
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"This field indicates the to port of port forward."
			::= { apPortForwardEntry 9 }
END

