CN116760711A - 一种基于硬件隔离的虚拟网卡配置方法和装置 - Google Patents
一种基于硬件隔离的虚拟网卡配置方法和装置 Download PDFInfo
- Publication number
- CN116760711A CN116760711A CN202310921513.5A CN202310921513A CN116760711A CN 116760711 A CN116760711 A CN 116760711A CN 202310921513 A CN202310921513 A CN 202310921513A CN 116760711 A CN116760711 A CN 116760711A
- Authority
- CN
- China
- Prior art keywords
- system domain
- network card
- virtual
- virtual network
- domain
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000002955 isolation Methods 0.000 title claims abstract description 36
- 238000004891 communication Methods 0.000 claims abstract description 172
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100435070 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) APN2 gene Proteins 0.000 description 1
- 101100401199 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SAM2 gene Proteins 0.000 description 1
- 101100268779 Solanum lycopersicum ACO1 gene Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种基于硬件隔离的虚拟网卡配置方法和装置。该方法包括:将单个SOC进行硬件隔离,确定SOC上运行的物理系统域和虚拟系统域,在虚拟系统域布置虚拟网卡,将物理系统域作为虚拟网卡驱动后端,并根据虚拟系统域不同通信阶段进行虚拟网卡驱动后端切换,通过虚拟网卡驱动前端和虚拟网卡驱动后端的通信通道实现虚拟网卡前后端通信,能够同时满足虚拟网卡不同通信阶段的通信性能需求,实现了SOC运行多个操作系统域的功能,确保了每个操作系统域正常运行。
Description
技术领域
本发明涉及车载系统技术领域,特别是涉及一种基于硬件隔离的虚拟网卡配置方法和一种基于硬件隔离的虚拟网卡配置装置。
背景技术
随着人工智能和车联网技术的不断发展,座舱系统也朝着更加智能、更加复杂的人机交互方向发展。智能座舱(intelligent cabin)是一种数字化的汽车座舱,旨在集成多种IT和人工智能技术,打造全新的车内一体化数字平台,为驾驶员提供智能体验,能够从驾驶员的习惯、舒适度考虑,提供更舒适的驾驶体验。
当今的智能座舱解决方案中,多系统运行设备上往往只有一个物理网卡,成熟的网卡虚拟化能够解决系统间网络通信需求。
基于硬件隔离技术,单个系统级芯片(System On Chip,SOC)可隔离成两个或者更多操作系统场景中,物理网卡个数同样少于系统运行个数。不可避免地,其中某些操作系统会作为物理系统(Host OS),获取物理网卡权限,其他操作系统作为虚拟系统(Guest OS),使用虚拟网卡,与外界通信。
那么,在多系统运行设备上,哪些系统作为物理系统,哪些系统作为虚拟系统成为本领域技术人员亟待解决的重要课题。
发明内容
针对现有技术中的缺陷,本发明实施例提供了一种基于硬件隔离的虚拟网卡配置方法和一种基于硬件隔离的虚拟网卡配置装置。
第一方面,本发明实施例提供一种基于硬件隔离的虚拟网卡配置方法,应用于同一系统级芯片SOC,所述SOC被硬件隔离为多个操作系统域,所述多个操作系统域包括物理系统域和虚拟系统域,在所述虚拟系统域中布置虚拟网卡,在所述物理系统域中布置物理网卡,将所述虚拟系统域作为虚拟网卡驱动前端,将所述物理系统域作为虚拟网卡驱动后端,所述方法包括:
通过各所述操作系统域对应的镜像文件,启动各所述操作系统域;
针对每个虚拟系统域,所述物理系统域中与所述虚拟系统域对应的第一物理系统域对应的虚拟网卡驱动后端就绪后,将所述第一物理系统域作为所述虚拟系统域的宿主系统;
通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;
所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,根据优先级顺序,将所述虚拟系统域的宿主系统切换为所述第二物理系统域;
通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;
其中所述第一物理系统域的优先级大于所述第二物理系统域。
如上述方法,可选地,所述第一物理系统域的启动速度大于所述第二物理系统域。
如上述方法,可选地,所述通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信,包括:
通过共享内存完成虚拟网卡前端和虚拟网卡后端数据通信;
通过所述虚拟系统域和所述第一物理系统域之间的第一控制通道完成虚拟网卡前端和虚拟网卡后端控制指令通信;
相应地,所述通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信,包括:
通过所述共享内存完成虚拟网卡前端和虚拟网卡后端数据通信;
通过所述虚拟系统域和所述第二物理系统域之间的第二控制通道完成虚拟网卡前端和虚拟网卡后端控制指令通信。
如上述方法,可选地,所述通过共享内存完成虚拟网卡前端和虚拟网卡后端数据通信,包括:
所述虚拟网卡后端对应的物理系统域启动套接字缓存SKB包接收线程,通过共享内存完成虚拟网卡前端和虚拟网卡后端数据通信。
如上述方法,可选地,所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪,包括:
所述第二物理系统域对应的虚拟网卡驱动后端就绪后,通过所述第二控制通道向所述虚拟系统域发送虚拟网卡驱动后端就绪指令;
所述虚拟系统域接收到所述虚拟网卡驱动后端就绪指令后,确定所述第二物理系统域对应的虚拟网卡驱动后端就绪。
如上述方法,可选地,所述将所述第一物理系统域作为所述虚拟系统域的宿主系统之后,还包括:
将所述虚拟系统域的状态设置为第一物理系统域作为虚拟网卡驱动后端的第一状态;
相应地,所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,将所述虚拟系统域的状态设置为切换状态;
相应地,将所述虚拟系统域的宿主系统切换为所述第二物理系统域后,将所述虚拟系统域的状态设置为第二物理系统域作为虚拟网卡驱动后端的第二状态。
如上述方法,可选地,所述将所述虚拟系统域的宿主系统切换为所述第二物理系统域,包括:
确定所述虚拟系统域的状态为切换状态之后,判断所述共享内存中的当前套接字缓存SKB包是否已处理完成;
若处理完成,则将所述虚拟系统域的宿主系统切换为所述第二物理系统域;
否则,等待所述SKB包处理完成之后,再将所述虚拟系统域的宿主系统切换为所述第二物理系统域。
如上述方法,可选地,所述将所述虚拟系统域的宿主系统切换为所述第二物理系统域,包括:
切换所述第一物理系统域的内部状态,停止所述套接字缓存SKB包线程;
切换所述第二物理系统域的内部状态,启动所述套接字缓存SKB包线程。
如上述方法,可选地,所述多个操作系统域包括:仪表系统域、中控系统域和安全系统域,其中所述仪表系统域为虚拟系统域,所述安全系统域为第一物理系统域,所述中控系统域为第二物理系统域。
第二方面,本发明实施例提供一种基于硬件隔离的虚拟网卡配置装置,应用于同一系统级芯片SOC,所述SOC被硬件隔离为多个操作系统域,所述多个操作系统域包括物理系统域和虚拟系统域,在所述虚拟系统域中布置虚拟网卡,在所述物理系统域中布置物理网卡,将所述虚拟系统域作为虚拟网卡驱动前端,将所述物理系统域作为虚拟网卡驱动后端,所述装置包括:
启动模块,用于通过各所述操作系统域对应的镜像文件,启动各所述操作系统域;
配置模块,用于针对每个虚拟系统域,所述物理系统域中与所述虚拟系统域对应的第一物理系统域对应的虚拟网卡驱动后端就绪后,将所述第一物理系统域作为所述虚拟系统域的宿主系统;
第一通信模块,用于通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;
切换模块,用于所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,根据优先级顺序,将所述虚拟系统域的宿主系统切换为所述第二物理系统域;
第二通信模块,用于通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;
其中所述第一物理系统域的优先级大于所述第二物理系统域。
如上述装置,可选地,所述第一物理系统域的启动速度大于所述第二物理系统域。
如上述装置,可选地,所述第一通信模块包括:
数据通信单元,用于通过共享内存完成虚拟网卡前端和虚拟网卡后端数据通信;
控制通信单元,用于通过所述虚拟系统域和所述第一物理系统域之间的第一控制通道完成虚拟网卡前端和虚拟网卡后端控制指令通信;
相应地,所述第二通信模块具体用于:
数据通信单元,用于通过所述共享内存完成虚拟网卡前端和虚拟网卡后端数据通信;
控制通信单元,用于通过所述虚拟系统域和所述第二物理系统域之间的第二控制通道完成虚拟网卡前端和虚拟网卡后端控制指令通信。
如上述装置,可选地,所述数据通信单元具体用于:
所述虚拟网卡后端对应的物理系统域启动套接字缓存SKB包接收线程,通过共享内存完成虚拟网卡前端和虚拟网卡后端数据通信。
如上述装置,可选地,所述配置模块具体用于:
所述第二物理系统域对应的虚拟网卡驱动后端就绪后,通过所述第二控制通道向所述虚拟系统域发送虚拟网卡驱动后端就绪指令;
所述虚拟系统域接收到所述虚拟网卡驱动后端就绪指令后,确定所述第二物理系统域对应的虚拟网驱动卡后端就绪。
如上述装置,可选地,所述第一通信模块还用于:
将所述虚拟系统域的状态设置为第一物理系统域作为虚拟网卡驱动后端的第一状态;
相应地,所述切换模块还用于,将所述第一物理系统域作为所述虚拟系统域的宿主系统之后,将所述虚拟系统域的状态设置为切换状态;
相应地,所述切换模块还用于,将所述虚拟系统域的宿主系统切换为所述第二物理系统域后,将所述虚拟系统域的状态设置为第二物理系统域作为虚拟网卡驱动后端的第二状态。
如上述装置,可选地,所述切换模块具体用于:
确定所述虚拟系统域的状态为切换状态之后,判断所述共享内存中的当前套接字缓存SKB包是否已处理完成;
若处理完成,则将所述虚拟系统域的宿主系统切换为所述第二物理系统域;
否则,等待所述SKB包处理完成之后,再将所述虚拟系统域的宿主系统切换为所述第二物理系统域。
如上述装置,可选地,所述切换模块具体用于:
切换所述第一物理系统域的内部状态,停止所述套接字缓存SKB包线程;
切换所述第二物理系统域的内部状态,启动所述套接字缓存SKB包线程。
如上述装置,可选地,所述多个操作系统域包括:仪表系统域、中控系统域和安全系统域,其中所述仪表系统域为虚拟系统域,所述安全系统域为第一物理系统域,所述中控系统域为第二物理系统域。
第三方面,本发明实施例提供一种电子设备,包括:
系统级芯片SOC,所述SOC被硬件隔离为多个操作系统域,所述多个操作系统域包括物理系统域和虚拟系统域,在所述虚拟系统域中布置虚拟网卡,在所述物理系统域中布置物理网卡,将所述虚拟系统域作为虚拟网卡驱动前端,将所述物理系统域作为虚拟网卡驱动后端;以及与所述SOC通信连接的存储器;其中,所述存储器存储有可被所述SOC执行的程序指令,所述SOC调用所述程序指令能够执行如下方法:通过各所述操作系统域对应的镜像文件,启动各所述操作系统域;针对每个虚拟系统域,所述物理系统域中与所述虚拟系统域对应的第一物理系统域对应的虚拟网卡驱动后端就绪后,将所述第一物理系统域作为所述虚拟系统域的宿主系统;通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,根据优先级顺序,将所述虚拟系统域的宿主系统切换为所述第二物理系统域;通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;其中所述第一物理系统域的优先级大于所述第二物理系统域。
第四方面,本发明实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被系统级芯片SOC执行时实现如下方法:通过各操作系统域对应的镜像文件,启动各所述操作系统域;针对每个虚拟系统域,所述物理系统域中与所述虚拟系统域对应的第一物理系统域对应的虚拟网卡驱动后端就绪后,将所述第一物理系统域作为所述虚拟系统域的宿主系统;通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,根据优先级顺序,将所述虚拟系统域的宿主系统切换为所述第二物理系统域;通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;其中所述第一物理系统域的优先级大于所述第二物理系统域。
本发明实施例提供的基于硬件隔离的虚拟网卡配置方法,通过各操作系统域对应的镜像文件,启动各所述操作系统域;针对每个虚拟系统域,所述物理系统域中与所述虚拟系统域对应的第一物理系统域对应的虚拟网卡驱动后端就绪后,将所述第一物理系统域作为所述虚拟系统域的宿主系统;通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,根据优先级顺序,将所述虚拟系统域的宿主系统切换为所述第二物理系统域;通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;其中所述第一物理系统域的优先级大于所述第二物理系统域。本发明实施例通过将单个SOC进行硬件隔离,确定SOC上运行的物理系统域和虚拟系统域,在虚拟系统域布置虚拟网卡,将物理系统域作为虚拟网卡驱动后端,并根据虚拟系统域不同通信阶段进行虚拟网卡驱动后端切换,通过虚拟网卡驱动前端和虚拟网卡驱动后端的通信通道实现虚拟网卡前后端通信,能够同时满足虚拟网卡不同通信阶段的通信性能需求,实现了SOC运行多个操作系统域的功能,确保了每个操作系统域正常运行。
附图说明
图1是本发明的一种基于硬件隔离的虚拟网卡配置方法实施例的步骤流程图;
图2是本发明的一种基于硬件隔离的虚拟网卡配置系统结构示意图;
图3是本发明的另一种基于硬件隔离的虚拟网卡配置方法实施例的步骤流程图;
图4是本发明的一种基于硬件隔离的虚拟网卡配置装置实施例的结构框图;
图5是本发明的一种电子设备实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种基于硬件隔离的虚拟网卡配置方法实施例的步骤流程图,该方法应用于同一系统级芯片SOC,所述SOC被硬件隔离为多个操作系统域,所述多个操作系统域包括物理系统域和虚拟系统域,在所述虚拟系统域中布置虚拟网卡,在所述物理系统域中布置物理网卡,将所述虚拟系统域作为虚拟网卡驱动前端,将所述物理系统域作为虚拟网卡驱动后端,具体可以包括如下步骤:
步骤S110、通过所述M个操作系统域对应的镜像文件,启动所述M个操作系统域;
具体地,当今的智能座舱解决方案中,多系统运行设备上往往只有一个物理网卡,成熟的网卡虚拟化能够解决系统间网络通信需求。基于硬件隔离技术可将单个系统级芯片(System On Chip,SOC)隔离成两个或者更多操作系统域。其中,硬件隔离是指,在统一的计算平台上采用虚拟化方案,同时运行多个操作系统,但是各个系统依然在硬件上进行隔离,每个系统都有自己的专属硬件资源。当单个SOC被隔离为多个操作系统域,可运行的多个操作系统,物理网卡个数少于系统运行个数时,不可避免地,其中某些操作系统会作为物理系统域,获取物理网卡权限,其他操作系统作为虚拟系统域,使用虚拟网卡,与外界通信。
针对单个SOC被硬件隔离为多个操作系统域,确定多个操作系统域中的物理系统域和虚拟系统域,在虚拟系统域中布置虚拟网卡,在物理系统域中布置物理网卡,将虚拟系统域作为虚拟网卡驱动前端,将物理系统域作为虚拟网卡驱动后端,虚拟网卡前端和虚拟网卡后端通信,实现虚拟网卡网络通信需求。
例如,SOC被硬件隔离为3个操作系统域,将其中的2个操作系统域作为物理系统域,将剩下的1个操作系统域作为虚拟系统域,在虚拟系统域上布置虚拟网卡,在物理系统域上布置物理网卡,将虚拟系统域作为虚拟网卡驱动前端,将对应的物理系统域作为虚拟网卡驱动后端。
汽车系统启动,引导程序加载多个操作系统域的镜像文件至内存后,分别启动上述多个操作系统域。
步骤S120、针对每个虚拟系统域,所述物理系统域中所述虚拟系统域对应的第一物理系统域对应的虚拟网卡驱动后端就绪后,将所述第一物理系统域作为所述虚拟系统域的宿主系统;
具体地,从物理系统域中为虚拟系统域中的每个虚拟系统域划分对应的多个物理系统域,作为该虚拟系统域的虚拟网卡驱动后端。当某个虚拟系统域对应的第一物理系统域对应的虚拟网卡驱动后端就绪后,将该第一物理系统域作为该虚拟系统域的宿主系统,即第一物理系统域为虚拟网卡的Host OS。其中第一物理系统域为虚拟系统域划分对应的多个物理系统域中优先级最高的物理系统域,例如第一物理系统与为虚拟系统域对应的多个物理系统域中最先启动完成的物理系统域。
步骤S130、通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;
具体地,当选择第一物理系统域作为虚拟系统域的宿主系统后,通过虚拟系统域和第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信,实现虚拟网卡第一通信阶段的通信功能。
步骤S140、所述虚拟系统域感知物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,根据优先级顺序,将所述虚拟系统域的宿主系统切换为所述第二物理系统域;
具体地,当虚拟系统域感知到虚拟系统域对应的物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,可根据物理系统域的优先级顺序,将虚拟系统域的宿主系统切换为第二物理系统域。其中第一物理系统域的优先级大于第二物理系统域。
步骤S150、通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;
具体地,当选择第二物理系统域作为虚拟系统域的宿主系统后,通过虚拟系统域和第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信,实现虚拟网卡第二通信阶段的通信功能。
其中,第一通信阶段可以是虚拟网卡启动阶段,需满足快启系统的网络需求,第二通信阶段可以是虚拟网卡正常通信阶段,需满足系统正常运行的网络传输性能和稳定性。第一通信阶段和第二通信阶段还可以是其他场景,两种通信阶段对通信需求不同即可,此处不再赘述。
本发明实施例提供的一种基于硬件隔离的虚拟网卡配置方法,通过各操作系统域对应的镜像文件,启动各所述操作系统域;针对每个虚拟系统域,所述物理系统域中与所述虚拟系统域对应的第一物理系统域对应的虚拟网卡驱动后端就绪后,将所述第一物理系统域作为所述虚拟系统域的宿主系统;通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,根据优先级顺序,将所述虚拟系统域的宿主系统切换为所述第二物理系统域;通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;其中所述第一物理系统域的优先级大于所述第二物理系统域。本发明实施例通过将单个SOC进行硬件隔离,确定SOC上运行的物理系统域和虚拟系统域,在虚拟系统域布置虚拟网卡,将物理系统域作为虚拟网卡驱动后端,并根据虚拟系统域不同通信阶段进行虚拟网卡驱动后端切换,通过虚拟网卡驱动前端和虚拟网卡驱动后端的通信通道实现虚拟网卡前后端通信,能够同时满足虚拟网卡不同通信阶段的通信性能需求,实现了SOC运行多个操作系统域的功能,确保了每个操作系统域正常运行。
在上述实施例的基础上,进一步地,所述第一物理系统域的启动速度大于所述第二物理系统域。
具体地,在智能座舱领域中,基于硬件隔离的SOC网卡设备共享需求场景中,一般虚拟网卡所面临的通信阶段包括两种,系统启动阶段和系统正常运行阶段,系统启动阶段需要满足系统快速启动的网卡使用需求,系统正常运行阶段需要满足高频的网卡通信性能需求。因此,可按照启动速度确定物理系统域,将第一个启动完成的物理系统域作为第一物理系统域,将后续启动完成的满足虚拟系统域网络高频通信需求的物理系统域作为第二物理系统域。这样,在虚拟系统域启动阶段,使用第一物理系统域作为虚拟网卡驱动后端,在虚拟系统域启动完成之后,切换第二物理系统域作为虚拟网卡驱动后端,能够同时满足虚拟系统域快启阶段的网卡使用需求和虚拟系统域正常运行阶段高频的网卡通信性能需求。
在上述各实施例的基础上,进一步地,所述通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信,包括:
通过共享内存完成虚拟网卡前端和虚拟网卡后端数据通信;
通过所述虚拟系统域和所述第一物理系统域之间的第一控制通道完成虚拟网卡前端和虚拟网卡后端控制指令通信;
相应地,所述通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信,包括:
通过所述共享内存完成虚拟网卡前端和虚拟网卡后端数据通信;
通过所述虚拟系统域和所述第二物理系统域之间的第二控制通道完成虚拟网卡前端和虚拟网卡后端控制指令通信。
具体地,虚拟网卡前端和虚拟网卡后端可通过共享内存作为数据通道,通过控制通道完成控制指令通信。无论是第一物理系统域还是第二物理系统域,虚拟网卡使用相同的套接字缓存(socket buffer,SKB)池,通过共享内存完成数据通信。控制通道可以为远程处理器消息传递(Remote Processor Messaging,RPMsg)通道。
在第一通信阶段,第一物理系统域启动SKB包接收线程,通过共享内存实现虚拟网卡前端和虚拟网卡后端数据通信,虚拟系统域和第一物理系统域通过两者之间的RPMsg通道完成虚拟网卡前端和虚拟网卡后端控制指令通信。
在第二通信阶段,切换虚拟网卡驱动后端之后,第一物理系统域停止SKB包接收线程,第二物理系统域启动SKB包接收线程,通过共享内存实现虚拟网卡前端和虚拟网卡后端数据通信,虚拟系统域和第二物理系统域通过两者之间的RPMsg通道完成虚拟网卡前端和虚拟网卡后端控制指令通信。
通过共享内存实现虚拟网卡前后端数据通信,通过控制通道实现虚拟网卡前后端控制通信,满足了虚拟网卡前后端的通信需求。
在上述各实施例的基础上,进一步地,所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪,包括:
所述第二物理系统域对应的虚拟网卡驱动后端就绪后,通过所述第二控制通道向所述虚拟系统域发送虚拟网卡驱动后端就绪指令;
所述虚拟系统域接收到所述虚拟网卡驱动后端就绪指令后,确定所述第二物理系统域对应的虚拟网卡驱动后端就绪。
具体地,当虚拟系统域对应的第二物理系统域启动完成后,其对应的虚拟网卡驱动后端就绪,第二物理系统域通过其与虚拟系统域之间的RPMsg通道发送当前系统虚拟网卡驱动后端就绪指令,虚拟系统域通过RPMsg通道接收到虚拟网卡驱动后端就绪指令后,确定第二物理系统域对应的虚拟网卡驱动后端就绪,此时,可根据优先级顺序,将虚拟系统域的宿主系统切换为第二物理系统域。
在上述各实施例的基础上,进一步地,所述将所述第一物理系统域作为所述虚拟系统域的宿主系统之后,还包括:
将所述虚拟系统域的状态设置为第一物理系统域作为虚拟网卡驱动后端的第一状态;
相应地,所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡后端就绪后,将所述虚拟系统域的状态设置为切换状态;
相应地,将所述虚拟系统域的宿主系统切换为所述第二物理系统域后,将所述虚拟系统域的状态设置为第二物理系统域作为虚拟网卡驱动后端的第二状态。
具体地,在实际应用中,还可以设置虚拟系统域的内部状态,当虚拟系统域将第一物理系统域作为虚拟系统域的宿主系统之后,将虚拟系统域的内部状态设置为第一物理系统域作为虚拟网卡驱动后端的第一状态,例如第一状态可表示为VNETCARD_FIRSTOS,即虚拟系统域当前的宿主系统为第一物理系统域。当虚拟系统域感知第二物理系统域对应的虚拟网卡驱动后端就绪后,将虚拟系统域的内部状态设置为切换状态,例如切换状态可以表示为VNETCARD_SWITCHING,表示虚拟系统域将要切换宿主系统。当虚拟系统域的宿主系统切换为第二物理系统域后,将虚拟系统域的状态设置为第二物理系统域作为虚拟网卡驱动后端的第二状态,例如第二状态可表示为VNETCARD_SECONDOS,即虚拟系统域当前的宿主系统为第二物理系统域。通过设置虚拟系统域的内部状态,可直观地查看虚拟系统域当前的宿主系统。
在上述各实施例的基础上,进一步地,所述将所述虚拟系统域的宿主系统切换为所述第二物理系统域,包括:
确定所述虚拟系统域的状态为切换状态之后,判断所述共享内存中的当前套接字缓存SKB包是否已处理完成;
若处理完成,则将所述虚拟系统域的宿主系统切换为所述第二物理系统域;
否则,等待所述SKB包处理完成之后,再将所述虚拟系统域的宿主系统切换为所述第二物理系统域。
具体地,当虚拟系统域当前的状态为切换状态后,首先判断共享内存中的当前套接字缓存SKB包是否已处理完成;若处理完成,则将虚拟系统域的宿主系统切换为第二物理系统域,将虚拟系统域的状态更改为第二状态。若当前SKB包还未处理完成,则等待当前SKB包处理完成之后,再将虚拟系统域的宿主系统切换为第二物理系统域,避免切换过程中导致的数据丢失问题。
在上述各实施例的基础上,进一步地,所述将所述虚拟系统域的宿主系统切换为所述第二物理系统域,包括:
切换所述第一物理系统域的内部状态,停止所述套接字缓存SKB包线程;
切换所述第二物理系统域的内部状态,启动所述套接字缓存SKB包线程。
具体地,切换第一物理系统域的内部状态,停止套接字缓存SKB包线程,之后切换第二物理系统域的内部状态,启动套接字缓存SKB包线程,完成虚拟系统域的宿主系统切换过程。
在上述各实施例的基础上,进一步地,所述多个操作系统域包括:仪表系统域、中控系统域和安全系统域,其中所述仪表系统域为虚拟系统域,所述安全系统域为第一物理系统域,所述中控系统域为第二物理系统域。
具体地,若SOC上运行三个系统,分别为仪表系统域、中控系统域和安全系统域,而SOC被硬件隔离为2个物理网卡,那么哪些系统作为Host OS布置物理网卡?一方面需考虑快启系统的网络使用需求,另一方面需考虑系统正常运行的网络传输性能和稳定性。
具体地,根据筛选规则,将仪表系统域作为虚拟系统域,布置虚拟网卡,由于安全系统域启动速度最快,中空系统域能够满足仪表系统域高频通信需求,因此将安全系统域作为第一物理系统域,将中控系统域作为第二物理系统域,在安全系统域和中空系统域布置物理网卡。
汽车系统启动,引导程序加载仪表系统域、中控系统域和安全系统域的镜像文件至内存后,分别启动上述三个系统。安全系统域启动最快,仪表系统域次之,中控系统域最慢。受限于启动速度,安全系统域虚拟网卡驱动后端最早就绪,仪表系统域虚拟网卡驱动前端次之,中控系统域虚拟网卡驱动后端最晚就绪。
仪表系统域虚拟网卡驱动前端和安全系统域虚拟网卡驱动后端通过共享内存作为数据通道,通过仪表系统域和安全系统域之间的RPMsg通道作为控制通道,实现虚拟网络前端和后端进行通信的功能。
当中控系统域虚拟网卡驱动后端就绪后,通过中控系统域和仪表系统域之间的RPMsg通道向仪表系统域发送虚拟网卡驱动后端就绪指令,仪表系统域接收到该指令后,判断当前SKB已经处理完成,则切换虚拟网卡宿主系统,通过共享内存作为数据通道,通过仪表系统域和中控系统域之间的RPMsg通道作为控制通道,实现虚拟网络前端和后端进行通信的功能。
在车机系统启动早期阶段,安全系统域作为仪表系统域虚拟网卡的宿主系统,满足仪表快启网络使用需求。在车机正常运行阶段,中控系统域就绪后,通过RPMsg消息告知仪表系统域可以切换虚拟网卡的宿主系统,仪表系统在驱动处理完当前的SKB包后进行切换,切换后中控系统域作为仪表系统域虚拟网卡的宿主系统,满足仪表系统域和中控系统域频繁的网络通信需求。本发明实施例的基于硬件隔离的虚拟网卡启动及切换方法,能够同时满足车机仪表系统快启阶段的网卡使用需求和车机正常运行阶段高频的网卡通信性能需求。
参照图2,示出了本发明的一种基于硬件隔离的虚拟网卡配置系统结构示意图,安全系统域OS(RP)布置物理网卡ETH1,中控系统域OS(AP)布置物理网卡ETH2,仪表系统域OS(CP)布置虚拟网卡VETH,在启动阶段,仪表系统域OS虚拟网卡VETH的驱动后端为安全系统域OS,当中控系统域OS启动后,仪表系统域OS虚拟网卡VETH的驱动后端切换为中控系统域OS,虚拟网卡驱动前端和虚拟网卡驱动后端之间通过共享内存作为数据通道,通过RPMsg通道作为控制通道,实现虚拟网络前端和后端进行通信的功能。
具体地,参照图3,示出了本发明的另一种基于硬件隔离的虚拟网卡配置方法实施例的步骤流程图,适用于基于硬件隔离的SOC网卡设备共享需求场景,特别是未来的智能座舱领域中以硬件隔离仪表系统域、中控系统域和安全系统域场景,具体可以包括如下步骤:
步骤S301、汽车系统启动,引导程序加载仪表系统域、中控系统域和安全系统域的镜像文件至内存后,分别启动上述三个系统。
步骤S302、安全系统域启动最快,仪表系统域次之,中控系统域最慢。
步骤S303、受限于步骤S22的启动速度,安全系统域虚拟网卡驱动后端最早就绪,仪表系统域虚拟网卡驱动前端次之,中控系统域虚拟网卡驱动后端最晚就绪。
步骤S304、车机启动阶段,安全系统域和仪表系统域通过共享内存shm data作为数据通道、RPMsg作为控制通道,实现虚拟网卡前端和后端进行通信。两边系统应用可以正常使用(虚拟)网卡功能,应用数据主要考虑车机早期的车身信号。
此时,仪表系统域的内部状态为VNETCARD_SAFETYOS。
步骤S305、中控系统域虚拟网卡驱动后端就绪后,通过中控系统域-仪表系统域之间的RPMsg通道发出当前系统虚拟网卡驱动后端就绪指令。
需要说明的是,虽然步骤S305后仪表系统域和中控系统域间可以正常网络通信,但是中控系统暂不允许本系统应用使用该通道发送或者接收数据。
步骤S306、仪表系统域虚拟网卡驱动前端感知第二个虚拟网卡驱动后端就绪,根据优先级列表,选择中控系统域作为后续的Host OS。
同时,本系统的内部状态机切换状态VNETCARD_SWITCHING。
步骤S307、仪表系统域判断是否处理完成当前SKB包缓存,如果是则执行步骤S309,否则继续执行步骤S308。
步骤S308、仪表系统域的虚拟网卡继续使用安全系统域作为Host OS,直到原有链路的SKB包处理完成。
步骤S309、仪表系统域分别通过仪表系统域-中控系统域之间的RPMsg通道和仪表系统域-安全系统域之间的RPMsg通道发送本系统虚拟网卡后端切换完成指令。
此时,仪表系统域的内部状态为VNETCARD_ANDROIDOS。
步骤S310、安全系统域切换内部状态,停止SKB包接收线程。
步骤S311、中控系统域切换内部状态,启动SKB包接收线程。
步骤S312、车机正常运行阶段,中控系统域和仪表系统域通过共享内存作为数据通道、RPMsg作为控制通道,实现虚拟网卡前端和后端进行通信。两边系统应用可以正常使用(虚拟)网卡功能,应用场景主要考虑车机正常运行时的多媒体数据。
本发明的一种基于硬件隔离的虚拟网卡配置方法,通过将单个SOC硬件隔离技术,实现SOC上同时运行仪表系统域、中控系统域和安全系统域。中控系统域和安全系统域分别布置物理网卡,仪表系统域使用虚拟网卡。无论仪表系统域虚拟网卡依赖中控系统域还是安全系统域作为宿主系统,仪表系统域的虚拟网卡使用相同的SKB缓存池,虚拟网卡前端和虚拟网卡后端通过共享内存和RPMsg实现通信。在车机系统启动早期阶段,安全系统域作为仪表系统域虚拟网卡的Host OS,满足仪表快启网络使用需求。在车机正常运行阶段,中控系统域就绪后,通过RPMsg消息告知仪表系统域可以切换虚拟网卡的Host OS,仪表系统在驱动处理完当前SKB包后进行切换,切换后中控系统域作为仪表系统域虚拟网卡的HostOS,满足仪表系统域和中控系统域频繁的网络通信需求。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明一种基于硬件隔离的虚拟网卡配置装置实施例的结构框图,应用于同一系统级芯片SOC,所述SOC被硬件隔离为多个操作系统域,所述多个操作系统域包括物理系统域和虚拟系统域,在所述虚拟系统域中布置虚拟网卡,在所述物理系统域中布置物理网卡,将所述虚拟系统域作为虚拟网卡驱动前端,将所述物理系统域作为虚拟网卡驱动后端,具体可以包括如下模块:
启动模块410,用于通过各所述操作系统域对应的镜像文件,启动各所述操作系统域;
配置模块420,用于针对每个虚拟系统域,所述物理系统域中与所述虚拟系统域对应的第一物理系统域对应的虚拟网卡驱动后端就绪后,将所述第一物理系统域作为所述虚拟系统域的宿主系统;
第一通信模块430,用于通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;
切换模块440,用于所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,根据优先级顺序,将所述虚拟系统域的宿主系统切换为所述第二物理系统域;
第二通信模块450,用于通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;
其中所述第一物理系统域的优先级大于所述第二物理系统域。
如上述装置,可选地,所述第一物理系统域的启动速度大于所述第二物理系统域。
如上述装置,可选地,所述第一通信模块430包括:
数据通信单元,用于通过共享内存完成虚拟网卡前端和虚拟网卡后端数据通信;
控制通信单元,用于通过所述虚拟系统域和所述第一物理系统域之间的第一控制通道完成虚拟网卡前端和虚拟网卡后端控制指令通信;
相应地,所述第二通信模块450具体用于:
数据通信单元,用于通过所述共享内存完成虚拟网卡前端和虚拟网卡后端数据通信;
控制通信单元,用于通过所述虚拟系统域和所述第二物理系统域之间的第二控制通道完成虚拟网卡前端和虚拟网卡后端控制指令通信。
如上述装置,可选地,所述数据通信单元具体用于:
所述虚拟网卡后端对应的物理系统域启动套接字缓存SKB包接收线程,通过共享内存完成虚拟网卡前端和虚拟网卡后端数据通信。
如上述装置,可选地,所述配置模块420具体用于:
所述第二物理系统域对应的虚拟网卡驱动后端就绪后,通过所述第二控制通道向所述虚拟系统域发送虚拟网卡驱动后端就绪指令;
所述虚拟系统域接收到所述虚拟网卡驱动后端就绪指令后,确定所述第二物理系统域对应的虚拟网驱动卡后端就绪。
如上述装置,可选地,所述第一通信模块430还用于:
将所述虚拟系统域的状态设置为第一物理系统域作为虚拟网卡驱动后端的第一状态;
相应地,所述切换模块440还用于,将所述第一物理系统域作为所述虚拟系统域的宿主系统之后,将所述虚拟系统域的状态设置为切换状态;
相应地,所述切换模块450还用于,将所述虚拟系统域的宿主系统切换为所述第二物理系统域后,将所述虚拟系统域的状态设置为第二物理系统域作为虚拟网卡驱动后端的第二状态。
如上述装置,可选地,所述切换模块440具体用于:
确定所述虚拟系统域的状态为切换状态之后,判断所述共享内存中的当前套接字缓存SKB包是否已处理完成;
若处理完成,则将所述虚拟系统域的宿主系统切换为所述第二物理系统域;
否则,等待所述SKB包处理完成之后,再将所述虚拟系统域的宿主系统切换为所述第二物理系统域。
如上述装置,可选地,所述切换模块440具体用于:
切换所述第一物理系统域的内部状态,停止所述套接字缓存SKB包线程;
切换所述第二物理系统域的内部状态,启动所述套接字缓存SKB包线程。
如上述装置,可选地,所述多个操作系统域包括:仪表系统域、中控系统域和安全系统域,其中所述仪表系统域为虚拟系统域,所述安全系统域为第一物理系统域,所述中控系统域为第二物理系统域。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,此处不再赘述。
参照图5,示出了本发明一种电子设备实施例的结构框图,所述设备包括:系统级芯片SOC 510、存储器520和总线530,所述SOC被硬件隔离为多个操作系统域,所述多个操作系统域包括物理系统域和虚拟系统域,在所述虚拟系统域中布置虚拟网卡,在所述物理系统域中布置物理网卡,将所述虚拟系统域作为虚拟网卡驱动前端,将所述物理系统域作为虚拟网卡驱动后端;
其中,SOC 510和存储器520通过所述总线530完成相互间的通信;
SOC 510用于调用存储器520中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:通过各操作系统域对应的镜像文件,启动各所述操作系统域;针对每个虚拟系统域,所述物理系统域中与所述虚拟系统域对应的第一物理系统域对应的虚拟网卡驱动后端就绪后,将所述第一物理系统域作为所述虚拟系统域的宿主系统;通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,根据优先级顺序,将所述虚拟系统域的宿主系统切换为所述第二物理系统域;通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;其中所述第一物理系统域的优先级大于所述第二物理系统域。
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:通过各操作系统域对应的镜像文件,启动各所述操作系统域;针对每个虚拟系统域,所述物理系统域中与所述虚拟系统域对应的第一物理系统域对应的虚拟网卡驱动后端就绪后,将所述第一物理系统域作为所述虚拟系统域的宿主系统;通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,根据优先级顺序,将所述虚拟系统域的宿主系统切换为所述第二物理系统域;通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;其中所述第一物理系统域的优先级大于所述第二物理系统域。
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使系统级芯片SOC执行上述各方法实施例所提供的方法,例如包括:通过各操作系统域对应的镜像文件,启动各所述操作系统域;针对每个虚拟系统域,所述物理系统域中与所述虚拟系统域对应的第一物理系统域对应的虚拟网卡驱动后端就绪后,将所述第一物理系统域作为所述虚拟系统域的宿主系统;通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,根据优先级顺序,将所述虚拟系统域的宿主系统切换为所述第二物理系统域;通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;其中所述第一物理系统域的优先级大于所述第二物理系统域。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种基于硬件隔离的虚拟网卡配置方法和一种基于硬件隔离的虚拟网卡配置装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种基于硬件隔离的虚拟网卡配置方法,其特征在于,应用于同一系统级芯片SOC,所述SOC被硬件隔离为多个操作系统域,所述多个操作系统域包括物理系统域和虚拟系统域,在所述虚拟系统域中布置虚拟网卡,在所述物理系统域中布置物理网卡,将所述虚拟系统域作为虚拟网卡驱动前端,将所述物理系统域作为虚拟网卡驱动后端,所述方法包括:
通过各所述操作系统域对应的镜像文件,启动各所述操作系统域;
针对每个虚拟系统域,所述物理系统域中与所述虚拟系统域对应的第一物理系统域对应的虚拟网卡驱动后端就绪后,将所述第一物理系统域作为所述虚拟系统域的宿主系统;
通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;
所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,根据优先级顺序,将所述虚拟系统域的宿主系统切换为所述第二物理系统域;
通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;
其中所述第一物理系统域的优先级大于所述第二物理系统域。
2.根据权利要求1所述的方法,其特征在于,所述第一物理系统域的启动速度大于所述第二物理系统域。
3.根据权利要求2所述的方法,其特征在于,所述通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信,包括:
通过共享内存完成虚拟网卡前端和虚拟网卡后端数据通信;
通过所述虚拟系统域和所述第一物理系统域之间的第一控制通道完成虚拟网卡前端和虚拟网卡后端控制指令通信;
相应地,所述通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信,包括:
通过所述共享内存完成虚拟网卡前端和虚拟网卡后端数据通信;
通过所述虚拟系统域和所述第二物理系统域之间的第二控制通道完成虚拟网卡前端和虚拟网卡后端控制指令通信。
4.根据权利要求3所述的方法,其特征在于,所述通过共享内存完成虚拟网卡前端和虚拟网卡后端数据通信,包括:
所述虚拟网卡后端对应的物理系统域启动套接字缓存SKB包接收线程,通过共享内存完成虚拟网卡前端和虚拟网卡后端数据通信。
5.根据权利要求4所述的方法,其特征在于,所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪,包括:
所述第二物理系统域对应的虚拟网卡驱动后端就绪后,通过所述第二控制通道向所述虚拟系统域发送虚拟网卡驱动后端就绪指令;
所述虚拟系统域接收到所述虚拟网卡驱动后端就绪指令后,确定所述第二物理系统域对应的虚拟网卡驱动后端就绪。
6.根据权利要求5所述的方法,其特征在于,所述将所述第一物理系统域作为所述虚拟系统域的宿主系统之后,还包括:
将所述虚拟系统域的状态设置为第一物理系统域作为虚拟网卡驱动后端的第一状态;
相应地,所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,将所述虚拟系统域的状态设置为切换状态;
相应地,将所述虚拟系统域的宿主系统切换为所述第二物理系统域后,将所述虚拟系统域的状态设置为第二物理系统域作为虚拟网卡驱动后端的第二状态。
7.根据权利要求6所述的方法,其特征在于,所述将所述虚拟系统域的宿主系统切换为所述第二物理系统域,包括:
确定所述虚拟系统域的状态为切换状态之后,判断所述共享内存中的当前套接字缓存SKB包是否已处理完成;
若处理完成,则将所述虚拟系统域的宿主系统切换为所述第二物理系统域;
否则,等待所述SKB包处理完成之后,再将所述虚拟系统域的宿主系统切换为所述第二物理系统域。
8.根据权利要求7所述的方法,其特征在于,所述将所述虚拟系统域的宿主系统切换为所述第二物理系统域,包括:
切换所述第一物理系统域的内部状态,停止所述套接字缓存SKB包线程;
切换所述第二物理系统域的内部状态,启动所述套接字缓存SKB包线程。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述多个操作系统域包括:仪表系统域、中控系统域和安全系统域,其中所述仪表系统域为虚拟系统域,所述安全系统域为第一物理系统域,所述中控系统域为第二物理系统域。
10.一种基于硬件隔离的虚拟网卡配置装置,其特征在于,应用于同一系统级芯片SOC,所述SOC被硬件隔离为多个操作系统域,所述多个操作系统域包括物理系统域和虚拟系统域,在所述虚拟系统域中布置虚拟网卡,在所述物理系统域中布置物理网卡,将所述虚拟系统域作为虚拟网卡驱动前端,将所述物理系统域作为虚拟网卡驱动后端,所述装置包括:
启动模块,用于通过各所述操作系统域对应的镜像文件,启动各所述操作系统域;
配置模块,用于针对每个虚拟系统域,所述物理系统域中与所述虚拟系统域对应的第一物理系统域对应的虚拟网卡驱动后端就绪后,将所述第一物理系统域作为所述虚拟系统域的宿主系统;
第一通信模块,用于通过所述虚拟系统域和所述第一物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;
切换模块,用于所述虚拟系统域感知所述物理系统域中的第二物理系统域对应的虚拟网卡驱动后端就绪后,根据优先级顺序,将所述虚拟系统域的宿主系统切换为所述第二物理系统域;
第二通信模块,用于通过所述虚拟系统域和所述第二物理系统域之间的通信通道完成虚拟网卡前端和虚拟网卡后端通信;
其中所述第一物理系统域的优先级大于所述第二物理系统域。
11.一种电子设备,其特征在于,包括:
系统级芯片SOC,所述SOC被硬件隔离为多个操作系统域,所述多个操作系统域包括物理系统域和虚拟系统域,在所述虚拟系统域中布置虚拟网卡,在所述物理系统域中布置物理网卡,将所述虚拟系统域作为虚拟网卡驱动前端,将所述物理系统域作为虚拟网卡驱动后端;以及与所述SOC通信连接的存储器;其中,所述存储器存储有可被所述SOC执行的程序指令,所述SOC调用所述程序指令能够执行如权利要求1至9任一项所述的基于硬件隔离的虚拟网卡配置方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被系统级芯片SOC执行时实现如权利要求1至9任一项所述的基于硬件隔离的虚拟网卡配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310921513.5A CN116760711A (zh) | 2023-07-25 | 2023-07-25 | 一种基于硬件隔离的虚拟网卡配置方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310921513.5A CN116760711A (zh) | 2023-07-25 | 2023-07-25 | 一种基于硬件隔离的虚拟网卡配置方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116760711A true CN116760711A (zh) | 2023-09-15 |
Family
ID=87955298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310921513.5A Pending CN116760711A (zh) | 2023-07-25 | 2023-07-25 | 一种基于硬件隔离的虚拟网卡配置方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116760711A (zh) |
-
2023
- 2023-07-25 CN CN202310921513.5A patent/CN116760711A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140137091A1 (en) | Automobile open system architecture(autosar)-based electronic control unit (ecu) and method for updating ecu | |
US10673986B2 (en) | Operation method of communication node for selective wake-up in vehicle network | |
CN115086438B (zh) | 任务处理方法、视频处理单元、部件及交通设备 | |
CN112817617A (zh) | 软件升级方法、装置和系统 | |
CN106371423A (zh) | 车载设备的控制方法、装置及设备 | |
CN115098142A (zh) | 车载终端的固件升级方法、装置及系统 | |
EP3918481A1 (en) | Upgradeable vehicular computing methods and apparatuses | |
US20180213541A1 (en) | Selective antenna allocation | |
KR20150142482A (ko) | 가상화를 이용한 차량용 avn 시스템 및 그 작동 방법 | |
CN116760711A (zh) | 一种基于硬件隔离的虚拟网卡配置方法和装置 | |
CN116088784B (zh) | 图像投屏方法、装置、电子设备、芯片、存储介质及车辆 | |
CN113752966B (zh) | 车机系统的交互方法、装置和计算机可读介质 | |
CN115079993A (zh) | 一种跨系统的音频播放控制方法、装置、车辆及存储介质 | |
CN111061521B (zh) | 一种启动设备的方法及系统 | |
JP2019009678A (ja) | 車載通信ネットワークシステム | |
CN117785461A (zh) | 车辆的资源分配方法、装置、电子设备及存储介质 | |
CN116279208B (zh) | 数据处理子系统、域控制器和车辆 | |
CN115224685B (zh) | 配电管理方法、装置、车辆及存储介质 | |
US20220269546A1 (en) | Control device, method, program, and vehicle | |
CN113721578B (zh) | 域控制器刷新方法与系统 | |
CN116633780A (zh) | 车辆的网关升级方法、装置、车辆及存储介质 | |
CN116679898A (zh) | 一种车机互联投屏方法及系统 | |
CN117519909A (zh) | 一种运行在车载主机上的软件系统及其运行方法 | |
CN117075834A (zh) | 一种应用于汽车的多系统融合显示方法 | |
CN115848289A (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 |