Intel IXP1200 manual StrongARM Core Initialization, Ethernet to ATM Data Flow

Page 19

IXP1200 Network Processor Family ATM OC-3/12/Ethernet IP Router Example Design

2.4.2Ethernet to ATM Data Flow

Figure 11 outlines the sequence of events that takes place when processing incoming Ethernet packets. Incoming Ethernet packets can either fit within a single MPKT ("m-packet", 64 byte packet "fragment"), or span multiple MPKTs. The SOP (start of packet) and EOP (end of packet) bits indicate the starting and ending MPKTs. As MPKTs are received, they are stored in an DRAM data buffer.

When the first MPKT is received (SOP asserted), the IP header is read from the RFIFO, the header checksum is checked, the appropriate IP fields are updated (i.e. TTL), and an IP lookup is performed. The IP Lookup Table Entry tells the receiver which port to route to, and which LLC/ SNAP pattern to prepend to the PDU. The LLC/SNAP and modified IP headers are then written to DRAM.

When the final MPKT is received (EOP asserted), the AAL5 trailer is written out to DRAM and the fully assembled PDU is enqueued for ATM transmission.

Figure 11. Ethernet to ATM Processing Steps

SDRAM

Pack Buffer Generate CRC on PDU

 

Ethernet Frame on Rx Port

Payload

7

ATM PDU on Tx Port

 

 

 

 

 

 

 

MPKT N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

Receive

 

 

5

 

 

 

 

 

 

 

 

Move

 

6

 

 

 

 

MPKT

 

 

 

 

 

 

 

 

 

 

 

Payload

 

 

 

 

 

 

 

 

 

MPKT

Add

 

 

 

 

 

 

 

 

payload to

MPKT 1

 

 

 

 

 

 

 

 

LLC/SNAP

 

 

 

 

 

 

 

 

buffer

 

 

 

Ether

IP

 

 

 

 

 

header &

ATM

 

 

Payload

 

 

 

 

Payload

Hdr

Hdr

 

 

 

 

Payload

AAL-5

Hdr

 

 

 

 

 

 

 

 

 

 

 

 

 

MPKT0

trailer

 

 

 

 

 

Perform IP

 

 

 

 

on EOP

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

lookup on SOP

 

 

 

 

 

 

9

 

 

 

 

 

 

 

 

LLC

IP

AAL-5

Transmit

 

 

IP Lookup

 

Route Table

 

Hdr

Packet

trailer

from

 

 

 

 

segmentation

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IP

Port

Port

ATM

LLC

 

 

 

queues on

 

 

 

 

 

 

transmit

 

 

 

Address

type

number

header

header

 

Segmentation

 

 

 

 

add ATM

 

 

 

 

 

 

 

 

 

 

Queues

header

 

Set current port state on first

 

 

8

 

UBR

Port 0

 

 

 

 

Queue 0

3

 

 

Place

 

 

MPKT strip Enet header

 

 

 

 

 

 

 

 

 

 

 

 

 

 

on Tx

 

UBR

 

 

 

 

Port State

 

 

 

 

queue

 

Port 1

 

 

 

 

 

 

 

 

 

Queue 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Buffer Base Address

 

 

 

 

 

 

 

4Locate buffer & offset

Length Buffer Offset

A9637-01

2.5StrongARM Core Initialization

On hardware, NetApp_Init is linked into VxWorks, and does the following:

1.Initialize the hardware, including the MACs and PHYs via VxWorks network drivers.

2.Control the baseboard 82559 PCI Ethernet NIC.

Application Note

19

Modified on: 3/20/02,

Image 19
Contents IXP1200 Network Processor Family Application Note Contents Virtual Circuit Lookup Table Cache Limitations Figures Purpose of ATM Example Design IntroductionScope of Example Design Ethernet, IP and AAL5 Protocol Processing Configuration DescriptionBackground Supported / Not Implemented FunctionsSAR Frame and PDU Length vs. IP Packet LengthFrame and PDU Length vs. IP Packet Length Expected Ethernet Transmit BandwidthSoftware Execution EnvironmentDeveloper’s Workbench ATM Data Stream Dialog Box System Programming Model System OverviewHardware System Programming Model StrongARM Core SoftwareATM TX Software PartitioningLookup Tables ATM to Ethernet Data Flow Data FlowVC Lookup ATM to Ethernet Processing Steps IP Lookup TableEthernet to ATM Data Flow StrongARM Core InitializationStructure Microengine Functional BlocksMicroengine Initialization ATM Receive MicroengineOC-12 Port OC-3 Ports High Level AlgorithmATM Transmit High Level Algorithm ATM Transmit MicroengineEthernet Receive Microengine IP-Router MicroengineEthernet Receive Structure Ethernet Transmit MicroengineEthernet Receive High Level Algorithm Ethernet Transmit Structure CRC-32 Calculations using IXP1240/1250 HardwareCRC-32 Hardware Checking on Receive First Cell of a PDU in Rfifo and in Dram Bytes Big Endian DiagramTransmit Alignment CRC-32 Hardware Generation on TransmitFunctional Differences between Checker and Generator CRC-32 Checker and Generator Microengines Soft-CRCCRC-32 Computation Software Subsystems & Data StructuresVirtual Circuit Lookup Table atmvctable.uc CRC-32 Checker and Generator High Level AlgorithmVctablehashed Structure Primary VC Table Vctablelinear StructureVC Table Entry VC Table Management API atmutils.cBuffer Offset Buffer Index Entry DescriptionCell data11 Entry Description VC Cache Structure VC Cache Function 1.1 OC-12 Configuration1.2 OC-3 Configuration Virtual Circuit Lookup Table CacheIP Table Structure IP Lookup TableVC Cache API IP Table FunctionAtmrouteadd IP Table Management APIRoutetableinit MtuchangeRthelp EnetrouteaddRtentinfo Routedelete2 3 4 5 6 7 8 Sram Buffer Descriptors and Dram Data BuffersNext BD Last Quad Queue Index Sram Buffer Descriptor FormatATM Header Entry Description Enet SrcAdr Dram Data Buffer Format2 3 4 5 6 7 8 Bytes 2 3 4API Call Description Sequence Numbers sequence.ucSystem Limit on Packet Buffers Sequencehandle UsageStep Sequence Operation Bakery Line Analogy Message Queues msgq.ucUsage Model ExampleMsgqsend Msgqhandle ParametersMsgqinitqueue MsgqinitregsRamoption MsgqreceiveBDQ Management Macros 1.1 FeaturesFeature Description Buffer Descriptor Queues bdq.ucCount CountersCounter Index Global ParametersUse of the Counter Subsystem Counter Base AddressCounter Group Description Global Counter Enable and FlagsCounter Flags #define Statement DescriptionCounterinc Counters.uc CounterresetPortcounterinc Intotaldiscards Portcounterinc AlgorithmCountersprint Counters.c CountersinitAtmtxcrcbadbd Global $transfer Register Name Manager xfer.ucMutexvectorexit Mutex VectorsMutexvectorinit MutexvectorenterInter-Thread Signalling Project Configuration / Modifying the Example DesignProjectconfig.h Systemconfig.h Testing EnvironmentsSwitching Between Hardware Configurations Limitations Simulation Support Scripts, etcExtending the Example Design 10 11 12 13 14 15 16 ... Bytes Document ConventionsAcronyms & Definitions ByteTitle Description Related Documents