Intel® IXP400 Software
Access-Layer Components: Ethernet Access (IxEthAcc) API
April 2005 IXP400 Software Version 2.0 Programmer’s Guide
148 Document Number: 252539, Revision: 007
IX_OSAL_MBUFs
The buffer descriptor format supported is the IX_OSAL_MBUF, which is defined in Chapter3.
The Ethernet NPE firmware expects that all such structures (i.e., IX_OSAL_MBUF structures) are
aligned to 32-byte boundaries.
The NPE is capable of handling chained IX_OSAL_MBUFs (i.e., IX_OSAL_MBUFs making use
of the ixp_ne_next field to link multiple buffers together to contain a single frame) on both the
transmit and receive paths. However, for the sake of NPE performance, any use of
IX_OSAL_MBUF chaining should be kept to a minimum. In particular, it is preferable that the
IX_OSAL_MBUF data clusters (which are referenced by the ixp_ne_data structure members) to be
used on the Ethernet receive path be sized so that they may contain the largest expected Ethernet
frame.
It is important to note that the field definitions described within this section are valid only for the
interface between the NPE Ethernet firmware and the interfacing Intel XScale core client software.
The Intel XScale core client software is free to use these fields in any manner during the interval in
which a frame is accessible only to Intel XScale core software. If any IX_OSAL_MBUF fields are
altered during Intel XScale core-based processing, the Intel XScale core client software must
ensure that they are valid (according to the definitions in this section) before a frame is submitted
to an EthTx queue.
The following tables list the specific IX_OSAL_MBUF fields used in the Ethernet subsystem.
Note that IxEthAcc provides access to these fields via macros that are defined by the API. Those
macros generally adhere to the terminology used in the following tables. Refer to the source code
for specific syntax.
Many of the IX_OSAL_MBUF field features described below are further explained in Chapter 10.
Table 17. IX_OSAL_MBUF Structure Format
Offset +0 +1 +2 +3
ixp_ne_header
0 ixp_ne_next
4 ixp_ne_len ixp_ne_header
8 ixp_ne_data
ixp_ne_if_eth
12 ixp_ne_dest_port ixp_ne_scr_port ixp_ne_flags
16 ixp_ne_qos_class ixp_ne_reserved ixp_ne_vlan_tci
20 ixp_ne_dest_mac[0:5]
24 ixp_ne_src_mac[0:5]
28
Table 18. ixp_ne_flags Field Format
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8
new_src vlan_en tag_over tag_mode port_over
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
filter st_prot link_prot vlan_prot ip_prot multicast broadcast