-- These MIBs were created on 05/11/2001
-- This module defines NetScreen private MIBs for interface configuration
-- 
-- Copyright (c) 1999 - 2001 by NetScreen Technologies, Inc.
-- All rights reserved.
-- 

-- MODULE-IDENTITY
--  OrgName
--    Netscreen Technologies, Inc.
--  ContactInfo
--     Customer Support
--     
--     350 Oakmead Parkway
--     Sunnyvale, CA  94085
--     USA
--    
--     Tel: 1.877.NETSCREEN
--     E-mail: support@netscreen.com
--     Http://www.netscreen.com

--  Descr
--    This module defines the object that are used to monitor
--    NS's interface configuration 
--
--  Last modified date: 09/28/2001
--    

NETSCREEN-INTERFACE-MIB DEFINITIONS ::= BEGIN
IMPORTS

    DisplayString 	FROM RFC1213-MIB 
    netscreenInterface 	FROM NETSCREEN-SMI;    

	nsIfSecondaryIpTable OBJECT-TYPE
		SYNTAX  SEQUENCE OF NsIfSecondaryIpEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION 
		        "In some ScreenOS, it supports multiple IP addresses and related subnets
		         based on the same interface. This table collects the multiple IP addresses
		         configuration on an interface. "
		::= { netscreenInterface 2 }

    nsIfSecondaryIpEntry OBJECT-TYPE
        SYNTAX  NsIfSecondaryIpEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
               "nsIfSecondaryIpEntry collects some attributes about multiple IP configurations 
               on an interface."
        INDEX   { nsIfSecondaryIpIndex }
        ::= { nsIfSecondaryIpTable 1 }

    NsIfSecondaryIpEntry ::=
        SEQUENCE {
        	nsIfSecondaryIpIndex
            	INTEGER,
            nsIfSecondaryIpIfIdx
                INTEGER,
            nsIfSecondaryIpVsys
                INTEGER,
            nsIfSecondaryIpZone
            	INTEGER,
            nsIfSecondaryIpAddress
                IpAddress,
            nsIfSecondaryIpNetmask
            	IpAddress
       }

    nsIfSecondaryIpIndex OBJECT-TYPE
    	SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The table index used as primary key when retrieving the table." 
        ::= { nsIfSecondaryIpEntry 1 }
    nsIfSecondaryIpIfIdx OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
			"The index value which uniquely identifies 
			an interface the secodary ip belongs to.  
			The interface identified by a particular value 
			of this index is the same interface as identified
			by the same value of ifIndex." 
        ::= { nsIfSecondaryIpEntry 2 }
    nsIfSecondaryIpVsys OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory             
        DESCRIPTION
                "According NetScreen's concepts, each interface belongs to one virtual
                 system. This attribute displays the virtual system ID an interface
                 belongs to. If the device is device which doesn't support vsys such as 
                 NS-100, we can logically think all the setting belongs to 'root' vsys." 
        ::= { nsIfSecondaryIpEntry 3 } 
    nsIfSecondaryIpZone OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "each interface belongs to one security zone. this attribute displays
                 the security zone name an interface belongs to." 
        ::= { nsIfSecondaryIpEntry 4 }
    nsIfSecondaryIpAddress OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Ip Address value." 
        ::= { nsIfSecondaryIpEntry 5 }
    nsIfSecondaryIpNetmask OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Subnet of a ip belongs to." 
        ::= { nsIfSecondaryIpEntry 6 }


	nsIfTable OBJECT-TYPE
		SYNTAX  SEQUENCE OF NsIfEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION 
		        "All NetScreen devices have a trusted interface and an untrusted interface. The
		        NetScreen-10 and -100 also have a DMZ interface. Additionally, on each of the 
		        virtual systems supported by the NetScreen-1000 there can be on or more tursted 
		        subinterfaces linking a particular virtual system to one or more virtual LANs.
		        Other interfaces-some physical, some logical, and some virtual-provide exclusive 
		        channels for administrative traffic, or for communication among member in a 
		        redundant group.
		        In this table, it will collect following interface: tursted interface, untrusted 
		        interface, DMZ interface, Management Interface and Subinterface."
		::= { netscreenInterface 1 }

    nsIfEntry OBJECT-TYPE
        SYNTAX  NsIfEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
               "nsIfEntry collects some attributes about NetScreen interface settings."
        INDEX   { nsIfIndex }
        ::= { nsIfTable 1 }

    NsIfEntry ::=
        SEQUENCE {
        	nsIfIndex
            	INTEGER,
            nsIfName
                DisplayString(SIZE(0..32)),
            nsIfVsys
                INTEGER,
            nsIfZone
            	INTEGER,
            nsIfStatus
                INTEGER,
            nsIfIp
                IpAddress,
            nsIfNetmask
              	IpAddress,
            nsIfGateway
              	IpAddress,
            nsIfMngIp
              	IpAddress,
            nsIfMode
              	INTEGER,
            nsIfMAC
             	DisplayString(SIZE(0..32)),
            nsIfMngTelnet
              	INTEGER,
            nsIfMngSCS
              	INTEGER,
            nsIfMngWEB
              	INTEGER,
            nsIfMngSSL
              	INTEGER,
            nsIfMngSNMP
              	INTEGER,
            nsIfMngGlobal
            	INTEGER,
            nsIfMngGlobalPro
            	INTEGER,
            nsIfMngPing
            	INTEGER,
            nsIfMngIdentReset
              	INTEGER
        }

    nsIfIndex OBJECT-TYPE
    	SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Interface number which uniquely identifies an interface." 
        ::= { nsIfEntry 1 }
    nsIfName OBJECT-TYPE
        SYNTAX  DisplayString(SIZE(0..32))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Each interface has a readable name such as 'trust', 'trust/1', etc." 
        ::= { nsIfEntry 2 }
    nsIfVsys OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory             
        DESCRIPTION
                "According NetScreen's concepts, each interface belongs to one virtual
                 system. This attribute displays the virtual system name an interface
                 belongs to. If the device is device which doesn't support vsys such as 
                 NS-100, we can logically think all the setting belongs to 'root' vsys." 
        ::= { nsIfEntry 3 } 
    nsIfZone OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Each interface belongs to one security zone. This attribute displays
                 the security zone name an interface belongs to." 
        ::= { nsIfEntry 4 }
    nsIfStatus OBJECT-TYPE
        SYNTAX  INTEGER   {
                down(0),
                up(1)
              }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The interface status which indicates interface's operational status. "
        ::= { nsIfEntry 5 }
    nsIfIp OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Each interface must be assigned an IP address." 
        ::= { nsIfEntry 6 }
	nsIfNetmask OBJECT-TYPE
		SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        	"Each interface must belong to a subnet represented by netmask." 
        ::= { nsIfEntry 7 }
	nsIfGateway OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        	"Default gateway ip address." 
		::= { nsIfEntry 8 }
	nsIfMngIp OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        	"Trusted, untrusted and DMZ interfaces can have two IP address: an interface
        	IP address that corresponds to the physical port through which that 
        	interface connects to a network, and a Manage IP address that can be used to 
        	receive administrative traffic" 
		::= { nsIfEntry 9 }
    nsIfMode OBJECT-TYPE
        SYNTAX  INTEGER {
        		transparent(0),
        		nat(1),
        		route(2),
        		not-applicable(3)
        	 }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "NetScreen interface can has three operation modes. They are transparent,
            nat and route. " 
        ::= { nsIfEntry 10 }
	nsIfMAC OBJECT-TYPE
		SYNTAX  DisplayString(SIZE(0..32))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        	"MAC address the interface has." 
        ::= { nsIfEntry 11 }
	nsIfMngTelnet OBJECT-TYPE
		SYNTAX  INTEGER {
				disable(0),
				enable(1)
	      	}
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        	"This attribute is used to indicate whether the interface permits telnet 
        	management."
		::= { nsIfEntry 12 }
	nsIfMngSCS OBJECT-TYPE
    	SYNTAX  INTEGER {
				disable(0),
				enable(1)
	      	}
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        	"This attribute is used to indicate whether the interface permits Secure
        	Command Shell management."
        ::= { nsIfEntry 13 }
	nsIfMngWEB OBJECT-TYPE
        SYNTAX  INTEGER {
				disable(0),
				enable(1)
	    	}
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "This attribute is used to indicate whether the interface permits WEB UI 
        	management." 
		::= { nsIfEntry 14 }
	nsIfMngSSL OBJECT-TYPE
        SYNTAX  INTEGER {
			disable(0),
			enable(1)
		}
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        	"This attribute is used to indicate whether the interface permits SSL 
        	management." 
		::= { nsIfEntry 15 }
	nsIfMngSNMP OBJECT-TYPE
    	SYNTAX  INTEGER {
				disable(0),
				enable(1)
	    	}
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        	"This attribute is used to indicate whether the interface permits SNMP 
        	management." 
		::= { nsIfEntry 16 }
	nsIfMngGlobal OBJECT-TYPE
        SYNTAX  INTEGER {
				disable(0),
				enable(1)
	      	}
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        	"This attribute is used to indicate whether the interface permits NS Global 
        	management." 
		::= { nsIfEntry 17 }
	nsIfMngGlobalPro OBJECT-TYPE
        SYNTAX  INTEGER {
				disable(0),
				enable(1)
	    		}
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        	"This attribute is used to indicate whether the interface permits NS Global
        	Pro management." 
		::= { nsIfEntry 18 }
	nsIfMngPing OBJECT-TYPE
        SYNTAX  INTEGER {
				disable(0),
				enable(1)
	    	}
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        	"This attribute is used to indicate whether the interface permits Ping go-through." 
		::= { nsIfEntry 19 }
	nsIfMngIdentReset OBJECT-TYPE
      	SYNTAX  INTEGER  {
				disable(0),
				enable(1)
	    	}
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        	"This attribute is used to indicate whether the interface permits ident reset."
		::= { nsIfEntry 20 }

	nsIfFlowTable OBJECT-TYPE
		SYNTAX  SEQUENCE OF NsIfFlowEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION 
		        "nsIfFlowTable is used to get flow statistical information of the interface."
		::= { netscreenInterface 3 }

    nsIfFlowEntry OBJECT-TYPE
        SYNTAX  NsIfFlowEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
               "Table entry collect some attributes about interface flow counters."
        INDEX   { nsIfFlowIfIdx }
        ::= { nsIfFlowTable 1 }

    NsIfFlowEntry ::=
        SEQUENCE {
        	nsIfFlowIfIdx
            	INTEGER,
            nsIfFlowVsys
                INTEGER,
            nsIfFlowInByte
                Counter,
            nsIfFlowInPacket
                Counter,
            nsIfFlowOutByte
                Counter,
            nsIfFlowOutPacket
                Counter,
            nsIfFlowInVpn
                Counter,
            nsIfInVlan
                Counter,
            nsIfOutVlan
                Counter
        }

    nsIfFlowIfIdx OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Unique interface id, also used as table index." 
        ::= { nsIfFlowEntry 1 }
    nsIfFlowVsys OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "According NetScreen's concepts. each interface belongs to one virtual
                 system. This attribute displays the virtual system name an interface
                 belongs to." 
        ::= { nsIfFlowEntry 2 } 
    nsIfFlowInByte OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Incoming byte number arriving at the this interface" 
        ::= { nsIfFlowEntry 3 }
    nsIfFlowInPacket OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Incoming packet number arriving at the this interface" 
        ::= { nsIfFlowEntry 4 }
    nsIfFlowOutByte OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Outgoing byte number sending through this interface" 
        ::= { nsIfFlowEntry 5 }
    nsIfFlowOutPacket OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Outgoing packet number sending through this interface" 
        ::= { nsIfFlowEntry 6 }
    nsIfFlowInVpn OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "VPN packet go through this interface" 
        ::= { nsIfFlowEntry 7 }
    nsIfInVlan OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Incoming vlan packet" 
        ::= { nsIfFlowEntry 8 }
     nsIfOutVlan OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Outgoing vlan packet" 
        ::= { nsIfFlowEntry 9 }

	nsIfMonTable OBJECT-TYPE
		SYNTAX  SEQUENCE OF NsIfMonEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION 
		        "This table collects some of dropped packet counters of interface"
		::= { netscreenInterface 4 }

    nsIfMonEntry OBJECT-TYPE
        SYNTAX  NsIfMonEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
               "An entry containing tunnel information"
        INDEX   { nsIfMonIfIdx }
        ::= { nsIfMonTable 1 }

    NsIfMonEntry ::=
        SEQUENCE {
        	nsIfMonIfIdx
            	INTEGER,
            nsIfMonVsys
                INTEGER,
            nsIfMonPlyDeny
                Counter,
            nsIfMonAuthFail
                Counter,
            nsIfMonUrlBlock
                Counter,
            nsIfMonTrMngQueue
                Counter,
            nsIfMonTrMngDrop
                Counter,
            nsIfMonEncFail
                Counter,
            nsIfMonNoSa
                Counter,
            nsIfMonNoSaPly
                Counter,
            nsIfMonSaInactive
                Counter,
            nsIfMonSaPolicyDeny
                Counter
        }
    nsIfMonIfIdx OBJECT-TYPE
    	SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Unique interface id, also used as table index." 
        ::= { nsIfMonEntry 1 }
    nsIfMonVsys OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "According NetScreen's concepts, each interface belongs to one virtual
                 system. This attribute displays the virtual system name an interface
                 belongs to." 
        ::= { nsIfMonEntry 2 } 
    nsIfMonPlyDeny OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Packet drop since denied by policy." 
        ::= { nsIfMonEntry 3 }
    nsIfMonAuthFail OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Packet drop due to authentication failed." 
        ::= { nsIfMonEntry 4 }
    nsIfMonUrlBlock OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Packet drop due to URL blocking." 
        ::= { nsIfMonEntry 5 }
    nsIfMonTrMngQueue OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "packet queue up due to traffic management" 
        ::= { nsIfMonEntry 6 }
    nsIfMonTrMngDrop OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Packet drop due to traffic management" 
        ::= { nsIfMonEntry 7 }
    nsIfMonEncFail OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "IPSec enc failed due to sa not available, no ipak, etc" 
        ::= { nsIfMonEntry 8 }
    nsIfMonNoSa OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "packet drop due to no sa found for incomig spi" 
        ::= { nsIfMonEntry 9 }
    nsIfMonNoSaPly OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "packet drop due to no policy associated with found sa"
        ::= { nsIfMonEntry 10 }
    nsIfMonSaInactive OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "packet drop due to sa not active"
        ::= { nsIfMonEntry 11 }
    nsIfMonSaPolicyDeny OBJECT-TYPE
    	SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "packet drop due to denial by sa policy"
        ::= { nsIfMonEntry 12 }        

END
