CN114844832A - 硬件转发表项配置方法、设备、介质及产品 - Google Patents
硬件转发表项配置方法、设备、介质及产品 Download PDFInfo
- Publication number
- CN114844832A CN114844832A CN202210288025.0A CN202210288025A CN114844832A CN 114844832 A CN114844832 A CN 114844832A CN 202210288025 A CN202210288025 A CN 202210288025A CN 114844832 A CN114844832 A CN 114844832A
- Authority
- CN
- China
- Prior art keywords
- table entry
- entry
- software forwarding
- forwarding table
- software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000004590 computer program Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本公开实施例公开了一种硬件转发表项配置方法、设备、介质及产品,该方法包括:接收第一软件转发表项;基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中,并记录所述第一软件转发表项的状态为配置就绪;判断所述第一软件转发表项及其关联表项的状态是否均配置就绪;在所述第一软件转发表项及其关联表项的状态均配置就绪时,基于所述合并表项配置硬件转发表项。该技术方案可以减少查表步骤,降低配置过程的复杂度。
Description
技术领域
本公开实施例涉及通信技术领域,具体涉及一种硬件转发表项配置方法、设备、介质及产品。
背景技术
在云网络的硬件网关场景中,硬件网关在获取到软件转发表项时,需要将该软件转发表项下发给硬件网关的硬件芯片中,该硬件芯片可以将该软件转发表项的内容写入至硬件转发表项中,使该硬件转发表项与软件转发表项的内容是一致,该硬件芯片可以通过该硬件转发表项中的内容完成硬件网关的转发功能。由于软件转发表项的数量较大,而受限于硬件资源,硬件芯片中只有少量存储空间来存储该硬件转发表项,故在设计硬件转发表项时会对软件转发表项进行合并,例如软件转发表项的表A中写入的内容是三个字段:字段1、字段2和字段3,表B中写入的内容是三个字段:字段1、字段2和字段4,将表A和表B合并后可以生成一个合并表仅写入四个字段:字段1、字段2、字段3和字段4,与共有6个字段的表A和表B相比,占用的存储空间明显减少。但是,在合并表项时,需要多个关联表项凑齐之后,才能合并成一个完整的合并表项下发给硬件芯片,以进行硬件转发表项的配置。而管控系统下发至硬件网关中的软件转发表项存在一定的无序性,故并不能确定哪个表项是最后一个关联表项,故在任何一张表项下发的时候,都需要基于该表项的内容去查询其他相关表项是否已经下发,而有的关联表项是间接关联的,这就需要通过其他直接关联表项来查询其间接关联表项是否下发,查询过程比较复杂。
发明内容
本公开实施例提供一种硬件转发表项配置方法、设备、介质及产品。
第一方面,本公开实施例中提供了一种硬件转发表项配置方法。
具体的,所述硬件转发表项配置方法,包括:
接收第一软件转发表项;
基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中,并记录所述第一软件转发表项的状态为配置就绪;
判断所述第一软件转发表项及其关联表项的状态是否均配置就绪;
在所述第一软件转发表项及其关联表项的状态均配置就绪时,基于所述合并表项配置硬件转发表项。
在一种可能的实现方式中,所述基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中,包括:
在所述第一软件转发表项中包括所述关键字段时,基于第一软件转发表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
在所述第一软件转发表项中不包括所述关键字段时,基于第一软件转发表项对应的生成表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
其中,所述第一软件转发表项对应的生成表项由其他软件转发表项生成,包括所述关键字段和所述第一软件转发表项中的字段。
在一种可能的实现方式中,所述在所述第一软件转发表项中包括预设的关键字段时,基于所述关键字段将所述第一软件转发表项写入合并表项中,包括:
在所述第一软件转发表项中包括预设的关键字段时,若所述第一软件转发表项为预设表项,查询是否接收到与所述第一软件转发表项关联的第二软件转发表项,其中,所述第二软件转发表项中不包含关键字段;
在未接收到与所述第一软件转发表项关联的第二软件转发表项时,基于所述关键字段将所述第一软件转发表项写入合并表项中。
在一种可能的实现方式中,所述方法还包括:
在接收到与所述第一软件转发表项关联的第二软件转发表项时,基于所述关键字段以及所述第一软件转发表项与所述第二转发表项之间的对应关系,将所述第一软件转发表项和所述第二软件表项写入所述合并表项中,并记录所述第一软件转发表项和第二软件转发表项的状态为配置就绪。
在一种可能的实现方式中,所述方法还包括:
在所述第一软件转发表项为预设表项时,基于所述第一软件转发表项生成所述第二软件转发表项对应的生成表项,所述第二软件转发表项对应的生成表项包括所述关键字段和所述第二软件转发表项中的字段。
在一种可能的实现方式中,所述方法还包括:
从所述第一软件转发表项及其关联表项的各字段中选择出现次数最多的字段作为关键字段。
第一方面,本公开实施例中提供了一种硬件转发表项配置装置。
具体的,所述硬件转发表项配置装置,包括:
接收模块,被配置为接收第一软件转发表项;
第一写入模块,被配置为基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中,并记录所述第一软件转发表项的状态为配置就绪;
判断模块,被配置为判断所述第一软件转发表项及其关联表项的状态是否均配置就绪;
配置模块,被配置为在所述第一软件转发表项及其关联表项的状态均配置就绪时,基于所述合并表项配置硬件转发表项。
在一种可能的实现方式,所述第一写入模块中基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中的部分被配置为:
在所述第一软件转发表项中包括所述关键字段时,基于第一软件转发表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
在所述第一软件转发表项中不包括所述关键字段时,基于第一软件转发表项对应的生成表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
其中,所述第一软件转发表项对应的生成表项由其他软件转发表项生成,包括所述关键字段和所述第一软件转发表项中的字段。
在一种可能的实现方式,所述第一写入模块中在所述第一软件转发表项中包括预设的关键字段时,基于所述关键字段将所述第一软件转发表项写入合并表项中的部分被配置为:
在所述第一软件转发表项中包括预设的关键字段时,若所述第一软件转发表项为预设表项,查询是否接收到与所述第一软件转发表项关联的第二软件转发表项,其中,所述第二软件转发表项中不包含关键字段;
在未接收到与所述第一软件转发表项关联的第二软件转发表项时,基于所述关键字段将所述第一软件转发表项写入合并表项中。
在一种可能的实现方式,所述装置还包括:
第二写入模块,被配置为在接收到与所述第一软件转发表项关联的第二软件转发表项时,基于所述关键字段以及所述第一软件转发表项与所述第二转发表项之间的对应关系,将所述第一软件转发表项和所述第二软件表项写入所述合并表项中,并记录所述第一软件转发表项和第二软件转发表项的状态为配置就绪。
在一种可能的实现方式,所述装置还包括:
生成模块,被配置为在所述第一软件转发表项为预设表项时,基于所述第一软件转发表项生成所述第二软件转发表项对应的生成表项,所述第二软件转发表项对应的生成表项包括所述关键字段和所述第二软件转发表项中的字段。
在一种可能的实现方式,所述装置还包括:
选择模块,被配置为从所述第一软件转发表项及其关联表项的各字段中选择出现次数最多的字段作为关键字段。
第三方面,本公开实施例提供了一种云网络中的硬件转发设备,其中,包括:
软件配置模块,位于所述硬件转发设备的处理芯片,被配置为接收所述云网络中管控系统下发的第一软件转发表项;基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中,并记录所述第一软件转发表项的状态为配置就绪;判断所述第一软件转发表项及其关联表项的状态是否均配置就绪;在所述第一软件转发表项及其关联表项的状态均配置就绪时,将所述合并表项下发给所述硬件转发设备的硬件芯片上的硬件转发模块;
所述硬件转发模块,被配置为基于所述合并表项配置硬件转发表项。
在一种可能的实现方式,所述软件配置模块中基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中的部分,被配置为:
在所述第一软件转发表项中包括所述关键字段时,基于第一软件转发表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
在所述第一软件转发表项中不包括所述关键字段时,基于第一软件转发表项对应的生成表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
其中,所述第一软件转发表项对应的生成表项由其他软件转发表项生成,包括所述关键字段和所述第一软件转发表项中的字段。
第四方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现上述任一方面所述的方法步骤。
第五方面,本公开实施例提供了一种计算机程序产品,包括计算机程序/指令,其中,该计算机程序/指令被处理器执行时实现上述任一方面所述的方法步骤。
本公开实施例提供的技术方案可包括以下有益效果:
上述技术方案可以在接收到软件转发表项后,直接基于该转发表项中的字段与预设的关键字段之间的对应关系,将所述软件转发表项写入合并表项中,并记录该软件转发表项的状态为配置就绪;这样只需要查询各软件转发表项的状态是否为配置就绪状态即可确定各表项是否下发,不需要进行复杂的遍历查表过程,即可完成硬件转发表项的配置。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开实施例。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开实施例的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开一实施方式的硬件转发表项配置方法的流程图。
图2是示出根据本公开一实施方式的硬件转发表项配置方法的配置流程示意图。
图3示出根据本公开一实施方式的硬件转发表项配置的结构框图。
图4示出根据本公开一实施方式的硬件转发设备的结构框图。
图5是适于用来实现根据本公开实施例所述方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开实施例。
在云网络的硬件网关场景中,硬件网关在获取到软件转发表项时,需要将该软件转发表项下发给硬件网关的硬件芯片中,该硬件芯片可以将该软件转发表项的内容写入至硬件转发表项中,使该硬件转发表项与软件转发表项的内容是一致,该硬件芯片可以通过该硬件转发表项中的内容完成硬件网关的转发功能。由于软件转发表项的数量较大,而受限于硬件资源,硬件芯片中只有少量存储空间来存储该硬件转发表项,故在设计硬件转发表项时会对软件转发表项进行合并,例如软件转发表项的表A中写入的内容是三个字段:字段1、字段2和字段3,表B中写入的内容是三个字段:字段1、字段2和字段4,将表A和表B合并后可以生成一个合并表仅写入四个字段:字段1、字段2、字段3和字段4,与共有6个字段的表A和表B相比,占用的存储空间明显减少。但是,在合并表项时,需要多个关联表项凑齐之后,才能合并成一个完整的合并表项下发给硬件芯片,以进行硬件转发表项的配置。而管控系统下发至硬件网关中的软件转发表项存在一定的无序性,故并不能确定哪个表项是最后一个关联表项,故在任何一张表项下发的时候,都需要基于该表项的内容去查询其他相关表项是否已经下发,而有的关联表项是间接关联的,这就需要通过其他直接关联表项来查询其间接关联表项是否下发,查询过程比较复杂。
示例的,假设软件转发表项为下表1中所示的表A、表B和表C:
表名 | key | value |
表A | eip | tunnel-id+bwp-id |
表B | tunnel-id+vm-ip | eip |
表C | bwp-id | quota |
表1
如果上述各表的下发顺序是表A、表B和表C,每个表中都存储有该表的key(关键)字段和value字段,key字段为索引字段,基于每个表的key字段可以查找到该表的value字段;则在下发A的时候,需要查询相关表项表B和表C是否下发,因为表A中同时存储了表B、表C的key字段,可以直接查询到表B和表C还未下发,此时查询还很简单;但是,在下发表B时,需要查询表A和表C是否下发,通过表B中的eip(Elastic Internet Protocol,弹性公网ip地址)字段可以直接查询到表A已下发,因为表B中没有表C的key字段,就需要先去查询表A得到对应的bwp-id(bandwidth package id,带宽包id)字段,再通过表A中的bwp-id字段去查询表C是否已下发;在下发表C时,需要查询表A和表B是否下发,因为表C中没有表B的key字段,就需要先去查询表A,再通过表A去查询表B是否已下发,这样每下发一个表就要遍历查询其他各表是否已下发,过程复杂。
为了解决上述问题,本公开提供了一种硬件转发表项配置方案,可以设置一中间层,在接收到软件转发表项后,直接基于该转发表项中的字段与预设的关键字段之间的对应关系,将所述软件转发表项写入合并表项中,并记录该软件转发表项的状态为配置就绪;这样只需要查询各软件转发表项的状态是否为配置就绪状态即可确定各表项是否下发,不需要进行复杂的遍历查表过程,即可完成硬件转发表项的配置。
图1示出根据本公开一实施方式的硬件转发表项配置方法的流程图,如图1所示,所述硬件转发表项配置方法包括以下步骤S101-S104:
在步骤S101中,接收第一软件转发表项;
在步骤S102中,基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中,并记录所述第一软件转发表项的状态为配置就绪;
在步骤S103中,判断所述第一软件转发表项及其关联表项的状态是否均配置就绪;
在步骤S104中,在所述第一软件转发表项及其关联表项的状态均配置就绪时,基于所述合并表项配置硬件转发表项。
在一种可能的实施方式中,该硬件转发表项配置方法可以应用在能够进行数据转发的硬件转发设备中,该硬件转发设备是软硬件一体化设备,应用于云网络,可以是云网络中的硬件网关,该硬件网关中包括运行在处理芯片如Soc(system on chip,片上系统)上的表项配置管理装置和运行在硬件芯片上的硬件转发装置,该表项配置管理装置可以执行本公开的硬件转发表项配置方法,并将配置好的硬件转发表项下发至硬件芯片,该硬件转发装置可以根据该硬件转发表项进行数据转发。
在一种可能的实施方式中,该第一软件转发表项可以是硬件网关接收到的任一软件转发表项,示例的,可以是表1中表A、表B或表C,当然还可以是其他软件转发表项,在此不一一例举。各软件转发表项的字段之间都有直接或间接的对应关系,相互之间均为关联表项。
在一种可能的实施方式中,该预设的关键字段可以是与各软件转发表项中的字段有强对应关系的字段,有的软件转发表项中包含有该关键字段,此时,该软件转发表项中的字段与该关键字段具有直接的对应关系;有的软件转发表项中没有包含该关键字段,此时,该软件转发表项中的字段与该关键字段会有间接的对应关系。在该第一软件转发表项中包含有该关键字段时,可以直接基于该第一软件转发表项中的该关键字段,将该表A对应写入合并表项中,如果该第一软件转发表项中未包含有该关键字段,该软件转发表项中的字段会对应其他具有该关键字段的表项中的字段,与该关键字段之间存在间接的对应关系,此时,可以基于该第一软件转发表项中的字段与预设的关键字段之间的间接对应关系,将第一软件转发表项写入合并表项中。
示例的,仍以表1中的各表为例进行说明,该预设的关键字段可以是eip字段,在接收的第一软件转发表项为表A时,该表A中包含有eip字段,此时,可以直接将该表A写入对应的合并表项中;在接收的第一软件转发表项为表C时,该表C中不包含有eip字段,此时,可以基于表A中eip与tunnel-id、bwp-id的对应关系,得到表C中bwp-id与eip之间的对应关系,将表C中的字段写入该合并表项中。
在一种可能的实施方式中,在将该第一软件转发表项写入合并表项的同时,可以记录所述第一软件转发表项的状态为配置就绪,这样每写入一个表项,就可以记录该表项的状态为配置就绪,如此只需要查询各表项的状态就可以知晓相关表项是否下发配置。
在一种可能的实施方式中,可以在记录该第一表项的状态为配置就绪状态时,就触发判断所述第一软件转发表项及其关联表项的状态是否均配置就绪;也可以周期性地或定时地触发判断第一软件转发表项及其关联表项的状态是否均配置就绪,在此不做限制。在所述第一软件转发表项的关联表项的状态均配置就绪时,表明各相关的软件转发表项均已下发并合并,此时,可以基于已合并的合并表项配置硬件转发表项,也即将该合并表项下发至硬件芯片中,由硬件芯片将该合并表项的内容写入硬件转发表项,完成该硬件转发表项的配置。在所述第一软件转发表项的关联表项的状态未均配置就绪时,表明有相关的软件转发表项未下发,此时就需要等待该软件转发表项的下发,继续进行步骤S101-S104。
本实施方式,通过设置一中间层,在接收到软件转发表项后,直接基于该转发表项中的字段与预设的关键字段之间的对应关系,将所述软件转发表项写入合并表项中,并记录该软件转发表项的状态为配置就绪;这样只需要查询各软件转发表项的状态是否为配置就绪状态即可确定各表项是否下发,不需要进行复杂的遍历查表过程,即可完成硬件转发表项的配置。
在一种可能的实施方式中,上述硬件转发表项配置方法中的步骤S102,即所述基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中,可以包括以下步骤:
在所述第一软件转发表项中包括所述关键字段时,基于第一软件转发表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
在所述第一软件转发表项中不包括所述关键字段时,基于第一软件转发表项对应的生成表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
其中,所述生成表项由其他软件转发表项生成,包括所述关键字段和所述第一软件转发表项中的字段。
在该实施方式中,仍以表1中的各表为例进行说明,该预设的关键字段可以是eip字段,在接收的第一软件转发表项为表A时,该表A中包含有eip字段,此时,可以直接基于该表A中的eip字段,将该表A写入对应的合并表项中;在接收的第一软件转发表项为表C时,该表C中不包含有eip字段,此时,表C对应的生成表项即表E为:
表E | bwp-id | eip1/eip2/eip3/… |
该表E是由其他软件转发表项即表A生成,包括所述关键字段即eip和表C中的字段bwp-id。此时,基于该表C对应的生成表项即表E中的关键字段eip1/eip2/eip3/…,将所述表C写入所述合并表项中。
这里需要说明的是,如果生成该生成表项的其他软件转发表项未下发,则基于该第一软件转发表项不能找到对应的生成表项,就不能将所述第一软件转发表项写入所述合并表项中,此时,就等待该其他软件转发表项的下发。
在一种可能的实施方式中,所述在所述第一软件转发表项中包括预设的关键字段时,基于所述关键字段将所述第一软件转发表项写入合并表项中,包括:
在所述第一软件转发表项中包括预设的关键字段时,若所述第一软件转发表项为预设表项,查询是否接收到与所述第一软件转发表项关联的第二软件转发表项,其中,所述第二软件转发表项中不包含关键字段;
在未接收到与所述第一软件转发表项关联的第二软件转发表项时,基于所述关键字段将所述第一软件转发表项写入合并表项中,并记录所述第一软件转发表项的状态为配置就绪。
在该实施方式中,该预设表项指的是需要为该第二软件转发表项生成对应的生成表项的表项,该预设表项中包括关键字段和该第二软件转发表项中的字段,基于该预设表项可以生成该第二软件转发表项对应的生成表项,该第二软件转发表项对应的生成表项包括所述关键字段和所述第二软件转发表项中的字段。
示例的,上述表C中不包含关键字段eip,需要基于表A生成表C对应的生成表项,此时,表A就是预设表项,在接收到的第一软件转发表项为表A时,该表A中包含预设的关键字段eip,且该表A也是预设表项,此时,可以查询是否接收到该表A关联的第二软件转发表项即表C,如果表C未下发,则可以直接基于所述关键字段将表A写入合并表项中。
在一种可能的实施方式中,所述硬件转发表项配置方法还可以包括以下步骤:
在接收到与所述第一软件转发表项关联的第二软件转发表项时,基于所述关键字段以及所述第一软件转发表项与所述第二转发表项之间的对应关系,将所述第一软件转发表项和所述第二软件表项写入所述合并表项中,并记录所述第一软件转发表项和第二软件转发表项的状态为配置就绪。
在该实施方式中,仍以上述示例为例进行说明,如果表C已下发,则基于表A中的bwp-id可以直接查询到表C,此时,可以基于表A与表C之间的对应关系,以及该表A中的关键字段,将该表A和表C均写入该合并表项中,并记录所述第一软件转发表项和第二软件转发表项的状态为配置就绪。
本实施方式仅需要在第一软件转发表项为预设表项时,查询其关联的第二软件转发表项,不需要查询其他关联表项,与现有技术中遍历查询所有关联表项相比,减少了查表次数和复杂度。
在一种可能的实施方式中,所述硬件转发表项配置方法还可以包括以下步骤:
在所述第一软件转发表项为预设表项时,基于所述第一软件转发表项生成所述第二软件转发表项对应的生成表项,所述第二软件转发表项对应的生成表项包括所述关键字段和所述第二软件转发表项中的字段。
在该实施方式中,在该第一软件转发表项为预设表项时,不管是否已接收到与所述第一软件转发表项关联的第二软件转发表项,均会生成该第二软件转发表项对应的生成表项。
在该实施方式中,该第一软件转发表项中包括该预设的关键字段和该第二软件转发表项中的字段,故,可以基于该第一软件转发表项生成该第二软件转发表项对应的生成表项,该第二软件转发表项对应的生成表项包括所述关键字段和所述第二软件转发表项中的字段。如此,在后续接收到第二软件转发表项或第二软件转发表项进行更新时,均基于该生成表项中的关键字段,将该第二软件转发表项写入所述合并表项中。
在一种可能的实施方式中,上述硬件转发表项配置方法还可以包括以下步骤:
从所述第一软件转发表项及其关联表项的各字段中选择出现次数最多的字段作为关键字段。
在该实施方式中,该预设的关键字段可以是第一软件转发表项及其关联表项中出现次数最多的字段,如此,这些相关联的软件转发表项中会有大部分表项都包括该关键字段,这样,就会有大部分表项不需要查询其他表项,直接基于其包括的关键字段直接写入合并表项,减少查表次数。示例的,在云网络的硬件网关场景中,该预设的关键字段可以是eip。
示例的,图2是示出根据本公开一实施方式的硬件转发表项配置方法的配置流程示意图,该硬件网关接收到的软件转发表项为表1中的表A、表B和表C,其中表A为预设表项,基于该表A可以生成表C对应的生成表项即表E,预设的关键字段为eip。如图2所示,假设表A、表B和表C的下发顺序是表A、表B和表C,则,在接收到表A时,由于表A中包括预设的关键字段eip且为预设表项,则可以基于表A生成该表C对应的生成表项表E,同时需要查询表C是否已下发,由于表C未下发,则基于表A中的eip字段将表A写入合并表项中,同时记录表A的状态为配置就绪;此时判断表A、表B和表C是否均配置就绪,由于此时表B和表C未配置就绪,则等待其他表项下发;接着会接收到表B时,由于表B中包括预设的关键字段eip但不是预设表项,可以直接基于表B中的eip字段将表B写入合并表项中,同时记录表B的状态为配置就绪,此时判断表A、表B和表C是否均配置就绪,由于此时表C未配置就绪,则等待其他表项下发;最后会接收到表C时,由于表C中不包括预设的关键字段eip,可以查询表C对应的生成表项即表E,由于已基于表A生成表E,故可以查询到表E,此时可以直接基于表C对应的生成表项即表E中的eip字段将表C写入合并表项中,同时记录表C的状态为配置就绪,此时可以判断表A、表B和表C均已配置就绪,就会基于该合并表项配置硬件转发表项。
或者,假设表A、表B和表C的下发顺序是表C、表B和表A,则,在接收到表C时,由于表C中不包括预设的关键字段eip,可以查询表C对应的生成表项即表E,由于未接收到表A,故不能查询到表E,此时就等待其他表项下发;接着会接收到表B时,由于表B中包括预设的关键字段eip但不是预设表项,可以直接基于表B中的eip字段将表B写入合并表项中,同时记录表B的状态为配置就绪,此时判断表A、表B和表C是否均配置就绪,由于此时表A未配置就绪,则等待其他表项下发;最后接收到表A时,由于表A中包括预设的关键字段eip且为预设表项,则可以基于表A生成该表C对应的生成表项表E,同时需要查询表C是否已下发,由于表C已下发,则基于表A和表C的对应关系以及表A中的eip字段将表A和表C写入合并表项中,同时记录表A和表C的状态为配置就绪;此时可以判断表A、表B和表C均已配置就绪,就会基于该合并表项配置硬件转发表项。
由上述示例可以看出,与现有技术相比,本公开提供的硬件转发表项的配置方案不需要每接收到一个表项均进行遍历查询其他所有的表项,而基于该转发表项中的字段与预设的关键字段之间的对应关系,将所述软件转发表项写入合并表项中,这样只需要在转发表项中不包含预设的关键字段时进行特定的查表得到该软件转发表项与预设的关键字段之间的对应关系,而且每次写入时均会记录该软件转发表项的状态为配置就绪;这样,通过查询各软件转发表项的状态是否为配置就绪状态即可确定各表项是否下发,不需要进行复杂的遍历查表过程,即可完成硬件转发表项的配置,简化了配置下发硬件转发表项时的判断处理逻辑,让整个系统简单,可维护。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图3示出根据本公开一实施方式的硬件转发表项配置装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图3所示,所述硬件转发表项配置装置包括:
接收模块301,被配置为接收第一软件转发表项;
第一写入模块302,被配置为基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中,并记录所述第一软件转发表项的状态为配置就绪;
判断模块303,被配置为判断所述第一软件转发表项及其关联表项的状态是否均配置就绪;
配置模块304,被配置为在所述第一软件转发表项及其关联表项的状态均配置就绪时,基于所述合并表项配置硬件转发表项。
在一种可能的实现方式,所述第一写入模块302中基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中的部分被配置为:
在所述第一软件转发表项中包括所述关键字段时,基于第一软件转发表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
在所述第一软件转发表项中不包括所述关键字段时,基于第一软件转发表项对应的生成表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
其中,所述第一软件转发表项对应的生成表项由其他软件转发表项生成,包括所述关键字段和所述第一软件转发表项中的字段。
在一种可能的实现方式,所述第一写入模块302中在所述第一软件转发表项中包括预设的关键字段时,基于所述关键字段将所述第一软件转发表项写入合并表项中的部分被配置为:
在所述第一软件转发表项中包括预设的关键字段时,若所述第一软件转发表项为预设表项,查询是否接收到与所述第一软件转发表项关联的第二软件转发表项,其中,所述第二软件转发表项中不包含关键字段;
在未接收到与所述第一软件转发表项关联的第二软件转发表项时,基于所述关键字段将所述第一软件转发表项写入合并表项中。
在一种可能的实现方式,所述装置还包括:
第二写入模块,被配置为在接收到与所述第一软件转发表项关联的第二软件转发表项时,基于所述关键字段以及所述第一软件转发表项与所述第二转发表项之间的对应关系,将所述第一软件转发表项和所述第二软件表项写入所述合并表项中,并记录所述第一软件转发表项和第二软件转发表项的状态为配置就绪。
在一种可能的实现方式,所述装置还包括:
生成模块,被配置为在所述第一软件转发表项为预设表项时,基于所述第一软件转发表项生成所述第二软件转发表项对应的生成表项,所述第二软件转发表项对应的生成表项包括所述关键字段和所述第二软件转发表项中的字段。
在一种可能的实现方式,所述装置还包括:
选择模块,被配置为从所述第一软件转发表项及其关联表项的各字段中选择出现次数最多的字段作为关键字段。
图3所示及相关实施方式中涉及的技术术语和技术特征与图1至图2所示及相关实施方式中提及的技术术语和技术特征相同或相似,对于图3所示及相关实施方式中涉及的技术术语和技术特征的解释和说明可参考上述对于图1至图2所示及相关实施方式的解释的说明,此处不再赘述。
本公开还公开了一种电子设备,图4示出根据本公开一实施方式的硬件转发设备的结构框图,如图4所示,所述硬件转发设备400应用于云网络中,包括处理芯片401和硬件芯片402;其中,软件配置模块4011运行于所述硬件转发设备400的处理芯片401,硬件转发模块4021运行于所述硬件转发设备400的硬件芯片402;
软件配置模块4011,被配置为接收所述云网络中管控系统下发的第一软件转发表项;基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中,并记录所述第一软件转发表项的状态为配置就绪;判断所述第一软件转发表项及其关联表项的状态是否均配置就绪;在所述第一软件转发表项及其关联表项的状态均配置就绪时,将所述合并表项下发给硬件转发模块4021;
所述硬件转发模块4021,被配置为基于所述合并表项配置硬件转发表项。
在一种可能的实施方式中,该云网络中管控系统可以是SDN(Software DefinedNetworking,软件定义网络)控制器,该硬件转发设备400可以是云网络中的硬件网关,该管控系统可以向硬件转发设备400发送软件转发表项,以控制硬件转发设备400进行报文转发。该硬件转发设备400是一种软硬件结合的转发设备,包括处理芯片401和硬件芯片402,示例的,该处理芯片可以是SoC,该处理芯片上运行有软件配置模块4011,该软件配置模块可以接收管控系统下发的软件配置表项,并对接收到的软件配置表项进行合并表项录入和状态记录,并在软件转发表项及其关联表项的状态均配置就绪时,将该合并表项下发给硬件芯片402上硬件转发模块4021,该硬件转发模块4021基于所述合并表项配置硬件转发表项后,就可以基于该配置好的硬件转发表项进行报文转发。
在一种可能的实现方式,所述软件配置模块中基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中的部分,被配置为:
在所述第一软件转发表项中包括所述关键字段时,基于第一软件转发表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
在所述第一软件转发表项中不包括所述关键字段时,基于第一软件转发表项对应的生成表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
其中,所述第一软件转发表项对应的生成表项由其他软件转发表项生成,包括所述关键字段和所述第一软件转发表项中的字段。
图4所示及相关实施方式中涉及的技术术语和技术特征与图1至图2所示及相关实施方式中提及的技术术语和技术特征相同或相似,对于图4所示及相关实施方式中涉及的技术术语和技术特征的解释和说明可参考上述对于图1至图2所示及相关实施方式的解释的说明,此处不再赘述。
图5是适于用来实现根据本公开实施例所述方法的计算机系统的结构示意图。
如图5所示,计算机系统500包括处理单元501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行上述实施方式中的各种处理。在RAM503中,还存储有系统500操作所需的各种程序和数据。处理单元501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。其中,所述处理单元501可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行上文描述的方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开实施例的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种硬件转发表项配置方法,其中,包括:
接收第一软件转发表项;
基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中,并记录所述第一软件转发表项的状态为配置就绪;
判断所述第一软件转发表项及其关联表项的状态是否均配置就绪;
在所述第一软件转发表项及其关联表项的状态均配置就绪时,基于所述合并表项配置硬件转发表项。
2.根据权利要求1所述的方法,其中,所述基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中,包括:
在所述第一软件转发表项中包括所述关键字段时,基于第一软件转发表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
在所述第一软件转发表项中不包括所述关键字段时,基于第一软件转发表项对应的生成表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
其中,所述第一软件转发表项对应的生成表项由其他软件转发表项生成,包括所述关键字段和所述第一软件转发表项中的字段。
3.根据权利要求1所述的方法,其中,所述在所述第一软件转发表项中包括预设的关键字段时,基于所述关键字段将所述第一软件转发表项写入合并表项中,包括:
在所述第一软件转发表项中包括预设的关键字段时,若所述第一软件转发表项为预设表项,查询是否接收到与所述第一软件转发表项关联的第二软件转发表项,其中,所述第二软件转发表项中不包含关键字段;
在未接收到与所述第一软件转发表项关联的第二软件转发表项时,基于所述关键字段将所述第一软件转发表项写入合并表项中。
4.根据权利要求3所述的方法,其中,所述方法还包括:
在接收到与所述第一软件转发表项关联的第二软件转发表项时,基于所述关键字段以及所述第一软件转发表项与所述第二转发表项之间的对应关系,将所述第一软件转发表项和所述第二软件表项写入所述合并表项中,并记录所述第一软件转发表项和第二软件转发表项的状态为配置就绪。
5.根据权利要求3所述的方法,其中,所述方法还包括:
在所述第一软件转发表项为预设表项时,基于所述第一软件转发表项生成所述第二软件转发表项对应的生成表项,所述第二软件转发表项对应的生成表项包括所述关键字段和所述第二软件转发表项中的字段。
6.根据权利要求1所述的方法,其中,所述方法还包括:
从所述第一软件转发表项及其关联表项的各字段中选择出现次数最多的字段作为关键字段。
7.一种云网络中的硬件转发设备,其中,包括:
软件配置模块,位于所述硬件转发设备的处理芯片,被配置为接收所述云网络中管控系统下发的第一软件转发表项;基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中,并记录所述第一软件转发表项的状态为配置就绪;判断所述第一软件转发表项及其关联表项的状态是否均配置就绪;在所述第一软件转发表项及其关联表项的状态均配置就绪时,将所述合并表项下发给所述硬件转发设备的硬件芯片上的硬件转发模块;
所述硬件转发模块,被配置为基于所述合并表项配置硬件转发表项。
8.根据权利要求7所述的硬件转发设备,其中,所述软件配置模块中基于所述第一软件转发表项中的字段与预设的关键字段之间的对应关系,将所述第一软件转发表项写入合并表项中的部分,被配置为:
在所述第一软件转发表项中包括所述关键字段时,基于第一软件转发表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
在所述第一软件转发表项中不包括所述关键字段时,基于第一软件转发表项对应的生成表项中的关键字段,将所述第一软件转发表项写入所述合并表项中;
其中,所述第一软件转发表项对应的生成表项由其他软件转发表项生成,包括所述关键字段和所述第一软件转发表项中的字段。
9.一种可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现权利要求1至8任一项所述的方法步骤。
10.一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现权利要求1至8任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210288025.0A CN114844832B (zh) | 2022-03-22 | 2022-03-22 | 硬件转发表项配置方法、设备、介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210288025.0A CN114844832B (zh) | 2022-03-22 | 2022-03-22 | 硬件转发表项配置方法、设备、介质及产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114844832A true CN114844832A (zh) | 2022-08-02 |
CN114844832B CN114844832B (zh) | 2024-06-25 |
Family
ID=82562623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210288025.0A Active CN114844832B (zh) | 2022-03-22 | 2022-03-22 | 硬件转发表项配置方法、设备、介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114844832B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030083864A (ko) * | 2002-04-22 | 2003-11-01 | 한국전자통신연구원 | 고속 라우터 시스템에서 분산 포워딩 테이블 처리방법 |
US20040001485A1 (en) * | 2002-06-27 | 2004-01-01 | Frick John Kevin | Methods and systems for hitless restart of layer 3 packet forwarding |
CN103825818A (zh) * | 2014-02-14 | 2014-05-28 | 杭州华三通信技术有限公司 | 一种多拓扑网络转发方法和装置 |
CN105591923A (zh) * | 2015-10-28 | 2016-05-18 | 杭州华三通信技术有限公司 | 一种转发表项的存储方法和装置 |
CN107547399A (zh) * | 2017-05-31 | 2018-01-05 | 新华三技术有限公司 | 一种组播转发表项的处理方法和pe设备 |
WO2018192587A1 (zh) * | 2017-04-21 | 2018-10-25 | 中兴通讯股份有限公司 | 一种查表方法及装置、计算机存储介质 |
CN110134613A (zh) * | 2019-05-22 | 2019-08-16 | 北京航空航天大学 | 一种基于代码语义及背景信息的软件缺陷数据采集系统 |
US20200142669A1 (en) * | 2018-11-06 | 2020-05-07 | International Business Machines Corporation | Controlling storage accesses for merge operations |
CN111222145A (zh) * | 2019-10-15 | 2020-06-02 | 中国直升机设计研究所 | 一种数据单向输入系统及方法 |
-
2022
- 2022-03-22 CN CN202210288025.0A patent/CN114844832B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030083864A (ko) * | 2002-04-22 | 2003-11-01 | 한국전자통신연구원 | 고속 라우터 시스템에서 분산 포워딩 테이블 처리방법 |
US20040001485A1 (en) * | 2002-06-27 | 2004-01-01 | Frick John Kevin | Methods and systems for hitless restart of layer 3 packet forwarding |
CN103825818A (zh) * | 2014-02-14 | 2014-05-28 | 杭州华三通信技术有限公司 | 一种多拓扑网络转发方法和装置 |
CN105591923A (zh) * | 2015-10-28 | 2016-05-18 | 杭州华三通信技术有限公司 | 一种转发表项的存储方法和装置 |
WO2018192587A1 (zh) * | 2017-04-21 | 2018-10-25 | 中兴通讯股份有限公司 | 一种查表方法及装置、计算机存储介质 |
CN108737278A (zh) * | 2017-04-21 | 2018-11-02 | 中兴通讯股份有限公司 | 一种查表方法及装置 |
CN107547399A (zh) * | 2017-05-31 | 2018-01-05 | 新华三技术有限公司 | 一种组播转发表项的处理方法和pe设备 |
US20200142669A1 (en) * | 2018-11-06 | 2020-05-07 | International Business Machines Corporation | Controlling storage accesses for merge operations |
CN112930532A (zh) * | 2018-11-06 | 2021-06-08 | 国际商业机器公司 | 控制合并操作的存储访问 |
CN110134613A (zh) * | 2019-05-22 | 2019-08-16 | 北京航空航天大学 | 一种基于代码语义及背景信息的软件缺陷数据采集系统 |
CN111222145A (zh) * | 2019-10-15 | 2020-06-02 | 中国直升机设计研究所 | 一种数据单向输入系统及方法 |
Non-Patent Citations (2)
Title |
---|
杜旭, 杨明, 周宗照: "路由器软硬件转发表同步的设计与Linux实现", 计算机应用研究, no. 10 * |
王锦山;: "一种新的层三交换表查找引擎", 微电子学与计算机, no. 01 * |
Also Published As
Publication number | Publication date |
---|---|
CN114844832B (zh) | 2024-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8386515B2 (en) | Persistent querying in a federated database system | |
US11086694B2 (en) | Method and system for scalable complex event processing of event streams | |
CN113515545B (zh) | 数据查询方法、装置、系统、电子设备以及存储介质 | |
CN112527848B (zh) | 基于多数据源的报表数据查询方法、装置、系统及存储介质 | |
CN110489440B (zh) | 数据查询方法和装置 | |
CN110737682A (zh) | 一种缓存操作方法、装置、存储介质和电子设备 | |
TW201401210A (zh) | 業務對象推送的方法以及裝置 | |
US10965750B2 (en) | Distributed management of dynamic processing element connections in streaming applications | |
CN111737564A (zh) | 一种信息查询方法、装置、设备及介质 | |
CN111984849A (zh) | 一种信息查询方法、装置、设备及介质 | |
US20140129598A1 (en) | Dynamic management of log persistence | |
CN111581049A (zh) | 分布式系统运行状态监测方法、装置、设备及存储介质 | |
CN109582242B (zh) | 级联存储阵列系统的地址确定方法、装置、电子设备 | |
CN113886455A (zh) | 全局唯一序列号生成方法、装置、电子设备及存储介质 | |
CN114844832B (zh) | 硬件转发表项配置方法、设备、介质及产品 | |
CN113377817A (zh) | 数据处理方法、系统、设备及存储介质 | |
CN108255434A (zh) | 标签管理方法、管理装置及计算机可读存储介质 | |
CN101547209A (zh) | 一种信息表项的更新方法和设备 | |
CN110188140A (zh) | 数据拉取方法、装置、存储介质和计算机设备 | |
CN109246035A (zh) | 一种数据传输管理的方法及装置 | |
CN110674068B (zh) | 一种板卡间的信息交互方法、分布式板卡及存储介质 | |
CN113988992A (zh) | 订单信息发送方法、装置、电子设备和计算机可读介质 | |
CN113868687A (zh) | 一种任务处理进度的管理方法和装置 | |
CN112165527A (zh) | 文件分发方法、文件分发装置和电子设备 | |
CN109309583B (zh) | 基于分布式系统的信息获取方法、装置、电子设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |