1. 基于NetFPGA的可编程路由器,其特征在于:包括控制平面和转发平面,所述转发平面采用NetFPGA完成转发数据包,所述控制平面包括:WWW-模式模块,用于提供web管理服务,通过web方式完成对路由器的信息查看和配置WWW-模式模块;
CLI-模式模块,用于提供telnet服务,使用户可以通过命令行为方式对路由器进行管理配置;
管理代理模块,用于提供WWW-模式服务与CLI-模式服务的底层数据支持,创建代表路由器当前状态的全局变量,将WWW-模式服务与CLI-模式服务注册到全局变量的管理命令链表,以方便扩展新功能;
可编程接口模块,用于提供用户自定义模块的接口,包括映射转发表接口,在映射转发表发生变化时更新硬件中的映射转发表;和数据包处理函数接口,用户完成自定义数据包处理,注册用户自定义的数据包处理函数,完成自定义的初始化;
通信控制模块,用于提供控制平面与转发平面进行交互的接口函数,接收转发平面发送上来的数据包时调用数据包处理函数接口,调用已注册的用户自定义的数据包处理函数;控制平面向转发平面发送数据包时,以libnet库实现数据包发送接口,将用户自定义的数据包封装成以太网数据包发送。
2.根据权利要求1所述基于NetFPGA的可编程路由器,其特征在于:所述映射转发表包括标准地址、下一跳地址、待转发的端口。
3.根据权利要求1所述基于NetFPGA的可编程路由器,其特征在于:所述全局变量包括路由器当前流量状态、映射转发表链表、协议识别、端口信息、管理命令链表以及用户自定义的变量。
4.根据权利要求1或3所述基于NetFPGA的可编程路由器,其特征在于:所述转发平面接收到数据包,首先根据用户在协议识别中设置的新协议识别标识判断出该数据包是否为新协议,如果不是则上传至控制平面处理,如果是则根据设置的新协议的逻辑目的地址起始位置、逻辑目的地址长度取出目的地址,采用哈希算法转换为定长8字节的标准地址,查找映射转发表,未找到相应项则上传至控制平面处理,根据查找到的目的下一跳地址、待转发的端口,修改数据包目的下一跳地址,并送到相应下一跳待转发端口输出队列。