BenutzerhandbuchInhaltsverzeichnis1.0 Introduction71.1 Purpose of ATM Example Design71.2 Scope of Example Design71.2.1 Supported / Not Implemented Functions81.3 Background81.3.1 Ethernet, IP and AAL5 Protocol Processing8Figure 1. IP over ATM Encapsulation Format91.3.2 Frame and PDU Length vs. IP Packet Length9Figure 2. Frame and PDU Length vs. IP Packet Length101.3.3 Expected Ethernet Transmit Bandwidth10Figure 3. Expected Ethernet Transmit Bandwidth111.4 Execution Environment111.4.1 Software11Figure 4. Developer’s Workbench - ATM Data Stream Dialog Box12Figure 5. Developer’s Workbench - IX Bus Device Status Window131.4.2 Hardware132.0 System Overview132.1 System Programming Model13Figure 6. System Programming Model142.2 StrongARM Core Software142.3 Software Partitioning15Figure 7. IXP1240 1xATM OC-12 and 8xEthernet 100Mbps Microengine Partitioning15Figure 8. IXP1240 OC-3 4xATM and 8xEthernet 100Mbps Microengine Partitioning162.3.1 Lookup Tables16Figure 9. IXP1200 2xATM OC-3 Software-CRC and 4xEthernet 100Mbps Microengine Partitioning172.4 Data Flow172.4.1 ATM to Ethernet Data Flow172.4.1.1 VC Lookup172.4.1.2 IP Lookup Table18Figure 10. ATM to Ethernet Processing Steps182.4.2 Ethernet to ATM Data Flow19Figure 11. Ethernet to ATM Processing Steps192.5 StrongARM Core Initialization192.6 Microengine Initialization203.0 Microengine Functional Blocks203.1 ATM Receive Microengine203.1.1 Structure203.1.2 High Level Algorithm21Figure 12. ATM Receive High Level Algorithm213.2 ATM Transmit Microengine223.2.1 High Level Algorithm22Figure 13. ATM Transmit High Level Algorithm223.3 IP-Router Microengine233.3.1 Structure233.3.2 High Level Algorithm23Figure 14. IP Router High Level Algorithm233.4 Ethernet Receive Microengine233.4.1 Ethernet Receive Structure243.4.2 Ethernet Receive High Level Algorithm24Figure 15. Ethernet Receive High Level Algorithm243.5 Ethernet Transmit Microengine243.5.1 Ethernet Transmit Structure253.5.2 High Level Algorithm253.6 CRC-32 Calculations using IXP1240/1250 Hardware253.6.1 CRC-32 Hardware Checking on Receive25Figure 16. First Cell of a PDU in RFIFO and in DRAM26Figure 17. Two-Cell PDU in DRAM263.6.2 CRC-32 Hardware Generation on Transmit27Figure 18. Transmit cell as seen in DRAM27Figure 19. Transmit cell seen in TFIFO273.6.2.1 Transmit Alignment273.7 CRC-32 Checker and Generator Microengines (Soft-CRC)283.7.1 Functional Differences between Checker and Generator283.7.2 CRC-32 Checker and Generator High Level Algorithm29Figure 20. CRC-32 High Level Algorithm293.7.3 CRC-32 Computation294.0 Software Subsystems & Data Structures294.1 Virtual Circuit Lookup Table - atm_vc_table.uc294.1.1 VC Table Function294.1.2 VC_TABLE_HASHED Structure30Figure 21. Hashed VC Table Structure314.1.3 VC_TABLE_LINEAR Structure31Figure 22. VC Table Index324.1.4 VC Table Management API - atm_utils.c324.1.5 VC Table Entry32Figure 23. VC Lookup Entry Table (VC_TABLE_HASHED)32Figure 24. VC Lookup Table Entry (VC_TABLE_LINEAR)334.2 Virtual Circuit Lookup Table Cache344.2.1 VC Cache Function344.2.1.1 OC-12 Configuration344.2.1.2 OC-3 Configuration344.2.2 VC Cache Structure344.2.3 VC Cache API354.3 IP Lookup Table354.3.1 IP Table Function354.3.2 IP Table Structure354.3.3 IP Table Management API364.3.3.1 route_table_init()364.3.3.2 mtu_change()364.3.3.3 atm_route_add()364.3.3.4 enet_route_add()374.3.3.5 rt_ent_info()374.3.3.6 route_delete()374.3.3.7 rt_help ()374.3.4 IP Route Table Entry37Figure 25. IP Route Table Entry - ATM Destination38Figure 26. IP Route Table Entry - Ethernet Destination384.4 SRAM Buffer Descriptors and DRAM Data Buffers38Figure 27. SRAM Descriptor to DRAM Buffer Mapping394.4.1 SRAM Buffer Descriptor Format39Figure 28. Buffer Descriptor Format for ATM Transmit Destination Port39Figure 29. Buffer Descriptor Format for Ethernet Transmit Destination Port404.4.2 DRAM Data Buffer Format40Figure 30. DRAM Data Buffer Format - 12 Byte Offset (Received by ATM)40Figure 31. DRAM Data Buffer Format - 6 Byte Offset (Received by ATM, Transmitted by Ethernet)40Figure 32. DRAM Data Buffer Format - 6 Byte Offset (Received by Ethernet, Transmitted by ATM)40Figure 33. DRAM Data Buffer Received by Ethernet404.4.3 System Limit on Packet Buffers414.5 Sequence Numbers - sequence.uc414.5.1 SEQUENCE_HANDLE Usage414.5.2 Usage Model424.5.2.1 Example424.6 Message Queues - msgq.uc424.6.1 MSGQ_HANDLE Parameters434.6.2 msgq_init_queue()434.6.3 msgq_init_regs()434.6.4 msgq_send()434.6.5 msgq_receive()444.6.6 Example444.7 Buffer Descriptor Queues - bdq.uc454.7.1 BDQ Management Macros454.7.1.1 Features454.7.1.2 Limitations45Figure 34. Buffer Descriptor Queue API46Figure 35. Buffer Descriptor Queue Descriptor Structure (Resides in SRAM)46Figure 36. Buffer Descriptor Queue Structure (Only Relevant Part Shown)464.8 Counters464.8.1 Global Parameters474.8.2 Use of the Counter Subsystem474.8.2.1 Counter Base Address474.8.2.2 Counter Index474.8.2.3 Global Counter Enable and Flags484.8.3 counters.uc494.8.3.1 counter_reset()494.8.3.2 counter_inc()494.8.3.3 port_counter_inc()494.8.4 counters.c514.8.4.1 counters_init()514.8.4.2 counters_print()514.9 Global $transfer Register Name Manager - xfer.uc524.10 Mutex Vectors534.10.1 mutex_vector_init()534.10.2 mutex_vector_enter()534.10.3 mutex_vector_exit()534.11 Inter-Thread Signalling545.0 Project Configuration / Modifying the Example Design545.1 project_config.h545.2 system_config.h555.3 Switching Between Hardware Configurations556.0 Testing Environments557.0 Simulation Support (Scripts, etc.)568.0 Limitations569.0 Extending the Example Design5610.0 Document Conventions57Figure 37. Illustration of Array of 32-bit Words57Figure 38. Illustration of Byte Sequence5711.0 Acronyms & Definitions57Figure 39. Definitions5712.0 Related Documents58IXP1200 Network Processor Family1Größe: 929 KBSeiten: 58Language: EnglishHandbuch öffnen