[发明专利]包转发方法及现场可编程门阵列有效
申请号: | 201110447819.9 | 申请日: | 2011-12-26 |
公开(公告)号: | CN102404235A | 公开(公告)日: | 2012-04-04 |
发明(设计)人: | 罗彬 | 申请(专利权)人: | 杭州华三通信技术有限公司 |
主分类号: | H04L12/56 | 分类号: | H04L12/56 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 王一斌;王琦 |
地址: | 310053 浙江省杭州市高新技术产业*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 转发 方法 现场 可编程 门阵列 | ||
技术领域
本发明涉及三层转发技术领域,具体涉及包转发方法及现场可编程门阵列(FPGA,Field-Programmable Gate Array)。
背景技术
路由器的高速FPGA线卡采用FPGA作为转发引擎,与中央处理单元(CPU,Central Processing Unit)协同工作。由CPU完成性能要求不高、复杂度高的路由转发业务,完成报文的首包处理,并将报文的流表下刷FPGA;由FPGA基于流表完成性能要求高、复杂度低的路由转发业务,将路由转发性能提升到线速转发。
当路由、业务发生变化时,现有技术有两种更新表项的方式:
方式一、例如接口业务变化或转发信息库(FIB,Forwarding Information base)/邻接表发生变化时,手工将FPGA流表全部清除。
该方式的缺点是:易用性较差,当有路由、业务发生变化时,需要记住将流表清除;且,在一些实际组网中,设备上配置更改较频繁,如访问控制列表(ACL,Access Control List)配置的变更,让用户更改完ACL后手工清除所有流表项,用户难以接受;且,在手动删除流表之前,数据报文会按照老流表进行错误的转发,实时性差。
方式二、该方式将CPU业务表项、FIB表项、邻接表项等与FPGA流表关联起来。这个机制需要CPU各表项下挂一个链表,将相关FPGA流表串起来。一旦CPU路由、业务发生变化,则遍历其下挂的所有FPGA流表,并进行刷新。
该方式的缺点是:由于FPGA流表较多,一般路由器需要支持百万甚至千万级别,遍历FPGA流表并重建消耗的时间较长,报文流被错误处理的时间会长一些,收敛时间较长。并且,由于表项多的缘故,遍历过程中需主动释放任务,需考虑并发、时序问题。
发明内容
本发明提供包转发方法及FPGA、CPU,以提高三层转发效率。
本发明的技术方案是这样实现的:
一种包转发方法,该方法包括:
对于三层转发设备的入接口,该设备的中央处理单元CPU下刷入接口信息表项到该设备的现场可编程门阵列FPGA中,该表项包括:入接口标识和入接口业务序列号;
对于三层转发设备的转发信息库FIB表项,该设备的CPU下刷FIB信息表项到该设备的FPGA中,该FIB信息表项包括:FIB索引、FIB序列号和FIB表项内容;
对于三层转发设备的出接口,该设备的CPU下刷出接口信息表项到该设备的FPGA中,该表项包括:出接口标识和出接口业务序列号;
当所述FPGA接收到业务流的首包时,将该包上送所述CPU进行业务处理和转发处理,所述CPU下刷上行流表项和下行流表项到所述FPGA,其中,上行流表项包括:包的五元组、入接口业务序列号、FIB索引、FIB序列号、入接口业务处理内容,下行流表项包括:包的五元组、出接口业务序列号和出接口业务处理内容;
当所述FPGA接收到业务流的后续包时,根据包的五元组查找对应的上行流表项,根据包的入接口标识查找对应的入接口信息表项,根据上行流表项中的FIB索引查找对应的FIB信息表项,若上行流表项和入接口信息表项中的入接口业务序列号相同、且上行流表项和FIB信息表项中的FIB序列号相同,则根据上行流表项中的入接口业务处理内容对包进行入接口业务处理,并根据包的五元组查找对应的下行流表项,根据FIB信息表项中的FIB表项内容的出接口标识查找到对应的出接口信息表项,若下行流表项和出接口信息表项中的出接口业务序列号相同,则根据下行流表项中的出接口业务处理内容对包进行出接口业务处理,根据FIB表项内容将包从出接口转发出去。
所述方法进一步包括:
当任一入接口的业务处理内容更新时,所述CPU根据该入接口标识在所述FPGA中查找对应的入接口信息表项,更新该表项中的入接口业务序列号;
当任一FIB表项的内容更新时,所述CPU根据该FIB表项的FIB索引在所述FPGA中查找对应的FIB信息表项,更新该表项中的FIB序列号和FIB表项内容;
当任一出接口的业务处理内容更新时,所述CPU根据该出接口标识在所述FPGA中查找对应的出接口信息表项,更新该表项中的出接口业务序列号。
当所述FPGA接收到业务流的后续包时,所述FPGA根据上行流表项中的FIB索引查找对应的FIB信息表项之后进一步包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华三通信技术有限公司,未经杭州华三通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110447819.9/2.html,转载请声明来源钻瓜专利网。