Intel® IXP400 Software

Access-Layer Components: Ethernet Access (IxEthAcc) API

IX_OSAL_MBUFs

The buffer descriptor format supported is the IX_OSAL_MBUF, which is defined in Chapter 3. 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

 

 

 

 

 

 

 

 

 

0

 

ixp_ne_next

 

 

 

 

 

 

 

 

 

ixp_ne_header

4

ixp_ne_len

 

 

ixp_ne_header

 

 

 

 

 

 

 

 

 

8

 

ixp_ne_data

 

 

 

 

 

 

 

 

 

 

 

 

12

ixp_ne_dest_port

ixp_ne_scr_port

 

 

ixp_ne_flags

 

 

 

 

 

 

 

 

16

ixp_ne_qos_class

ixp_ne_reserved

 

 

ixp_ne_vlan_tci

 

 

 

 

 

 

 

 

ixp_ne_if_eth

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 7

Bit 6

Bit 5

 

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

 

 

 

 

 

 

 

 

 

filter

st_prot

 

link_prot

vlan_prot

ip_prot

multicast

broadcast

 

 

 

 

 

 

 

 

 

April 2005

IXP400 Software Version 2.0

Programmer’s Guide

148

Document Number: 252539, Revision: 007

 

Page 148
Image 148
Intel IXP400 manual Ixosalmbuf Structure Format, Ixpneflags Field Format