Intel® IXP400 Software
Access-Layer Components: Ethernet Access (IxEthAcc) API
April 2005 IXP400 Software Version 2.0 Programmer’s Guide
134 Document Number: 252539, Revision: 007
9.5.1 Port Initialization
Prior to any operation being performed on a port, the appropriate microcode must be downloaded
to the NPE using the IxNpeDl component.
The IxEthAccPortInit() function initializes all internal data structures related to the port and checks
that the port is present before initialization. The Port state remains disabled even after
IxEthAccPortInit() has been called. The port is enabled using the IxEthAccPortEnable() function.
The number of Ethernet ports supported on the processor varies by processor model or variant. The
definition and enumeration of port IDs are defined in IxEthDB. See Tabl e 19 for more specific
information.
9.5.2 Ethernet Frame Transmission
The Ethernet access component provides a mechanism to submit frames with a relative priority to
be transmitted on a specific Ethernet MAC. Once the IX_OSAL_MBUF is no longer required by
the component, it is returned from the Ethernet access component via a free buffer callback
mechanism. The flow of Ethernet frame transmission is shown in Figure 49.

9.5.2.1 Transmission Flow

1. Proper NPE images must be downloaded to the NPEs and initialized.
2. The transmitting port must be initialized.
Figure 49. Ethernet Transmit Frame API Overview
Tx
Data Client
1. IxNpeDlNpeInitAndStart (ImageID)
2. IxEthAccPortInit (portId)
3. IxEthAccPortTxDoneCallbackRegister
(portID, callbackfn, callbacktag)
4. IxEthAccPortEnable (portId)
5. IxEthAccPortTxFrameSubmit
(portID, ixp_buf *, priority)
ixp_buf queued for transmission
IxEthAcc
Transmit
7. (* IxEthAccPortTxDoneCallback)(port,
ixp_buf *)
ixp_buf no longer required
6.
B2363-03