--
-- Title: Fibre Channel Switch MIB, Version 2.6
--
-- This is specified based on SMIv1, mainly to ensure that the specification
-- can be parsed easily by off-the-shelf network management product in
-- the market.
--
-- Major changes since the last release (V2.2):
--

SW-MIB DEFINITIONS ::= BEGIN
  IMPORTS
	enterprises, Counter, NetworkAddress
		FROM RFC1155-SMI
	OBJECT-TYPE
		FROM RFC1212;

  -- additional textual conventions

  -- DisplayString: comment out the next line if your MIB compiler complains
  -- that it is already defined.
  DisplayString	::= OCTET STRING  -- containing displayable octets (aka ASCII)

  FcWwn ::= OCTET STRING (SIZE(8))

  SwDomainIndex		::= INTEGER (0..239)
  SwNbIndex		::= INTEGER (0..2048)
  SwSensorIndex		::= INTEGER (1..1024)

  bcsi		OBJECT IDENTIFIER ::= { enterprises 1588 }

  -- Product Lines or Generic Product information
  --  { bcsi 1 } is reserved
  commDev	OBJECT IDENTIFIER ::= { bcsi 2 } -- communication devices

  fibrechannel	OBJECT IDENTIFIER ::= { commDev 1 }
  fcSwitch	OBJECT IDENTIFIER ::= { fibrechannel 1 }

  sw		OBJECT IDENTIFIER ::= { fcSwitch 1 }
  sw28k		OBJECT IDENTIFIER ::= { fcSwitch 2 }
  sw21kN24k	OBJECT IDENTIFIER ::= { fcSwitch 3 }
  sw20x0	OBJECT IDENTIFIER ::= { fcSwitch 4 }

  -- various groups
  swSystem	OBJECT IDENTIFIER ::= { sw 1 }
  swFabric	OBJECT IDENTIFIER ::= { sw 2 }
  swModule	OBJECT IDENTIFIER ::= { sw 3 }
  swAgtCfg	OBJECT IDENTIFIER ::= { sw 4 }
  -- { sw 5 } is reserved
  swFCport	OBJECT IDENTIFIER ::= { sw 6 }
  swNs		OBJECT IDENTIFIER ::= { sw 7 }
  swEvent	OBJECT IDENTIFIER ::= { sw 8 }

  swFwSystem	OBJECT IDENTIFIER ::= { sw 10 }

  swEndDevice	OBJECT IDENTIFIER ::= { sw 21 }

  swGroup	OBJECT IDENTIFIER ::= { sw 22 }
  
  --
  -- the System Group (sw)
  --

  swCurrentDate		OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..64))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The current date information in displayable textual
		format."
  ::= { swSystem 1 }

  swBootDate		OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..64))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The date and time when the system last booted, in
		displaybale textual format."
  ::= { swSystem 2 }

  swFWLastUpdated	OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..64))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The information indicates the date when the firmware
		was last updated, in displayable textual format."
  ::= { swSystem 3 }

  swFlashLastUpdated	OBJECT-TYPE
	SYNTAX		DisplayString
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The information indicates the date when the FLASH
		was last updated, in displayable textual format."
  ::= { swSystem 4 }

  swBootPromLastUpdated	OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..64))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The information indicates the date when the boot PROM
		was last updated, in displayable textual format."
  ::= { swSystem 5 }

  swFirmwareVersion	OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..24))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The current version of the firwmare."
  ::= { swSystem 6 }

  swOperStatus		OBJECT-TYPE
	SYNTAX		INTEGER {
			  online	(1),
			  offline	(2),
			  testing	(3),
			  faulty	(4)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The current operational status of the switch.
		The states are as follow:
		o online(1) means the switch is accessible by an external
		  Fibre Channel port;
		o offline(2) means the switch is not accesible;
		o testing(3) means the switch is in a built-in test mode
		  and is not accessible by an external Fibre Channel port;
		o faulty(4) means the switch is not operational."
  ::= { swSystem 7 }

  swAdmStatus		OBJECT-TYPE
	SYNTAX		INTEGER {
			  online	(1),
			  offline	(2),
			  testing	(3),
			  faulty	(4),
			  reboot	(5),
			  fastboot(6)
			}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"The desired administrative status of the switch.
		A management station may place the switch in a desired
		state by setting this object accordingly. The states
		are as follow:
		o online(1) means set the switch to be accessible by an
		  external Fibre Channel port;
		o offline(2) means set the switch to be inaccesible;
		o testing(3) means set the switch to run the built-in test;
		o faulty(4) means set the switch to a 'soft' faulty
		  condition;
		o reboot(5) means set the switch to reboot in 1 second.
		o fastboot(6) means set the switch to fastboot in 1 second.
		Fastboot would cause the switch to boot but skip over the
		POST.

		When the switch is in faulty state, only two states
		can be set: faulty and reboot/fastboot."
  ::= { swSystem 8 }

  swTelnetShellAdmStatus	OBJECT-TYPE
	SYNTAX			INTEGER {
				  unknown	(0),
				  terminated	(1)
				}
	ACCESS			read-write
	STATUS			mandatory
	DESCRIPTION	"The desired adminstrative status of the Telnet
		shell. By setting it to terminated(1), the current
		Telnet shell task is deleted. When this variable instance
		is read, it reports the value last set through SNMP."
  ::= { swSystem 9 }

  swSsn			OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..128))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The soft serial number of the switch."
  ::= { swSystem 10 }

  -- FLASH administration
  -- the next 5 objects are related to firmware or config file management.
  --
  -- The underlying method in the transfer of the firmware or config file
  -- is based on either FTP or remote shell.
  -- If a password is provided, then FTP is used.
  -- If NO password is provided, then remote shell is used.
  --
  -- 2 steps to manage firmware or switch config file in the switch FLASH,
  -- (A1) set swFlashDLHost.0, swFlashDLUser.0 and swFlashDLFile.0 to
  --      appropriate
  --        host IP address in user dot notation (e.g. 192.168.1.7),
  --        user name (e.g. "administrator"), and
  --        file name of the firmware or config file (e.g. "/home/fcswh/v2.2")
  --      respectively;
  -- (A2) set swFlashDLPassword.0 to an appropriate value (e.g. "secret")
  --      if FTP is the desired method of transfer;
  -- (B) set swFlashDLAdmStatus.0 to swFwUpgrade(2), swCfUpload(3),
  --	   or swCfDownload(4) accordingly.
  --

  swFlashDLOperStatus	OBJECT-TYPE
	SYNTAX		INTEGER {
			  swCurrent		(1),
			  swFwUpgraded		(2),
			  swCfUploaded		(3),
			  swCfDownloaded	(4),
			  swFwCorrupted  	(5)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The operational status of the FLASH.
		The operational states are as follow:
		o swCurrent(1) indicates that the FLASH contains the
		  current firmware image or config file;
		o swFwUpgraded(2) state indicates that it contains the image
		  upgraded from the swFlashDLHost.0.;
		o swCfUploaded(3) state indicates that the switch configuration
		  file has been uploaded to the host; and
		o swCfDownloaded(4) state indicates that the switch
		  configuration file has been downloaded from the host.
		o swFwCorrupted (5) state indicates that the firmware in the
		  flash of the switch is corrupted."
  ::= { swSystem 11 }

  swFlashDLAdmStatus	OBJECT-TYPE
	SYNTAX		INTEGER {
			  swCurrent		(1),
			  swFwUpgrade		(2),
			  swCfUpload		(3),
			  swCfDownload		(4),
			  swFwCorrupted  	(5)
			}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"The desired state of the FLASH.
		A management station may place the FLASH in a desired
		state by setting this object accordingly:
		o swCurrent(1) indicates that the FLASH contains the
		  current firmware image or config file;
		o swFwUpgrade(2) means that the firmware in the	FLASH is to be
		  upgraded from the host specified;
		o swCfUpload(3) means that the switch config file is to be
		  uploaded to the host specified; or
		o swCfDownload(4) means that the switch config file is to be
		  downloaded from the host specified.
		o swFwCorrupted(5) state indicates that the firmware in the
		  FLASH is corrupted. This value is for informational purpose
   		  only. However, set of swFlashDLAdmStatus to this value is
		  not allowed.

		The host is specified in swFlashDLHost.0. In addition,
		user name is specified in swFlashDLUser.0, and
		the file name specified in swFlashDLFile.0.

		Reference the user manual on the following commands,
		o firmwareDownload,
		o configUpload, and
		o configDownload."

  ::= { swSystem 12 }

  swFlashDLHost		OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..64))
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"The name or IP address (in dot notation) of the host
			 to download or upload a relevant file to the FLASH."
  ::= { swSystem 13 }

  swFlashDLUser		OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..64))
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"The user name on the host to download or upload
			 a relevant file to or from the FLASH."
  ::= { swSystem 14 }

  swFlashDLFile		OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..256))
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"The name of the file to be downloaded or uploaded."
  ::= { swSystem 15 }

  swFlashDLPassword	OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..100))
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"The password to be used in for FTP transfer of
			 files in the download or upload operation."
  ::= { swSystem 16 }

  -- 17..19 are reserved

  swBeaconOperStatus	OBJECT-TYPE
	SYNTAX		INTEGER {
				on	(1),
				off	(2)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The current operational status of the switch beacon.
			 When the beacon is on, the LEDs on the front panel
			 of the switch run alternately from left to right
			 and right to left. The color is yellow.
			 When the beacon is off, each LED will be in their
			 its regular status indicating color and state."
  ::= { swSystem 18 }

  swBeaconAdmStatus	OBJECT-TYPE
	SYNTAX		INTEGER {
				on	(1),
				off	(2)
			}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"The desired status of the switch beacon.
			 When the beacon is set to on, the LEDs on the front
			 panel of the switch run alternately from left to right
			 and right to left. The color is yellow.
			 When the beacon is set to off, each LED will be in
			 its regular status indicating color and state."
  ::= { swSystem 19 }

  swDiagResult	OBJECT-TYPE
	SYNTAX		INTEGER {
				sw-ok			(1),
				sw-central-memory-fault	(2),
				sw-embedded-port-fault	(3)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The result of the power-on startup (POST)
			 diagnostics."
  ::= { swSystem 20 }

  -- operating environment sensors (temperature, fan, power supply...)
  swNumSensors		OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The number of sensors inside the switch."
  ::= { swSystem 21 }

  swSensorTable	OBJECT-TYPE
	SYNTAX		SEQUENCE OF SwSensorEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"The table of sensor entries."
  ::= { swSystem 22 }

  swSensorEntry		OBJECT-TYPE
	SYNTAX		SwSensorEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"An entry of the sensor information."
	INDEX		{ swSensorIndex }
  ::= { swSensorTable 1 }

  SwSensorEntry	::= SEQUENCE {
	swSensorIndex	SwSensorIndex,
	swSensorType	INTEGER,
	swSensorStatus	INTEGER,
	swSensorValue	INTEGER,
	swSensorInfo	DisplayString (SIZE(0..255))
  }

  swSensorIndex		OBJECT-TYPE
	SYNTAX		SwSensorIndex
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies the sensor."
  ::= { swSensorEntry 1 }

  swSensorType		OBJECT-TYPE
	SYNTAX		INTEGER {
			  temperature	(1),
			  fan		(2),
			  power-supply	(3)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies the sensor type."
  ::= { swSensorEntry 2 }

  swSensorStatus	OBJECT-TYPE
	SYNTAX		INTEGER {
			  unknown	(1),
			  faulty	(2),
			  below-min	(3),
			  nominal	(4),
			  above-max	(5),
			  absent	(6)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The current status of the sensor."
  ::= { swSensorEntry 3 }

  swSensorValue		OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The current value (reading) of the sensor.
		The value, -2147483648, represents an unknown quantity.
		It also means that the sensor does not have the capability to
		measure the actual value. In V2.0, the temperature sensor
		value will be in Celsius; the fan value will be in RPM
		(revoluation per minute); and the power supply sensor reading
		will be unknown."
  ::= { swSensorEntry 4 }

  swSensorInfo		OBJECT-TYPE
	SYNTAX		DisplayString (SIZE(0..255))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"Additional displayable information on the sensor.
		In V2.x, it contains the sensor type and number
		in textual format. For example, 'Temp 3', 'Fan 6'."
  ::= { swSensorEntry 5 }

  -- track changes string scalar
  swTrackChangesInfo	OBJECT-TYPE
	SYNTAX		DisplayString (SIZE(0..256))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"Track changes string. For trap only"
  ::= { swSystem 23 }

  --
  -- End of System Group
  --

  --
  -- Fabric Group
  --
  swDomainID	OBJECT-TYPE
	SYNTAX		SwDomainIndex
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"The current Fibre Channel domain ID of the switch.
		To set a new value, the switch (swAdmStatus) must be in
		offline or testing state."
  ::= { swFabric 1 }

  swPrincipalSwitch	OBJECT-TYPE
	SYNTAX		INTEGER {
				yes	(1),
				no	(2)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object indicates whether the switch is
		the Principal switch as per FC-SW."
  ::= { swFabric 2 }

  -- swFabric 3..7 are reserved

  -- (immediate) Neighborhood ISL family
  --
  swNumNbs		OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The number of Inter-Switch Links in the (immediate)
		neighborhood."
  ::= { swFabric 8 }

  swNbTable	OBJECT-TYPE
	SYNTAX		SEQUENCE OF SwNbEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"This table contains the ISLs in the immediate
		neighorhood of the switch."
  ::= { swFabric 9 }

  swNbEntry		OBJECT-TYPE
	SYNTAX		SwNbEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"An entry containing each neighbor ISL parameters."
	INDEX		{ swNbIndex }
  ::= { swNbTable 1 }

  SwNbEntry		::= SEQUENCE {
	swNbIndex	SwNbIndex,
	swNbMyPort	INTEGER,
	swNbRemDomain	SwDomainIndex,
	swNbRemPort	INTEGER,
	swNbBaudRate	INTEGER,
	swNbIslState	INTEGER,
	swNbIslCost	INTEGER,
        swNbRemPortName	OCTET STRING (SIZE (8))
  }

  swNbIndex		OBJECT-TYPE
	SYNTAX		SwNbIndex
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies the neighbour ISL entry."
  ::= { swNbEntry 1 }

  swNbMyPort		OBJECT-TYPE
	SYNTAX		INTEGER {
			  portNum-0	(1),
			  portNum-1	(2),
			  portNum-2	(3),
			  portNum-3	(4),
			  portNum-4	(5),
			  portNum-5	(6),
			  portNum-6	(7),
			  portNum-7	(8),
			  portNum-8	(9),
			  portNum-9	(10),
			  portNum-10	(11),
			  portNum-11	(12),
			  portNum-12	(13),
			  portNum-13	(14),
			  portNum-14	(15),
			  portNum-15	(16)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This is the port that has an ISL to another switch."
  ::= { swNbEntry 2 }

  swNbRemDomain		OBJECT-TYPE
	SYNTAX		SwDomainIndex
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This is the Fibre Channel domain on the other end
		of the ISL."
  ::= { swNbEntry 3 }

  swNbRemPort		OBJECT-TYPE
	SYNTAX		INTEGER {
			  portNum-0	(1),
			  portNum-1	(2),
			  portNum-2	(3),
			  portNum-3	(4),
			  portNum-4	(5),
			  portNum-5	(6),
			  portNum-6	(7),
			  portNum-7	(8),
			  portNum-8	(9),
			  portNum-9	(10),
			  portNum-10	(11),
			  portNum-11	(12),
			  portNum-12	(13),
			  portNum-13	(14),
			  portNum-14	(15),
			  portNum-15	(16)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This is the port index on the other end of the ISL."
  ::= { swNbEntry 4 }

  swNbBaudRate		OBJECT-TYPE
	SYNTAX		INTEGER {
				other           (1),    -- none of below
				oneEighth       (2),    -- 155 Mbaud
				quarter         (4),    -- 266 Mbaud
				half            (8),    -- 532 Mbaud
				full            (16),   --   1 Gbaud
				double          (32),   --   2 Gbaud
				quadruple       (64)    --   4 Gbaud
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The baud rate of the ISL."
  ::= { swNbEntry 5 }

  swNbIslState		OBJECT-TYPE
	SYNTAX		INTEGER {
				-- sw-down		(0),
				sw-init		(1),
				sw-internal2	(2),
				sw-internal3	(3),
				sw-internal4	(4),
				sw-active	(5)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The current state of the ISL."
  ::= { swNbEntry 6 }

  swNbIslCost		OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"The current link cost of the ISL."
  ::= { swNbEntry 7 }

  swNbRemPortName	OBJECT-TYPE
	SYNTAX		OCTET STRING (SIZE (8))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The World_wide_Name of the remote port."
  ::= { swNbEntry 8 }


 -- Fabric member information
 -- 
  swFabricMemTable	OBJECT-TYPE
	SYNTAX		SEQUENCE OF SwFabricMemEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"This table contains info. on the member switches of a fabric."
  ::= { swFabric 10 }

  swFabricMemEntry		OBJECT-TYPE
	SYNTAX		SwFabricMemEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"An entry containing each switch in the fabric."
	INDEX		{ swFabricMemWwn }
  ::= { swFabricMemTable 1 }

  SwFabricMemEntry	::= SEQUENCE {
	swFabricMemWwn		FcWwn,
	swFabricMemDid		SwDomainIndex,
	swFabricMemName		DisplayString (SIZE (0..255)),
	swFabricMemEIP		NetworkAddress,
	swFabricMemFCIP		NetworkAddress,
	swFabricMemGWIP		NetworkAddress,
	swFabricMemType		INTEGER,
	swFabricMemShortVersion	DisplayString (SIZE (0..24))
  }

  swFabricMemWwn	OBJECT-TYPE
	SYNTAX		FcWwn
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies the World wide name of the member switch."
  ::= { swFabricMemEntry 1 }

  swFabricMemDid	OBJECT-TYPE
	SYNTAX		SwDomainIndex
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies the domain id of the member switch."
  ::= { swFabricMemEntry 2 }

  swFabricMemName	OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..255))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies the name of the member switch."
  ::= { swFabricMemEntry 3 }

  swFabricMemEIP	OBJECT-TYPE
	SYNTAX		NetworkAddress
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies the ethernet IP address of the member switch."
  ::= { swFabricMemEntry 4 }

  swFabricMemFCIP	OBJECT-TYPE
	SYNTAX		NetworkAddress
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies the Fibre Channel IP address of the member switch."
  ::= { swFabricMemEntry 5 }

  swFabricMemGWIP	OBJECT-TYPE
	SYNTAX		NetworkAddress
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies the Gateway IP address of the member switch."
  ::= { swFabricMemEntry 6 }

 swFabricMemType	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies the member switch type."
  ::= { swFabricMemEntry 7 }

  swFabricMemShortVersion	OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..24))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies Fabric OS version of the member switch."
  ::= { swFabricMemEntry 8 }



  --
  -- SNMP Agent Configuration
  --

  -- swAgtCfg 1..10 are reserved

  swAgtCmtyTable	OBJECT-TYPE
	SYNTAX		SEQUENCE OF SwAgtCmtyEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"A table that contains, one entry for each Community,
		the access control and parameters of the Community."
  ::= { swAgtCfg 11 }

  swAgtCmtyEntry	OBJECT-TYPE
	SYNTAX		SwAgtCmtyEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"An entry containing the Community parameters."
	INDEX	{ swAgtCmtyIdx }
  ::= { swAgtCmtyTable 1 }

  SwAgtCmtyEntry	::= SEQUENCE {
	swAgtCmtyIdx		INTEGER (1..6),
	swAgtCmtyStr		DisplayString (SIZE (2..15)),
	swAgtTrapRcp		NetworkAddress
  }

  swAgtCmtyIdx		OBJECT-TYPE
	SYNTAX		INTEGER (1..6)
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies the SNMPv1 Community entry."
  ::= { swAgtCmtyEntry 1 }

  swAgtCmtyStr		OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (2..15))
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"This is a Community string supported by the agent.
		If a new value is set successfully, it takes effect
		immediately."
  ::= { swAgtCmtyEntry 2 }

  swAgtTrapRcp		OBJECT-TYPE
	SYNTAX		NetworkAddress
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"This is the trap recipient associated with the
		Community. If a new value is set successfully, it takes
		effect immediately."
  ::= { swAgtCmtyEntry 3 }

  --
  -- End of SNMP Agent Configuration Group
  --

  --
  -- Fibre Channel Port Group
  -- This group contains information about the physical state,
  -- operational status, performance and error statistics of each
  -- Fibre Channel port on the switch. A Fibre Channel port is one which
  -- supports the Fibre Channel protocol. E.g. F_Port, E_Port, FL_Port.
  --

  swFCPortCapacity	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The maximum number of Fibre Channel ports on this
		switch. It includes G_Port, F_Port, FL_Port and any other
		types of Fibre Channel port."
  ::= { swFCport 1 }

  swFCPortTable		OBJECT-TYPE
	SYNTAX		SEQUENCE OF SwFCPortEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"A table that contains, one entry for each switch port,
		configuration and service parameters of the port."
  ::= { swFCport 2 }

  swFCPortEntry		OBJECT-TYPE
	SYNTAX		SwFCPortEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"An entry containing the configuration and service
		parameters of the switch port."
	INDEX	{ swFCPortIndex }
	::= { swFCPortTable 1 }

  SwFCPortEntry		::= SEQUENCE {
	swFCPortIndex		INTEGER,
	swFCPortType		INTEGER,
	swFCPortPhyState	INTEGER,
	swFCPortOpStatus	INTEGER,
	swFCPortAdmStatus	INTEGER,

	swFCPortLinkState	INTEGER,
	swFCPortTxType		INTEGER,

	-- the rest is mapped to gstat_t
	swFCPortTxWords		Counter,
	swFCPortRxWords		Counter,
	swFCPortTxFrames	Counter,
	swFCPortRxFrames	Counter,
	swFCPortRxC2Frames	Counter,
	swFCPortRxC3Frames	Counter,
	swFCPortRxLCs		Counter,
	swFCPortRxMcasts	Counter,
	swFCPortTooManyRdys	Counter,
	swFCPortNoTxCredits	Counter,
	swFCPortRxEncInFrs	Counter,
	swFCPortRxCrcs		Counter,
	swFCPortRxTruncs	Counter,
	swFCPortRxTooLongs	Counter,
	swFCPortRxBadEofs	Counter,
	swFCPortRxEncOutFrs	Counter,
	swFCPortRxBadOs		Counter,
	swFCPortC3Discards	Counter,
	swFCPortMcastTimedOuts	Counter,
	swFCPortTxMcasts	Counter,

	-- LIP statistics
	swFCPortLipIns		Counter,
	swFCPortLipOuts		Counter,
	swFCPortLipLastAlpa	OCTET STRING (SIZE(4)),

	-- new for V2.1
	swFCPortWwn		OCTET STRING
  }

  swFCPortIndex		OBJECT-TYPE
	SYNTAX		INTEGER {
			  portNum-0	(1),
			  portNum-1	(2),
			  portNum-2	(3),
			  portNum-3	(4),
			  portNum-4	(5),
			  portNum-5	(6),
			  portNum-6	(7),
			  portNum-7	(8),
			  portNum-8	(9),
			  portNum-9	(10),
			  portNum-10	(11),
			  portNum-11	(12),
			  portNum-12	(13),
			  portNum-13	(14),
			  portNum-14	(15),
			  portNum-15	(16)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies the switch port index.
		Note that the value of a port index is 1 higher than the
		port number labeled on the front panel.
		E.g. port index 1 correspond to port number 0."
  ::= { swFCPortEntry 1 }

  swFCPortType		OBJECT-TYPE
	SYNTAX		INTEGER {
			  stitch	(1),
			  flannel	(2),
			  loom		(3)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies the type of switch port.
			 It may be of type stitch(1), flannel(2) or loom(3)."
  ::= { swFCPortEntry 2 }

  swFCPortPhyState	OBJECT-TYPE
	SYNTAX		INTEGER {
			  noCard	(1),
			  noGbic	(2),
			  laserFault	(3),
			  noLight	(4),
			  noSync	(5),
			  inSync	(6),
			  portFault	(7),
			  diagFault	(8),
			  lockRef	(9)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies the physical state of
		the port:
			noCard(1)	no card present in this switch slot;
			noGbic(2)	no GBIC module in this port;
			laserFault(3)	the module is signaling a laser fault
					(defective GBIC);
			noLight(4)	the module is not receiving light;
			noSync(5)	the module is receiving light but is
					out of sync;
			inSync(6)	the module is receiving light and is
					in sync;
			portFault(7)	the port is marked faulty (defective
					GBIC, cable or device);
			diagFault(8)	the port failed diagnostics (defective
					G_Port or FL_Port card or motherboard);
			lockRef(9)	the port is locking to the reference
					signal.
		"
  ::= { swFCPortEntry 3 }

  swFCPortOpStatus	OBJECT-TYPE
	SYNTAX		INTEGER {
			  unknown	(0),
			  online	(1),
			  offline	(2),
			  testing	(3),
			  faulty	(4)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object identifies the operational status of
		the port. The online(1) state indicates that user frames
		can be passed. The unknown(0) state indicates that likely
		the port module is physically absent (see swFCPortPhyState)."
  ::= { swFCPortEntry 4 }

  swFCPortAdmStatus	OBJECT-TYPE
	SYNTAX		INTEGER {
			  online	(1),
			  offline	(2),
			  testing	(3),
			  faulty	(4)
			}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"The desired state of the port. A management station
                may place the port in a desired state by setting this
                object accordingly.  The testing(3) state indicates that
                no user frames can be passed. As the result of
                either explicit management action or per configuration
                information accessible by the switch, swFCPortAdmStatus is
		then changed to either the online(1) or testing(3)
		states,	or remains in the offline(2) state."
  ::= { swFCPortEntry 5 }

  swFCPortLinkState	OBJECT-TYPE
	SYNTAX		INTEGER {
			  enabled	(1),
			  disabled	(2),
			  loopback	(3)
			}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"This object indicates the link state of the port.
		The value may be:
		  enabled(1) - port is allowed to participate in the FC-PH
			protocol with its attached port (or ports if it is
			in a FC-AL loop);
		  disabled(2) - the port is not allowed to participate in
			the FC-PH protocol with its attached port(s);
		  loopback(3) - the port may transmit frames through an
			internal path to verify the health of the transmitter
			and receiver path.

		Note that when the port's link state changes, its
		operational status (swFCPortOpStatus) will be affected."
  ::= { swFCPortEntry 6 }

  swFCPortTxType	OBJECT-TYPE
	SYNTAX		INTEGER {
			  unknown	(1),
			  lw		(2),
			  sw		(3),
			  ld		(4),
			  cu		(5)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object indicates the media transmitter type of
		the port. The value may be:
		  unknown(1)		cannot determined to the port driver
		  lw(2)			long wave laser
		  sw(3)			short wave laser
		  ld(4)			long wave LED
		  cu(5)			copper (electrical)

		Note that there is a new type of GBIC which has a serial ID
		and will be mapped as unknown(1) for the current firmware
		revision."
  ::= { swFCPortEntry 7 }

  -- counters
  swFCPortTxWords	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of Fibre Channel
		words that the port has transmitted."
  ::= { swFCPortEntry 11 }

  swFCPortRxWords	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of Fibre Channel
		words that the port has received."
  ::= { swFCPortEntry 12 }

  swFCPortTxFrames	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of (Fibre Channel)
		frames that the port has transmitted."
  ::= { swFCPortEntry 13 }

  swFCPortRxFrames	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of (Fibre Channel)
		frames that the port has received."
  ::= { swFCPortEntry 14 }

  swFCPortRxC2Frames	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of Class 2
		frames that the port has received."
  ::= { swFCPortEntry 15 }

  swFCPortRxC3Frames	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of Class 3
		frames that the port has received."
  ::= { swFCPortEntry 16 }

  swFCPortRxLCs		OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of Link Control
		frames that the port has received."
  ::= { swFCPortEntry 17 }

  swFCPortRxMcasts	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of Multicast
		frames that the port has received."
  ::= { swFCPortEntry 18 }

  swFCPortTooManyRdys	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of times when RDYs
		 exceeds the frames received."
  ::= { swFCPortEntry 19 }

  swFCPortNoTxCredits	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of times when the
		 transmit credit has reached zero."
  ::= { swFCPortEntry 20 }

  swFCPortRxEncInFrs	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of encoding error or
		disparity error inside frames received."
  ::= { swFCPortEntry 21 }

  swFCPortRxCrcs	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of CRC errors
		detected for frames received."
  ::= { swFCPortEntry 22 }

  swFCPortRxTruncs	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of truncated
		frames that the port has received."
  ::= { swFCPortEntry 23 }

  swFCPortRxTooLongs	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of received frames that
		are too long."
  ::= { swFCPortEntry 24 }

  swFCPortRxBadEofs	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of received frames that
		have bad EOF delimiter."
  ::= { swFCPortEntry 25 }

  swFCPortRxEncOutFrs	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of encoding error or
		disparity error outside frames received."
  ::= { swFCPortEntry 26 }

  swFCPortRxBadOs		OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of invalid Ordered
		Sets received."
  ::= { swFCPortEntry 27 }

  swFCPortC3Discards	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of Class 3
		frames that the port has discarded."
  ::= { swFCPortEntry 28 }

  swFCPortMcastTimedOuts	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of Multicast
		frames that has been timed out."
  ::= { swFCPortEntry 29 }

  swFCPortTxMcasts	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of Multicast
		frames that has been transmitted."
  ::= { swFCPortEntry 30 }

  -- LIP statistics
  swFCPortLipIns	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of Loop Initializations
		that has been initiated by loop devices attached."
  ::= { swFCPortEntry 31 }

  swFCPortLipOuts	OBJECT-TYPE
	SYNTAX		Counter
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object counts the number of Loop Initializations
		that has been initiated by the port."
  ::= { swFCPortEntry 32 }

  swFCPortLipLastAlpa	OBJECT-TYPE
	SYNTAX		OCTET STRING (SIZE(4))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object indicates the Physical Address (AL_PA)
		of the loop device that initiated the last
		Loop Initialization."
  ::= { swFCPortEntry 33 }

  swFCPortWwn		OBJECT-TYPE
	SYNTAX		OCTET STRING (SIZE(8))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The World_wide_Name of the Fibre Channel port.
		The contents of an instance are in the IEEE extended format
		as specified in FC-PH; the 12-bit port identifier represents
		the port number within the switch."
  ::= { swFCPortEntry 34 }

  --
  -- End of Fibre Channel Port group
  --



  --
  -- The Name Server Database group
  --

  swNsLocalNumEntry	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The number of local Name Server entries."
  ::= { swNs 1 }

  swNsLocalTable	OBJECT-TYPE
	SYNTAX		SEQUENCE OF SwNsEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"The table of local Name Server entries."
  ::= { swNs 2 }

  swNsLocalEntry	OBJECT-TYPE
	SYNTAX		SwNsEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"An entry of the local Name Server database."
	INDEX		{ swNsEntryIndex }
  ::= { swNsLocalTable 1 }

  SwNsEntry ::= SEQUENCE {
	swNsEntryIndex	INTEGER,
	swNsPortID	OCTET STRING(SIZE(4)),
	swNsPortType	INTEGER,
	swNsPortName	FcWwn,
	swNsPortSymb	OCTET STRING,
	swNsNodeName	FcWwn,
	swNsNodeSymb	OCTET STRING,
	swNsIPA		OCTET STRING,
	swNsIpAddress	OCTET STRING,
	swNsCos		INTEGER,
	swNsFc4		OCTET STRING
  }

  swNsEntryIndex	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The object identifies the Name Server database entry."
  ::= { swNsLocalEntry 1 }

  swNsPortID		OBJECT-TYPE
	SYNTAX		OCTET STRING (SIZE(4))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The object identifies the Fibre Channel port address
		ID of the entry."
  ::= { swNsLocalEntry 2 }

  swNsPortType		OBJECT-TYPE
	SYNTAX		INTEGER {
			--  unknown	(0),
			  nPort		(1),
			  nlPort	(2)
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The object identifies the type of port: N_Port,
		NL_Port, etc., for this entry. The type is defined in FC-GS-2."
  ::= { swNsLocalEntry 3 }

  swNsPortName		OBJECT-TYPE
	SYNTAX		FcWwn
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The object identifies the Fibre Channel World_wide
		Name of the port entry."
  ::= { swNsLocalEntry 4 }

  swNsPortSymb		OBJECT-TYPE
	SYNTAX		OCTET STRING(SIZE(0..255))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The object identifies the contents of a Symbolic Name
		of the port entry. In FC-GS-2, a Symbolic Name consists of
		a byte array of 1 through 256 bytes, and the first byte of the
		array specifies the length of its 'contents'.
		This object variable corresponds to the 'contents' of the
		Symbolic Name, without the first byte."
  ::= { swNsLocalEntry 5 }

  swNsNodeName		OBJECT-TYPE
	SYNTAX		FcWwn
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The object identifies the Fibre Channel World_wide
		Name of the associated node as defined in FC-GS-2."
  ::= { swNsLocalEntry 6 }

  swNsNodeSymb		OBJECT-TYPE
	SYNTAX		OCTET STRING (SIZE(0..255))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The object identifies the contents of a Symbolic Name
		of the the node associated with the entry. In FC-GS-2,
		a Symbolic Name consists of a byte array of 1 through 256
		bytes, and the first byte of the array specifies the length
		of its 'contents'.
		This object variable corresponds to the 'contents' of the
		Symbolic Name, without the first byte (specifying the length)."
  ::= { swNsLocalEntry 7 }

  swNsIPA		OBJECT-TYPE
	SYNTAX		OCTET STRING (SIZE(8))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The object identifies the Initial Process Associator
		of the node for the entry as defined in FC-GS-2."
  ::= { swNsLocalEntry 8 }

  swNsIpAddress		OBJECT-TYPE
	SYNTAX		OCTET STRING (SIZE(16))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The object identifies the IP address of the node
		for the entry as defined in FC-GS-2. The format of the address
		is in IPv6."
  ::= { swNsLocalEntry 9 }

  swNsCos		OBJECT-TYPE
	SYNTAX		INTEGER {
		--	  class-unknown	(0),
			  class-F	(1),
			  class-1	(2),
			  class-F-1	(3),
			  class-2	(4),
			  class-F-2	(5),
			  class-1-2	(6),
			  class-F-1-2	(7),
			  class-3	(8),
			  class-F-3	(9),
			  class-1-3	(10),
			  class-F-1-3	(11),
			  class-2-3	(12),
			  class-F-2-3	(13),
			  class-1-2-3	(14),
			  class-F-1-2-3	(15)
			-- more to enumerate in future.
			}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The object identifies the class of services supported
		by the port. The value is a bit-map defined as follows:
		o bit 0 is class F,
		o bit 1 is class 1,
		o bit 2 is class 2,
		o bit 3 is class 3,
		o bit 4 is class 4, etc."
  ::= { swNsLocalEntry 10 }

  swNsFc4		OBJECT-TYPE
	SYNTAX		OCTET STRING (SIZE (32))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The object identifies the FC-4s supported
		by the port as defined in FC-GS-2."
  ::= { swNsLocalEntry 11 }

  --
  -- End of Fibre Channel Name Server group
  --

  -- #######################################################################
  --
  -- Event Group - to map the errLog
  --
  -- NOTE
  -- Logically, swEventTable is separate from the error log since it is
  -- essentially a view of the error log within a particular time window.
  -- The value of swEventIndex shall indicate the event number that has  
  -- occurred since the switch booted. The value will range from 1 through
  -- 2147383647 (2^31 - 1).
  --
  -- #######################################################################
 
  swEventTrapLevel      OBJECT-TYPE
        SYNTAX          INTEGER {
			  none		(0),
                          critical      (1),
                          error         (2),
                          warning       (3),
                          informational (4),
                          debug         (5)
                        }
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "This object specifies the swEventTrap level in
		conjunction with an event's severity level. When an event
		occurs and if its severity level is at or below the value
		specified by this object instance, the agent will send
		the associated swEventTrap to configured recipients."
  ::= { swEvent 1 }
 
  -- { swEvent 2..3 are reserved }
 
  swEventNumEntries     OBJECT-TYPE
        SYNTAX          INTEGER 
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of entries in the Event Table."
  ::= { swEvent 4 }
 
  swEventTable          OBJECT-TYPE
        SYNTAX          SEQUENCE OF SwEventEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "The table of event entries."
  ::= { swEvent 5 }
 
  swEventEntry          OBJECT-TYPE
        SYNTAX          SwEventEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "An entry of the event table."
        INDEX           { swEventIndex }
 
  ::= { swEventTable 1 }
 
  SwEventEntry          ::= SEQUENCE {
        swEventIndex		INTEGER,
        swEventTimeInfo		DisplayString,
        swEventLevel		INTEGER,
	swEventRepeatCount	INTEGER,
        swEventDescr		DisplayString
  }

  swEventIndex          OBJECT-TYPE
        SYNTAX          INTEGER 
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "This object identifies the event entry."
  ::= { swEventEntry 1 }
 
  swEventTimeInfo       OBJECT-TYPE
        SYNTAX          DisplayString
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "This object identifies the date and time when this
                event occurred, in textual format."
  ::= { swEventEntry 2 }
 
  swEventLevel          OBJECT-TYPE
        SYNTAX          INTEGER {
                          critical      (1),
                          error         (2),
                          warning       (3),
			  informational	(4),
                          debug         (5)
                        }
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "This object identifies the severity level of this
		event entry."
  ::= { swEventEntry 3 }
 
  swEventRepeatCount	OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "This object identifies how many times this particular
		event has occurred."
  ::= { swEventEntry 4 }
 
  swEventDescr          OBJECT-TYPE
        SYNTAX          DisplayString
        ACCESS          read-only
        STATUS          mandatory
         DESCRIPTION     "This object identifies the textual description of
                the event."
  ::= { swEventEntry 5 }
 
  --
  -- End of Fibre Channel Event Group
  --

  --
  -- swFwSystem
  -- Fabric Watch subsystem
  -- ###########################################################################
  -- Fabric Watch subsystem consists of two tables
  -- SwFwClassAreaEntry contains control information for a particular class/area's
  -- thresholds. These thresholds are contained in SwFwThresholdEntry.
  -- ###########################################################################

  -- valid action matrix
  SwFwActs ::= INTEGER {
				swFwNoAction(0),
				swFwErrlog(1),
				swFwSnmptrap(2),
				swFwErrlogSnmptrap(3),
				swFwPortloglock(4),
				swFwErrlogPortloglock(5),
				swFwSnmptrapPortloglock(6),
				swFwErrlogSnmptrapPortloglock(7),
				swFwRn(8),
				swFwElRn(9),
				swFwStRn(10),
				swFwElStRn(11),
				swFwPlRn(12),
				swFwElPlRn(13),
				swFwStPlRn(14),
				swFwElStPlRn(15)
				}

  -- variable for threshold values or action matrix level
  SwFwLevels ::= INTEGER {
				swFwReserved(1),
				swFwDefault(2),
				swFwCustom(3)
				}

  -- classes and areas index
  SwFwClassesAreas ::=	INTEGER {
				swFwEnvTemp(1),
				swFwEnvFan(2),
				swFwEnvPs(3),
				swFwGbicTemp(4),
				swFwGbicRxp(5),
				swFwGbicTxp(6),
				swFwGbicCurrent(7),
				swFwPortLink(8),
				swFwPortSync(9),
				swFwPortSignal(10),
				swFwPortPe(11),
				swFwPortWords(12),
				swFwPortCrcs(13),
				swFwPortRXPerf(14),
				swFwPortTXPerf(15),
				swFwPortState(16),
				swFwFabricEd(17),
				swFwFabricFr(18),
				swFwFabricDi(19),
				swFwFabricSc(20),
				swFwFabricZc(21),
				swFwFabricFq(22),
				swFwFabricFl(23),
				swFwFabricGs(24),
				swFwEPortLink(25),
				swFwEPortSync(26),
				swFwEPortSignal(27),
				swFwEPortPe(28),
				swFwEPortWords(29),
				swFwEPortCrcs(30),
				swFwEPortRXPerf(31),
				swFwEPortTXPerf(32),
				swFwEPortState(33),
				swFwFCUPortLink(34),
				swFwFCUPortSync(35),
				swFwFCUPortSignal(36),
				swFwFCUPortPe(37),
				swFwFCUPortWords(38),
				swFwFCUPortCrcs(39),
				swFwFCUPortRXPerf(40),
				swFwFCUPortTXPerf(41),
				swFwFCUPortState(42),
				swFwFOPPortLink(43),
				swFwFOPPortSync(44),
				swFwFOPPortSignal(45),
				swFwFOPPortPe(46),
				swFwFOPPortWords(47),
				swFwFOPPortCrcs(48),
				swFwFOPPortRXPerf(49),
				swFwFOPPortTXPerf(50),
				swFwFOPPortState(51)
				}

  -- write only variable for applying or canceling
  -- values or action matrix changes
  SwFwWriteVals	::= INTEGER {
				swFwCancelWrite(1),
				swFwApplyWrite(2)
				}

  -- timebase for thresholds
  SwFwTimebase ::= INTEGER {
				swFwTbNone(1),
				swFwTbSec(2),
				swFwTbMin(3),
				swFwTbHour(4),
				swFwTbDay(5)
				}

  -- status for thresholds
  SwFwStatus ::= INTEGER {
				disabled(1),
				enabled(2)
				}

  -- possible events avaialable
  SwFwEvent ::= INTEGER {
				started(1),
				changed(2),
				exceeded(3),
				below(4),
				above(5),
				inBetween(6)
				}
 
  -- behavior type for thresholds
  SwFwBehavior ::= INTEGER {
				triggered(1),
				continuous(2)
				}

  -- state type for last events
  SwFwState ::= INTEGER {
				swFwInformative(1),
				swFwNormal(2),
				swFwFaulty(3)
				}

  -- license state
  SwFwLicense ::= INTEGER {
				swFwLicensed(1),
				swFwNotLicensed(2)
				}

  -- This is the first of the elements declared for Fabric Watch :
  -- one scalar & two tables
  -- A scalar, swFwFabricWatchLicense is used to tell is if the switch has
  -- proper license for Fabric Watch. Please refer to Fabric Watch 
  -- documentation for further information.
  -- One table contains classArea information such as threshold unit string,
  -- time base, low thresholds, etc. The other table contains individual
  -- threshold information such as name, label, last event, etc.
  -- Please refer to Fabric Watch documentation for further information.

  -- license scalar
  swFwFabricWatchLicense	OBJECT-TYPE
	SYNTAX		SwFwLicense
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"tells if licensed or not."
  ::= { swFwSystem 1 }

  -- classArea table
  swFwClassAreaTable	OBJECT-TYPE
	SYNTAX		SEQUENCE OF	SwFwClassAreaEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"The table of classes and areas."
  ::= { swFwSystem 2 }

  swFwClassAreaEntry	OBJECT-TYPE
	SYNTAX		SwFwClassAreaEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"An entry of the classes and areas."
	INDEX		{ swFwClassAreaIndex }
  ::= { swFwClassAreaTable 1 }

  SwFwClassAreaEntry ::= SEQUENCE {
	swFwClassAreaIndex		SwFwClassesAreas,
	swFwWriteThVals			SwFwWriteVals,
	swFwDefaultUnit			DisplayString (SIZE(0..256)),
	swFwDefaultTimebase		SwFwTimebase,
	swFwDefaultLow			INTEGER,
	swFwDefaultHigh			INTEGER,
	swFwDefaultBufSize		INTEGER,
	swFwCustUnit			DisplayString (SIZE(0..256)),
	swFwCustTimebase		SwFwTimebase,
	swFwCustLow				INTEGER,
	swFwCustHigh			INTEGER,
	swFwCustBufSize			INTEGER,
	swFwThLevel				SwFwLevels,
	swFwWriteActVals		SwFwWriteVals,
	swFwDefaultChangedActs	SwFwActs,
	swFwDefaultExceededActs	SwFwActs,
	swFwDefaultBelowActs	SwFwActs,
	swFwDefaultAboveActs	SwFwActs,
	swFwDefaultInBetweenActs	SwFwActs,
	swFwCustChangedActs		SwFwActs,
	swFwCustExceededActs	SwFwActs,
	swFwCustBelowActs		SwFwActs,
	swFwCustAboveActs		SwFwActs,
	swFwCustInBetweenActs		SwFwActs,
	swFwValidActs			SwFwActs,
	swFwActLevel			SwFwLevels
	}

  swFwClassAreaIndex	OBJECT-TYPE
	SYNTAX		SwFwClassesAreas
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object indentifies the class type."
  ::= { swFwClassAreaEntry 1 }

  -- this variable is used to apply or cancel
  -- changes made to swFwCustUnit, swFwCustTimebase, swFwCustLow,
  -- swFwCustHigh, swFwCustBufSize.
  -- read of this variable will always return cancel.
  swFwWriteThVals	OBJECT-TYPE
	SYNTAX		SwFwWriteVals
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"This object is set to apply the value changes."
  ::= { swFwClassAreaEntry 2 }

  -- {swFwDefaultUnit, swFwDefaultTimebase, swFwDefaultMin, and swFwDefaultMax}
  -- {swFwCustUnit, swFwCustTimebase, swFwCustMin, and swFwCustMax}
  -- are grouped together to be applied to give threshold areas as in 
  --- Default and Cust. Which of default, or custom groups applies depends
  --- on swFwThLevel.
  swFwDefaultUnit		OBJECT-TYPE	
	SYNTAX		DisplayString (SIZE(0..256))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"A Default unit string name for a threshold area."
  ::= { swFwClassAreaEntry 3 }

  swFwDefaultTimebase	OBJECT-TYPE
	SYNTAX		SwFwTimebase
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"A Default timebase for the current threshold counter."
  ::= { swFwClassAreaEntry 4 }

  swFwDefaultLow		OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"A Default low threshold value."
  ::= { swFwClassAreaEntry 5 }

  swFwDefaultHigh		OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"A Default high threshold value."
  ::= { swFwClassAreaEntry 6 }

  swFwDefaultBufSize		OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"A Default buffer size value."
  ::= { swFwClassAreaEntry 7 }

  swFwCustUnit	OBJECT-TYPE	
	SYNTAX		DisplayString (SIZE(0..256))
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"A custom unit string name for a threshold area."
  ::= { swFwClassAreaEntry 8 }

  swFwCustTimebase	OBJECT-TYPE
	SYNTAX		SwFwTimebase
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"A custom timebase for the current threshold counter."
  ::= { swFwClassAreaEntry 9 }

  swFwCustLow		OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"A custom low threshold value."
  ::= { swFwClassAreaEntry 10 }

  swFwCustHigh		OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"A custom high threshold value."
  ::= { swFwClassAreaEntry 11 }

  swFwCustBufSize		OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"A custom buffer size value."
  ::= { swFwClassAreaEntry 12 }

  -- swFwThLevel is used to point to current level for classArea
  -- values. It is either default or custom.
  swFwThLevel		OBJECT-TYPE
	SYNTAX		SwFwLevels
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"A level where all the thesold values are set at."
  ::= { swFwClassAreaEntry 13 }

  -- this variable is used to apply or cancel
  -- changes made to swFwCustUnit, swFwCustTimebase, swFwCustLow,
  -- swFwCustHigh, swFwCustBufSize.
  -- read of this variable will always return cancel.
  swFwWriteActVals	OBJECT-TYPE
	SYNTAX		SwFwWriteVals
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"SwFwis object is set to apply act value changes."
  ::= { swFwClassAreaEntry 14 }

  -- {swFwDefaultChangedActs, swFwDefaultExceededActs, swFwDefaultBelowActs, 
  -- and swFwDefaultAboveActs} and {swFwCustChangedActs, swFwCustExceededActs, 
  -- swFwCustBelowActs, and swFwCustAboveActs} are grouped together to be 
  -- applied to give threshold areas as in default and cust. Which of 
  -- default, or custom groups applies depends on swFwThLevel.
  swFwDefaultChangedActs	OBJECT-TYPE
	SYNTAX		SwFwActs
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"Default action matrix for changed event."
  ::= { swFwClassAreaEntry 15 }
	
  swFwDefaultExceededActs	OBJECT-TYPE
	SYNTAX		SwFwActs
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"Default action matrix for exceeded event."
  ::= { swFwClassAreaEntry 16 }
	
  swFwDefaultBelowActs	OBJECT-TYPE
	SYNTAX		SwFwActs
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"Default action matrix for below event."
  ::= { swFwClassAreaEntry 17 }
	
  swFwDefaultAboveActs	OBJECT-TYPE
	SYNTAX		SwFwActs
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"Default action matrix for above event."
  ::= { swFwClassAreaEntry 18 }

  swFwDefaultInBetweenActs	OBJECT-TYPE
	SYNTAX		SwFwActs
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"Default action matrix for in-between event."
  ::= { swFwClassAreaEntry 19 }

  swFwCustChangedActs	OBJECT-TYPE
	SYNTAX		SwFwActs
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"custom action matrix for changed event."
  ::= { swFwClassAreaEntry 20 }
	
  swFwCustExceededActs	OBJECT-TYPE
	SYNTAX		SwFwActs
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"custom action matrix for exceeded event."
  ::= { swFwClassAreaEntry 21 }
	
  swFwCustBelowActs	OBJECT-TYPE
	SYNTAX		SwFwActs
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"custom action matrix for below event."
  ::= { swFwClassAreaEntry 22 }
	
  swFwCustAboveActs	OBJECT-TYPE
	SYNTAX		SwFwActs
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"custom action matrix for above event."
  ::= { swFwClassAreaEntry 23 }

  swFwCustInBetweenActs	OBJECT-TYPE
	SYNTAX		SwFwActs
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"custom action matrix for in-between event."
  ::= { swFwClassAreaEntry 24 }

  swFwValidActs	OBJECT-TYPE
	SYNTAX		SwFwActs
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"matrix of valid acts for an class/area."
  ::= { swFwClassAreaEntry 25 }

  -- swFwActLevel is used to point to current level for classArea
  -- action matrix. It is either default or custom.
  swFwActLevel	OBJECT-TYPE
	SYNTAX		SwFwLevels
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"A level where all the actions are set at."
  ::= { swFwClassAreaEntry 26 }

  -- table for individual threshold
  swFwThresholdTable	OBJECT-TYPE
	SYNTAX		SEQUENCE OF	SwFwThresholdEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"The table of individual thresholds."
  ::= { swFwSystem 3 }

  swFwThresholdEntry	OBJECT-TYPE
	SYNTAX		SwFwThresholdEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"An entry of an individual threshold."
	INDEX		{ swFwClassAreaIndex, swFwThresholdIndex }
  ::= { swFwThresholdTable 1 }

  SwFwThresholdEntry ::= SEQUENCE {
	swFwThresholdIndex		INTEGER,
	swFwStatus				SwFwStatus,
	swFwName				DisplayString (SIZE(0..32)),
	swFwLabel				DisplayString (SIZE(0..32)),
	swFwCurVal				INTEGER,
	swFwLastEvent			SwFwEvent,
	swFwLastEventVal		INTEGER,
	swFwLastEventTime		DisplayString (SIZE(0..32)),
	swFwLastState			SwFwState,
	swFwBehaviorType		SwFwBehavior,
	swFwBehaviorInt			INTEGER
	}	

  swFwThresholdIndex	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only	
	STATUS		mandatory
	DESCRIPTION	"This object indentifies the element index of
				an threshold."
  ::= { swFwThresholdEntry 1 }

  swFwStatus		OBJECT-TYPE
	SYNTAX		SwFwStatus
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"This object indentifies if an threshold is
				enabled or disabled."
  ::= { swFwThresholdEntry 2 }

  swFwName		OBJECT-TYPE
	SYNTAX		DisplayString (SIZE(0..32))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object is a name of the threshold."
  ::= { swFwThresholdEntry 3 }

  swFwLabel		OBJECT-TYPE
	SYNTAX		DisplayString (SIZE(0..32))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object is a label of the threshold."
  ::= { swFwThresholdEntry 4 }

  swFwCurVal		OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object is a current counter of the threshold."
  ::= { swFwThresholdEntry 5 }

  swFwLastEvent	OBJECT-TYPE
	SYNTAX		SwFwEvent
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object is a last event type of the threshold."
  ::= { swFwThresholdEntry 6 }

  swFwLastEventVal	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object is a last event value of the threshold."
  ::= { swFwThresholdEntry 7 }

  swFwLastEventTime	OBJECT-TYPE
	SYNTAX		DisplayString (SIZE(0..32))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object is a last event time of the threshold."
  ::= { swFwThresholdEntry 8 }

  swFwLastState	OBJECT-TYPE
	SYNTAX		SwFwState
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object is a last event state of the threshold."
  ::= { swFwThresholdEntry 9 }

  swFwBehaviorType	OBJECT-TYPE
	SYNTAX		SwFwBehavior
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"A behavior of which the thresholds generate event."
  ::= { swFwThresholdEntry 10 }

  swFwBehaviorInt	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION	"A integer of which the thresholds generate continuous event."
  ::= { swFwThresholdEntry 11 }

  -- table for RLS of end devices
  swEndDeviceRlsTable	OBJECT-TYPE
	SYNTAX		SEQUENCE OF	SwEndDeviceRlsEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"The table of individual end devices' rls."
  ::= { swEndDevice 1 }

  swEndDeviceRlsEntry	OBJECT-TYPE
	SYNTAX		SwEndDeviceRlsEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"An entry of an individual end devices' rls."
	INDEX		{ swEndDevicePort, swEndDeviceAlpa }
  ::= { swEndDeviceRlsTable 1 }

  SwEndDeviceRlsEntry ::= SEQUENCE {
	swEndDevicePort				INTEGER,
	swEndDeviceAlpa				INTEGER,
	swEndDevicePortID               OCTET STRING (SIZE(4)),
	swEndDeviceLinkFailure		INTEGER,
	swEndDeviceSyncLoss			INTEGER,
	swEndDeviceSigLoss			INTEGER,
	swEndDeviceProtoErr			INTEGER,
	swEndDeviceInvalidWord		INTEGER,
	swEndDeviceInvalidCRC		INTEGER
	}	

  -- Since Silkworm family switches start with port # 0
  -- snmp port # should be phisical port # + 1.
  -- i.e. snmp port # 3 translates to port # 2
  swEndDevicePort	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"This object indentifies the port of the end device."
  ::= { swEndDeviceRlsEntry 1 }

  -- snmp alpa # should be logical alpa # + 1.
  -- i.e. snmp alpa # 0xf0 translates to 0xef
  swEndDeviceAlpa	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"This object indentifies the alpa of the end device."
  ::= { swEndDeviceRlsEntry 2 }

  swEndDevicePortID		OBJECT-TYPE
	SYNTAX		OCTET STRING (SIZE(4))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"The object identifies the Fibre Channel port address
		ID of the entry."
  ::= { swEndDeviceRlsEntry 3 }

  swEndDeviceLinkFailure	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"Link failure count for the end device."
  ::= { swEndDeviceRlsEntry 4 }

  swEndDeviceSyncLoss	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"Sync loss count for the end device."
  ::= { swEndDeviceRlsEntry 5 }

  swEndDeviceSigLoss	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"Sig loss count for the end device."
  ::= { swEndDeviceRlsEntry 6 }

  swEndDeviceProtoErr	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"Protocol err count for the end device."
  ::= { swEndDeviceRlsEntry 7 }

  swEndDeviceInvalidWord	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"Invalid word count for the end device."
  ::= { swEndDeviceRlsEntry 8 }

  swEndDeviceInvalidCRC	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"Invalid CRC count for the end device."
  ::= { swEndDeviceRlsEntry 9 }


-- table for displaying all the Groups 
  swGroupTable	OBJECT-TYPE
	SYNTAX		SEQUENCE OF	SwGroupEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"The table of groups."
  ::= { swGroup 1 }

  swGroupEntry	OBJECT-TYPE
	SYNTAX		SwGroupEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"An entry of table of groups."
	INDEX		{ swGroupIndex }
  ::= { swGroupTable 1 }

  SwGroupEntry ::= SEQUENCE {
	swGroupIndex	INTEGER,
	swGroupName	DisplayString (SIZE (0..32)),
	swGroupType	DisplayString (SIZE (0..15))
	}

  swGroupIndex	OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object is the group index starting from 1."
  ::= { swGroupEntry 1 }

 swGroupName	OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..32))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object indentifies the name of the group."
  ::= { swGroupEntry 2 }

  swGroupType	OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..15))
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object indentifies the type of the group."
  ::= { swGroupEntry 3 }


-- table for displaying group members for all the groups
  swGroupMemTable	OBJECT-TYPE
	SYNTAX		SEQUENCE OF SwGroupMemEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"The table of members of all groups."
  ::= { swGroup 2 }

  swGroupMemEntry	OBJECT-TYPE
	SYNTAX		SwGroupMemEntry
	ACCESS		not-accessible
	STATUS		mandatory
	DESCRIPTION	"An entry for a member of a group."
	INDEX		{ swGroupId, swGroupMemWwn }
  ::= { swGroupMemTable 1 }

  SwGroupMemEntry ::= SEQUENCE {
	swGroupId	INTEGER,
	swGroupMemWwn	FcWwn,
	swGroupMemPos	INTEGER
	}

  swGroupId OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object indentifies the WWN of the member switch."
  ::= { swGroupMemEntry 1 }

  swGroupMemWwn OBJECT-TYPE
	SYNTAX		FcWwn
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object indentifies the WWN of the member switch."
  ::= { swGroupMemEntry 2 }

  swGroupMemPos OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION	"This object indentifies position of the member switch in the group.This is based on the order that the switches were added in the group."
  ::= { swGroupMemEntry 3 }

END
