Intel® IXP400 Software

Access-Layer Components: ATM Driver Access (IxAtmdAcc) API

Figure 21. Rx Disconnect

Data Client

 

Tx Ctrl

 

 

Client

 

 

 

 

3:rxCallback(userId,IX_ BUFFER_RETURN, mbuf)

2:IX_ATMDACC_RESOURCES_STILL_ALLOCATED

5:IX_SUCCESS

AtmdAcc

1: ixAtmdAccRxDisconnect()

4: ixAtmdAccRxDisconnect()

B2291-01

1,2. The control client wants to disconnect the VC. IxAtmdAccRxVcDisconnect() tell IxAtmdAcc to discard any rx traffic and — if resources are still in use — the IxAtmdAccRxVcDisconnect() function returns

IX_ATMDACC_RESOURCES_STILL_ALLOCATED.

3.Reception of remaining traffic is discarded.

4.The client waits a certain delay — depending on the Rx drain rate for this VC — and asks again to disconnect the VC. If resources are still in use, the IxAtmdAccRxVcDisconnect() function returns IX_ATMDACC_RESOURCES_STILL_ALLOCATED

5.Because there are no resources still in use, the IxAtmdAccRxVcDisconnect() function returns IX_SUCCESS. This means that there are no resources or IXP_BUFs pending for reception or in the rxFree queue for this VC.

4.5.4Buffer Management

The IxAtmdAcc Interface is based on IXP_BUFs. The component addressing space for physical memory is limited to 28 bits. Therefore IXP_BUF headers should be located in the first

256 Mbytes of physical memory.

4.5.4.1Buffer Allocation

IXP_BUFs used by IxAtmdAcc are allocated and released by the client through the appropriate operating-system functions. During the disconnect steps, pending buffers will be released by the IxAtmDAcc component using the callback functions provided by the client, on a per-VC basis.

4.5.4.2Buffer Contents

For performance reasons, the data pointed to by an IXP_BUF is not accessed by the IxAtmDAcc component.

Programmer’s Guide

IXP400 Software Version 2.0

April 2005

 

Document Number: 252539, Revision: 007

67

Page 67
Image 67
Intel IXP400 manual Buffer Management, Buffer Allocation, Buffer Contents