位置:51电子网 » 技术资料 » 接口电路

10G网络处理器驱动软件的设计与实现

发布时间:2008/6/3 0:00:00 访问次数:391

摘要:在对10g城域网技术研究的基础上,提出了10g网络处理器的驱动程序设计中的一些思路并对此展开一定的分析和研究。

关键词:10g以太网 网络处理器 驱动 应用程序接口 中断服务程序

网络技术的高速发展使下一代网络技术不断迎接新的挑战。网络处理核心从传统的基于gpp(general purpose processor)的设计到基于asic(application specific integrated circuit)的设计再到基于网络处理器np(network processor)的设计,不断向着高性能和高灵活性的方向发展。随着城域网技术的发展,近年来许多厂家推出了10g的以太网设置。10g网络处理器是实现10g以太网交换技术的关键点,10g网络处理器的开发成为目前城域网建设中的一个重要环节。

本文介绍了10g的网络处理器及其驱动程序,并对驱动程序的开发方法进行了研究和探讨。

1 网络处理器和驱动程序

网络处理器是一种可编程器件,它特定地应用于通信领域的多种任务,例如数据包处理、协议分析、路由查找、数据和汇聚、防火墙、qos等。网络处理器具有多协议支持、优化的体系结构、专用的硬件设计和高速的数据转发处理、高性能、高可靠性、丰富的流分类、拥塞管理、队列调度、灵活的软件开发和升级、灵活扩展和组合等特点。

网络处理器器件内部由若干个微码处理器和若干硬件协议处理器组成,多个微码处理器在网络处理器内部并行处理,通过预先编制的微码来控制处理数据包的操作。而对于一些复杂的标准操作(如内存操作、路由表查找算法、qos的拥塞控制算法、流量高度算法等)则彩硬件协议处理器进一步提高处理性能,从而实现业务的高灵活性与高性能的有机结构。

目前的网络处理器系列有:面向网络接入端的设备;支持企业、电信市场接入和边缘应用的设备(支持2.5gbps数据传输率);支持网络核心应用的设备(支持10gbps数据传输率)等。

网络处理器的驱动程序在系统中位于底层bsp(board support packet)和上层软件之间,如图1所示。驱动程序是建立起上下层软件之间通信的一个桥梁,为上下层软件提供相应的接口,能够把上层命令解释为底层软件可以识别的代码写入芯片的寄存器中,包括两个功能模块;底层驱动模块和业务驱动模块。底层驱动模块提供np芯片初始化、配置、装载微码、建立维护np查找结构、中断处理、ip内部表项维护、np实现检测等功能;业务驱动模块为上层应用提供数据包发送和接收、路由表操作、arp表操作、vlan操作、端口表操作、mac表操作等功能。

2 驱动程序开发方法研究

网络处理器的芯片厂家需要提供相应的驱动开发软件包,开发包主要包括封装了特定代码的库文件和说明文档,这些库文件在系统编译时进行链接。开发人员通过调用驱劝开发包中的api(application programming interface)来完成对芯片的一系列操作。

2.1 芯片的初始化

包括正确地初始化网络处理器芯片,使芯片能够正常工作。网络处理器芯片作为pci设备挂在cpu的pci总线上,它通过pci总线识别,系统为其分配相应的pci地址和中断号。cpu通过网络处理器的pci地址对np内部的寄存器进行访问。

np初始化步骤:

(1) 调用识别函数识别np:如果与厂商号相符,则说明np已经被识别。

(2) 配置np的pci设备:为np分配内存地址;为np配置中断号。

(3) 注册pci中断处理程序:安装芯片的中断处理程序;将np的pci中断处理程序与中断号关联。通常该中断处理程序内部会调用一个全局的函数指针,开发者可以对其赋值,使能np的pci中断。

(4) 中断事件处理方式:通常网络处理器或交换芯片都定义有多种中断事情,这些中断事件由中断事件状态寄存器和中断屏蔽寄存器进行控制。np会定义若干种中断事情,每种中断用一个二进制位表示,该二进制位的取值决定中断事件的中断状态(如:1表示有中断,0表示无中断)。中断屏蔽寄存器则决定是否对中断进行处理。

摘要:在对10g城域网技术研究的基础上,提出了10g网络处理器的驱动程序设计中的一些思路并对此展开一定的分析和研究。

关键词:10g以太网 网络处理器 驱动 应用程序接口 中断服务程序

网络技术的高速发展使下一代网络技术不断迎接新的挑战。网络处理核心从传统的基于gpp(general purpose processor)的设计到基于asic(application specific integrated circuit)的设计再到基于网络处理器np(network processor)的设计,不断向着高性能和高灵活性的方向发展。随着城域网技术的发展,近年来许多厂家推出了10g的以太网设置。10g网络处理器是实现10g以太网交换技术的关键点,10g网络处理器的开发成为目前城域网建设中的一个重要环节。

本文介绍了10g的网络处理器及其驱动程序,并对驱动程序的开发方法进行了研究和探讨。

1 网络处理器和驱动程序

网络处理器是一种可编程器件,它特定地应用于通信领域的多种任务,例如数据包处理、协议分析、路由查找、数据和汇聚、防火墙、qos等。网络处理器具有多协议支持、优化的体系结构、专用的硬件设计和高速的数据转发处理、高性能、高可靠性、丰富的流分类、拥塞管理、队列调度、灵活的软件开发和升级、灵活扩展和组合等特点。

网络处理器器件内部由若干个微码处理器和若干硬件协议处理器组成,多个微码处理器在网络处理器内部并行处理,通过预先编制的微码来控制处理数据包的操作。而对于一些复杂的标准操作(如内存操作、路由表查找算法、qos的拥塞控制算法、流量高度算法等)则彩硬件协议处理器进一步提高处理性能,从而实现业务的高灵活性与高性能的有机结构。

目前的网络处理器系列有:面向网络接入端的设备;支持企业、电信市场接入和边缘应用的设备(支持2.5gbps数据传输率);支持网络核心应用的设备(支持10gbps数据传输率)等。

网络处理器的驱动程序在系统中位于底层bsp(board support packet)和上层软件之间,如图1所示。驱动程序是建立起上下层软件之间通信的一个桥梁,为上下层软件提供相应的接口,能够把上层命令解释为底层软件可以识别的代码写入芯片的寄存器中,包括两个功能模块;底层驱动模块和业务驱动模块。底层驱动模块提供np芯片初始化、配置、装载微码、建立维护np查找结构、中断处理、ip内部表项维护、np实现检测等功能;业务驱动模块为上层应用提供数据包发送和接收、路由表操作、arp表操作、vlan操作、端口表操作、mac表操作等功能。

2 驱动程序开发方法研究

网络处理器的芯片厂家需要提供相应的驱动开发软件包,开发包主要包括封装了特定代码的库文件和说明文档,这些库文件在系统编译时进行链接。开发人员通过调用驱劝开发包中的api(application programming interface)来完成对芯片的一系列操作。

2.1 芯片的初始化

包括正确地初始化网络处理器芯片,使芯片能够正常工作。网络处理器芯片作为pci设备挂在cpu的pci总线上,它通过pci总线识别,系统为其分配相应的pci地址和中断号。cpu通过网络处理器的pci地址对np内部的寄存器进行访问。

np初始化步骤:

(1) 调用识别函数识别np:如果与厂商号相符,则说明np已经被识别。

(2) 配置np的pci设备:为np分配内存地址;为np配置中断号。

(3) 注册pci中断处理程序:安装芯片的中断处理程序;将np的pci中断处理程序与中断号关联。通常该中断处理程序内部会调用一个全局的函数指针,开发者可以对其赋值,使能np的pci中断。

(4) 中断事件处理方式:通常网络处理器或交换芯片都定义有多种中断事情,这些中断事件由中断事件状态寄存器和中断屏蔽寄存器进行控制。np会定义若干种中断事情,每种中断用一个二进制位表示,该二进制位的取值决定中断事件的中断状态(如:1表示有中断,0表示无中断)。中断屏蔽寄存器则决定是否对中断进行处理。

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!