IXP400 Software's Programmer's Guide
Total Page:16
File Type:pdf, Size:1020Kb
Intel® IXP400 Software Programmer’s Guide June 2004 Document Number: 252539-002c Intel® IXP400 Software Contents INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY RELATING TO SALE AND/OR USE OF INTEL PRODUCTS, INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT, OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel Corporation may have patents or pending patent applications, trademarks, copyrights, or other intellectual property rights that relate to the presented subject matter. The furnishing of documents and other materials and information does not provide any license, express or implied, by estoppel or otherwise, to any such patents, trademarks, copyrights, or other intellectual property rights. Intel products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications. The Intel® IXP400 Software v1.2.2 may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. MPEG is an international standard for video compression/decompression promoted by ISO. Implementations of MPEG CODECs, or MPEG enabled platforms may require licenses from various entities, including Intel Corporation. This document and the software described in it are furnished under license and may only be used or copied in accordance with the terms of the license. The information in this document is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Intel Corporation. Intel Corporation assumes no responsibility or liability for any errors or inaccuracies that may appear in this document or any software that may be provided in association with this document. Except as permitted by such license, no part of this document may be reproduced, stored in a retrieval system, or transmitted in any form or by any means without the express written consent of Intel Corporation. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or by visiting Intel's website at http://www.intel.com. BunnyPeople, Celeron, Chips, Dialogic, EtherExpress, ETOX, FlashFile, i386, i486, i960, iCOMP, InstantIP, Intel, Intel Centrino, Intel Centrino logo, Intel logo, Intel386, Intel486, Intel740, IntelDX2, IntelDX4, IntelSX2, Intel Inside, Intel Inside logo, Intel NetBurst, Intel NetMerge, Intel NetStructure, Intel SingleDriver, Intel SpeedStep, Intel StrataFlash, Intel Xeon, Intel XScale, IPLink, Itanium, MCS, MMX, MMX logo, Optimizer logo, OverDrive, Paragon, PDCharm, Pentium, Pentium II Xeon, Pentium III Xeon, Performance at Your Command, Sound Mark, The Computer Inside., The Journey Inside, VTune, and Xircom are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others. Copyright © Intel Corporation 2004 2 Intel® IXP400 Software Contents Contents 1 Introduction..................................................................................................................................23 1.1 About the Intel® IXP42X Product Line of Network Processors and IXC1100 Control Plane Processor............................................................23 1.2 Intended Audience..............................................................................................................23 1.3 Related Documents ............................................................................................................24 1.4 Acronyms............................................................................................................................24 2 Software Architecture Overview ................................................................................................29 2.1 High-Level Overview...........................................................................................................29 2.2 Deliverable Model ...............................................................................................................30 2.3 Operating System Support .................................................................................................30 2.4 Development Tools.............................................................................................................30 2.5 Threading and Locking Policy.............................................................................................31 2.6 Polled and Interrupt Operation............................................................................................31 2.7 Statistics and MIBs .............................................................................................................31 2.8 Network Data Buffer Management .....................................................................................31 3 Software Development Tools .....................................................................................................33 3.1 Intel Hardware ....................................................................................................................33 3.1.1 Intel® IXDP425 Network Processor Development Platform...................................33 3.2 Third-Party Software and Hardware ...................................................................................34 3.2.1 Software Stacks for the Intel® IXP42X Product Line Processors ..........................34 3.2.2 Hardware and Software Tools for the Intel® IXP42X Product Line Processors ................................................................35 3.2.3 Software for the Intel® IXDP425 Network Processor Development Platform...................................36 3.2.4 Open Source Software and Tools..........................................................................38 4 Access-Layer Components ........................................................................................................39 4.1 ixNpeDI ...............................................................................................................................39 4.1.1 Functional Interface Description ............................................................................39 4.1.2 Microcode Images .................................................................................................39 4.1.3 Usage Example .....................................................................................................40 4.2 ixFpathAcc (Fast Path) .......................................................................................................40 4.2.1 Scope.....................................................................................................................40 4.2.2 Functional Description ...........................................................................................41 4.2.3 Enabling/Modifying/Disabling Fast Path for a VC ..................................................42 4.2.4 Automatic Packet Operations ................................................................................42 4.2.5 Application Support and MAC Address Service.....................................................42 4.2.6 Fast-Path Buffers...................................................................................................43 4.2.7 Fast-Path Dependency Diagram ...........................................................................43 4.2.8 Error Handling........................................................................................................43 4.2.9 NPE FPath Classifier/Modifier Configuration.........................................................44 4.2.9.1 Fast-Path Classifier Template Definition................................................44 4.2.9.2 Fast-Path Modifier Template Definition..................................................45 4.2.9.3 Sample Classifier Template ...................................................................46 4.3 ixEthAcc..............................................................................................................................47 3 Intel® IXP400 Software Contents 4.3.1 ixEthAcc Overview................................................................................................. 47 4.3.2 Role of the Ethernet NPE Firmware ...................................................................... 48 4.3.3 ixEthAcc Component Features .............................................................................. 48 4.3.4 Data Plane ............................................................................................................. 50 4.3.4.1 Port Initialization..................................................................................... 50 4.3.4.2 Ethernet Frame Transmission................................................................ 50 4.3.4.3 Ethernet Frame Reception..................................................................... 52 4.3.4.4 Data-Plane Endianness .........................................................................55