'\" te .\" Copyright (c) 2004, Sun Microsystems, Inc. All Rights Reserved .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License. .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] .TH FCIP 4D "Oct 18, 2004" .SH NAME fcip \- IP/ARP over Fibre Channel datagram encapsulation driver .SH SYNOPSIS .LP .nf /dev/fcip .fi .SH DESCRIPTION .sp .LP The \fBfcip\fR driver is a Fibre Channel upper layer protocol module for encapsulating \fBIP\fR (IPv4) and \fBARP\fR datagrams over Fibre Channel. The \fBfcip\fR driver is a loadable, clonable, \fBSTREAMS\fR driver supporting the connectionless Data Link Provider Interface, \fBdlpi\fR(4P) over any Sun Fibre Channel transport layer-compliant host adapter. .sp .LP The \fBfcip\fR driver complies with the \fIRFC 2625\fR specification for encapsulating IP/ARP datagrams over Fibre Channel, and allows encapsulation of IPv4 only, as specified in \fIRFC 2625\fR. The \fBfcip\fR driver interfaces with the \fBfp\fR(4D) Sun Fibre Channel port driver. .SH APPLICATION PROGRAMMING INTERFACE .sp .LP The cloning character-special device \fB/dev/fcip\fR is used to access all Fibre Channel ports capable of supporting \fBIP\fR/\fBARP\fR traffic on the system. .SS "fcip and DLPI" .sp .LP The \fBfcip\fR driver is a "style 2" Data Link Service Provider. All \fBM_PROTO\fR and \fBM_PCPROTO\fR type messages are interpreted as \fBDLPI\fR primitives. Valid \fBDLPI\fR primitives are defined in \fB\fR\&. Refer to \fBdlpi\fR(4P) for more information on \fBDLPI\fR primitives. .sp .LP An explicit \fBDL_ATTACH_REQ\fR message must be sent to associate the opened stream with a particular Fibre Channel port (ppa). The ppa ID is interpreted as an unsigned long data type and indicates the corresponding Fibre Channel port driver instance number. An error (\fBDL_ERROR_ACK\fR) is returned by the driver if the ppa field value does not correspond to a valid port driver instance number or if the Fibre Channel port is not \fBONLINE\fR. Refer to \fBfp\fR(4D) for more details on the Fibre Channel port driver. .sp .LP The values returned by the driver in the \fBDL_INFO_ACK\fR primitive in response to a \fBDL_INFO_REQ\fR from the user are as follows: .RS +4 .TP .ie t \(bu .el o Maximum SDU is \fB65280\fR (defined in \fIRFC 2625\fR). .RE .RS +4 .TP .ie t \(bu .el o Minimum SDU is \fB0\fR. .RE .RS +4 .TP .ie t \(bu .el o \fBDLSAP\fR address length is \fB8\fR. .RE .RS +4 .TP .ie t \(bu .el o MAC type is \fBDL_ETHER\fR. .RE .RS +4 .TP .ie t \(bu .el o \fBSAP\fR length is \fB-2\fR. .RE .RS +4 .TP .ie t \(bu .el o Service mode is \fBDL_CLDLS\fR. .RE .RS +4 .TP .ie t \(bu .el o Optional quality of service (\fBQOS\fR) fields are set to \fB0\fR. .RE .RS +4 .TP .ie t \(bu .el o Provider style is \fBDL_STYLE2\fR. .RE .RS +4 .TP .ie t \(bu .el o Provider version is \fBDL_VERSION_2\fR. .RE .RS +4 .TP .ie t \(bu .el o Broadcast address value is \fB0xFFFFFFFF\fR. .RE .sp .LP Once in \fBDL_ATTACHED\fR state, the user must send a \fBDL_BIND_REQ\fR to associate a particular \fBSAP\fR (Service Access Point) with the stream. The \fBfcip\fR driver \fBDLSAP\fR address format consists of the 6-byte physical address component followed immediately by the 2-byte \fBSAP\fR component producing an 8-byte \fBDLSAP\fR address. Applications should not be programmed to use this implementation-specific \fBDLSAP\fR address format, but use information returned in the \fBDL_INFO_ACK\fR primitive to compose and decompose \fBDLSAP\fR addresses. The \fBSAP\fR length, full \fBDLSAP\fR length, and \fBSAP\fR/physical ordering are included within the \fBDL_INFO_ACK\fR. The physical address length is the full \fBDLSAP\fR address length minus the \fBSAP\fR length. The physical address length can also be computed by issuing the \fBDL_PHYS_ADDR_REQ\fR primitive to obtain the current physical address associated with the stream. .sp .LP Once in the \fBDL_BOUND\fR state, the user can transmit frames on the fibre by sending \fBDL_UNITDATA_REQ\fR messages to the \fBfcip\fR driver. The \fBfcip\fR driver will route received frames up any of the open and bound streams having a \fBSAP\fR which matches the received frame's \fBSAP\fR type as \fBDL_UNITDATA_IND\fR messages. Received Fibre Channel frames are duplicated and routed up multiple open streams if necessary. The \fBDLSAP\fR address contained within the \fBDL_UNITDATA_REQ\fR and \fBDL_UNITDATA_IND\fR messages consists of both the \fBSAP\fR (type) and physical address (WorldWideName) components. .SS "Other Primitives" .sp .LP In Fibre Channel, \fBmulticasting\fR is defined as an optional service for Fibre Channel classes three and six only. If required, the Fibre Channel broadcast service can be used for multicasting. The \fIRFC 2625\fR specification does not support \fBIP \fRmulticasting or promiscuous mode. .SS "fcip Fibre Channel ELS" .sp .LP The \fBfcip\fR driver will use the \fBFARP\fR Fibre Channel Extended Link Service (\fBELS\fR), where supported, to resolve WorldWide Names (MAC address) to FC Port Identifiers(Port_ID). The \fBfcip\fR driver also supports InARP to resolve WorldWide Name and Port_ID to an IP address. .SH FILES .sp .ne 2 .na \fB\fB/dev/fcip\fR\fR .ad .RS 28n fcip character-special device .RE .sp .ne 2 .na \fB\fB/kernel/drv/fcip\fR\fR .ad .RS 28n 32-bit ELF kernel driver (x86) .RE .sp .ne 2 .na \fB\fB/kernel/drv/amd64/fcip\fR\fR .ad .RS 28n 64-bit ELF kernel driver (x86) .RE .sp .ne 2 .na \fB\fB/kernel/drv/sparcv9/fcip\fR\fR .ad .RS 28n 64-bit ELF kernel driver (SPARC) .RE .sp .ne 2 .na \fB\fB/kernel/drv/fcip.conf\fR\fR .ad .RS 28n fcip driver configuration file .RE .SH ATTRIBUTES .sp .LP See \fBattributes\fR(7) for descriptions of the following attributes: .sp .sp .TS box; c | c l | l . ATTRIBUTE TYPE ATTRIBUTE VALUE _ Architecture SPARC .TE .SH SEE ALSO .sp .LP .BR fp (4D), .BR dlpi (4P), .BR driver.conf (5), .BR netstat (8), .BR prtconf (8) .sp .LP \fIWriting Device Drivers\fR .sp .LP \fIIP and ARP over Fibre Channel, RFC 2625\fR M. Rajagopal, R. Bhagwat, W. Rickard. Gadzoox Networks, June 1999 .sp .LP \fIANSI X3.230-1994, Fibre Channel Physical and Signalling Interface (FC-PH)\fR .sp .LP \fIANSI X3.272-1996, Fibre Channel Arbitrated Loop (FC-AL)\fR .SH NOTES .sp .LP If you use a Fibre Channel adapter with two or more ports that each share a common Node WorldWideName, the \fBfcip\fR driver will likely attach to the first port on the adapter. .sp .LP \fIRFC 2625\fR requires that both source and destination WorldWideNames have their 4 bit NAA identifiers set to binary '0001,' indicating that an IEEE 48-bit MAC address is contained in the lower 48 bits of the network address fields. For additional details, see the \fIRFC 2625\fR specification.