博客首页 | 排行榜 |

Avatar的博客

个人档案
博文分类
[FPGA博客大赛]NetFPGA实验解析—Reference_Router(二)  2010-03-14 23:35

 NetFPGA实验解析—Reference_Router(1)

       上期简单介绍了一下如何操作以使NetFPGA实现一个简单路由的功能。本期内容主要是分析这个路由器是的工作过程与原理。
       NetFPGA实现的路由器(下面简称N路由)分为两部分:硬件与软件(好像听起来有点多余)。市场上基于CAM的路由器,绝大多数工作是由硬件负责,软件部分大多只是承担人机接口的任务。但是N路由不一样,出于实验和研究的考虑,N路由的硬件负责了绝大部分对延迟要求高的工作,而将一些原本应该硬件承担的、对时间要求不太高的工作交给软件处理。N路由中,除了数据包目的IP地址在路由表中能够成功匹配直接转发外,其他数据包都通过PCI口转发到上层软件进行处理。
      
图一
一.硬件部分
Reference_Router采用了NetFPGA经典的数据处理结构,具体如下图:
图二
       其中RxQ表示收包队列,TxQ表示发包队列。MAC Queue 连接NetFPGAGEMAC(千兆以太网收发模块),CPU Queue通过PCI向主机发送数据包。
数据从以太网经GEMAC进入MAC RxQ。为了便于信息处理,Rx模块给以太网数据包加上额外的包头,具体如下:
      
图三
其中,Pkt length 保存了整个数据包长度,input port 记录数据包自哪个网口进入NetFPGAnf2c0-- nf2c3)。
Input Arbiter以轮转的方式不断将进入Queue中的数据包转发到Output Port Lookup模块。
 
 
待续……
类别:默认 |
下一篇:[FPGA博客大赛]NetFPGA文件结构说明与学习方法
以下网友评论只代表其个人观点,不代表本网站的观点或立场