一种通信设备、表项更新方法及存储介质

文档序号:19980 发布日期:2021-09-21 浏览:25次 >En<

阅读说明:本技术 一种通信设备、表项更新方法及存储介质 (Communication equipment, table item updating method and storage medium ) 是由 张树坤 于 2021-06-23 设计创作,主要内容包括:本申请实施例提供了一种通信设备、表项更新方法及存储介质。在本申请中,通信设备中的处理器向通信设备中的转发芯片发送用于表项刷新的报文,转发芯片中的收发模块在接收到报文后,将用于表项刷新的报文透传给转发芯片中的刷表模块,刷表模块根据该报文对相应的转发表项进行更新操作,从而实现了利用转发芯片完成自身内存中转发表项的更新,相比于现有技术中利用处理器直接更新转发芯片内存中的转发表项,能够降低转发芯片中的转发表项的更新延时。(The embodiment of the application provides communication equipment, an item updating method and a storage medium. In the application, a processor in the communication device sends a message for table item refreshing to a forwarding chip in the communication device, a transceiver module in the forwarding chip receives the message and then transmits the message for table item refreshing to a table refreshing module in the forwarding chip, and the table refreshing module performs an updating operation on a corresponding forwarding table item according to the message, so that the forwarding table item in a memory of the forwarding chip is updated by the forwarding chip.)

一种通信设备、表项更新方法及存储介质

技术领域

本申请涉及通信

技术领域

,特别是涉及一种通信设备、表项更新方法及存储介质。

背景技术

在基于网络转发芯片的通信设备中,转发表项更新速率非常关键,往往决定了表项生效的延时、用户上线的速率和保护倒换的响应速度等。以保护倒换为例,为了“欺骗”用户的视觉、听觉,从而达到用户无感知,需要在50毫秒内完成保护倒换。

现有技术中,在转发表项更新的过程中,CPU通过PCIE(Peripheral ComponentInterconnect Express,高速串行计算机扩展总线标准)接口直接对转发芯片内存中的转发表项进行更新。然而采用上述方法,会导致转发芯片中转发表项的更新延时较高。

发明内容

本申请实施例的目的在于提供一种通信设备、表项更新方法及存储介质,以实现降低转发芯片中转发表项的更新延时。具体技术方案如下:

第一方面,本申请实施例提供了一种通信设备,包括:

处理器及至少一转发芯片,每个转发芯片包括刷表模块及收发模块,且每个转发芯片中存储有多条转发表项;

所述处理器,用于在需要更新目标转发芯片上的目标转发表项时,生成携带有目标转发表项的报文,并将所述报文发送给所述目标转发芯片中的收发模块,其中,所述报文中还携带有表项更新指示信息、所述目标转发表项的属性信息及更新操作类型;

所述收发模块,用于在接收到所述报文后,根据所述报文中的所述表项更新指示信息,将所述报文发送给所述目标转发芯片中的刷表模块;

所述刷表模块,用于在接收到所述报文后,根据所述报文中的所述属性信息,确定所述报文中的所述目标转发表项对应的目标内存地址,并基于所述目标内存地址,对所述报文中的所述目标转发表项执行所述报文中的所述更新操作类型对应的目标更新操作。

在一种可能的实施方式中,所述属性信息包括所述目标转发表项的表号、表类型、关键字Key;

所述刷表模块,具体用于根据所述表类型对应的计算内存地址的计算方式,对所述表号和所述Key进行计算,得到所述目标转发表项对应的目标内存地址。

在一种可能的实施方式中,所述更新操作类型为新增操作;

所述刷表模块,具体用于将所述报文中的所述目标转发表项写入到所述目标内存地址中;或者,

所述更新操作类型为修改操作;

所述刷表模块,具体用于将所述目标内存地址中存储的转发表项替换为所述报文中的所述目标转发表项;或者,

所述更新操作类型为删除操作;

所述刷表模块,具体用于删除所述目标内存地址中存储的所述报文中的所述目标转发表项。

在一种可能的实施方式中,所述刷表模块,还用于在执行所述目标更新操作之前,对所述目标内存地址添加互斥锁;以及在执行所述目标更新操作之后解除所述目标内存地址的互斥锁。

第二方面,本申请实施例提供了一种转发芯片中转发表项的更新方法,应用于通信设备,所述通信设备包括处理器及至少一转发芯片,每个转发芯片包括刷表模块及收发模块,且每个转发芯片中存储有多条转发表项,所述方法包括:

所述处理器在需要更新目标转发芯片上的目标转发表项时,生成携带有目标转发表项的报文,并将所述报文发送给所述目标转发芯片中的收发模块,其中,所述报文中还携带有表项更新指示信息、所述目标转发表项的属性信息及更新操作类型;

所述目标转发芯片中的收发模块在接收到所述报文后,根据所述报文中的所述表项更新指示信息,将所述报文发送给所述目标转发芯片中的刷表模块;

所述目标转发芯片中的刷表模块在接收到所述报文后,根据所述报文中的所述属性信息,确定所述报文中的所述目标转发表项对应的目标内存地址,并基于所述目标内存地址,对所述报文中的所述目标转发表项执行所述报文中的所述更新操作类型对应的目标更新操作。

在一种可能的实施方式中,所述属性信息包括所述目标转发表项的表号、表类型、关键字Key;

所述目标转发芯片中的刷表模块根据所述报文中的所述属性信息,确定所述报文中的所述目标转发表项对应的目标内存地址,具体包括:

所述目标转发芯片中的刷表模块根据所述表类型对应的计算内存地址的计算方式,对所述表号和所述Key进行计算,得到所述目标转发表项对应的目标内存地址。

在一种可能的实施方式中,所述更新操作类型为新增操作;

所述目标转发芯片中的刷表模块基于所述目标内存地址,对所述报文中的所述目标转发表项执行所述报文中的所述更新操作类型对应的目标更新操作,具体包括:

所述目标转发芯片中的刷表模块将所述报文中的所述目标转发表项写入到所述目标内存地址中;或者,

所述更新操作类型为修改操作;

所述目标转发芯片中的刷表模块基于所述目标内存地址,对所述报文中的所述目标转发表项执行所述报文中的所述更新操作类型对应的目标更新操作,具体包括:

所述目标转发芯片中的刷表模块将所述目标内存地址中存储的转发表项替换为所述报文中的所述目标转发表项;或者,

所述更新操作类型为删除操作;

所述目标转发芯片中的刷表模块基于所述目标内存地址,对所述报文中的所述目标转发表项执行所述报文中的所述更新操作类型对应的目标更新操作,具体包括:

所述目标转发芯片中的刷表模块删除所述目标内存地址中存储的所述报文中的所述目标转发表项。

在一种可能的实施方式中,在所述目标转发芯片中的刷表模块基于所述目标内存地址,对所述报文中的所述目标转发表项执行所述报文中的所述更新操作类型对应的目标更新操作之前,所述方法还包括:

所述目标转发芯片中的刷表模块对所述目标内存地址添加互斥锁;

在目标转发芯片中的所述刷表模块基于所述目标内存地址,对所述报文中的所述目标转发表项执行所述报文中的所述更新操作类型对应的目标更新操作之后,所述方法还包括;

所述目标转发芯片中的刷表模块解除所述目标内存地址的互斥锁。

第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本申请中任一所述的表项更新方法。

本申请实施例有益效果:

本申请实施例提供的通信设备包括处理器及至少一转发芯片,每个转发芯片包括刷表模块及收发模块,且每个转发芯片中存储有多条转发表项;处理器,用于在需要更新目标转发芯片上的目标转发表项时,生成携带有目标转发表项的报文,并将报文发送给目标转发芯片中的收发模块,其中,报文中还携带有表项更新指示信息、目标转发表项的属性信息及更新操作类型;收发模块,用于在接收到报文后,根据报文中的表项更新指示信息,将报文发送给目标转发芯片中的刷表模块;刷表模块,用于在接收到报文后,根据报文中的属性信息,确定报文中的目标转发表项对应的目标内存地址,并基于目标内存地址,对报文中的目标转发表项执行报文中的更新操作类型对应的目标更新操作。在上述过程中,处理器向转发芯片发送用于表项刷新的报文,转发芯片中的收发模块在接收到报文后,将用于表项刷新的报文透传给转发芯片中的刷表模块,刷表模块根据该报文对转发表项进行更新操作,从而实现了利用转发芯片完成自身内存中转发表项的更新,相比于现有技术中利用处理器直接更新转发芯片内存中的转发表项,能够降低转发芯片中转发表项更新的延时。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本申请实施例的通信设备的一种示意图;

图2为本申请实施例的通信设备更新转发表项的一种示意图;

图3为本申请实施例的刷新模块更新转发表项的一种示意图;

图4为本申请实施例的表项更新方法的一种示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。

为了降低转发芯片中转发表项的更新延时,本申请实施例提供了一种通信设备,参见图1,包括:

处理器11及至少一转发芯片12,每个转发芯片12包括刷表模块121及收发模块122,且每个转发芯片中存储有多条转发表项;

所述处理器11,用于在需要更新目标转发芯片上的目标转发表项时,生成携带有目标转发表项的报文,并将所述报文发送给所述目标转发芯片中的收发模块,其中,所述报文中还携带有表项更新指示信息、所述目标转发表项的属性信息及更新操作类型;

所述收发模块122,用于在接收到所述报文后,根据所述报文中的所述表项更新指示信息,将所述报文发送给所述目标转发芯片中的刷表模块;

所述刷表模块121,用于在接收到所述报文后,根据所述报文中的所述属性信息,确定所述报文中的所述目标转发表项对应的目标内存地址,并基于所述目标内存地址,对所述报文中的所述目标转发表项执行所述报文中的所述更新操作类型对应的目标更新操作。

目标转发表项为需要更新的转发表项。处理器按照表项更新的需求计算得到目标转发表项,并将目标转发表项携带在报文中进行发送,报文中除了有目标转发表项外,还可以包括表项更新指示信息、目标转发表项的属性信息及更新操作类型。在这里,更新操作类型可以为新增操作、修改操作或者删除操作,新建操作和修改操作均可以视为写入操作。一个例子中,属性信息可以包括目标转发表项的表号、表类型、Key(关键字);在更新操作类型为新增操作的情况下,属性信息还可以包括表项大小等。一个例子中,处理器可以通过区别于PCIE接口外的其他接口,将报文发送给目标转发芯片中的收发模块。

当转发芯片中的收发模块接收到报文后,在该报文中包括表项更新指示信息的情况下,收发模块将该报文透传给自身所在的转发芯片中的刷表模块。刷表模块根据该报文中的目标转发表项的属性信息及更新操作类型,确定目标转发表项对应的目标内存地址及目标更新操作,并基于目标内存地址,对目标转发表项执行该目标更新操作。

一个例子中,例如图2所示,通过转发芯片中的刷表模块来实现转发表项的更新,其中,CPU表示处理器,NP表示网络处理器,PP表示报文处理器,NP及PP为转发芯片的具体类型。刷表模块可以为基于转发芯片的硬件资源的软件模块,也可以在转发芯片中增加ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件来实现刷表模块;一个例子中,刷表模块可以基于IP核(知识产权核)的形式实现。

在本申请实施例中,处理器向转发芯片发送用于表项刷新的报文,转发芯片中的收发模块在接收到报文后,将用于表项刷新的报文透传给转发芯片中的刷表模块,刷表模块根据该报文对相应的转发表项进行更新操作,从而实现了利用转发芯片完成自身内存中转发表项的更新,相比于现有技术中利用处理器直接更新转发芯片内存中的转发表项,能够降低转发芯片中转发表项的更新延时。

在一种可能的实施方式中,所述属性信息包括所述目标转发表项的表号、表类型、关键字Key;所述刷表模块,具体用于根据所述表类型对应的计算内存地址的计算方式,对所述表号和所述Key进行计算,得到所述目标转发表项对应的目标内存地址;所述刷表模块,还用于根据所述报文中的所述目标转发表项及所述更新操作类型,确定目标更新操作。

一个例子中,所述刷表模块可以将表号作为内存基地址,将Key作为偏移地址,计算二者的和从而得到目标内存地址。

一个例子中,例如图3所示,在刷表模块获取到报文后,刷表模块解析该报文,从而得到属性信息及更新操作类型;刷表模块根据属性信息中待更新表项的表号、表类型、Key计算待更新表项对应的目标内存地址,并根据更新操作类型确定目标更新操作;然后刷表模块基于目标内存地址,对待更新表项执行目标更新操作。

在一种可能的实施方式中,所述更新操作类型为新增操作;

所述刷表模块,具体用于将所述报文中的所述目标转发表项写入到所述目标内存地址中;或者,

所述更新操作类型为修改操作;

所述刷表模块,具体用于将所述目标内存地址中存储的转发表项替换为所述报文中的所述目标转发表项;或者,

所述更新操作类型为删除操作;

所述刷表模块,具体用于删除所述目标内存地址中存储的所述报文中的所述目标转发表项。

为了防止转发表项更新过程中其他线程操作该转发表项而产生错误,在一种可能的实施方式中,所述刷表模块,还用于在执行所述目标更新操作之前,对所述目标内存地址添加互斥锁;以及在执行所述目标更新操作之后解除所述目标内存地址的互斥锁。

针对删除转发表项的情况,在一种可能的实施方式中,在所述更新操作类型为删除操作的情况下,所述刷表模块,具体用于对所述目标内存地址添加互斥锁;删除所述目标内存地址中存储的所述报文中的所述目标转发表项;释放所述目标内存地址;解除所述目标内存地址的互斥锁。

所述刷表模块对所述目标内存地址添加互斥锁,然后针对添加互斥锁之后的目标内存地址执行所述目标更新操作,之后解除所述目标内存地址的互斥锁。一个例子中,刷表模块针对目标内存地址添加互斥锁,添加互斥锁之后的目标内存地址,仅允许该刷表模块进行读写操作,不允许其他线程进行读写操作。刷表模块针对目标内存地址执行目标更新操作,在目标更新操作执行完毕后,刷表模块解除目标内存地址的互斥锁。

在本申请实施例中,刷表模块针对目标内存地址添加互斥锁,可以减少因其他线程读写目标内存地址而出现错误的情况。目标内存地址的互斥锁不影响其他内存地址的数据的读写。并且,在该转发芯片中需要更新多个转发表项的情况下,可以分别针对每个转发表项对应的内存地址添加互斥锁,通过并行执行的方式实现同时更新多个转发表项,从而进一步缩短转发表项的更新延时。

下面以新增转发表项为例,进行举例说明:

1、在需要更新目标转发芯片上的目标转发表项时,处理器生成携带有目标转发表项的报文,并将该报文发送给所述目标转发芯片中的收发模块,其中,该报文中携带有表项更新指示信息、目标转发表项的属性信息及更新操作类型。

处理器不直接对转发芯片的内存进行操作,不需要进行额外的加锁等数据一致性保护。

2、目标转发芯片中的收发模块解析该报文,识别该报文中是否有表项更新指示信息,若有表项更新指示信息,则将该报文透传给自身所在的转发芯片中的刷表模块。

3、刷表模块解析接收到的报文,获取属性信息、目标转发表项及更新操作类型,其中,属性信息包括表号,表类型,表项大小,Key等。

4、刷表模块根据表号、表类型和Key计算所需要刷新的目标内存地址。

5、刷表模块加锁所需要刷新的目标内存地址。

该过程不影响其他地址中其他表项的并行刷新,提高了并发刷表性能。

6、刷表模块根据表项大小为目标转发表项申请内存块,将目标转发表项写入所申请的内存地址。

7、刷表模块解锁被刷新的内存地址。

8、刷表模块向处理器返回表示更新完成的消息。

目标转发芯片更新转发表项的过程中,处理器可以处理其它任务,无需等待。删除和修改转发表项的过程类似,只是动作不同。

现有技术中,针对CPU同时管理多个转发芯片的多个转发表项的情况,在需要更新的转发表项位于不同的转发芯片中时,CPU需要分别映射各转发芯片的内存地址,该过程会造成较高的延时,而在本申请实施例中,处理器可以通过并行下发表项刷新报文的方式,来大大缩短转发表项的更新延时。

在需要更新多个目标转发芯片中的多个目标转发表项时,针对每一目标转发表项,处理器生成携带有该目标转发表项的报文,并向该目标转发表项所在的目标转发芯片中的收发模块发送该报文。处理器可以并行向各目标转发芯片下发相应的报文;针对每一目标转发芯片,在接收到报文后,根据接收到的报文执行相应的表项更新操作,多个转发芯片之间的操作互不影响,可以并行执行,从而能够大大缩短转发表项的更新延时。

在本申请实施例中,在转发芯片中增加刷表模块,可以并行执行多个转发表项的更新,处理器只负责将表项封装成报文发给转发芯片,不负责真正的增删改操作,刷表模块根据报文计算需要刷新的内存地址,只需对所需操作的内存地址进行加锁,不影响其他地址其他表项,可以保证并发操作不阻塞;操作转发表项时,转发芯片中的收发模块负责初级解析,刷表模块负责深入解析,刷表模块根据解析所得的更新操作类型、表号、表类型、Key、目标转发表项等计算内存地址并执行相应的操作,从而缩短转发芯片中转发表项的更新延时。

本申请实施例还提供了一种表项更新方法,应用于通信设备,所述通信设备包括处理器及至少一转发芯片,每个转发芯片包括刷表模块及收发模块,且每个转发芯片中存储有多条转发表项,参见图4,所述方法包括:

S101,所述处理器在需要更新目标转发芯片上的目标转发表项时,生成携带有目标转发表项的报文,并将所述报文发送给所述目标转发芯片中的收发模块,其中,所述报文中还携带有表项更新指示信息、所述目标转发表项的属性信息及更新操作类型;

S102,所述目标转发芯片中的收发模块在接收到所述报文后,根据所述报文中的所述表项更新指示信息,将所述报文发送给所述目标转发芯片中的刷表模块;

S103,所述目标转发芯片中的刷表模块在接收到所述报文后,根据所述报文中的所述属性信息,确定所述报文中的所述目标转发表项对应的目标内存地址,并基于所述目标内存地址,对所述报文中的所述目标转发表项执行所述报文中的所述更新操作类型对应的目标更新操作。

在一种可能的实施方式中,所述属性信息包括所述目标转发表项的表号、表类型、关键字Key;

所述目标转发芯片中的刷表模块根据所述报文中的所述属性信息,确定所述报文中的所述目标转发表项对应的目标内存地址,具体包括:

所述目标转发芯片中的刷表模块根据所述表类型对应的计算内存地址的计算方式,对所述表号和所述Key进行计算,得到所述目标转发表项对应的目标内存地址。

在一种可能的实施方式中,所述更新操作类型为新增操作;

所述目标转发芯片中的刷表模块基于所述目标内存地址,对所述报文中的所述目标转发表项执行所述报文中的所述更新操作类型对应的目标更新操作,具体包括:

所述目标转发芯片中的刷表模块将所述报文中的所述目标转发表项写入到所述目标内存地址中;或者,

所述更新操作类型为修改操作;

所述目标转发芯片中的刷表模块基于所述目标内存地址,对所述报文中的所述目标转发表项执行所述报文中的所述更新操作类型对应的目标更新操作,具体包括:

所述目标转发芯片中的刷表模块将所述目标内存地址中存储的转发表项替换为所述报文中的所述目标转发表项;或者,

所述更新操作类型为删除操作;

所述目标转发芯片中的刷表模块基于所述目标内存地址,对所述报文中的所述目标转发表项执行所述报文中的所述更新操作类型对应的目标更新操作,具体包括:

所述目标转发芯片中的刷表模块删除所述目标内存地址中存储的所述报文中的所述目标转发表项。

在一种可能的实施方式中,在所述目标转发芯片中的刷表模块基于所述目标内存地址,对所述报文中的所述目标转发表项执行所述报文中的所述更新操作类型对应的目标更新操作之前,所述方法还包括:

所述目标转发芯片中的刷表模块对所述目标内存地址添加互斥锁;

在目标转发芯片中的所述刷表模块基于所述目标内存地址,对所述报文中的所述目标转发表项执行所述报文中的所述更新操作类型对应的目标更新操作之后,所述方法还包括;

所述目标转发芯片中的刷表模块解除所述目标内存地址的互斥锁。

本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现本申请中任一所述的转发芯片中转发表项的更新方法。

在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本申请中任一所述的转发芯片中转发表项的更新方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。

需要说明的是,在本文中,各个可选方案中的技术特征只要不矛盾均可组合来形成方案,这些方案均在本申请公开的范围内。诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法、计算机程序产品及存储介质的实施例而言,由于其基本相似于通信设备实施例,所以描述的比较简单,相关之处参见通信设备实施例的部分说明即可。

以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种USB多媒体集线器控制芯片

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!