Adaptec 1737100 Programmer Manual - Page 22

Host Data Structures

Page 22 highlights

AIC-6915 Ethernet LAN Controller Programmer's Manual s VLAN support: - Address filtering based on VLAN - Ability to delete VLAN tag and number from frame returned to the host s Optional second buffer list for allocating two different buffer sizes Host Data Structures Figure 2-1 illustrates the AIC-6915 receive data structures. Receive Buffers Receive Buffer Descriptor Queue (256/2KByte) Adrs Adrs Adrs Adrs Adrs Host Memory On-chip Receive Completion Queue (2KByte entries) Start End Len Stat 1 per Frame Adrs ListLen Adrs Write Read BufferLength Write Read (2 Queues are available for 2 different sizes of buffers) (2 completion Queues allow for 2 priorities) Figure 2-1. The AIC-6915 Receive Data Structures Producer and Consumer Indices The transmit, receive, and completion descriptors are stored in circular queues. With the descriptor queue, the host writes entries into the queue. The AIC-6915 reads from the descriptor queue and writes to the completion queue, which is in turn read by the host. The AIC-6915 maintains onchip Producer and Consumer indexes to each queue. The first element of any queue has an index of 0. The Producer Index indicates the next entry of the queue to be written, while the Consumer Index indicates the next entry in the queue to be read. If Producer and Consumer indices are equal, the queue is empty. If (Producer+1) mod QueueSize is equal to Consumer then the queue is full. The maximum number of entries placed in a queue at one time is the queue size minus one. Receive DMA Descriptor Queues The AIC-6915 contains two Producer/Consumer type DMA Receive Descriptor Queues that contain a maximum of either 256 or 2048 entries. A variable option permits the use of a smaller queue. Host Buffer addresses must be aligned to a word (4-byte) boundary. For best performance, addresses should also be aligned to cacheline boundary. 2-2

  • 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-2
AIC-6915 Ethernet LAN Controller Programmer’s Manual
VLAN support:
Address filtering based on VLAN
Ability to delete VLAN tag and number from frame returned to the host
Optional second buffer list for allocating two different buffer sizes
Host Data Structures
Figure 2-1 illustrates the AIC-6915 receive data structures.
Producer and Consumer Indices
The transmit, receive, and completion descriptors are stored in circular queues. With the
descriptor queue, the host writes entries into the queue. The AIC-6915 reads from the
descriptor queue and writes to the completion queue, which is in turn read by the host.
The AIC-6915 maintains onchip Producer and Consumer indexes to each queue. The first
element of any queue has an index of 0.
The Producer Index indicates the next entry of the queue to be written, while the
Consumer Index indicates the next entry in the queue to be read.
If Producer and Consumer indices are equal, the queue is empty. If
(
Producer+1) mod
QueueSize is equal to Consumer
then the queue is full. The maximum number of entries
placed in a queue at one time is the queue size minus one.
Receive DMA Descriptor Queues
The AIC-6915 contains two Producer/Consumer type DMA Receive Descriptor Queues
that contain a maximum of either 256 or 2048 entries. A variable option permits the use of
a smaller queue. Host Buffer addresses must be aligned to a word (4-byte) boundary. For
best performance, addresses should also be aligned to cacheline boundary.
Receive Completion Queue
(2KByte entries)
Adrs
Adrs
Adrs
Adrs
Adrs
Adrs
Write
Read
ListLen
Host Memory
On-chip
Start
End Len Stat
Adrs
Write
Read
Receive Buffer Descriptor Queue
(256/2KByte
)
1 per Frame
Receive Buffers
BufferLength
(
2 Queues are available for 2 different sizes of buffers)
Figure 2-1. The AIC-6915 Receive Data Structures
(
2 completion Queues allow for 2 priorities)