
IBM32NPCXX1EPABBE66
IBM Processor for Network Resources
Preliminary
Functional Description
Page 10 of 706
pnr261_1intro.fm.06
August 14, 2000
1.9.1 Transmit Path
A typical transmit operation begins with the software requesting a buffer from POOLS and filling it with data
via slave DMA, master DMA, or processor writes. If virtual buffers are being used, the data write operation
can fail due to lack of physical buffers. In the event of a failure, the header of the packet is updated to indicate
the failure. If using master DMA, the failed buffer can be freed to POOLS. If not, the software can audit the
header after the buffer has been completely transferred, and either take action to recover the data immedi-
ately or allow CSKED to generate an event later in the transmit cycle for any buffers that have had a data
write failure.
Before the data can be transmitted, the buffer header must be updated to contain information required for cor-
rect transmission. Information such as data length, starting offset, and Logical Channel (LC) address are just
a few of the fields that must be correctly reflected in the buffer header. For a complete list of the fields in the
buffer header refer to
7.1 Packet Header
on page 673.
In addition to the fields in the buffer header, the scheduling and segmentation sections of the Logical Channel
Descriptor (LCD), such as peak rate, average rate, and AAL type, must also be set up correctly prior to trans-
mission. For a complete list of the fields in the LCD, refer to
7.3 Transmit LCD Data Structures
on page 678.
To improve performance, the LCDs are cached in the TXLCD entity.
After the data have been transferred into packet storage and both the buffer header and the LCD structure
have been correctly initialized, the buffer address is queued to CSKED. When it receives a buffer, CSKED
checks the buffer header (Packet Memory) to make sure that the data transfer operation that filled the buffer
completed without error. If it finds an error, CSKED posts an event to software and does nothing further with
this buffer. If no error is indicated in the buffer header, CSKED fetches several fields from the LCD indicated
in the buffer header to determine the current state of that LCD. If the LCD is busy sending another buffer, the
new buffer is queued to this LCD and will be processed when all previously enqueued buffers have been
transmitted. If the LCD is not busy, CSKED updates the LCD based on several fields in the buffer header and
a request is sent to SEGBF to send a cell from this LCD. If more cells need to be sent, CSKED queues the
LCD to the timewheel (which is comprised of a series of queues that determine when a cell is transmitted).
When CSKED detects a previously enqueued LCD on the time wheel, several fields are retrieved from the
LCD. Among other things, these fields are used by CSKED to determine where on the time wheel to resched-
ule this LCD. The LCD address is then provided to SEGBF for processing.
When CSKED provides an LCD address to SEGBF, the segmentation portion of the LCD is used to deter-
mine both the current address at which to continue buffer segmentation and the type of cell to construct.
Depending on the AAL type bits in the segmentation portion of the LCD, the cell is constructed in an internal
array using data from the LCD as well as data fetched from Packet Memory. When the cell construction is
complete, status is raised to LINKC indicating that a new cell is available for transmission.
Base Device
Functions
SCLCK
System Clock Generation and Repowering.
CRSET
Hardware and Software Reset Controlling.
105
CBIST
Built-In Self Test logic.
105
CJTAG
JTAG Test Interface Logic.
501
Table 1: Summary of Entities
(Continued)
Major Function
Entity Name
Description
See
Page