Jumbo Frames
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 127
• Extended buffers placed in the jumbo producer ring must provide an aggregated space of 9622 bytes or
higher. Otherwise, jumbo frames might be truncated by the controller during placement.
A conceptual diagram of the Receive Producer Interface is shown in
below.
Figure 27: Receive Producer Interface
The BCM5718 family fills up receive buffers with RX frame data and returns the buffers to the host via receive
return rings. The members of a return ring are simply RX buffer descriptors. Both types of descriptors, that is,
standard or extended, are returned to the same return ring. As mentioned previously, due to practical reasons,
extended buffer descriptors are truncated before posting into a return ring so that the actual size of all BDs
posted to the return ring are the same (see
“Receive Return Ring(s)” on page 122
).
To support RSS, there are four return rings in the BCM5718 family. However, when RSS is disabled all RX
frames are posted to Ring 0 while the other three rings remain inactive. In any case, standard and jumbo frames
may be intermixed in any return ring as the order of placement strictly follows the order of frame reception.
The controller maintains four producer indexes associated with the four return rings. The availability of receive-
side packets by the device is communicated to the driver via the receive return ring producer indices, which is
delivered via the status block periodically when it is DMAed to the host by the controller.
The consumption of receive return packets by the driver is communicated to the controller via the receive return
consumer ring index mailbox register.
A conceptual diagram of the Receive Return Interface is shown in
below.
Host Memory
Host Buffer n (<= 1522B)
RX Std Host BD
RX Std Ring Control Block
RX Std Producer Ring
Note: The RCB's host ring address field points to the first
element of the Ring in the host.
Status Word
Status Tag
RX Std Cons
0
31
Status Block
Rcv Return #1
TX Cons #1
Status Block (28 bytes)
The Status block resides in the NIC memory space
and is periodically DMA'd to the host whenever
the TX/RX coalescing timers expire, or whenever
the RX/TX max coalesced frames thresholds are
met. SW can examine the TX consumer indices in
the status block to determine which packets have
been sent by the HW.
The mailbox registers reside on-chip starting at offset
0x5800. Each mailbox register is 64 bits wide. Wrting the
lower 32 bits, triggers and event in the HW. SW updates the
TX Host Ring producer index to indicate that that there are
buffer descriptors ready for the HW to process.
Host Address
length
…...
0
31
Receive Buffer Descriptor
flags
Data Structures in the host
Data Structures kept on-chip
The BCM5718 family supports Standard & Extended RX Buffer
descriptors. The RX Rings are located in the host (as shown below),
and the device will keep a local (not shown) copy of the ring.
RX Std Host BD
Rcv Return #3
Rcv Return #2
Rcv Return #0
RX Jumbo Cons
Resvd
RX Std Cons Index references
a specific BD in the Std Ring
Host Ring Address
max_len
NIC Ring Address
0
31
flags
Max_frame_size
1st
Cons
Prod
1st
Cons
Prod
0
63
Mailbox Registers
RX Std Ring Prod Index
RX Jumbo Producer Ring
0
63
Mailbox Registers
RX Jumbo Ring Prod Index
RX Jumbo Ring Control
Block
…...
Host Ring Address
max_len
NIC Ring Address
0
31
flags
Host Buffer n+1
Host Buffer m (<= 9622B)
RX Ext Host BD