Fabric OS Administrator's Guide v7.0.0 (53-1002148-02, June 2011)

Fabric OS Administrator’s Guide 453
53-1002148-02
Buffer credit management
22
Allocating buffer credits based on full-size frames
Assuming that the frame size is full, one buffer credit allows a device to send one payload up to
2112 bytes (2148 with headers). Assuming that each payload is 2112, you need one credit per 1
km of link length at 2 Gbps (smaller payloads require additional BB credits to maintain link
utilization). See Allocating buffer credits based on average-size frames” on page 455 for
additional information.
The final frame size must be a multiple of 4 bytes. If the data (payload) needs to segment, it will be
padded with 1 to 3 “fill-bytes” to achieve an overall 4-byte frame alignment. The standard frame
header size is 24 bytes. If applications require extensive control information, up to 64 additional
bytes (for a total of an 88-byte header) can be included. Because the total frame size cannot
exceed the maximum of 2,148 bytes, the additional header bytes will subtract from the data
segment size by as much as 64 bytes (per frame). This is why the maximum data (payload) size is
2,112 (because [2,112 – 64] = 2,048, which is 2 kbs of data). The final frame, after it is
constructed, is passed through the 8-byte to 10-byte conversion process.
Table 78 describes Fibre Channel data frames.
You can allocate buffer credits based on distance using the portCfgLongDistance command. The
long distance link modes allow you to select the Dynamic mode (LD) or the Static Long-distance
mode (LS) to calculate the BB credits.
For LD, the estimated distance in kilometers is the smaller of the distance measured during port
initialization versus the desired_distance parameter, which is required when a port is configured as
an LD or an LS mode link. It is best practice to use LS over LD. The assumption of Fibre Channel
payloads consistently being 2,112 bytes is not realistic in practice. To gain the proper number of BB
credits using the LS mode, there must be enough BB credits available in the pool because
Fabric OS will check before accepting a value.
NOTE
The portCfgLongDistance command’s desired_distance parameter is the upper limit of the link
distance and is used to calculate buffer availability for other ports in the same port group. When the
measured distance exceeds the value of desired_distance, this value is used to allocate the buffers.
In this case, the port operates in degraded mode instead of being disabled due to insufficient
buffers. In LS mode, the actual link distance is not measured; instead, the desired_distance value
is used to allocate the buffers required for the port.
TABLE 78 Fibre Channel data frames
Fibre Channel Frame fields Field size
Start of frame
4 bytes 32 bits
Standard frame header
24 bytes 192 bits
Data (payload)
0 - 2,112 bytes 0 - 16,896 bits
CRC
4 bytes 32 bits
End of frame
4 bytes 32 bits
Total (Number bits/frame)
36 - 2,148 bytes 288 - 17,184 bits