CN106789672B - 一种报文路由处理方法及装置 - Google Patents
一种报文路由处理方法及装置 Download PDFInfo
- Publication number
- CN106789672B CN106789672B CN201710037773.0A CN201710037773A CN106789672B CN 106789672 B CN106789672 B CN 106789672B CN 201710037773 A CN201710037773 A CN 201710037773A CN 106789672 B CN106789672 B CN 106789672B
- Authority
- CN
- China
- Prior art keywords
- message
- target
- routing
- information
- source
- 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.)
- Active
Links
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
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- 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/02—Topology update or discovery
Abstract
本发明提供了一种报文路由处理方法及装置,报文路由处理方法包括:接收通信驱动软件模块发送的报文接收指示以及接收报文信息;从独立内存块中读取路由配置数据列表,并在路由配置数据列表中查找是否存在接收报文信息对应的路由关系;若在路由配置数据列表中查找到接收报文信息对应的路由关系,从接收报文信息对应的路由关系中获取目标报文的信息;发送目标报文的信息至通信驱动软件模块;通信驱动软件模块根据目标报文的信息,发送目标报文至目标网络。本发明降低了软件风险控制难度,并且缩短了路由功能的开发周期。
Description
技术领域
本发明涉及汽车ECU(电子控制单元,Electronic Control Unit)软件和硬件设计领域,特别涉及一种报文路由处理方法及装置。
背景技术
对于汽车中具备网关功能的ECU(电子控制单元,Electronic Control Unit),路由功能(包括报文路由(从源网络接收源报文,根据源报文的标识获取目标报文的标识,并根据目标报文的标识将目标报文路由至目标网络)和信号路由)是其主要的功能之一。
其中,目前有两种方式实现报文路由,具体为:第一种:一个路由函数实现一对报文路由关系,路由表最终体现为一系列的路由函数,其中路由表存储在上层应用中。在某个(底层通信驱动软件的)报文接收回调函数中调用相应的路由函数实现该报文路由功能;
第二种:一个源报文-目标报文的配置项体现一对报文路由关系,路由表最终体现为一张体现报文路由关系的配置项列表,其中配置项列表存储在上层应用中。配置项列表中的每个源报文-目标报文的配置项有两个关键的变量:一个是源报文的ID(身份标识);另一个是目标报文的ID。源报文的ID和目标报文的ID均由底层通信驱动软件模块提供。在底层通信驱动软件提供的统一的接收回调函数中调用处理源报文-目标报文配置项列表的函数实现报文路由功能。
由于第一种方式中某个具体的路由函数由一个相应的报文接收回调函数调用,因此底层通信驱动软件发生变更时,上层应用的路由函数也需要发生相应的变动;由于第二种方式中,配置项列表中的源报文的ID和目标报文的ID均来至底层通信驱动软件模块,因此一旦底层驱动模块发生变更,配置项列表也随之变更。
由上可见,两种实现报文路由的方式存在的缺陷为:上层应用和底层通信驱动软件的耦合性较强,两者独立性差,增加了软件风险控制难度,并且在路由表发生变化时,整个软件工程需要重新编译,延长了路由功能的开发周期。
发明内容
为解决上述技术问题,本申请实施例提供一种报文路由处理方法及装置,以达到降低软件风险控制难度,并且缩短路由功能的开发周期的目的,技术方案如下:
一种报文路由处理方法,包括:
接收通信驱动软件模块发送的报文接收指示以及接收报文信息;
从独立内存块中读取路由配置数据列表,并在所述路由配置数据列表中查找是否存在所述接收报文信息对应的路由关系;
若在所述路由配置数据列表中查找到所述接收报文信息对应的路由关系,则从所述接收报文信息对应的路由关系中获取目标报文的信息;
发送所述目标报文的信息至所述通信驱动软件模块;
所述通信驱动软件模块根据所述目标报文的信息,发送目标报文至目标网络。
优选的,所述路由配置数据列表的生成过程包括:
提取路由表中各个源报文的源报文信息,所述源报文信息包括接收的通道,源报文ID,源报文最小长度;
根据各个所述源报文ID生成源报文标识列表,并根据所述源报文标识列表生成哈希查找表;
根据所述源报文标识列表和所述哈希查找表,生成各个源报文的接收标识;
提取所述路由表中各个目标报文的目标报文信息,所述目标报文信息包括:目标报文的数量、发送的通道、目标报文ID和目标报文长度,其中各个所述目标报文的目标报文ID,组成目标报文ID列表;
按照预设原则为各个所述目标报文分配目标报文发送标识,并从各个目标报文的目标报文信息中获取各个所述目标报文的发送通道标识和每个源报文对应的目标报文的数量;
提取所述路由表中的源报文-目标报文路由关系;
根据所述源报文-目标报文路由关系、各个所述源报文的源报文最小长度、各个所述源报文的接收标识、所述每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文发送标识,生成所述路由配置数据列表。
优选的,所述路由配置数据列表的刷写过程,包括:
将所述路由配置数据列表单独刷写到所述独立内存块中;
所述路由配置数据列表的更新过程,包括:
根据所述路由表更新所述路由配置数据列表,并将更新后的路由配置数据列表刷写到所述独立内存块中。
优选的,在所述路由配置数据列表中查找是否存在所述接收报文信息对应的路由关系包括:
采用哈希算法在所述哈希查找表中查找是否存在所述接收报文信息对应的接收报文的位置记录;
若在所述哈希查找表中查找到所述接收报文信息对应的接收报文的位置记录,则从所述哈希查找表中获取所述接收报文信息对应的接收报文的位置记录;
根据所述接收报文信息对应的接收报文的位置记录,在所述源报文标识列表中查找出接收标识;
在所述路由配置数据列表中查找是否存在查找出的接收标识对应的路由关系。
优选的,从所述接收报文信息对应的路由关系中获取目标报文的信息,包括:
从所述查找出的接收标识对应的路由关系中,获取所述每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文发送标识。
一种报文路由处理装置,包括:
接收模块,用于接收通信驱动软件模块发送的报文接收指示以及接收报文信息;
读取模块,用于从独立内存块中读取路由配置数据列表;
查找模块,用于在所述路由配置数据列表中查找是否存在所述接收报文信息对应的路由关系,若在所述路由配置数据列表中查找到所述接收报文信息对应的路由关系,则执行获取模块从所述接收报文信息对应的路由关系中获取目标报文的信息;
发送模块,用于发送所述目标报文的信息至所述通信驱动软件模块;
所述通信驱动软件模块,用于发送所述报文接收指示以及所述接收报文信息,并根据所述目标报文的信息,发送目标报文至目标网络。
优选的,还包括:生成模块,所述生成模块包括:
第一提取单元,用于提取路由表中各个源报文的源报文信息,所述源报文信息包括接收的通道,源报文ID,源报文最小长度;
第一生成单元,用于根据各个所述源报文ID生成源报文标识列表,并根据所述源报文标识列表生成哈希查找表;
第二生成单元,用于根据所述源报文标识列表和所述哈希查找表,生成各个源报文的接收标识;
第二提取单元,用于提取所述路由表中各个目标报文的目标报文信息,所述目标报文信息包括:目标报文的数量、发送的通道、目标报文ID和目标报文长度,其中各个所述目标报文的目标报文ID,组成目标报文ID列表;
分配单元,用于按照预设原则为各个所述目标报文分配目标报文发送标识;
第一获取单元,用于从各个目标报文的目标报文信息中获取各个所述目标报文的发送通道标识和每个源报文对应的目标报文的数量;
第三提取单元,用于提取所述路由表中的源报文-目标报文路由关系;
第三生成单元,用于根据所述源报文-目标报文路由关系、各个所述源报文的源报文最小长度、各个所述源报文的接收标识、所述每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文发送标识,生成所述路由配置数据列表。
优选的,还包括:
刷写模块,用于将所述路由配置数据列表单独刷写到所述独立内存块中;
更新模块,用于根据所述路由表更新所述路由配置数据列表,并将更新后的路由配置数据列表刷写到所述独立内存块中。
优选的,所述查找模块包括:
第一查找单元,用于采用哈希算法在所述哈希查找表中查找是否存在所述接收报文信息对应的接收报文的位置记录,若在所述哈希查找表中查找到所述接收报文信息对应的接收报文的位置记录,则执行第二获取单元从所述哈希查找表中获取所述接收报文信息对应的接收报文的位置记录;
第二查找单元,用于根据所述接收报文信息对应的接收报文的位置记录,在所述源报文标识列表中查找出接收标识;
第三查找单元,用于在所述路由配置数据列表中查找是否存在查找出的接收标识对应的路由关系。
优选的,所述获取模块包括:
第三获取单元,用于从所述查找出的接收标识对应的路由关系中,获取所述每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文发送标识。
与现有技术相比,本申请的有益效果为:
在本申请中,接收通信驱动软件模块发送的报文接收指示以及接收报文信息;及,从独立内存块中读取路由配置数据列表,并在所述路由配置数据列表中查找是否存在所述接收报文信息对应的路由关系;及,若在所述路由配置数据列表中查找到所述接收报文信息对应的路由关系,从所述接收报文信息对应的路由关系中获取目标报文的信息;及,发送所述目标报文的信息至所述通信驱动软件模块由上层应用模块执行,由于路由配置数据列表由上层应用模块单独管理,且路由关系由上层应用模块确定,通信驱动软件模块的变更不再影响上层应用模块的执行,因此降低了通信驱动软件模块和上层应用模块的耦合性,提高了两者的独立性,从而降低了软件风险控制难度。
并且,由于路由配置数据列表存储在单独内存块中,与其他应用程序和数据分离,因此在路由配置数据列表发生变化时,只需要更新路由配置数据列表,整个软件工程不需要重新编译,缩短了路由功能的开发周期。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的报文路由处理方法的一种流程图;
图2是本申请提供的路由配置数据列表的生成过程的流程示意图;
图3是本申请提供的报文路由处理方法的一种子流程图;
图4是本申请提供的报文路由处理装置的一种逻辑结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
请参见图1,其示出了本申请提供的报文路由处理方法的一种流程图,可以包括以下步骤:
步骤S11:接收通信驱动软件模块发送的报文接收指示以及接收报文信息。
在本实施例中,由通信驱动软件模块完成报文接收。其中,通信驱动软件模块在接收到报文时,通过接收指示回调函数通知上层应用模块,在本实施例中记为Router模块,并将接收到的报文的接收报文信息发送至Router模块。
其中,接收报文信息包括:接收物理通道,报文ID、报文数据长度和报文数据。
需要说明的是,通信驱动软件模块需要保证:能够接受全部ID的报文:通信驱动软件模块必须被配置成能接收全部的ID,且向Router模块提供统一的接收指示函数并将接收报文信息(ID和数据)传递给Router模块;能够发送全部ID的报文:通信驱动软件模块必须向Router模块提供能够发送任意ID和任意长度报文的接口。
步骤S12:从独立内存块中读取路由配置数据列表,并在所述路由配置数据列表中查找是否存在所述接收报文信息对应的路由关系。
若是,则执行步骤S13。
在本实施例中,路由配置数据列表单独存储在独立内存块中,即独立内存块仅用于存储路由配置数据列表。其中,独立内存块包括一个或多个连续的内存块。
路由配置数据列表存放在ECU中单独的内存块中。路由配置数据列表存放在ECU中单独的内存块中,可以实现路由配置数据列表的单独刷写。
ECU中除路由配置数据列表之外的其他程序及数据存储在与路由配置数据列表的存储内存块不同的内存块中。
其中,核心代码和路由配置数据列表共同组成上述上层应用模块,共同用于实现报文路由功能。其中,需要说明的是,核心代码并未与路由配置数据列表存储在同一个内存块中,而是存储在其他内存块中。
步骤S13:从所述接收报文信息对应的路由关系中获取目标报文的信息。
从所述接收报文信息对应的路由关系中获取到的目标报文的信息至少包括:目标报文的发送通道标识、各个所述目标报文发送标识和报文长度。
步骤S14:发送所述目标报文的信息至所述通信驱动软件模块。
步骤S15:所述通信驱动软件模块根据所述目标报文的信息,发送目标报文至目标网络。
具体的,通信驱动软件模块可以根据目标报文发送标识从目标报文ID列表中获取到目标报文的ID。在获取到目标报文的ID后,根据目标报文的发送通道标识、目标报文的ID和报文长度,发送目标报文至目标网络。
在本申请中,接收通信驱动软件模块发送的报文接收指示以及接收报文信息;及,从独立内存块中读取路由配置数据列表,并在所述路由配置数据列表中查找是否存在所述接收报文信息对应的路由关系;及,若在所述路由配置数据列表中查找到所述接收报文信息对应的路由关系,从所述接收报文信息对应的路由关系中获取目标报文的信息;及,发送所述目标报文的信息至所述通信驱动软件模块由上层应用模块执行,由于路由配置数据列表由上层应用模块单独管理,且路由关系由上层应用模块确定,通信驱动软件模块的变更不再影响上层应用模块的执行,因此降低了通信驱动软件模块和上层应用模块的耦合性,提高了两者的独立性,从而降低了软件风险控制难度。
并且,由于路由配置数据列表存储在单独内存块中,与其他应用程序和数据分离,因此在路由配置数据列表发生变化时,只需要更新路由配置数据列表,整个软件工程不需要重新编译,缩短了路由功能的开发周期。
在本实施例中,路由配置数据列表的生成过程可以参见图2,可以包括以下步骤:
步骤S21:提取路由表中各个源报文的源报文信息。
所述源报文信息包括接收的通道,源报文ID,源报文最小长度。
步骤S22:根据各个所述源报文ID生成源报文标识列表,并根据所述源报文标识列表生成哈希查找表。
其中,根据各个所述源报文ID生成源报文标识列表的具体过程为:将各个所述源报文ID按照从小到大的顺序排列,生成源报文标识列表。
根据所述源报文标识列表生成哈希查找表的具体过程为:
首先:将哈希查找表中所有元素的值设置为0xFFFFFFFFu;
其次:将根据如下算法逐个地将源报文标识列表中的源报文的ID赋值给哈希查找表的元素:
HashTable[SourceIDTable[i]%x]=SourceIDTable[i];
其中i的取值范围[0,SourceIDNum-1](从0到源报文ID数量减1);x为任意两个源报文对x求余均不相同的最小整数,%为取余运算符号。
其中,HashTable为哈希查找表,SourceIDTable为源报文标识列表,SourceIDNum为源报文标识列表中的源报文ID数量。
步骤S23:根据所述源报文标识列表和所述哈希查找表,生成各个源报文的接收标识。
根据所述源报文标识列表和所述哈希查找表,生成各个源报文的接收标识的过程为:获取各个源报文在哈希查找表(HashTable)的位置记录为RxPosition;利用关系式RxHandle=SourceIDTable[RxPosition]确定各个源报文的接收标识。其中,RxHandle为源报文的接收标识。
步骤S24:提取所述路由表中各个目标报文的目标报文信息,所述目标报文信息包括:目标报文的数量、发送的通道、目标报文ID和目标报文长度。
其中,各个所述目标报文的目标报文ID,组成目标报文ID列表。
各个所述目标报文的目标报文ID,组成目标报文ID列表的具体过程为:按照一定的顺序(如从小到大排序)对各个所述目标报文的目标报文ID进行排列,得到目标报文ID列表。
需要说明的是,目标报文ID列表并不包含在将要生成的路由配置数据列表中,目标报文ID列表为单独的一个列表。将目标报文ID列表设置为单独的列表的原因在于:因为目标报文的ID有两种格式的:标准帧格式和扩展帧格式;如果将目标报文ID放在将要生成的路由配置数据列表中,会导致将要生成的路由配置数据列表的数据结构变得复杂,因此为了避免将要生成的路由配置数据列表的数据结构变得复杂,将目标报文ID列表设置为单独的列表。
步骤S25:按照预设原则为各个所述目标报文分配目标报文发送标识,并从各个目标报文的目标报文信息中获取各个所述目标报文的发送通道标识和每个源报文对应的目标报文的数量。
各个所述目标报文的发送通道标识和每个源报文对应的目标报文的数量从步骤S24中的目标报文信息中获取即可。
目标报文发送标识与目标报文的ID存在映射关系,根据目标报文发送标识可以从目标报文ID列表中获取到相应的目标报文的ID。
发送通道标识是为物理通道的逻辑编号(从0开始,依次递增);如网关有8个物理通道,分别为Phy0,Phy1,Phy2…Phy7;实际使用了5个物理通道Phy1,Phy2,Phy4,Phy6,Phy7,为这5个通道编号为L0,L1,L2,L3,L4。L0,L1,L2,L3,L4为逻辑通道编号即发送通道标识。如发送到目标通道L1,即发送到物理通道Phy2。
步骤S26:提取所述路由表中的源报文-目标报文路由关系。
步骤S27:根据所述源报文-目标报文路由关系、各个所述源报文的源报文最小长度、各个所述源报文的接收标识、所述每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文发送标识,生成所述路由配置数据列表。
根据所述源报文-目标报文路由关系、各个所述源报文的源报文最小长度、各个所述源报文的接收标识、所述每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文发送标识,生成所述路由配置数据列表的具体过程为:首先,根据各个所述源报文的源报文最小长度判断各个源报文是否合法,在源报文合法的情况下,根据所述源报文-目标报文路由关系,建立所述源报文的接收标识与所述每个源报文对应的目标报文的数量、所述目标报文的发送通道标识和各个所述目标报文发送标识的路由映射关系,生成所述路由配置数据列表。
需要说明的是,路由配置数据列表是路由表的代码表示,路由配置数据列表可以被存储和识别。
路由表和路由配置数据列表是数据上的1:1关系,路由配置数据列表是标准的文件格式,可通过标准化路由表的文件格式,促成路由表到路由配置数据列表的自动化生成工具的开发,从而提高路由功能的开发效率,减少开发时间,提高路由表功能实现的准确性,减少验证时间和成本,从而降低开发成本和时间。
在上述报文路由处理方法中,路由配置数据列表的刷写过程,具体可以为:将所述路由配置数据列表单独刷写到所述独立内存块中。
在上述报文路由处理方法中,路由配置数据列表的更新过程,具体可以为:根据所述路由表更新所述路由配置数据列表,并将更新后的路由配置数据列表刷写到所述独立内存块中。
在上述报文路由处理方法中,在所述路由配置数据列表中查找是否存在所述接收报文信息对应的路由关系的具体过程请参见图3,可以包括以下步骤:
步骤S31:采用哈希算法在所述哈希查找表中查找是否存在所述接收报文信息对应的接收报文的位置记录。
若存在,则执行步骤S32。
其中,采用哈希算法在所述哈希查找表中查找是否存在所述接收报文信息对应的接收报文的位置记录,最多两步即可在哈希查找表中查找到是否存在所述接收报文信息对应的接收报文的位置记录,从而提高了报文路由的效率,减少了报文路由的延迟时间。
在本实施例中,采用哈希算法在所述哈希查找表中查找是否存在所述接收报文信息对应的接收报文的位置记录的具体过程为:判断RxID和HashTable[RxID%x]是否相等,若相等,则说明哈希查找表中存在所述接收报文信息对应的接收报文的位置记录。
其中,RxID为接收报文的ID,x为任意两个源报文对x求余均不相同的最小整数。
步骤S32:从所述哈希查找表中获取所述接收报文信息对应的接收报文的位置记录。
从所述哈希查找表中获取到的所述接收报文信息对应的接收报文的位置记录为:RxPosition=RxID%x。
步骤S33:根据所述接收报文信息对应的接收报文的位置记录,在所述源报文标识列表中查找出接收标识。
根据所述接收报文信息对应的接收报文的位置记录,在所述源报文标识列表中查找出接收标识的具体过程为:将所述接收报文信息对应的接收报文的位置记录赋值给关系式RxHandle=SourceIDTable[RxPosition]中的RxPosition,在所述源报文标识列表中查找出接收标识。
步骤S34:在所述路由配置数据列表中查找是否存在查找出的接收标识对应的路由关系。
若存在,则执行步骤S13。
其中,在所述路由配置数据列表中查找到存在查找出的接收标识对应的路由关系,则从所述接收报文信息对应的路由关系中获取目标报文的信息具体为:从所述查找出的接收标识对应的路由关系中,获取所述每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文发送标识。
在从所述查找出的接收标识对应的路由关系中,获取到所述每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文发送标识之后,发送每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文发送标识至通信驱动软件模块,通信驱动软件模块会在目标报文ID列表中查找到各个所述目标报文发送标识对应的目标报文的ID,并根据所述每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文的ID,发送目标报文至目标网络。
实施例二
与上述方法实施例相对应,本实施例提供了一种报文路由处理装置,请参见图4,报文路由处理装置包括:接收模块41、读取模块42、查找模块43、获取模块44、发送模块45和通信驱动软件模块46。
接收模块41,用于接收通信驱动软件模块46发送的报文接收指示以及接收报文信息。
读取模块42,用于从独立内存块中读取路由配置数据列表。
查找模块43,用于在所述路由配置数据列表中查找是否存在所述接收报文信息对应的路由关系,若在所述路由配置数据列表中查找到所述接收报文信息对应的路由关系,则执行获取模块44从所述接收报文信息对应的路由关系中获取目标报文的信息。
发送模块45,用于发送所述目标报文的信息至所述通信驱动软件模块46。
通信驱动软件模块46,用于发送所述报文接收指示以及所述接收报文信息,并根据所述目标报文的信息,发送目标报文至目标网络。
在本实施例中,上述报文路由处理装置还包括:生成模块。
生成模块具体包括:第一提取单元、第一生成单元、第二生成单元、第二提取单元、第三生成单元、分配单元、第一获取单元、第三提取单元和第四生成单元。
第一提取单元,用于提取路由表中各个源报文的源报文信息,所述源报文信息包括接收的通道,源报文ID,源报文最小长度。
第一生成单元,用于根据各个所述源报文ID生成源报文标识列表,并根据所述源报文标识列表生成哈希查找表。
第二生成单元,用于根据所述源报文标识列表和所述哈希查找表,生成各个源报文的接收标识。
第二提取单元,用于提取所述路由表中各个目标报文的目标报文信息,所述目标报文信息包括:目标报文的数量、发送的通道、目标报文ID和目标报文长度,其中各个所述目标报文的目标报文ID,组成目标报文ID列表。
分配单元,用于按照预设原则为各个所述目标报文分配目标报文发送标识。
第一获取单元,用于从各个目标报文的目标报文信息中获取各个所述目标报文的发送通道标识和每个源报文对应的目标报文的数量。
第三提取单元,用于提取所述路由表中的源报文-目标报文路由关系。
第三生成单元,用于根据所述源报文-目标报文路由关系、各个所述源报文的源报文最小长度、各个所述源报文的接收标识、所述每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文发送标识,生成所述路由配置数据列表。
在本实施例中,上述报文路由处理装置还包括:刷写模块,用于将所述路由配置数据列表单独刷写到所述独立内存块中。
在本实施例中,上述报文路由处理装置还包括:更新模块,用于根据所述路由表更新所述路由配置数据列表,并将更新后的路由配置数据列表刷写到所述独立内存块中。
在本实施例中,上述报文路由处理装置中的查找模块43具体包括:第一查找单元、第二获取单元、第二查找单元和第三查找单元。
第一查找单元,用于采用哈希算法在所述哈希查找表中查找是否存在所述接收报文信息对应的接收报文的位置记录,若在所述哈希查找表中查找到所述接收报文信息对应的接收报文的位置记录,则执行第二获取单元从所述哈希查找表中获取所述接收报文信息对应的接收报文的位置记录。
第二查找单元,用于根据所述接收报文信息对应的接收报文的位置记录,在所述源报文标识列表中查找出接收标识。
第三查找单元,用于在所述路由配置数据列表中查找是否存在查找出的接收标识对应的路由关系。
在本实施例中,上述报文路由处理装置中的获取模块44具体包括:
第三获取单元,用于从所述查找出的接收标识对应的路由关系中,获取所述每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文发送标识。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种报文路由处理方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种报文路由处理方法,其特征在于,包括:
上层应用模块接收通信驱动软件模块发送的报文接收指示以及接收报文信息;
所述上层应用模块从独立内存块中读取路由配置数据列表,并在所述路由配置数据列表中查找是否存在所述接收报文信息对应的路由关系;所述路由配置数据列表的生成过程包括:提取路由表中各个源报文的源报文信息,所述源报文信息包括接收的通道,源报文ID,源报文最小长度;根据各个所述源报文ID生成源报文标识列表,并根据所述源报文标识列表生成哈希查找表;根据所述源报文标识列表和所述哈希查找表,生成各个源报文的接收标识;提取所述路由表中各个目标报文的目标报文信息,所述目标报文信息包括:目标报文的数量、发送的通道、目标报文ID和目标报文长度,其中各个所述目标报文的目标报文ID,组成目标报文ID列表;按照预设原则为各个所述目标报文分配目标报文发送标识,并从各个目标报文的目标报文信息中获取各个所述目标报文的发送通道标识和每个源报文对应的目标报文的数量;提取所述路由表中的源报文-目标报文路由关系;根据所述源报文-目标报文路由关系、各个所述源报文的源报文最小长度、各个所述源报文的接收标识、所述每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文发送标识,生成所述路由配置数据列表;
所述上层应用模块若在所述路由配置数据列表中查找到所述接收报文信息对应的路由关系,则从所述接收报文信息对应的路由关系中获取目标报文的信息;
所述上层应用模块发送所述目标报文的信息至所述通信驱动软件模块;
所述通信驱动软件模块根据所述目标报文的信息,发送目标报文至目标网络。
2.根据权利要求1所述的方法,其特征在于,所述路由配置数据列表的刷写过程,包括:
将所述路由配置数据列表单独刷写到所述独立内存块中;
所述路由配置数据列表的更新过程,包括:
根据所述路由表更新所述路由配置数据列表,并将更新后的路由配置数据列表刷写到所述独立内存块中。
3.根据权利要求2所述的方法,其特征在于,在所述路由配置数据列表中查找是否存在所述接收报文信息对应的路由关系包括:
采用哈希算法在所述哈希查找表中查找是否存在所述接收报文信息对应的接收报文的位置记录;
若在所述哈希查找表中查找到所述接收报文信息对应的接收报文的位置记录,则从所述哈希查找表中获取所述接收报文信息对应的接收报文的位置记录;
根据所述接收报文信息对应的接收报文的位置记录,在所述源报文标识列表中查找出接收标识;
在所述路由配置数据列表中查找是否存在查找出的接收标识对应的路由关系。
4.根据权利要求3所述的方法,其特征在于,从所述接收报文信息对应的路由关系中获取目标报文的信息,包括:
从所述查找出的接收标识对应的路由关系中,获取所述每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文发送标识。
5.一种报文路由处理装置,其特征在于,包括:上层应用模块及通信驱动软件模块,所述上层应用模块包括:生成模块、接收模块、读取模块、查找模块和发送模块;
所述生成模块包括:
第一提取单元,用于提取路由表中各个源报文的源报文信息,所述源报文信息包括接收的通道,源报文ID,源报文最小长度;
第一生成单元,用于根据各个所述源报文ID生成源报文标识列表,并根据所述源报文标识列表生成哈希查找表;
第二生成单元,用于根据所述源报文标识列表和所述哈希查找表,生成各个源报文的接收标识;
第二提取单元,用于提取所述路由表中各个目标报文的目标报文信息,所述目标报文信息包括:目标报文的数量、发送的通道、目标报文ID和目标报文长度,其中各个所述目标报文的目标报文ID,组成目标报文ID列表;
分配单元,用于按照预设原则为各个所述目标报文分配目标报文发送标识;
第一获取单元,用于从各个目标报文的目标报文信息中获取各个所述目标报文的发送通道标识和每个源报文对应的目标报文的数量;
第三提取单元,用于提取所述路由表中的源报文-目标报文路由关系;
第三生成单元,用于根据所述源报文-目标报文路由关系、各个所述源报文的源报文最小长度、各个所述源报文的接收标识、所述每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文发送标识,生成所述路由配置数据列表;
所述接收模块,用于接收所述通信驱动软件模块发送的报文接收指示以及接收报文信息;
所述读取模块,用于从独立内存块中读取路由配置数据列表;
所述查找模块,用于在所述路由配置数据列表中查找是否存在所述接收报文信息对应的路由关系,若在所述路由配置数据列表中查找到所述接收报文信息对应的路由关系,则执行获取模块从所述接收报文信息对应的路由关系中获取目标报文的信息;
所述发送模块,用于发送所述目标报文的信息至所述通信驱动软件模块;
所述通信驱动软件模块,用于发送所述报文接收指示以及所述接收报文信息,并根据所述目标报文的信息,发送目标报文至目标网络。
6.根据权利要求5所述的装置,其特征在于,还包括:
刷写模块,用于将所述路由配置数据列表单独刷写到所述独立内存块中;
更新模块,用于根据所述路由表更新所述路由配置数据列表,并将更新后的路由配置数据列表刷写到所述独立内存块中。
7.根据权利要求6所述的装置,其特征在于,所述查找模块包括:
第一查找单元,用于采用哈希算法在所述哈希查找表中查找是否存在所述接收报文信息对应的接收报文的位置记录,若在所述哈希查找表中查找到所述接收报文信息对应的接收报文的位置记录,则执行第二获取单元从所述哈希查找表中获取所述接收报文信息对应的接收报文的位置记录;
第二查找单元,用于根据所述接收报文信息对应的接收报文的位置记录,在所述源报文标识列表中查找出接收标识;
第三查找单元,用于在所述路由配置数据列表中查找是否存在查找出的接收标识对应的路由关系。
8.根据权利要求7所述的装置,其特征在于,所述获取模块包括:
第三获取单元,用于从所述查找出的接收标识对应的路由关系中,获取所述每个源报文对应的目标报文的数量、各个所述目标报文的发送通道标识和各个所述目标报文发送标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710037773.0A CN106789672B (zh) | 2017-01-18 | 2017-01-18 | 一种报文路由处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710037773.0A CN106789672B (zh) | 2017-01-18 | 2017-01-18 | 一种报文路由处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106789672A CN106789672A (zh) | 2017-05-31 |
CN106789672B true CN106789672B (zh) | 2020-08-04 |
Family
ID=58943420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710037773.0A Active CN106789672B (zh) | 2017-01-18 | 2017-01-18 | 一种报文路由处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106789672B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111181825B (zh) * | 2019-12-31 | 2021-12-21 | 智车优行科技(北京)有限公司 | 信息处理方法和装置、电子设备和存储介质 |
CN115022225B (zh) * | 2022-05-31 | 2023-11-10 | 东风电驱动系统有限公司 | 报文转发方法、装置、设备及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043428A (zh) * | 2006-05-30 | 2007-09-26 | 华为技术有限公司 | 一种路由转发的方法和系统 |
CN103198270A (zh) * | 2011-10-28 | 2013-07-10 | 通用汽车环球科技运作有限责任公司 | 使用清单来记录有效软件和校准的存在 |
CN103218569A (zh) * | 2011-10-28 | 2013-07-24 | 通用汽车环球科技运作有限责任公司 | 用以替换引导加载器公共密钥的方法 |
CN103295464A (zh) * | 2012-02-23 | 2013-09-11 | 北京四维图新科技股份有限公司 | 电子地图数据管理方法、装置及电子地图生成方法、装置 |
CN103874157A (zh) * | 2012-12-12 | 2014-06-18 | 华为技术有限公司 | 路由转发、建立路由表、和获取内容的方法及其装置 |
WO2015032216A1 (zh) * | 2013-09-09 | 2015-03-12 | 中兴通讯股份有限公司 | 路由查找方法及装置、B-Tree树结构的构建方法 |
CN105681199A (zh) * | 2015-12-29 | 2016-06-15 | 北京经纬恒润科技有限公司 | 一种车载总线中报文数据的处理方法及装置 |
-
2017
- 2017-01-18 CN CN201710037773.0A patent/CN106789672B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043428A (zh) * | 2006-05-30 | 2007-09-26 | 华为技术有限公司 | 一种路由转发的方法和系统 |
CN103198270A (zh) * | 2011-10-28 | 2013-07-10 | 通用汽车环球科技运作有限责任公司 | 使用清单来记录有效软件和校准的存在 |
CN103218569A (zh) * | 2011-10-28 | 2013-07-24 | 通用汽车环球科技运作有限责任公司 | 用以替换引导加载器公共密钥的方法 |
CN103295464A (zh) * | 2012-02-23 | 2013-09-11 | 北京四维图新科技股份有限公司 | 电子地图数据管理方法、装置及电子地图生成方法、装置 |
CN103874157A (zh) * | 2012-12-12 | 2014-06-18 | 华为技术有限公司 | 路由转发、建立路由表、和获取内容的方法及其装置 |
WO2015032216A1 (zh) * | 2013-09-09 | 2015-03-12 | 中兴通讯股份有限公司 | 路由查找方法及装置、B-Tree树结构的构建方法 |
CN105681199A (zh) * | 2015-12-29 | 2016-06-15 | 北京经纬恒润科技有限公司 | 一种车载总线中报文数据的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106789672A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6260059B1 (en) | Knowledge provider system and knowledge providing method utilizing plural knowledge provider agents which are linked by communication network and execute message processing using successive pattern matching operations | |
CN109951435B (zh) | 一种设备标识提供方法及装置和风险控制方法及装置 | |
CN108491715B (zh) | 终端指纹库的生成方法、装置和服务器 | |
CN106789672B (zh) | 一种报文路由处理方法及装置 | |
CN105099994A (zh) | 报文解析方法和装置 | |
CN111338712B (zh) | 基于物联网智能设备的规则实例执行方法、设备和介质 | |
CN107295503A (zh) | 确定移动终端接入方式的方法、存储介质及移动终端 | |
CN110390082B (zh) | 一种通信矩阵对比方法及系统 | |
WO2016041499A1 (zh) | 应用下载方法和移动终端 | |
EP2429132A1 (en) | Table creating and searching method used by network processor | |
CN109617950B (zh) | 一种数据更新方法、装置、设备及可读存储介质 | |
CN105338059A (zh) | 一种数据同步方法及移动终端 | |
CN110502574B (zh) | 跨系统的信息同步方法、用户设备、存储介质及装置 | |
CN111061453A (zh) | 一种用于app生态系统的语音交互方法、装置 | |
US20080167050A1 (en) | Method and system for managing user preferences for one or more software applications runing on a mobile computing device | |
CN111131484A (zh) | 节点挂载方法、装置、网络节点及存储介质 | |
CN108337317B (zh) | 一种处理路由请求的方法及装置 | |
CN104166554A (zh) | 一种支持多操作系统的软件开发方法及安装方法 | |
CN108259340B (zh) | 一种拓扑信息传输方法和装置 | |
CN111124649B (zh) | 一种生成app生态系统的方法、装置 | |
CN111181948B (zh) | 非标准报文驱动已有功能的方法及装置 | |
CN105978865B (zh) | 应用包名验证方法及装置 | |
CN111147618B (zh) | 一种通信方法、装置、电子设备和存储介质 | |
CN111026538B (zh) | 一种app生态系统建立、使用方法、装置 | |
JP2020123875A5 (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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 4 / F, building 1, No.14 Jiuxianqiao Road, Chaoyang District, Beijing 100020 Patentee after: Beijing Jingwei Hengrun Technology Co., Ltd Address before: 8 / F, block B, No. 11, Anxiang Beili, Chaoyang District, Beijing 100101 Patentee before: Beijing Jingwei HiRain Technologies Co.,Ltd. |