Adaptec 1737100 Programmer Manual - Page 27

FifoFull, BufferQueue, EndIndex, Length

Page 27 highlights

Receive Architecture Table 2-7. Receive Completion Descriptor (Word 0) Bit(s) Description/Function Status1 field 29 OK - The frame is good. There were no CRC errors, dribble nibble, illegal lengths, or receive code violations. In ISL mode, the ISL and Ethernet checksums must both be valid. This does not include the TCP/UDP checksum. 28 FifoFull - If set, the frame is incomplete due to FIFO full - no other status bits, except OK, are valid. 27 BufferQueue - If set, the buffer queue 2 was used for the packet. If cleared, buffer queue 1 was used. EndIndex field 26:16 EndIndex - Index of the last buffer used in the buffer queue. Length field 15:0 Length - Total length of data transferred in bytes for good packet. This value is generally equal to the length of the packet (including destination and source addresses, type fields, etc.) minus 4 bytes, since the CRC isn't transferred by default. Setting RxDmaCrc to transfer the CRC can increase the length transferred here and reported by 4 bytes. Setting VlanMode=01, which causes the VLAN tag and ID to be stripped will reduce the length transferred and reported by 4 bytes. In header-splitting mode (RxDmaQueueMode=100), two buffer descriptors are transferred for TCP packets. A single receive completion queue is used for this mode. The Length field of the first completion descriptor contains the length of the header in bytes. The Length field of the second completion descriptor contains the total bytes transferred, including the header, even through the header data is transferred to the first queue, while the rest of the data is transferred to the second queue. This field may not be valid for bad packets. 2-7

  • 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

2-7
Receive Architecture
Table 2-7. Receive Completion Descriptor (Word 0)
Bit(s)
Description/Function
Status1 field
29
OK
- The frame is good. There were no CRC errors, dribble nibble, illegal lengths, or
receive code violations. In ISL mode, the ISL and Ethernet checksums must both be
valid. This does not include the TCP/UDP checksum.
28
FifoFull
- If set, the frame is incomplete due to FIFO full - no other status bits, except
OK, are valid.
27
BufferQueue
- If set, the buffer queue 2 was used for the packet. If cleared, buffer
queue 1 was used.
EndIndex field
26:16
EndIndex
- Index of the last buffer used in the buffer queue.
Length field
15:0
Length
- Total length of data transferred in bytes for good packet.
This value is generally equal to the length of the packet (including destination and
source addresses, type fields, etc.) minus 4 bytes, since the CRC isn’t transferred by
default. Setting RxDmaCrc to transfer the CRC can increase the length transferred here
and reported by 4 bytes. Setting VlanMode=01, which causes the VLAN tag and ID to
be stripped will reduce the length transferred and reported by 4 bytes.
In header-splitting mode (RxDmaQueueMode=100), two buffer descriptors are
transferred for TCP packets. A single receive completion queue is used for this mode.
The Length field of the first completion descriptor contains the length of the header in
bytes. The Length field of the second completion descriptor contains the total bytes
transferred, including the header, even through the header data is transferred to the
first queue, while the rest of the data is transferred to the second queue. This field may
not be valid for bad packets.