INTERNET-DRAFT                                                S. Akkala
<draft-anil-fcip-mib-00.txt>                               R. Natarajan
Expires October 2001                           Lightsand Communications

                                                      Anil Rijhsinghani
                                                     McDATA Corporation

                                                             April 2001
                                        

				FCIP Management MIB


Status of this Memo:
 
This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026.
 
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups.  Note that
other groups may also distribute working documents as
Internet-Drafts.
 
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other 
documents at any time.  It is inappropriate to use Internet-Drafts 
as reference material or to cite them other than as "work in 
progress."
 
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
 
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
 
1. Abstract

The goal of this document is to model and define management MIB for the 
FCIP device so that it can be part of an enterprise class storage 
network. The FCIP device is specified in the Internet-draft 
<draft-ietf-ips-fcovertcpip-02.txt> [1].
Since the FCIP device is one of the SAN fabric devices, the FCIP 
management 
MIB is defined such that it can extend the existing framework MIB, which 
is specified in <draft-ietf-ipfc-fcmgmt-int-mib-06.txt> [2], to model 
the new FCIP device under the existing overall FC management framework. 
This approach will enable the FCIP devices to integrate smoothly into 
the SAN integrated management environment for the enterprise customer.


2. Overview of FCIP-Device Based Interconnection Model 

Note that the FCIP-Device is fully described in [1] from functional 
point of view; whereas this section describes the FCIP-Device from 
management point of view.

The FCIP device is modeled as a "gateway" FC Connectivity Unit as the 
FCIP device acts as a gateway connection unit to bridge the FC onto the 
IP technology. 

The FCIP-devices provides IP-based interconnection model to interconnect 
the FC fabric elements. In this model, the FCIP-devices, along with 
their IP-network, provides a new FCIP transport network. The FC fabric 
elements (FC-FEs) will support the Logical FC Links in their overlay 
network that resides on this FCIP transport network.
 
This IP-based FCIP Interconnection Model supports the following 
topology:
-	The FCIP-based transport network is formed by 
interconnecting the FCIP-devices.
-	The peer FCIP-devices are interconnected by the Virtual-
Links. 
?	An FCIP-device establishes Virtual-Links with its 
peer FCIP devices. 
?	There will be only one Virtual-Link between two 
peer FCIP devices. 
-	A single Virtual-Link consists of multiple sets of TCP 
connections (known as the TCP Links in this document).
?	There could be one of set of TCP links for 
transmitting FC frames.
?	There could be another set of TCP links for 
transmitting control and priority messages.
-	An FCIP-device may have one or more FCIP-endpoints (known 
as the FCIP-ports in this document) facing the IP network.
?	One FCIP-port can be used to form one or more 
Virtual-Links.
-	An FCIP-device may have one or more B-ports or E-Ports 
facing the FC fabric side. 
?	These ports might connect one or more FC-FEs to the 
FCIP-device.
?	If the B-port is used to connect the neighboring 
FC-FE and FCIP_device, it establishes a bridge-
links between the FC-FE and FCIP-device. 
-	The FCIP-device can work as a stand-alone box or as part 
of a FC fabric element. 

The MIB specified in this document supports the above FCIP-devices, 
FCIP-based transport network, and FC overlay network under the existing 
overall FC management framework [2] by extending/augmenting the 
framework MIB [2].

Note that a Virtual Inter-Switch Link, as per [1], is a Logical FC Link 
between two E-ports. The association between the Virtual Inter-Switch 
Link (Virtual-Link) and the related Virtual-Links and Bridge-Links is as 
follows:
?	One Virtual Inter-Switch Link spans one Virtual-Link if both the 
FCIP-devices, through which this Virtual-Link passes through, 
operate in E-port mode.
?	One Virtual Inter-Switch Link spans one Virtual-Link and two 
Bridge-Links if both the FCIP-devices, through which this Virtual-
Link passes through, operate in B-port mode.
?	One Virtual Inter-Switch Link spans one Virtual-Link and one 
Bridge-Link if one FCIP-device operates in B-port mode and the 
other FCIP-Device operates in E-port mode.
Akkala, et al.                                              [Page 02]


INTERNET-DRAFT           FCIP Management MIB         April 20, 2001

The MIB:

FCIP-MGMT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    OBJECT-TYPE,
    NOTIFICATION-TYPE,
    MODULE-IDENTITY,
    Integer32,
    Unsigned32,
    Counter64,
    IpAddress,
    mib-2               FROM SNMPv2-SMI
    TEXTUAL-CONVENTION  FROM SNMPv2-TC
    MODULE-COMPLIANCE,
    OBJECT-GROUP,
    NOTIFICATION-GROUP  FROM SNMPv2-CONF
    SnmpAdminString     FROM SNMP-FRAMEWORK-MIB 

    fcConnUnitTable,
    fcConnUnitLinkTable,
    fcConnUnitPortTable  FROM <draft-ietf-ipfc-fcmgmt-int-mib-06.txt>


fcMgmtMIB MODULE-IDENTITY
    LAST-UPDATED "200104200000Z"
    ORGANIZATION "IETF IPFC Working Group"
    CONTACT-INFO "S. Akkala
                  LightSand Communication
                  375 Los Coches Street
                  Milpitas, CA 95035
                  U.S.A
                  Tel: +1 408 404 3150 
                  Fax: +1 408 941 2166
                  Email: sudara@lightsand.com"
    DESCRIPTION "The FCIP management MIB module."
    ::= { mib-2 8888 } -- TO BE ASSIGNED by IANA



INTERNET-DRAFT           FCIP Management MIB         April 20, 2001

fcipMgmtObjects       OBJECT IDENTIFIER ::= { fcipMgmtMIB 1 }
fcipMgmtConformance   OBJECT IDENTIFIER ::= { fcipMgmtMIB 2 }

fcipMgmtConfig        OBJECT IDENTIFIER ::= { fcipMgmtObjects 1 }
fcipMgmtCompliances   OBJECT IDENTIFIER ::= { fcipMgmtConformance 1 }
fcipMgmtGroups        OBJECT IDENTIFIER ::= { fcipMgmtConformance 2 }

Akkala, et al.                                              [Page 04]

INTERNET-DRAFT           FCIP Management MIB         April 20, 2001



--
-- the FCIP group 
--
-- This group defines the global scalar objects applicable to
-- FCIP-devices only
-- 

fcFcipMode	OBJECT-TYPE
    SYNTAX Unsigned32 {
		E-port-mode (1),
		B-port-mode	(2)
	}		
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It indicates the mode in which the FCIP-device operates"
    ::= { fcipMgmtConfig 1 }

fcFcipDynIpConfType 	OBJECT-TYPE
    SYNTAX Unsigned32 {
		not-applied (1),
		LDAP		(2),
		DHCP		(3),
		ISNS		(4),
		LSP		(5),
		other		(6)
	}		
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It indicates the type of IP discovery protocol used for dynamic 
	IP address discovery. 
	If the value is not-applied, the IP discovery is not performed.
	I.e., the IP discovery is enabled by setting to different value."
    ::= { fcipMgmtConfig 2 }

--
-- fcConnUnitLinkTable extensions 
--

-- The fcConnUnitFcipLinkTable augments the fcConnUnitLinkTable 
-- by adding additional objects and additional semantics to 
-- support the FCIP-devices
-- 

fcConnUnitFcipLinkTable OBJECT-TYPE
    SYNTAX SEQUENCE OF FcConnUnitFcipLinkEntry 
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "This table augments the fcConnUnitLinkTable in [2] to 
	support additional link types. This table extends the 
	fcConnUnitLinkTable to include new columns (i.e., objects)"
    ::= { fcipMgmtConfig 3 }

FcConnUnitFcipLinkEntry OBJECT-TYPE
    SYNTAX FcConnUnitFcipLinkEntry 
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "An entry describing additional information on a particular link."
    AUGMENTS { fcConnUnitLinkTable }
    INDEX { fcConnUnitId, fcConnUnitLinkIndex }
    ::= { fcConnUnitFcipLinkTable 1 }

FcConnUnitFcipLinkEntry ::=
    SEQUENCE {
              fcConnUnitFcipLinkType        	Unsigned32
            }

fcConnUnitFcipLinkType        OBJECT-TYPE
    SYNTAX Unsigned32 {
		is-link	(1),
		Virtual-Link	(2),
		bridge-link (3),
		others (4)
		}
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It indicates the type of link. 
	The is-link indicates the Inter-switch-link, which is formed 
between BBWs and it is supported by a FC switch.
The Virtual-Link indicates the virtual-link, which is 
formed between two peer-FCIP devices over the IP network.
The bridge-link indicates the link, which is formed between an FC 
switch and an FCIP device. This link is valid only if the FCIP 
device is implemented as a stand-alone box"
    ::= { FcConnUnitFcipLinkEntry 1 }


--
-- fcConnUnitVLinkTable 
--

-- The fcConnUnitVLinkTable defines additional
-- link information for the Virtual-Links. The fcConnUnitVLinkTable
-- link table contains specific information that is applicable to only
-- the Virtual-Links. An Virtual link will have an entry in this table
only if that link is of type Virtual-Link
-- (i.e., fcConnUnitFcipLinkType
-- = Virtual-Link in fcConnUnitFcipLinkTable). 
-- 

fcConnUnitVLinkTable OBJECT-TYPE
    SYNTAX SEQUENCE OF fcConnUnitVLinkEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "This table contains Virtual-Link specific information."
    ::= { fcipMgmtConfig 4 }

fcConnUnitVLinkEntry OBJECT-TYPE
    SYNTAX fcConnUnitVLinkEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "An entry describing additional information for a Virtual-Link"
    INDEX { fcConnUnitId, fcConnUnitLinkIndex }
    ::= { fcConnUnitVLinkTable 1 }

fcConnUnitVLinkEntry ::=
    SEQUENCE {
		fcConnUnitVLinkPortIndex   Unsigned32,
	    	fcConnUnitVLinkSecAuth     Unsigned32,
            fcConnUnitVLinkDestIPAddr  IpAddress
}

fcConnUnitVLinkPortIndex   OBJECT-TYPE
    SYNTAX Unsigned32 
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It indicates the source fcip port that is used to form this 
Virtual-Link for peer-to-peer FCIP communication. It indicates the 
index of the fcip-port in the local fcConnUnitFcipPortTable.
One FCIP-port might support multiple Virtual-Links รป in that case, 
all those Virtual-Links will have the same fcip-port index".
    ::= { fcConnUnitVLinkEntry 1 }


fcConnUnitVLinkSecAuth     OBJECT-TYPE
    SYNTAX Unsigned32 {
		none (1),
		IPSec (2),
		Other (3)
	}
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It indicates whether the FCIP-device authenticates the IP packets
	on this VIS Link or not. If it authenticates, then it indicates
 the security protocol used such as the IPSec protocol. 
The authentication is applied
	in both directions - i.e., the outgoing messages are authenticated
	before sending and the incoming messages are authenticated before
	accepting."
    ::= { fcConnUnitVLinkEntry 2 }

fcConnUnitVLinkDestIPAddr  OBJECT-TYPE
    SYNTAX IpAddress
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It indicates the destination IP address on a peer FCIP-device 
	that the local FCIP device will 
	use to communicate with that remote peer FCIP-device for 
	forwarding the incoming FC frames on this VLink."
    ::= { fcConnUnitVLinkEntry 3 }


--
-- fcConnUnitTcpLinkTable 
--

-- The fcConnUnitTcpLinkTable defines TCP connection information for
-- each TCP connection. Here, these TCP connections are called as TCP 
-- links as they are the finer granular links within the larger VISL 
-- link. Each Virtual Link will use set of tcp connections for FC data 
-- transmission and set of tcp connections for control and priority
-- Messages. This table contains all the tcp connections that are
-- created for all 
-- the Virtual-Links will be included here. All the tcp connections that 
-- are used for a Virtual-Link will have the same Virtual-Link index. 
-- The Virtual-Link index will be the index of the Virtual-Link entry in 
-- the fcConnUnitVLinkTable.

fcConnUnitTcpLinkTable OBJECT-TYPE
    SYNTAX SEQUENCE OF fcConnUnitTcpLinkTableEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "This table contains tcp-link specific information."
    ::= { fcipMgmtConfig 5 }

fcConnUnitTcpLinkTable OBJECT-TYPE
    SYNTAX fcConnUnitTcpLinkEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "An entry describing additional information for a tcp-link"
    INDEX { fcConnUnitId, FcConnUnitTcpLinkIndex }
    ::= { fcConnUnitTcpLinkTable 1 }

fcConnUnitTcpLinkEntry ::=
    SEQUENCE {
		fcConnUnitTcpLinkIndex	  	Unsigned32,
            fcConnUnitTcpLinkVislIndex	  Unsigned32,
            fcConnUnitTcpLinkPurpose	  Unsigned32,
		fcConnUnitTcpLinkDestTcpPortNum Unsigned32,
		fcConnUnitTcpLinkSrcTcpPortNum  Unsigned32,
fcConnUnitTcpLinkTcpMSS       Unsigned32,
		fcConnUnitTcpLinkTcpTimeOut   Unsigned32
}

fcConnUnitTcpLinkIndex OBJECT-TYPE
    SYNTAX Unsigned32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "It indicates the index for the tcp link table"
    ::= { fcConnUnitTcpLinkEntry 1 }

fcConnUnitTcpLinkVisIndex   OBJECT-TYPE
    SYNTAX Unsigned32 
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It indicates the index of the Virtual Link for which this tcp 
link is created. It is the fcConnUnitLinkIndex value in the 
	fcConnUnitLinkTable."
    ::= { fcConnUnitTcpLinkEntry 2 }


fcConnUnitTcpLinkPurpose OBJECT-TYPE
    SYNTAX Unsigned32 {
		Control-messages (1),
		Data-messages (2),
		Both (3)
	}
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It groups the tcp links based on the purpose for which this tcp 
link has been created. A tcp link can be used for sending control 
messages, data messages, or both the control and data messages"
    ::= { fcConnUnitTcpLinkEntry 3 }

fcConnUnitTcpLinkDestTcpPortNum  OBJECT-TYPE
    SYNTAX Unsigned32 
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It indicates the destination TCP port number on a peer FCIP-
device."
    ::= { fcConnUnitTcpLinkEntry 4 }

fcConnUnitTcpLinkSrcTcpPortNum  OBJECT-TYPE
    SYNTAX Unsigned32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "It indicates the source TCP port number at the local FCIP-
device."
    ::= { fcConnUnitTcpLinkEntry 5 }


fcConnUnitTcpLinkTcpMSS      OBJECT-TYPE
    SYNTAX Unsigned32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "It indicates the TCP Maximum Segment Size (MSS) used on the IP 
network".
    ::= { fcConnUnitTcpLinkEntry 6 }


fcConnUnitTcpLinkTcpTimeOut   OBJECT-TYPE
    SYNTAX Unsigned32 
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It indicates the TCP timeout value used."
    ::= { fcConnUnitTcpLinkEntry 7 }


--
-- fcConnUnitBLinkTable 
--
--
-- This fcConnUnitBLinkTable is used only if the FCIP-device operates 
-- in B-port mode.
-- The fcConnUnitBLinkTable further extends the fcConnUnitLinkTable 
-- by defining additional link information for the bridge-links.
-- The fcConnUnitBLinkTable link table contains specific 
-- information that is applicable to only the bridge-links. A bridge- 
-- link will have an entry in this table only if that link is of type 
-- bridge-link (i.e., fcConnUnitFcipLinkType = bridge-link in 
-- fcConnUnitFcipLinkTable). 
--

fcConnUnitBLinkTable OBJECT-TYPE
    SYNTAX SEQUENCE OF fcConnUnitBLinkEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "This table contains bridge-link specific information."
    ::= { fcipMgmtConfig 6 }

fcConnUnitBLinkEntry OBJECT-TYPE
    SYNTAX fcConnUnitBLinkEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "An entry describing additional information for a Bridge-link."
    INDEX { fcConnUnitId, fcConnUnitLinkIndex }
    ::= { fcConnUnitBLinkTable 1 }

fcConnUnitBLinkEntry ::=
    SEQUENCE {
		fcConnUnitBLinkFCTimeOut   Unsigned32
            }

fcConnUnitBLinkFCTimeOut   OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
     "It indicates the TCP timeout value used on the bridge-link."
    ::= { fcConnUnitBLinkEntry 1 }


--
-- fcConnUnitPortTable extensions for semantics 
--
-- The objects in the fcConnUnitPortTable have to provide additional 
-- semantics as mentioned below:
--     - the fcConnUnitPortType should be ipstore for the FCIP-endport
--       entry
-- 	 - the fcConnUnitPortType should be bPort for the B-port entry 
--		[note: this value has to be added as one of the 
--		enumerated values for this object]


--
-- additional fcConnUnitPortTable extensions for IP-ports
--
--
--    fcConnUnitFcipPortTable 
--
-- This fcConnUnitFcipPortTable defines additional port information 
-- for Fcip-ports (note: these Fcip-ports are referred 
-- as the FCIP end-points facing the IP network in [1]). 
-- fcConnUnitFcipPortTable port table contains 
-- specific information that is applicable to only the Fcip-ports. 
-- A port will have an entry in this table only if that port is 
-- of type Fcip-port (i.e., fcConnUnitPortType = ipstore 
-- in fcConnUnitPortTable). 
-- 
-- There could be more than one Fcip-port on FCIP-device as the FCIP 
-- device might use more than one ip ports.
-- 

fcConnUnitFcipPortTable OBJECT-TYPE
    SYNTAX SEQUENCE OF fcConnUnitFcipPortEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "This table contains Fcip-port specific information."
    ::= { fcipMgmtConfig 7 }

fcConnUnitFcipPortEntry OBJECT-TYPE
    SYNTAX fcConnUnitBPortEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "An entry describing a particular Fcip-port."
    INDEX { fcConnUnitId, fcConnUnitPortIndex }
    ::= { fcConnUnitFcipPortTable 1 }

fcConnUnitFcipPortEntry ::=
    SEQUENCE {
           	fcConnUnitFcipPortSrcIPAddr      IpAddress,
fcConnUnitFcipPortCost    	Unsigned32, 
fcConnUnitFcipPortCategory         Unsigned32,
		fcConnUnitFcipPortPathMTU     Unsigned32
            }

fcConnUnitFcipPortSrcIPAddr      OBJECT-TYPE
    SYNTAX IpAddress
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It indicates the source IP address on the Fcip-port that is 
used by the local FCIP device."
    ::= { fcConnUnitFcipPortEntry 1 }

fcConnUnitFcipPortCost     OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It indicates the link cost associated with the Virtual-Links 
formed on this FCIP port. 
This link cost will be used in routing."
    ::= { fcConnUnitFcipPortEntry 2 }

fcConnUnitFcipPortCategory  OBJECT-TYPE
    SYNTAX Unsigned32 {
		Ethernet (1),
		Token-ring (2),
		Other (3)
	}
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "It indicates the category of the IP port which is used for
indicating additional info that is applicable
to those categories. For instance, the bit-error-rate (BER)
applicable on a IP-port is derived from the Ethernet BER 
if this port is an Ethernet port"
    ::= { fcConnUnitFcipPortEntry 3 }

fcConnUnitFcipPortPathMTU     OBJECT-TYPE
    SYNTAX Unsigned32 
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It indicates the size of the Path MTU of the IP network 
	to which the FCIP-device is connected".
    ::= { fcConnUnitFcipPortEntry 4 }





--
--    fcConnUnitFCIPRouteTable 
--
-- This fcConnUnitFCIPRouteTable defines the routing data which the FCIP
-- device uses in routing the incoming FC data based on the destination 
-- address identifier (D_ID). This table is added to allow administrator
-- to setup the routing data in case the FCIP-device can not
-- automatically gather this information. In the case where the FCIP- 
-- device automatically gathers the routing information, this table 
-- allow network users to access that information.
-- 

fcConnUnitFCIPRouteTable OBJECT-TYPE
    SYNTAX SEQUENCE OF fcConnUnitFCIPRouteEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "This table contains FCIP routing entries."
    ::= { fcipMgmtConfig 8 }

fcConnUnitFCIPRouteEntry OBJECT-TYPE
    SYNTAX fcConnUnitFCIPRouteEntry 
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "An entry describing one FCIP route."
    INDEX { fcConnUnitId, fcConnUnitFCIPRouteIndex}
    ::= { fcConnUnitFCIPRouteTable 1 }

fcConnUnitFCIPRouteEntry ::=
    SEQUENCE {
           	fcConnUnitFCIPRouteIndex Unsigned32,
           	fcConnUnitFCIPRouteDID 	 OCTAL-STRING, 
	    	fcConnUnitFCIPRouteVLinkIndex 	 Unsigned32
            }

fcConnUnitFCIPRouteIndex OBJECT-TYPE
    SYNTAX Unsigned32 
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It indicates the index in the routing table. There will be 
one entry in this table for each D_ID expected to be handled by
 the local FCIP device"
    ::= { fcConnUnitFCIPRouteEntry 1 }

fcConnUnitFCIPRouteDID 	 OBJECT-TYPE
    SYNTAX OCTAL-STRING
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It indicates the D_ID of a FC destination for which the 
	local FCIP-device routes the FC frames"
    ::= { fcConnUnitFCIPRouteEntry 2 }

fcConnUnitFCIPRouteVLinkIndex 	 OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "It indicates the index of the Virtual-Link entry (in the 
	fcConnUnitLinkTable) on which the incoming FC frames 
	containing this entry's D_ID will be sent"
    ::= { fcConnUnitFCIPRouteEntry 3 }



--
-- fcConnUnitTcpConnParamTable 
--
--
-- This fcConnUnitTcpConnParamTable denotes the TCP connection 
-- parameters used on a TCP connection. This table is indexed by the  
-- FcConnUnitTcpLinkIndex.
--

fcConnUnitTcpConnParamTable OBJECT-TYPE
    SYNTAX SEQUENCE OF fcConnUnitTcpConnParamEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "This table contains TCP connection parameters."
    ::= { fcipMgmtConfig 9 }

fcConnUnitTcpConnParamEntry OBJECT-TYPE
    SYNTAX fcConnUnitTcpConnParamEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "An entry describing a particular set of tcp connection 
parameters."
    INDEX { fcConnUnitId, fcConnUnitTcpLinkIndex }
    ::= { fcConnUnitTcpConnParamTable 1 }

fcConnUnitTcpConnParamEntry ::=
    SEQUENCE {
		fcConnUnitTcpConnParamSACKOption INTEGER,
		fcConnUnitTcpConnParamIPDSCPSettingOption INTEGER,
		fcConnUnitTcpConnParamProcAgtSeqNumWrapOption INTEGER
	}
	
fcConnUnitTcpConnParamSACKOption
    SYNTAX      INTEGER {
	enabled      (1),
	disabled     (2)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Indicates whether the TCP Selective Acknowledgement 
Option(RFC 2883)
            is enabled to allow receiving end to acknowledge multiple 
lost packets in a single ACK, enabling faster recovery."
    ::= { fcConnUnitTcpConnParamEntry  1 }


fcConnUnitTcpConnParamIPDSCPSettingOption
    SYNTAX      INTEGER {
	enabled      (1),
	disabled     (2)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Indicates whether the IP DSCP field setting option is 
enabled to set the IP DSCP to the value 101110.(ie Upper 
6 bits of IP TOS field.)"
    ::= { fcConnUnitTcpConnParamEntry  2 }


fcConnUnitTcpConnParamProcAgtSeqNumWrapOption
    SYNTAX      INTEGER {
	enabled      (1),
	disabled     (2)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Indicates whether the protection against sequence number 
wrap is enabled at this TCP connection."
    ::= { fcConnUnitTcpConnParamEntry  3}



--
-- fcConnUnitTcpOpParamTable 
--
--
-- This fcConnUnitTcpOpParamTable denotes the TCP operational parameters 
-- on per ISL basis. On per ISL basis,
-- the FCIP-device maintains commulative TCP operational 
-- parameters from all the TCP connections that were used for that ISL 
-- link.This table will be indexed by the ISL link index in the 
-- fcConnUnitLinkTable.
-- 


fcConnUnitTcpOpParamTable OBJECT-TYPE
    SYNTAX SEQUENCE OF fcConnUnitTcpOpParamEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "This table contains per ISL based TCP operational parameters."
    ::= { fcipMgmtConfig 10 }

fcConnUnitTcpOpParamEntry OBJECT-TYPE
    SYNTAX fcConnUnitTcpOpParamEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
      "An entry describing a particular set of tcp operational 
parameters."
    INDEX { fcConnUnitId, fcConnUnitLinkIndex }
    ::= { fcConnUnitTcpOpParamTable 1 }

fcConnUnitTcpOpParamEntry ::=
    SEQUENCE {
           	fcConnUnitTcpOpParamRtoAlgorithm      INTEGER,
		fcConnUnitTcpOpParamRtoMin Integer32,
		fcConnUnitTcpOpParamRtoMax Integer32,
		fcConnUnitTcpOpParamActiveOpens Counter32,
		fcConnUnitTcpOpParamPassiveOpens Counter32,
		fcConnUnitTcpOpParamAttemptFails Counter32,
		fcConnUnitTcpOpParamEstabResets Counter32,
		fcConnUnitTcpOpParamInSegs Counter32,
		fcConnUnitTcpOpParamOutSegs Counter32,
		fcConnUnitTcpOpParamRetransSegs Counter32,
		fcConnUnitTcpOpParamInErrs Counter32,
		fcConnUnitTcpOpParamOutRsts Counter32

            }

fcConnUnitTcpOpParamRtoAlgorithm      OBJECT-TYPE
    SYNTAX      INTEGER {
                    other(1),    -- none of the following
                    constant(2), -- a constant rto
                    rsre(3),     -- MIL-STD-1778, Appendix B
                    vanj(4)      -- Van Jacobson's algorithm [5]
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The algorithm used to determine the timeout value used for
            retransmitting unacknowledged octets."
    ::= { fcConnUnitTcpOpParamEntry  1 }

fcConnUnitTcpOpParamRtoMin OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The minimum value for the retransmission timer on this tcp 
connection."
    ::= { fcConnUnitTcpOpParamEntry  2 }

fcConnUnitTcpOpParamRtoMax OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The maximum value for the retransmission timer on this tcp 
connection."
    ::= { fcConnUnitTcpOpParamEntry  3 }

fcConnUnitTcpOpParamActiveOpens OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of active opens this connection supported."
    ::= { fcConnUnitTcpOpParamEntry  4 }

fcConnUnitTcpOpParamPassiveOpens OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of passive opens this connection supported."
    ::= { fcConnUnitTcpOpParamEntry  5 }

fcConnUnitTcpOpParamAttemptFails OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of failed connection attempts that have occured 
at this connection."
    ::= { fcConnUnitTcpOpParamEntry  6 }

fcConnUnitTcpOpParamEstabResets OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of resets that have occured at this 
connection."
    ::= { fcConnUnitTcpOpParamEntry  7 }

fcConnUnitTcpOpParamInSegs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of segments received, including those
            received in error on this connection."
    ::= { fcConnUnitTcpOpParamEntry  8 }

fcConnUnitTcpOpParamOutSegs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
"The total number of segments sent, excluding those 
containing
            only retransmitted octets."
    ::= { fcConnUnitTcpOpParamEntry  9 }

fcConnUnitTcpOpParamRetransSegs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of retransmitted segments on this 
connection."
    ::= { fcConnUnitTcpOpParamEntry  10 }

fcConnUnitTcpOpParamInErrs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of error segments received on this 
connection."
    ::= { fcConnUnitTcpOpParamEntry  11 }

fcConnUnitTcpOpParamOutRsts OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of TCP segments sent containing the RST flag."
    ::= { fcConnUnitTcpOpParamEntry  12 }



--
-- TCP/IP performance data in the FCIP-device at Connectivity-Unit level
--
-- Note: use the TCP Group under MIB-II (RFC 2012) to gather the above 
-- kind of TCP performance data,  
--		
-- Note: use the IP Group under MIB-II (RFC 2011) to gather the above 
-- kind of IP performance data,  
--
-- Note: use the RFC 2024 for to gather the data link level performance 
-- data	



 



11. References:

[1] Rajagopal, M., "Fiber Channel Over TCP/IP (FCIP)", <draft-ietf-ips-
fcovertcpip-02.txt>, April 2001

[2] Blumenau, S., "Fiber Channel Management Framework Integration MIB", 
<draft-ietf-ipfc-fcmgmt-int-mib-06.txt>,  February 2001





13. Authors' Addresses

    Antil Rijhsinghani
    e-mail antil.rijhsinghani@mcdata.com