一种报文转发方法和装置的制造方法_5

文档序号:9754487阅读:来源:国知局
发,无需使用价格昂贵且存储空间小的QDRSDRAM对缓存在RAM中的报文进行转发,降低了对缓存在RAM中的队列进行管理的成本,并提高了链表的存储空间。
[0135]实施例五
[0136]参见图7,本发明实施例提供了一种报文转发装置,包括有FPGA芯片600和RAM610,FPGA芯片600设置有接口 601,FPGA芯片600中固化有一个或者一个以上的程序,且经配置以由FPGA芯片600执行一个或者一个以上程序包含用于进行以下操作的指令:
[0137]获取对报文的转发指令,报文有缓存空间链表,缓存空间链表包括报文的所有指针,报文的所有指针中的头指针对应的第一类缓存空间中记录有报文的第一部分报文数据和多个第二类缓存空间对应的多个指针,多个第二类缓存空间分别缓存报文的第一部分报文数据外的多个部分的报文数据;
[0138]从报文的缓存空间链表中获取报文的头指针;
[0139]从报文的头指针对应的第一类缓存空间中,读取报文的第一部分报文数据,并获取多个指针;
[0140]根据多个指针,获取多个第二类缓存空间;
[0141]从多个第二类缓存空间中,并行读取第一部分报文数据外的多个部分的报文数据;
[0142]读取到完整的报文数据后,通过接口 601转发报文。
[0143]基于上述描述,本发明实施例提供的报文转发装置,通过从报文的缓存空间链表中获取报文的头指针,报文的头指针中记录有缓存报文其余部分的第二类缓存空间对应指针,可以使缓存到RAM中的报文被转发时,可以仅通过读取报文的头指针就可以获取报文的头指针对应的第一类缓存空间和第一类缓存空间中记录的多个指针对应的指针所对应的分别缓存报文的第一部分报文数据外的多个部分的报文数据的第二类缓存空间,从而并行读取完整的报文数据,在读取到完整的报文数据后,完成报文的转发,避免了传统的报文缓存空间链表读取报文时延较长的缺陷,可以使用价格低廉且存储空间大的DDR SDRAM等RAM芯片对报文进行缓存并转发,无需使用价格昂贵且存储空间小的QDRSDRAM对缓存在RAM中的报文进行转发,降低了对缓存在RAM中的队列进行管理的成本,并提高了链表的存储空间。
[0144]需要说明的是:上述实施例三至实施例五提供的报文转发装置在转发报文时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的报文转发装置与报文转发方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0145]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0146]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【主权项】
1.一种报文转发方法,其特征在于,所述方法包括: 获取对报文的转发指令,所述报文有缓存空间链表,所述缓存空间链表包括所述报文的所有指针,所述报文的所有指针中的头指针对应的第一类缓存空间中记录有所述报文的第一部分报文数据和多个第二类缓存空间对应的多个指针,所述多个第二类缓存空间分别缓存所述报文的所述第一部分报文数据外的多个部分的报文数据; 从所述报文的缓存空间链表中获取所述报文的头指针; 从所述报文的头指针对应的所述第一类缓存空间中,读取所述报文的所述第一部分报文数据,并获取所述多个指针; 根据所述多个指针,获取所述多个第二类缓存空间; 从所述多个第二类缓存空间中,并行读取所述第一部分报文数据外的所述多个部分的报文数据; 读取到完整的报文数据后,转发所述报文。2.根据权利要求1所述的报文转发方法,其特征在于,在获取对报文的转发指令之前,所述方法还包括: 接收所述报文; 确定用于缓存所述报文的RAM的空间是否已满; 若确定所述RAM的空间未满,则从所述RAM中获取多个空闲缓存空间对应的指针; 根据多个空闲缓存空间对应的指针,生成所述报文的缓存空间链表; 根据生成的所述缓存空间链表,将接收到的所述报文缓存到多个空闲缓存空间中,其中,所述多个空闲缓存空间包括第一类缓存空间和多个所述第二类缓存空间; 将所述报文的所述缓存空间链表的头指针连接到所述报文所在队列的队列链表中。3.根据权利要求1或2所述的报文转发方法,其特征在于,所述方法还包括: 若确定所述RAM的空间已满,则丢弃所述报文。4.据权利要求2所述的报文转发方法,其特征在于,在所述判断所述RAM的空间是否已满步骤中: 若所述RAM中缓存的报文占用的缓存空间数量小于预先设定的阈值,则确定所述RAM未满。5.据权利要求2所述的报文转发方法,其特征在于,所述队列链表和所述缓存空间链表存储在所述RAM中。6.一种报文转发装置,其特征在于,所述装置包括: 第一获取模块,用于获取对报文的转发指令,所述报文有缓存空间链表,所述缓存空间链表包括所述报文的所有指针,所述报文的所有指针中的头指针对应的第一类缓存空间中记录有所述报文的第一部分报文数据和多个第二类缓存空间对应的多个指针,所述多个第二类缓存空间分别缓存所述报文的所述第一部分报文数据外的多个部分的报文数据;第二获取模块,用于从所述报文的缓存空间链表中获取所述报文的头指针; 第三获取模块,用于从所述报文的头指针对应的所述第一类缓存空间中,读取所述报文的所述第一部分报文数据,并获取所述多个指针; 第四获取模块,用于根据所述多个指针,获取所述多个第二类缓存空间; 读取模块,用于从所述多个第二类缓存空间中,并行读取所述报文的所述第一部分报文数据外的所述多个部分的报文数据; 转发模块,用于读取到完整的报文数据后,转发所述报文。7.根据权利要求6所述的报文转发装置,其特征在于,所述装置还包括: 接收模块,用于接收所述报文; 判断模块,用于确定用于缓存所述报文的RAM的空间是否已满; 第一处理模块,用于若确定所述RAM的空间未满,则从所述RAM中获取多个空闲缓存空间对应的指针; 第二处理模块,用于根据多个空闲缓存空间对应的指针,生成所述报文的缓存空间链表; 缓存模块,用于根据生成的所述缓存空间链表,将接收到的所述报文缓存到多个空闲缓存空间中,其中,所述多个空闲缓存空间包括所述第一类缓存空间和多个所述第二类缓存空间; 存储模块,用于将所述报文的所述缓存空间链表的头指针连接到所述报文所在队列的队列链表中。8.根据权利要求6或7所述的报文转发装置,其特征在于,所述装置还包括:第三处理模块,用于若确定所述RAM的空间已满,则丢弃所述报文。9.据权利要求7所述的报文转发装置,其特征在于,在所述判断模块中: 若所述RAM中缓存的报文占用的缓存空间数量小于预先设定的阈值,则说明所述RAM未满。10.据权利要求7所述的报文转发装置,其特征在于,所述队列链表和所述缓存空间链表存储在RAM中。
【专利摘要】本发明公开了一种报文转发方法和装置,属于通信技术领域。所述方法包括:获取对报文的转发指令;从报文的缓存空间链表中获取报文的头指针;从报文的头指针对应的第一类缓存空间中,读取报文的第一部分报文数据,并获取多个指针;根据多个指针,获取多个第二类缓存空间;从多个第二类缓存空间中,并行读取第一部分报文数据外的多个部分的报文数据;读取到完整的报文数据后,转发报文。本发明通过一次读取就可以读取报文的完整数据并完成报文的转发,避免了传统的报文缓存空间链表读取报文时延较长的缺陷。
【IPC分类】H04L12/861
【公开号】CN105516023
【申请号】CN201410494274
【发明人】吴彬彬, 熊卫波, 王明辉, 魏明
【申请人】华为技术有限公司
【公开日】2016年4月20日
【申请日】2014年9月24日
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1