1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
|
'\" 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 7D "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(7P) 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(7d) 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<sys/dlpi.h>\fR\&.
Refer to \fBdlpi\fR(7P) 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(7d) 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(5) 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
\fBnetstat\fR(1M), \fBprtconf\fR(1M), \fBdriver.conf\fR(4), \fBfp\fR(7d),
\fBdlpi\fR(7P)
.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.
|