【技术实现步骤摘要】
一种表项读取方法、装置及网络设备
[0001]本专利技术涉及通信
,特别涉及一种表项读取方法、装置及网络设备。
技术介绍
[0002]随着网络技术的发展,路由器的路由表查询面临着高可靠性的挑战。双倍速率(Double Data Rate,DDR)同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM)具有大容量和低成本的特点,通常用来存储路由表。
[0003]如图1所示,为相关技术中多个100G接口查表访问DDR的方案的架构图,包括表项配置模块101、查表引擎102、6个接口模块103、6个DDR控制器104和6个DDR SDRAM105,其中,各个接口模块103和各个DDR控制器104之间通过DDR接口连接。具体工作过程为:中央处理器(Central Processing Unit,CPU)调用表项配置模块101将路由表配置到各个DDR SDRAM105中;查表引擎102接收到报文后,对报文进行解析得到表项的存储地址,再触发与该存储地址对应的接口模块103,并向与该接口模块103对应的DDR控制器104发送读命令;该DDR控制器104接收到该读命令后,从与其对应的DDR SDRAM105中获取表项,并将该表项返回至与该DDR控制器104对应的接口模块103。
[0004]上述方案,接口模块、DDR控制器和DDR SDRAM是一一对应的,若某一DDR控制器故障,则无法处理对应的接口模块发送的读命令,从而会影响查表访问;并且,DDR接口之间
【技术保护点】
【技术特征摘要】
1.一种表项读取方法,其特征在于,应用于网络设备的表项读取器件包括的交叉模块中,所述表项读取器件还包括至少两个接口模块、至少两个控制器以及与每个控制器对应的存储器,所述方法包括:接收所述至少两个接口模块中的任意接口模块发送的读命令后,根据各个控制器的命令缓存队列中与所述任意接口模块对应的子命令缓存队列的状态信息和预设轮询规则确定目标控制器,在所述任意接口模块对应的控制器标识缓存队列中添加所述目标控制器的控制器标识,并将所述读命令添加到所述目标控制器的命令缓存队列中与所述任意接口模块对应的子命令缓存队列中;以及,按照负载均衡原则将各个控制器的各个命令缓存队列包括的各个子命令缓存队列中的读命令发送给对应的控制器,并将发送的读命令所在的子命令缓存队列对应的接口模块的模块标识添加到所述发送的读命令对应的控制器的模块标识缓存队列中,以使各个控制器从对应的存储器获取接收到的读命令对应的表项;以及,接收所述至少两个控制器中的任意控制器返回的表项后,从所述任意控制器对应的模块标识缓存队列中获取最先存储的目标模块标识,将接收到的表项添加到与所述目标模块标识对应的接口模块的表项缓存队列中与所述任意控制器对应的子表项缓存队列中;以及,根据各个接口模块对应的控制器标识缓存队列中各个控制器标识添加的先后顺序,将各个接口模块的各个表项缓存队列中与各个控制器对应的子表项缓存队列中的表项发送给对应的接口模块。2.如权利要求1所述的方法,其特征在于,所述根据各个控制器的命令缓存队列中与所述任意接口模块对应的子命令缓存队列的状态信息和预设轮询规则确定目标控制器,包括:根据预设轮询规则确定上一次确定的目标控制器之后的候选控制器;确定所述候选控制器的命令缓存队列中与所述任意接口模块对应的子命令缓存队列的状态信息;若确定与所述任意接口模块对应的子命令缓存队列的状态信息为繁忙状态,则将所述候选控制器更新为所述候选控制器之后的控制器,执行所述确定所述候选控制器的命令缓存队列中与所述任意接口模块对应的子命令缓存队列的状态信息的步骤;若确定与所述任意接口模块对应的子命令缓存队列的状态信息为非繁忙状态,则将所述候选控制器确定为本次的目标控制器。3.如权利要求2所述的方法,其特征在于,确定所述候选控制器的命令缓存队列中与所述任意接口模块对应的子命令缓存队列的状态信息,具体包括:获取所述候选控制器的命令缓存队列中与所述任意接口模块对应的子命令缓存队列中存储的读命令的第一数量;确定所述第一数量是否小于第一设定阈值;若确定所述第一数量小于所述第一设定阈值,则确定与所述任意接口模块对应的子命令缓存队列的状态信息为非繁忙状态;若确定所述第一数量不小于所述第一设定阈值,则确定与所述任意接口模块对应的子命令缓存队列的状态信息为繁忙状态。
4.如权利要求2所述的方法,其特征在于,所述将所述候选控制器确定为本次的目标控制器之前,还包括:确定所述候选控制器的状态信息;若确定所述候选控制器的状态信息为异常,则将所述候选控制器更新为所述候选控制器之后的控制器,执行所述确定所述候选控制器的状态信息的步骤;若确定所述候选控制器的状态信息为正常,则执行所述将所述候选控制器确定为本次的目标控制器的步骤。5.如权利要求4所述的方法,其特征在于,所述确定所述候选控制器的状态信息,具体包括:获取所述候选控制器发送的对获取的表项进行验证得到的错误信息;确定获取的错误信息的第二数量是否大于第二设定阈值;若确定所述第二数量大于所述第二设定阈值,则确定所述候选控制器的状态信息为异常;若确定所述第二数量不大于所述第二设定阈值,则确定所述候选控制器的状态信息为正常。6.如权利要求1所述的方法,其特征在于,所述根据各个接口模块对应的控制器标识缓存队列中各个控制器标识添加的先后顺序,将各个接口模块的各个表项缓存队列中与各个控制器对应的子表项缓存队列中的表项发送给对应的接口模块,包括:从各个接口模块对应的控制器标识缓存队列中获取最先存储的控制器标识;将各个接口模块的各个表项缓存队列中与最先存储的控制器标识对应的子表项缓存队列中存储的表项发送给对应的接口模块。7.如权利要求1
‑
6任一所述的方法,其特征在于,所述将接收到的表项添加到与所述目标模块标识对应的接口模块的表项缓存队列中与所述任意控制器对应的子表项缓存队列中之后,还包括:从所述任意控制器对应的模块标识缓存队列中删除所述目标模块标识;所述将各个接口模块的各个表项缓存队列中与各个控制器对应的子表项缓存队列中的表项发送给对应的接口模块之后,还包括:从各个接口模块对应的控制器标识缓存队列中删除最先存储的控制器标识。8.一种表项读取装置,其特征在于,应用于网络设备的表项读取器件包括的交叉模块中,所述表项...
【专利技术属性】
技术研发人员:李阳,
申请(专利权)人:锐捷网络股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。