本申请涉及通讯,具体而言,涉及一种报文转发表查询方法及电子设备。
背景技术:
1、现有技术中,为了进行报文转发,cpu需要维护软件转发表,该表存储于内存中,cpu每次进行转发表的索引,实际上是cpu读取内存的过程。而内存的访问效率往往较低。为了解决该问题,通常利用高速缓存(cache)来缓存常用数据内容,以提高读写性能。
2、然而,对于报文转发的场景,由于该高速缓存(cache)中的数据存在随机性,往往会因为未命中高速缓存(cache)中的数据,cpu依然需要查询内存中的转发表内容,以实现报文的发送,进而降低了整个报文发送的效率。
技术实现思路
1、本申请的目的在于提供一种报文转发表查询方法及电子设备,用于提高转发表查询效率,进而提高报文转发的效率。
2、为了实现上述目的,本申请实施例采用的技术方案如下:
3、第一方面,本申请实施例提供一种报文转发表查询方法,所述方法应用于电子设备,所述电子设备包含cpu与asic芯片,所述方法,包括:
4、所述asic芯片接收待转发报文;
5、所述asic芯片针对所述待转发报文计算对应的哈希值,并将所述哈希值对转发表的存储值取模,获得所述待转发报文对应的索引值;所述转发表存储于所述cpu的内存中,所述索引值与所述转发表的对应;
6、所述asic芯片按照每个所述待转发报文对应的索引值大小,将全部所述待转发报文按序存储于报文缓存队列;
7、所述cpu从所述报文缓存队列读取所述待转发报文与所述索引值;
8、所述cpu根据所述索引值确定所述转发表中对应的转发行为,并将所述索引值之后的至少一个索引值对应的转发行为存储至高速缓存中。
9、结合第一方面,在第一种可能的实现方式中,在所述cpu从所述报文缓存队列读取所述待转发报文与所述索引值的步骤之后,还包括:
10、所述cpu根据所述索引值确认所述高速缓存是否缓存与所述索引值对应的转发行为;
11、若是,则所述cpu读取所述转发行为;并将所述索引值之后的至少一个索引值对应的转发行为存储至高速缓存中;
12、若否,则执行所述cpu根据所述索引值确定所述转发表中对应的转发行为的步骤。
13、结合第一方面,在第二种可能的实现方式中,所述所述asic芯片按照每个所述待转发报文对应的索引值大小,将全部所述待转发报文按序存储于报文缓存队列的步骤,包括:
14、所述asic芯片按照每个所述待转发报文对应的索引值大小,逐个将每个所述待转发报文与对应的索引值存储至写入索引对应的存储位置;所述写入索引指向所述报文缓存队列中空白的存储位置,每完成一次写入,所述写入索引被配置为指向下一个空白的存储位置。
15、结合第一方面,在第三种可能的实现方式中,所述所述cpu从所述报文缓存队列读取所述待转发报文与所述索引值的步骤,包括:
16、所述cpu读取读出索引指向的存储位置上的所述待转发报文与所述索引值;所述读出索引指向所述报文缓存队列中已存内容的存储位置,每完成一次读取,所述写入索引被配置为指向下一个已存内容的存储位置;
17、当所述cpu读取完成,所述asic芯片清空对应存储位置的数据。
18、结合第一方面或第一方面上述任意一种可能的实现方式,在第四种可能的实现方式中,还包括:
19、所述cpu根据所述转发行为对对应的待转发报文进行编辑;
20、所述cpu向所述asic芯片发送编辑后的待转发报文与目标物理端口;
21、所述asic芯片将所述编辑后的待转发报文发送给所述目标物理端口。
22、第二方面,本申请实施例提供一种电子设备,电子设备包括:cpu与asic芯片;
23、所述asic芯片,用于接收待转发报文;针对所述待转发报文计算对应的哈希值,并将所述哈希值对转发表的存储值取模,获得所述待转发报文对应的索引值;所述转发表存储于所述cpu的内存中,所述索引值与所述转发表的对应;按照每个所述待转发报文对应的索引值大小,将全部所述待转发报文按序存储于报文缓存队列;
24、所述cpu,用于从所述报文缓存队列读取所述待转发报文与所述索引值;根据所述索引值确定所述转发表中对应的转发行为,并将所述索引值之后的至少一个索引值对应的转发行为存储至高速缓存中。
25、结合第二方面,在第一种可能的实现方式中,所述cpu,具体用于根据所述索引值确认所述高速缓存是否缓存与所述索引值对应的转发行为;若是,则读取所述转发行为;并将所述索引值之后的至少一个索引值对应的转发行为存储至高速缓存中;若否,则根据所述索引值确定所述转发表中对应的转发行为。
26、结合第二方面,在第二种可能的实现方式中,所述asic芯片,具体用于按照每个所述待转发报文对应的索引值大小,逐个将每个所述待转发报文与对应的索引值存储至写入索引对应的存储位置;所述写入索引指向所述报文缓存队列中空白的存储位置,每完成一次写入,所述写入索引被配置为指向下一个空白的存储位置。
27、结合第二方面,在第三种可能的实现方式中,所述cpu,具体用于读取读出索引指向的存储位置上的所述待转发报文与所述索引值;所述读出索引指向所述报文缓存队列中已存内容的存储位置,每完成一次读取,所述写入索引被配置为指向下一个已存内容的存储位置;
28、所述asic芯片,还用于当所述cpu读取完成,清空对应存储位置的数据。
29、结合第二方面或第二方面上述任意一种可能的实现方式,在第四种可能的实现方式中,所述cpu,还用于根据所述转发行为对对应的待转发报文进行编辑;向所述asic芯片发送编辑后的待转发报文与目标物理端口;
30、所述asic芯片,还用于将所述编辑后的待转发报文发送给所述目标物理端口。
31、相对于现有技术,本申请实施例所提供的一种报文转发表查询方法及电子设备,由asic芯片针对所述待转发报文计算对应的哈希值,并将哈希值对转发表的存储值取模,获得待转发报文对应的索引值;进而asic芯片基于索引值大小,将全部待转发报文按序存储于报文缓存队列;进而cpu从报文缓存队列读取待转发报文与索引值;由于cpu根据索引值确定所述转发表中对应的转发行为,并将索引值之后的至少一个索引值对应的转发行为存储至高速缓存中。由于下一次读取的数据,很有可能是与本次转发行为相连的数据,因此,大大提高了下一次读取数据命中高速缓存的概率,进而避免由于报文缓存队列中数据随机排布,导致cpu反复读取内存转发表的情况,提高转发效率。
32、为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
1.一种报文转发表查询方法,其特征在于,所述方法应用于电子设备,所述电子设备包含cpu与asic芯片,所述方法,包括:
2.如权利要求1所述的方法,其特征在于,在所述cpu从所述报文缓存队列读取所述待转发报文与所述索引值的步骤之后,还包括:
3.如权利要求1所述的方法,其特征在于,所述所述asic芯片按照每个所述待转发报文对应的索引值大小,将全部所述待转发报文按序存储于报文缓存队列的步骤,包括:
4.如权利要求1所述的方法,其特征在于,所述cpu从所述报文缓存队列读取所述待转发报文与所述索引值的步骤,包括:
5.如权利要求1~4任意一项所述的方法,其特征在于,还包括:
6.一种电子设备,其特征在于,电子设备包括:cpu与asic芯片;
7.如权利要求6所述的电子设备,其特征在于,
8.如权利要求6所述的电子设备,其特征在于,
9.如权利要求6所述的电子设备,其特征在于,
10.如权利要求6~9任意一项所述的电子设备,其特征在于,