基于FPGA的100G以太分流方法及系统与流程

文档序号:12865919阅读:691来源:国知局
基于FPGA的100G以太分流方法及系统与流程

本发明涉及数字通信领域,具体地说是一种基于fpga的100g以太分流方法及系统。



背景技术:

随着iptv、p2p、视频点播、移动宽带、远程存储、vpn服务等业务的发展,都导致骨干网流量的剧增,并逼近当前网络速度极限,同时也带来了对数据采集网络监控上的困难,未来一段时间中100g技术将成为骨干网流量剧增的首要解决方案。

fpga(fieldprogrammablegatearray)即现场可编程门阵列,是一种用户根据各自需要而自行构造逻辑功能的数字集成电路,fpga以其低功耗、低成本、可编程和开发周期短等系列特点已被广泛应用到各个领域,并有逐渐替代asic芯片之势。

公开的相关专利文件:名称为“基于fpga实现的hash平均分流方法及装置”,该文件公开了“一种基于fpga实现的hash平均分流方法及装置,其包括根据以太网报文的格式提取报文的源ip地址和目的ip地址;采用hash计算方法获取源ip地址的源ip地址hash值和目的ip地址的目的ip地址hash值;对源ip地址hash值和目的ip地址hash值进行异或得到整条报文hash值;截取整条报文hash值中的至少3个bits,采用至少3bits作为ram表地址,读取出该报文所对应的cpu线程号;将报文所对应的cpu线程号标记在该报文的报文头上,并将标记后的报文发送至cpu;cpu接收并处理报文的报文头,根据报文头上的cpu线程号将该报文发送至指定的线程进行处理”。

上述公开文件与本

技术实现要素:
要解决的技术问题,采用的技术手段都不相同。

发明内容

本发明的技术任务是提供一种基于fpga的100g以太分流方法及系统。

本发明的技术任务是按以下方式实现的,该基于fpga的100g以太分流方法是通过100ge接收模块、报文解析逻辑模块、多元组匹配逻辑模块、策略分流逻辑模块、10g以太输出接口模块和统计调式模块;将上述各个模块通过verilog语言进行行为级描述,编译形成网表文件综合映射后下载至fpga,其中100ge接收模块接收来自骨干网100g流量并衰减超长超短包,后将剩余流量送至报文解析逻辑模块提取多元组,通过策略分流逻辑模块将扩展后的多元组作为哈希输入进行计算得到分流输出接口。

该基于fpga的100g以太分流方法的步骤如下:

步骤1)100ge接收模块接收进去fpga接口100g接口的数据流,并从所述的数据流中检索出所有有效的数据报文,根据报文尾部crc字段检测报文完整性,不完整的报文作标签标记,待后续逻辑做错包处理;完整的报文进行超长超短识别并丢弃,正常的报文被封装为单周期768bits输出给后续逻辑使用;

步骤2)通过报文解析逻辑模块接收来自100ge接收模块输出的报文,并识别报文是否是ip报文,对非ip报文的处理根据用户配置选择丢弃或者指定端口转发;对于ip报文,存在mpls和vlan层扩展层的报文将其扩展层剥离,保留纯ip报文后提取多元组元素,并将多元组进行调整后输出给下一逻辑模块;

步骤3)通过多元组匹配逻辑模块接收来自报文解析逻辑模块输出的多元组,并输入tcam处理芯片进行快速匹配,并输出匹配结果,无论匹配是否成功都输出对匹配报文处理action动作;

步骤4)通过策略分流逻辑模块接收多元组匹配逻辑模块的匹配结果action,并根据action动作标识处理报文;

步骤5)通过10g以太输出接口模块接收策略分流逻辑模块分流后的报文,首先根据单周期报文长度768bits转换为单周期128bits,并接入sfp_10gbase模块后报文输出。

所述的步骤2)中多元组元素为源目ip、源目端口、协议类型。

所述的步骤4)的具体操作如下:

1)匹配失败即action[36]=1’b0,逻辑根据default动作action[3:0]来处理报文,action=4’b1111表示指定端口输出,否则丢弃报文处理;

2)匹配成功即action[36]=1’b1,逻辑根据action[15:13]动作识别报文输出方式,action[15:13]=2’b00表示指定端口输出,action[15:13]=2’b01表示分组分流输出,action[15:13]=2’b10表示组播输出,其中指定端口输出的端口为action[8:4],分组分流输出需要哈希运算,运算输入由action[12:9]哈希策略决定。

该基于fpga的100g以太分流系统由100ge接收模块、报文解析逻辑模块、多元组匹配逻辑模块、策略分流逻辑模块、10g以太输出接口模块和统计调式模块构成,上述各个模块通过verilog语言进行行为级描述,编译形成网表文件综合映射后下载至fpga。

所述的100ge接收模块对进入系统的数据流进行有效数据检索和封装,并检测数据完整性,此外,还具有衰减超长超短包的功能;

所述的报文解析逻辑模块用于识别ip报文,并提取多元组,对非ip报文进行标记做丢弃或转发处理;

所述的多元组匹配逻辑模块主要进行多元组匹配,并输出匹配结果;采用tcam处理芯片进行多元组快速匹配,并输出匹配结果,对该匹配报文的处理动作即由该匹配结果来决定;

所述的策略分流逻辑模块是根据多元组匹配逻辑模块的匹配结果,对匹配报文进行转发或丢弃;策略分流逻辑模块还含有分组分流输出策略对应的哈希运算模块,采用crc16_d128算法,其中128bits输入采用12种模式;

所述的10g以太输出接口模块是对分流后的报文进行输出,并计算crc校验值追加至报文尾部;

所述的统计调式模块是在100ge接收模块、10g以太输出接口模块以及多元组匹配逻辑模块中设置有相应报文计数寄存器,对接收报文数目,接收报文总字节数,以及发送报文数目,发送报文的总字节数进行统计。

所述的100ge接收模块采用quartusii提供的cfp_serdes模块,支持ieee802.3ba标准;

所述的10g以太输出接口模块为sfp_10gbase模块,支持ieee802.3ba标准。

所述的处理动作为指定端口输出,分组分流输出,组播输出和丢弃处理。

所述的128bits输入采用12种模式为:sip、dip、sport、dport、sip+dip、sip+sport、dip+dport、sip+dip+sport+dport、soprt+dport、nsip、ndip、nsdip。

所述的fpga为型号stratixv的5sgxma7n2f45c2芯片。

本发明的基于fpga的100g以太分流方法及系统和现有技术相比,具有以下优点:

1)采用fpga技术,使得该方法具有集成度高、成本低、稳定性好等特点;

2)采用100g以太接口是支持ieee802.3ba标准,输出10g以太接口支持ieee802.3ae标准,保证了流量输出接口的负载均衡;

3)分发流量的策略设计高效且合理,保证了数据会话流的完整性,流量分析更加简单直观。

附图说明

图1为基于fpga的100g以太分流系统的架构示意图。

图2为基于fpga的100g以太分流方法的报文解析逻辑流程图。

具体实施方式

实施例1:

该基于fpga的100g以太分流系统由100ge接收模块、报文解析逻辑模块、多元组匹配逻辑模块、策略分流逻辑模块、10g以太输出接口模块和统计调式模块构成,上述各个模块通过verilog语言进行行为级描述,编译形成网表文件综合映射后下载至fpga,所述的fpga为型号stratixv的5sgxma7n2f45c2芯片。

所述的100ge接收模块对进入系统的数据流进行有效数据检索和封装,并检测数据完整性,此外,还具有衰减超长超短包的功能;所述的100ge接收模块采用quartusii提供的cfp_serdes模块,支持ieee802.3ba标准;

所述的报文解析逻辑模块用于识别ip报文,并提取多元组,对非ip报文进行标记做丢弃或转发处理;

所述的多元组匹配逻辑模块主要进行多元组匹配,并输出匹配结果;采用tcam处理芯片进行多元组快速匹配,并输出匹配结果,对该匹配报文的处理动作即由该匹配结果来决定;所述的处理动作为指定端口输出,分组分流输出,组播输出和丢弃处理。

所述的策略分流逻辑模块是根据多元组匹配逻辑模块的匹配结果,对匹配报文进行转发或丢弃;策略分流逻辑模块还含有分组分流输出策略对应的哈希运算模块,采用crc16_d128算法,其中128bits输入采用12种模式;所述的12种模式为:sip、dip、sport、dport、sip+dip、sip+sport、dip+dport、sip+dip+sport+dport、soprt+dport、nsip、ndip、nsdip。

所述的10g以太输出接口模块是对分流后的报文进行输出,并计算crc校验值追加至报文尾部;所述的10g以太输出接口模块为sfp_10gbase模块,支持ieee802.3ba标准。

所述的统计调式模块是在100ge接收模块、10g以太输出接口模块以及多元组匹配逻辑模块中设置有相应报文计数寄存器,对接收报文数目,接收报文总字节数,以及发送报文数目,发送报文的总字节数进行统计。

该基于fpga的100g以太分流方法是通过100ge接收模块、报文解析逻辑模块、多元组匹配逻辑模块、策略分流逻辑模块、10g以太输出接口模块和统计调式模块;将上述各个模块通过verilog语言进行行为级描述,编译形成网表文件综合映射后下载至fpga,其中100ge接收模块接收来自骨干网100g流量并衰减超长超短包,后将剩余流量送至报文解析逻辑模块提取多元组,通过策略分流逻辑模块将扩展后的多元组作为哈希输入进行计算得到分流输出接口。

该基于fpga的100g以太分流方法的步骤如下:

步骤1)100ge接收模块接收进去fpga接口100g接口的数据流,并从所述的数据流中检索出所有有效的数据报文,根据报文尾部crc字段检测报文完整性,不完整的报文作标签标记,待后续逻辑做错包处理;完整的报文进行超长超短识别并丢弃,正常的报文被封装为单周期768bits输出给后续逻辑使用;

步骤2)通过报文解析逻辑模块接收来自100ge接收模块输出的报文,并识别报文是否是ip报文,对非ip报文的处理根据用户配置选择丢弃或者指定端口转发;对于ip报文,存在mpls和vlan层扩展层的报文将其扩展层剥离,保留纯ip报文后提取源目ip、源目端口、协议类型等多元组元素,并将多元组进行调整后输出给下一逻辑模块;

步骤3)通过多元组匹配逻辑模块接收来自报文解析逻辑模块输出的多元组,并输入tcam处理芯片进行快速匹配,并输出匹配结果,无论匹配是否成功都输出对匹配报文处理action动作;

步骤4)通过策略分流逻辑模块接收多元组匹配逻辑模块的匹配结果action,并根据action动作标识处理报文;操作如下:

1)匹配失败即action[36]=1’b0,逻辑根据default动作action[3:0]来处理报文,action=4’b1111表示指定端口输出,否则丢弃报文处理;

2)匹配成功即action[36]=1’b1,逻辑根据action[15:13]动作识别报文输出方式,action[15:13]=2’b00表示指定端口输出,action[15:13]=2’b01表示分组分流输出,action[15:13]=2’b10表示组播输出,其中指定端口输出的端口为action[8:4],分组分流输出需要哈希运算,运算输入由action[12:9]哈希策略决定。

步骤5)通过10g以太输出接口模块接收策略分流逻辑模块分流后的报文,首先根据单周期报文长度768bits转换为单周期128bits,并接入sfp_10gbase模块后报文输出。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1