Main Page   Modules   Alphabetical List   Data Structures   File List   Data Fields   Globals  

IXP425 Ethernet Access Codelet (IxEthAccCodelet) API
[IXP425 Codelets]

IXP425 Ethernet Access Codelet API. More...

Defines

#define IX_ETHACC_CODELET_NPEB_MAC
 Hard-encoded MAC address for NPEB.

#define IX_ETHACC_CODELET_NPEC_MAC
 Hard-encoded MAC address for NPEC.

#define IX_ETHACC_CODELET_RX_MBUF_POOL_SIZE
 Size of receive MBuf pool.

#define IX_ETHACC_CODELET_TX_MBUF_POOL_SIZE
 Size of transmit MBuf pool.

#define IX_ETHACC_CODELET_MAX_PORT
 Number of Ethernet Ports supported for this codelet.

#define IX_ETHACC_CODELET_MBUF_POOL_SIZE
 Size of MBuf pool.

#define IX_ETHACC_CODELET_PCK_SIZE
 Size of MBuf packet (recommaended size for ethAcc component).

#define IX_ETHACC_CODELET_PCK_LEN
 Length of MBuf payload (in bytes).

#define IX_ETHACC_CODELET_MBUF_DATA_POOL_SIZE
 Size of MBuf data pool.

#define IX_ETHACC_CODELET_TXGEN_PCK_LEN
 Size of packets for TxGenRxSink Operation.

#define IX_ETHACC_CODELET_TXGEN_PCKS
 Number of packets to generate for the TxGenRxSink Operation.

#define IX_ETHACC_CODELET_RX_FCS_STRIP
 Strip FCS from incoming frames. To undefine, change to #undef.

#define IX_ETHACC_CODELET_FRAME_SIZE
 Maximum size of a frame.


Functions

PUBLIC IX_STATUS ixEthAccCodeletMain (IxEthAccCodeletOperation operationType)
 This function is used as a single point of execution for EthAcc codelet.


Detailed Description

IXP425 Ethernet Access Codelet API.

This codelet demonstrates both Ethernet Data and Control plane services and Ethernet Management services.

  • A) Ethernet Data and Control plane services:
    • Configuring both ports as a receiver sink from an external source (such as Smartbits).
    • Configuring Port-1 to automatically transmit frames and receive frames on Port-2. Frames generated and transmitted in Port-1 are loopbacked into Port-2 by using cross cable.
    • Configuring and performing a software loopback on each of the two ethernet ports.
    • Configuring both ports to act as a bridge so that frames received on one port are retransmitted on the other.

  • B) Ethernet Management services:
    • Adding and removing static/dynamic entries.
    • Calling the maintenance interface (shall be run as a separate background task)
    • Calling the show routine to display the MAC address filtering tables.

Definition
In the context of this codelet, the following definitions are applicable.
Port 1 = ixe0 = Ethernet port associated with NPE-B Ethernet Coprocessor.
Port 2 = ixe1 = Ethernet port associated with NPE-C Ethernet Coprocessor.

Design constraints
This codelet assumes that the underlying IXP425 Product Line Silicons have two Ethernet NPEs. For silicon with single Ethernet NPE, operation will be only functional in the particular Ethernet port that corresponds to the available Ethernet NPE. Particularly, bridge operation will not work as two Ethernet ports are needed in this operation.

Assumptions
This codelet illustrates the use EthAcc APIs. The operations provided may not be working on the best performance as the target of this codelet is just to show the functionality of APIs. In order to get better performance, #undef IX_ETHACC_CODELET_TXGENRXSINK_VERIFY to disable traffic verification.

Please note that this codelet is not optimized for production quality.

For performance testing, please use the operations below:

  • Rx Sink Operation.
  • TxGenRxSink Operation.
  • Bridge Operation with Ethernet frames sent into either one of the Ethernet Ports.

The operations below need special tuning to optimize them. Tuning can be done by either using a lower traffic(frames/second), reducing the value of IX_ETHACC_CODELET_TXGEN_PCKS or #undef IX_ETHACC_CODELET_TXGENRXSINK_VERIFY.

  • Software Loopback Operation.
  • PHY Loopback Operation.
  • Bridge Operation with Ethernet frames sent into both Ethernet Ports.

VxWorks User Guide
ixEthAccCodeletMain() function is used as a single point of execution for EthAcc Codelet. It allows user to enter selection for different type of supported operations described below:

Usage : >ixEthAccCodeletMain (operationType) Where operationType: 1 = To sink received frames as fast as possible for available ports. 2 = To software loopback received frames to the same port for available ports. 3 = To generate and transmit frames from port 1, remote loopback by using an external cross cable to port 2, and received on port 2 (TxGenRxSink). 4 = To generate frames and perform PHY loopback on the same port for available ports. 5 = To transmit any frame received on one port through the other one (Bridge). 6 = To activate Ethernet MAC learning facility.

Linux User Guide
The idea of using the ixEthAccCodeletMain() as a single point of execution for EthAcc codelet. The operation selected will be executed when user issue 'insmod' in command prompt.

Usage : >insmod ixp400_codelets_ethAcc.o operationType= Where x: 1 = To sink received frames as fast as possible for available ports. 2 = To software loopback received frames to the same port for available ports. 3 = To generate and transmit frames from port 1, remote loopback by using an external cross cable to port 2, and received on port 2 (TxGenRxSink). 4 = To generate frames and perform PHY loopback on the same port for available ports. 5 = To transmit any frame received on one port through the other one (Bridge). 6 = To activate Ethernet MAC learning facility.

MAC Setup

The default MAC setup will be:

  • Promiscuous mode enabled (for learning example)
  • Frame Check Sequence appended for all frames generated on the XScale

PHY Setup

This codelet uses two PHYs as defined by IX_ETHACC_CODELET_MAX_PHY The default PHY setup will be:

  • 100Mbits,
  • full duplex,
  • auto-negotiation on.

Jumbo frames

This codelet setup enable Jumbo frame reception The default setup will be:

  • frames up to a msdu size of 9018 are supported.

Test Equipment

The test harness will consist of external test equipment capable of generating Ethernet packets (e.g. SmartBits).

The test equipment must be capable of performing at least the following actions to support the scenarios outlined for the Codelet:

  • Send/receive an Ethernet data stream.
  • Send/receive frames of different length.
  • Detect CRC errors.
  • Append FCS.
  • Support 100Mbit full duplex mode.

Define Documentation

#define IX_ETHACC_CODELET_FRAME_SIZE
 

Maximum size of a frame.

This maximum frame size includes different network settings :

  • Ethernet frames (up to 1518 bytes),
  • BabyJumbo frames (up to nearly 1600 bytes)
  • Jumbo frames (9K bytes). Note that different encapsulation types may extend the MTU size of 9000. The NPE firmware compares onlu the overall ethernet frame size (MSDU), with may be stripped from the FCS at the time of comparrison.

Definition at line 379 of file IxEthAccCodelet.h.

#define IX_ETHACC_CODELET_MAX_PORT
 

Number of Ethernet Ports supported for this codelet.

Definition at line 262 of file IxEthAccCodelet.h.

#define IX_ETHACC_CODELET_MBUF_DATA_POOL_SIZE
 

Size of MBuf data pool.

Definition at line 300 of file IxEthAccCodelet.h.

#define IX_ETHACC_CODELET_MBUF_POOL_SIZE
 

Size of MBuf pool.

Definition at line 271 of file IxEthAccCodelet.h.

#define IX_ETHACC_CODELET_NPEB_MAC
 

Hard-encoded MAC address for NPEB.

Definition at line 226 of file IxEthAccCodelet.h.

#define IX_ETHACC_CODELET_NPEC_MAC
 

Hard-encoded MAC address for NPEC.

Definition at line 235 of file IxEthAccCodelet.h.

#define IX_ETHACC_CODELET_PCK_LEN
 

Length of MBuf payload (in bytes).

Definition at line 291 of file IxEthAccCodelet.h.

#define IX_ETHACC_CODELET_PCK_SIZE
 

Size of MBuf packet (recommaended size for ethAcc component).

Definition at line 282 of file IxEthAccCodelet.h.

#define IX_ETHACC_CODELET_RX_FCS_STRIP
 

Strip FCS from incoming frames. To undefine, change to #undef.

#define IX_ETHACC_CODELET_RX_MBUF_POOL_SIZE
 

Size of receive MBuf pool.

Definition at line 244 of file IxEthAccCodelet.h.

#define IX_ETHACC_CODELET_TX_MBUF_POOL_SIZE
 

Size of transmit MBuf pool.

Definition at line 253 of file IxEthAccCodelet.h.

#define IX_ETHACC_CODELET_TXGEN_PCK_LEN
 

Size of packets for TxGenRxSink Operation.

Definition at line 310 of file IxEthAccCodelet.h.

#define IX_ETHACC_CODELET_TXGEN_PCKS
 

Number of packets to generate for the TxGenRxSink Operation.

Definition at line 319 of file IxEthAccCodelet.h.


Function Documentation

ixEthAccCodeletMain IxEthAccCodeletOperation  operationType  ) 
 

This function is used as a single point of execution for EthAcc codelet.

Parameters:
IxEthAccCodeletOperation [in] operationType - The type of operation to be executed. Refer to the descriptions above.
Returns:
  • IX_SUCCESS : If operation selected is successfully setup
  • IX_FAIL : If operation selected fails to be setup.

Automatically generated from sources. © Intel Corp. 2003