本书主要介绍网络处理器的概念和应用。先以Intel IXA 1200网络处理器的开发为例,介绍网络处理器的特点、开发原于是和开发方法;再以一个路由器的参考设计程序为例,介绍网络处理器应用系统的开发。
本书可以作为高等学校相关课程的教学辅导书,也可以作为从事网络系统的开发领域工程技术人员的参考用书。
第1章 网络处理器概述
1.1 网络系统的构成
1.1.1 基本的网络系统
1.1.2 新型网络业务与路由器
1.1.3 网络路由的构成
1.2 Intel的网络处理器系统结构IXA
1.2.1 IXA简介
1.2.2 IXP1200网络处理器
1.2.3 IX总线
1.2.4 IXA的发展
1.3 网络处理器系统的构成
1.3.1 硬件构成
1.3.2 软件构成
1.3.3 网络应用系统实例
第2章 微引擎程序开发
2.1 IXA微引擎程序开发环境
2.1.1 微引擎开发环境的构成
2.1.2 微引擎开发者工作平台
2.1.3 微引擎程序的调试环境
2.2 微引擎的组成结构
2.3 微引擎的指令系统及其程序设计
2.3.1 微引擎汇编指令
2.3.2 微引擎伪指令
2.3.3 微引擎宏指令
2.3.4 简单微引擎程序设计实例
2.4 微引擎C语言及其程序设计
2.4.1 微引擎C语言
2.4.2 线程的切换和通信
2.4.3 微引擎程序设计基础
第3章 网络处理器内核程序开发
3.1 嵌入式系统与网络处理器系统的开发
3.1.1 嵌入式实时系统的开发
3.1.2 网络处理器系统的开发
3.2 路由器内核系统软件开发
3.2.1 嵌入式操作系统的特点
3.2.2 VxWorks的开发环境
3.2.3 VxWorks的开发API
3.3 路由器内核应用软件开发
3.3.1 Intel公司的StrongARM内核开API
3.3.2 StrongARM内核路由器应用软件的开发
3.3.3 StrongARM内枋与微引擎的通信与协调
3.4 内核的分组接收与发送
3.4.1 虚拟以太网驱动程序
3.4.2 PETH驱动器的初始化
3.4.3 内核的分组接收
3.4.4 内核的分组发送
3.5 内核的分组处理
3.5.1 异常分组的处理
3.5.2 路由表结构及其维护
第4章 网络处理程序设计实例
4.1 系统的构成
4.1.1 路由器应用的基础函数
4.1.2 设计实例工程的构建
4.1.3 参考设计程序结构
4.2 分组的接收和验证
4.2.1 分组的接收
4.2.2 第二层验证
4.2.3 第三层验证
4.3 组的缓存和处理
4.3.1 分组的缓存
4.3.2 分组队列管理
4.3.3 分组的路由
4.3.4 分组的转发
4.3.5 接收微引擎的程序代码
4.4 分组的发送
4.4.1 调度线程
4.4.2 填充线程
4.4.3 发送微引擎的程序代码
4.5 程序的运行
4.5.1 初始化过程描述
4.5.2 运行方式
4.5.3 实验数据和分析
参考文献
网络处理器技术是一项很有发展前景的处理器技术,它将为未来的Internet网络设备提供高性能和高灵活性的解决方案,形成开放的网络系统的硬件平台,为网络软件的开发提供舞台。这样可使第三方软件厂商能够开发丰富多彩的网络应用软件,让用户具有更多的网络应用软件的选择余地,从而促进网络技术的发展。
网络处理器作为一项专用处理器,其硬件和软件的开发都有独特之处。从开发者的角度来看,网络处理器的软硬件开发比通用处理器的开发要复杂。Intel公司是从事网络处理器开发的主要厂商之一。在Intel公司开发的网络处理器中,采用了一个StrongARM内核处理器和多个多线程的RISC处理器作为分组的处理引擎,具有良好的灵活性和可编程性。这种网络处理器的程序设计实际上是一种并行计算机的程序设计模式。许多开发人员可能对这种程序设计·模式不太熟悉。本书的目的就是帮助读者理解和掌握网络处理器的原理和开发方法、并行处理结构的程序设计方法以及路由器程序的原理和程序设计特点。
本书分为4章。第1章对Intemet协议的发展和未来对路由器的需求作了简单的分析,介绍Intel公司的IXPl200网络处理器系列产品,以及采用这种网络处理器构成的网络系统的实例和特点。第2章介绍Intel公司IXPl200网络处理器的微引擎的硬件结构,以及汇编语言、C语言的特点和程序设计基础。第3章介绍网络处理器内核的嵌入式实时操作系统、网络应用协议软件的概念、开发环境和开发方法。第4章则综合前面各章的内容,较详细地介绍一个采用IXPl200的16端口路由器的设计实例,并详细分析了这个设计实例的软件结构和各个模块的代码,以及在开发环境中对这个设计实例进行设置、模拟运行和调试的方法。
通过本书,读者可以了解到IXPl200网络处理器详细的结构原理、IXPl200的软件开发原理和方法、路由器软件详细的工作过程和软件流程,为开发基于网络处理器的网络系统打下基础。本书可以作为高等学校有关课程的教学辅导书,帮助学生完成路由器开发的实验,也可以作为从事网络系统开发领域工程技术人员的参考用书。
本书是作者在上海交通大学硕士研究生教学实践和课题组的研究开发工作基础之上编写完成的。本书的编写以及我们课题组的研究开发工作得到了Intel公司在技术、资金和设备方面的支持,在此向Intel公司表示感谢。我们课题组在研究开发中采用的VxWorks操作系统及其开发环境得到了风河(WindRiver)公司的支持,同时课题组从事的基于IXPl200的路由器研究开发工作还得到了上海市科学技术委员会的立项支持,在此一并表示感谢。
由于作者水平有限,本书难免会存在缺点和不足,恳请广大读者提出批评和建议。
胡越明
2004年8月